CUBRID Engine  latest
page_buffer.h File Reference
#include "config.h"
#include "error_manager.h"
#include "disk_manager.h"
#include "lock_manager.h"
#include "log_lsa.hpp"
#include "mem_block.hpp"
#include "perf_monitor.h"
#include "storage_common.h"
#include "tde.h"
Include dependency graph for page_buffer.h:

Go to the source code of this file.

Classes

struct  pgbuf_watcher
 

Macros

#define FREE   true /* Free page buffer */
 
#define DONT_FREE   false /* Don't free the page buffer */
 
#define VPID_GET_FROM_OID(vpid_ptr, oid_ptr)   VPID_SET (vpid_ptr, (oid_ptr)->volid, (oid_ptr)->pageid);
 
#define VPID_EQ_FOR_OIDS(oid_ptr1, oid_ptr2)
 
#define PGBUF_PAGE_VPID_AS_ARGS(pg)   pgbuf_get_volume_id (pg), pgbuf_get_page_id (pg)
 
#define PGBUF_PAGE_LSA_AS_ARGS(pg)   (long long int) pgbuf_get_lsa (pg)->pageid, (int) pgbuf_get_lsa (pg)->offset
 
#define PGBUF_PAGE_STATE_MSG(name)   name " { VPID = %d|%d, crt_lsa = %lld|%d } "
 
#define PGBUF_PAGE_STATE_ARGS(pg)   PGBUF_PAGE_VPID_AS_ARGS (pg), PGBUF_PAGE_LSA_AS_ARGS (pg)
 
#define PGBUF_PAGE_MODIFY_MSG(name)   name " { VPID = %d|%d, prev_lsa = %lld|%d, crt_lsa = %lld|%d } "
 
#define PGBUF_PAGE_MODIFY_ARGS(pg, prev_lsa)   PGBUF_PAGE_VPID_AS_ARGS (pg), LSA_AS_ARGS (prev_lsa), PGBUF_PAGE_LSA_AS_ARGS (pg)
 
#define pgbuf_unfix_and_init(thread_p, pgptr)
 
#define pgbuf_ordered_unfix_and_init(thread_p, page, pg_watcher)
 
#define PGBUF_WATCHER_MAGIC_NUMBER   0x12345678
 
#define PGBUF_ORDERED_NULL_HFID   (pgbuf_ordered_null_hfid)
 
#define PGBUF_WATCHER_SET_GROUP(w, hfid)
 
#define PGBUF_WATCHER_COPY_GROUP(w_dst, w_src)
 
#define PGBUF_WATCHER_RESET_RANK(w, rank)
 
#define PGBUF_CLEAR_WATCHER(w)
 
#define PGBUF_INIT_WATCHER(w, rank, hfid)
 
#define PGBUF_IS_CLEAN_WATCHER(w)
 
#define PGBUF_IS_ORDERED_PAGETYPE(ptype)   ((ptype) == PAGE_HEAP || (ptype) == PAGE_OVERFLOW)
 
#define pgbuf_fix(thread_p, vpid, fetch_mode, requestmode, condition)
 
#define pgbuf_ordered_fix(thread_p, req_vpid, fetch_mode, requestmode, req_watcher)
 
#define pgbuf_promote_read_latch(thread_p, pgptr_p, condition)
 
#define pgbuf_unfix(thread_p, pgptr)   pgbuf_unfix_debug(thread_p, pgptr, __FILE__, __LINE__)
 
#define pgbuf_ordered_unfix(thread_p, watcher_object)
 
#define pgbuf_invalidate_all(thread_p, volid)   pgbuf_invalidate_all_debug(thread_p, volid, __FILE__, __LINE__)
 
#define pgbuf_invalidate(thread_p, pgptr)   pgbuf_invalidate_debug(thread_p, pgptr, __FILE__, __LINE__)
 
#define pgbuf_replace_watcher(thread_p, old_watcher, new_watcher)
 
#define pgbuf_set_dirty_and_free(thread_p, pgptr)   pgbuf_set_dirty (thread_p, pgptr, FREE); pgptr = NULL
 
#define pgbuf_attach_watcher(...)   pgbuf_attach_watcher_debug (__VA_ARGS__, ARG_FILE_LINE)
 
#define pgbuf_fix_if_not_deallocated(thread_p, vpid, latch_mode, latch_condition, page)   pgbuf_fix_if_not_deallocated_with_caller (thread_p, vpid, latch_mode, latch_condition, page, ARG_FILE_LINE)
 

Typedefs

typedef VPID PGBUF_ORDERED_GROUP
 
typedef struct pgbuf_watcher PGBUF_WATCHER
 
using pgbuf_aligned_buffer = cubmem::stack_block<(size_t) IO_MAX_PAGE_SIZE >
 
using pgbuf_resizable_buffer = cubmem::extensible_stack_block<(size_t) IO_MAX_PAGE_SIZE >
 

Enumerations

enum  PAGE_FETCH_MODE {
  OLD_PAGE = 0, NEW_PAGE, OLD_PAGE_IF_IN_BUFFER, OLD_PAGE_PREVENT_DEALLOC,
  OLD_PAGE_DEALLOCATED, OLD_PAGE_MAYBE_DEALLOCATED
}
 
enum  PGBUF_LATCH_MODE {
  PGBUF_NO_LATCH = 0, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_LATCH_FLUSH,
  PGBUF_LATCH_INVALID
}
 
enum  PGBUF_LATCH_CONDITION { PGBUF_UNCONDITIONAL_LATCH, PGBUF_CONDITIONAL_LATCH }
 
enum  PGBUF_PROMOTE_CONDITION { PGBUF_PROMOTE_ONLY_READER, PGBUF_PROMOTE_SHARED_READER }
 
enum  PGBUF_DEBUG_PAGE_VALIDATION_LEVEL {
  PGBUF_DEBUG_NO_PAGE_VALIDATION, PGBUF_DEBUG_PAGE_VALIDATION_FETCH, PGBUF_DEBUG_PAGE_VALIDATION_FREE, PGBUF_DEBUG_PAGE_VALIDATION_ALL,
  PGBUF_DEBUG_NO_PAGE_VALIDATION, PGBUF_DEBUG_PAGE_VALIDATION_FETCH, PGBUF_DEBUG_PAGE_VALIDATION_FREE, PGBUF_DEBUG_PAGE_VALIDATION_ALL
}
 
enum  PGBUF_ORDERED_RANK { PGBUF_ORDERED_HEAP_HDR = 0, PGBUF_ORDERED_HEAP_NORMAL, PGBUF_ORDERED_HEAP_OVERFLOW, PGBUF_ORDERED_RANK_UNDEFINED }
 

Functions

unsigned int pgbuf_hash_vpid (const void *key_vpid, unsigned int htsize)
 
int pgbuf_compare_vpid (const void *key_vpid1, const void *key_vpid2)
 
int pgbuf_initialize (void)
 
void pgbuf_finalize (void)
 
PAGE_PTR pgbuf_fix_with_retry (THREAD_ENTRY *thread_p, const VPID *vpid, PAGE_FETCH_MODE fetch_mode, PGBUF_LATCH_MODE request_mode, int retry)
 
void pgbuf_flush (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, bool free_page)
 
PAGE_PTR pgbuf_fix_debug (THREAD_ENTRY *thread_p, const VPID *vpid, PAGE_FETCH_MODE fetch_mode, PGBUF_LATCH_MODE requestmode, PGBUF_LATCH_CONDITION condition, const char *caller_file, int caller_line)
 
int pgbuf_ordered_fix_debug (THREAD_ENTRY *thread_p, const VPID *req_vpid, PAGE_FETCH_MODE fetch_mode, const PGBUF_LATCH_MODE requestmode, PGBUF_WATCHER *req_watcher, const char *caller_file, int caller_line)
 
int pgbuf_promote_read_latch_debug (THREAD_ENTRY *thread_p, PAGE_PTR *pgptr_p, PGBUF_PROMOTE_CONDITION condition, const char *caller_file, int caller_line)
 
void pgbuf_unfix_debug (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, const char *caller_file, int caller_line)
 
void pgbuf_ordered_unfix_debug (THREAD_ENTRY *thread_p, PGBUF_WATCHER *watcher_object, const char *caller_file, int caller_line)
 
int pgbuf_invalidate_all_debug (THREAD_ENTRY *thread_p, VOLID volid, const char *caller_file, int caller_line)
 
int pgbuf_invalidate_debug (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, const char *caller_file, int caller_line)
 
PAGE_PTR pgbuf_flush_with_wal (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
void pgbuf_flush_if_requested (THREAD_ENTRY *thread_p, PAGE_PTR page)
 
int pgbuf_flush_victim_candidates (THREAD_ENTRY *thread_p, float flush_ratio, PERF_UTIME_TRACKER *time_tracker, bool *stop)
 
int pgbuf_flush_checkpoint (THREAD_ENTRY *thread_p, const LOG_LSA *flush_upto_lsa, const LOG_LSA *prev_chkpt_redo_lsa, LOG_LSA *smallest_lsa, int *flushed_page_cnt)
 
int pgbuf_flush_all (THREAD_ENTRY *thread_p, VOLID volid)
 
int pgbuf_flush_all_unfixed (THREAD_ENTRY *thread_p, VOLID volid)
 
int pgbuf_flush_all_unfixed_and_set_lsa_as_null (THREAD_ENTRY *thread_p, VOLID volid)
 
void pgbuf_replace_watcher_debug (THREAD_ENTRY *thread_p, PGBUF_WATCHER *old_watcher, PGBUF_WATCHER *new_watcher, const char *caller_file, const int caller_line)
 
void * pgbuf_copy_to_area (THREAD_ENTRY *thread_p, const VPID *vpid, int start_offset, int length, void *area, bool do_fetch)
 
void * pgbuf_copy_from_area (THREAD_ENTRY *thread_p, const VPID *vpid, int start_offset, int length, void *area, bool do_fetch, TDE_ALGORITHM tde_algo)
 
void pgbuf_set_dirty (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, bool free_page)
 
LOG_LSApgbuf_get_lsa (PAGE_PTR pgptr)
 
int pgbuf_page_has_changed (PAGE_PTR pgptr, LOG_LSA *ref_lsa)
 
const LOG_LSApgbuf_set_lsa (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, const LOG_LSA *lsa_ptr)
 
void pgbuf_reset_temp_lsa (PAGE_PTR pgptr)
 
void pgbuf_set_tde_algorithm (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, TDE_ALGORITHM tde_algo, bool skip_logging)
 
int pgbuf_rv_set_tde_algorithm (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
TDE_ALGORITHM pgbuf_get_tde_algorithm (PAGE_PTR pgptr)
 
void pgbuf_get_vpid (PAGE_PTR pgptr, VPID *vpid)
 
VPIDpgbuf_get_vpid_ptr (PAGE_PTR pgptr)
 
PGBUF_LATCH_MODE pgbuf_get_latch_mode (PAGE_PTR pgptr)
 
PAGEID pgbuf_get_page_id (PAGE_PTR pgptr)
 
PAGE_TYPE pgbuf_get_page_ptype (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
VOLID pgbuf_get_volume_id (PAGE_PTR pgptr)
 
const char * pgbuf_get_volume_label (PAGE_PTR pgptr)
 
void pgbuf_force_to_check_for_interrupts (void)
 
bool pgbuf_is_log_check_for_interrupts (THREAD_ENTRY *thread_p)
 
void pgbuf_unfix_all (THREAD_ENTRY *thread_p)
 
void pgbuf_set_lsa_as_temporary (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
void pgbuf_set_page_ptype (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PAGE_TYPE ptype)
 
bool pgbuf_is_lsa_temporary (PAGE_PTR pgptr)
 
bool pgbuf_check_page_ptype (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PAGE_TYPE ptype)
 
bool pgbuf_check_page_type_no_error (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PAGE_TYPE ptype)
 
DISK_ISVALID pgbuf_is_valid_page (THREAD_ENTRY *thread_p, const VPID *vpid, bool no_error, DISK_ISVALID(*fun)(const VPID *vpid, void *args), void *args)
 
bool pgbuf_has_perm_pages_fixed (THREAD_ENTRY *thread_p)
 
void pgbuf_ordered_set_dirty_and_free (THREAD_ENTRY *thread_p, PGBUF_WATCHER *pg_watcher)
 
int pgbuf_get_condition_for_ordered_fix (const VPID *vpid_new_page, const VPID *vpid_fixed_page, const HFID *hfid)
 
void pgbuf_watcher_init_debug (PGBUF_WATCHER *watcher, const char *caller_file, const int caller_line, bool add)
 
bool pgbuf_is_page_fixed_by_thread (THREAD_ENTRY *thread_p, const VPID *vpid_p)
 
void pgbuf_attach_watcher_debug (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGBUF_LATCH_MODE latch_mode, HFID *hfid, PGBUF_WATCHER *watcher, const char *file, const int line)
 
bool pgbuf_has_any_waiters (PAGE_PTR pgptr)
 
bool pgbuf_has_any_non_vacuum_waiters (PAGE_PTR pgptr)
 
bool pgbuf_has_prevent_dealloc (PAGE_PTR pgptr)
 
void pgbuf_peek_stats (UINT64 *fixed_cnt, UINT64 *dirty_cnt, UINT64 *lru1_cnt, UINT64 *lru2_cnt, UINT64 *lru3_cnt, UINT64 *vict_candidates, UINT64 *avoid_dealloc_cnt, UINT64 *avoid_victim_cnt, UINT64 *private_quota, UINT64 *private_cnt, UINT64 *alloc_bcb_waiter_high, UINT64 *alloc_bcb_waiter_med, UINT64 *alloc_bcb_waiter_low, UINT64 *lfcq_big_prv_num, UINT64 *lfcq_prv_num, UINT64 *lfcq_shr_num)
 
void pgbuf_daemons_get_stats (UINT64 *stats_out)
 
int pgbuf_flush_control_from_dirty_ratio (void)
 
int pgbuf_rv_flush_page (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
void pgbuf_rv_flush_page_dump (FILE *fp, int length, void *data)
 
int pgbuf_get_fix_count (PAGE_PTR pgptr)
 
int pgbuf_get_hold_count (THREAD_ENTRY *thread_p)
 
PERF_PAGE_TYPE pgbuf_get_page_type_for_stat (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
void pgbuf_log_new_page (THREAD_ENTRY *thread_p, PAGE_PTR page_new, int data_size, PAGE_TYPE ptype_new)
 
void pgbuf_log_redo_new_page (THREAD_ENTRY *thread_p, PAGE_PTR page_new, int data_size, PAGE_TYPE ptype_new)
 
int pgbuf_rv_new_page_redo (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int pgbuf_rv_new_page_undo (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
void pgbuf_dealloc_page (THREAD_ENTRY *thread_p, PAGE_PTR page_dealloc)
 
int pgbuf_rv_dealloc_redo (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int pgbuf_rv_dealloc_undo (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int pgbuf_rv_dealloc_undo_compensate (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int pgbuf_fix_if_not_deallocated_with_caller (THREAD_ENTRY *thead_p, const VPID *vpid, PGBUF_LATCH_MODE latch_mode, PGBUF_LATCH_CONDITION latch_condition, PAGE_PTR *page, const char *caller_file, int caller_line)
 
int pgbuf_release_private_lru (THREAD_ENTRY *thread_p, const int private_idx)
 
int pgbuf_assign_private_lru (THREAD_ENTRY *thread_p, bool is_vacuum, const int id)
 
void pgbuf_adjust_quotas (THREAD_ENTRY *thread_p)
 
void pgbuf_notify_vacuum_follows (THREAD_ENTRY *thread_p, PAGE_PTR page)
 
bool pgbuf_is_io_stressful (void)
 
int pgbuf_start_scan (THREAD_ENTRY *thread_p, int type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
 

Variables

const VPID vpid_Null_vpid
 
HFIDpgbuf_ordered_null_hfid
 
const log_lsa PGBUF_TEMP_LSA = { NULL_LOG_PAGEID - 1, NULL_LOG_OFFSET - 1 }
 

Macro Definition Documentation

#define DONT_FREE   false /* Don't free the page buffer */

Definition at line 41 of file page_buffer.h.

Referenced by btree_construct_leafs(), btree_fix_root_for_insert(), btree_initialize_new_page(), btree_insert_mvcc_delid_into_page(), btree_key_append_object_as_new_overflow(), btree_key_append_object_non_unique(), btree_key_append_object_to_overflow(), btree_key_append_object_unique(), btree_key_insert_new_key(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_relocate_last_into_ovf(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_insert_mvccid(), btree_leaf_record_replace_first_with_last(), btree_merge_node(), btree_merge_root(), btree_modify_leaf_ovfl_vpid(), btree_modify_overflow_link(), btree_overflow_record_replace_object(), btree_record_remove_object(), btree_reflect_global_unique_statistics(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_nodehdr_redo_insert(), btree_rv_nodehdr_undo_insert(), btree_rv_nodehdr_undoredo_update(), btree_rv_noderec_redo_insert(), btree_rv_noderec_undo_insert(), btree_rv_noderec_undoredo_update(), btree_rv_nop(), btree_rv_ovfid_undoredo_update(), btree_rv_pagerec_delete(), btree_rv_pagerec_insert(), btree_rv_record_modify_internal(), btree_rv_roothdr_undo_update(), btree_rv_undo_mark_dealloc_page(), btree_rv_undoredo_copy_page(), btree_set_vpid_previous_vpid(), btree_split_node(), btree_split_node_and_advance(), btree_split_root(), btree_start_overflow_page(), catalog_drop_representation_class_from_page(), catalog_initialize_new_page(), catalog_put_record_into_page(), catalog_rv_delete_redo(), catalog_rv_insert_redo(), catalog_rv_insert_undo(), catalog_rv_new_page_redo(), catalog_rv_update(), disk_rv_redo_init_map(), disk_rv_reserve_sectors(), disk_rv_undoredo_link(), disk_rv_undoredo_set_boot_hfid(), disk_rv_undoredo_set_creation_time(), disk_rv_unreserve_sectors(), disk_rv_volhead_extend_redo(), disk_rv_volhead_extend_undo(), disk_set_checkpoint(), disk_set_creation(), disk_set_link(), disk_stab_init(), disk_stab_unit_reserve(), disk_stab_unit_unreserve(), ehash_adjust_local_depth(), ehash_delete(), ehash_initialize_bucket_new_page(), ehash_initialize_dir_new_page(), ehash_insert_to_bucket(), ehash_merge_permanent(), ehash_rv_connect_bucket_redo(), ehash_rv_delete(), ehash_rv_delete_redo(), ehash_rv_increment(), ehash_rv_init_dir_new_page_redo(), ehash_rv_insert_redo(), ehash_split_bucket(), file_alloc_sticky_first_page(), file_dealloc(), file_extdata_merge_pages(), file_extdata_update_item(), file_header_update_mark_deleted(), file_init_page_type_internal(), file_log_extdata_add(), file_log_extdata_remove(), file_log_extdata_set_next(), file_log_fhead_alloc(), file_log_fhead_dealloc(), file_numerable_add_page(), file_perm_dealloc(), file_perm_expand(), file_rv_extdata_add(), file_rv_extdata_merge(), file_rv_extdata_remove(), file_rv_extdata_set_next(), file_rv_fhead_alloc(), file_rv_fhead_convert_ftab_to_user_page(), file_rv_fhead_convert_user_to_ftab_page(), file_rv_fhead_dealloc(), file_rv_fhead_set_last_user_page_ftab(), file_rv_fhead_sticky_page(), file_rv_header_update_mark_deleted(), file_rv_partsect_update(), file_rv_perm_expand_redo(), file_rv_perm_expand_undo(), file_rv_set_tde_algorithm(), file_rv_tracker_mark_heap_deleted_compensate_or_run_postpone(), file_rv_tracker_reuse_heap(), file_rv_user_page_mark_delete(), file_rv_user_page_unmark_delete_logical(), file_rv_user_page_unmark_delete_physical(), file_temp_alloc(), file_temp_reset_user_pages(), file_temp_set_type(), file_tracker_init_page(), file_tracker_item_mark_heap_deleted(), file_tracker_item_reuse_heap(), file_tracker_register_internal(), heap_add_chain_links(), heap_compact_pages(), heap_delete_bigone(), heap_delete_physical(), heap_delete_relocation(), heap_insert_logical(), heap_insert_newhome(), heap_ovf_find_vfid(), heap_remove_page_on_vacuum(), heap_rv_mvcc_redo_delete_home(), heap_rv_mvcc_redo_delete_newhome(), heap_rv_mvcc_redo_delete_overflow(), heap_rv_mvcc_redo_insert(), heap_rv_mvcc_redo_redistribute(), heap_rv_mvcc_undo_delete(), heap_rv_mvcc_undo_delete_overflow(), heap_rv_nop(), heap_rv_redo_delete(), heap_rv_redo_insert(), heap_rv_redo_mark_reusable_slot(), heap_rv_redo_newpage(), heap_rv_redo_reuse_page(), heap_rv_redo_reuse_page_reuse_oid(), heap_rv_undo_insert(), heap_rv_undo_ovf_update(), heap_rv_undoredo_pagehdr(), heap_rv_update_chain_after_mvcc_op(), heap_update_and_log_header(), heap_update_bigone(), heap_update_physical(), heap_update_relocation(), heap_update_set_prev_version(), heap_vpid_alloc(), heap_vpid_init_new(), log_rv_copy_char(), log_rv_record_modify_internal(), overflow_rv_link(), overflow_rv_newpage_link_undo(), pgbuf_log_new_page(), pgbuf_log_redo_new_page(), pgbuf_ordered_set_dirty_and_free(), pgbuf_rv_dealloc_redo(), pgbuf_rv_flush_page(), pgbuf_rv_new_page_redo(), pgbuf_rv_new_page_undo(), pgbuf_set_tde_algorithm(), qfile_add_overflow_tuple_to_list(), qfile_add_tuple_get_pos_in_list(), qfile_add_tuple_to_list(), qfile_fast_intint_tuple_to_list(), qfile_fast_intval_tuple_to_list(), qfile_fast_val_tuple_to_list(), qfile_generate_tuple_into_list(), qfile_get_first_page(), qfile_set_tuple_column_value(), qmgr_init_external_file_page(), spage_delete(), spage_delete_for_recovery(), spage_initialize(), spage_insert_data(), spage_insert_for_recovery(), spage_merge(), spage_overwrite(), spage_put_helper(), spage_reclaim(), spage_split(), spage_take_out(), spage_update(), spage_update_record_type(), vacuum_consume_buffer_log_blocks(), vacuum_data_empty_page(), vacuum_data_load_and_recover(), vacuum_data_mark_finished(), vacuum_dropped_files_set_next_page(), vacuum_heap_page(), vacuum_heap_page_log_and_reset(), vacuum_heap_record(), vacuum_init_data_page_with_last_blockid(), vacuum_rv_check_at_undo(), vacuum_rv_redo_add_dropped_file(), vacuum_rv_redo_append_data(), vacuum_rv_redo_cleanup_dropped_files(), vacuum_rv_redo_data_finished(), vacuum_rv_redo_initialize_data_page(), vacuum_rv_redo_remove_ovf_insid(), vacuum_rv_redo_start_job(), vacuum_rv_redo_vacuum_complete(), vacuum_rv_redo_vacuum_heap_page(), vacuum_rv_redo_vacuum_heap_record(), vacuum_rv_replace_dropped_file(), vacuum_rv_set_next_page_dropped_files(), vacuum_rv_undo_add_dropped_file(), vacuum_rv_undoredo_data_set_link(), vacuum_set_dirty_data_page_dont_free(), xheap_reclaim_addresses(), and xvacuum().

#define FREE   true /* Free page buffer */

Definition at line 40 of file page_buffer.h.

#define pgbuf_attach_watcher (   ...)    pgbuf_attach_watcher_debug (__VA_ARGS__, ARG_FILE_LINE)

Definition at line 394 of file page_buffer.h.

Referenced by heap_alloc_new_page(), and heap_remove_page_on_vacuum().

#define PGBUF_CLEAR_WATCHER (   w)
Value:
do { \
(w)->next = NULL; \
(w)->prev = NULL; \
(w)->pgptr = NULL; \
pgbuf_watcher_init_debug ((w), __FILE__, __LINE__, false); \
} while (0)
#define NULL
Definition: freelistheap.h:34
void pgbuf_watcher_init_debug(PGBUF_WATCHER *watcher, const char *caller_file, const int caller_line, bool add)

Definition at line 115 of file page_buffer.h.

Referenced by heap_add_chain_links(), and pgbuf_ordered_fix_debug().

#define pgbuf_fix (   thread_p,
  vpid,
  fetch_mode,
  requestmode,
  condition 
)
Value:
pgbuf_fix_debug(thread_p, vpid, fetch_mode, requestmode, condition, \
__FILE__, __LINE__)
PAGE_PTR pgbuf_fix_debug(THREAD_ENTRY *thread_p, const VPID *vpid, PAGE_FETCH_MODE fetch_mode, PGBUF_LATCH_MODE requestmode, PGBUF_LATCH_CONDITION condition, const char *caller_file, int caller_line)
Definition: page_buffer.c:1789

Definition at line 255 of file page_buffer.h.

Referenced by btree_advance_and_find_key(), btree_advance_to_next_slot_and_fix_page(), btree_build_nleafs(), btree_check_pages(), btree_check_tree(), btree_dump(), btree_dump_leaf_record(), btree_dump_page_with_subtree(), btree_find_AR_sampling_leaf(), btree_find_boundary_leaf(), btree_find_free_overflow_oids_page(), btree_find_key(), btree_find_key_from_nleaf(), btree_find_min_or_max_key(), btree_find_next_index_record_holding_current_helper(), btree_find_oid_and_its_page(), btree_fix_ovfl_oid_page(), btree_fix_ovfl_oid_pages_tree(), btree_fix_root_with_info(), btree_get_asc_desc(), btree_get_next_node_info(), btree_get_next_page(), btree_get_num_visible_oids_from_all_ovf(), btree_get_stats(), btree_get_subtree_capacity(), btree_get_unique_statistics(), btree_index_capacity(), btree_key_find_and_lock_unique_of_non_unique(), btree_key_find_first_visible_row_from_all_ovf(), btree_key_process_objects(), btree_merge_node_and_advance(), btree_range_scan_advance_over_filtered_keys(), btree_range_scan_descending_fix_prev_leaf(), btree_range_scan_find_fk_any_object(), btree_range_scan_select_visible_oids(), btree_read_key_type(), btree_reflect_global_unique_statistics(), btree_repair_prev_link_by_btid(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_read_keyval_info_nocopy(), btree_scan_for_show_index_capacity(), btree_scan_for_show_index_header(), btree_split_node_and_advance(), btree_verify_subtree(), btree_verify_tree(), catalog_check_class_consistency(), catalog_drop_disk_representation_from_page(), catalog_drop_representation_class_from_page(), catalog_drop_representation_helper(), catalog_fetch_btree_statistics(), catalog_find_optimal_page(), catalog_get_class_info(), catalog_get_record_from_page(), catalog_get_rep_dir(), catalog_get_representation_record(), catalog_update_class_info(), disk_check(), disk_format(), disk_get_volheader_internal(), disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), disk_set_boot_hfid(), disk_stab_cursor_fix(), disk_stab_init(), ehash_fix_old_page(), file_alloc(), file_alloc_multiple(), file_alloc_sticky_first_page(), file_apply_tde_algorithm(), file_check_vpid(), file_create(), file_dealloc(), file_descriptor_dump(), file_descriptor_get(), file_descriptor_update(), file_destroy(), file_dump(), file_extdata_apply_funcs(), file_extdata_find_and_remove_item(), file_extdata_find_not_full(), file_get_num_user_pages(), file_get_sticky_first_page(), file_get_tde_algorithm(), file_get_type(), file_header_copy(), file_is_temp(), file_map_pages(), file_numerable_add_page(), file_numerable_find_nth(), file_numerable_truncate(), file_perm_dealloc(), file_postpone_destroy(), file_rv_dealloc_internal(), file_rv_tracker_mark_heap_deleted_compensate_or_run_postpone(), file_rv_tracker_unregister_undo(), file_rv_user_page_unmark_delete_logical(), file_sector_map_dealloc(), file_sector_map_pages(), file_set_tde_algorithm(), file_table_add_full_sector(), file_table_append_full_sector_page(), file_table_check(), file_table_move_partial_sectors_to_header(), file_temp_alloc(), file_temp_reset_user_pages(), file_temp_set_type(), file_tracker_apply_to_file(), file_tracker_get_and_protect(), file_tracker_interruptable_iterate(), file_tracker_item_dump_capacity(), file_tracker_item_reuse_heap(), file_tracker_item_spacedb(), file_tracker_map(), file_tracker_register(), file_tracker_register_internal(), file_tracker_spacedb(), file_tracker_unregister(), heap_attrinfo_check_unique_index(), heap_chkreloc_next(), heap_classrepr_get(), heap_estimate(), heap_ovf_find_vfid(), heap_reuse(), heap_stats_update_internal(), heap_update_bigone(), log_rollback_record(), log_rv_redo_fix_page(), log_rv_undo_record(), logpb_check_and_reset_temp_lsa(), orc_diskrep_from_record(), overflow_get_capacity(), overflow_get_length(), overflow_get_nbytes(), overflow_insert(), overflow_traverse(), overflow_update(), pgbuf_copy_from_area(), pgbuf_copy_to_area(), pgbuf_fix_with_retry(), pgbuf_rv_dealloc_undo(), pgbuf_rv_flush_page(), qfile_reopen_list_as_append_mode(), qmgr_get_old_page(), scan_open_index_key_info_scan(), scan_open_index_node_info_scan(), scan_open_index_scan(), vacuum_heap_page(), vacuum_heap_prepare_record(), xbtree_add_index(), xbtree_delete_index(), xbtree_get_key_type(), xbtree_get_unique_pk(), and xfile_apply_tde_to_class_files().

#define pgbuf_fix_if_not_deallocated (   thread_p,
  vpid,
  latch_mode,
  latch_condition,
  page 
)    pgbuf_fix_if_not_deallocated_with_caller (thread_p, vpid, latch_mode, latch_condition, page, ARG_FILE_LINE)
#define PGBUF_INIT_WATCHER (   w,
  rank,
  hfid 
)
Value:
do { \
(w)->latch_mode = PGBUF_NO_LATCH; \
(w)->page_was_unfixed = false; \
(w)->initial_rank = (rank); \
(w)->curr_rank = PGBUF_ORDERED_RANK_UNDEFINED; \
(w)->watched_at[0] = '\0'; \
} while (0)
#define PGBUF_CLEAR_WATCHER(w)
Definition: page_buffer.h:115
#define PGBUF_WATCHER_SET_GROUP(w, hfid)
Definition: page_buffer.h:87
#define PGBUF_WATCHER_MAGIC_NUMBER
Definition: page_buffer.h:84

Definition at line 123 of file page_buffer.h.

Referenced by heap_add_chain_links(), heap_alloc_new_page(), heap_check_all_pages_by_heapchain(), heap_clear_operation_context(), heap_compact_pages(), heap_does_exist(), heap_dump(), heap_get_capacity(), heap_get_class_oid(), heap_get_last_vpid(), heap_get_num_objects(), heap_init_get_context(), heap_next_internal(), heap_page_next(), heap_page_prev(), heap_remove_page_on_vacuum(), heap_rv_postpone_append_pages_to_heap(), heap_scancache_quick_start_internal(), heap_scancache_start_internal(), heap_stats_find_best_page(), heap_stats_sync_bestspace(), heap_update_home(), heap_update_relocation(), heap_update_set_prev_version(), heap_vacuum_all_objects(), heap_vpid_alloc(), heap_vpid_remove(), pgbuf_attach_watcher_debug(), redistribute_partition_data(), and xheap_reclaim_addresses().

#define pgbuf_invalidate (   thread_p,
  pgptr 
)    pgbuf_invalidate_debug(thread_p, pgptr, __FILE__, __LINE__)

Definition at line 290 of file page_buffer.h.

Referenced by disk_set_creation(), and disk_set_link().

#define pgbuf_invalidate_all (   thread_p,
  volid 
)    pgbuf_invalidate_all_debug(thread_p, volid, __FILE__, __LINE__)
#define PGBUF_IS_CLEAN_WATCHER (   w)
Value:
(((w) != NULL && (w)->next == NULL \
&& (w)->prev == NULL && (w)->pgptr == NULL) ? true : false)
#define NULL
Definition: freelistheap.h:34

Definition at line 153 of file page_buffer.h.

Referenced by heap_get_record_info(), heap_scancache_quick_end(), heap_stats_find_page_in_bestspace(), heap_update_and_log_header(), heap_vpid_alloc(), and pgbuf_replace_watcher_debug().

#define PGBUF_IS_ORDERED_PAGETYPE (   ptype)    ((ptype) == PAGE_HEAP || (ptype) == PAGE_OVERFLOW)

Definition at line 156 of file page_buffer.h.

Referenced by pgbuf_ordered_fix_debug().

#define pgbuf_ordered_fix (   thread_p,
  req_vpid,
  fetch_mode,
  requestmode,
  req_watcher 
)
Value:
pgbuf_ordered_fix_debug(thread_p, req_vpid, fetch_mode, requestmode, \
req_watcher, __FILE__, __LINE__)
int pgbuf_ordered_fix_debug(THREAD_ENTRY *thread_p, const VPID *req_vpid, PAGE_FETCH_MODE fetch_mode, const PGBUF_LATCH_MODE requestmode, PGBUF_WATCHER *req_watcher, const char *caller_file, int caller_line)

Definition at line 261 of file page_buffer.h.

Referenced by heap_compact_pages(), heap_delete_bigone(), heap_fix_forward_page(), heap_fix_header_page(), heap_get_last_vpid(), heap_get_num_objects(), heap_prepare_object_page(), heap_remove_page_on_vacuum(), heap_stats_find_best_page(), heap_stats_sync_bestspace(), heap_update_set_prev_version(), heap_vacuum_all_objects(), redistribute_partition_data(), scan_next_heap_scan(), and xheap_reclaim_addresses().

#define pgbuf_ordered_unfix (   thread_p,
  watcher_object 
)
#define pgbuf_ordered_unfix_and_init (   thread_p,
  page,
  pg_watcher 
)
Value:
do { \
if ((pg_watcher) != NULL) \
{ \
assert ((page) == (pg_watcher)->pgptr); \
pgbuf_ordered_unfix ((thread_p), (pg_watcher)); \
(pg_watcher)->pgptr = NULL; \
} \
{ \
pgbuf_unfix_and_init ((thread_p), (page)); \
} \
(page) = NULL; \
} while (0)
#define pgbuf_unfix_and_init(thread_p, pgptr)
Definition: page_buffer.h:63
#define assert(x)
#define NULL
Definition: freelistheap.h:34
if(extra_options)
Definition: dynamic_load.c:958
else
#define pgbuf_ordered_unfix(thread_p, watcher_object)
Definition: page_buffer.h:280

Definition at line 69 of file page_buffer.h.

Referenced by heap_add_chain_links(), heap_remove_page_on_vacuum(), heap_rv_postpone_append_pages_to_heap(), locator_multi_insert_force(), and pgbuf_ordered_fix_debug().

#define PGBUF_PAGE_LSA_AS_ARGS (   pg)    (long long int) pgbuf_get_lsa (pg)->pageid, (int) pgbuf_get_lsa (pg)->offset
#define PGBUF_PAGE_MODIFY_MSG (   name)    name " { VPID = %d|%d, prev_lsa = %lld|%d, crt_lsa = %lld|%d } "
#define pgbuf_promote_read_latch (   thread_p,
  pgptr_p,
  condition 
)
Value:
pgbuf_promote_read_latch_debug(thread_p, pgptr_p, condition, \
__FILE__, __LINE__)
int pgbuf_promote_read_latch_debug(THREAD_ENTRY *thread_p, PAGE_PTR *pgptr_p, PGBUF_PROMOTE_CONDITION condition, const char *caller_file, int caller_line)
Definition: page_buffer.c:2198

Definition at line 270 of file page_buffer.h.

Referenced by btree_fix_root_for_insert(), btree_merge_node_and_advance(), btree_split_node_and_advance(), and file_numerable_find_nth().

#define pgbuf_replace_watcher (   thread_p,
  old_watcher,
  new_watcher 
)
#define pgbuf_unfix (   thread_p,
  pgptr 
)    pgbuf_unfix_debug(thread_p, pgptr, __FILE__, __LINE__)

Definition at line 276 of file page_buffer.h.

Referenced by btree_fix_root_with_info(), btree_range_scan_advance_over_filtered_keys(), btree_repair_prev_link_by_btid(), btree_search_key_and_apply_functions(), disk_check(), disk_check_sectors_are_reserved_in_volume(), disk_format(), disk_is_page_sector_reserved_with_debug_crash(), disk_reserve_sectors_in_volume(), disk_rv_undo_format(), disk_stab_init(), disk_unreserve_sectors_from_volume(), disk_volume_boot(), disk_volume_header_next_scan(), ehash_shrink_directory(), file_alloc(), file_alloc_multiple(), file_alloc_sticky_first_page(), file_apply_tde_algorithm(), file_check_vpid(), file_create(), file_dealloc(), file_descriptor_dump(), file_descriptor_get(), file_destroy(), file_dump(), file_extdata_apply_funcs(), file_extdata_find_and_remove_item(), file_get_num_user_pages(), file_get_sticky_first_page(), file_get_tde_algorithm(), file_get_type(), file_header_copy(), file_is_temp(), file_map_pages(), file_numerable_add_page(), file_numerable_find_nth(), file_numerable_truncate(), file_perm_dealloc(), file_rv_dealloc_internal(), file_rv_tracker_mark_heap_deleted_compensate_or_run_postpone(), file_rv_user_page_unmark_delete_logical(), file_table_add_full_sector(), file_table_check(), file_temp_reset_user_pages(), file_temp_set_type(), file_tracker_apply_to_file(), file_tracker_get_and_protect(), file_tracker_interruptable_iterate(), file_tracker_item_dump_capacity(), file_tracker_item_reuse_heap(), file_tracker_map(), file_tracker_register(), file_tracker_register_internal(), file_tracker_unregister(), log_execute_run_postpone(), log_recovery_redo(), log_rollback_record(), log_rv_undo_record(), logpb_check_and_reset_temp_lsa(), pgbuf_fix_debug(), pgbuf_flush(), pgbuf_ordered_fix_debug(), pgbuf_ordered_unfix_debug(), pgbuf_rv_flush_page(), pgbuf_set_dirty(), qmgr_free_old_page(), xbtree_get_key_type(), xdisk_get_total_numpages(), and xehash_destroy().

#define pgbuf_unfix_and_init (   thread_p,
  pgptr 
)
Value:
do { \
pgbuf_unfix ((thread_p), (pgptr)); \
(pgptr) = NULL; \
} while (0)
#define pgbuf_unfix(thread_p, pgptr)
Definition: page_buffer.h:276
#define NULL
Definition: freelistheap.h:34

Definition at line 63 of file page_buffer.h.

Referenced by btree_advance_to_next_slot_and_fix_page(), btree_build_nleafs(), btree_check_pages(), btree_check_tree(), btree_construct_leafs(), btree_dump(), btree_dump_leaf_record(), btree_dump_page_with_subtree(), btree_find_AR_sampling_leaf(), btree_find_boundary_leaf(), btree_find_free_overflow_oids_page(), btree_find_key(), btree_find_key_from_leaf(), btree_find_key_from_nleaf(), btree_find_min_or_max_key(), btree_find_next_index_record(), btree_find_next_index_record_holding_current(), btree_find_next_index_record_holding_current_helper(), btree_find_oid_and_its_page(), btree_fix_ovfl_oid_page(), btree_fix_ovfl_oid_pages_tree(), btree_fix_root_for_delete(), btree_fix_root_for_insert(), btree_fk_object_does_exist(), btree_get_asc_desc(), btree_get_class_oid_of_unique_btid(), btree_get_next_key_info(), btree_get_next_node_info(), btree_get_next_page(), btree_get_num_visible_oids_from_all_ovf(), btree_get_stats(), btree_get_stats_with_AR_sampling(), btree_get_stats_with_fullscan(), btree_get_subtree_capacity(), btree_get_unique_statistics(), btree_index_capacity(), btree_key_append_object_as_new_overflow(), btree_key_append_object_into_ovf(), btree_key_delete_remove_object(), btree_key_find_and_insert_delete_mvccid(), btree_key_find_and_lock_unique_of_non_unique(), btree_key_find_first_visible_row_from_all_ovf(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_process_objects(), btree_key_remove_delete_mvccid(), btree_key_remove_insert_mvccid(), btree_key_remove_object_and_keep_visible_first(), btree_load_check_fk(), btree_load_new_page(), btree_merge_node(), btree_merge_node_and_advance(), btree_overflow_remove_object(), btree_prepare_bts(), btree_proceed_leaf(), btree_range_scan(), btree_range_scan_descending_fix_prev_leaf(), btree_range_scan_find_fk_any_object(), btree_range_scan_resume(), btree_range_scan_select_visible_oids(), btree_range_scan_start(), btree_read_key_type(), btree_reflect_global_unique_statistics(), btree_repair_prev_link_by_btid(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_read_keyval_info_nocopy(), btree_save_last_leafrec(), btree_scan_for_show_index_capacity(), btree_scan_for_show_index_header(), btree_search_key_and_apply_functions(), btree_split_node(), btree_split_node_and_advance(), btree_split_test(), btree_verify_subtree(), btree_verify_tree(), bts_reset_scan(), catalog_add_class_info(), catalog_add_representation(), catalog_check_class_consistency(), catalog_create(), catalog_drop_all(), catalog_drop_all_representation_and_class(), catalog_drop_disk_representation_from_page(), catalog_drop_old_representations(), catalog_drop_representation_class_from_page(), catalog_drop_representation_helper(), catalog_drop_representation_item(), catalog_fetch_btree_statistics(), catalog_find_optimal_page(), catalog_get_class_info(), catalog_get_last_representation_id(), catalog_get_record_from_page(), catalog_get_rep_dir(), catalog_get_representation(), catalog_get_representation_directory(), catalog_get_representation_item(), catalog_get_representation_record(), catalog_insert_representation_item(), catalog_put_record_into_page(), catalog_put_representation_item(), catalog_update_class_info(), disk_check(), disk_check_volume(), disk_dump_volume_system_info(), disk_format(), disk_get_boot_db_charset(), disk_get_boot_hfid(), disk_get_checkpoint(), disk_get_creation_time(), disk_get_link(), disk_get_total_numsectors(), disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), disk_set_creation(), disk_set_link(), disk_spacedb(), disk_stab_cursor_unfix(), disk_volume_boot(), ehash_check_merge_possible(), ehash_connect_bucket(), ehash_delete(), ehash_dump(), ehash_expand_directory(), ehash_extend_bucket(), ehash_find_bucket_vpid(), ehash_find_bucket_vpid_with_hash(), ehash_find_depth(), ehash_hash(), ehash_insert_bucket_after_extend_if_need(), ehash_insert_helper(), ehash_insert_to_bucket_after_create(), ehash_map(), ehash_merge(), ehash_rv_delete(), ehash_search(), ehash_shrink_directory(), ehash_split_bucket(), file_alloc(), file_check_vpid(), file_create(), file_destroy(), file_extdata_apply_funcs(), file_extdata_find_and_remove_item(), file_extdata_find_not_full(), file_perm_dealloc(), file_postpone_destroy(), file_rv_tracker_mark_heap_deleted_compensate_or_run_postpone(), file_rv_tracker_unregister_undo(), file_sector_map_dealloc(), file_sector_map_pages(), file_table_add_full_sector(), file_table_append_full_sector_page(), file_table_check(), file_table_move_partial_sectors_to_header(), file_temp_alloc(), file_tracker_interruptable_iterate(), file_tracker_item_spacedb(), file_tracker_map(), file_tracker_register_internal(), file_tracker_spacedb(), heap_attrinfo_check_unique_index(), heap_check_all_pages(), heap_chkreloc_next(), heap_classrepr_get(), heap_create_internal(), heap_estimate(), heap_flush(), heap_header_next_scan(), heap_ovf_find_vfid(), heap_prefetch(), heap_reuse(), heap_stats_update_internal(), orc_diskrep_from_record(), overflow_delete_internal(), overflow_get_capacity(), overflow_get_length(), overflow_get_nbytes(), overflow_update(), pgbuf_copy_to_area(), pgbuf_get_groupid_and_unfix(), pgbuf_ordered_fix_debug(), pgbuf_unfix_all(), scan_open_index_key_info_scan(), scan_open_index_node_info_scan(), scan_open_index_scan(), spage_header_start_scan(), spage_slots_start_scan(), vacuum_heap_page(), vacuum_heap_page_log_and_reset(), vacuum_heap_prepare_record(), vacuum_heap_record(), xbtree_add_index(), xbtree_delete_index(), xbtree_get_unique_pk(), xbtree_load_index(), xcatalog_check_rep_dir(), xdisk_get_fullname(), xdisk_get_purpose_and_space_info(), xdisk_get_purpose_and_sys_lastpage(), xdisk_get_remarks(), and xfile_apply_tde_to_class_files().

#define PGBUF_WATCHER_COPY_GROUP (   w_dst,
  w_src 
)
Value:
do { \
assert ((w_src) != NULL); \
assert ((w_dst) != NULL); \
assert (!VPID_ISNULL (&((w_src)->group_id))); \
VPID_COPY (&((w_dst)->group_id), &((w_src)->group_id)); \
} while (0)
#define VPID_COPY(dest_ptr, src_ptr)
Definition: dbtype_def.h:909
#define assert(x)
#define NULL
Definition: freelistheap.h:34
#define VPID_ISNULL(vpid_ptr)
Definition: dbtype_def.h:925

Definition at line 101 of file page_buffer.h.

Referenced by heap_delete_bigone(), heap_fix_forward_page(), heap_prepare_get_context(), and heap_update_set_prev_version().

#define PGBUF_WATCHER_MAGIC_NUMBER   0x12345678
#define PGBUF_WATCHER_RESET_RANK (   w,
  rank 
)
Value:
do { \
(w)->initial_rank = (rank); \
} while (0)

Definition at line 109 of file page_buffer.h.

Referenced by heap_delete_bigone(), and heap_prepare_get_context().

#define PGBUF_WATCHER_SET_GROUP (   w,
  hfid 
)
Value:
do { \
if ((hfid) == NULL || (hfid)->vfid.volid == NULL_VOLID \
|| (hfid)->hpgid == NULL_PAGEID || HFID_IS_NULL (hfid)) \
{ \
VPID_SET_NULL (&((w)->group_id)); \
} \
{ \
(w)->group_id.volid = (hfid)->vfid.volid; \
(w)->group_id.pageid = (hfid)->hpgid; \
} \
} while (0)
#define NULL_PAGEID
#define NULL
Definition: freelistheap.h:34
if(extra_options)
Definition: dynamic_load.c:958
#define HFID_IS_NULL(hfid)
else
#define NULL_VOLID
short volid
Definition: dbtype_def.h:887
#define VPID_SET_NULL(vpid_ptr)
Definition: dbtype_def.h:906

Definition at line 87 of file page_buffer.h.

#define VPID_EQ_FOR_OIDS (   oid_ptr1,
  oid_ptr2 
)
Value:
(((oid_ptr1)->volid == (oid_ptr2)->volid) \
&& ((oid_ptr1)->pageid == (oid_ptr2)->pageid))

Definition at line 49 of file page_buffer.h.

#define VPID_GET_FROM_OID (   vpid_ptr,
  oid_ptr 
)    VPID_SET (vpid_ptr, (oid_ptr)->volid, (oid_ptr)->pageid);

Typedef Documentation

Definition at line 238 of file page_buffer.h.

Definition at line 217 of file page_buffer.h.

typedef struct pgbuf_watcher PGBUF_WATCHER

Definition at line 219 of file page_buffer.h.

Enumeration Type Documentation

Enumerator
OLD_PAGE 
NEW_PAGE 
OLD_PAGE_IF_IN_BUFFER 
OLD_PAGE_PREVENT_DEALLOC 
OLD_PAGE_DEALLOCATED 
OLD_PAGE_MAYBE_DEALLOCATED 

Definition at line 160 of file page_buffer.h.

Enumerator
PGBUF_DEBUG_NO_PAGE_VALIDATION 
PGBUF_DEBUG_PAGE_VALIDATION_FETCH 
PGBUF_DEBUG_PAGE_VALIDATION_FREE 
PGBUF_DEBUG_PAGE_VALIDATION_ALL 
PGBUF_DEBUG_NO_PAGE_VALIDATION 
PGBUF_DEBUG_PAGE_VALIDATION_FETCH 
PGBUF_DEBUG_PAGE_VALIDATION_FREE 
PGBUF_DEBUG_PAGE_VALIDATION_ALL 

Definition at line 197 of file page_buffer.h.

Enumerator
PGBUF_UNCONDITIONAL_LATCH 
PGBUF_CONDITIONAL_LATCH 

Definition at line 185 of file page_buffer.h.

Enumerator
PGBUF_NO_LATCH 
PGBUF_LATCH_READ 
PGBUF_LATCH_WRITE 
PGBUF_LATCH_FLUSH 
PGBUF_LATCH_INVALID 

Definition at line 176 of file page_buffer.h.

Enumerator
PGBUF_ORDERED_HEAP_HDR 
PGBUF_ORDERED_HEAP_NORMAL 
PGBUF_ORDERED_HEAP_OVERFLOW 
PGBUF_ORDERED_RANK_UNDEFINED 

Definition at line 208 of file page_buffer.h.

Enumerator
PGBUF_PROMOTE_ONLY_READER 
PGBUF_PROMOTE_SHARED_READER 

Definition at line 191 of file page_buffer.h.

Function Documentation

void pgbuf_adjust_quotas ( THREAD_ENTRY thread_p)

Definition at line 13052 of file page_buffer.c.

References pgbuf_page_quota::adjust_age, assert, pgbuf_buffer_pool::buf_invalid_list, pgbuf_lru_list::count_lru1, pgbuf_lru_list::count_lru2, pgbuf_lru_list::count_vict_cand, i, pgbuf_invalid_list::invalid_cnt, pgbuf_page_quota::is_adjusting, pgbuf_page_quota::last_adjust_time, pgbuf_page_monitor::lru_activity, pgbuf_page_monitor::lru_hits, MAX_PRIVATE_RATIO, MIN_PRIVATE_RATIO, pgbuf_buffer_pool::monitor, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_buffer_pool::num_LRU_list, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_is_perf_tracking_and_active(), pgbuf_page_monitor::pg_unfix_cnt, PGBUF_BCB_CHECK_MUTEX_LEAKS, PGBUF_GET_LRU_LIST, PGBUF_IS_PRIVATE_LRU_INDEX, pgbuf_lfcq_add_lru_with_victims(), pgbuf_lru_adjust_zones(), PGBUF_LRU_ARE_ZONES_ONE_TWO_OVER_THRESHOLD, PGBUF_LRU_LIST_IS_ONE_TWO_OVER_QUOTA, PGBUF_LRU_LIST_IS_OVER_QUOTA, PGBUF_LRU_ZONE_MIN_RATIO, PGBUF_MIN_SHARED_LIST_ADJUST_SIZE, PGBUF_PAGE_QUOTA_IS_ENABLED, PGBUF_PRIVATE_LRU_MAX_HARD_QUOTA, PGBUF_SHARED_LRU_COUNT, PGBUF_TOTAL_LRU_COUNT, PGBUF_TRAN_THRESHOLD_ACTIVITY, pgbuf_page_quota::private_pages_ratio, pthread_mutex_lock, pthread_mutex_unlock, pgbuf_lru_list::quota, pgbuf_buffer_pool::quota, pgbuf_buffer_pool::ratio_lru1, pgbuf_buffer_pool::ratio_lru2, thread_get_thread_entry_info(), pgbuf_lru_list::threshold_lru1, pgbuf_lru_list::threshold_lru2, tsc_elapsed_utime(), tsc_getticks(), and pgbuf_page_monitor::victim_rich.

Referenced by pgbuf_assign_private_lru(), pgbuf_get_page_flush_interval(), and pgbuf_release_private_lru().

Here is the caller graph for this function:

bool pgbuf_check_page_ptype ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PAGE_TYPE  ptype 
)

Definition at line 10326 of file page_buffer.c.

References pgbuf_check_page_ptype_internal().

Referenced by btree_advance_to_next_slot_and_fix_page(), btree_build_nleafs(), btree_check_pages(), btree_check_tree(), btree_find_AR_sampling_leaf(), btree_find_boundary_leaf(), btree_find_free_overflow_oids_page(), btree_find_key(), btree_find_key_from_nleaf(), btree_find_min_or_max_key(), btree_find_next_index_record_holding_current_helper(), btree_fix_ovfl_oid_page(), btree_fix_ovfl_oid_pages_tree(), btree_get_asc_desc(), btree_get_new_page(), btree_get_next_page(), btree_get_node_header(), btree_get_num_visible_oids_from_all_ovf(), btree_get_overflow_header(), btree_get_root_header(), btree_get_stats(), btree_get_subtree_capacity(), btree_get_unique_statistics(), btree_index_capacity(), btree_key_find_first_visible_row_from_all_ovf(), btree_load_new_page(), btree_merge_node(), btree_merge_node_and_advance(), btree_node_number_of_keys(), btree_read_key_type(), btree_reflect_global_unique_statistics(), btree_repair_prev_link_by_btid(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_read_keyval_info_nocopy(), btree_verify_subtree(), btree_verify_tree(), catalog_adjust_directory_count(), catalog_check_class_consistency(), catalog_create(), catalog_drop_disk_representation_from_page(), catalog_drop_representation_class_from_page(), catalog_drop_representation_helper(), catalog_fetch_btree_statistics(), catalog_file_map_find_optimal_page(), catalog_get_class_info(), catalog_get_new_page(), catalog_get_record_from_page(), catalog_get_rep_dir(), catalog_get_representation_record(), catalog_update_class_info(), disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), disk_verify_volume_header(), disk_volheader_check_magic(), ehash_create_helper(), ehash_fix_old_page(), ehash_insert_to_bucket_after_create(), heap_check_all_pages(), heap_compact_pages(), heap_delete_bigone(), heap_estimate(), heap_find_location_and_insert_rec_newhome(), heap_fix_forward_page(), heap_fix_header_page(), heap_flush(), heap_get_num_objects(), heap_ovf_find_vfid(), heap_reuse(), heap_rv_redo_reuse_page(), heap_rv_undoredo_pagehdr(), heap_scan_pb_lock_and_fetch_debug(), heap_stats_find_best_page(), heap_stats_sync_bestspace(), heap_stats_update_internal(), heap_vacuum_all_objects(), heap_vpid_next(), heap_vpid_prev(), orc_diskrep_from_record(), overflow_get_capacity(), overflow_get_length(), overflow_get_nbytes(), overflow_insert(), overflow_traverse(), overflow_update(), pgbuf_copy_to_area(), pgbuf_ordered_fix_debug(), qfile_reopen_list_as_append_mode(), qmgr_get_old_page(), scan_open_index_scan(), vacuum_heap_page(), xbtree_add_index(), xbtree_delete_index(), xbtree_get_unique_pk(), xfile_apply_tde_to_class_files(), and xheap_reclaim_addresses().

bool pgbuf_check_page_type_no_error ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PAGE_TYPE  ptype 
)

Definition at line 10341 of file page_buffer.c.

References pgbuf_check_page_ptype_internal(), and STATIC_INLINE.

int pgbuf_compare_vpid ( const void *  key_vpid1,
const void *  key_vpid2 
)

Definition at line 1287 of file page_buffer.c.

References vpid::pageid, and vpid::volid.

Referenced by pgbuf_initialize_aout_list().

Here is the caller graph for this function:

void pgbuf_daemons_get_stats ( UINT64 *  stats_out)

Definition at line 16048 of file page_buffer.c.

References cubthread::daemon::get_stats(), cubthread::daemon::get_stats_value_count(), and NULL.

Referenced by perfmon_stat_dump_in_buffer_thread_daemon_stats().

Here is the caller graph for this function:

PAGE_PTR pgbuf_fix_debug ( THREAD_ENTRY thread_p,
const VPID vpid,
PAGE_FETCH_MODE  fetch_mode,
PGBUF_LATCH_MODE  requestmode,
PGBUF_LATCH_CONDITION  condition,
const char *  caller_file,
int  caller_line 
)

Definition at line 1789 of file page_buffer.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR, assert_release, pgbuf_iopage_buffer::bcb, pgbuf_buffer_pool::buf_hash_table, CAST_BFPTR_TO_PGPTR, pgbuf_buffer_pool::check_for_interrupts, DISK_VALID, pgbuf_fix_perf::end_tick, ER_ERROR_SEVERITY, ER_FATAL_ERROR_SEVERITY, ER_INTERRUPTED, ER_PB_BAD_PAGEID, er_set(), ER_WARNING_SEVERITY, fileio_get_volume_label(), pgbuf_page_monitor::fix_req_cnt, pgbuf_fix_perf::fix_wait_time, pgbuf_fix_perf::holder_wait_time, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_fix_perf::is_perf_tracking, pgbuf_holder::last_watcher, LK_FORCE_ZERO_WAIT, LK_ZERO_WAIT, pgbuf_fix_perf::lock_wait_time, LOG_FIND_THREAD_TRAN_INDEX, log_is_in_crash_recovery_and_not_yet_completes_redo(), logtb_get_check_interrupt(), logtb_is_interrupted(), LSA_ISNULL(), pgbuf_watcher::magic, pgbuf_buffer_pool::monitor, NEW_PAGE, NO_ERROR, NULL, pgbuf_status::num_hit, pgbuf_status::num_page_request, OLD_PAGE, OLD_PAGE_DEALLOCATED, OLD_PAGE_IF_IN_BUFFER, OLD_PAGE_MAYBE_DEALLOCATED, OLD_PAGE_PREVENT_DEALLOC, pgbuf_bcb::oldest_unflush_lsa, PAGE_UNKNOWN, vpid::pageid, PEEK, pgbuf_fix_perf::perf_cond_type, PERF_CONDITIONAL_FIX, PERF_HOLDER_LATCH_READ, PERF_HOLDER_LATCH_WRITE, pgbuf_fix_perf::perf_latch_mode, pgbuf_fix_perf::perf_page_found, PERF_PAGE_MODE_OLD_IN_BUFFER, pgbuf_fix_perf::perf_page_type, PERF_UNCONDITIONAL_FIX_NO_WAIT, PERF_UNCONDITIONAL_FIX_WITH_WAIT, perfmon_inc_stat(), perfmon_is_perf_tracking(), pgbuf_add_fixed_at(), PGBUF_BCB_CHECK_MUTEX_LEAKS, PGBUF_BCB_INVALIDATE_DIRECT_VICTIM_FLAG, pgbuf_bcb_is_direct_victim(), pgbuf_bcb_is_dirty(), PGBUF_BCB_LOCK, pgbuf_bcb_register_avoid_deallocation(), pgbuf_bcb_register_fix(), PGBUF_BCB_TO_VACUUM_FLAG, PGBUF_BCB_UNLOCK, pgbuf_bcb_unregister_avoid_deallocation(), pgbuf_bcb_update_flags(), PGBUF_BCB_VICTIM_DIRECT_FLAG, pgbuf_check_bcb_page_vpid(), pgbuf_claim_bcb_for_fix(), PGBUF_CONDITIONAL_LATCH, PGBUF_DEBUG_PAGE_VALIDATION_FETCH, pgbuf_find_current_wait_msecs(), pgbuf_find_thrd_holder(), pgbuf_get_check_page_validation_level(), pgbuf_get_holder(), pgbuf_get_page_type_for_stat(), PGBUF_HASH_VALUE, pgbuf_insert_into_hash_chain(), pgbuf_is_lsa_temporary(), pgbuf_is_valid_page(), pgbuf_latch_bcb_upon_fix(), PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, pgbuf_put_bcb_into_invalid_list(), pgbuf_search_hash_chain(), pgbuf_set_bcb_page_vpid(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix, pgbuf_unlock_page(), PGBUF_WATCHER_MAGIC_NUMBER, pgbuf_watcher::prev, fileio_page::prv, PSTAT_PB_NUM_FETCHES, pthread_mutex_unlock, fileio_page_reserved::ptype, pgbuf_buffer_pool::show_status, pgbuf_fix_perf::start_holder_tick, pgbuf_fix_perf::start_tick, tsc_elapsed_time_usec(), tsc_getticks(), pgbuf_fix_perf::tv_diff, VACUUM_IS_THREAD_VACUUM_WORKER, and vpid::volid.

Referenced by heap_scan_pb_lock_and_fetch_debug(), pgbuf_fix_if_not_deallocated_with_caller(), pgbuf_fix_with_retry(), and pgbuf_ordered_fix_debug().

Here is the caller graph for this function:

void pgbuf_flush ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
bool  free_page 
)

Definition at line 2933 of file page_buffer.c.

References ASSERT_ERROR, FREE, NULL, pgbuf_flush_with_wal(), and pgbuf_unfix.

Referenced by disk_set_checkpoint(), disk_set_creation(), disk_set_link(), disk_stab_init(), and pgbuf_rv_flush_page().

Here is the caller graph for this function:

int pgbuf_flush_all ( THREAD_ENTRY thread_p,
VOLID  volid 
)
int pgbuf_flush_all_unfixed ( THREAD_ENTRY thread_p,
VOLID  volid 
)

Definition at line 3099 of file page_buffer.c.

References pgbuf_flush_all_helper().

Referenced by log_commit(), logpb_backup_for_volume(), and logpb_copy_volume().

Here is the caller graph for this function:

int pgbuf_flush_all_unfixed_and_set_lsa_as_null ( THREAD_ENTRY thread_p,
VOLID  volid 
)

Definition at line 3116 of file page_buffer.c.

References pgbuf_flush_all_helper().

Referenced by log_recreate(), logpb_copy_database(), and logpb_copy_volume().

Here is the caller graph for this function:

int pgbuf_flush_control_from_dirty_ratio ( void  )

Definition at line 13647 of file page_buffer.c.

References diff, pgbuf_page_monitor::dirties_cnt, if(), pgbuf_buffer_pool::monitor, and pgbuf_buffer_pool::num_buffers.

Referenced by fileio_flush_control_get_desired_rate().

Here is the caller graph for this function:

int pgbuf_flush_victim_candidates ( THREAD_ENTRY thread_p,
float  flush_ratio,
PERF_UTIME_TRACKER *  time_tracker,
bool stop 
)

Definition at line 3237 of file page_buffer.c.

References _er_log_debug(), ARG_FILE_LINE, assert, pgbuf_victim_candidate_list::bufptr, db_page_size(), ER_LOG_FLUSH_VICTIM_FINISHED, ER_LOG_FLUSH_VICTIM_STARTED, ER_NOTIFICATION_SEVERITY, er_set(), error(), pgbuf_page_monitor::fix_req_cnt, i, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_bcb::latch_mode, log_is_log_flush_daemon_available(), log_wakeup_log_flush_daemon(), logpb_flush_log_for_wal(), logpb_force_flush_pages(), logpb_need_wal(), pgbuf_page_monitor::lru_victim_req_cnt, fileio_page_reserved::lsa, LSA_COPY(), LSA_INITIALIZER, LSA_ISNULL(), LSA_LE(), LSA_LT(), pgbuf_buffer_pool::monitor, NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_add_stat(), perfmon_is_perf_tracking_and_active(), perfmon_time_stat(), PGBUF_BCB_CHECK_MUTEX_LEAKS, pgbuf_bcb_flush_with_wal(), pgbuf_bcb_is_dirty(), pgbuf_bcb_is_flushing(), PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, pgbuf_compare_victim_list(), pgbuf_compute_lru_vict_target(), pgbuf_flush_page_and_neighbors_fb(), PGBUF_FLUSH_VICTIM_BOOST_MULT, pgbuf_get_victim_candidates_from_lru(), PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE, pgbuf_is_page_flush_daemon_available(), PGBUF_NEIGHBOR_PAGES, PGBUF_NO_LATCH, prm_get_bool_value(), PRM_ID_LOG_PGBUF_VICTIM_FLUSH, PRM_ID_PB_SEQUENTIAL_VICTIM_FLUSH, fileio_page::prv, PSTAT_PB_FLUSH_COLLECT, PSTAT_PB_FLUSH_COLLECT_PER_PAGE, PSTAT_PB_FLUSH_FLUSH, PSTAT_PB_FLUSH_FLUSH_PER_PAGE, PSTAT_PB_NUM_FLUSHED, PSTAT_PB_NUM_SKIPPED_ALREADY_FLUSHED, PSTAT_PB_NUM_SKIPPED_FIXED_OR_HOT, PSTAT_PB_NUM_SKIPPED_FLUSH, PSTAT_PB_NUM_SKIPPED_NEED_WAL, tsc_elapsed_utime(), tsc_getticks(), pgbuf_buffer_pool::victim_cand_list, pgbuf_bcb::vpid, pgbuf_victim_candidate_list::vpid, and VPID_EQ.

Referenced by pgbuf_get_page_flush_interval(), and pgbuf_wakeup_page_flush_daemon().

Here is the caller graph for this function:

void pgbuf_force_to_check_for_interrupts ( void  )

Definition at line 4750 of file page_buffer.c.

References pgbuf_buffer_pool::check_for_interrupts.

Referenced by logtb_set_tran_index_interrupt().

Here is the caller graph for this function:

int pgbuf_get_condition_for_ordered_fix ( const VPID vpid_new_page,
const VPID vpid_fixed_page,
const HFID hfid 
)
int pgbuf_get_fix_count ( PAGE_PTR  pgptr)

Definition at line 13837 of file page_buffer.c.

References assert, CAST_PGPTR_TO_BFPTR, pgbuf_bcb::fcnt, and NULL.

Referenced by vacuum_verify_vacuum_data_page_fix_count().

Here is the caller graph for this function:

int pgbuf_get_hold_count ( THREAD_ENTRY thread_p)

Definition at line 13855 of file page_buffer.c.

References pgbuf_holder_anchor::num_hold_cnt, pgbuf_buffer_pool::thrd_holder_info, and thread_get_entry_index().

Referenced by vacuum_verify_vacuum_data_page_fix_count().

Here is the caller graph for this function:

LOG_LSA* pgbuf_get_lsa ( PAGE_PTR  pgptr)

Definition at line 4318 of file page_buffer.c.

References CAST_PGPTR_TO_IOPGPTR, fileio_page_reserved::lsa, NULL, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), and fileio_page::prv.

Referenced by btree_delete_key_from_leaf(), btree_get_next_key_info(), btree_insert_mvcc_delid_into_page(), btree_key_append_object_as_new_overflow(), btree_key_append_object_non_unique(), btree_key_append_object_to_overflow(), btree_key_append_object_unique(), btree_key_find_and_lock_unique_of_non_unique(), btree_key_insert_new_key(), btree_key_lock_and_append_object_unique(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_relocate_last_into_ovf(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_insert_mvccid(), btree_key_remove_object_and_keep_visible_first(), btree_leaf_record_replace_first_with_last(), btree_merge_node_and_advance(), btree_modify_leaf_ovfl_vpid(), btree_modify_overflow_link(), btree_range_scan(), btree_range_scan_resume(), btree_record_remove_object(), btree_reflect_global_unique_statistics(), btree_replace_first_oid_with_ovfl_oid(), btree_split_node_and_advance(), disk_volume_expand(), file_alloc_sticky_first_page(), file_dealloc(), file_extdata_find_and_remove_item(), file_extdata_merge_pages(), file_header_update_mark_deleted(), file_log_extdata_set_next(), file_numerable_add_page(), file_perm_alloc(), file_perm_dealloc(), file_perm_expand(), file_rv_user_page_unmark_delete_logical(), file_table_add_full_sector(), file_table_move_partial_sectors_to_header(), file_tracker_item_mark_heap_deleted(), file_tracker_item_reuse_heap(), file_tracker_register_internal(), log_recovery_redo(), log_skip_logging(), pgbuf_page_has_changed(), and scan_next_heap_scan().

bool pgbuf_has_any_non_vacuum_waiters ( PAGE_PTR  pgptr)

Definition at line 13495 of file page_buffer.c.

References assert, CAST_PGPTR_TO_BFPTR, NULL, and TT_VACUUM_WORKER.

Referenced by vacuum_heap_page().

Here is the caller graph for this function:

bool pgbuf_has_any_waiters ( PAGE_PTR  pgptr)
bool pgbuf_has_prevent_dealloc ( PAGE_PTR  pgptr)

Definition at line 13527 of file page_buffer.c.

References assert, CAST_PGPTR_TO_BFPTR, NULL, and pgbuf_bcb_should_avoid_deallocation().

Referenced by heap_remove_page_on_vacuum(), and vacuum_heap_page().

Here is the caller graph for this function:

unsigned int pgbuf_hash_vpid ( const void *  key_vpid,
unsigned int  htsize 
)

Definition at line 1273 of file page_buffer.c.

References vpid::pageid, and vpid::volid.

Referenced by pgbuf_initialize_aout_list().

Here is the caller graph for this function:

int pgbuf_initialize ( void  )

Definition at line 1311 of file page_buffer.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR, pgbuf_buffer_pool::big_private_lrus_with_victims, pgbuf_buffer_pool::check_for_interrupts, pgbuf_page_monitor::dirties_cnt, ER_ERROR_SEVERITY, ER_FAILED, er_log_debug, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), MAX_NTRANS, pgbuf_buffer_pool::monitor, NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_finalize(), pgbuf_flags_mask_sanity_check(), pgbuf_initialize_aout_list(), pgbuf_initialize_bcb_table(), pgbuf_initialize_hash_table(), pgbuf_initialize_invalid_list(), pgbuf_initialize_lock_table(), pgbuf_initialize_lru_list(), pgbuf_initialize_page_monitor(), pgbuf_initialize_page_quota(), pgbuf_initialize_page_quota_parameters(), pgbuf_initialize_seq_flusher(), pgbuf_initialize_thrd_holder(), PGBUF_LRU_ZONE_MAX_RATIO, PGBUF_LRU_ZONE_MIN_RATIO, PGBUF_MINIMUM_BUFFERS, PGBUF_PAGE_QUOTA_IS_ENABLED, PGBUF_PRIVATE_LRU_COUNT, PGBUF_SHARED_LRU_COUNT, pgbuf_status_old::print_out_time, pgbuf_buffer_pool::private_lrus_with_victims, prm_get_bool_value(), prm_get_float_value(), prm_get_integer_value(), PRM_ID_PB_LRU_BUFFER_RATIO, PRM_ID_PB_LRU_HOT_RATIO, PRM_ID_PB_MONITOR_LOCKS, PRM_ID_PB_NBUFFERS, pthread_mutex_init, pgbuf_buffer_pool::ratio_lru1, pgbuf_buffer_pool::ratio_lru2, pgbuf_buffer_pool::seq_chkpt_flusher, pgbuf_buffer_pool::shared_lrus_with_victims, pgbuf_buffer_pool::show_status, pgbuf_buffer_pool::show_status_old, thread_num_total_threads(), and pgbuf_buffer_pool::victim_cand_list.

Referenced by logtb_define_trantable_log_latch().

Here is the caller graph for this function:

bool pgbuf_is_io_stressful ( void  )

Definition at line 15409 of file page_buffer.c.

References STATIC_INLINE.

Referenced by btree_merge_node_and_advance().

Here is the caller graph for this function:

bool pgbuf_is_log_check_for_interrupts ( THREAD_ENTRY thread_p)
void pgbuf_log_new_page ( THREAD_ENTRY thread_p,
PAGE_PTR  page_new,
int  data_size,
PAGE_TYPE  ptype_new 
)
void pgbuf_log_redo_new_page ( THREAD_ENTRY thread_p,
PAGE_PTR  page_new,
int  data_size,
PAGE_TYPE  ptype_new 
)

Definition at line 13909 of file page_buffer.c.

References assert, DONT_FREE, log_append_redo_data2(), NULL, PAGE_UNKNOWN, pgbuf_set_dirty(), and RVPGBUF_NEW_PAGE.

Referenced by locator_multi_insert_force().

Here is the caller graph for this function:

void pgbuf_notify_vacuum_follows ( THREAD_ENTRY thread_p,
PAGE_PTR  page 
)
int pgbuf_ordered_fix_debug ( THREAD_ENTRY thread_p,
const VPID req_vpid,
PAGE_FETCH_MODE  fetch_mode,
const PGBUF_LATCH_MODE  requestmode,
PGBUF_WATCHER req_watcher,
const char *  caller_file,
int  caller_line 
)

Definition at line 11430 of file page_buffer.c.

References _er_log_debug(), ARG_FILE_LINE, assert, assert_release, pgbuf_buffer_pool::buf_hash_table, pgbuf_holder::bufptr, CAST_BFPTR_TO_PGPTR, CAST_PGPTR_TO_BFPTR, pgbuf_watcher::curr_rank, diff, DISK_VALID, er_errid(), er_errid_if_has_error(), ER_ERROR_SEVERITY, ER_FAILED, ER_FAILED_ASSERTION, ER_FATAL_ERROR_SEVERITY, ER_INTERRUPTED, ER_LK_PAGE_TIMEOUT, er_log_debug, ER_PB_BAD_PAGEID, ER_PB_ORDERED_INCONSISTENCY, ER_PB_ORDERED_REFIX_FAILED, er_set(), pgbuf_holder::first_watcher, pgbuf_holder::fix_count, pgbuf_holder::fixed_at, pgbuf_watcher::group_id, pgbuf_holder_info::group_id, i, pgbuf_watcher::initial_rank, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_holder::last_watcher, pgbuf_watcher::latch_mode, pgbuf_holder_info::latch_mode, LK_FORCE_ZERO_WAIT, LK_ZERO_WAIT, pgbuf_watcher::magic, pgbuf_watcher::next, NO_ERROR, NULL, OLD_PAGE, OLD_PAGE_PREVENT_DEALLOC, PAGE_HEAP, pgbuf_watcher::page_was_unfixed, vpid::pageid, pgbuf_add_watch_instance_internal(), pgbuf_bcb_register_avoid_deallocation(), pgbuf_bcb_should_avoid_deallocation(), PGBUF_BCB_UNLOCK, pgbuf_bcb_unregister_avoid_deallocation(), pgbuf_check_page_ptype(), PGBUF_CLEAR_WATCHER, pgbuf_compare_hold_vpid_for_sort(), PGBUF_CONDITIONAL_LATCH, pgbuf_find_current_wait_msecs(), pgbuf_fix_debug(), pgbuf_get_groupid_and_unfix(), pgbuf_get_page_ptype(), PGBUF_HASH_VALUE, PGBUF_IS_ORDERED_PAGETYPE, pgbuf_is_valid_page(), PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_MAX_PAGE_FIXED_BY_TRAN, PGBUF_MAX_PAGE_WATCHERS, PGBUF_ORDERED_HEAP_HDR, PGBUF_ORDERED_RANK_UNDEFINED, pgbuf_ordered_unfix_and_init, pgbuf_search_hash_chain(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix, pgbuf_unfix_and_init, pgbuf_watcher_init_debug(), PGBUF_WATCHER_MAGIC_NUMBER, pgbuf_watcher::pgptr, pgbuf_holder_info::prevent_dealloc, fileio_page::prv, pthread_mutex_unlock, fileio_page_reserved::ptype, pgbuf_holder_info::ptype, pgbuf_holder_info::rank, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, thread_get_entry_index(), vpid::volid, pgbuf_holder_info::vpid, pgbuf_bcb::vpid, VPID_AS_ARGS, VPID_COPY, VPID_EQ, VPID_ISNULL, VPID_SET_NULL, pgbuf_holder_info::watch_count, pgbuf_holder::watch_count, and pgbuf_holder_info::watcher.

Referenced by heap_scan_pb_lock_and_fetch_debug().

Here is the caller graph for this function:

void pgbuf_ordered_set_dirty_and_free ( THREAD_ENTRY thread_p,
PGBUF_WATCHER pg_watcher 
)

Definition at line 12603 of file page_buffer.c.

References DONT_FREE, pgbuf_ordered_unfix, pgbuf_set_dirty(), and pgbuf_watcher::pgptr.

Referenced by heap_get_num_objects(), heap_stats_find_best_page(), heap_vpid_remove(), and xheap_reclaim_addresses().

Here is the caller graph for this function:

int pgbuf_page_has_changed ( PAGE_PTR  pgptr,
LOG_LSA ref_lsa 
)

Definition at line 4342 of file page_buffer.c.

References LSA_COPY(), LSA_EQ(), and pgbuf_get_lsa().

Referenced by scan_next_heap_scan().

Here is the caller graph for this function:

void pgbuf_peek_stats ( UINT64 *  fixed_cnt,
UINT64 *  dirty_cnt,
UINT64 *  lru1_cnt,
UINT64 *  lru2_cnt,
UINT64 *  lru3_cnt,
UINT64 *  vict_candidates,
UINT64 *  avoid_dealloc_cnt,
UINT64 *  avoid_victim_cnt,
UINT64 *  private_quota,
UINT64 *  private_cnt,
UINT64 *  alloc_bcb_waiter_high,
UINT64 *  alloc_bcb_waiter_med,
UINT64 *  alloc_bcb_waiter_low,
UINT64 *  lfcq_big_prv_num,
UINT64 *  lfcq_prv_num,
UINT64 *  lfcq_shr_num 
)
void pgbuf_reset_temp_lsa ( PAGE_PTR  pgptr)

Definition at line 4457 of file page_buffer.c.

References CAST_PGPTR_TO_BFPTR, IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, and pgbuf_init_temp_page_lsa().

Referenced by logpb_check_and_reset_temp_lsa().

Here is the caller graph for this function:

int pgbuf_rv_dealloc_redo ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)
void pgbuf_rv_flush_page_dump ( FILE *  fp,
int  length,
void *  data 
)

Definition at line 13727 of file page_buffer.c.

References assert, vpid::pageid, vpid::volid, VPID_COPY, and VPID_INITIALIZER.

int pgbuf_rv_new_page_redo ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)
int pgbuf_rv_new_page_undo ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)
int pgbuf_rv_set_tde_algorithm ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)
void pgbuf_set_dirty ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
bool  free_page 
)

Definition at line 4280 of file page_buffer.c.

References assert, CAST_PGPTR_TO_BFPTR, disk_volheader_check_magic(), FREE, vpid::pageid, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), pgbuf_set_dirty_buffer_ptr(), pgbuf_unfix, pgbuf_bcb::vpid, and VPID_ISNULL.

Referenced by btree_construct_leafs(), btree_fix_ovfl_oid_page(), btree_fix_root_for_insert(), btree_initialize_new_page(), btree_insert_mvcc_delid_into_page(), btree_key_append_object_as_new_overflow(), btree_key_append_object_non_unique(), btree_key_append_object_to_overflow(), btree_key_append_object_unique(), btree_key_insert_new_key(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_relocate_last_into_ovf(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_insert_mvccid(), btree_leaf_record_replace_first_with_last(), btree_log_page(), btree_merge_node(), btree_merge_root(), btree_modify_leaf_ovfl_vpid(), btree_modify_overflow_link(), btree_overflow_record_replace_object(), btree_record_remove_object(), btree_reflect_global_unique_statistics(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_nodehdr_redo_insert(), btree_rv_nodehdr_undo_insert(), btree_rv_nodehdr_undoredo_update(), btree_rv_noderec_redo_insert(), btree_rv_noderec_undo_insert(), btree_rv_noderec_undoredo_update(), btree_rv_nop(), btree_rv_ovfid_undoredo_update(), btree_rv_pagerec_delete(), btree_rv_pagerec_insert(), btree_rv_record_modify_internal(), btree_rv_roothdr_undo_update(), btree_rv_undo_mark_dealloc_page(), btree_rv_undoredo_copy_page(), btree_set_vpid_previous_vpid(), btree_split_node(), btree_split_node_and_advance(), btree_split_root(), btree_start_overflow_page(), catalog_add_class_info(), catalog_drop_all_representation_and_class(), catalog_drop_disk_representation_from_page(), catalog_drop_old_representations(), catalog_drop_representation_class_from_page(), catalog_drop_representation_item(), catalog_initialize_new_page(), catalog_insert_representation_item(), catalog_put_record_into_page(), catalog_put_representation_item(), catalog_rv_delete_redo(), catalog_rv_insert_redo(), catalog_rv_insert_undo(), catalog_rv_new_page_redo(), catalog_rv_update(), catalog_update_class_info(), disk_rv_redo_init_map(), disk_rv_reserve_sectors(), disk_rv_undoredo_link(), disk_rv_undoredo_set_boot_hfid(), disk_rv_undoredo_set_creation_time(), disk_rv_unreserve_sectors(), disk_rv_volhead_extend_redo(), disk_rv_volhead_extend_undo(), disk_set_boot_hfid(), disk_set_checkpoint(), disk_set_creation(), disk_set_link(), disk_stab_init(), disk_stab_unit_reserve(), disk_stab_unit_unreserve(), ehash_adjust_local_depth(), ehash_connect_bucket(), ehash_create_helper(), ehash_delete(), ehash_expand_directory(), ehash_initialize_bucket_new_page(), ehash_initialize_dir_new_page(), ehash_insert_to_bucket(), ehash_merge_permanent(), ehash_rv_connect_bucket_redo(), ehash_rv_delete(), ehash_rv_delete_redo(), ehash_rv_increment(), ehash_rv_init_dir_new_page_redo(), ehash_rv_insert_redo(), ehash_shrink_directory(), ehash_split_bucket(), file_alloc_sticky_first_page(), file_create(), file_dealloc(), file_descriptor_update(), file_extdata_merge_pages(), file_extdata_update_item(), file_header_update_mark_deleted(), file_init_page_type_internal(), file_log_extdata_add(), file_log_extdata_remove(), file_log_extdata_set_next(), file_log_fhead_alloc(), file_log_fhead_dealloc(), file_numerable_add_page(), file_perm_dealloc(), file_perm_expand(), file_rv_extdata_add(), file_rv_extdata_merge(), file_rv_extdata_remove(), file_rv_extdata_set_next(), file_rv_fhead_alloc(), file_rv_fhead_convert_ftab_to_user_page(), file_rv_fhead_convert_user_to_ftab_page(), file_rv_fhead_dealloc(), file_rv_fhead_set_last_user_page_ftab(), file_rv_fhead_sticky_page(), file_rv_header_update_mark_deleted(), file_rv_partsect_update(), file_rv_perm_expand_redo(), file_rv_perm_expand_undo(), file_rv_set_tde_algorithm(), file_rv_tracker_mark_heap_deleted_compensate_or_run_postpone(), file_rv_tracker_reuse_heap(), file_rv_user_page_mark_delete(), file_rv_user_page_unmark_delete_logical(), file_rv_user_page_unmark_delete_physical(), file_temp_alloc(), file_temp_reset_user_pages(), file_temp_set_type(), file_tracker_init_page(), file_tracker_item_mark_heap_deleted(), file_tracker_item_reuse_heap(), file_tracker_register_internal(), heap_add_chain_links(), heap_compact_pages(), heap_create_internal(), heap_delete_bigone(), heap_delete_physical(), heap_delete_relocation(), heap_insert_logical(), heap_insert_newhome(), heap_ovf_find_vfid(), heap_remove_page_on_vacuum(), heap_reuse(), heap_rv_mvcc_redo_delete_home(), heap_rv_mvcc_redo_delete_newhome(), heap_rv_mvcc_redo_delete_overflow(), heap_rv_mvcc_redo_insert(), heap_rv_mvcc_redo_redistribute(), heap_rv_mvcc_undo_delete(), heap_rv_mvcc_undo_delete_overflow(), heap_rv_nop(), heap_rv_redo_delete(), heap_rv_redo_insert(), heap_rv_redo_mark_reusable_slot(), heap_rv_redo_newpage(), heap_rv_redo_reuse_page(), heap_rv_redo_reuse_page_reuse_oid(), heap_rv_undo_insert(), heap_rv_undo_ovf_update(), heap_rv_undoredo_pagehdr(), heap_rv_update_chain_after_mvcc_op(), heap_stats_update_internal(), heap_update_and_log_header(), heap_update_bigone(), heap_update_physical(), heap_update_relocation(), heap_update_set_prev_version(), heap_vpid_alloc(), heap_vpid_init_new(), log_rv_copy_char(), log_rv_record_modify_internal(), logpb_check_and_reset_temp_lsa(), overflow_rv_link(), overflow_rv_newpage_link_undo(), pgbuf_copy_from_area(), pgbuf_log_new_page(), pgbuf_log_redo_new_page(), pgbuf_ordered_set_dirty_and_free(), pgbuf_rv_dealloc_redo(), pgbuf_rv_flush_page(), pgbuf_rv_new_page_redo(), pgbuf_rv_new_page_undo(), pgbuf_set_tde_algorithm(), qfile_set_dirty_page_and_skip_logging(), qmgr_init_external_file_page(), qmgr_set_dirty_page(), spage_delete(), spage_delete_for_recovery(), spage_initialize(), spage_insert_data(), spage_insert_for_recovery(), spage_merge(), spage_overwrite(), spage_put_helper(), spage_reclaim(), spage_split(), spage_take_out(), spage_update(), spage_update_record_type(), vacuum_heap_page(), vacuum_heap_page_log_and_reset(), vacuum_heap_record(), vacuum_heap_record_insid_and_prev_version(), vacuum_rv_check_at_undo(), vacuum_rv_redo_add_dropped_file(), vacuum_rv_redo_append_data(), vacuum_rv_redo_cleanup_dropped_files(), vacuum_rv_redo_data_finished(), vacuum_rv_redo_initialize_data_page(), vacuum_rv_redo_remove_ovf_insid(), vacuum_rv_redo_start_job(), vacuum_rv_redo_vacuum_complete(), vacuum_rv_redo_vacuum_heap_page(), vacuum_rv_redo_vacuum_heap_record(), vacuum_rv_replace_dropped_file(), vacuum_rv_set_next_page_dropped_files(), vacuum_rv_undo_add_dropped_file(), vacuum_rv_undoredo_data_set_link(), vacuum_set_dirty_data_page_dont_free(), xbtree_add_index(), and xheap_reclaim_addresses().

void pgbuf_set_lsa_as_temporary ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr 
)
void pgbuf_set_page_ptype ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PAGE_TYPE  ptype 
)
void pgbuf_unfix_debug ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
const char *  caller_file,
int  caller_line 
)
void pgbuf_watcher_init_debug ( PGBUF_WATCHER watcher,
const char *  caller_file,
const int  caller_line,
bool  add 
)

Definition at line 12674 of file page_buffer.c.

References pgbuf_watcher::init_at, p, snprintf_dots_truncate, and strlen.

Referenced by pgbuf_ordered_fix_debug(), pgbuf_ordered_unfix_debug(), and pgbuf_replace_watcher_debug().

Here is the caller graph for this function:

Variable Documentation

HFID* pgbuf_ordered_null_hfid

Definition at line 805 of file page_buffer.c.

const log_lsa PGBUF_TEMP_LSA = { NULL_LOG_PAGEID - 1, NULL_LOG_OFFSET - 1 }

Definition at line 244 of file page_buffer.h.

Referenced by disk_format(), pgbuf_init_temp_page_lsa(), and pgbuf_is_temp_lsa().

const VPID vpid_Null_vpid

Definition at line 74 of file page_buffer.c.

Referenced by vacuum_job_cursor::get_page_vpid().