![]()  | 
  
    MySQL 8.0.44
    
   Source Code Documentation 
   | 
 
Implements a buffer pool dump/load. More...
#include <errno.h>#include <stdarg.h>#include <stdio.h>#include <algorithm>#include "buf0buf.h"#include "buf0dump.h"#include "dict0dict.h"#include "my_io.h"#include "my_psi_config.h"#include "my_sys.h"#include "my_thread.h"#include "mysql/psi/mysql_stage.h"#include "os0file.h"#include "os0thread-create.h"#include "os0thread.h"#include "srv0srv.h"#include "srv0start.h"#include "sync0rw.h"#include "univ.i"#include "ut0byte.h"Macros | |
| #define | SHOULD_QUIT() (SHUTTING_DOWN() && obey_shutdown) | 
Typedefs | |
| typedef uint64_t | buf_dump_t | 
Enumerations | |
| enum | status_severity { STATUS_VERBOSE , STATUS_INFO , STATUS_ERR } | 
Functions | |
| static bool | SHUTTING_DOWN () | 
| uint64_t | BUF_DUMP_CREATE (space_id_t space, page_no_t page) | 
| constexpr space_id_t | BUF_DUMP_SPACE (uint64_t a) | 
| constexpr page_no_t | BUF_DUMP_PAGE (uint64_t a) | 
| void | buf_dump_start () | 
| Wakes up the buffer pool dump/load thread and instructs it to start a dump.  More... | |
| void | buf_load_start () | 
| Wakes up the buffer pool dump/load thread and instructs it to start a load.  More... | |
| static void | buf_dump_status (enum status_severity severity, const char *fmt,...) | 
| Sets the global variable that feeds MySQL's innodb_buffer_pool_dump_status to the specified string.  More... | |
| static void | buf_load_status (enum status_severity severity, const char *fmt,...) | 
| Sets the global variable that feeds MySQL's innodb_buffer_pool_load_status to the specified string.  More... | |
| static const char * | get_buf_dump_dir () | 
| Returns the directory path where the buffer pool dump file will be created.  More... | |
| void | buf_dump_generate_path (char *path, size_t path_size) | 
| Generate the path to the buffer pool dump/load file.  More... | |
| static void | buf_dump (bool obey_shutdown) | 
| Perform a buffer pool dump into the file specified by innodb_buffer_pool_filename.  More... | |
| static void | buf_load_throttle_if_needed (std::chrono::steady_clock::time_point *last_check_time, ulint *last_activity_count, ulint n_io) | 
| Artificially delay the buffer pool loading if necessary.  More... | |
| static void | buf_load () | 
| Perform a buffer pool load from the file specified by innodb_buffer_pool_filename.  More... | |
| void | buf_load_abort () | 
| Aborts a currently running buffer pool load.  More... | |
| void | buf_dump_thread () | 
| This is the main thread for buffer pool dump/load.  More... | |
Variables | |
| static bool | buf_dump_should_start = false | 
| static bool | buf_load_should_start = false | 
| static bool | buf_load_abort_flag = false | 
Implements a buffer pool dump/load.
Created April 08, 2011 Vasil Dimov
| #define SHOULD_QUIT | ( | ) | (SHUTTING_DOWN() && obey_shutdown) | 
| typedef uint64_t buf_dump_t | 
| enum status_severity | 
      
  | 
  static | 
Perform a buffer pool dump into the file specified by innodb_buffer_pool_filename.
If any errors occur then the value of innodb_buffer_pool_dump_status will be set accordingly, see buf_dump_status(). The dump filename can be specified by (relative to srv_data_home): SET GLOBAL innodb_buffer_pool_filename='filename';
| [in] | obey_shutdown | quit if we are in a shutting down state | 
      
  | 
  inline | 
| void buf_dump_generate_path | ( | char * | path, | 
| size_t | path_size | ||
| ) | 
Generate the path to the buffer pool dump/load file.
| [out] | path | generated path | 
| [in] | path_size | size of 'path', used as in snprintf(3). | 
      
  | 
  constexpr | 
      
  | 
  constexpr | 
| void buf_dump_start | ( | ) | 
Wakes up the buffer pool dump/load thread and instructs it to start a dump.
This function is called by MySQL code via buffer_pool_dump_now() and it should return immediately because the whole MySQL is frozen during its execution.
      
  | 
  static | 
Sets the global variable that feeds MySQL's innodb_buffer_pool_dump_status to the specified string.
The format and the following parameters are the same as the ones used for printf(3). The value of this variable can be retrieved by: SELECT variable_value FROM performance_schema.global_status WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS'; or by: SHOW STATUS LIKE 'innodb_buffer_pool_dump_status';
| severity | in: status severity | 
| fmt | in: format | 
| ... | in: extra parameters according to fmt | 
| void buf_dump_thread | ( | ) | 
This is the main thread for buffer pool dump/load.
It waits for an event and when waked up either performs a dump or load and sleeps again.
      
  | 
  static | 
Perform a buffer pool load from the file specified by innodb_buffer_pool_filename.
If any errors occur then the value of innodb_buffer_pool_load_status will be set accordingly, see buf_load_status(). The dump filename can be specified by (relative to srv_data_home): SET GLOBAL innodb_buffer_pool_filename='filename';
| void buf_load_abort | ( | ) | 
Aborts a currently running buffer pool load.
This function is called by MySQL code via buffer_pool_load_abort() and it should return immediately because the whole MySQL is frozen during its execution.
| void buf_load_start | ( | ) | 
Wakes up the buffer pool dump/load thread and instructs it to start a load.
This function is called by MySQL code via buffer_pool_load_now() and it should return immediately because the whole MySQL is frozen during its execution.
      
  | 
  static | 
Sets the global variable that feeds MySQL's innodb_buffer_pool_load_status to the specified string.
The format and the following parameters are the same as the ones used for printf(3). The value of this variable can be retrieved by: SELECT variable_value FROM performance_schema.global_status WHERE variable_name = 'INNODB_BUFFER_POOL_LOAD_STATUS'; or by: SHOW STATUS LIKE 'innodb_buffer_pool_load_status';
| severity | in: status severity | 
| fmt | in: format | 
| ... | in: extra parameters according to fmt | 
      
  | 
  inlinestatic | 
Artificially delay the buffer pool loading if necessary.
The idea of this function is to prevent hogging the server with IO and slowing down too much normal client queries.
| [in,out] | last_check_time | milliseconds since epoch of the last time we did check if throttling is needed, we do the check every srv_io_capacity IO ops. | 
| [in] | last_activity_count | activity count | 
| [in] | n_io | number of IO ops done since buffer pool load has started | 
      
  | 
  static | 
Returns the directory path where the buffer pool dump file will be created.
      
  | 
  inlinestatic | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static |