MySQL 8.4.2
Source Code Documentation
|
Dirty page archiver client context. More...
#include <arch0page.h>
Public Member Functions | |
Page_Arch_Client_Ctx (bool is_durable) | |
Constructor: Initialize elements. More... | |
~Page_Arch_Client_Ctx () | |
Destructor. More... | |
int | start (bool recovery, uint64_t *start_id) |
Start dirty page tracking and archiving. More... | |
int | stop (uint64_t *stop_id) |
Stop dirty page tracking and archiving. More... | |
void | release () |
Release archived data so that system can purge it. More... | |
int | init_during_recovery (Arch_Group *group, lsn_t last_lsn) |
Initialize context during recovery. More... | |
bool | is_active () const |
Check if this client context is active. More... | |
int | get_pages (Page_Arch_Cbk *cbk_func, void *cbk_ctx, byte *buff, uint buf_len) |
Get archived page Ids. More... | |
void | print () |
Print information related to the archiver client for debugging purposes. More... | |
Page_Arch_Client_Ctx (Page_Arch_Client_Ctx const &)=delete | |
Disable copy construction. More... | |
Page_Arch_Client_Ctx & | operator= (Page_Arch_Client_Ctx const &)=delete |
Disable assignment. More... | |
Private Member Functions | |
void | arch_client_mutex_enter () |
Acquire client archiver mutex. More... | |
void | arch_client_mutex_exit () |
Release client archiver mutex. More... | |
Private Attributes | |
Arch_Client_State | m_state {ARCH_CLIENT_STATE_INIT} |
Page archiver client state. More... | |
Arch_Group * | m_group {nullptr} |
Archive group the client is attached to. More... | |
bool | m_is_durable |
True if the client requires durablity. More... | |
lsn_t | m_start_lsn {LSN_MAX} |
Start LSN for archived data. More... | |
lsn_t | m_stop_lsn {LSN_MAX} |
Stop LSN for archived data. More... | |
lsn_t | m_last_reset_lsn {LSN_MAX} |
Reset LSN at the time of last reset. More... | |
Arch_Page_Pos | m_start_pos |
Start position for client in archived file group. More... | |
Arch_Page_Pos | m_stop_pos |
Stop position for client in archived file group. More... | |
ib_mutex_t | m_mutex |
Mutex protecting concurrent operation on data. More... | |
Dirty page archiver client context.
|
inline |
Constructor: Initialize elements.
[in] | is_durable | true if the client requires durability, else false |
|
inline |
Destructor.
|
delete |
Disable copy construction.
|
inlineprivate |
Acquire client archiver mutex.
It synchronizes members on concurrent start and stop operations.
|
inlineprivate |
Release client archiver mutex.
int Page_Arch_Client_Ctx::get_pages | ( | Page_Arch_Cbk * | cbk_func, |
void * | cbk_ctx, | ||
byte * | buff, | ||
uint | buf_len | ||
) |
Get archived page Ids.
Attempt to read blocks directly from in memory buffer. If overwritten, copy from archived files.
[in] | cbk_func | called repeatedly with page ID buffer |
[in] | cbk_ctx | callback function context |
[in,out] | buff | buffer to fill page IDs |
[in] | buf_len | buffer length in bytes |
int Page_Arch_Client_Ctx::init_during_recovery | ( | Arch_Group * | group, |
lsn_t | last_lsn | ||
) |
Initialize context during recovery.
[in] | group | Group which needs to be attached to the client |
[in] | last_lsn | last reset lsn |
|
inline |
Check if this client context is active.
|
delete |
Disable assignment.
void Page_Arch_Client_Ctx::print | ( | ) |
Print information related to the archiver client for debugging purposes.
void Page_Arch_Client_Ctx::release | ( | ) |
Release archived data so that system can purge it.
int Page_Arch_Client_Ctx::start | ( | bool | recovery, |
uint64_t * | start_id | ||
) |
Start dirty page tracking and archiving.
[in] | recovery | true if the tracking is being started as part of recovery process |
[out] | start_id | fill the start lsn |
int Page_Arch_Client_Ctx::stop | ( | uint64_t * | stop_id | ) |
Stop dirty page tracking and archiving.
[out] | stop_id | fill the stop lsn |
|
private |
Archive group the client is attached to.
|
private |
True if the client requires durablity.
|
private |
Mutex protecting concurrent operation on data.
|
private |
Start position for client in archived file group.
|
private |
Page archiver client state.
|
private |
Stop position for client in archived file group.