CUBRID Engine
latest
|
#include "config.h"
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <assert.h>
#include "page_buffer.h"
#include "storage_common.h"
#include "memory_alloc.h"
#include "system_parameter.h"
#include "error_manager.h"
#include "file_io.h"
#include "lockfree_circular_queue.hpp"
#include "log_append.hpp"
#include "log_manager.h"
#include "log_impl.h"
#include "log_volids.hpp"
#include "transaction_sr.h"
#include "memory_hash.h"
#include "critical_section.h"
#include "perf_monitor.h"
#include "porting_inline.hpp"
#include "environment_variable.h"
#include "thread_daemon.hpp"
#include "thread_entry_task.hpp"
#include "thread_manager.hpp"
#include "list_file.h"
#include "tsc_timer.h"
#include "query_manager.h"
#include "xserver_interface.h"
#include "btree_load.h"
#include "boot_sr.h"
#include "double_write_buffer.h"
#include "resource_tracker.hpp"
#include "tde.h"
#include "show_scan.h"
#include "numeric_opfunc.h"
#include "dbtype.h"
#include "thread_entry.hpp"
Go to the source code of this file.
Classes | |
struct | pgbuf_status |
struct | pgbuf_status_snapshot |
struct | pgbuf_status_old |
struct | pgbuf_holder_info |
struct | pgbuf_holder_stat |
struct | pgbuf_batch_flush_helper |
struct | pgbuf_holder |
struct | pgbuf_holder_anchor |
struct | pgbuf_holder_set |
struct | pgbuf_bcb |
struct | pgbuf_iopage_buffer |
struct | pgbuf_buffer_lock |
struct | pgbuf_buffer_hash |
struct | pgbuf_lru_list |
struct | pgbuf_invalid_list |
struct | pgbuf_aout_buf |
struct | pgbuf_aout_list |
struct | pgbuf_seq_flusher |
struct | pgbuf_page_monitor |
struct | pgbuf_page_quota |
struct | pgbuf_buffer_pool |
struct | pgbuf_victim_candidate_list |
struct | pgbuf_monitor_bcb_mutex |
struct | pgbuf_fix_perf |
struct | pgbuf_dealloc_undo_data |
Enumerations | |
enum | PGBUF_ZONE { PGBUF_LRU_1_ZONE = 1 << PGBUF_LRU_NBITS, PGBUF_LRU_2_ZONE = 2 << PGBUF_LRU_NBITS, PGBUF_LRU_3_ZONE = 3 << PGBUF_LRU_NBITS, PGBUF_LRU_ZONE_MASK = PGBUF_LRU_1_ZONE | PGBUF_LRU_2_ZONE | PGBUF_LRU_3_ZONE, PGBUF_INVALID_ZONE = 1 << (PGBUF_LRU_NBITS + 2), PGBUF_VOID_ZONE = 2 << (PGBUF_LRU_NBITS + 2), PGBUF_ZONE_MASK = (PGBUF_LRU_ZONE_MASK | PGBUF_INVALID_ZONE | PGBUF_VOID_ZONE) } |
enum | { PGBUF_LOCK_WAITER = 0, PGBUF_LOCK_HOLDER } |
enum | { PGBUF_CONTENT_BAD = 0, PGBUF_CONTENT_GOOD, PGBUF_CONTENT_LIKELY_BAD, PGBUF_CONTENT_ERROR } |
enum | { NEIGHBOR_ABORT_RANGE = 1, NEIGHBOR_ABORT_NOTFOUND_NONDIRTY_BACK, NEIGHBOR_ABORT_NOTFOUND_DIRTY_BACK, NEIGHBOR_ABORT_LATCH_NONDIRTY_BACK, NEIGHBOR_ABORT_LATCH_DIRTY_BACK, NEIGHBOR_ABORT_NONDIRTY_NOT_ALLOWED, NEIGHBOR_ABORT_TWO_CONSECTIVE_NONDIRTIES, NEIGHBOR_ABORT_TOO_MANY_NONDIRTIES } |
Variables | |
const VPID | vpid_Null_vpid = { NULL_PAGEID, NULL_VOLID } |
static int | rv |
static PGBUF_BUFFER_POOL | pgbuf_Pool |
static PGBUF_BATCH_FLUSH_HELPER | pgbuf_Flush_helper |
HFID * | pgbuf_ordered_null_hfid = NULL |
#define AOUT_HASH_DIVIDE_RATIO 1000 |
Definition at line 816 of file page_buffer.c.
Referenced by pgbuf_initialize_aout_list().
Definition at line 817 of file page_buffer.c.
Referenced by pgbuf_add_vpid_to_aout_list(), pgbuf_remove_private_from_aout_list(), and pgbuf_remove_vpid_from_aout_list().
#define CAST_BFPTR_TO_PGPTR | ( | pgptr, | |
bufptr | |||
) |
Definition at line 155 of file page_buffer.c.
Referenced by pgbuf_bcb_flush_with_wal(), pgbuf_copy_to_area(), pgbuf_fix_debug(), pgbuf_ordered_fix_debug(), pgbuf_unfix_all(), pgbuf_unlatch_bcb_upon_unfix(), and pgbuf_unlatch_thrd_holder().
#define CAST_IOPGPTR_TO_PGPTR | ( | pgptr, | |
io_pgptr | |||
) |
Definition at line 150 of file page_buffer.c.
Referenced by pgbuf_claim_bcb_for_fix().
#define CAST_PGPTR_TO_BFPTR | ( | bufptr, | |
pgptr | |||
) |
Definition at line 138 of file page_buffer.c.
Referenced by pgbuf_check_page_ptype_internal(), pgbuf_dealloc_page(), pgbuf_flush_if_requested(), pgbuf_flush_with_wal(), pgbuf_get_fix_count(), pgbuf_get_holder(), pgbuf_get_latch_mode(), pgbuf_get_page_id(), pgbuf_get_page_ptype(), pgbuf_get_volume_id(), pgbuf_get_volume_label(), pgbuf_get_vpid(), pgbuf_get_vpid_ptr(), pgbuf_has_any_non_vacuum_waiters(), pgbuf_has_any_waiters(), pgbuf_has_prevent_dealloc(), pgbuf_invalidate_debug(), pgbuf_is_lsa_temporary(), pgbuf_notify_vacuum_follows(), pgbuf_ordered_fix_debug(), pgbuf_promote_read_latch_debug(), pgbuf_reset_temp_lsa(), pgbuf_set_dirty(), pgbuf_set_lsa(), pgbuf_set_lsa_as_temporary(), pgbuf_set_page_ptype(), pgbuf_unfix_all(), and pgbuf_unfix_debug().
#define CAST_PGPTR_TO_IOPGPTR | ( | io_pgptr, | |
pgptr | |||
) |
Definition at line 145 of file page_buffer.c.
Referenced by pgbuf_get_lsa(), pgbuf_get_page_type_for_stat(), pgbuf_get_tde_algorithm(), pgbuf_rv_dealloc_undo(), pgbuf_rv_dealloc_undo_compensate(), and pgbuf_set_tde_algorithm().
#define detailed_er_log | ( | ... | ) | if (detailed_logging) _er_log_debug (ARG_FILE_LINE, __VA_ARGS__) |
Referenced by pgbuf_flush_checkpoint(), and pgbuf_flush_seq_list().
#define detailed_er_log | ( | ... | ) | if (detailed_logging) _er_log_debug (ARG_FILE_LINE, __VA_ARGS__) |
#define HASH_SIZE_BITS 20 |
Definition at line 278 of file page_buffer.c.
#define INIT_HOLDER_STAT | ( | perf_stat | ) |
Definition at line 309 of file page_buffer.c.
Referenced by pgbuf_initialize_thrd_holder(), pgbuf_latch_bcb_upon_fix(), and pgbuf_unfix_debug().
#define MAX_DEPTH 1000 |
Referenced by pgbuf_get_victim_from_lru_list().
#define MAX_PRIVATE_RATIO 0.998f |
Referenced by pgbuf_adjust_quotas().
#define MIN_PRIVATE_RATIO 0.01f |
Referenced by pgbuf_adjust_quotas().
#define PAGE_ADD_REFRESH_STAT MAX (2 * pgbuf_Pool.num_buffers / PGBUF_SHARED_LRU_COUNT, 10000) |
Referenced by pgbuf_put_bcb_into_invalid_list().
#define PBGUF_BIG_PRIVATE_MIN_SIZE 100 |
Definition at line 953 of file page_buffer.c.
Referenced by pgbuf_lfcq_get_victim_from_private_lru().
#define PERF | ( | id | ) | if (detailed_perf) perfmon_inc_stat (thread_p, id) |
#define PERF | ( | pstatid | ) | if (perf_tracking) perfmon_inc_stat (thread_p, pstatid) |
#define PERF | ( | id | ) | if (detailed_perf) perfmon_inc_stat (thread_p, id) |
#define PERF | ( | id | ) | if (detailed_perf) perfmon_inc_stat (thread_p, id) |
#define PGBUF_ABORT_RELEASE | ( | ) | assert (false) |
Definition at line 967 of file page_buffer.c.
Referenced by pgbuf_flags_mask_sanity_check(), and pgbuf_is_hit_ratio_low().
#define PGBUF_AGE_DIFF | ( | bcb_age, | |
list_age | |||
) | (((list_age) >= (bcb_age)) ? ((list_age) - (bcb_age)) : (DB_INT32_MAX - ((bcb_age) - (list_age)))) |
Definition at line 886 of file page_buffer.c.
Referenced by pgbuf_lru_add_victim_candidate().
#define PGBUF_AOUT_NOT_FOUND -2 |
Definition at line 269 of file page_buffer.c.
Referenced by pgbuf_initialize_aout_list(), pgbuf_remove_private_from_aout_list(), pgbuf_remove_vpid_from_aout_list(), and pgbuf_unlatch_void_zone_bcb().
#define PGBUF_BCB_ASYNC_FLUSH_REQ ((int) 0x02000000) |
Definition at line 231 of file page_buffer.c.
Referenced by pgbuf_bcb_is_async_flush_request(), pgbuf_bcb_mark_is_flushing(), pgbuf_bcb_safe_flush_internal(), and pgbuf_claim_bcb_for_fix().
#define PGBUF_BCB_AVOID_DEALLOC_MASK ((int) 0x0000FFFF) |
Definition at line 259 of file page_buffer.c.
Referenced by pgbuf_bcb_should_avoid_deallocation(), and pgbuf_bcb_unregister_avoid_deallocation().
#define PGBUF_BCB_CHECK_MUTEX_LEAKS | ( | ) |
Definition at line 846 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_claim_bcb_for_fix(), pgbuf_fix_debug(), pgbuf_flush_if_requested(), pgbuf_flush_victim_candidates(), and pgbuf_unfix_debug().
#define PGBUF_BCB_CHECK_OWN | ( | bcb | ) | (true) |
Definition at line 845 of file page_buffer.c.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_flush_with_wal(), pgbuf_bcb_safe_flush_internal(), pgbuf_is_bcb_fixed_by_any(), and pgbuf_wake_flush_waiters().
#define PGBUF_BCB_COUNT_FIX_SHIFT_BITS 16 |
Definition at line 258 of file page_buffer.c.
Referenced by pgbuf_bcb_is_hot(), and pgbuf_bcb_register_fix().
#define PGBUF_BCB_DIRTY_FLAG ((int) 0x80000000) |
Definition at line 214 of file page_buffer.c.
Referenced by pgbuf_bcb_clear_dirty(), pgbuf_bcb_is_dirty(), pgbuf_bcb_mark_is_flushing(), pgbuf_bcb_mark_was_not_flushed(), pgbuf_bcb_set_dirty(), pgbuf_bcb_update_flags(), pgbuf_dealloc_page(), pgbuf_peek_stats(), and pgbuf_scan_bcb_table().
#define PGBUF_BCB_FLAGS_MASK |
Definition at line 234 of file page_buffer.c.
Referenced by pgbuf_bcb_change_zone(), pgbuf_bcb_update_flags(), pgbuf_flags_mask_sanity_check(), and pgbuf_put_bcb_into_invalid_list().
#define PGBUF_BCB_FLUSHING_TO_DISK_FLAG ((int) 0x40000000) |
Definition at line 217 of file page_buffer.c.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_is_flushing(), pgbuf_bcb_mark_is_flushing(), pgbuf_bcb_mark_was_flushed(), pgbuf_bcb_mark_was_not_flushed(), and pgbuf_peek_stats().
#define PGBUF_BCB_INIT_FLAGS PGBUF_INVALID_ZONE |
Definition at line 255 of file page_buffer.c.
Referenced by pgbuf_initialize_bcb_table().
#define PGBUF_BCB_INVALID_VICTIM_CANDIDATE_MASK |
Definition at line 248 of file page_buffer.c.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_avoid_victim(), pgbuf_bcb_change_zone(), pgbuf_bcb_set_dirty(), and pgbuf_bcb_update_flags().
#define PGBUF_BCB_INVALIDATE_DIRECT_VICTIM_FLAG ((int) 0x10000000) |
Definition at line 225 of file page_buffer.c.
Referenced by pgbuf_allocate_bcb(), pgbuf_assign_direct_victim(), pgbuf_bcb_is_invalid_direct_victim(), and pgbuf_fix_debug().
#define PGBUF_BCB_LOCK | ( | bcb | ) |
Definition at line 842 of file page_buffer.c.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_flush_with_wal(), pgbuf_bcb_safe_flush_force_lock(), pgbuf_block_bcb(), pgbuf_check_bcb_page_vpid(), pgbuf_dealloc_page(), pgbuf_fix_debug(), pgbuf_flush_all_helper(), pgbuf_flush_checkpoint(), pgbuf_flush_if_requested(), pgbuf_flush_neighbor_safe(), pgbuf_flush_seq_list(), pgbuf_flush_victim_candidates(), pgbuf_flush_with_wal(), pgbuf_get_bcb_from_invalid_list(), pgbuf_has_any_waiters(), pgbuf_invalidate_all_debug(), pgbuf_invalidate_debug(), pgbuf_is_valid_page_ptr(), pgbuf_promote_read_latch_debug(), pgbuf_search_hash_chain(), and pgbuf_unfix_debug().
#define PGBUF_BCB_MOVE_TO_LRU_BOTTOM_FLAG ((int) 0x08000000) |
Definition at line 227 of file page_buffer.c.
Referenced by pgbuf_bcb_should_be_moved_to_bottom_lru(), pgbuf_dealloc_page(), and pgbuf_move_bcb_to_bottom_lru().
#define PGBUF_BCB_SIZEOF (sizeof (PGBUF_BCB)) |
Definition at line 110 of file page_buffer.c.
Referenced by pgbuf_initialize_bcb_table().
#define PGBUF_BCB_TO_VACUUM_FLAG ((int) 0x04000000) |
Definition at line 229 of file page_buffer.c.
Referenced by pgbuf_bcb_is_to_vacuum(), pgbuf_fix_debug(), pgbuf_notify_vacuum_follows(), and pgbuf_victimize_bcb().
#define PGBUF_BCB_TRYLOCK | ( | bcb | ) | (0) |
Definition at line 843 of file page_buffer.c.
Referenced by pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_lru_fall_bcb_to_zone_3(), and pgbuf_search_hash_chain().
#define PGBUF_BCB_UNLOCK | ( | bcb | ) |
Definition at line 844 of file page_buffer.c.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_flush_with_wal(), pgbuf_bcb_safe_flush_force_lock(), pgbuf_bcb_safe_flush_force_unlock(), pgbuf_block_bcb(), pgbuf_check_bcb_page_vpid(), pgbuf_copy_from_area(), pgbuf_copy_to_area(), pgbuf_delete_from_hash_chain(), pgbuf_fix_debug(), pgbuf_flush_all_helper(), pgbuf_flush_checkpoint(), pgbuf_flush_neighbor_safe(), pgbuf_flush_page_and_neighbors_fb(), pgbuf_flush_seq_list(), pgbuf_flush_victim_candidates(), pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_has_any_waiters(), pgbuf_invalidate_all_debug(), pgbuf_invalidate_bcb(), pgbuf_invalidate_debug(), pgbuf_is_valid_page_ptr(), pgbuf_latch_bcb_upon_fix(), pgbuf_latch_idle_page(), pgbuf_lru_fall_bcb_to_zone_3(), pgbuf_ordered_fix_debug(), pgbuf_promote_read_latch_debug(), pgbuf_put_bcb_into_invalid_list(), pgbuf_search_hash_chain(), pgbuf_unfix_debug(), pgbuf_unlatch_bcb_upon_unfix(), and pgbuf_victimize_bcb().
#define PGBUF_BCB_VICTIM_DIRECT_FLAG ((int) 0x20000000) |
Definition at line 224 of file page_buffer.c.
Referenced by pgbuf_allocate_bcb(), pgbuf_assign_direct_victim(), pgbuf_bcb_is_direct_victim(), and pgbuf_fix_debug().
#define PGBUF_BUFFER_HASH_SIZEOF (sizeof (PGBUF_BUFFER_HASH)) |
Definition at line 115 of file page_buffer.c.
Referenced by pgbuf_initialize_hash_table().
#define PGBUF_BUFFER_LOCK_SIZEOF (sizeof (PGBUF_BUFFER_LOCK)) |
Definition at line 117 of file page_buffer.c.
Referenced by pgbuf_initialize_lock_table().
#define PGBUF_CHKPT_BURST_PAGES 16 |
Definition at line 307 of file page_buffer.c.
Referenced by pgbuf_flush_chkpt_seq_list().
#define PGBUF_CHKPT_MAX_FLUSH_RATE 1200 |
Definition at line 303 of file page_buffer.c.
Referenced by pgbuf_flush_seq_list().
#define PGBUF_CHKPT_MIN_FLUSH_RATE 50 |
Definition at line 304 of file page_buffer.c.
Referenced by pgbuf_flush_seq_list().
#define PGBUF_DEFAULT_FIX_COUNT 7 |
Definition at line 83 of file page_buffer.c.
Referenced by pgbuf_initialize_thrd_holder().
#define PGBUF_DESIRED_HIT_VS_MISS_RATE 1000 /* 99.9% hit ratio */ |
Referenced by pgbuf_is_hit_ratio_low().
#define PGBUF_FIND_BCB_PTR | ( | i | ) | ((PGBUF_BCB *) ((char *) &(pgbuf_Pool.BCB_table[0]) + (PGBUF_BCB_SIZEOF * (i)))) |
Definition at line 128 of file page_buffer.c.
Referenced by pgbuf_check_bcb_page_vpid(), pgbuf_finalize(), pgbuf_flush_all_helper(), pgbuf_flush_checkpoint(), pgbuf_initialize_bcb_table(), pgbuf_initialize_invalid_list(), pgbuf_invalidate_all_debug(), pgbuf_is_valid_page_ptr(), pgbuf_peek_stats(), and pgbuf_scan_bcb_table().
#define PGBUF_FIND_BUFFER_GUARD | ( | bufptr | ) | (&bufptr->iopage_buffer->iopage.page[DB_PAGESIZE]) |
Definition at line 134 of file page_buffer.c.
Referenced by pgbuf_check_bcb_page_vpid(), pgbuf_initialize_bcb_table(), and pgbuf_unfix_debug().
#define PGBUF_FIND_IOPAGE_PTR | ( | i | ) | ((PGBUF_IOPAGE_BUFFER *) ((char *) &(pgbuf_Pool.iopage_table[0]) + (PGBUF_IOPAGE_BUFFER_SIZE * (i)))) |
Definition at line 131 of file page_buffer.c.
Referenced by pgbuf_initialize_bcb_table().
#define PGBUF_FIX_COUNT_THRESHOLD 64 /* fix count threshold. used as indicator for hot pages. */ |
Definition at line 100 of file page_buffer.c.
Referenced by pgbuf_bcb_is_hot(), and pgbuf_bcb_register_fix().
#define PGBUF_FLUSH_VICTIM_BOOST_MULT 10 |
Definition at line 286 of file page_buffer.c.
Referenced by pgbuf_flush_victim_candidates().
#define PGBUF_GET_LRU_INDEX | ( | flags | ) | ((flags) & PGBUF_LRU_INDEX_MASK) |
Definition at line 206 of file page_buffer.c.
Referenced by pgbuf_bcb_change_zone(), and pgbuf_bcb_get_lru_index().
#define PGBUF_GET_LRU_LIST | ( | lru_idx | ) | (&pgbuf_Pool.buf_LRU_list[lru_idx]) |
Definition at line 880 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_assign_private_lru(), pgbuf_bcb_change_zone(), pgbuf_compute_lru_vict_target(), pgbuf_get_victim(), pgbuf_get_victim_from_lru_list(), pgbuf_lfcq_get_victim_from_private_lru(), pgbuf_lfcq_get_victim_from_shared_lru(), pgbuf_lru_list_from_bcb(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_put_bcb_into_invalid_list(), and pgbuf_should_move_private_to_shared().
#define PGBUF_GET_ZONE | ( | flags | ) | ((PGBUF_ZONE) ((flags) & PGBUF_ZONE_MASK)) |
Definition at line 205 of file page_buffer.c.
Referenced by pgbuf_bcb_change_zone(), pgbuf_bcb_get_zone(), pgbuf_bcb_set_dirty(), pgbuf_bcb_update_flags(), pgbuf_peek_stats(), and pgbuf_scan_bcb_table().
#define PGBUF_HASH_SIZE (1 << HASH_SIZE_BITS) |
Definition at line 279 of file page_buffer.c.
Referenced by pgbuf_finalize(), and pgbuf_initialize_hash_table().
#define PGBUF_HASH_VALUE | ( | vpid | ) | pgbuf_hash_func_mirror(vpid) |
Definition at line 281 of file page_buffer.c.
Referenced by pgbuf_copy_from_area(), pgbuf_copy_to_area(), pgbuf_delete_from_hash_chain(), pgbuf_fix_debug(), pgbuf_flush_page_and_neighbors_fb(), and pgbuf_ordered_fix_debug().
#define PGBUF_HOLDER_ANCHOR_SIZEOF (sizeof (PGBUF_HOLDER_ANCHOR)) |
Definition at line 125 of file page_buffer.c.
Referenced by pgbuf_initialize_thrd_holder().
#define PGBUF_HOLDER_SET_SIZEOF (sizeof (PGBUF_HOLDER_SET)) |
Definition at line 123 of file page_buffer.c.
Referenced by pgbuf_allocate_thrd_holder_entry().
#define PGBUF_HOLDER_SIZEOF (sizeof (PGBUF_HOLDER)) |
Definition at line 121 of file page_buffer.c.
Referenced by pgbuf_initialize_thrd_holder().
#define PGBUF_IOPAGE_BUFFER_SIZE |
Definition at line 111 of file page_buffer.c.
Referenced by pgbuf_initialize_bcb_table(), and pgbuf_start_scan().
#define PGBUF_IS_AUXILIARY_VOLUME | ( | volid | ) | ((volid) < LOG_DBFIRST_VOLID ? true : false) |
Definition at line 162 of file page_buffer.c.
Referenced by pgbuf_set_lsa(), and pgbuf_unfix_debug().
#define PGBUF_IS_BCB_IN_LRU | ( | bcb | ) | ((pgbuf_bcb_get_zone (bcb) & PGBUF_LRU_ZONE_MASK) != 0) |
Definition at line 883 of file page_buffer.c.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_get_lru_index(), pgbuf_bcb_register_hit_for_lru(), pgbuf_invalidate_bcb(), pgbuf_lru_add_new_bcb_to_bottom(), pgbuf_lru_add_new_bcb_to_middle(), pgbuf_lru_add_new_bcb_to_top(), pgbuf_lru_boost_bcb(), pgbuf_lru_list_from_bcb(), and pgbuf_lru_remove_bcb().
#define PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE | ( | bcb | ) | (pgbuf_bcb_get_zone (bcb) == PGBUF_LRU_3_ZONE) |
Definition at line 882 of file page_buffer.c.
Referenced by pgbuf_assign_direct_victim(), pgbuf_flush_victim_candidates(), pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_lru_add_bcb_to_bottom(), pgbuf_lru_add_victim_candidate(), and pgbuf_lru_advance_victim_hint().
#define PGBUF_IS_BCB_OLD_ENOUGH | ( | bcb, | |
lru_list | |||
) | (PGBUF_AGE_DIFF ((bcb)->tick_lru_list, (lru_list)->tick_list) >= ((lru_list)->count_lru2 / 2)) |
Definition at line 890 of file page_buffer.c.
Referenced by pgbuf_should_move_private_to_shared(), and pgbuf_unlatch_bcb_upon_unfix().
#define PGBUF_IS_PRIVATE_LRU_INDEX | ( | lru_idx | ) | ((lru_idx) >= PGBUF_SHARED_LRU_COUNT) |
Definition at line 938 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_assign_direct_victim(), pgbuf_compute_lru_vict_target(), pgbuf_initialize_page_quota(), pgbuf_lfcq_add_lru_with_victims(), pgbuf_lfcq_get_victim_from_private_lru(), pgbuf_lru_boost_bcb(), pgbuf_lru_move_from_private_to_shared(), pgbuf_peek_stats(), and pgbuf_unlatch_bcb_upon_unfix().
#define PGBUF_IS_PRIVATE_LRU_ONE_TWO_OVER_QUOTA | ( | lru_idx | ) | (PGBUF_IS_PRIVATE_LRU_INDEX (lru_idx) && PGBUF_LRU_LIST_IS_ONE_TWO_OVER_QUOTA (PGBUF_GET_LRU_LIST (lru_idx))) |
Definition at line 946 of file page_buffer.c.
Referenced by pgbuf_get_victim_from_lru_list().
#define PGBUF_IS_PRIVATE_LRU_OVER_QUOTA | ( | lru_idx | ) | (PGBUF_IS_PRIVATE_LRU_INDEX (lru_idx) && PGBUF_LRU_LIST_IS_OVER_QUOTA (PGBUF_GET_LRU_LIST (lru_idx))) |
Definition at line 944 of file page_buffer.c.
#define PGBUF_IS_SHARED_LRU_INDEX | ( | lru_idx | ) | ((lru_idx) < PGBUF_SHARED_LRU_COUNT) |
Definition at line 937 of file page_buffer.c.
Referenced by pgbuf_bcb_change_zone(), pgbuf_compute_lru_vict_target(), pgbuf_lfcq_get_victim_from_shared_lru(), pgbuf_lru_add_victim_candidate(), and pgbuf_should_move_private_to_shared().
#define PGBUF_LIMIT_AOUT_BUFFERS 32768 |
Referenced by pgbuf_initialize_aout_list().
#define PGBUF_LRU_ARE_ZONES_ONE_TWO_OVER_THRESHOLD | ( | list | ) | ((list)->threshold_lru1 + (list)->threshold_lru2 < PGBUF_LRU_ZONE_ONE_TWO_COUNT(list)) |
Definition at line 899 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas().
#define PGBUF_LRU_INDEX_FROM_PRIVATE | ( | private_id | ) | (PGBUF_SHARED_LRU_COUNT + (private_id)) |
Definition at line 935 of file page_buffer.c.
Referenced by pgbuf_compute_lru_vict_target(), pgbuf_get_victim(), pgbuf_get_victim_from_lru_list(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_release_private_lru(), and pgbuf_unlatch_bcb_upon_unfix().
#define PGBUF_LRU_INDEX_MASK (PGBUF_LRU_LIST_MAX_COUNT - 1) /* 0x0000FFFF */ |
Definition at line 172 of file page_buffer.c.
Referenced by pgbuf_flags_mask_sanity_check(), and pgbuf_peek_stats().
#define PGBUF_LRU_IS_ZONE_ONE_OVER_THRESHOLD | ( | list | ) | ((list)->threshold_lru1 < (list)->count_lru1) |
Definition at line 897 of file page_buffer.c.
#define PGBUF_LRU_IS_ZONE_TWO_OVER_THRESHOLD | ( | list | ) | ((list)->threshold_lru2 < (list)->count_lru2) |
Definition at line 898 of file page_buffer.c.
#define PGBUF_LRU_LIST_COUNT | ( | list | ) | (PGBUF_LRU_ZONE_ONE_TWO_COUNT(list) + (list)->count_lru3) |
Definition at line 894 of file page_buffer.c.
Referenced by pgbuf_assign_private_lru(), pgbuf_compute_lru_vict_target(), pgbuf_lfcq_get_victim_from_private_lru(), and pgbuf_put_bcb_into_invalid_list().
#define PGBUF_LRU_LIST_IS_ONE_TWO_OVER_QUOTA | ( | list | ) | ((PGBUF_LRU_ZONE_ONE_TWO_COUNT (list) > (list)->quota)) |
Definition at line 941 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), and pgbuf_get_victim().
#define PGBUF_LRU_LIST_IS_OVER_QUOTA | ( | list | ) | (PGBUF_LRU_LIST_COUNT (list) > (list)->quota) |
Definition at line 940 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_assign_direct_victim(), pgbuf_get_victim(), pgbuf_lfcq_get_victim_from_private_lru(), and pgbuf_lru_add_victim_candidate().
#define PGBUF_LRU_LIST_IS_OVER_QUOTA_WITH_BUFFER | ( | list | ) | (PGBUF_LRU_LIST_COUNT (list) > (list)->quota + PGBUF_OVER_QUOTA_BUFFER ((list)->quota)) |
Definition at line 950 of file page_buffer.c.
Referenced by pgbuf_get_victim().
#define PGBUF_LRU_LIST_MAX_COUNT ((int) 1 << PGBUF_LRU_NBITS) /* 64k */ |
Definition at line 171 of file page_buffer.c.
#define PGBUF_LRU_LIST_OVER_QUOTA_COUNT | ( | list | ) | (PGBUF_LRU_LIST_COUNT (list) - (list)->quota) |
Definition at line 942 of file page_buffer.c.
#define PGBUF_LRU_LIST_SIZEOF (sizeof (PGBUF_LRU_LIST)) |
Definition at line 119 of file page_buffer.c.
Referenced by pgbuf_initialize_lru_list().
#define PGBUF_LRU_NBITS 16 |
Definition at line 170 of file page_buffer.c.
#define PGBUF_LRU_VICTIM_LFCQ_FLAG ((int) 0x80000000) |
Definition at line 956 of file page_buffer.c.
Referenced by pgbuf_lfcq_add_lru_with_victims(), pgbuf_lfcq_get_victim_from_private_lru(), and pgbuf_lfcq_get_victim_from_shared_lru().
#define PGBUF_LRU_VICTIM_ZONE_COUNT | ( | list | ) | ((list)->count_lru3) |
Definition at line 895 of file page_buffer.c.
#define PGBUF_LRU_ZONE_MAX_RATIO 0.90f |
Definition at line 324 of file page_buffer.c.
Referenced by pgbuf_initialize().
#define PGBUF_LRU_ZONE_MIN_RATIO 0.05f |
Definition at line 323 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_compute_lru_vict_target(), and pgbuf_initialize().
#define PGBUF_LRU_ZONE_ONE_TWO_COUNT | ( | list | ) | ((list)->count_lru1 + (list)->count_lru2) |
Definition at line 893 of file page_buffer.c.
Referenced by pgbuf_lru_adjust_zones().
#define PGBUF_MAKE_ZONE | ( | list_id, | |
zone | |||
) | ((list_id) | (zone)) |
Definition at line 204 of file page_buffer.c.
Referenced by pgbuf_bcb_change_zone().
#define PGBUF_MAX_NEIGHBOR_PAGES 32 |
Definition at line 291 of file page_buffer.c.
#define PGBUF_MAX_PAGE_FIXED_BY_TRAN 64 |
Definition at line 300 of file page_buffer.c.
Referenced by pgbuf_ordered_fix_debug().
#define PGBUF_MAX_PAGE_WATCHERS 64 |
Definition at line 298 of file page_buffer.c.
Referenced by pgbuf_add_watch_instance_internal(), and pgbuf_ordered_fix_debug().
#define PGBUF_MIN_PAGES_IN_SHARED_LIST 1000 |
Definition at line 909 of file page_buffer.c.
Referenced by pgbuf_initialize_lru_list().
#define PGBUF_MIN_SHARED_LIST_ADJUST_SIZE 50 |
Definition at line 910 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), and pgbuf_compute_lru_vict_target().
#define PGBUF_MIN_VICTIM_REQ 10 /* set a minimum number of requests */ |
Referenced by pgbuf_is_hit_ratio_low().
#define PGBUF_MINIMUM_BUFFERS (MAX_NTRANS * 10) |
Definition at line 77 of file page_buffer.c.
Referenced by pgbuf_initialize().
#define PGBUF_NEIGHBOR_FLUSH_NONDIRTY (prm_get_bool_value (PRM_ID_PB_NEIGHBOR_FLUSH_NONDIRTY)) |
Definition at line 288 of file page_buffer.c.
Referenced by pgbuf_flush_page_and_neighbors_fb().
#define PGBUF_NEIGHBOR_PAGES (prm_get_integer_value (PRM_ID_PB_NEIGHBOR_FLUSH_PAGES)) |
Definition at line 292 of file page_buffer.c.
Referenced by pgbuf_add_bufptr_to_batch(), pgbuf_flush_page_and_neighbors_fb(), and pgbuf_flush_victim_candidates().
#define PGBUF_NEIGHBOR_POS | ( | idx | ) | (PGBUF_NEIGHBOR_PAGES - 1 + (idx)) |
Definition at line 295 of file page_buffer.c.
Referenced by pgbuf_add_bufptr_to_batch(), and pgbuf_flush_page_and_neighbors_fb().
#define PGBUF_NUM_ALLOC_HOLDER 10 |
Definition at line 87 of file page_buffer.c.
Referenced by pgbuf_allocate_thrd_holder_entry().
#define PGBUF_OVER_QUOTA_BUFFER | ( | quota | ) | MAX (10, (int) (quota * 0.01f)) |
Definition at line 949 of file page_buffer.c.
#define PGBUF_PAGE_QUOTA_IS_ENABLED (pgbuf_Pool.quota.num_private_LRU_list > 0) |
Definition at line 912 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_assign_private_lru(), pgbuf_get_victim(), pgbuf_initialize(), pgbuf_initialize_page_quota(), and pgbuf_release_private_lru().
#define PGBUF_PAGES_COUNT_THRESHOLD 4 |
Referenced by pgbuf_flush_page_and_neighbors_fb().
#define PGBUF_PRIVATE_LIST_FROM_LRU_INDEX | ( | i | ) | ((i) - PGBUF_SHARED_LRU_COUNT) |
Definition at line 934 of file page_buffer.c.
Referenced by pgbuf_assign_private_lru(), and pgbuf_initialize_page_quota().
#define PGBUF_PRIVATE_LRU_COUNT (pgbuf_Pool.quota.num_private_LRU_list) |
Definition at line 931 of file page_buffer.c.
Referenced by pgbuf_get_victim_from_lru_list(), pgbuf_initialize(), pgbuf_initialize_page_quota(), and pgbuf_release_private_lru().
#define PGBUF_PRIVATE_LRU_FROM_THREAD | ( | thread_p | ) | 0 |
Definition at line 926 of file page_buffer.c.
Referenced by pgbuf_get_victim(), pgbuf_move_bcb_to_bottom_lru(), and pgbuf_unlatch_bcb_upon_unfix().
#define PGBUF_PRIVATE_LRU_MAX_HARD_QUOTA 5000 |
Definition at line 906 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas().
#define PGBUF_PRIVATE_LRU_MIN_COUNT 4 |
Definition at line 905 of file page_buffer.c.
Referenced by pgbuf_initialize_page_quota_parameters().
#define PGBUF_SHARED_LRU_COUNT (pgbuf_Pool.num_LRU_list) |
Definition at line 930 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_assign_private_lru(), pgbuf_compute_lru_vict_target(), pgbuf_get_victim_from_lru_list(), pgbuf_initialize(), and pgbuf_put_bcb_into_invalid_list().
#define PGBUF_THREAD_HAS_PRIVATE_LRU | ( | thread_p | ) | false |
Definition at line 927 of file page_buffer.c.
Referenced by pgbuf_get_victim(), pgbuf_move_bcb_to_bottom_lru(), and pgbuf_unlatch_bcb_upon_unfix().
#define PGBUF_THREAD_SHOULD_IGNORE_UNFIX | ( | th | ) | false |
Definition at line 275 of file page_buffer.c.
Referenced by pgbuf_get_victim(), pgbuf_unlatch_bcb_upon_unfix(), and pgbuf_unlatch_void_zone_bcb().
#define PGBUF_TIMEOUT 300 /* timeout seconds */ |
Definition at line 99 of file page_buffer.c.
Referenced by pgbuf_allocate_bcb(), and pgbuf_block_bcb().
#define PGBUF_TOTAL_LRU_COUNT (PGBUF_SHARED_LRU_COUNT + PGBUF_PRIVATE_LRU_COUNT) |
Definition at line 932 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas(), pgbuf_assign_private_lru(), pgbuf_compute_lru_vict_target(), pgbuf_finalize(), pgbuf_get_victim_candidates_from_lru(), pgbuf_initialize_lru_list(), pgbuf_initialize_page_monitor(), pgbuf_initialize_page_quota(), and pgbuf_peek_stats().
#define PGBUF_TRAN_MAX_ACTIVITY (10 * PGBUF_TRAN_THRESHOLD_ACTIVITY) |
Definition at line 267 of file page_buffer.c.
Referenced by pgbuf_assign_private_lru().
#define PGBUF_TRAN_THRESHOLD_ACTIVITY (pgbuf_Pool.num_buffers / 4) |
Definition at line 266 of file page_buffer.c.
Referenced by pgbuf_adjust_quotas().
#define pthread_mutex_destroy | ( | a | ) |
Definition at line 92 of file page_buffer.c.
Referenced by pgbuf_finalize(), and pgbuf_initialize_aout_list().
#define pthread_mutex_init | ( | a, | |
b | |||
) |
Definition at line 91 of file page_buffer.c.
Referenced by pgbuf_initialize(), pgbuf_initialize_aout_list(), pgbuf_initialize_bcb_table(), pgbuf_initialize_hash_table(), pgbuf_initialize_invalid_list(), pgbuf_initialize_lru_list(), and pgbuf_initialize_thrd_holder().
#define pthread_mutex_lock | ( | a | ) | 0 |
Definition at line 93 of file page_buffer.c.
Referenced by pgbuf_add_vpid_to_aout_list(), pgbuf_adjust_quotas(), pgbuf_allocate_thrd_holder_entry(), pgbuf_check_bcb_page_vpid(), pgbuf_delete_from_hash_chain(), pgbuf_get_bcb_from_invalid_list(), pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_insert_into_hash_chain(), pgbuf_is_hit_ratio_low(), pgbuf_lock_page(), pgbuf_lru_add_new_bcb_to_bottom(), pgbuf_lru_add_new_bcb_to_middle(), pgbuf_lru_add_new_bcb_to_top(), pgbuf_lru_boost_bcb(), pgbuf_lru_remove_bcb(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_put_bcb_into_invalid_list(), pgbuf_remove_private_from_aout_list(), pgbuf_remove_vpid_from_aout_list(), pgbuf_search_hash_chain(), pgbuf_set_lsa(), pgbuf_start_scan(), and pgbuf_unlock_page().
#define pthread_mutex_unlock | ( | a | ) |
Definition at line 94 of file page_buffer.c.
Referenced by pgbuf_add_fixed_at(), pgbuf_add_vpid_to_aout_list(), pgbuf_adjust_quotas(), pgbuf_allocate_thrd_holder_entry(), pgbuf_check_bcb_page_vpid(), pgbuf_claim_bcb_for_fix(), pgbuf_copy_from_area(), pgbuf_copy_to_area(), pgbuf_delete_from_hash_chain(), pgbuf_fix_debug(), pgbuf_flush_page_and_neighbors_fb(), pgbuf_get_bcb_from_invalid_list(), pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_is_hit_ratio_low(), pgbuf_lock_page(), pgbuf_lru_add_new_bcb_to_bottom(), pgbuf_lru_add_new_bcb_to_middle(), pgbuf_lru_add_new_bcb_to_top(), pgbuf_lru_boost_bcb(), pgbuf_lru_remove_bcb(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_ordered_fix_debug(), pgbuf_put_bcb_into_invalid_list(), pgbuf_remove_private_from_aout_list(), pgbuf_remove_vpid_from_aout_list(), pgbuf_search_hash_chain(), pgbuf_set_lsa(), pgbuf_start_scan(), and pgbuf_unlock_page().
#define SIZEOF_IOPAGE_PAGESIZE_AND_GUARD | ( | ) | (IO_PAGESIZE) |
Definition at line 106 of file page_buffer.c.
#define VOLID_LSB_BITS 8 |
#define WAIT_FLUSH_VICTIMS_MAX_MSEC 1500.0f |
Referenced by pgbuf_flush_chkpt_seq_list().
typedef struct pgbuf_aout_buf PGBUF_AOUT_BUF |
Definition at line 347 of file page_buffer.c.
typedef struct pgbuf_aout_list PGBUF_AOUT_LIST |
Definition at line 353 of file page_buffer.c.
typedef struct pgbuf_batch_flush_helper PGBUF_BATCH_FLUSH_HELPER |
Definition at line 425 of file page_buffer.c.
Definition at line 345 of file page_buffer.c.
typedef struct pgbuf_buffer_hash PGBUF_BUFFER_HASH |
Definition at line 350 of file page_buffer.c.
typedef struct pgbuf_buffer_lock PGBUF_BUFFER_LOCK |
Definition at line 349 of file page_buffer.c.
typedef struct pgbuf_buffer_pool PGBUF_BUFFER_POOL |
Definition at line 359 of file page_buffer.c.
typedef struct pgbuf_dealloc_undo_data PGBUF_DEALLOC_UNDO_DATA |
Definition at line 868 of file page_buffer.c.
typedef struct pgbuf_fix_perf PGBUF_FIX_PERF |
Definition at line 850 of file page_buffer.c.
typedef struct pgbuf_holder PGBUF_HOLDER |
Definition at line 341 of file page_buffer.c.
typedef struct pgbuf_holder_anchor PGBUF_HOLDER_ANCHOR |
Definition at line 342 of file page_buffer.c.
typedef struct pgbuf_holder_info PGBUF_HOLDER_INFO |
Definition at line 363 of file page_buffer.c.
typedef struct pgbuf_holder_set PGBUF_HOLDER_SET |
Definition at line 343 of file page_buffer.c.
typedef struct pgbuf_holder_stat PGBUF_HOLDER_STAT |
Definition at line 414 of file page_buffer.c.
typedef struct pgbuf_invalid_list PGBUF_INVALID_LIST |
Definition at line 356 of file page_buffer.c.
typedef struct pgbuf_iopage_buffer PGBUF_IOPAGE_BUFFER |
Definition at line 346 of file page_buffer.c.
typedef struct pgbuf_lru_list PGBUF_LRU_LIST |
Definition at line 352 of file page_buffer.c.
typedef struct pgbuf_monitor_bcb_mutex PGBUF_MONITOR_BCB_MUTEX |
Definition at line 361 of file page_buffer.c.
typedef struct pgbuf_page_monitor PGBUF_PAGE_MONITOR |
Definition at line 650 of file page_buffer.c.
typedef struct pgbuf_page_quota PGBUF_PAGE_QUOTA |
Definition at line 672 of file page_buffer.c.
typedef struct pgbuf_seq_flusher PGBUF_SEQ_FLUSHER |
Definition at line 354 of file page_buffer.c.
typedef struct pgbuf_status PGBUF_STATUS |
Definition at line 365 of file page_buffer.c.
typedef struct pgbuf_status_old PGBUF_STATUS_OLD |
Definition at line 367 of file page_buffer.c.
typedef struct pgbuf_status_snapshot PGBUF_STATUS_SNAPSHOT |
Definition at line 366 of file page_buffer.c.
typedef struct pgbuf_victim_candidate_list PGBUF_VICTIM_CANDIDATE_LIST |
Definition at line 357 of file page_buffer.c.
anonymous enum |
Enumerator | |
---|---|
PGBUF_LOCK_WAITER | |
PGBUF_LOCK_HOLDER |
Definition at line 327 of file page_buffer.c.
anonymous enum |
Enumerator | |
---|---|
PGBUF_CONTENT_BAD | |
PGBUF_CONTENT_GOOD | |
PGBUF_CONTENT_LIKELY_BAD | |
PGBUF_CONTENT_ERROR |
Definition at line 333 of file page_buffer.c.
anonymous enum |
Definition at line 10951 of file page_buffer.c.
enum PGBUF_ZONE |
Enumerator | |
---|---|
PGBUF_LRU_1_ZONE | |
PGBUF_LRU_2_ZONE | |
PGBUF_LRU_3_ZONE | |
PGBUF_LRU_ZONE_MASK | |
PGBUF_INVALID_ZONE | |
PGBUF_VOID_ZONE | |
PGBUF_ZONE_MASK |
Definition at line 175 of file page_buffer.c.
STATIC_INLINE void pgbuf_add_bufptr_to_batch | ( | PGBUF_BCB * | bufptr, |
int | idx | ||
) |
Definition at line 11270 of file page_buffer.c.
References assert, pgbuf_batch_flush_helper::back_offset, pgbuf_batch_flush_helper::fwd_offset, pgbuf_bcb::latch_mode, pgbuf_batch_flush_helper::npages, pgbuf_batch_flush_helper::pages_bufptr, pgbuf_Flush_helper, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_NEIGHBOR_PAGES, PGBUF_NEIGHBOR_POS, PGBUF_NO_LATCH, STATIC_INLINE, pgbuf_bcb::vpid, VPID_COPY, and pgbuf_batch_flush_helper::vpids.
Referenced by pgbuf_flush_page_and_neighbors_fb().
|
static |
Definition at line 10716 of file page_buffer.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_COND_SIGNAL, ER_ERROR_SEVERITY, er_log_debug, er_set_with_oserror(), pgbuf_holder::fixed_at, pgbuf_holder::fixed_at_size, NO_ERROR, NULL, p, PGBUF_NO_LATCH, pthread_mutex_unlock, STATIC_INLINE, strlen, thread_lock_entry(), THREAD_PGBUF_RESUMED, THREAD_PGBUF_SUSPENDED, thread_suspend_wakeup_and_unlock_entry(), and thread_unlock_entry().
Referenced by pgbuf_fix_debug(), and pgbuf_promote_read_latch_debug().
STATIC_INLINE void pgbuf_add_vpid_to_aout_list | ( | THREAD_ENTRY * | thread_p, |
const VPID * | vpid, | ||
const int | lru_idx | ||
) |
Definition at line 9642 of file page_buffer.c.
References pgbuf_aout_list::Aout_bottom, pgbuf_aout_list::aout_buf_ht, pgbuf_aout_list::Aout_free, AOUT_HASH_IDX, pgbuf_aout_list::Aout_top, assert, pgbuf_buffer_pool::buf_AOUT_list, pgbuf_aout_buf::lru_idx, pgbuf_aout_list::max_count, mht_put(), mht_rem(), pgbuf_aout_buf::next, NULL, pgbuf_aout_buf::prev, pthread_mutex_lock, pthread_mutex_unlock, rv, pgbuf_aout_buf::vpid, VPID_COPY, and VPID_ISNULL.
Referenced by pgbuf_assign_direct_victim(), pgbuf_get_victim_from_lru_list(), pgbuf_lru_fall_bcb_to_zone_3(), and pgbuf_unlatch_void_zone_bcb().
STATIC_INLINE void pgbuf_add_watch_instance_internal | ( | PGBUF_HOLDER * | holder, |
PAGE_PTR | pgptr, | ||
PGBUF_WATCHER * | watcher, | ||
const PGBUF_LATCH_MODE | latch_mode, | ||
const bool | clear_unfix_flag, | ||
const char * | caller_file, | ||
const int | caller_line | ||
) |
Definition at line 12351 of file page_buffer.c.
References assert, pgbuf_holder::first_watcher, pgbuf_holder::last_watcher, pgbuf_watcher::latch_mode, pgbuf_watcher::next, NULL, p, pgbuf_watcher::page_was_unfixed, PGBUF_MAX_PAGE_WATCHERS, pgbuf_watcher::pgptr, pgbuf_watcher::prev, strlen, pgbuf_holder::watch_count, and pgbuf_watcher::watched_at.
Referenced by pgbuf_attach_watcher_debug(), pgbuf_ordered_fix_debug(), and pgbuf_replace_watcher_debug().
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().
|
static |
Definition at line 7400 of file page_buffer.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_COND_TIMEDOUT, er_errid(), ER_ERROR_SEVERITY, ER_INTERRUPTED, ER_PB_ALL_BUFFERS_DIRTY, er_set(), LOG_FIND_THREAD_TRAN_INDEX, NO_ERROR, NULL, pgbuf_status::num_flusher_waiting_threads, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), PGBUF_BCB_INVALIDATE_DIRECT_VICTIM_FLAG, pgbuf_bcb_update_flags(), PGBUF_BCB_VICTIM_DIRECT_FLAG, pgbuf_get_bcb_from_invalid_list(), pgbuf_get_victim(), pgbuf_is_page_flush_daemon_available(), PGBUF_TIMEOUT, pgbuf_victimize_bcb(), pgbuf_wakeup_page_flush_daemon(), PSTAT_PB_ALLOC_BCB, PSTAT_PB_ALLOC_BCB_COND_WAIT_HIGH_PRIO, PSTAT_PB_ALLOC_BCB_COND_WAIT_LOW_PRIO, PSTAT_PB_ALLOC_BCB_PRIORITIZE_VACUUM, PSTAT_PB_ALLOC_BCB_SEARCH_VICTIM, pgbuf_buffer_pool::show_status, THREAD_ALLOC_BCB_RESUMED, THREAD_ALLOC_BCB_SUSPENDED, thread_lock_entry(), THREAD_RESUME_DUE_TO_INTERRUPT, THREAD_RESUME_DUE_TO_SHUTDOWN, thread_suspend_timeout_wakeup_and_unlock_entry(), thread_unlock_entry(), and VACUUM_IS_THREAD_VACUUM.
Referenced by pgbuf_claim_bcb_for_fix().
STATIC_INLINE PGBUF_HOLDER * pgbuf_allocate_thrd_holder_entry | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 5371 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_holder_set::element, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), pgbuf_holder::first_watcher, pgbuf_buffer_pool::free_holder_set, pgbuf_buffer_pool::free_index, pgbuf_holder::last_watcher, pgbuf_holder::next_holder, pgbuf_holder_set::next_set, NULL, pgbuf_holder_anchor::num_free_cnt, pgbuf_holder_anchor::num_hold_cnt, PGBUF_HOLDER_SET_SIZEOF, PGBUF_NUM_ALLOC_HOLDER, pthread_mutex_lock, pthread_mutex_unlock, rv, STATIC_INLINE, pgbuf_holder_anchor::thrd_free_list, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, thread_get_entry_index(), and pgbuf_holder::watch_count.
Referenced by pgbuf_latch_bcb_upon_fix(), pgbuf_latch_idle_page(), and pgbuf_promote_read_latch_debug().
STATIC_INLINE bool pgbuf_assign_direct_victim | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb | ||
) |
Definition at line 14222 of file page_buffer.c.
References assert, cubregex::count(), pgbuf_bcb::flags, NULL, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), pgbuf_add_vpid_to_aout_list(), PGBUF_BCB_CHECK_OWN, PGBUF_BCB_FLUSHING_TO_DISK_FLAG, pgbuf_bcb_get_lru_index(), pgbuf_bcb_get_zone(), PGBUF_BCB_INVALID_VICTIM_CANDIDATE_MASK, PGBUF_BCB_INVALIDATE_DIRECT_VICTIM_FLAG, pgbuf_bcb_is_direct_victim(), pgbuf_bcb_is_dirty(), pgbuf_bcb_is_invalid_direct_victim(), PGBUF_BCB_LOCK, pgbuf_bcb_mark_was_flushed(), PGBUF_BCB_UNLOCK, pgbuf_bcb_update_flags(), PGBUF_BCB_VICTIM_DIRECT_FLAG, PGBUF_INVALID_ZONE, pgbuf_is_bcb_fixed_by_any(), PGBUF_IS_BCB_IN_LRU, PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE, pgbuf_is_bcb_victimizable(), PGBUF_IS_PRIVATE_LRU_INDEX, pgbuf_lru_list_from_bcb(), PGBUF_LRU_LIST_IS_OVER_QUOTA, pgbuf_lru_remove_bcb(), PGBUF_VOID_ZONE, pgbuf_wake_flush_waiters(), PSTAT_PB_ASSIGN_DIRECT_BCB, PSTAT_PB_VICTIM_ASSIGN_DIRECT_FLUSH, REFPTR, STATIC_INLINE, THREAD_ALLOC_BCB_RESUMED, THREAD_ALLOC_BCB_SUSPENDED, thread_lock_entry(), thread_unlock_entry(), thread_wakeup_already_had_mutex(), and pgbuf_bcb::vpid.
Referenced by pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_lru_add_new_bcb_to_bottom(), pgbuf_lru_fall_bcb_to_zone_3(), pgbuf_unlatch_bcb_upon_unfix(), and pgbuf_unlatch_void_zone_bcb().
int pgbuf_assign_private_lru | ( | THREAD_ENTRY * | thread_p, |
bool | is_vacuum, | ||
const int | id | ||
) |
Definition at line 13312 of file page_buffer.c.
References assert, i, pgbuf_page_monitor::lru_activity, pgbuf_buffer_pool::monitor, pgbuf_buffer_pool::num_buffers, pgbuf_adjust_quotas(), PGBUF_GET_LRU_LIST, PGBUF_LRU_LIST_COUNT, PGBUF_PAGE_QUOTA_IS_ENABLED, PGBUF_PRIVATE_LIST_FROM_LRU_INDEX, PGBUF_SHARED_LRU_COUNT, PGBUF_TOTAL_LRU_COUNT, PGBUF_TRAN_MAX_ACTIVITY, pgbuf_page_quota::private_lru_session_cnt, and pgbuf_buffer_pool::quota.
Referenced by session_state_create(), and vacuum_initialize().
void pgbuf_attach_watcher_debug | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGBUF_LATCH_MODE | latch_mode, | ||
HFID * | hfid, | ||
PGBUF_WATCHER * | watcher, | ||
const char * | caller_file, | ||
const int | caller_line | ||
) |
Definition at line 12429 of file page_buffer.c.
References assert, pgbuf_watcher::curr_rank, HFID_IS_NULL, hfid::hpgid, NULL, vpid::pageid, pgbuf_add_watch_instance_internal(), pgbuf_get_holder(), pgbuf_get_vpid_ptr(), PGBUF_INIT_WATCHER, PGBUF_ORDERED_HEAP_HDR, PGBUF_ORDERED_HEAP_NORMAL, hfid::vfid, vpid::volid, vfid::volid, VPID_EQ, and VPID_INITIALIZER.
STATIC_INLINE bool pgbuf_bcb_avoid_victim | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 15016 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_BCB_INVALID_VICTIM_CANDIDATE_MASK, and STATIC_INLINE.
Referenced by pgbuf_claim_bcb_for_fix(), pgbuf_get_victim_from_lru_list(), pgbuf_invalidate_all_debug(), pgbuf_invalidate_debug(), pgbuf_is_bcb_victimizable(), pgbuf_unlatch_bcb_upon_unfix(), and pgbuf_unlatch_void_zone_bcb().
STATIC_INLINE void pgbuf_bcb_change_zone | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
int | new_lru_idx, | ||
PGBUF_ZONE | new_zone | ||
) |
Definition at line 14682 of file page_buffer.c.
References assert, pgbuf_lru_list::count_lru1, pgbuf_lru_list::count_lru2, pgbuf_lru_list::count_lru3, pgbuf_bcb::flags, pgbuf_page_monitor::lru_shared_pgs_cnt, pgbuf_buffer_pool::monitor, NULL, PGBUF_BCB_FLAGS_MASK, PGBUF_BCB_INVALID_VICTIM_CANDIDATE_MASK, PGBUF_GET_LRU_INDEX, PGBUF_GET_LRU_LIST, PGBUF_GET_ZONE, PGBUF_IS_SHARED_LRU_INDEX, PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, PGBUF_LRU_3_ZONE, pgbuf_lru_add_victim_candidate(), pgbuf_lru_remove_victim_candidate(), PGBUF_LRU_ZONE_MASK, PGBUF_MAKE_ZONE, STATIC_INLINE, and pgbuf_lru_list::victim_hint.
Referenced by pgbuf_get_bcb_from_invalid_list(), pgbuf_lru_add_bcb_to_bottom(), pgbuf_lru_add_bcb_to_middle(), pgbuf_lru_add_bcb_to_top(), pgbuf_lru_adjust_zone1(), pgbuf_lru_fall_bcb_to_zone_3(), pgbuf_put_bcb_into_invalid_list(), and pgbuf_remove_from_lru_list().
STATIC_INLINE void pgbuf_bcb_check_and_reset_fix_and_avoid_dealloc | ( | PGBUF_BCB * | bcb, |
const char * | file, | ||
int | line | ||
) |
Definition at line 15116 of file page_buffer.c.
References pgbuf_bcb::count_fix_and_avoid_dealloc, er_log_debug, pgbuf_bcb_should_avoid_deallocation(), STATIC_INLINE, pgbuf_bcb::vpid, and VPID_AS_ARGS.
Referenced by pgbuf_claim_bcb_for_fix(), pgbuf_delete_from_hash_chain(), and pgbuf_put_bcb_into_invalid_list().
STATIC_INLINE void pgbuf_bcb_clear_dirty | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb | ||
) |
Definition at line 14861 of file page_buffer.c.
References PGBUF_BCB_DIRTY_FLAG, pgbuf_bcb_update_flags(), and STATIC_INLINE.
Referenced by pgbuf_invalidate_bcb().
STATIC_INLINE int pgbuf_bcb_flush_with_wal | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr, | ||
bool | is_page_flush_thread, | ||
bool * | is_bcb_locked | ||
) |
Definition at line 9897 of file page_buffer.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, pgbuf_holder::bufptr, CAST_BFPTR_TO_PGPTR, dwb_add_page(), dwb_is_created(), dwb_set_data_on_next_slot(), ER_FAILED, er_log_debug, error(), fileio_get_volume_descriptor(), fileio_write(), FILEIO_WRITE_DEFAULT_WRITE, FILEIO_WRITE_NO_COMPENSATE_WRITE, IO_MAX_PAGE_SIZE, IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_bcb::latch_mode, LOG_FIND_THREAD_TRAN_INDEX, logpb_flush_log_for_wal(), fileio_page_reserved::lsa, LSA_COPY(), LSA_ISNULL(), LSA_SET_NULL(), MAX_ALIGNMENT, NO_ERROR, NULL, pgbuf_status::num_pages_written, pgbuf_bcb::oldest_unflush_lsa, vpid::pageid, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), PGBUF_BCB_CHECK_OWN, PGBUF_BCB_LOCK, pgbuf_bcb_mark_is_flushing(), pgbuf_bcb_mark_was_flushed(), pgbuf_bcb_mark_was_not_flushed(), PGBUF_BCB_UNLOCK, pgbuf_check_bcb_page_vpid(), pgbuf_get_tde_algorithm(), pgbuf_is_temporary_volume(), PGBUF_LATCH_FLUSH, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_NO_LATCH, pgbuf_wake_flush_waiters(), fileio_page::prv, PSTAT_PB_FLUSH_PAGE_FLUSHED, PSTAT_PB_FLUSH_SEND_DIRTY_TO_POST_FLUSH, PSTAT_PB_NUM_IOWRITES, PTR_ALIGN, qmgr_get_current_query_id(), pgbuf_buffer_pool::show_status, TDE_ALGORITHM_NONE, tde_encrypt_data_page(), pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, vpid::volid, pgbuf_bcb::vpid, VPID_AS_ARGS, and cubthread::daemon::wakeup().
Referenced by pgbuf_bcb_safe_flush_internal(), pgbuf_flush_neighbor_safe(), and pgbuf_flush_victim_candidates().
STATIC_INLINE int pgbuf_bcb_get_lru_index | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14800 of file page_buffer.c.
References assert, pgbuf_bcb::flags, PGBUF_GET_LRU_INDEX, PGBUF_IS_BCB_IN_LRU, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_register_hit_for_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_lru_advance_victim_hint(), pgbuf_lru_list_from_bcb(), pgbuf_lru_move_from_private_to_shared(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_should_move_private_to_shared(), and pgbuf_unlatch_bcb_upon_unfix().
STATIC_INLINE int pgbuf_bcb_get_pool_index | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 15028 of file page_buffer.c.
References pgbuf_buffer_pool::BCB_table, and STATIC_INLINE.
Referenced by pgbuf_check_bcb_page_vpid(), and pgbuf_unfix_all().
STATIC_INLINE PGBUF_ZONE pgbuf_bcb_get_zone | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14788 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_GET_ZONE, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), pgbuf_invalidate_bcb(), pgbuf_lru_add_bcb_to_middle(), pgbuf_lru_adjust_zone1(), pgbuf_lru_adjust_zone2(), pgbuf_lru_adjust_zones(), pgbuf_lru_boost_bcb(), pgbuf_lru_fall_bcb_to_zone_3(), pgbuf_lru_sanity_check(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_remove_from_lru_list(), pgbuf_unfix_all(), pgbuf_unlatch_bcb_upon_unfix(), and pgbuf_unlatch_void_zone_bcb().
STATIC_INLINE bool pgbuf_bcb_is_async_flush_request | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14962 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_BCB_ASYNC_FLUSH_REQ, and STATIC_INLINE.
Referenced by pgbuf_block_bcb(), pgbuf_check_bcb_page_vpid(), pgbuf_flush_if_requested(), pgbuf_unfix_all(), and pgbuf_unlatch_bcb_upon_unfix().
STATIC_INLINE bool pgbuf_bcb_is_direct_victim | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14938 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_BCB_VICTIM_DIRECT_FLAG, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), pgbuf_fix_debug(), and pgbuf_invalidate_bcb().
STATIC_INLINE bool pgbuf_bcb_is_dirty | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14813 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_BCB_DIRTY_FLAG, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_mark_is_flushing(), pgbuf_bcb_safe_flush_internal(), pgbuf_check_bcb_page_vpid(), pgbuf_fix_debug(), pgbuf_flush_all_helper(), pgbuf_flush_checkpoint(), pgbuf_flush_page_and_neighbors_fb(), pgbuf_flush_seq_list(), pgbuf_flush_victim_candidates(), pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_invalidate_all_debug(), pgbuf_latch_bcb_upon_fix(), pgbuf_latch_idle_page(), pgbuf_unfix_all(), pgbuf_unfix_debug(), and pgbuf_unlatch_bcb_upon_unfix().
STATIC_INLINE bool pgbuf_bcb_is_flushing | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14926 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_BCB_FLUSHING_TO_DISK_FLAG, and STATIC_INLINE.
Referenced by pgbuf_bcb_safe_flush_internal(), pgbuf_block_bcb(), pgbuf_check_bcb_page_vpid(), pgbuf_delete_from_hash_chain(), pgbuf_flush_neighbor_safe(), pgbuf_flush_page_and_neighbors_fb(), pgbuf_flush_victim_candidates(), and pgbuf_unfix_all().
STATIC_INLINE bool pgbuf_bcb_is_hot | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 15154 of file page_buffer.c.
References assert, pgbuf_bcb::count_fix_and_avoid_dealloc, PGBUF_BCB_COUNT_FIX_SHIFT_BITS, PGBUF_FIX_COUNT_THRESHOLD, and STATIC_INLINE.
Referenced by pgbuf_should_move_private_to_shared().
STATIC_INLINE bool pgbuf_bcb_is_invalid_direct_victim | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14950 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_BCB_INVALIDATE_DIRECT_VICTIM_FLAG, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim().
STATIC_INLINE bool pgbuf_bcb_is_to_vacuum | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 15002 of file page_buffer.c.
References pgbuf_bcb::flags, PGBUF_BCB_TO_VACUUM_FLAG, and STATIC_INLINE.
Referenced by pgbuf_lru_fall_bcb_to_zone_3(), and pgbuf_victimize_bcb().
STATIC_INLINE bool pgbuf_bcb_mark_is_flushing | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb | ||
) |
Definition at line 14876 of file page_buffer.c.
References PGBUF_BCB_ASYNC_FLUSH_REQ, PGBUF_BCB_DIRTY_FLAG, PGBUF_BCB_FLUSHING_TO_DISK_FLAG, pgbuf_bcb_is_dirty(), pgbuf_bcb_update_flags(), and STATIC_INLINE.
Referenced by pgbuf_bcb_flush_with_wal().
STATIC_INLINE void pgbuf_bcb_mark_was_flushed | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb | ||
) |
Definition at line 14899 of file page_buffer.c.
References PGBUF_BCB_FLUSHING_TO_DISK_FLAG, pgbuf_bcb_update_flags(), and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), and pgbuf_bcb_flush_with_wal().
STATIC_INLINE void pgbuf_bcb_mark_was_not_flushed | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
bool | mark_dirty | ||
) |
Definition at line 14913 of file page_buffer.c.
References PGBUF_BCB_DIRTY_FLAG, PGBUF_BCB_FLUSHING_TO_DISK_FLAG, pgbuf_bcb_update_flags(), and STATIC_INLINE.
Referenced by pgbuf_bcb_flush_with_wal().
STATIC_INLINE void pgbuf_bcb_register_avoid_deallocation | ( | PGBUF_BCB * | bcb | ) |
Definition at line 15040 of file page_buffer.c.
References assert, pgbuf_bcb::count_fix_and_avoid_dealloc, and STATIC_INLINE.
Referenced by pgbuf_fix_debug(), and pgbuf_ordered_fix_debug().
STATIC_INLINE void pgbuf_bcb_register_fix | ( | PGBUF_BCB * | bcb | ) |
Definition at line 15133 of file page_buffer.c.
References assert, pgbuf_bcb::count_fix_and_avoid_dealloc, PGBUF_BCB_COUNT_FIX_SHIFT_BITS, PGBUF_FIX_COUNT_THRESHOLD, and STATIC_INLINE.
Referenced by pgbuf_fix_debug().
STATIC_INLINE void pgbuf_bcb_register_hit_for_lru | ( | PGBUF_BCB * | bcb | ) |
Definition at line 15392 of file page_buffer.c.
References pgbuf_page_quota::adjust_age, assert, pgbuf_bcb::hit_age, pgbuf_page_monitor::lru_hits, pgbuf_buffer_pool::monitor, pgbuf_bcb_get_lru_index(), PGBUF_IS_BCB_IN_LRU, and pgbuf_buffer_pool::quota.
Referenced by pgbuf_lru_move_from_private_to_shared(), pgbuf_unlatch_bcb_upon_unfix(), and pgbuf_unlatch_void_zone_bcb().
|
static |
Definition at line 7985 of file page_buffer.c.
References NO_ERROR, PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_internal(), and PGBUF_BCB_UNLOCK.
Referenced by pgbuf_flush_seq_list(), pgbuf_invalidate_all_debug(), and pgbuf_invalidate_debug().
|
static |
Definition at line 7962 of file page_buffer.c.
References NO_ERROR, pgbuf_bcb_safe_flush_internal(), and PGBUF_BCB_UNLOCK.
Referenced by pgbuf_flush_all_helper(), pgbuf_flush_if_requested(), pgbuf_flush_with_wal(), pgbuf_unfix_debug(), and pgbuf_unlatch_bcb_upon_unfix().
|
static |
Definition at line 8018 of file page_buffer.c.
References assert, ASSERT_ERROR, pgbuf_bcb::latch_mode, NO_ERROR, NULL, PGBUF_BCB_ASYNC_FLUSH_REQ, PGBUF_BCB_CHECK_OWN, pgbuf_bcb_flush_with_wal(), pgbuf_bcb_is_dirty(), pgbuf_bcb_is_flushing(), pgbuf_bcb_update_flags(), pgbuf_block_bcb(), pgbuf_find_thrd_holder(), PGBUF_LATCH_FLUSH, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, and PGBUF_NO_LATCH.
Referenced by pgbuf_bcb_safe_flush_force_lock(), pgbuf_bcb_safe_flush_force_unlock(), and pgbuf_flush_seq_list().
STATIC_INLINE void pgbuf_bcb_set_dirty | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb | ||
) |
Definition at line 14825 of file page_buffer.c.
References assert, pgbuf_page_monitor::dirties_cnt, pgbuf_bcb::flags, pgbuf_buffer_pool::monitor, pgbuf_buffer_pool::num_buffers, PGBUF_BCB_DIRTY_FLAG, PGBUF_BCB_INVALID_VICTIM_CANDIDATE_MASK, PGBUF_GET_ZONE, PGBUF_LRU_3_ZONE, pgbuf_lru_list_from_bcb(), pgbuf_lru_remove_victim_candidate(), and STATIC_INLINE.
Referenced by pgbuf_set_dirty_buffer_ptr().
STATIC_INLINE bool pgbuf_bcb_should_avoid_deallocation | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 15097 of file page_buffer.c.
References assert, pgbuf_bcb::count_fix_and_avoid_dealloc, PGBUF_BCB_AVOID_DEALLOC_MASK, and STATIC_INLINE.
Referenced by pgbuf_bcb_check_and_reset_fix_and_avoid_dealloc(), pgbuf_has_prevent_dealloc(), pgbuf_ordered_fix_debug(), and pgbuf_peek_stats().
STATIC_INLINE bool pgbuf_bcb_should_be_moved_to_bottom_lru | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 14974 of file page_buffer.c.
References pgbuf_bcb::flags, and PGBUF_BCB_MOVE_TO_LRU_BOTTOM_FLAG.
Referenced by pgbuf_unlatch_bcb_upon_unfix().
STATIC_INLINE void pgbuf_bcb_unregister_avoid_deallocation | ( | PGBUF_BCB * | bcb | ) |
Definition at line 15053 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_bcb::count_fix_and_avoid_dealloc, er_log_debug, PGBUF_BCB_AVOID_DEALLOC_MASK, STATIC_INLINE, pgbuf_bcb::vpid, and VPID_AS_ARGS.
Referenced by pgbuf_fix_debug(), and pgbuf_ordered_fix_debug().
STATIC_INLINE void pgbuf_bcb_update_flags | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
int | set_flags, | ||
int | clear_flags | ||
) |
Definition at line 14584 of file page_buffer.c.
References assert, pgbuf_page_monitor::dirties_cnt, pgbuf_bcb::flags, pgbuf_buffer_pool::monitor, NULL, pgbuf_buffer_pool::num_buffers, PGBUF_BCB_DIRTY_FLAG, PGBUF_BCB_FLAGS_MASK, PGBUF_BCB_INVALID_VICTIM_CANDIDATE_MASK, PGBUF_GET_ZONE, PGBUF_LRU_3_ZONE, pgbuf_lru_add_victim_candidate(), pgbuf_lru_list_from_bcb(), pgbuf_lru_remove_victim_candidate(), and STATIC_INLINE.
Referenced by pgbuf_allocate_bcb(), pgbuf_assign_direct_victim(), pgbuf_bcb_clear_dirty(), pgbuf_bcb_mark_is_flushing(), pgbuf_bcb_mark_was_flushed(), pgbuf_bcb_mark_was_not_flushed(), pgbuf_bcb_safe_flush_internal(), pgbuf_claim_bcb_for_fix(), pgbuf_dealloc_page(), pgbuf_fix_debug(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_notify_vacuum_follows(), and pgbuf_victimize_bcb().
|
static |
Definition at line 6410 of file page_buffer.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_COND_TIMEDWAIT, ER_ERROR_SEVERITY, ER_FAILED, ER_INTERRUPTED, ER_LK_PAGE_TIMEOUT, ER_LK_UNILATERALLY_ABORTED, er_log_debug, ER_PAGE_LATCH_TIMEDOUT, er_set(), er_set_with_oserror(), pgbuf_bcb::fcnt, if(), pgbuf_bcb::latch_mode, LK_FORCE_ZERO_WAIT, LK_INFINITE_WAIT, LK_ZERO_WAIT, LOG_FIND_THREAD_TRAN_INDEX, logtb_find_client_name_host_pid(), logtb_is_current_active(), NO_ERROR, NULL, vpid::pageid, pgbuf_bcb_is_async_flush_request(), pgbuf_bcb_is_flushing(), PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, pgbuf_find_current_wait_msecs(), PGBUF_LATCH_FLUSH, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_NO_LATCH, PGBUF_TIMEOUT, STATIC_INLINE, thread_get_thread_entry_info(), thread_lock_entry(), THREAD_PGBUF_RESUMED, THREAD_PGBUF_SUSPENDED, thread_suspend_wakeup_and_unlock_entry(), thread_unlock_entry(), TSC_ADD_TIMEVAL, tsc_elapsed_time_usec(), tsc_getticks(), vpid::volid, and pgbuf_bcb::vpid.
Referenced by pgbuf_bcb_safe_flush_internal(), pgbuf_latch_bcb_upon_fix(), and pgbuf_promote_read_latch_debug().
STATIC_INLINE bool pgbuf_check_bcb_page_vpid | ( | PGBUF_BCB * | bufptr, |
bool | maybe_deallocated | ||
) |
Definition at line 10415 of file page_buffer.c.
References ARG_FILE_LINE, assert, DB_PAGESIZE, er_log_debug, pgbuf_bcb::fcnt, fileio_get_volume_descriptor(), fileio_init_lsa_of_page(), fileio_page_check_corruption(), fileio_read(), free_and_init, i, IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_bcb::latch_mode, log_is_in_crash_recovery_and_not_yet_completes_redo(), fileio_page_reserved::lsa, LSA_AS_ARGS, LSA_EQ(), MEM_REGION_INIT, MEM_REGION_SCRAMBLE_MARK, NO_ERROR, NULL, NULL_VOLID, pgbuf_buffer_pool::num_buffers, fileio_page_reserved::p_reserve_1, fileio_page_reserved::p_reserve_2, fileio_page::page, fileio_page_reserved::pageid, vpid::pageid, fileio_page_reserved::pflag, pgbuf_bcb_get_pool_index(), pgbuf_bcb_is_async_flush_request(), pgbuf_bcb_is_dirty(), pgbuf_bcb_is_flushing(), PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, pgbuf_consistent_str(), PGBUF_CONTENT_BAD, PGBUF_CONTENT_GOOD, PGBUF_CONTENT_LIKELY_BAD, PGBUF_DEBUG_PAGE_VALIDATION_ALL, PGBUF_FIND_BCB_PTR, PGBUF_FIND_BUFFER_GUARD, pgbuf_get_check_page_validation_level(), PGBUF_LATCH_INVALID, pgbuf_latch_mode_str(), fileio_page::prv, pthread_mutex_lock, pthread_mutex_unlock, fileio_page_reserved::ptype, rv, fileio_page_reserved::tde_nonce, thread_get_thread_entry_info(), fileio_page_reserved::volid, vpid::volid, pgbuf_bcb::vpid, VPID_AS_ARGS, and VPID_ISNULL.
Referenced by pgbuf_bcb_flush_with_wal(), pgbuf_check_page_ptype_internal(), pgbuf_fix_debug(), pgbuf_get_page_id(), pgbuf_get_page_ptype(), pgbuf_set_page_ptype(), and pgbuf_unlatch_bcb_upon_unfix().
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().
STATIC_INLINE bool pgbuf_check_page_ptype_internal | ( | PAGE_PTR | pgptr, |
PAGE_TYPE | ptype, | ||
bool | no_error | ||
) |
Definition at line 10356 of file page_buffer.c.
References assert, assert_release, CAST_PGPTR_TO_BFPTR, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, log_is_in_crash_recovery(), NULL, PAGE_UNKNOWN, pgbuf_check_bcb_page_vpid(), PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), fileio_page::prv, fileio_page_reserved::ptype, STATIC_INLINE, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by pgbuf_check_page_ptype(), and pgbuf_check_page_type_no_error().
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.
|
static |
Definition at line 7617 of file page_buffer.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, CAST_IOPGPTR_TO_PGPTR, dwb_read_page(), pgbuf_fix_perf::end_tick, ER_CSS_PTHREAD_MUTEX_TRYLOCK, er_errid(), fileio_get_volume_descriptor(), fileio_init_lsa_of_page(), fileio_read(), IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_fix_perf::is_perf_tracking, pgbuf_bcb::latch_mode, pgbuf_fix_perf::lock_wait_time, LOG_FIND_THREAD_TRAN_INDEX, log_is_in_crash_recovery(), fileio_page_reserved::lsa, LSA_ISNULL(), LSA_SET_NULL(), NEW_PAGE, NO_ERROR, NULL, NULL_VOLID, pgbuf_status::num_hit, pgbuf_status::num_pages_created, pgbuf_status::num_pages_read, OLD_PAGE_IF_IN_BUFFER, pgbuf_bcb::oldest_unflush_lsa, fileio_page_reserved::pageid, vpid::pageid, pgbuf_fix_perf::perf_page_found, PERF_PAGE_MODE_NEW_LOCK_WAIT, PERF_PAGE_MODE_NEW_NO_WAIT, PERF_PAGE_MODE_OLD_LOCK_WAIT, PERF_PAGE_MODE_OLD_NO_WAIT, perfmon_inc_stat(), pgbuf_allocate_bcb(), PGBUF_BCB_ASYNC_FLUSH_REQ, pgbuf_bcb_avoid_victim(), pgbuf_bcb_check_and_reset_fix_and_avoid_dealloc(), PGBUF_BCB_CHECK_MUTEX_LEAKS, pgbuf_bcb_update_flags(), pgbuf_get_tde_algorithm(), pgbuf_init_temp_page_lsa(), pgbuf_is_temp_lsa(), pgbuf_is_temporary_volume(), PGBUF_LOCK_HOLDER, pgbuf_lock_page(), PGBUF_NO_LATCH, pgbuf_put_bcb_into_invalid_list(), pgbuf_set_dirty_buffer_ptr(), pgbuf_unlock_page(), fileio_page::prv, PSTAT_PB_NUM_IOREADS, PSTAT_SORT_NUM_DATA_PAGES, PSTAT_SORT_NUM_IO_PAGES, pthread_mutex_unlock, qmgr_get_current_query_id(), pgbuf_buffer_pool::show_status, pgbuf_fix_perf::start_tick, success(), TDE_ALGORITHM_NONE, tde_decrypt_data_page(), thread_get_sort_stats_active(), tsc_elapsed_time_usec(), tsc_getticks(), pgbuf_fix_perf::tv_diff, fileio_page_reserved::volid, vpid::volid, and pgbuf_bcb::vpid.
Referenced by pgbuf_fix_debug().
Definition at line 11355 of file page_buffer.c.
References diff, pgbuf_holder_info::group_id, vpid::pageid, pgbuf_holder_info::rank, vpid::volid, pgbuf_holder_info::vpid, and VPID_ISNULL.
Referenced by pgbuf_get_condition_for_ordered_fix(), and pgbuf_ordered_fix_debug().
Definition at line 3128 of file page_buffer.c.
References diff, vpid::pageid, vpid::volid, and pgbuf_victim_candidate_list::vpid.
Referenced by pgbuf_flush_checkpoint(), and pgbuf_flush_victim_candidates().
Definition at line 1287 of file page_buffer.c.
References vpid::pageid, and vpid::volid.
Referenced by pgbuf_initialize_aout_list().
|
static |
Definition at line 12919 of file page_buffer.c.
References assert, pgbuf_buffer_pool::buf_invalid_list, pgbuf_lru_list::count_lru3, diff, i, pgbuf_invalid_list::invalid_cnt, pgbuf_page_monitor::lru_shared_pgs_cnt, pgbuf_page_quota::lru_victim_flush_priority_per_lru, pgbuf_buffer_pool::monitor, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_buffer_pool::num_LRU_list, PGBUF_GET_LRU_LIST, PGBUF_IS_PRIVATE_LRU_INDEX, PGBUF_IS_SHARED_LRU_INDEX, PGBUF_LRU_INDEX_FROM_PRIVATE, PGBUF_LRU_LIST_COUNT, PGBUF_LRU_ZONE_MIN_RATIO, PGBUF_MIN_SHARED_LIST_ADJUST_SIZE, PGBUF_SHARED_LRU_COUNT, PGBUF_TOTAL_LRU_COUNT, pgbuf_page_quota::private_pages_ratio, pgbuf_lru_list::quota, pgbuf_buffer_pool::quota, pgbuf_buffer_pool::ratio_lru1, and pgbuf_buffer_pool::ratio_lru2.
Referenced by pgbuf_flush_victim_candidates().
|
static |
Definition at line 13810 of file page_buffer.c.
References PGBUF_CONTENT_BAD, and PGBUF_CONTENT_GOOD.
Referenced by pgbuf_check_bcb_page_vpid(), and pgbuf_unfix_all().
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 | ||
) |
Definition at line 4192 of file page_buffer.c.
References assert, pgbuf_buffer_pool::buf_hash_table, DB_PAGESIZE, DISK_VALID, ER_CSS_PTHREAD_MUTEX_TRYLOCK, er_errid(), fileio_get_volume_descriptor(), FREE, log_skip_logging(), NEW_PAGE, NULL, log_data_addr::offset, PAGE_AREA, vpid::pageid, perfmon_inc_stat(), PGBUF_BCB_UNLOCK, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_fix, pgbuf_get_check_page_validation_level(), PGBUF_HASH_VALUE, pgbuf_is_valid_page(), PGBUF_LATCH_WRITE, pgbuf_search_hash_chain(), pgbuf_set_dirty(), pgbuf_set_page_ptype(), pgbuf_set_tde_algorithm(), PGBUF_UNCONDITIONAL_LATCH, log_data_addr::pgptr, PSTAT_PB_NUM_IOWRITES, pthread_mutex_unlock, log_data_addr::vfid, and vpid::volid.
Referenced by sort_write_area().
void* pgbuf_copy_to_area | ( | THREAD_ENTRY * | thread_p, |
const VPID * | vpid, | ||
int | start_offset, | ||
int | length, | ||
void * | area, | ||
bool | do_fetch | ||
) |
Definition at line 4067 of file page_buffer.c.
References ARG_FILE_LINE, pgbuf_buffer_pool::buf_hash_table, CAST_BFPTR_TO_PGPTR, pgbuf_buffer_pool::check_for_interrupts, DB_PAGESIZE, DISK_VALID, ER_CSS_PTHREAD_MUTEX_TRYLOCK, er_errid(), ER_ERROR_SEVERITY, ER_FATAL_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_INTERRUPTED, er_log_debug, er_set(), fileio_get_volume_descriptor(), logtb_is_interrupted(), NULL, OLD_PAGE, PAGE_AREA, vpid::pageid, perfmon_inc_stat(), PGBUF_BCB_UNLOCK, pgbuf_check_page_ptype(), PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_fix, pgbuf_get_check_page_validation_level(), PGBUF_HASH_VALUE, pgbuf_is_valid_page(), PGBUF_LATCH_READ, pgbuf_search_hash_chain(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, PSTAT_PB_NUM_IOREADS, PSTAT_SORT_NUM_DATA_PAGES, pthread_mutex_unlock, thread_get_sort_stats_active(), and vpid::volid.
Referenced by sort_read_area().
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().
void pgbuf_dealloc_page | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_dealloc | ||
) |
Definition at line 13976 of file page_buffer.c.
References ARG_FILE_LINE, assert, CAST_PGPTR_TO_BFPTR, er_log_debug, pgbuf_bcb::fcnt, FILEIO_PAGE_FLAG_ENCRYPTED_MASK, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, log_append_undoredo_data2(), NULL, PAGE_UNKNOWN, fileio_page_reserved::pageid, pgbuf_dealloc_undo_data::pageid, fileio_page_reserved::pflag, pgbuf_dealloc_undo_data::pflag, PGBUF_BCB_DIRTY_FLAG, PGBUF_BCB_LOCK, PGBUF_BCB_MOVE_TO_LRU_BOTTOM_FLAG, pgbuf_bcb_update_flags(), pgbuf_get_tde_algorithm(), pgbuf_unlatch_bcb_upon_unfix(), pgbuf_unlatch_thrd_holder(), fileio_page::prv, fileio_page_reserved::ptype, pgbuf_dealloc_undo_data::ptype, RVPGBUF_DEALLOC, tde_get_algorithm_name(), fileio_page_reserved::volid, pgbuf_dealloc_undo_data::volid, pgbuf_bcb::vpid, and VPID_AS_ARGS.
Referenced by file_destroy(), file_perm_dealloc(), file_sector_map_dealloc(), and file_table_move_partial_sectors_to_header().
STATIC_INLINE int pgbuf_delete_from_hash_chain | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr | ||
) |
Definition at line 7099 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_buffer_pool::buf_hash_table, ER_FAILED, pgbuf_bcb::hash_next, pgbuf_buffer_hash::hash_next, pgbuf_bcb::latch_mode, NO_ERROR, NULL, PERFMON_ACTIVATION_FLAG_PB_HASH_ANCHOR, perfmon_add_stat(), perfmon_get_activation_flag(), perfmon_inc_stat(), perfmon_is_perf_tracking(), perfmon_is_perf_tracking_and_active(), pgbuf_bcb_check_and_reset_fix_and_avoid_dealloc(), pgbuf_bcb_is_flushing(), PGBUF_BCB_UNLOCK, PGBUF_HASH_VALUE, PGBUF_NO_LATCH, pgbuf_put_bcb_into_invalid_list(), PSTAT_PB_NUM_HASH_ANCHOR_WAITS, PSTAT_PB_TIME_HASH_ANCHOR_WAIT, pthread_mutex_lock, pthread_mutex_unlock, rv, tsc_elapsed_utime(), tsc_getticks(), pgbuf_bcb::vpid, and VPID_SET_NULL.
Referenced by pgbuf_invalidate_bcb(), and pgbuf_victimize_bcb().
void pgbuf_finalize | ( | void | ) |
Definition at line 1528 of file page_buffer.c.
References pgbuf_aout_list::Aout_bottom, pgbuf_aout_list::aout_buf_ht, pgbuf_aout_list::Aout_free, pgbuf_aout_list::Aout_top, pgbuf_buffer_pool::BCB_table, pgbuf_buffer_pool::big_private_lrus_with_victims, pgbuf_buffer_pool::buf_AOUT_list, pgbuf_buffer_pool::buf_hash_table, pgbuf_buffer_pool::buf_invalid_list, pgbuf_buffer_pool::buf_lock_table, pgbuf_buffer_pool::buf_LRU_list, pgbuf_aout_list::bufarray, pgbuf_seq_flusher::flush_list, free_and_init, pgbuf_buffer_pool::free_holder_set, i, pgbuf_buffer_pool::iopage_table, pgbuf_page_monitor::lru_activity, pgbuf_page_monitor::lru_hits, pgbuf_page_quota::lru_victim_flush_priority_per_lru, pgbuf_aout_list::max_count, mht_destroy(), pgbuf_buffer_pool::monitor, pgbuf_holder_set::next_set, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_aout_list::num_hashes, PGBUF_FIND_BCB_PTR, PGBUF_HASH_SIZE, PGBUF_TOTAL_LRU_COUNT, pgbuf_page_quota::private_lru_session_cnt, pgbuf_buffer_pool::private_lrus_with_victims, pthread_mutex_destroy, pgbuf_buffer_pool::quota, pgbuf_buffer_pool::seq_chkpt_flusher, pgbuf_buffer_pool::shared_lrus_with_victims, pgbuf_buffer_pool::show_status, pgbuf_buffer_pool::thrd_holder_info, pgbuf_buffer_pool::thrd_reserved_holder, and pgbuf_buffer_pool::victim_cand_list.
Referenced by logtb_undefine_trantable(), and pgbuf_initialize().
STATIC_INLINE int pgbuf_find_current_wait_msecs | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 15744 of file page_buffer.c.
References LOG_FIND_TDES(), LOG_FIND_THREAD_TRAN_INDEX, NULL, and log_tdes::wait_msecs.
Referenced by pgbuf_block_bcb(), pgbuf_fix_debug(), and pgbuf_ordered_fix_debug().
STATIC_INLINE PGBUF_HOLDER * pgbuf_find_thrd_holder | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr | ||
) |
Definition at line 5450 of file page_buffer.c.
References assert, pgbuf_holder::bufptr, pgbuf_holder::next_holder, NULL, STATIC_INLINE, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, and thread_get_entry_index().
Referenced by pgbuf_bcb_safe_flush_internal(), pgbuf_fix_debug(), pgbuf_flush_if_requested(), pgbuf_flush_with_wal(), pgbuf_latch_bcb_upon_fix(), pgbuf_latch_idle_page(), pgbuf_promote_read_latch_debug(), pgbuf_set_dirty_buffer_ptr(), and pgbuf_unlatch_thrd_holder().
PAGE_PTR pgbuf_fix_debug | ( | THREAD_ENTRY * | thread_p, |
const VPID * | vpid, | ||
PAGE_FETCH_MODE | fetch_mode, | ||
PGBUF_LATCH_MODE | request_mode, | ||
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().
int pgbuf_fix_if_not_deallocated_with_caller | ( | THREAD_ENTRY * | thread_p, |
const VPID * | vpid, | ||
PGBUF_LATCH_MODE | latch_mode, | ||
PGBUF_LATCH_CONDITION | latch_condition, | ||
PAGE_PTR * | page, | ||
const char * | caller_file, | ||
int | caller_line | ||
) |
Definition at line 14152 of file page_buffer.c.
References assert, ASSERT_ERROR_AND_SET, DISK_ERROR, DISK_INVALID, disk_is_page_sector_reserved(), DISK_VALID, er_clear(), ER_PB_BAD_PAGEID, log_is_in_crash_recovery_and_not_yet_completes_redo(), NO_ERROR, NULL, OLD_PAGE_MAYBE_DEALLOCATED, vpid::pageid, pgbuf_fix_debug(), pgbuf_is_hit_ratio_low(), STATIC_INLINE, vpid::volid, and VPID_ISNULL.
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 | ||
) |
Definition at line 1723 of file page_buffer.c.
References ARG_FILE_LINE, er_errid(), ER_ERROR_SEVERITY, ER_INTERRUPTED, ER_LK_PAGE_TIMEOUT, ER_LK_UNILATERALLY_ABORTED, ER_PAGE_LATCH_ABORTED, ER_PAGE_LATCH_TIMEDOUT, er_set(), NO_ERROR, NULL, vpid::pageid, pgbuf_fix, pgbuf_fix_debug(), PGBUF_UNCONDITIONAL_LATCH, and vpid::volid.
|
static |
Definition at line 15634 of file page_buffer.c.
References PGBUF_ABORT_RELEASE, PGBUF_BCB_FLAGS_MASK, PGBUF_INVALID_ZONE, PGBUF_LRU_INDEX_MASK, PGBUF_LRU_ZONE_MASK, PGBUF_VOID_ZONE, and PGBUF_ZONE_MASK.
Referenced by pgbuf_initialize().
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().
int pgbuf_flush_all | ( | THREAD_ENTRY * | thread_p, |
VOLID | volid | ||
) |
Definition at line 3083 of file page_buffer.c.
References pgbuf_flush_all_helper().
Referenced by boot_create_all_volumes(), disk_format(), disk_unformat(), log_final(), log_recovery(), log_recovery_redo(), log_recovery_undo(), log_recreate(), log_rv_outside_noop_redo(), and logpb_rename_all_volumes_files().
|
static |
Definition at line 3030 of file page_buffer.c.
References assert, ER_FAILED, pgbuf_bcb::fcnt, fileio_init_lsa_of_page(), i, IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, NO_ERROR, NULL_VOLID, pgbuf_buffer_pool::num_buffers, pgbuf_bcb_is_dirty(), PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_force_unlock(), PGBUF_BCB_UNLOCK, PGBUF_FIND_BCB_PTR, vpid::volid, and pgbuf_bcb::vpid.
Referenced by pgbuf_flush_all(), pgbuf_flush_all_unfixed(), and pgbuf_flush_all_unfixed_and_set_lsa_as_null().
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().
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().
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 | ||
) |
Definition at line 3552 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_victim_candidate_list::bufptr, detailed_er_log, ER_ERROR_SEVERITY, ER_FAILED, ER_LOG_CHECKPOINT_SKIP_INVALID_PAGE, er_set(), er_stack_pop(), er_stack_push(), error(), fileio_get_volume_label(), pgbuf_seq_flusher::flush_cnt, pgbuf_seq_flusher::flush_idx, pgbuf_seq_flusher::flush_list, pgbuf_seq_flusher::flush_max_size, pgbuf_seq_flusher::flush_upto_lsa, pgbuf_seq_flusher::flushed_pages, logpb_flush_log_for_wal(), LSA_COPY(), LSA_GT(), LSA_ISNULL(), LSA_LT(), LSA_SET_NULL(), NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, log_lsa::offset, pgbuf_bcb::oldest_unflush_lsa, log_lsa::pageid, vpid::pageid, PEEK, pgbuf_bcb_is_dirty(), PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, pgbuf_compare_victim_list(), PGBUF_FIND_BCB_PTR, pgbuf_flush_chkpt_seq_list(), prm_get_bool_value(), PRM_ID_LOG_CHKPT_DETAILED, pgbuf_buffer_pool::seq_chkpt_flusher, vpid::volid, pgbuf_bcb::vpid, and VPID_COPY.
Referenced by logpb_checkpoint(), logpb_fatal_error_internal(), and logpb_remove_archive_logs().
|
static |
Definition at line 3693 of file page_buffer.c.
References pgbuf_seq_flusher::control_flushed, pgbuf_seq_flusher::control_intervals_cnt, ER_FAILED, error(), pgbuf_seq_flusher::flush_cnt, pgbuf_seq_flusher::flush_idx, pgbuf_seq_flusher::flush_rate, pgbuf_seq_flusher::flushed_pages, pgbuf_seq_flusher::interval_msec, NO_ERROR, NULL, PGBUF_CHKPT_BURST_PAGES, pgbuf_flush_seq_list(), prm_get_integer_value(), PRM_ID_LOG_CHECKPOINT_SLEEP_MSECS, thread_sleep(), timeval_add_msec(), and WAIT_FLUSH_VICTIMS_MAX_MSEC.
Referenced by pgbuf_flush_checkpoint().
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().
void pgbuf_flush_if_requested | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page | ||
) |
Definition at line 2996 of file page_buffer.c.
References assert, CAST_PGPTR_TO_BFPTR, pgbuf_bcb::latch_mode, NO_ERROR, NULL, PGBUF_BCB_CHECK_MUTEX_LEAKS, pgbuf_bcb_is_async_flush_request(), PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_force_unlock(), PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_find_thrd_holder(), pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), PGBUF_LATCH_WRITE, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by vacuum_data_unload_first_and_last_page().
STATIC_INLINE int pgbuf_flush_neighbor_safe | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr, | ||
VPID * | expected_vpid, | ||
bool * | flushed | ||
) |
Definition at line 11307 of file page_buffer.c.
References assert, ASSERT_ERROR, error(), pgbuf_bcb::latch_mode, NO_ERROR, NULL, pgbuf_bcb_flush_with_wal(), pgbuf_bcb_is_flushing(), PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, PGBUF_LATCH_READ, pgbuf_bcb::vpid, VPID_EQ, and VPID_ISNULL.
Referenced by pgbuf_flush_page_and_neighbors_fb().
|
static |
Definition at line 10977 of file page_buffer.c.
References _er_log_debug(), ARG_FILE_LINE, ASSERT_ERROR, pgbuf_batch_flush_helper::back_offset, pgbuf_buffer_pool::buf_hash_table, error(), pgbuf_batch_flush_helper::fwd_offset, i, pgbuf_bcb::latch_mode, logpb_flush_log_for_wal(), LSA_COPY(), LSA_LT(), NEIGHBOR_ABORT_LATCH_DIRTY_BACK, NEIGHBOR_ABORT_LATCH_NONDIRTY_BACK, NEIGHBOR_ABORT_NONDIRTY_NOT_ALLOWED, NEIGHBOR_ABORT_NOTFOUND_DIRTY_BACK, NEIGHBOR_ABORT_NOTFOUND_NONDIRTY_BACK, NEIGHBOR_ABORT_RANGE, NEIGHBOR_ABORT_TOO_MANY_NONDIRTIES, NEIGHBOR_ABORT_TWO_CONSECTIVE_NONDIRTIES, NO_ERROR, pgbuf_batch_flush_helper::npages, NULL, pgbuf_bcb::oldest_unflush_lsa, vpid::pageid, PAGEID_MAX, pgbuf_batch_flush_helper::pages_bufptr, pgbuf_add_bufptr_to_batch(), pgbuf_bcb_is_dirty(), pgbuf_bcb_is_flushing(), PGBUF_BCB_UNLOCK, pgbuf_Flush_helper, pgbuf_flush_neighbor_safe(), PGBUF_HASH_VALUE, PGBUF_LATCH_READ, PGBUF_NEIGHBOR_FLUSH_NONDIRTY, PGBUF_NEIGHBOR_PAGES, PGBUF_NEIGHBOR_POS, PGBUF_PAGES_COUNT_THRESHOLD, pgbuf_search_hash_chain(), prm_get_bool_value(), PRM_ID_LOG_PGBUF_VICTIM_FLUSH, pthread_mutex_unlock, qmgr_get_current_query_id(), STATIC_INLINE, pgbuf_bcb::vpid, VPID_COPY, and pgbuf_batch_flush_helper::vpids.
Referenced by pgbuf_flush_victim_candidates().
|
static |
Definition at line 3801 of file page_buffer.c.
References assert, assert_release, pgbuf_victim_candidate_list::bufptr, pgbuf_seq_flusher::burst_mode, pgbuf_seq_flusher::control_flushed, pgbuf_seq_flusher::control_intervals_cnt, detailed_er_log, ER_FAILED, error(), pgbuf_seq_flusher::flush_cnt, pgbuf_seq_flusher::flush_idx, pgbuf_seq_flusher::flush_list, pgbuf_seq_flusher::flush_rate, pgbuf_seq_flusher::flush_upto_lsa, pgbuf_seq_flusher::flushed_pages, pgbuf_seq_flusher::interval_msec, LSA_AS_ARGS, LSA_COPY(), LSA_GT(), LSA_ISNULL(), LSA_LE(), LSA_LT(), NO_ERROR, NULL, pgbuf_bcb::oldest_unflush_lsa, log_lsa::pageid, vpid::pageid, pgbuf_bcb_is_dirty(), PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_force_lock(), pgbuf_bcb_safe_flush_internal(), PGBUF_BCB_UNLOCK, PGBUF_CHKPT_MAX_FLUSH_RATE, PGBUF_CHKPT_MIN_FLUSH_RATE, prm_get_bool_value(), PRM_ID_LOG_CHKPT_DETAILED, thread_sleep(), timeval_diff_in_msec(), pgbuf_bcb::vpid, pgbuf_victim_candidate_list::vpid, VPID_AS_ARGS, and VPID_EQ.
Referenced by pgbuf_flush_chkpt_seq_list().
int pgbuf_flush_victim_candidates | ( | THREAD_ENTRY * | thread_p, |
float | flush_ratio, | ||
PERF_UTIME_TRACKER * | perf_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().
PAGE_PTR pgbuf_flush_with_wal | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 2956 of file page_buffer.c.
References assert, ASSERT_ERROR, CAST_PGPTR_TO_BFPTR, pgbuf_bcb::latch_mode, NO_ERROR, NULL, PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_force_unlock(), PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_find_thrd_holder(), pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), PGBUF_LATCH_READ, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by heap_flush(), overflow_flush_internal(), and pgbuf_flush().
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().
|
static |
Definition at line 8087 of file page_buffer.c.
References pgbuf_buffer_pool::buf_invalid_list, pgbuf_invalid_list::invalid_cnt, pgbuf_invalid_list::invalid_top, pgbuf_bcb::next_BCB, NULL, perfmon_inc_stat(), pgbuf_bcb_change_zone(), PGBUF_BCB_LOCK, PGBUF_VOID_ZONE, PSTAT_PB_VICTIM_USE_INVALID_BCB, pthread_mutex_lock, pthread_mutex_unlock, and rv.
Referenced by pgbuf_allocate_bcb().
STATIC_INLINE bool pgbuf_get_check_page_validation_level | ( | int | page_validation_level | ) |
Definition at line 10209 of file page_buffer.c.
References prm_get_integer_value(), and PRM_ID_PB_DEBUG_PAGE_VALIDATION_LEVEL.
Referenced by pgbuf_check_bcb_page_vpid(), pgbuf_check_page_ptype_internal(), pgbuf_copy_from_area(), pgbuf_copy_to_area(), pgbuf_fix_debug(), pgbuf_flush_if_requested(), pgbuf_flush_with_wal(), pgbuf_get_latch_mode(), pgbuf_get_lsa(), pgbuf_get_page_ptype(), pgbuf_get_volume_id(), pgbuf_get_vpid(), pgbuf_get_vpid_ptr(), pgbuf_invalidate_debug(), pgbuf_promote_read_latch_debug(), pgbuf_set_dirty(), pgbuf_set_lsa(), pgbuf_set_page_ptype(), and pgbuf_unfix_debug().
int pgbuf_get_condition_for_ordered_fix | ( | const VPID * | vpid_new_page, |
const VPID * | vpid_fixed_page, | ||
const HFID * | hfid | ||
) |
Definition at line 12627 of file page_buffer.c.
References pgbuf_holder_info::group_id, hfid::hpgid, vpid::pageid, pgbuf_compare_hold_vpid_for_sort(), PGBUF_CONDITIONAL_LATCH, PGBUF_ORDERED_HEAP_HDR, PGBUF_ORDERED_HEAP_NORMAL, PGBUF_UNCONDITIONAL_LATCH, pgbuf_holder_info::rank, hfid::vfid, vpid::volid, vfid::volid, pgbuf_holder_info::vpid, VPID_COPY, and VPID_EQ.
Referenced by vacuum_heap_prepare_record().
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().
|
static |
Definition at line 12216 of file page_buffer.c.
References ARG_FILE_LINE, assert, boot_find_root_heap(), ER_ERROR_SEVERITY, ER_PB_ORDERED_NO_HEAP, er_set(), heap_get_class_info(), heap_get_class_oid_from_page(), HFID_IS_NULL, hfid::hpgid, NO_ERROR, NULL, OID_IS_ROOTOID, vpid::pageid, pgbuf_unfix_and_init, thread_get_entry_index(), hfid::vfid, vpid::volid, vfid::volid, VPID_ISNULL, and VPID_SET_NULL.
Referenced by pgbuf_ordered_fix_debug().
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().
|
static |
Definition at line 12478 of file page_buffer.c.
References assert, pgbuf_holder::bufptr, CAST_PGPTR_TO_BFPTR, NULL, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, and thread_get_entry_index().
Referenced by pgbuf_attach_watcher_debug(), pgbuf_fix_debug(), pgbuf_ordered_unfix_debug(), pgbuf_replace_watcher_debug(), and pgbuf_unfix_debug().
PGBUF_LATCH_MODE pgbuf_get_latch_mode | ( | PAGE_PTR | pgptr | ) |
Definition at line 4633 of file page_buffer.c.
References CAST_PGPTR_TO_BFPTR, pgbuf_bcb::latch_mode, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), and PGBUF_LATCH_INVALID.
Referenced by btree_key_delete_remove_object(), btree_key_find_and_lock_unique_of_non_unique(), btree_key_insert_new_key(), btree_key_insert_new_object(), btree_key_remove_delete_mvccid(), 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_split_node(), btree_split_node_and_advance(), spage_update(), and spage_update_record_type().
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().
void pgbuf_get_page_flush_interval | ( | bool & | is_timed_wait, |
cubthread::delta_time & | period | ||
) |
Definition at line 15765 of file page_buffer.c.
References assert, BO_IS_SERVER_RESTARTED, cubthread::manager::create_daemon(), cubthread::manager::destroy_daemon(), fileio_flush_control_add_tokens(), fileio_flush_control_finalize(), fileio_flush_control_initialize(), cubthread::get_manager(), cubthread::internal_tasks_worker_pool::initialize(), NO_ERROR, NULL, perfmon_diff_timeval(), perfmon_is_perf_tracking(), pgbuf_adjust_quotas(), pgbuf_flush_victim_candidates(), prm_get_float_value(), prm_get_integer_value(), PRM_ID_PAGE_BG_FLUSH_INTERVAL_MSECS, PRM_ID_PB_BUFFER_FLUSH_RATIO, PSTAT_PB_FLUSH_SLEEP, cubthread::daemon::reset_looper(), and cubthread::daemon::was_woken_up().
Definition at line 4657 of file page_buffer.c.
References assert, CAST_PGPTR_TO_BFPTR, vpid::pageid, pgbuf_check_bcb_page_vpid(), and pgbuf_bcb::vpid.
Referenced by heap_chkreloc_next(), heap_find_location_and_insert_rec_newhome(), heap_get_insert_location_with_lock(), heap_get_mvcc_header(), heap_rv_redo_reuse_page(), spage_check(), spage_check_mvcc_updatable(), spage_check_slot_owner(), spage_check_updatable(), spage_delete(), spage_dump(), spage_get_record(), spage_get_record_length(), spage_get_record_offset(), spage_get_space_for_record(), spage_insert_at(), spage_mark_deleted_slot_as_reusable(), spage_merge(), spage_overwrite(), spage_put_helper(), spage_split(), spage_take_out(), spage_take_slot_in_use(), and spage_update_record_type().
PAGE_TYPE pgbuf_get_page_ptype | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 4675 of file page_buffer.c.
References assert, assert_release, CAST_PGPTR_TO_BFPTR, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, PAGE_LAST, PAGE_UNKNOWN, pgbuf_check_bcb_page_vpid(), PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), fileio_page::prv, and fileio_page_reserved::ptype.
Referenced by btree_build_nleafs(), file_alloc(), file_sector_map_dealloc(), file_sector_map_pages(), file_tracker_register_internal(), heap_is_page_header(), pgbuf_ordered_fix_debug(), pgbuf_rv_dealloc_undo(), qmgr_get_external_file_page(), spage_compact(), spage_header_start_scan(), spage_slots_start_scan(), and vacuum_heap_page().
PERF_PAGE_TYPE pgbuf_get_page_type_for_stat | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 13868 of file page_buffer.c.
References btree_get_perf_btree_page_type(), CAST_PGPTR_TO_IOPGPTR, PAGE_BTREE, PERFMON_ACTIVATION_FLAG_DETAILED_BTREE_PAGE, perfmon_get_activation_flag(), fileio_page::prv, and fileio_page_reserved::ptype.
Referenced by pgbuf_fix_debug(), pgbuf_promote_read_latch_debug(), and pgbuf_unfix_debug().
STATIC_INLINE int pgbuf_get_shared_lru_index_for_add | ( | void | ) |
Definition at line 1022 of file page_buffer.c.
Referenced by pgbuf_lru_move_from_private_to_shared(), pgbuf_move_bcb_to_bottom_lru(), pgbuf_put_bcb_into_invalid_list(), and pgbuf_unlatch_void_zone_bcb().
TDE_ALGORITHM pgbuf_get_tde_algorithm | ( | PAGE_PTR | pgptr | ) |
Definition at line 4548 of file page_buffer.c.
References assert, CAST_PGPTR_TO_IOPGPTR, FILEIO_PAGE_FLAG_ENCRYPTED_AES, FILEIO_PAGE_FLAG_ENCRYPTED_ARIA, NULL, fileio_page_reserved::pflag, fileio_page::prv, TDE_ALGORITHM_AES, TDE_ALGORITHM_ARIA, and TDE_ALGORITHM_NONE.
Referenced by file_alloc(), log_append_compensate_internal(), log_append_postpone(), log_append_redo_crumbs(), log_append_run_postpone(), log_append_undo_crumbs(), log_append_undoredo_crumbs(), pgbuf_bcb_flush_with_wal(), pgbuf_claim_bcb_for_fix(), pgbuf_dealloc_page(), pgbuf_rv_dealloc_undo(), pgbuf_rv_dealloc_undo_compensate(), and pgbuf_set_tde_algorithm().
|
static |
Definition at line 8248 of file page_buffer.c.
References assert, pgbuf_lru_list::count_vict_cand, lockfree::circular_queue< T >::get_consumer_cursor(), lockfree::circular_queue< T >::is_empty(), pgbuf_page_monitor::lru_victim_req_cnt, pgbuf_buffer_pool::monitor, NULL, pgbuf_buffer_pool::num_LRU_list, PERF, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_is_perf_tracking_and_active(), PGBUF_GET_LRU_LIST, pgbuf_get_victim_from_lru_list(), pgbuf_is_page_flush_daemon_available(), pgbuf_lfcq_get_victim_from_private_lru(), pgbuf_lfcq_get_victim_from_shared_lru(), PGBUF_LRU_INDEX_FROM_PRIVATE, PGBUF_LRU_LIST_IS_ONE_TWO_OVER_QUOTA, PGBUF_LRU_LIST_IS_OVER_QUOTA, PGBUF_LRU_LIST_IS_OVER_QUOTA_WITH_BUFFER, PGBUF_PAGE_QUOTA_IS_ENABLED, PGBUF_PRIVATE_LRU_FROM_THREAD, PGBUF_THREAD_HAS_PRIVATE_LRU, PGBUF_THREAD_SHOULD_IGNORE_UNFIX, PSTAT_PB_OWN_VICTIM_PRIVATE_LRU_SUCCESS, PSTAT_PB_VICTIM_ALL_LRU_FAIL, PSTAT_PB_VICTIM_OWN_PRIVATE_LRU_FAIL, PSTAT_PB_VICTIM_SEARCH_OTHERS_PRIVATE_LISTS, PSTAT_PB_VICTIM_SEARCH_OWN_PRIVATE_LISTS, PSTAT_PB_VICTIM_SEARCH_SHARED_LISTS, pgbuf_buffer_pool::shared_lrus_with_victims, and STATIC_INLINE.
Referenced by pgbuf_allocate_bcb().
|
static |
Definition at line 3156 of file page_buffer.c.
References _er_log_debug(), ARG_FILE_LINE, pgbuf_lru_list::bottom, pgbuf_buffer_pool::buf_LRU_list, pgbuf_victim_candidate_list::bufptr, i, pgbuf_page_quota::lru_victim_flush_priority_per_lru, NULL, perfmon_inc_stat(), pgbuf_assign_direct_victim(), pgbuf_bcb_is_dirty(), PGBUF_BCB_TRYLOCK, PGBUF_BCB_UNLOCK, PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE, pgbuf_is_bcb_victimizable(), PGBUF_TOTAL_LRU_COUNT, pgbuf_bcb::prev_BCB, prm_get_bool_value(), PRM_ID_LOG_PGBUF_VICTIM_FLUSH, PSTAT_PB_VICTIM_ASSIGN_DIRECT_SEARCH_FOR_FLUSH, pthread_mutex_lock, pthread_mutex_unlock, pgbuf_buffer_pool::quota, pgbuf_buffer_pool::victim_cand_list, pgbuf_bcb::vpid, and pgbuf_victim_candidate_list::vpid.
Referenced by pgbuf_flush_victim_candidates().
|
static |
Definition at line 8494 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, pgbuf_buffer_pool::buf_LRU_list, cubregex::count(), pgbuf_lru_list::count_vict_cand, pgbuf_lru_list::index, MAX_DEPTH, NULL, PERF, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), pgbuf_add_vpid_to_aout_list(), pgbuf_assign_direct_victim(), pgbuf_bcb_avoid_victim(), pgbuf_bcb_get_lru_index(), pgbuf_bcb_is_dirty(), PGBUF_BCB_TRYLOCK, PGBUF_BCB_UNLOCK, PGBUF_GET_LRU_LIST, pgbuf_is_bcb_fixed_by_any(), PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE, pgbuf_is_bcb_victimizable(), pgbuf_is_page_flush_daemon_available(), PGBUF_IS_PRIVATE_LRU_ONE_TWO_OVER_QUOTA, pgbuf_lru_adjust_zones(), pgbuf_lru_advance_victim_hint(), PGBUF_LRU_INDEX_FROM_PRIVATE, PGBUF_PRIVATE_LRU_COUNT, pgbuf_remove_from_lru_list(), PGBUF_SHARED_LRU_COUNT, pgbuf_wakeup_page_flush_daemon(), pgbuf_bcb::prev_BCB, PSTAT_PB_VICTIM_ASSIGN_DIRECT_PANIC, PSTAT_PB_VICTIM_GET_FROM_LRU, PSTAT_PB_VICTIM_GET_FROM_LRU_BAD_HINT, PSTAT_PB_VICTIM_GET_FROM_LRU_FAIL, PSTAT_PB_VICTIM_GET_FROM_LRU_LIST_WAS_EMPTY, pthread_mutex_lock, pthread_mutex_unlock, STATIC_INLINE, thread_num_total_threads(), pgbuf_lru_list::victim_hint, and pgbuf_bcb::vpid.
Referenced by pgbuf_get_victim(), pgbuf_lfcq_get_victim_from_private_lru(), and pgbuf_lfcq_get_victim_from_shared_lru().
Definition at line 4707 of file page_buffer.c.
References CAST_PGPTR_TO_BFPTR, NULL_VOLID, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), vpid::volid, and pgbuf_bcb::vpid.
Referenced by disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), heap_chkreloc_next(), heap_find_location_and_insert_rec_newhome(), heap_get_insert_location_with_lock(), heap_get_mvcc_header(), and heap_rv_redo_reuse_page().
Definition at line 4731 of file page_buffer.c.
References assert, CAST_PGPTR_TO_BFPTR, fileio_get_volume_label(), PEEK, vpid::volid, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by spage_check(), spage_check_mvcc_updatable(), spage_check_slot_owner(), spage_check_updatable(), spage_delete(), spage_dump(), spage_get_record(), spage_get_record_length(), spage_get_record_offset(), spage_get_space_for_record(), spage_insert_at(), spage_mark_deleted_slot_as_reusable(), spage_merge(), spage_overwrite(), spage_put_helper(), spage_split(), spage_take_out(), spage_take_slot_in_use(), and spage_update_record_type().
Definition at line 4579 of file page_buffer.c.
References CAST_PGPTR_TO_BFPTR, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), pgbuf_bcb::vpid, and VPID_SET_NULL.
Referenced by btree_dump_page(), btree_key_find_and_lock_unique_of_non_unique(), btree_locate_key(), btree_overflow_remove_object(), catalog_create(), catalog_file_map_find_optimal_page(), disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), file_extdata_find_and_remove_item(), file_numerable_find_nth(), file_rv_tracker_mark_heap_deleted_compensate_or_run_postpone(), file_table_collect_ftab_pages(), heap_remove_page_on_vacuum(), heap_vpid_next(), heap_vpid_prev(), log_rv_redo_record(), log_rv_undo_record(), scan_next_heap_scan(), spage_compact(), spage_verify_header(), vacuum_data_empty_page(), vacuum_data_load_and_recover(), vacuum_data_unload_first_and_last_page(), and vacuum_heap_prepare_record().
Definition at line 4609 of file page_buffer.c.
References CAST_PGPTR_TO_BFPTR, NULL, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), and pgbuf_bcb::vpid.
Referenced by btree_key_append_object_as_new_overflow(), btree_key_insert_new_key(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_object_and_keep_visible_first(), btree_merge_node(), btree_merge_root(), btree_range_scan(), btree_rv_log_delete_object(), btree_rv_log_insert_object(), btree_split_node_and_advance(), file_extdata_apply_funcs(), file_rv_user_page_unmark_delete_logical(), file_tracker_item_mark_heap_deleted(), vacuum_job_cursor::get_page_vpid(), heap_check_all_pages_by_heapchain(), heap_get_num_objects(), heap_get_record_location(), heap_next_internal(), heap_prepare_object_page(), heap_scanrange_to_following(), heap_stats_find_best_page(), heap_stats_update(), heap_update_set_prev_version(), overflow_update(), pgbuf_attach_watcher_debug(), prior_lsa_gen_postpone_record(), prior_lsa_gen_undoredo_record_from_crumbs(), spage_dump(), spage_get_saved_spaces(), spage_save_space(), spage_vacuum_slot(), vacuum_data_empty_page(), vacuum_heap_prepare_record(), and vacuum_rv_set_next_page_dropped_files().
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().
Definition at line 13468 of file page_buffer.c.
References assert, CAST_PGPTR_TO_BFPTR, NULL, PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, and pgbuf_is_exist_blocked_reader_writer().
Referenced by btree_insert_list::check_release_latch(), file_header_sanity_check(), and heap_remove_page_on_vacuum().
bool pgbuf_has_perm_pages_fixed | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 10874 of file page_buffer.c.
References btree_get_perf_btree_page_type(), pgbuf_holder::bufptr, heap_is_page_header(), pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, NULL, pgbuf_holder_anchor::num_hold_cnt, fileio_page::page, PAGE_BTREE, PAGE_FTAB, PAGE_HEAP, PAGE_QRESULT, PAGE_VOLHEADER, PERF_PAGE_BTREE_ROOT, fileio_page::prv, fileio_page_reserved::ptype, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, and thread_get_entry_index().
Referenced by logpb_flush_pages().
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().
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().
|
static |
Definition at line 16100 of file page_buffer.c.
References fileio_get_page_watermark_pos(), fileio_page_reserved::lsa, fileio_page_watermark::lsa, PGBUF_TEMP_LSA, and fileio_page::prv.
Referenced by pgbuf_claim_bcb_for_fix(), pgbuf_reset_temp_lsa(), pgbuf_set_lsa(), and pgbuf_set_lsa_as_temporary().
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().
|
static |
Definition at line 5168 of file page_buffer.c.
References pgbuf_aout_list::Aout_bottom, pgbuf_aout_list::aout_buf_ht, pgbuf_aout_list::Aout_free, AOUT_HASH_DIVIDE_RATIO, pgbuf_aout_list::Aout_top, ARG_FILE_LINE, pgbuf_buffer_pool::buf_AOUT_list, pgbuf_aout_list::bufarray, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), free_and_init, i, pgbuf_aout_buf::lru_idx, pgbuf_aout_list::max_count, mht_create(), mht_destroy(), pgbuf_aout_buf::next, NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_aout_list::num_hashes, PGBUF_AOUT_NOT_FOUND, pgbuf_compare_vpid(), pgbuf_hash_vpid(), PGBUF_LIMIT_AOUT_BUFFERS, pgbuf_aout_buf::prev, prm_get_float_value(), PRM_ID_PB_AOUT_RATIO, pthread_mutex_destroy, pthread_mutex_init, pgbuf_aout_buf::vpid, and VPID_SET_NULL.
Referenced by pgbuf_initialize().
|
static |
Definition at line 4924 of file page_buffer.c.
References ARG_FILE_LINE, pgbuf_iopage_buffer::bcb, pgbuf_buffer_pool::BCB_table, pgbuf_bcb::count_fix_and_avoid_dealloc, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, ER_PRM_BAD_VALUE, er_set(), pgbuf_bcb::fcnt, fileio_init_lsa_of_page(), pgbuf_bcb::flags, free_and_init, pgbuf_bcb::hash_next, pgbuf_bcb::hit_age, i, if(), IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_buffer_pool::iopage_table, pgbuf_bcb::latch_mode, LSA_SET_NULL(), MEM_SIZE_IS_VALID, pgbuf_bcb::next_BCB, NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_bcb::oldest_unflush_lsa, fileio_page_reserved::p_reserve_1, fileio_page_reserved::p_reserve_2, fileio_page_reserved::pageid, fileio_page_reserved::pflag, PGBUF_BCB_INIT_FLAGS, PGBUF_BCB_SIZEOF, PGBUF_FIND_BCB_PTR, PGBUF_FIND_BUFFER_GUARD, PGBUF_FIND_IOPAGE_PTR, PGBUF_IOPAGE_BUFFER_SIZE, PGBUF_LATCH_INVALID, pgbuf_bcb::prev_BCB, fileio_page::prv, pthread_mutex_init, fileio_page_reserved::ptype, fileio_page_reserved::tde_nonce, pgbuf_bcb::tick_lru3, pgbuf_bcb::tick_lru_list, fileio_page_reserved::volid, pgbuf_bcb::vpid, and VPID_SET_NULL.
Referenced by pgbuf_initialize().
|
static |
Definition at line 5036 of file page_buffer.c.
References ARG_FILE_LINE, pgbuf_buffer_pool::buf_hash_table, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), pgbuf_buffer_hash::hash_next, i, pgbuf_buffer_hash::lock_next, NO_ERROR, NULL, PGBUF_BUFFER_HASH_SIZEOF, PGBUF_HASH_SIZE, and pthread_mutex_init.
Referenced by pgbuf_initialize().
|
static |
Definition at line 5272 of file page_buffer.c.
References pgbuf_buffer_pool::buf_invalid_list, pgbuf_invalid_list::invalid_cnt, pgbuf_invalid_list::invalid_top, NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, PGBUF_FIND_BCB_PTR, and pthread_mutex_init.
Referenced by pgbuf_initialize().
|
static |
Definition at line 5065 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_buffer_pool::buf_lock_table, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), i, pgbuf_buffer_lock::lock_next, MAX_NTRANS, NO_ERROR, NULL, PGBUF_BUFFER_LOCK_SIZEOF, thread_num_total_threads(), pgbuf_buffer_lock::vpid, and VPID_SET_NULL.
Referenced by pgbuf_initialize().
|
static |
Definition at line 5105 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_lru_list::bottom, pgbuf_lru_list::bottom_1, pgbuf_lru_list::bottom_2, pgbuf_buffer_pool::buf_LRU_list, pgbuf_lru_list::count_lru1, pgbuf_lru_list::count_lru2, pgbuf_lru_list::count_lru3, pgbuf_lru_list::count_vict_cand, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), pgbuf_lru_list::flags, i, pgbuf_lru_list::index, MAX_NTRANS, NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_buffer_pool::num_LRU_list, PGBUF_LRU_LIST_SIZEOF, PGBUF_MIN_PAGES_IN_SHARED_LIST, PGBUF_TOTAL_LRU_COUNT, prm_get_integer_value(), PRM_ID_PB_NUM_LRU_CHAINS, pthread_mutex_init, pgbuf_lru_list::quota, pgbuf_lru_list::threshold_lru1, pgbuf_lru_list::threshold_lru2, pgbuf_lru_list::tick_list, pgbuf_lru_list::tick_lru3, pgbuf_lru_list::top, and pgbuf_lru_list::victim_hint.
Referenced by pgbuf_initialize().
|
static |
Definition at line 12848 of file page_buffer.c.
References ARG_FILE_LINE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), pgbuf_page_monitor::fix_req_cnt, i, pgbuf_page_monitor::lru_activity, pgbuf_page_monitor::lru_hits, pgbuf_page_monitor::lru_shared_pgs_cnt, pgbuf_page_monitor::lru_victim_req_cnt, pgbuf_buffer_pool::monitor, NO_ERROR, NULL, pgbuf_page_monitor::pg_unfix_cnt, PGBUF_TOTAL_LRU_COUNT, thread_num_total_threads(), and pgbuf_page_monitor::victim_rich.
Referenced by pgbuf_initialize().
|
static |
Definition at line 12788 of file page_buffer.c.
References pgbuf_page_quota::add_shared_lru_idx, ARG_FILE_LINE, pgbuf_page_quota::avoid_shared_lru_idx, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), i, pgbuf_page_quota::lru_victim_flush_priority_per_lru, NO_ERROR, NULL, PGBUF_IS_PRIVATE_LRU_INDEX, PGBUF_PAGE_QUOTA_IS_ENABLED, PGBUF_PRIVATE_LIST_FROM_LRU_INDEX, PGBUF_PRIVATE_LRU_COUNT, PGBUF_TOTAL_LRU_COUNT, pgbuf_page_quota::private_lru_session_cnt, pgbuf_page_quota::private_pages_ratio, and pgbuf_buffer_pool::quota.
Referenced by pgbuf_initialize().
|
static |
Definition at line 12744 of file page_buffer.c.
References pgbuf_page_quota::adjust_age, pgbuf_page_quota::is_adjusting, pgbuf_page_quota::last_adjust_time, MAX_NTRANS, NO_ERROR, pgbuf_page_quota::num_private_LRU_list, PGBUF_PRIVATE_LRU_MIN_COUNT, prm_get_integer_value(), PRM_ID_PB_NUM_PRIVATE_CHAINS, pgbuf_buffer_pool::quota, tsc_getticks(), and VACUUM_MAX_WORKER_COUNT.
Referenced by pgbuf_initialize().
|
static |
Definition at line 13430 of file page_buffer.c.
References ARG_FILE_LINE, pgbuf_seq_flusher::burst_mode, pgbuf_seq_flusher::control_flushed, pgbuf_seq_flusher::control_intervals_cnt, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), pgbuf_seq_flusher::flush_cnt, pgbuf_seq_flusher::flush_idx, pgbuf_seq_flusher::flush_list, pgbuf_seq_flusher::flush_max_size, NO_ERROR, and NULL.
Referenced by pgbuf_initialize().
|
static |
Definition at line 5287 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_holder::bufptr, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), pgbuf_holder::first_watcher, pgbuf_holder::fix_count, pgbuf_buffer_pool::free_holder_set, pgbuf_buffer_pool::free_index, i, INIT_HOLDER_STAT, pgbuf_holder::last_watcher, MAX_NTRANS, pgbuf_holder::next_holder, NO_ERROR, NULL, pgbuf_holder_anchor::num_free_cnt, pgbuf_holder_anchor::num_hold_cnt, pgbuf_holder::perf_stat, PGBUF_DEFAULT_FIX_COUNT, PGBUF_HOLDER_ANCHOR_SIZEOF, PGBUF_HOLDER_SIZEOF, pthread_mutex_init, STATIC_INLINE, pgbuf_holder_anchor::thrd_free_list, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, pgbuf_buffer_pool::thrd_reserved_holder, thread_num_total_threads(), and pgbuf_holder::watch_count.
Referenced by pgbuf_initialize().
STATIC_INLINE int pgbuf_insert_into_hash_chain | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BUFFER_HASH * | hash_anchor, | ||
PGBUF_BCB * | bufptr | ||
) |
Definition at line 7053 of file page_buffer.c.
References pgbuf_bcb::hash_next, pgbuf_buffer_hash::hash_next, NO_ERROR, PERFMON_ACTIVATION_FLAG_PB_HASH_ANCHOR, perfmon_add_stat(), perfmon_get_activation_flag(), perfmon_inc_stat(), perfmon_is_perf_tracking(), perfmon_is_perf_tracking_and_active(), PSTAT_PB_NUM_HASH_ANCHOR_WAITS, PSTAT_PB_TIME_HASH_ANCHOR_WAIT, pthread_mutex_lock, rv, STATIC_INLINE, tsc_elapsed_utime(), and tsc_getticks().
Referenced by pgbuf_fix_debug().
int pgbuf_invalidate_all_debug | ( | THREAD_ENTRY * | thread_p, |
VOLID | volid, | ||
const char * | caller_file, | ||
int | caller_line | ||
) |
Definition at line 2852 of file page_buffer.c.
References ER_FAILED, pgbuf_bcb::fcnt, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, NO_ERROR, NULL_VOLID, pgbuf_buffer_pool::num_buffers, pgbuf_bcb_avoid_victim(), pgbuf_bcb_is_dirty(), PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_force_lock(), PGBUF_BCB_UNLOCK, PGBUF_FIND_BCB_PTR, pgbuf_invalidate_bcb(), vpid::volid, pgbuf_bcb::vpid, VPID_EQ, and VPID_ISNULL.
|
static |
Definition at line 7892 of file page_buffer.c.
References assert, ER_FAILED, pgbuf_bcb::latch_mode, LSA_SET_NULL(), NO_ERROR, pgbuf_bcb::oldest_unflush_lsa, pgbuf_bcb_clear_dirty(), pgbuf_bcb_get_zone(), pgbuf_bcb_is_direct_victim(), PGBUF_BCB_UNLOCK, pgbuf_delete_from_hash_chain(), PGBUF_IS_BCB_IN_LRU, PGBUF_LATCH_INVALID, pgbuf_lru_remove_bcb(), PGBUF_NO_LATCH, pgbuf_put_bcb_into_invalid_list(), and PGBUF_VOID_ZONE.
Referenced by pgbuf_invalidate_all_debug(), pgbuf_invalidate_debug(), and pgbuf_unfix_debug().
int pgbuf_invalidate_debug | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
const char * | caller_file, | ||
int | caller_line | ||
) |
Definition at line 2748 of file page_buffer.c.
References assert, ASSERT_ERROR, CAST_PGPTR_TO_BFPTR, ER_FAILED, pgbuf_bcb::fcnt, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, NO_ERROR, NULL, pgbuf_bcb_avoid_victim(), PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_force_lock(), PGBUF_BCB_UNLOCK, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_invalidate_bcb(), pgbuf_is_valid_page_ptr(), pgbuf_unlatch_bcb_upon_unfix(), pgbuf_unlatch_thrd_holder(), pgbuf_bcb::vpid, VPID_EQ, and VPID_ISNULL.
STATIC_INLINE bool pgbuf_is_bcb_fixed_by_any | ( | PGBUF_BCB * | bcb, |
bool | has_mutex_lock | ||
) |
Definition at line 8438 of file page_buffer.c.
References pgbuf_bcb::fcnt, pgbuf_bcb::latch_mode, NULL, PGBUF_BCB_CHECK_OWN, PGBUF_NO_LATCH, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), pgbuf_get_victim_from_lru_list(), and pgbuf_is_bcb_victimizable().
STATIC_INLINE bool pgbuf_is_bcb_victimizable | ( | PGBUF_BCB * | bcb, |
bool | has_mutex_lock | ||
) |
Definition at line 8464 of file page_buffer.c.
References pgbuf_bcb_avoid_victim(), and pgbuf_is_bcb_fixed_by_any().
Referenced by pgbuf_assign_direct_victim(), pgbuf_get_victim_candidates_from_lru(), pgbuf_get_victim_from_lru_list(), pgbuf_lru_add_new_bcb_to_bottom(), pgbuf_lru_fall_bcb_to_zone_3(), and pgbuf_victimize_bcb().
STATIC_INLINE bool pgbuf_is_exist_blocked_reader_writer | ( | PGBUF_BCB * | bufptr | ) |
Definition at line 10182 of file page_buffer.c.
References NULL, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, and STATIC_INLINE.
Referenced by pgbuf_has_any_waiters(), pgbuf_latch_bcb_upon_fix(), and pgbuf_unlatch_bcb_upon_unfix().
STATIC_INLINE bool pgbuf_is_hit_ratio_low | ( | void | ) |
Definition at line 15425 of file page_buffer.c.
References assert_release, pgbuf_monitor_bcb_mutex::bcb, pgbuf_monitor_bcb_mutex::bcb_second, pgbuf_page_monitor::fix_req_cnt, pgbuf_monitor_bcb_mutex::line, pgbuf_monitor_bcb_mutex::line_second, pgbuf_page_monitor::lru_victim_req_cnt, pgbuf_buffer_pool::monitor, NULL, PGBUF_ABORT_RELEASE, PGBUF_DESIRED_HIT_VS_MISS_RATE, PGBUF_MIN_VICTIM_REQ, pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, rv, and thread_get_current_entry_index().
Referenced by pgbuf_fix_if_not_deallocated_with_caller().
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().
bool pgbuf_is_log_check_for_interrupts | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 4762 of file page_buffer.c.
References ARG_FILE_LINE, pgbuf_buffer_pool::check_for_interrupts, ER_ERROR_SEVERITY, ER_INTERRUPTED, er_set(), and logtb_is_interrupted().
Referenced by fileio_backup_volume(), fileio_create_backup_volume(), fileio_initialize_pages(), and fileio_write_backup_node().
Definition at line 4885 of file page_buffer.c.
References CAST_PGPTR_TO_BFPTR, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, fileio_page_reserved::lsa, pgbuf_is_temp_lsa(), pgbuf_is_temporary_volume(), fileio_page::prv, STATIC_INLINE, vpid::volid, and pgbuf_bcb::vpid.
Referenced by log_can_skip_redo_logging(), log_can_skip_undo_logging(), log_skip_logging(), and pgbuf_fix_debug().
bool pgbuf_is_page_fixed_by_thread | ( | THREAD_ENTRY * | thread_p, |
const VPID * | vpid_p | ||
) |
Definition at line 12715 of file page_buffer.c.
References assert, pgbuf_holder::bufptr, pgbuf_holder::next_holder, NULL, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, thread_get_entry_index(), pgbuf_bcb::vpid, and VPID_EQ.
Referenced by heap_add_chain_links(), heap_alloc_new_page(), locator_multi_insert_force(), logtb_delete_global_unique_stats(), and logtb_get_global_unique_stats_entry().
|
static |
Definition at line 16084 of file page_buffer.c.
References NULL.
Referenced by pgbuf_allocate_bcb(), pgbuf_flush_victim_candidates(), pgbuf_get_victim(), pgbuf_get_victim_from_lru_list(), and pgbuf_wakeup_page_flush_daemon().
Definition at line 16094 of file page_buffer.c.
References PGBUF_TEMP_LSA.
Referenced by pgbuf_claim_bcb_for_fix(), pgbuf_is_lsa_temporary(), pgbuf_set_lsa(), and pgbuf_unfix_debug().
|
static |
Definition at line 4908 of file page_buffer.c.
References DB_TEMPORARY_DATA_PURPOSE, LOG_DBFIRST_VOLID, LOG_ISRESTARTED, NULL, and xdisk_get_purpose().
Referenced by pgbuf_bcb_flush_with_wal(), pgbuf_claim_bcb_for_fix(), pgbuf_is_lsa_temporary(), pgbuf_scan_bcb_table(), and pgbuf_set_lsa().
DISK_ISVALID pgbuf_is_valid_page | ( | THREAD_ENTRY * | thread_p, |
const VPID * | vpid, | ||
bool | no_error, | ||
DISK_ISVALID(*)(const VPID *vpid, void *args) | fun, | ||
void * | args | ||
) |
Definition at line 10233 of file page_buffer.c.
References ARG_FILE_LINE, assert, DISK_ERROR, DISK_INVALID, disk_is_page_sector_reserved_with_debug_crash(), DISK_VALID, ER_FATAL_ERROR_SEVERITY, ER_PB_BAD_PAGEID, er_set(), fileio_get_volume_label(), NULL, vpid::pageid, PEEK, vpid::volid, and VPID_ISNULL.
Referenced by btree_check_valid_record(), heap_rv_postpone_append_pages_to_heap(), pgbuf_copy_from_area(), pgbuf_copy_to_area(), pgbuf_fix_debug(), and pgbuf_ordered_fix_debug().
Definition at line 10272 of file page_buffer.c.
References ARG_FILE_LINE, assert, ER_FATAL_ERROR_SEVERITY, ER_PB_UNFIXED_PAGEPTR, ER_PB_UNKNOWN_PAGEPTR, er_set(), pgbuf_bcb::fcnt, fileio_get_volume_label(), pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, NULL, pgbuf_buffer_pool::num_buffers, fileio_page::page, vpid::pageid, PEEK, PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, PGBUF_FIND_BCB_PTR, vpid::volid, and pgbuf_bcb::vpid.
Referenced by pgbuf_check_page_ptype_internal(), pgbuf_flush_if_requested(), pgbuf_flush_with_wal(), pgbuf_get_latch_mode(), pgbuf_get_lsa(), pgbuf_get_page_ptype(), pgbuf_get_volume_id(), pgbuf_get_vpid(), pgbuf_get_vpid_ptr(), pgbuf_invalidate_debug(), pgbuf_promote_read_latch_debug(), pgbuf_set_dirty(), pgbuf_set_lsa(), pgbuf_set_page_ptype(), and pgbuf_unfix_debug().
STATIC_INLINE int pgbuf_latch_bcb_upon_fix | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr, | ||
PGBUF_LATCH_MODE | request_mode, | ||
int | buf_lock_acquired, | ||
PGBUF_LATCH_CONDITION | condition, | ||
bool * | is_latch_wait | ||
) |
Definition at line 5682 of file page_buffer.c.
References ARG_FILE_LINE, assert, assert_release, pgbuf_holder::bufptr, pgbuf_holder_stat::dirtied_by_holder, pgbuf_holder_stat::dirty_before_hold, ER_ERROR_SEVERITY, ER_FAILED, ER_LK_PAGE_TIMEOUT, er_set(), pgbuf_bcb::fcnt, pgbuf_holder::fix_count, pgbuf_holder_stat::hold_has_read_latch, pgbuf_holder_stat::hold_has_write_latch, INIT_HOLDER_STAT, pgbuf_bcb::latch_mode, LK_ZERO_WAIT, LOG_FIND_THREAD_TRAN_INDEX, logtb_find_client_name_host_pid(), logtb_find_wait_msecs(), NO_ERROR, NULL, vpid::pageid, pgbuf_holder::perf_stat, pgbuf_allocate_thrd_holder_entry(), pgbuf_bcb_is_dirty(), PGBUF_BCB_UNLOCK, pgbuf_block_bcb(), PGBUF_CONDITIONAL_LATCH, pgbuf_find_thrd_holder(), pgbuf_is_exist_blocked_reader_writer(), pgbuf_latch_idle_page(), PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_NO_LATCH, pgbuf_remove_thrd_holder(), PGBUF_UNCONDITIONAL_LATCH, STATIC_INLINE, vpid::volid, and pgbuf_bcb::vpid.
Referenced by pgbuf_fix_debug().
|
static |
Definition at line 5619 of file page_buffer.c.
References assert, pgbuf_holder::bufptr, pgbuf_holder_stat::dirtied_by_holder, pgbuf_holder_stat::dirty_before_hold, ER_FAILED, pgbuf_bcb::fcnt, pgbuf_holder::fix_count, pgbuf_holder_stat::hold_has_read_latch, pgbuf_holder_stat::hold_has_write_latch, pgbuf_bcb::latch_mode, NO_ERROR, NULL, pgbuf_holder::perf_stat, pgbuf_allocate_thrd_holder_entry(), pgbuf_bcb_is_dirty(), PGBUF_BCB_UNLOCK, pgbuf_find_thrd_holder(), PGBUF_LATCH_WRITE, and STATIC_INLINE.
Referenced by pgbuf_latch_bcb_upon_fix().
|
static |
Definition at line 13744 of file page_buffer.c.
References PGBUF_LATCH_FLUSH, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, and PGBUF_NO_LATCH.
Referenced by pgbuf_check_bcb_page_vpid(), and pgbuf_unfix_all().
STATIC_INLINE bool pgbuf_lfcq_add_lru_with_victims | ( | PGBUF_LRU_LIST * | lru_list | ) |
Definition at line 15169 of file page_buffer.c.
References pgbuf_lru_list::flags, pgbuf_lru_list::index, PGBUF_IS_PRIVATE_LRU_INDEX, PGBUF_LRU_VICTIM_LFCQ_FLAG, pgbuf_buffer_pool::private_lrus_with_victims, lockfree::circular_queue< T >::produce(), and pgbuf_buffer_pool::shared_lrus_with_victims.
Referenced by pgbuf_adjust_quotas(), and pgbuf_lru_add_victim_candidate().
|
static |
Definition at line 15215 of file page_buffer.c.
References assert, pgbuf_buffer_pool::big_private_lrus_with_victims, lockfree::circular_queue< T >::consume(), pgbuf_lru_list::count_vict_cand, pgbuf_lru_list::flags, NULL, PBGUF_BIG_PRIVATE_MIN_SIZE, PERF, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_is_perf_tracking_and_active(), PGBUF_GET_LRU_LIST, pgbuf_get_victim_from_lru_list(), PGBUF_IS_PRIVATE_LRU_INDEX, PGBUF_LRU_LIST_COUNT, PGBUF_LRU_LIST_IS_OVER_QUOTA, PGBUF_LRU_VICTIM_LFCQ_FLAG, pgbuf_buffer_pool::private_lrus_with_victims, lockfree::circular_queue< T >::produce(), PSTAT_PB_LFCQ_LRU_PRV_GET_BIG, PSTAT_PB_LFCQ_LRU_PRV_GET_CALLS, PSTAT_PB_LFCQ_LRU_PRV_GET_EMPTY, PSTAT_PB_VICTIM_OTHER_PRIVATE_LRU_FAIL, PSTAT_PB_VICTIM_OTHER_PRIVATE_LRU_SUCCESS, and pgbuf_lru_list::quota.
Referenced by pgbuf_get_victim().
|
static |
Definition at line 15307 of file page_buffer.c.
References assert, lockfree::circular_queue< T >::consume(), pgbuf_lru_list::count_vict_cand, pgbuf_lru_list::flags, NULL, PERF, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_is_perf_tracking_and_active(), PGBUF_GET_LRU_LIST, pgbuf_get_victim_from_lru_list(), PGBUF_IS_SHARED_LRU_INDEX, PGBUF_LRU_VICTIM_LFCQ_FLAG, lockfree::circular_queue< T >::produce(), PSTAT_PB_LFCQ_LRU_SHR_GET_CALLS, PSTAT_PB_LFCQ_LRU_SHR_GET_EMPTY, PSTAT_PB_VICTIM_SHARED_LRU_FAIL, PSTAT_PB_VICTIM_SHARED_LRU_SUCCESS, pgbuf_buffer_pool::shared_lrus_with_victims, and STATIC_INLINE.
Referenced by pgbuf_get_victim().
|
static |
Definition at line 7202 of file page_buffer.c.
References assert, pgbuf_buffer_pool::buf_lock_table, pgbuf_buffer_lock::lock_next, pgbuf_buffer_hash::lock_next, NULL, PERFMON_ACTIVATION_FLAG_PB_HASH_ANCHOR, perfmon_add_stat(), perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), PGBUF_LOCK_HOLDER, PGBUF_LOCK_WAITER, PSTAT_LK_NUM_ACQUIRED_ON_PAGES, PSTAT_LK_NUM_WAITED_ON_PAGES, PSTAT_PB_NUM_HASH_ANCHOR_WAITS, PSTAT_PB_TIME_HASH_ANCHOR_WAIT, pthread_mutex_lock, pthread_mutex_unlock, thread_get_thread_entry_info(), THREAD_PGBUF_RESUMED, tsc_elapsed_utime(), tsc_getticks(), pgbuf_buffer_lock::vpid, and VPID_EQ.
Referenced by pgbuf_claim_bcb_for_fix().
void pgbuf_log_new_page | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_new, | ||
int | data_size, | ||
PAGE_TYPE | ptype_new | ||
) |
Definition at line 13897 of file page_buffer.c.
References assert, DONT_FREE, log_append_undoredo_data2(), NULL, PAGE_UNKNOWN, pgbuf_set_dirty(), and RVPGBUF_NEW_PAGE.
Referenced by file_create(), file_numerable_add_page(), file_perm_dealloc(), and file_table_append_full_sector_page().
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().
STATIC_INLINE void pgbuf_lru_add_bcb_to_bottom | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
PGBUF_LRU_LIST * | lru_list | ||
) |
Definition at line 9011 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, DB_INT32_MAX, pgbuf_lru_list::index, pgbuf_bcb::next_BCB, NULL, pgbuf_bcb_change_zone(), PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE, PGBUF_LRU_3_ZONE, pgbuf_bcb::prev_BCB, STATIC_INLINE, pgbuf_bcb::tick_lru3, pgbuf_lru_list::tick_lru3, and pgbuf_lru_list::top.
Referenced by pgbuf_lru_add_new_bcb_to_bottom(), and pgbuf_move_bcb_to_bottom_lru().
STATIC_INLINE void pgbuf_lru_add_bcb_to_middle | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
PGBUF_LRU_LIST * | lru_list | ||
) |
Definition at line 8923 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, pgbuf_lru_list::bottom_1, pgbuf_lru_list::bottom_2, pgbuf_lru_list::count_lru2, DB_INT32_MAX, pgbuf_lru_list::index, pgbuf_bcb::next_BCB, NULL, pgbuf_bcb_change_zone(), pgbuf_bcb_get_zone(), PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, pgbuf_bcb::prev_BCB, STATIC_INLINE, pgbuf_lru_list::tick_list, and pgbuf_lru_list::top.
Referenced by pgbuf_lru_add_new_bcb_to_middle().
STATIC_INLINE void pgbuf_lru_add_bcb_to_top | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
PGBUF_LRU_LIST * | lru_list | ||
) |
Definition at line 8873 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, pgbuf_lru_list::bottom_1, pgbuf_lru_list::count_lru1, DB_INT32_MAX, pgbuf_lru_list::index, pgbuf_bcb::next_BCB, NULL, pgbuf_bcb_change_zone(), PGBUF_LRU_1_ZONE, pgbuf_bcb::prev_BCB, STATIC_INLINE, pgbuf_lru_list::tick_list, and pgbuf_lru_list::top.
Referenced by pgbuf_lru_add_new_bcb_to_top(), and pgbuf_lru_boost_bcb().
STATIC_INLINE void pgbuf_lru_add_new_bcb_to_bottom | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
int | lru_idx | ||
) |
Definition at line 9442 of file page_buffer.c.
References assert, pgbuf_buffer_pool::buf_LRU_list, pgbuf_assign_direct_victim(), PGBUF_IS_BCB_IN_LRU, pgbuf_is_bcb_victimizable(), pgbuf_lru_add_bcb_to_bottom(), pgbuf_lru_sanity_check(), pthread_mutex_lock, pthread_mutex_unlock, STATIC_INLINE, pgbuf_lru_list::tick_list, and pgbuf_bcb::tick_lru_list.
Referenced by pgbuf_move_bcb_to_bottom_lru().
STATIC_INLINE void pgbuf_lru_add_new_bcb_to_middle | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
int | lru_idx | ||
) |
Definition at line 9410 of file page_buffer.c.
References assert, pgbuf_buffer_pool::buf_LRU_list, PGBUF_IS_BCB_IN_LRU, pgbuf_lru_add_bcb_to_middle(), pgbuf_lru_adjust_zone2(), pgbuf_lru_sanity_check(), pthread_mutex_lock, pthread_mutex_unlock, STATIC_INLINE, pgbuf_lru_list::tick_list, and pgbuf_bcb::tick_lru_list.
Referenced by pgbuf_lru_move_from_private_to_shared(), and pgbuf_unlatch_void_zone_bcb().
STATIC_INLINE void pgbuf_lru_add_new_bcb_to_top | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
int | lru_idx | ||
) |
Definition at line 9374 of file page_buffer.c.
References assert, pgbuf_buffer_pool::buf_LRU_list, PGBUF_IS_BCB_IN_LRU, pgbuf_lru_add_bcb_to_top(), pgbuf_lru_adjust_zones(), pgbuf_lru_sanity_check(), pthread_mutex_lock, pthread_mutex_unlock, STATIC_INLINE, pgbuf_lru_list::tick_list, and pgbuf_bcb::tick_lru_list.
Referenced by pgbuf_unlatch_void_zone_bcb().
STATIC_INLINE void pgbuf_lru_add_victim_candidate | ( | THREAD_ENTRY * | thread_p, |
PGBUF_LRU_LIST * | lru_list, | ||
PGBUF_BCB * | bcb | ||
) |
Definition at line 14467 of file page_buffer.c.
References pgbuf_lru_list::count_vict_cand, pgbuf_lru_list::index, NULL, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_is_perf_tracking_and_active(), PGBUF_AGE_DIFF, PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE, PGBUF_IS_SHARED_LRU_INDEX, pgbuf_lfcq_add_lru_with_victims(), PGBUF_LRU_LIST_IS_OVER_QUOTA, STATIC_INLINE, pgbuf_bcb::tick_lru3, pgbuf_lru_list::tick_lru3, and pgbuf_lru_list::victim_hint.
Referenced by pgbuf_bcb_change_zone(), and pgbuf_bcb_update_flags().
STATIC_INLINE void pgbuf_lru_adjust_zone1 | ( | THREAD_ENTRY * | thread_p, |
PGBUF_LRU_LIST * | lru_list, | ||
bool | min_one | ||
) |
Definition at line 9060 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom_1, pgbuf_lru_list::bottom_2, pgbuf_lru_list::count_lru1, pgbuf_lru_list::index, NULL, pgbuf_bcb_change_zone(), pgbuf_bcb_get_zone(), PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, pgbuf_bcb::prev_BCB, STATIC_INLINE, and pgbuf_lru_list::threshold_lru1.
Referenced by pgbuf_lru_adjust_zones(), and pgbuf_lru_boost_bcb().
STATIC_INLINE void pgbuf_lru_adjust_zone2 | ( | THREAD_ENTRY * | thread_p, |
PGBUF_LRU_LIST * | lru_list, | ||
bool | min_one | ||
) |
Definition at line 9113 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom_2, pgbuf_lru_list::count_lru2, NULL, pgbuf_bcb_get_zone(), PGBUF_LRU_2_ZONE, pgbuf_lru_fall_bcb_to_zone_3(), pgbuf_bcb::prev_BCB, STATIC_INLINE, and pgbuf_lru_list::threshold_lru2.
Referenced by pgbuf_lru_add_new_bcb_to_middle().
STATIC_INLINE void pgbuf_lru_adjust_zones | ( | THREAD_ENTRY * | thread_p, |
PGBUF_LRU_LIST * | lru_list, | ||
bool | min_one | ||
) |
Definition at line 9163 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom_1, pgbuf_lru_list::bottom_2, pgbuf_lru_list::count_lru1, pgbuf_lru_list::count_lru2, NULL, pgbuf_bcb_get_zone(), PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, PGBUF_LRU_3_ZONE, pgbuf_lru_adjust_zone1(), pgbuf_lru_fall_bcb_to_zone_3(), pgbuf_lru_sanity_check(), PGBUF_LRU_ZONE_ONE_TWO_COUNT, pgbuf_bcb::prev_BCB, STATIC_INLINE, pgbuf_lru_list::threshold_lru1, and pgbuf_lru_list::threshold_lru2.
Referenced by pgbuf_adjust_quotas(), pgbuf_get_victim_from_lru_list(), pgbuf_lru_add_new_bcb_to_top(), and pgbuf_lru_boost_bcb().
STATIC_INLINE void pgbuf_lru_advance_victim_hint | ( | THREAD_ENTRY * | thread_p, |
PGBUF_LRU_LIST * | lru_list, | ||
PGBUF_BCB * | bcb_prev_hint, | ||
PGBUF_BCB * | bcb_new_hint, | ||
bool | was_vict_count_updated | ||
) |
Definition at line 14544 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, pgbuf_lru_list::count_vict_cand, pgbuf_lru_list::index, NULL, pgbuf_bcb_get_lru_index(), PGBUF_IS_BCB_IN_LRU_VICTIM_ZONE, STATIC_INLINE, and pgbuf_lru_list::victim_hint.
Referenced by pgbuf_get_victim_from_lru_list(), and pgbuf_remove_from_lru_list().
|
static |
Definition at line 9299 of file page_buffer.c.
References assert, pgbuf_lru_list::index, perfmon_inc_stat(), pgbuf_bcb_get_zone(), PGBUF_IS_BCB_IN_LRU, PGBUF_IS_PRIVATE_LRU_INDEX, PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, PGBUF_LRU_3_ZONE, pgbuf_lru_add_bcb_to_top(), pgbuf_lru_adjust_zone1(), pgbuf_lru_adjust_zones(), pgbuf_lru_list_from_bcb(), pgbuf_lru_sanity_check(), pgbuf_remove_from_lru_list(), PSTAT_PB_UNFIX_LRU_THREE_PRV_TO_TOP, PSTAT_PB_UNFIX_LRU_THREE_SHR_TO_TOP, PSTAT_PB_UNFIX_LRU_TWO_PRV_TO_TOP, PSTAT_PB_UNFIX_LRU_TWO_SHR_TO_TOP, pthread_mutex_lock, pthread_mutex_unlock, and STATIC_INLINE.
Referenced by pgbuf_unlatch_bcb_upon_unfix().
STATIC_INLINE void pgbuf_lru_fall_bcb_to_zone_3 | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
PGBUF_LRU_LIST * | lru_list | ||
) |
Definition at line 9229 of file page_buffer.c.
References assert, DB_INT32_MAX, pgbuf_lru_list::index, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), pgbuf_add_vpid_to_aout_list(), pgbuf_assign_direct_victim(), pgbuf_bcb_change_zone(), pgbuf_bcb_get_zone(), pgbuf_bcb_is_to_vacuum(), PGBUF_BCB_TRYLOCK, PGBUF_BCB_UNLOCK, pgbuf_is_bcb_victimizable(), PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, PGBUF_LRU_3_ZONE, pgbuf_remove_from_lru_list(), PSTAT_PB_VICTIM_ASSIGN_DIRECT_ADJUST, PSTAT_PB_VICTIM_ASSIGN_DIRECT_ADJUST_TO_VACUUM, pgbuf_bcb::tick_lru3, pgbuf_lru_list::tick_lru3, and pgbuf_bcb::vpid.
Referenced by pgbuf_lru_adjust_zone2(), and pgbuf_lru_adjust_zones().
STATIC_INLINE PGBUF_LRU_LIST* pgbuf_lru_list_from_bcb | ( | const PGBUF_BCB * | bcb | ) |
Definition at line 15378 of file page_buffer.c.
References assert, pgbuf_bcb_get_lru_index(), PGBUF_GET_LRU_LIST, PGBUF_IS_BCB_IN_LRU, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), pgbuf_bcb_set_dirty(), pgbuf_bcb_update_flags(), pgbuf_lru_boost_bcb(), pgbuf_lru_remove_bcb(), and pgbuf_unlatch_bcb_upon_unfix().
|
static |
Definition at line 9505 of file page_buffer.c.
References assert, pgbuf_bcb_get_lru_index(), pgbuf_bcb_register_hit_for_lru(), pgbuf_get_shared_lru_index_for_add(), PGBUF_IS_PRIVATE_LRU_INDEX, pgbuf_lru_add_new_bcb_to_middle(), pgbuf_lru_remove_bcb(), and STATIC_INLINE.
Referenced by pgbuf_unlatch_bcb_upon_unfix().
STATIC_INLINE void pgbuf_lru_remove_bcb | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb | ||
) |
Definition at line 9477 of file page_buffer.c.
References assert, PGBUF_IS_BCB_IN_LRU, pgbuf_lru_list_from_bcb(), pgbuf_lru_sanity_check(), pgbuf_remove_from_lru_list(), pthread_mutex_lock, and pthread_mutex_unlock.
Referenced by pgbuf_assign_direct_victim(), pgbuf_invalidate_bcb(), and pgbuf_lru_move_from_private_to_shared().
STATIC_INLINE void pgbuf_lru_remove_victim_candidate | ( | THREAD_ENTRY * | thread_p, |
PGBUF_LRU_LIST * | lru_list, | ||
PGBUF_BCB * | bcb | ||
) |
Definition at line 14521 of file page_buffer.c.
References pgbuf_lru_list::count_vict_cand, and STATIC_INLINE.
Referenced by pgbuf_bcb_change_zone(), pgbuf_bcb_set_dirty(), and pgbuf_bcb_update_flags().
|
static |
Definition at line 15663 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, pgbuf_lru_list::bottom_1, pgbuf_lru_list::bottom_2, pgbuf_lru_list::count_lru1, pgbuf_lru_list::count_lru2, pgbuf_lru_list::count_lru3, pgbuf_bcb::next_BCB, NULL, pgbuf_bcb_get_zone(), PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, STATIC_INLINE, and pgbuf_lru_list::top.
Referenced by pgbuf_lru_add_new_bcb_to_bottom(), pgbuf_lru_add_new_bcb_to_middle(), pgbuf_lru_add_new_bcb_to_top(), pgbuf_lru_adjust_zones(), pgbuf_lru_boost_bcb(), and pgbuf_lru_remove_bcb().
|
static |
Definition at line 9593 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, pgbuf_bcb_get_lru_index(), pgbuf_bcb_get_zone(), PGBUF_BCB_MOVE_TO_LRU_BOTTOM_FLAG, pgbuf_bcb_update_flags(), PGBUF_GET_LRU_LIST, pgbuf_get_shared_lru_index_for_add(), pgbuf_lru_add_bcb_to_bottom(), pgbuf_lru_add_new_bcb_to_bottom(), PGBUF_LRU_INDEX_FROM_PRIVATE, PGBUF_LRU_ZONE_MASK, PGBUF_PRIVATE_LRU_FROM_THREAD, pgbuf_remove_from_lru_list(), PGBUF_THREAD_HAS_PRIVATE_LRU, PGBUF_VOID_ZONE, pthread_mutex_lock, pthread_mutex_unlock, and STATIC_INLINE.
Referenced by pgbuf_unlatch_bcb_upon_unfix().
void pgbuf_notify_vacuum_follows | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page | ||
) |
Definition at line 14987 of file page_buffer.c.
References CAST_PGPTR_TO_BFPTR, PGBUF_BCB_TO_VACUUM_FLAG, pgbuf_bcb_update_flags(), and STATIC_INLINE.
Referenced by btree_split_node_and_advance(), log_append_undo_crumbs(), log_append_undoredo_crumbs(), and vacuum_find_dropped_file().
int pgbuf_ordered_fix_debug | ( | THREAD_ENTRY * | thread_p, |
const VPID * | req_vpid, | ||
PAGE_FETCH_MODE | fetch_mode, | ||
const PGBUF_LATCH_MODE | request_mode, | ||
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().
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().
void pgbuf_ordered_unfix_debug | ( | THREAD_ENTRY * | thread_p, |
PGBUF_WATCHER * | watcher_object, | ||
const char * | caller_file, | ||
int | caller_line | ||
) |
Definition at line 12284 of file page_buffer.c.
References assert, assert_release, pgbuf_holder::fix_count, pgbuf_holder::last_watcher, pgbuf_watcher::magic, NULL, pgbuf_get_holder(), pgbuf_remove_watcher(), pgbuf_unfix, pgbuf_unfix_debug(), pgbuf_watcher_init_debug(), PGBUF_WATCHER_MAGIC_NUMBER, pgbuf_watcher::pgptr, pgbuf_watcher::prev, STATIC_INLINE, and pgbuf_holder::watch_count.
Definition at line 4342 of file page_buffer.c.
References LSA_COPY(), LSA_EQ(), and pgbuf_get_lsa().
Referenced by scan_next_heap_scan().
void pgbuf_peek_stats | ( | UINT64 * | fixed_cnt, |
UINT64 * | dirty_cnt, | ||
UINT64 * | lru1_cnt, | ||
UINT64 * | lru2_cnt, | ||
UINT64 * | lru3_cnt, | ||
UINT64 * | victim_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 * | flushed_bcbs_waiting_direct_assign, | ||
UINT64 * | lfcq_big_prv_num, | ||
UINT64 * | lfcq_prv_num, | ||
UINT64 * | lfcq_shr_num | ||
) |
Definition at line 13542 of file page_buffer.c.
References pgbuf_buffer_pool::big_private_lrus_with_victims, pgbuf_buffer_pool::buf_LRU_list, pgbuf_lru_list::count_vict_cand, pgbuf_bcb::fcnt, pgbuf_bcb::flags, i, NULL, pgbuf_buffer_pool::num_buffers, PGBUF_BCB_DIRTY_FLAG, PGBUF_BCB_FLUSHING_TO_DISK_FLAG, pgbuf_bcb_should_avoid_deallocation(), PGBUF_FIND_BCB_PTR, PGBUF_GET_ZONE, PGBUF_IS_PRIVATE_LRU_INDEX, PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, PGBUF_LRU_3_ZONE, PGBUF_LRU_INDEX_MASK, PGBUF_LRU_ZONE_MASK, PGBUF_TOTAL_LRU_COUNT, pgbuf_buffer_pool::private_lrus_with_victims, pgbuf_page_quota::private_pages_ratio, pgbuf_buffer_pool::quota, pgbuf_buffer_pool::shared_lrus_with_victims, and lockfree::circular_queue< T >::size().
Referenced by perfmon_server_calc_stats().
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 at line 2198 of file page_buffer.c.
References ARG_FILE_LINE, assert, assert_release, pgbuf_holder::bufptr, CAST_PGPTR_TO_BFPTR, ER_FAILED, ER_NOTIFICATION_SEVERITY, ER_PAGE_LATCH_PROMOTE_FAIL, er_set(), pgbuf_bcb::fcnt, pgbuf_holder::fix_count, pgbuf_holder_stat::hold_has_read_latch, pgbuf_holder_stat::hold_has_write_latch, pgbuf_bcb::latch_mode, NO_ERROR, NULL, vpid::pageid, PERF_HOLDER_LATCH_READ, PERF_HOLDER_LATCH_WRITE, PERF_PAGE_UNKNOWN, PERF_PROMOTE_ONLY_READER, PERF_PROMOTE_SHARED_READER, pgbuf_holder::perf_stat, perfmon_is_perf_tracking(), pgbuf_add_fixed_at(), pgbuf_allocate_thrd_holder_entry(), PGBUF_BCB_LOCK, PGBUF_BCB_UNLOCK, pgbuf_block_bcb(), PGBUF_DEBUG_PAGE_VALIDATION_FREE, pgbuf_find_thrd_holder(), pgbuf_get_check_page_validation_level(), pgbuf_get_page_type_for_stat(), pgbuf_is_valid_page_ptr(), PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_PROMOTE_ONLY_READER, PGBUF_PROMOTE_SHARED_READER, pgbuf_remove_thrd_holder(), rv, tsc_elapsed_time_usec(), tsc_getticks(), vpid::volid, pgbuf_bcb::vpid, and VPID_ISNULL.
|
static |
Definition at line 8136 of file page_buffer.c.
References pgbuf_page_quota::add_shared_lru_idx, ARG_FILE_LINE, assert, pgbuf_page_quota::avoid_shared_lru_idx, pgbuf_buffer_pool::buf_invalid_list, pgbuf_bcb::flags, i, pgbuf_invalid_list::invalid_cnt, pgbuf_invalid_list::invalid_top, pgbuf_bcb::latch_mode, pgbuf_bcb::next_BCB, NO_ERROR, pgbuf_buffer_pool::num_buffers, PAGE_ADD_REFRESH_STAT, pgbuf_bcb_change_zone(), pgbuf_bcb_check_and_reset_fix_and_avoid_dealloc(), PGBUF_BCB_FLAGS_MASK, PGBUF_BCB_UNLOCK, PGBUF_GET_LRU_LIST, pgbuf_get_shared_lru_index_for_add(), PGBUF_INVALID_ZONE, PGBUF_LATCH_INVALID, PGBUF_LRU_LIST_COUNT, PGBUF_SHARED_LRU_COUNT, pthread_mutex_lock, pthread_mutex_unlock, pgbuf_buffer_pool::quota, rv, STATIC_INLINE, pgbuf_bcb::vpid, and VPID_SET_NULL.
Referenced by pgbuf_claim_bcb_for_fix(), pgbuf_delete_from_hash_chain(), pgbuf_fix_debug(), and pgbuf_invalidate_bcb().
int pgbuf_release_private_lru | ( | THREAD_ENTRY * | thread_p, |
const int | private_idx | ||
) |
Definition at line 13406 of file page_buffer.c.
References pgbuf_page_monitor::lru_activity, pgbuf_buffer_pool::monitor, NO_ERROR, pgbuf_buffer_pool::num_buffers, pgbuf_adjust_quotas(), PGBUF_LRU_INDEX_FROM_PRIVATE, PGBUF_PAGE_QUOTA_IS_ENABLED, PGBUF_PRIVATE_LRU_COUNT, pgbuf_page_quota::private_lru_session_cnt, and pgbuf_buffer_pool::quota.
Referenced by session_state_uninit().
STATIC_INLINE void pgbuf_remove_from_lru_list | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr, | ||
PGBUF_LRU_LIST * | lru_list | ||
) |
Definition at line 9530 of file page_buffer.c.
References assert, pgbuf_lru_list::bottom, pgbuf_lru_list::bottom_1, pgbuf_lru_list::bottom_2, pgbuf_lru_list::count_lru2, pgbuf_bcb::next_BCB, NULL, pgbuf_bcb_change_zone(), pgbuf_bcb_get_zone(), PGBUF_LRU_2_ZONE, pgbuf_lru_advance_victim_hint(), PGBUF_VOID_ZONE, pgbuf_bcb::prev_BCB, and pgbuf_lru_list::top.
Referenced by pgbuf_get_victim_from_lru_list(), pgbuf_lru_boost_bcb(), pgbuf_lru_fall_bcb_to_zone_3(), pgbuf_lru_remove_bcb(), and pgbuf_move_bcb_to_bottom_lru().
|
static |
Definition at line 9809 of file page_buffer.c.
References pgbuf_aout_list::Aout_bottom, pgbuf_aout_list::aout_buf_ht, pgbuf_aout_list::Aout_free, AOUT_HASH_IDX, pgbuf_aout_list::Aout_top, pgbuf_buffer_pool::buf_AOUT_list, pgbuf_aout_buf::lru_idx, pgbuf_aout_list::max_count, mht_rem(), pgbuf_aout_buf::next, NULL, PGBUF_AOUT_NOT_FOUND, pgbuf_aout_buf::prev, pthread_mutex_lock, pthread_mutex_unlock, STATIC_INLINE, pgbuf_aout_buf::vpid, and VPID_SET_NULL.
STATIC_INLINE int pgbuf_remove_thrd_holder | ( | THREAD_ENTRY * | thread_p, |
PGBUF_HOLDER * | holder | ||
) |
Definition at line 5545 of file page_buffer.c.
References assert, ER_FAILED, err, pgbuf_holder::fix_count, pgbuf_holder::next_holder, NO_ERROR, NULL, pgbuf_holder_anchor::num_free_cnt, pgbuf_holder_anchor::num_hold_cnt, pgbuf_holder_anchor::thrd_free_list, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, thread_get_entry_index(), and pgbuf_holder::watch_count.
Referenced by pgbuf_latch_bcb_upon_fix(), pgbuf_promote_read_latch_debug(), and pgbuf_unlatch_thrd_holder().
|
static |
Definition at line 9723 of file page_buffer.c.
References pgbuf_aout_list::Aout_bottom, pgbuf_aout_list::aout_buf_ht, pgbuf_aout_list::Aout_free, AOUT_HASH_IDX, pgbuf_aout_list::Aout_top, pgbuf_buffer_pool::buf_AOUT_list, pgbuf_aout_buf::lru_idx, pgbuf_aout_list::max_count, mht_get(), mht_rem(), pgbuf_aout_buf::next, NULL, PGBUF_AOUT_NOT_FOUND, pgbuf_aout_buf::prev, pthread_mutex_lock, pthread_mutex_unlock, rv, pgbuf_aout_buf::vpid, and VPID_SET_NULL.
Referenced by pgbuf_unlatch_void_zone_bcb().
|
static |
Definition at line 12506 of file page_buffer.c.
References assert, pgbuf_watcher::curr_rank, pgbuf_holder::first_watcher, pgbuf_holder::last_watcher, pgbuf_watcher::magic, pgbuf_watcher::next, NULL, PGBUF_ORDERED_RANK_UNDEFINED, PGBUF_WATCHER_MAGIC_NUMBER, pgbuf_watcher::pgptr, pgbuf_watcher::prev, and pgbuf_holder::watch_count.
Referenced by pgbuf_ordered_unfix_debug(), and pgbuf_replace_watcher_debug().
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 | ||
) |
Definition at line 12554 of file page_buffer.c.
References assert, assert_release, pgbuf_watcher::curr_rank, pgbuf_watcher::group_id, pgbuf_watcher::initial_rank, pgbuf_watcher::latch_mode, pgbuf_watcher::magic, NULL, pgbuf_add_watch_instance_internal(), pgbuf_get_holder(), PGBUF_IS_CLEAN_WATCHER, pgbuf_remove_watcher(), pgbuf_watcher_init_debug(), PGBUF_WATCHER_MAGIC_NUMBER, pgbuf_watcher::pgptr, and VPID_COPY.
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().
int pgbuf_rv_dealloc_redo | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 14040 of file page_buffer.c.
References DONT_FREE, NO_ERROR, PAGE_UNKNOWN, pgbuf_set_dirty(), pgbuf_set_page_ptype(), pgbuf_set_tde_algorithm(), log_rcv::pgptr, and TDE_ALGORITHM_NONE.
int pgbuf_rv_dealloc_undo | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 14059 of file page_buffer.c.
References ARG_FILE_LINE, assert, assert_release, CAST_PGPTR_TO_IOPGPTR, log_rcv::data, ER_FAILED, er_log_debug, FILEIO_PAGE_FLAG_ENCRYPTED_MASK, log_rcv::length, log_append_compensate_with_undo_nxlsa(), LOG_FIND_CURRENT_TDES(), NO_ERROR, NULL, OLD_PAGE_DEALLOCATED, PAGE_LAST, PAGE_UNKNOWN, pgbuf_dealloc_undo_data::pageid, vpid::pageid, fileio_page_reserved::pflag, pgbuf_dealloc_undo_data::pflag, pgbuf_fix, pgbuf_get_page_ptype(), pgbuf_get_tde_algorithm(), PGBUF_LATCH_WRITE, pgbuf_set_dirty_and_free, pgbuf_set_page_ptype(), PGBUF_UNCONDITIONAL_LATCH, fileio_page::prv, pgbuf_dealloc_undo_data::ptype, log_rcv::reference_lsa, RVPGBUF_COMPENSATE_DEALLOC, tde_get_algorithm_name(), pgbuf_dealloc_undo_data::volid, vpid::volid, and VPID_AS_ARGS.
int pgbuf_rv_dealloc_undo_compensate | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 14110 of file page_buffer.c.
References ARG_FILE_LINE, assert, CAST_PGPTR_TO_IOPGPTR, log_rcv::data, er_log_debug, FILEIO_PAGE_FLAG_ENCRYPTED_MASK, log_rcv::length, NO_ERROR, NULL, PAGE_LAST, PAGE_UNKNOWN, fileio_page_reserved::pflag, pgbuf_dealloc_undo_data::pflag, pgbuf_get_tde_algorithm(), pgbuf_set_page_ptype(), log_rcv::pgptr, fileio_page::prv, pgbuf_dealloc_undo_data::ptype, tde_get_algorithm_name(), and VPID_AS_ARGS.
int pgbuf_rv_flush_page | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 13690 of file page_buffer.c.
References assert, log_rcv::data, DONT_FREE, er_clear(), log_rcv::length, log_append_empty_record(), LOG_DATA_ADDR_INITIALIZER, LOG_DUMMY_GENERIC, NO_ERROR, NULL, OLD_PAGE_MAYBE_DEALLOCATED, pgbuf_fix, pgbuf_flush(), PGBUF_LATCH_WRITE, pgbuf_set_dirty(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix, log_rcv::pgptr, VPID_COPY, and VPID_INITIALIZER.
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 | ||
) |
Definition at line 13927 of file page_buffer.c.
References assert, log_rcv::data, DB_PAGESIZE, DONT_FREE, if(), log_rcv::length, NO_ERROR, NULL, log_rcv::offset, PAGE_UNKNOWN, pgbuf_set_dirty(), pgbuf_set_page_ptype(), and log_rcv::pgptr.
int pgbuf_rv_new_page_undo | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 13961 of file page_buffer.c.
References DONT_FREE, NO_ERROR, PAGE_UNKNOWN, pgbuf_set_dirty(), pgbuf_set_page_ptype(), and log_rcv::pgptr.
int pgbuf_rv_set_tde_algorithm | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 4528 of file page_buffer.c.
References assert, log_rcv::data, log_rcv::length, NO_ERROR, NULL, pgbuf_set_tde_algorithm(), and log_rcv::pgptr.
|
static |
Definition at line 16112 of file page_buffer.c.
References assert, pgbuf_status_snapshot::clean_pages, pgbuf_status_snapshot::dirty_pages, pgbuf_bcb::flags, pgbuf_status_snapshot::free_pages, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_buffer_pool::num_buffers, pgbuf_status_snapshot::num_data_pages, pgbuf_status_snapshot::num_index_pages, pgbuf_status_snapshot::num_system_pages, pgbuf_status_snapshot::num_temp_pages, PAGE_AREA, PAGE_BTREE, PAGE_CATALOG, PAGE_DROPPED_FILES, PAGE_EHASH, PAGE_FTAB, PAGE_HEAP, PAGE_OVERFLOW, PAGE_QRESULT, PAGE_UNKNOWN, PAGE_VACUUM_DATA, PAGE_VOLBITMAP, PAGE_VOLHEADER, PGBUF_BCB_DIRTY_FLAG, PGBUF_FIND_BCB_PTR, PGBUF_GET_ZONE, PGBUF_INVALID_ZONE, pgbuf_is_temporary_volume(), PGBUF_LRU_3_ZONE, fileio_page::prv, fileio_page_reserved::ptype, pgbuf_buffer_pool::show_status_snapshot, pgbuf_status_snapshot::victim_candidate_pages, vpid::volid, and pgbuf_bcb::vpid.
Referenced by pgbuf_start_scan().
STATIC_INLINE PGBUF_BCB * pgbuf_search_hash_chain | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BUFFER_HASH * | hash_anchor, | ||
const VPID * | vpid | ||
) |
Definition at line 6898 of file page_buffer.c.
References ARG_FILE_LINE, ER_CSS_PTHREAD_MUTEX_TRYLOCK, ER_FATAL_ERROR_SEVERITY, er_set_with_oserror(), pgbuf_bcb::hash_next, pgbuf_buffer_hash::hash_next, NULL, PERFMON_ACTIVATION_FLAG_PB_HASH_ANCHOR, perfmon_add_stat(), perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), PGBUF_BCB_LOCK, PGBUF_BCB_TRYLOCK, PGBUF_BCB_UNLOCK, PSTAT_PB_NUM_HASH_ANCHOR_WAITS, PSTAT_PB_TIME_HASH_ANCHOR_WAIT, pthread_mutex_lock, pthread_mutex_unlock, rv, STATIC_INLINE, tsc_elapsed_utime(), tsc_getticks(), pgbuf_bcb::vpid, and VPID_EQ.
Referenced by pgbuf_copy_from_area(), pgbuf_copy_to_area(), pgbuf_fix_debug(), pgbuf_flush_page_and_neighbors_fb(), and pgbuf_ordered_fix_debug().
STATIC_INLINE void pgbuf_set_bcb_page_vpid | ( | PGBUF_BCB * | bufptr, |
bool | force_set_vpid | ||
) |
Definition at line 4810 of file page_buffer.c.
References assert, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, NULL, NULL_VOLID, fileio_page_reserved::p_reserve_1, fileio_page_reserved::p_reserve_2, fileio_page_reserved::pageid, vpid::pageid, fileio_page::prv, fileio_page_reserved::ptype, fileio_page_reserved::tde_nonce, fileio_page_reserved::volid, vpid::volid, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by pgbuf_fix_debug(), and pgbuf_set_page_ptype().
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().
STATIC_INLINE void pgbuf_set_dirty_buffer_ptr | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr | ||
) |
Definition at line 10819 of file page_buffer.c.
References assert, pgbuf_holder_stat::dirtied_by_holder, pgbuf_bcb::latch_mode, NULL, pgbuf_holder::perf_stat, perfmon_inc_stat(), pgbuf_bcb_set_dirty(), pgbuf_find_thrd_holder(), PGBUF_LATCH_WRITE, and PSTAT_PB_NUM_DIRTIES.
Referenced by pgbuf_claim_bcb_for_fix(), pgbuf_set_dirty(), pgbuf_set_lsa(), and pgbuf_set_lsa_as_temporary().
Definition at line 4364 of file page_buffer.c.
References ARG_FILE_LINE, assert, CAST_PGPTR_TO_BFPTR, log_global::chkpt_redo_lsa, ER_ERROR_SEVERITY, ER_LOG_CHECKPOINT_SKIP_INVALID_PAGE, er_set(), er_stack_pop(), er_stack_push(), fileio_get_volume_label(), fileio_set_page_lsa(), IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, log_Gl, logtb_is_current_active(), fileio_page_reserved::lsa, LSA_COPY(), LSA_ISNULL(), LSA_LT(), NULL, log_lsa::offset, pgbuf_bcb::oldest_unflush_lsa, log_lsa::pageid, vpid::pageid, PEEK, PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_init_temp_page_lsa(), PGBUF_IS_AUXILIARY_VOLUME, pgbuf_is_temp_lsa(), pgbuf_is_temporary_volume(), pgbuf_is_valid_page_ptr(), pgbuf_set_dirty_buffer_ptr(), fileio_page::prv, pthread_mutex_lock, pthread_mutex_unlock, rc, vpid::volid, and pgbuf_bcb::vpid.
Referenced by btree_reflect_global_unique_statistics(), log_append_compensate_internal(), log_append_redo_crumbs(), log_append_run_postpone(), log_append_undo_crumbs(), log_append_undoredo_crumbs(), log_rv_redo_record(), log_skip_logging(), log_skip_logging_set_lsa(), and pgbuf_unfix_debug().
void pgbuf_set_lsa_as_temporary | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 4790 of file page_buffer.c.
References assert, CAST_PGPTR_TO_BFPTR, IO_PAGESIZE, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_init_temp_page_lsa(), pgbuf_set_dirty_buffer_ptr(), STATIC_INLINE, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by disk_format(), and disk_stab_init().
void pgbuf_set_page_ptype | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PAGE_TYPE | ptype | ||
) |
Definition at line 4847 of file page_buffer.c.
References assert, assert_release, CAST_PGPTR_TO_BFPTR, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, NULL, pgbuf_check_bcb_page_vpid(), PGBUF_DEBUG_PAGE_VALIDATION_ALL, pgbuf_get_check_page_validation_level(), pgbuf_is_valid_page_ptr(), pgbuf_set_bcb_page_vpid(), fileio_page::prv, fileio_page_reserved::ptype, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by btree_initialize_new_page(), btree_rv_newpage_redo_init(), btree_rv_undoredo_copy_page(), catalog_initialize_new_page(), catalog_rv_new_page_redo(), disk_format(), disk_rv_redo_format(), disk_rv_redo_init_map(), disk_stab_init(), ehash_initialize_bucket_new_page(), ehash_initialize_dir_new_page(), ehash_rv_init_bucket_redo(), ehash_rv_init_dir_new_page_redo(), ehash_rv_init_dir_redo(), file_create(), file_init_page_type_internal(), file_numerable_add_page(), file_perm_dealloc(), file_table_append_full_sector_page(), file_temp_alloc(), file_tracker_init_page(), heap_create_internal(), heap_reinitialize_page(), heap_rv_redo_newpage(), heap_rv_redo_reuse_page_reuse_oid(), heap_vpid_init_new(), overflow_rv_page_update_redo(), pgbuf_copy_from_area(), pgbuf_rv_dealloc_redo(), pgbuf_rv_dealloc_undo(), pgbuf_rv_dealloc_undo_compensate(), pgbuf_rv_new_page_redo(), pgbuf_rv_new_page_undo(), qmgr_init_external_file_page(), vacuum_add_dropped_file(), vacuum_create_file_for_dropped_files(), and vacuum_data_initialize_new_page().
void pgbuf_set_tde_algorithm | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
TDE_ALGORITHM | tde_algo, | ||
bool | skip_logging | ||
) |
Definition at line 4473 of file page_buffer.c.
References ARG_FILE_LINE, assert, CAST_PGPTR_TO_IOPGPTR, DONT_FREE, er_log_debug, FILEIO_PAGE_FLAG_ENCRYPTED_AES, FILEIO_PAGE_FLAG_ENCRYPTED_ARIA, FILEIO_PAGE_FLAG_ENCRYPTED_MASK, tde_cipher::is_loaded, log_append_undoredo_data2(), NULL, fileio_page_reserved::pageid, fileio_page_reserved::pflag, pgbuf_get_tde_algorithm(), pgbuf_set_dirty(), fileio_page::prv, RVPGBUF_SET_TDE_ALGORITHM, TDE_ALGORITHM_AES, TDE_ALGORITHM_ARIA, TDE_ALGORITHM_NONE, tde_Cipher, tde_get_algorithm_name(), and fileio_page_reserved::volid.
Referenced by file_alloc(), file_file_map_set_tde_algorithm(), pgbuf_copy_from_area(), pgbuf_rv_dealloc_redo(), and pgbuf_rv_set_tde_algorithm().
STATIC_INLINE bool pgbuf_should_move_private_to_shared | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bcb, | ||
int | thread_private_lru_index | ||
) |
Definition at line 6365 of file page_buffer.c.
References pgbuf_bcb_get_lru_index(), pgbuf_bcb_is_hot(), PGBUF_GET_LRU_LIST, PGBUF_IS_BCB_OLD_ENOUGH, and PGBUF_IS_SHARED_LRU_INDEX.
Referenced by pgbuf_unlatch_bcb_upon_unfix().
int pgbuf_start_scan | ( | THREAD_ENTRY * | thread_p, |
int | type, | ||
DB_VALUE ** | arg_values, | ||
int | arg_cnt, | ||
void ** | ptr | ||
) |
Definition at line 16200 of file page_buffer.c.
References assert, pgbuf_status_snapshot::clean_pages, db_make_bigint(), db_make_double(), db_make_int(), DB_TYPE_NUMERIC, db_value_domain_init(), pgbuf_status_snapshot::dirty_pages, er_errid(), error(), pgbuf_status_snapshot::free_pages, i, MAX_NTRANS, NO_ERROR, NULL, pgbuf_buffer_pool::num_buffers, pgbuf_status_snapshot::num_data_pages, pgbuf_status::num_flusher_waiting_threads, pgbuf_status::num_hit, pgbuf_status_old::num_hit, pgbuf_status_snapshot::num_index_pages, pgbuf_status::num_page_request, pgbuf_status_old::num_page_request, pgbuf_status::num_pages_created, pgbuf_status_old::num_pages_created, pgbuf_status::num_pages_read, pgbuf_status_old::num_pages_read, pgbuf_status::num_pages_written, pgbuf_status_old::num_pages_written, pgbuf_status_snapshot::num_system_pages, pgbuf_status_snapshot::num_temp_pages, numeric_db_value_coerce_to_num(), PGBUF_IOPAGE_BUFFER_SIZE, pgbuf_scan_bcb_table(), pgbuf_status_old::print_out_time, pthread_mutex_lock, pthread_mutex_unlock, pgbuf_buffer_pool::show_status, pgbuf_buffer_pool::show_status_old, pgbuf_buffer_pool::show_status_snapshot, showstmt_alloc_array_context(), showstmt_alloc_tuple_in_context(), showstmt_free_array_context(), and pgbuf_status_snapshot::victim_candidate_pages.
Referenced by showstmt_scan_init().
void pgbuf_unfix_all | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 2656 of file page_buffer.c.
References ARG_FILE_LINE, assert, pgbuf_holder::bufptr, CAST_BFPTR_TO_PGPTR, CAST_PGPTR_TO_BFPTR, DB_PAGESIZE, er_log_debug, pgbuf_bcb::fcnt, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_bcb::latch_mode, fileio_page_reserved::lsa, LSA_AS_ARGS, NULL, pgbuf_holder_anchor::num_hold_cnt, fileio_page::page, vpid::pageid, pgbuf_bcb_get_pool_index(), pgbuf_bcb_get_zone(), pgbuf_bcb_is_async_flush_request(), pgbuf_bcb_is_dirty(), pgbuf_bcb_is_flushing(), pgbuf_consistent_str(), pgbuf_latch_mode_str(), pgbuf_unfix_and_init, pgbuf_zone_str(), fileio_page::prv, pgbuf_holder_anchor::thrd_hold_list, pgbuf_buffer_pool::thrd_holder_info, pgbuf_holder::thrd_link, thread_get_entry_index(), vpid::volid, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by lock_unlock_all(), net_server_request(), vacuum_finalize(), and vacuum_process_log_block().
void pgbuf_unfix_debug | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
const char * | caller_file, | ||
int | caller_line | ||
) |
Definition at line 2444 of file page_buffer.c.
References ARG_FILE_LINE, assert, CAST_PGPTR_TO_BFPTR, pgbuf_holder_stat::dirtied_by_holder, pgbuf_holder_stat::dirty_before_hold, er_log_debug, pgbuf_bcb::fcnt, fileio_get_volume_label(), pgbuf_holder_stat::hold_has_read_latch, pgbuf_holder_stat::hold_has_write_latch, INIT_HOLDER_STAT, pgbuf_iopage_buffer::iopage, pgbuf_bcb::iopage_buffer, pgbuf_holder::last_watcher, log_get_restart_lsa(), log_is_logged_since_restart(), fileio_page_reserved::lsa, LSA_COPY(), pgbuf_watcher::magic, NULL, pgbuf_bcb::oldest_unflush_lsa, vpid::pageid, PEEK, PERF_HOLDER_LATCH_MIXED, PERF_HOLDER_LATCH_READ, PERF_HOLDER_LATCH_WRITE, PERF_PAGE_UNKNOWN, perfmon_is_perf_tracking(), PGBUF_BCB_CHECK_MUTEX_LEAKS, pgbuf_bcb_is_dirty(), PGBUF_BCB_LOCK, pgbuf_bcb_safe_flush_force_unlock(), PGBUF_BCB_UNLOCK, PGBUF_CONTENT_BAD, PGBUF_DEBUG_PAGE_VALIDATION_ALL, PGBUF_DEBUG_PAGE_VALIDATION_FREE, PGBUF_FIND_BUFFER_GUARD, pgbuf_get_check_page_validation_level(), pgbuf_get_holder(), pgbuf_get_page_type_for_stat(), pgbuf_invalidate_bcb(), PGBUF_IS_AUXILIARY_VOLUME, pgbuf_is_temp_lsa(), pgbuf_is_valid_page_ptr(), pgbuf_set_lsa(), pgbuf_unlatch_bcb_upon_unfix(), pgbuf_unlatch_thrd_holder(), PGBUF_WATCHER_MAGIC_NUMBER, pgbuf_watcher::prev, fileio_page::prv, vpid::volid, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by pgbuf_ordered_unfix_debug().
STATIC_INLINE int pgbuf_unlatch_bcb_upon_unfix | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr, | ||
int | holder_status | ||
) |
Definition at line 6045 of file page_buffer.c.
References ARG_FILE_LINE, assert, CAST_BFPTR_TO_PGPTR, er_clear(), ER_ERROR_SEVERITY, ER_FAILED, ER_PB_UNFIXED_PAGEPTR, er_set(), pgbuf_bcb::fcnt, fileio_get_volume_label(), pgbuf_bcb::latch_mode, LSA_ISNULL(), pgbuf_buffer_pool::monitor, NO_ERROR, pgbuf_bcb::oldest_unflush_lsa, vpid::pageid, PEEK, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), pgbuf_page_monitor::pg_unfix_cnt, pgbuf_assign_direct_victim(), pgbuf_bcb_avoid_victim(), pgbuf_bcb_get_lru_index(), pgbuf_bcb_get_zone(), pgbuf_bcb_is_async_flush_request(), pgbuf_bcb_is_dirty(), pgbuf_bcb_register_hit_for_lru(), pgbuf_bcb_safe_flush_force_unlock(), pgbuf_bcb_should_be_moved_to_bottom_lru(), PGBUF_BCB_UNLOCK, pgbuf_check_bcb_page_vpid(), PGBUF_IS_BCB_OLD_ENOUGH, pgbuf_is_exist_blocked_reader_writer(), PGBUF_IS_PRIVATE_LRU_INDEX, PGBUF_LATCH_FLUSH, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, PGBUF_LRU_3_ZONE, pgbuf_lru_boost_bcb(), PGBUF_LRU_INDEX_FROM_PRIVATE, pgbuf_lru_list_from_bcb(), pgbuf_lru_move_from_private_to_shared(), pgbuf_move_bcb_to_bottom_lru(), PGBUF_NO_LATCH, PGBUF_PRIVATE_LRU_FROM_THREAD, pgbuf_should_move_private_to_shared(), PGBUF_THREAD_HAS_PRIVATE_LRU, PGBUF_THREAD_SHOULD_IGNORE_UNFIX, pgbuf_unlatch_void_zone_bcb(), PGBUF_VOID_ZONE, PSTAT_PB_UNFIX_LRU_ONE_KEEP_VAC, PSTAT_PB_UNFIX_LRU_ONE_PRV_KEEP, PSTAT_PB_UNFIX_LRU_ONE_PRV_TO_SHR_MID, PSTAT_PB_UNFIX_LRU_ONE_SHR_KEEP, PSTAT_PB_UNFIX_LRU_THREE_KEEP_VAC, PSTAT_PB_UNFIX_LRU_THREE_PRV_TO_SHR_MID, PSTAT_PB_UNFIX_LRU_TWO_KEEP_VAC, PSTAT_PB_UNFIX_LRU_TWO_PRV_KEEP, PSTAT_PB_UNFIX_LRU_TWO_PRV_TO_SHR_MID, PSTAT_PB_UNFIX_LRU_TWO_SHR_KEEP, PSTAT_PB_VICTIM_ASSIGN_DIRECT_VACUUM_LRU, vpid::volid, pgbuf_bcb::vpid, and VPID_ISNULL.
Referenced by pgbuf_dealloc_page(), pgbuf_invalidate_debug(), and pgbuf_unfix_debug().
STATIC_INLINE int pgbuf_unlatch_thrd_holder | ( | THREAD_ENTRY * | thread_p, |
PGBUF_BCB * | bufptr, | ||
PGBUF_HOLDER_STAT * | holder_perf_stat_p | ||
) |
Definition at line 5484 of file page_buffer.c.
References ARG_FILE_LINE, assert, CAST_BFPTR_TO_PGPTR, ER_ERROR_SEVERITY, ER_PB_UNFIXED_PAGEPTR, er_set(), err, fileio_get_volume_label(), pgbuf_holder::fix_count, NO_ERROR, NULL, vpid::pageid, PEEK, pgbuf_holder::perf_stat, pgbuf_find_thrd_holder(), pgbuf_remove_thrd_holder(), STATIC_INLINE, vpid::volid, and pgbuf_bcb::vpid.
Referenced by pgbuf_dealloc_page(), pgbuf_invalidate_debug(), and pgbuf_unfix_debug().
|
static |
Definition at line 6259 of file page_buffer.c.
References assert, pgbuf_buffer_pool::buf_AOUT_list, pgbuf_aout_list::max_count, PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION, perfmon_inc_stat(), perfmon_is_perf_tracking_and_active(), pgbuf_add_vpid_to_aout_list(), PGBUF_AOUT_NOT_FOUND, pgbuf_assign_direct_victim(), pgbuf_bcb_avoid_victim(), pgbuf_bcb_get_zone(), pgbuf_bcb_register_hit_for_lru(), pgbuf_get_shared_lru_index_for_add(), pgbuf_lru_add_new_bcb_to_middle(), pgbuf_lru_add_new_bcb_to_top(), pgbuf_remove_vpid_from_aout_list(), PGBUF_THREAD_SHOULD_IGNORE_UNFIX, PGBUF_VOID_ZONE, PSTAT_PB_UNFIX_VOID_AOUT_FOUND, PSTAT_PB_UNFIX_VOID_AOUT_FOUND_VAC, PSTAT_PB_UNFIX_VOID_AOUT_NOT_FOUND, PSTAT_PB_UNFIX_VOID_AOUT_NOT_FOUND_VAC, PSTAT_PB_UNFIX_VOID_TO_PRIVATE_MID, PSTAT_PB_UNFIX_VOID_TO_PRIVATE_TOP, PSTAT_PB_UNFIX_VOID_TO_PRIVATE_TOP_VAC, PSTAT_PB_UNFIX_VOID_TO_SHARED_MID, PSTAT_PB_VICTIM_ASSIGN_DIRECT_VACUUM_VOID, STATIC_INLINE, and pgbuf_bcb::vpid.
Referenced by pgbuf_unlatch_bcb_upon_unfix().
|
static |
Definition at line 7315 of file page_buffer.c.
References pgbuf_buffer_lock::lock_next, pgbuf_buffer_hash::lock_next, NO_ERROR, NULL, PERFMON_ACTIVATION_FLAG_PB_HASH_ANCHOR, perfmon_add_stat(), perfmon_get_activation_flag(), perfmon_inc_stat(), perfmon_is_perf_tracking(), perfmon_is_perf_tracking_and_active(), PSTAT_PB_NUM_HASH_ANCHOR_WAITS, PSTAT_PB_TIME_HASH_ANCHOR_WAIT, pthread_mutex_lock, pthread_mutex_unlock, rv, tsc_elapsed_utime(), tsc_getticks(), pgbuf_buffer_lock::vpid, and VPID_EQ.
Referenced by pgbuf_claim_bcb_for_fix(), and pgbuf_fix_debug().
|
static |
Definition at line 7845 of file page_buffer.c.
References assert, ER_FAILED, pgbuf_bcb::latch_mode, NO_ERROR, NULL, pgbuf_bcb_is_to_vacuum(), PGBUF_BCB_TO_VACUUM_FLAG, PGBUF_BCB_UNLOCK, pgbuf_bcb_update_flags(), pgbuf_delete_from_hash_chain(), pgbuf_is_bcb_victimizable(), PGBUF_NO_LATCH, and thread_get_thread_entry_info().
Referenced by pgbuf_allocate_bcb().
|
static |
Definition at line 10135 of file page_buffer.c.
References NULL, PGBUF_BCB_CHECK_OWN, PGBUF_LATCH_FLUSH, PSTAT_PB_WAKE_FLUSH_WAITER, and STATIC_INLINE.
Referenced by pgbuf_assign_direct_victim(), and pgbuf_bcb_flush_with_wal().
|
static |
Definition at line 10846 of file page_buffer.c.
References assert, pgbuf_flush_victim_candidates(), pgbuf_is_page_flush_daemon_available(), prm_get_float_value(), PRM_ID_PB_BUFFER_FLUSH_RATIO, and cubthread::daemon::wakeup().
Referenced by pgbuf_allocate_bcb(), and pgbuf_get_victim_from_lru_list().
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().
|
static |
Definition at line 13777 of file page_buffer.c.
References PGBUF_INVALID_ZONE, PGBUF_LRU_1_ZONE, PGBUF_LRU_2_ZONE, and PGBUF_LRU_3_ZONE.
Referenced by pgbuf_unfix_all().
|
static |
Definition at line 803 of file page_buffer.c.
Referenced by pgbuf_add_bufptr_to_batch(), and pgbuf_flush_page_and_neighbors_fb().
Definition at line 805 of file page_buffer.c.
|
static |
Definition at line 802 of file page_buffer.c.
|
static |
Definition at line 95 of file page_buffer.c.
Referenced by pgbuf_add_vpid_to_aout_list(), pgbuf_allocate_thrd_holder_entry(), pgbuf_check_bcb_page_vpid(), pgbuf_delete_from_hash_chain(), pgbuf_get_bcb_from_invalid_list(), pgbuf_insert_into_hash_chain(), pgbuf_is_hit_ratio_low(), pgbuf_promote_read_latch_debug(), pgbuf_put_bcb_into_invalid_list(), pgbuf_remove_vpid_from_aout_list(), pgbuf_search_hash_chain(), and pgbuf_unlock_page().
const VPID vpid_Null_vpid = { NULL_PAGEID, NULL_VOLID } |
Definition at line 74 of file page_buffer.c.
Referenced by vacuum_job_cursor::get_page_vpid().