CUBRID Engine
latest
|
#include <log_postpone_cache.hpp>
Classes | |
class | cache_entry |
Public Member Functions | |
log_postpone_cache () | |
log_postpone_cache (log_postpone_cache &&other)=delete | |
log_postpone_cache (const log_postpone_cache &other)=delete | |
log_postpone_cache & | operator= (log_postpone_cache &&other)=delete |
log_postpone_cache & | operator= (const log_postpone_cache &other)=delete |
~log_postpone_cache ()=default | |
void | reset () |
void | add_redo_data (const log_prior_node &node) |
void | add_lsa (const log_lsa &lsa) |
bool | do_postpone (cubthread::entry &thread_ref, const log_lsa &start_postpone_lsa) |
Private Member Functions | |
bool | is_full () const |
Private Attributes | |
cubmem::extensible_block | m_redo_data_buf |
std::size_t | m_redo_data_offset |
bool | m_is_redo_data_buf_full |
std::size_t | m_cursor |
std::array< cache_entry, MAX_CACHE_ENTRIES > | m_cache_entries |
Static Private Attributes | |
static const std::size_t | MAX_CACHE_ENTRIES = 512 |
static const std::size_t | REDO_DATA_MAX_SIZE = 100 * 1024 |
static const std::size_t | BUFFER_RESET_SIZE = 1024 |
Caches postpones to avoid reading them from log after commit top operation with postpone. Otherwise, log critical section may be required which will slow the access on merged index nodes
Definition at line 46 of file log_postpone_cache.hpp.
|
inline |
Definition at line 49 of file log_postpone_cache.hpp.
|
delete |
|
delete |
|
default |
Save LSA of postpone operations
lsa | - log postpone LSA |
NOTE: This saves LSA after a new entry and its redo data have already been added. They couldn't both be added in the same step.
Definition at line 112 of file log_postpone_cache.cpp.
References assert, is_full(), log_lsa::is_null(), m_cache_entries, m_cursor, and MAX_CACHE_ENTRIES.
Referenced by log_append_postpone().
void log_postpone_cache::add_redo_data | ( | const log_prior_node & | node | ) |
Cache redo data for log postpone
node | - log prior node |
Definition at line 51 of file log_postpone_cache.cpp.
References assert, log_prior_node::data_header, cubmem::extensible_block::extend_to(), cubmem::extensible_block::get_ptr(), is_full(), m_cache_entries, m_cursor, m_is_redo_data_buf_full, log_postpone_cache::cache_entry::m_lsa, log_postpone_cache::cache_entry::m_offset, m_redo_data_buf, m_redo_data_offset, MAX_ALIGNMENT, MAX_CACHE_ENTRIES, NULL, PTR_ALIGN, log_prior_node::rdata, REDO_DATA_MAX_SIZE, log_prior_node::rlength, and log_lsa::set_null().
Referenced by log_append_postpone().
bool log_postpone_cache::do_postpone | ( | cubthread::entry & | thread_ref, |
const log_lsa & | start_postpone_lsa | ||
) |
Do postpone from cached postpone entries.
thread_ref | - thread entry |
start_postpone_lsa | - start postpone LSA |
Definition at line 137 of file log_postpone_cache.cpp.
References assert, cubmem::extensible_block::get_ptr(), i, is_full(), log_lsa::is_null(), log_rec_redo::length, log_execute_run_postpone(), m_cache_entries, m_cursor, m_is_redo_data_buf_full, log_postpone_cache::cache_entry::m_lsa, log_postpone_cache::cache_entry::m_offset, m_redo_data_buf, m_redo_data_offset, MAX_ALIGNMENT, cubmem::PRIVATE_BLOCK_ALLOCATOR, PTR_ALIGN, and reset().
Referenced by log_sysop_do_postpone(), and log_tran_do_postpone().
|
private |
Definition at line 201 of file log_postpone_cache.cpp.
References m_cursor, m_is_redo_data_buf_full, and MAX_CACHE_ENTRIES.
Referenced by add_lsa(), add_redo_data(), and do_postpone().
|
delete |
|
delete |
void log_postpone_cache::reset | ( | void | ) |
Definition at line 33 of file log_postpone_cache.cpp.
References BUFFER_RESET_SIZE, cubmem::extensible_block::freemem(), cubmem::extensible_block::get_size(), m_cursor, m_is_redo_data_buf_full, m_redo_data_buf, and m_redo_data_offset.
Referenced by do_postpone(), log_rollback(), logtb_clear_tdes(), and logtb_set_tdes().
|
staticprivate |
Definition at line 75 of file log_postpone_cache.hpp.
Referenced by reset().
|
private |
Definition at line 96 of file log_postpone_cache.hpp.
Referenced by add_lsa(), add_redo_data(), and do_postpone().
|
private |
Definition at line 95 of file log_postpone_cache.hpp.
Referenced by add_lsa(), add_redo_data(), do_postpone(), is_full(), and reset().
|
private |
Definition at line 93 of file log_postpone_cache.hpp.
Referenced by add_redo_data(), do_postpone(), is_full(), and reset().
|
private |
Definition at line 91 of file log_postpone_cache.hpp.
Referenced by add_redo_data(), do_postpone(), and reset().
|
private |
Definition at line 92 of file log_postpone_cache.hpp.
Referenced by add_redo_data(), do_postpone(), and reset().
|
staticprivate |
Definition at line 73 of file log_postpone_cache.hpp.
Referenced by add_lsa(), add_redo_data(), and is_full().
|
staticprivate |
Definition at line 74 of file log_postpone_cache.hpp.
Referenced by add_redo_data().