MySQL 9.0.0
Source Code Documentation
Clone_Handle Class Reference

Clone Handle for copying or applying data. More...

#include <clone0clone.h>

Public Member Functions

 Clone_Handle (Clone_Handle_Type handle_type, uint clone_version, uint clone_index)
 Construct clone handle. More...
 
 ~Clone_Handle ()
 Destructor: Detach from snapshot. More...
 
int init (const byte *ref_loc, uint ref_len, Ha_clone_type type, const char *data_dir)
 Initialize clone handle. More...
 
void attach ()
 Attach to the clone handle. More...
 
uint detach ()
 Detach from the clone handle. More...
 
byteget_locator (uint &loc_len)
 Get locator for the clone handle. More...
 
const char * get_datadir () const
 
bool replace_datadir () const
 
void build_descriptor (Clone_Desc_Locator *loc_desc)
 Build locator descriptor for the clone handle. More...
 
int add_task (THD *thd, const byte *ref_loc, uint ref_len, uint &task_id)
 Add a task to clone handle. More...
 
bool drop_task (THD *thd, uint task_id, bool &is_master)
 Drop task from clone handle. More...
 
void save_error (int err)
 Save current error number. More...
 
int check_error (THD *thd)
 Check for error from other tasks and DDL. More...
 
bool is_interrupted ()
 
uint get_index ()
 Get clone handle index in clone array. More...
 
uint get_version ()
 Get clone data descriptor version. More...
 
Clone_Snapshotget_snapshot ()
 
bool is_copy_clone () const
 Check if it is copy clone. More...
 
bool match_hdl_type (Clone_Handle_Type other_handle_type)
 Check if clone type matches. More...
 
void set_state (Clone_Handle_State state)
 Set current clone state. More...
 
void set_abort ()
 Set clone to ABORT state end any attached snapshot. More...
 
bool is_active ()
 Check if clone state is active. More...
 
bool is_init ()
 Check if clone is initialized. More...
 
bool is_idle ()
 Check if clone is idle waiting for restart. More...
 
bool is_abort ()
 Check if clone is aborted. More...
 
int restart_copy (THD *thd, const byte *loc, uint loc_len)
 Restart copy after a network failure. More...
 
int restart_apply (THD *thd, const byte *&loc, uint &loc_len)
 Build locator with current state and restart apply. More...
 
int copy (uint task_id, Ha_clone_cbk *callback)
 Transfer snapshot data via callback. More...
 
int apply (THD *thd, uint task_id, Ha_clone_cbk *callback)
 Apply snapshot data received via callback. More...
 
int send_keep_alive (Clone_Task *task, Ha_clone_cbk *callback)
 Send keep alive while during long wait. More...
 
bool abort_by_ddl () const
 
void set_ddl_abort ()
 Allow concurrent DDL to abort clone. More...
 
void close_master_file ()
 Close master task file if open and unpin. More...
 

Private Types

using File_init_cbk = std::function< dberr_t(pfs_os_file_t)>
 

Private Member Functions

int check_space (const Clone_Task *task)
 Check if enough space is there to clone. More...
 
int create_clone_directory ()
 Create clone data directory. More...
 
void display_progress (uint32_t cur_chunk, uint32_t max_chunk, uint32_t &percent_done, std::chrono::steady_clock::time_point &disp_time)
 Display clone progress. More...
 
int file_create_init (const Clone_file_ctx *file_ctx, ulint file_type, bool init)
 Create a tablespace file and initialize. More...
 
int open_file (Clone_Task *task, const Clone_file_ctx *file_ctx, ulint file_type, bool create_file, File_init_cbk &init_cbk)
 Open file for the task. More...
 
int close_file (Clone_Task *task)
 Close file for the task. More...
 
int check_and_pin_file (Clone_Task *task, Clone_file_ctx *file_ctx, bool &handle_deleted)
 Check and pin a file context if not already pinned. More...
 
int close_and_unpin_file (Clone_Task *task)
 Unpin and close currently pinned file. More...
 
std::tuple< bool, bool > pins_file (const Clone_Task *task, const Clone_file_ctx *file_ctx)
 Check if the task pins a file context. More...
 
int file_callback (Ha_clone_cbk *cbk, Clone_Task *task, uint len, bool buf_cbk, uint64_t offset, ut::Location location)
 Callback providing the file reference and data length to copy. More...
 
int move_to_next_state (Clone_Task *task, Ha_clone_cbk *callback, Clone_Desc_State *state_desc)
 Move to next state. More...
 
int send_state_metadata (Clone_Task *task, Ha_clone_cbk *callback, bool is_start)
 Send current state information via callback. More...
 
int send_task_metadata (Clone_Task *task, Ha_clone_cbk *callback)
 Send current task information via callback. More...
 
int send_all_ddl_metadata (Clone_Task *task, Ha_clone_cbk *callback)
 Send all DDL metadata generated. More...
 
int send_all_file_metadata (Clone_Task *task, Ha_clone_cbk *callback)
 Send all file information via callback. More...
 
int send_file_metadata (Clone_Task *task, const Clone_File_Meta *file_meta, bool is_redo, Ha_clone_cbk *callback)
 Send current file information via callback. More...
 
int send_data (Clone_Task *task, const Clone_file_ctx *file_ctx, uint64_t offset, byte *buffer, uint32_t size, uint64_t new_file_size, Ha_clone_cbk *callback)
 Send cloned data via callback. More...
 
int process_chunk (Clone_Task *task, uint32_t chunk_num, uint32_t block_num, Ha_clone_cbk *callback)
 Process a data chunk and send data blocks via callback. More...
 
int apply_task_metadata (Clone_Task *task, Ha_clone_cbk *callback)
 Create apply task based on task metadata in callback. More...
 
int ack_state_metadata (Clone_Task *task, Ha_clone_cbk *callback, Clone_Desc_State *state_desc)
 Move to next state based on state metadata and set state information. More...
 
void notify_state_change (Clone_Task *task, Ha_clone_cbk *callback, Clone_Desc_State *state_desc)
 Notify state change via callback. More...
 
int apply_state_metadata (Clone_Task *task, Ha_clone_cbk *callback)
 Move to next state based on state metadata and set state information. More...
 
int apply_file_metadata (Clone_Task *task, Ha_clone_cbk *callback)
 Create file metadata based on callback. More...
 
int apply_file_delete (Clone_Task *task, Clone_file_ctx *file_ctx, const Clone_File_Meta *new_meta)
 Apply DDL delete to existing file to update chunk and block information. More...
 
int apply_ddl (const Clone_File_Meta *new_meta, Clone_file_ctx *file_ctx)
 Apply DDL changes to file at the end of FILE_COPY stage. More...
 
int set_compression (Clone_file_ctx *file_ctx)
 Set compression type based on local capability. More...
 
int fix_all_renamed (const Clone_Task *task)
 Fix the file name and meta information for all files that are renamed with DDL extension. More...
 
int apply_data (Clone_Task *task, Ha_clone_cbk *callback)
 Apply data received via callback. More...
 
int receive_data (Clone_Task *task, uint64_t offset, uint64_t file_size, uint32_t size, Ha_clone_cbk *callback)
 Receive data from callback and apply. More...
 
bool read_compressed_len (unsigned char *buffer, uint32_t len, uint32_t block_size, uint32_t &compressed_len)
 Read compressed length from the page. More...
 
int sparse_file_write (Clone_File_Meta *file_meta, unsigned char *buffer, uint32_t len, pfs_os_file_t file, uint64_t start_off)
 Write pages to file and punch holes. More...
 
int modify_and_write (const Clone_Task *task, uint64_t offset, unsigned char *buffer, uint32_t buf_len)
 Modify page encryption attribute and/or punch hole. More...
 

Private Attributes

Clone_Handle_Type m_clone_handle_type
 Clone handle type: Copy, Apply. More...
 
Clone_Handle_State m_clone_handle_state
 Clone handle state. More...
 
byte m_version_locator [CLONE_DESC_MAX_BASE_LEN]
 Fixed locator for version negotiation. More...
 
bytem_clone_locator
 Serialized locator. More...
 
uint m_locator_length
 Locator length in bytes. More...
 
bytem_restart_loc
 Serialized Restart locator. More...
 
uint m_restart_loc_len
 Restart locator length in bytes. More...
 
uint m_clone_desc_version
 Clone descriptor version in use. More...
 
uint m_clone_arr_index
 Index in global array. More...
 
uint64_t m_clone_id
 Unique clone identifier. More...
 
uint m_ref_count
 Reference count. More...
 
bool m_allow_restart
 Allow restart of clone operation after network failure. More...
 
bool m_abort_ddl
 If concurrent DDL should abort clone. More...
 
const char * m_clone_dir
 Clone data directory. More...
 
Clone_Task_Manager m_clone_task_manager
 Clone task manager. More...
 

Detailed Description

Clone Handle for copying or applying data.

Member Typedef Documentation

◆ File_init_cbk

using Clone_Handle::File_init_cbk = std::function<dberr_t(pfs_os_file_t)>
private

Constructor & Destructor Documentation

◆ Clone_Handle()

Clone_Handle::Clone_Handle ( Clone_Handle_Type  handle_type,
uint  clone_version,
uint  clone_index 
)

Construct clone handle.

Parameters
[in]handle_typeclone handle type
[in]clone_versionclone version
[in]clone_indexindex in clone array

◆ ~Clone_Handle()

Clone_Handle::~Clone_Handle ( )

Destructor: Detach from snapshot.

Member Function Documentation

◆ abort_by_ddl()

bool Clone_Handle::abort_by_ddl ( ) const
inline
Returns
true iff DDL should abort running clone.

◆ ack_state_metadata()

int Clone_Handle::ack_state_metadata ( Clone_Task task,
Ha_clone_cbk callback,
Clone_Desc_State state_desc 
)
private

Move to next state based on state metadata and set state information.

Parameters
[in]taskcurrent task
[in,out]callbackcallback interface
[in,out]state_descclone state descriptor
Returns
error code

◆ add_task()

int Clone_Handle::add_task ( THD thd,
const byte ref_loc,
uint  ref_len,
uint &  task_id 
)
inline

Add a task to clone handle.

Parameters
[in]thdserver THD object
[in]ref_locreference locator from remote
[in]ref_lenreference locator length
[out]task_idtask identifier
Returns
error code

◆ apply()

int Clone_Handle::apply ( THD thd,
uint  task_id,
Ha_clone_cbk callback 
)

Apply snapshot data received via callback.

Parameters
[in]thdserver THD
[in]task_idcurrent task ID
[in]callbackuser callback interface
Returns
error code

◆ apply_data()

int Clone_Handle::apply_data ( Clone_Task task,
Ha_clone_cbk callback 
)
private

Apply data received via callback.

Parameters
[in]taskcurrent task
[in]callbackcallback interface
Returns
error code

◆ apply_ddl()

int Clone_Handle::apply_ddl ( const Clone_File_Meta new_meta,
Clone_file_ctx file_ctx 
)
private

Apply DDL changes to file at the end of FILE_COPY stage.

Parameters
[in]new_metanew file metadata
[in,out]file_ctxcurrent file context
Returns
error code.

◆ apply_file_delete()

int Clone_Handle::apply_file_delete ( Clone_Task task,
Clone_file_ctx file_ctx,
const Clone_File_Meta new_meta 
)
private

Apply DDL delete to existing file to update chunk and block information.

Parameters
[in,out]tasktask performing the operation
[in,out]file_ctxcurrent file context
[in]new_metanew file metadata
Returns
error code

◆ apply_file_metadata()

int Clone_Handle::apply_file_metadata ( Clone_Task task,
Ha_clone_cbk callback 
)
private

Create file metadata based on callback.

Parameters
[in]taskcurrent task
[in]callbackcallback interface
Returns
error code

◆ apply_state_metadata()

int Clone_Handle::apply_state_metadata ( Clone_Task task,
Ha_clone_cbk callback 
)
private

Move to next state based on state metadata and set state information.

Parameters
[in]taskcurrent task
[in]callbackcallback interface
Returns
error code

Notify state change via callback.

◆ apply_task_metadata()

int Clone_Handle::apply_task_metadata ( Clone_Task task,
Ha_clone_cbk callback 
)
private

Create apply task based on task metadata in callback.

Parameters
[in]taskcurrent task
[in]callbackcallback interface
Returns
error code

◆ attach()

void Clone_Handle::attach ( )
inline

Attach to the clone handle.

◆ build_descriptor()

void Clone_Handle::build_descriptor ( Clone_Desc_Locator loc_desc)

Build locator descriptor for the clone handle.

Parameters
[out]loc_desclocator descriptor

◆ check_and_pin_file()

int Clone_Handle::check_and_pin_file ( Clone_Task task,
Clone_file_ctx file_ctx,
bool &  handle_deleted 
)
private

Check and pin a file context if not already pinned.

Parameters
[in,out]taskclone task
[in,out]file_ctxsnapshot file context
[out]handle_deletedtrue, iff caller needs to handle deleted file state
Returns
error code

◆ check_error()

int Clone_Handle::check_error ( THD thd)
inline

Check for error from other tasks and DDL.

Parameters
[in,out]thdsession THD
Returns
error code

◆ check_space()

int Clone_Handle::check_space ( const Clone_Task task)
private

Check if enough space is there to clone.

Parameters
[in]taskcurrent task
Returns
error if not enough space

◆ close_and_unpin_file()

int Clone_Handle::close_and_unpin_file ( Clone_Task task)
private

Unpin and close currently pinned file.

Parameters
[in,out]taskclone task
Returns
error code

◆ close_file()

int Clone_Handle::close_file ( Clone_Task task)
private

Close file for the task.

Parameters
[in]taskclone task
Returns
error code

◆ close_master_file()

void Clone_Handle::close_master_file ( )

Close master task file if open and unpin.

◆ copy()

int Clone_Handle::copy ( uint  task_id,
Ha_clone_cbk callback 
)

Transfer snapshot data via callback.

Parameters
[in]task_idcurrent task ID
[in]callbackuser callback interface
Returns
error code

◆ create_clone_directory()

int Clone_Handle::create_clone_directory ( )
private

Create clone data directory.

Returns
error code

◆ detach()

uint Clone_Handle::detach ( )
inline

Detach from the clone handle.

Returns
reference count

◆ display_progress()

void Clone_Handle::display_progress ( uint32_t  cur_chunk,
uint32_t  max_chunk,
uint32_t &  percent_done,
std::chrono::steady_clock::time_point &  disp_time 
)
private

Display clone progress.

Parameters
[in]cur_chunkcurrent chunk number
[in]max_chunktotal number of chunks
[in,out]percent_donepercentage completed
[in,out]disp_timelast displayed time

◆ drop_task()

bool Clone_Handle::drop_task ( THD thd,
uint  task_id,
bool &  is_master 
)

Drop task from clone handle.

Parameters
[in]thdserver THD object
[in]task_idcurrent task ID
[out]is_mastertrue, if master task
Returns
true if needs to wait for re-start

◆ file_callback()

int Clone_Handle::file_callback ( Ha_clone_cbk cbk,
Clone_Task task,
uint  len,
bool  buf_cbk,
uint64_t  offset,
ut::Location  location 
)
private

Callback providing the file reference and data length to copy.

Parameters
[in]cbkcallback interface
[in]taskclone task
[in]lendata length
[in]buf_cbkinvoke buffer callback
[in]offsetfile offset
[in]locationlocation where func invoked
Returns
error code

◆ file_create_init()

int Clone_Handle::file_create_init ( const Clone_file_ctx file_ctx,
ulint  file_type,
bool  init 
)
private

Create a tablespace file and initialize.

Parameters
[in]file_ctxfile information
[in]file_typefile type (data, log etc.)
[in]inittrue, if needs to write initial pages.
Returns
error code

◆ fix_all_renamed()

int Clone_Handle::fix_all_renamed ( const Clone_Task task)
private

Fix the file name and meta information for all files that are renamed with DDL extension.

Parameters
[in]taskcurrent task
Returns
error code.

◆ get_datadir()

const char * Clone_Handle::get_datadir ( ) const
inline
Returns
clone data directory

◆ get_index()

uint Clone_Handle::get_index ( void  )
inline

Get clone handle index in clone array.

Returns
array index

◆ get_locator()

byte * Clone_Handle::get_locator ( uint &  loc_len)

Get locator for the clone handle.

Parameters
[out]loc_lenserialized locator length
Returns
serialized clone locator

◆ get_snapshot()

Clone_Snapshot * Clone_Handle::get_snapshot ( )
inline
Returns
active snapshot

◆ get_version()

uint Clone_Handle::get_version ( )
inline

Get clone data descriptor version.

Returns
version

◆ init()

int Clone_Handle::init ( const byte ref_loc,
uint  ref_len,
Ha_clone_type  type,
const char *  data_dir 
)

Initialize clone handle.

Parameters
[in]ref_locreference locator
[in]ref_lenreference locator length
[in]typeclone type
[in]data_dirdata directory for apply
Returns
error code

◆ is_abort()

bool Clone_Handle::is_abort ( )
inline

Check if clone is aborted.

Returns
true if clone is aborted

◆ is_active()

bool Clone_Handle::is_active ( )
inline

Check if clone state is active.

Returns
true if in active state

◆ is_copy_clone()

bool Clone_Handle::is_copy_clone ( ) const
inline

Check if it is copy clone.

Returns
true if copy clone handle

◆ is_idle()

bool Clone_Handle::is_idle ( )
inline

Check if clone is idle waiting for restart.

Returns
true if clone is in idle state

◆ is_init()

bool Clone_Handle::is_init ( )
inline

Check if clone is initialized.

Returns
true if in initial state

◆ is_interrupted()

bool Clone_Handle::is_interrupted ( )
inline
Returns
true if any task is interrupted

◆ match_hdl_type()

bool Clone_Handle::match_hdl_type ( Clone_Handle_Type  other_handle_type)
inline

Check if clone type matches.

Parameters
[in]other_handle_typetype to match with
Returns
true if type matches with clone handle type

◆ modify_and_write()

int Clone_Handle::modify_and_write ( const Clone_Task task,
uint64_t  offset,
unsigned char *  buffer,
uint32_t  buf_len 
)
private

Modify page encryption attribute and/or punch hole.

Parameters
[in]tasktask that is applying data
[in]offsetfile offset for applying data
[in,out]bufferdata to apply
[in]buf_lendata buffer length
Returns
error code

◆ move_to_next_state()

int Clone_Handle::move_to_next_state ( Clone_Task task,
Ha_clone_cbk callback,
Clone_Desc_State state_desc 
)
private

Move to next state.

Parameters
[in]taskclone task
[in]callbackcallback interface
[in]state_descdescriptor for next state to move to
Returns
error code

◆ notify_state_change()

void Clone_Handle::notify_state_change ( Clone_Task task,
Ha_clone_cbk callback,
Clone_Desc_State state_desc 
)
private

Notify state change via callback.

Parameters
[in]taskcurrent task
[in,out]callbackcallback interface
[in,out]state_descclone state descriptor

◆ open_file()

int Clone_Handle::open_file ( Clone_Task task,
const Clone_file_ctx file_ctx,
ulint  file_type,
bool  create_file,
File_init_cbk init_cbk 
)
private

Open file for the task.

Parameters
[in]taskclone task
[in]file_ctxfile information
[in]file_typefile type (data, log etc.)
[in]create_filecreate if not present
[in]init_cbkcallback to fill initial data
Returns
error code

◆ pins_file()

std::tuple< bool, bool > Clone_Handle::pins_file ( const Clone_Task task,
const Clone_file_ctx file_ctx 
)
private

Check if the task pins a file context.

Parameters
[in]taskclone task
[in]file_ctxsnapshot file context
Returns
true, if task pins the file, other file.

◆ process_chunk()

int Clone_Handle::process_chunk ( Clone_Task task,
uint32_t  chunk_num,
uint32_t  block_num,
Ha_clone_cbk callback 
)
private

Process a data chunk and send data blocks via callback.

Parameters
[in]tasktask that is sending the information
[in]chunk_numchunk number to process
[in]block_numstart block number
[in]callbackcallback interface
Returns
error code

◆ read_compressed_len()

bool Clone_Handle::read_compressed_len ( unsigned char *  buffer,
uint32_t  len,
uint32_t  block_size,
uint32_t &  compressed_len 
)
private

Read compressed length from the page.

Parameters
[in]bufferdata buffer
[in]lenbuffer length
[in]block_sizeblock size
[out]compressed_lencompressed length
Returns
true for compressed page false otherwise.

◆ receive_data()

int Clone_Handle::receive_data ( Clone_Task task,
uint64_t  offset,
uint64_t  file_size,
uint32_t  size,
Ha_clone_cbk callback 
)
private

Receive data from callback and apply.

Parameters
[in]tasktask that is receiving the information
[in]offsetfile offset for applying data
[in]file_sizeupdated file size
[in]sizedata length in bytes
[in]callbackcallback interface
Returns
error code

◆ replace_datadir()

bool Clone_Handle::replace_datadir ( ) const
inline
Returns
true, if clone is replacing current data directory.

◆ restart_apply()

int Clone_Handle::restart_apply ( THD thd,
const byte *&  loc,
uint &  loc_len 
)

Build locator with current state and restart apply.

Parameters
[in]thdserver THD object
[in,out]locloctor with current state information
[in,out]loc_lenlocator length in bytes
Returns
error code

◆ restart_copy()

int Clone_Handle::restart_copy ( THD thd,
const byte loc,
uint  loc_len 
)

Restart copy after a network failure.

Parameters
[in]thdserver THD object
[in]loclocator with copy state from remote client
[in]loc_lenlocator length in bytes
Returns
error code

◆ save_error()

void Clone_Handle::save_error ( int  err)
inline

Save current error number.

Parameters
[in]errerror number

◆ send_all_ddl_metadata()

int Clone_Handle::send_all_ddl_metadata ( Clone_Task task,
Ha_clone_cbk callback 
)
private

Send all DDL metadata generated.

Parameters
[in]tasktask that is sending the information
[in]callbackcallback interface
Returns
error code

◆ send_all_file_metadata()

int Clone_Handle::send_all_file_metadata ( Clone_Task task,
Ha_clone_cbk callback 
)
private

Send all file information via callback.

Parameters
[in]tasktask that is sending the information
[in]callbackcallback interface
Returns
error code

◆ send_data()

int Clone_Handle::send_data ( Clone_Task task,
const Clone_file_ctx file_ctx,
uint64_t  offset,
byte buffer,
uint32_t  size,
uint64_t  new_file_size,
Ha_clone_cbk callback 
)
private

Send cloned data via callback.

Parameters
[in]tasktask that is sending the information
[in]file_ctxfile information
[in]offsetfile offset
[in]bufferdata buffer or NULL if send from file
[in]sizedata buffer size
[in]new_file_sizeupdated file size from page 0
[in]callbackcallback interface
Returns
error code

◆ send_file_metadata()

int Clone_Handle::send_file_metadata ( Clone_Task task,
const Clone_File_Meta file_meta,
bool  is_redo,
Ha_clone_cbk callback 
)
private

Send current file information via callback.

Parameters
[in]tasktask that is sending the information
[in]file_metafile meta information
[in]is_redotrue if redo file
[in]callbackcallback interface
Returns
error code

◆ send_keep_alive()

int Clone_Handle::send_keep_alive ( Clone_Task task,
Ha_clone_cbk callback 
)

Send keep alive while during long wait.

Parameters
[in]tasktask that is sending the information
[in]callbackcallback interface
Returns
error code

◆ send_state_metadata()

int Clone_Handle::send_state_metadata ( Clone_Task task,
Ha_clone_cbk callback,
bool  is_start 
)
private

Send current state information via callback.

Parameters
[in]tasktask that is sending the information
[in]callbackcallback interface
[in]is_startif it is the start of current state
Returns
error code

◆ send_task_metadata()

int Clone_Handle::send_task_metadata ( Clone_Task task,
Ha_clone_cbk callback 
)
private

Send current task information via callback.

Parameters
[in]tasktask that is sending the information
[in]callbackcallback interface
Returns
error code

◆ set_abort()

void Clone_Handle::set_abort ( )

Set clone to ABORT state end any attached snapshot.

◆ set_compression()

int Clone_Handle::set_compression ( Clone_file_ctx file_ctx)
private

Set compression type based on local capability.

Parameters
[in,out]file_ctxfile context
Returns
error code.

◆ set_ddl_abort()

void Clone_Handle::set_ddl_abort ( )
inline

Allow concurrent DDL to abort clone.

◆ set_state()

void Clone_Handle::set_state ( Clone_Handle_State  state)
inline

Set current clone state.

Parameters
[in]stateclone handle state

◆ sparse_file_write()

int Clone_Handle::sparse_file_write ( Clone_File_Meta file_meta,
unsigned char *  buffer,
uint32_t  len,
pfs_os_file_t  file,
uint64_t  start_off 
)
private

Write pages to file and punch holes.

Parameters
[in]file_metaclone file metadata
[in]bufferdata buffer
[in]lenbuffer length
[in]filefile descriptor
[in]start_offstarting offset in file
Returns
error code

Member Data Documentation

◆ m_abort_ddl

bool Clone_Handle::m_abort_ddl
private

If concurrent DDL should abort clone.

◆ m_allow_restart

bool Clone_Handle::m_allow_restart
private

Allow restart of clone operation after network failure.

◆ m_clone_arr_index

uint Clone_Handle::m_clone_arr_index
private

Index in global array.

◆ m_clone_desc_version

uint Clone_Handle::m_clone_desc_version
private

Clone descriptor version in use.

◆ m_clone_dir

const char* Clone_Handle::m_clone_dir
private

Clone data directory.

◆ m_clone_handle_state

Clone_Handle_State Clone_Handle::m_clone_handle_state
private

Clone handle state.

◆ m_clone_handle_type

Clone_Handle_Type Clone_Handle::m_clone_handle_type
private

Clone handle type: Copy, Apply.

◆ m_clone_id

uint64_t Clone_Handle::m_clone_id
private

Unique clone identifier.

◆ m_clone_locator

byte* Clone_Handle::m_clone_locator
private

Serialized locator.

◆ m_clone_task_manager

Clone_Task_Manager Clone_Handle::m_clone_task_manager
private

Clone task manager.

◆ m_locator_length

uint Clone_Handle::m_locator_length
private

Locator length in bytes.

◆ m_ref_count

uint Clone_Handle::m_ref_count
private

Reference count.

◆ m_restart_loc

byte* Clone_Handle::m_restart_loc
private

Serialized Restart locator.

◆ m_restart_loc_len

uint Clone_Handle::m_restart_loc_len
private

Restart locator length in bytes.

◆ m_version_locator

byte Clone_Handle::m_version_locator[CLONE_DESC_MAX_BASE_LEN]
private

Fixed locator for version negotiation.


The documentation for this class was generated from the following files: