193 ulint ignore_sec_unique);
225 mtr_t *mtr) MY_ATTRIBUTE((warn_unused_result));
273 bool update_ibuf_bitmap);
302#ifndef UNIV_HOTBACKUP
303#ifdef UNIV_IBUF_COUNT_DEBUG
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:51
Page identifier.
Definition: buf0types.h:207
Page size descriptor.
Definition: page0size.h:50
dberr_t
Definition: db0err.h:39
Data dictionary memory object creation.
constexpr uint32_t FSP_IBUF_TREE_ROOT_PAGE_NO
insert buffer B-tree root page in tablespace 0; The ibuf tree root page number in tablespace 0; its f...
Definition: fsp0types.h:168
constexpr uint32_t FSP_IBUF_HEADER_PAGE_NO
The following pages exist in the system tablespace (space 0).
Definition: fsp0types.h:164
static bool ibuf_bitmap_page(const page_id_t &page_id, const page_size_t &page_size)
Checks if a page address is an ibuf bitmap page (level 3 page) address.
bool ibuf_page(const page_id_t &page_id, const page_size_t &page_size, ut::Location location, mtr_t *mtr)
Checks if a page is a level 2 or 3 page in the ibuf hierarchy of pages.
Definition: ibuf0ibuf.h:234
ulint ibuf_merge_in_background(bool full)
Contract the change buffer by reading pages to the buffer pool.
Definition: ibuf0ibuf.cc:2398
constexpr uint32_t IBUF_TREE_SEG_HEADER
fseg header for ibuf tree
Definition: ibuf0ibuf.h:354
void ibuf_print(FILE *file)
Prints info of ibuf.
Definition: ibuf0ibuf.cc:4381
void ibuf_delete_for_discarded_space(space_id_t space)
Deletes all entries in the insert buffer for a given space id.
Definition: ibuf0ibuf.cc:4286
bool ibuf_rec_has_multi_value(const rec_t *rec)
Determine if there is any multi-value field data on the change buffer record.
Definition: ibuf0ibuf.cc:1215
bool ibuf_is_empty(void)
Looks if the insert buffer is empty.
Definition: ibuf0ibuf.cc:4362
void ibuf_init_at_db_start(void)
Creates the insert buffer data structure at a database startup.
Definition: ibuf0ibuf.cc:458
void ibuf_merge_or_delete_for_page(buf_block_t *block, const page_id_t &page_id, const page_size_t *page_size, bool update_ibuf_bitmap)
When an index page is read from a disk to the buffer pool, this function applies any buffered operati...
Definition: ibuf0ibuf.cc:3964
static bool ibuf_inside(const mtr_t *mtr)
Returns true if the current OS thread is performing an insert buffer routine.
constexpr uint32_t IBUF_HEADER
Definition: ibuf0ibuf.h:352
byte * ibuf_parse_bitmap_init(byte *ptr, byte *end_ptr, buf_block_t *block, mtr_t *mtr)
Parses a redo log record of an ibuf bitmap page init.
Definition: ibuf0ibuf.cc:566
void ibuf_update_free_bits_low(const buf_block_t *block, ulint max_ins_size, mtr_t *mtr)
Updates the free bits for an uncompressed page to reflect the present state.
Definition: ibuf0ibuf.cc:840
static void ibuf_mtr_commit(mtr_t *mtr)
Commits an insert buffer mini-transaction.
void ibuf_max_size_update(ulint new_val)
Updates the max_size value for ibuf.
Definition: ibuf0ibuf.cc:531
void ibuf_update_max_tablespace_id(void)
Reads the biggest tablespace id from the high end of the insert buffer tree and updates the counter i...
Definition: ibuf0ibuf.cc:2814
static void ibuf_mtr_start(mtr_t *mtr)
Starts an insert buffer mini-transaction.
dberr_t ibuf_check_bitmap_on_import(const trx_t *trx, space_id_t space_id)
Checks the insert buffer bitmaps on IMPORT TABLESPACE.
Definition: ibuf0ibuf.cc:4422
ulong innodb_change_buffering
Operations that can currently be buffered.
Definition: ibuf0ibuf.cc:204
void ibuf_set_bitmap_for_bulk_load(buf_block_t *block, bool reset)
Updates free bits and buffered bits for bulk loaded page.
Definition: ibuf0ibuf.cc:4540
bool ibuf_page_low(const page_id_t &page_id, const page_size_t &page_size, bool x_latch, ut::Location location, mtr_t *mtr)
Checks if a page is a level 2 or 3 page in the ibuf hierarchy of pages.
Definition: ibuf0ibuf.cc:955
static void ibuf_update_free_bits_if_full(buf_block_t *block, ulint max_ins_size, ulint increase)
Updates the free bits of an uncompressed page in the ibuf bitmap if there is not enough free on the p...
void ibuf_free_excess_pages(void)
Frees excess pages from the ibuf free list.
Definition: ibuf0ibuf.cc:1961
void ibuf_update_free_bits_for_two_pages_low(buf_block_t *block1, buf_block_t *block2, mtr_t *mtr)
Updates the free bits for the two pages to reflect the present state.
Definition: ibuf0ibuf.cc:907
void ibuf_bitmap_page_init(buf_block_t *block, mtr_t *mtr)
Initializes an ibuf bitmap page.
Definition: ibuf0ibuf.cc:543
ibuf_use_t
Combinations of operations that can be buffered.
Definition: ibuf0ibuf.h:63
@ IBUF_USE_ALL
Definition: ibuf0ibuf.h:69
@ IBUF_USE_INSERT_DELETE_MARK
Definition: ibuf0ibuf.h:67
@ IBUF_USE_NONE
Definition: ibuf0ibuf.h:64
@ IBUF_USE_DELETE
Definition: ibuf0ibuf.h:68
@ IBUF_USE_DELETE_MARK
Definition: ibuf0ibuf.h:66
@ IBUF_USE_INSERT
Definition: ibuf0ibuf.h:65
ulint ibuf_merge_space(space_id_t space)
Contracts insert buffer trees by reading pages referring to space_id to the buffer pool.
Definition: ibuf0ibuf.cc:2296
void ibuf_update_free_bits_zip(buf_block_t *block, mtr_t *mtr)
Updates the free bits for a compressed page to reflect the present state.
Definition: ibuf0ibuf.cc:874
constexpr uint32_t CHANGE_BUFFER_DEFAULT_SIZE
Default value for maximum on-disk size of change buffer in terms of percentage of the buffer pool.
Definition: ibuf0ibuf.h:47
ulint ibuf_rec_get_counter(const rec_t *rec)
in: ibuf record
Definition: ibuf0ibuf.cc:1196
bool ibuf_insert(ibuf_op_t op, const dtuple_t *entry, dict_index_t *index, const page_id_t &page_id, const page_size_t &page_size, que_thr_t *thr)
Buffer an operation in the insert/delete buffer, instead of doing it directly to the disk page,...
Definition: ibuf0ibuf.cc:3282
ibuf_t * ibuf
The insert buffer control structure.
Definition: ibuf0ibuf.cc:212
constexpr uint32_t IBUF_TREE_ROOT_PAGE_NO
Definition: ibuf0ibuf.h:346
constexpr uint32_t IBUF_HEADER_PAGE_NO
Definition: ibuf0ibuf.h:345
void ibuf_reset_free_bits(buf_block_t *block)
Resets the free bits of the page in the ibuf bitmap.
Definition: ibuf0ibuf.cc:825
ibuf_op_t
Definition: ibuf0ibuf.h:52
@ IBUF_OP_DELETE_MARK
Definition: ibuf0ibuf.h:54
@ IBUF_OP_COUNT
Definition: ibuf0ibuf.h:58
@ IBUF_OP_DELETE
Definition: ibuf0ibuf.h:55
@ IBUF_OP_INSERT
Definition: ibuf0ibuf.h:53
static bool ibuf_should_try(dict_index_t *index, ulint ignore_sec_unique)
A basic partial test if an insert to the insert buffer could be possible and recommended.
void ibuf_close(void)
Closes insert buffer and frees the data structures.
Definition: ibuf0ibuf.cc:421
Insert buffer global types.
std::string HARNESS_EXPORT reset()
get 'reset attributes' ESC sequence.
Definition: vt100.cc:37
const std::string FILE("FILE")
constexpr uint32_t PAGE_DATA
start of data on the page
Definition: page0types.h:105
byte rec_t
Definition: rem0types.h:41
Definition: completion_hash.h:35
The buffer control block structure.
Definition: buf0buf.h:1690
Data structure for an index.
Definition: dict0mem.h:1046
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:682
Insert buffer struct.
Definition: ibuf0ibuf.ic:62
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:177
Definition: que0que.h:242
Definition: trx0trx.h:684
Version control for database, common definitions, and include files.
#define IF_DEBUG(...)
Definition: univ.i:674
unsigned long int ulint
Definition: univ.i:406