MySQL 8.0.40
Source Code Documentation
|
Database Physical Snapshot. More...
#include "univ.i"
#include "arch0log.h"
#include "arch0page.h"
#include "clone0api.h"
#include "clone0desc.h"
#include "clone0monitor.h"
#include "fil0fil.h"
#include "sql/handler.h"
#include <map>
#include <vector>
Go to the source code of this file.
Classes | |
struct | Clone_file_ctx |
struct | Clone_Page |
Page identified by space and page number. More... | |
struct | Less_Clone_Page |
Comparator for storing sorted page ID. More... | |
class | Clone_Snapshot |
Dynamic database snapshot: Holds metadata and handle to data. More... | |
class | Clone_Snapshot::State_transit |
RAII style guard for begin & end of snapshot state transition. More... | |
Typedefs | |
using | Clone_File_Vec = std::vector< Clone_file_ctx * > |
Vector type for storing clone files. More... | |
using | Clone_File_Map = std::map< space_id_t, uint > |
Map type for mapping space ID to clone file index. More... | |
using | Clone_Page_Vec = std::vector< Clone_Page > |
Vector type for storing clone page IDs. More... | |
using | Clone_Page_Set = std::set< Clone_Page, Less_Clone_Page > |
Set for storing unique page IDs. More... | |
Enumerations | |
enum | Clone_Handle_Type { CLONE_HDL_COPY = 1 , CLONE_HDL_APPLY } |
Clone handle type. More... | |
Variables | |
const uint | SNAPSHOT_DEF_CHUNK_SIZE_POW2 = 12 |
Default chunk size in power of 2 in unit of pages. More... | |
const uint | SNAPSHOT_DEF_BLOCK_SIZE_POW2 = 6 |
Default block size in power of 2 in unit of pages. More... | |
const uint | SNAPSHOT_MAX_BLOCK_SIZE_POW2 = 12 |
Maximum block size in power of 2 in unit of pages. More... | |
Database Physical Snapshot.
using Clone_File_Map = std::map<space_id_t, uint> |
Map type for mapping space ID to clone file index.
using Clone_File_Vec = std::vector<Clone_file_ctx *> |
Vector type for storing clone files.
using Clone_Page_Set = std::set<Clone_Page, Less_Clone_Page> |
Set for storing unique page IDs.
using Clone_Page_Vec = std::vector<Clone_Page> |
Vector type for storing clone page IDs.
enum Clone_Handle_Type |
const uint SNAPSHOT_DEF_BLOCK_SIZE_POW2 = 6 |
Default block size in power of 2 in unit of pages.
Data transfer callback is invoked once for each block. This is also the maximum size of data that would be re-send if clone is stopped and resumed. For 16k page size, block size is 1M.
const uint SNAPSHOT_DEF_CHUNK_SIZE_POW2 = 12 |
Default chunk size in power of 2 in unit of pages.
Chunks are reserved by each thread for multi-threaded clone. For 16k page size, chunk size is 64M.
const uint SNAPSHOT_MAX_BLOCK_SIZE_POW2 = 12 |
Maximum block size in power of 2 in unit of pages.
For 16k page size, maximum block size is 64M.