MySQL 8.0.31
Source Code Documentation
buf0flu.ic File Reference

The database buffer pool flush algorithm. More...

#include "buf0buf.h"
#include "fsp0types.h"
#include "mtr0mtr.h"
#include "srv0srv.h"

Functions

void buf_flush_insert_into_flush_list (buf_pool_t *buf_pool, buf_block_t *block, lsn_t lsn)
 Inserts a modified block into the flush list. More...
 
void buf_flush_insert_sorted_into_flush_list (buf_pool_t *buf_pool, buf_block_t *block, lsn_t lsn)
 Inserts a modified block into the flush list in the right sorted position. More...
 
static void buf_flush_note_modification (buf_block_t *block, lsn_t start_lsn, lsn_t end_lsn, Flush_observer *observer)
 This function should be called at a mini-transaction commit, if a page was modified in it. More...
 
static void buf_flush_recv_note_modification (buf_block_t *block, lsn_t start_lsn, lsn_t end_lsn)
 This function should be called when recovery has modified a buffer page. More...
 

Detailed Description

The database buffer pool flush algorithm.

Created 11/5/1995 Heikki Tuuri

Function Documentation

◆ buf_flush_insert_into_flush_list()

void buf_flush_insert_into_flush_list ( buf_pool_t buf_pool,
buf_block_t block,
lsn_t  lsn 
)

Inserts a modified block into the flush list.

in: oldest modification

Parameters
buf_poolbuffer pool instance
blockin/out: block which is modified
lsnin: oldest modification

◆ buf_flush_insert_sorted_into_flush_list()

void buf_flush_insert_sorted_into_flush_list ( buf_pool_t buf_pool,
buf_block_t block,
lsn_t  lsn 
)

Inserts a modified block into the flush list in the right sorted position.

This function is used by recovery, because there the modifications do not necessarily come in the order of lsn's. in: oldest modification

This function is used by recovery, because there the modifications do not necessarily come in the order of lsn's.

Parameters
buf_poolin: buffer pool instance
blockin/out: block which is modified
lsnin: oldest modification

◆ buf_flush_note_modification()

static void buf_flush_note_modification ( buf_block_t block,
lsn_t  start_lsn,
lsn_t  end_lsn,
Flush_observer observer 
)
inlinestatic

This function should be called at a mini-transaction commit, if a page was modified in it.

Puts the block to the list of modified blocks, if it is not already in it.

Parameters
blockin: block which is modified
start_lsnin: start lsn of the mtr that modified this block
end_lsnin: end lsn of the mtr that modified this block
observerin: flush observer

◆ buf_flush_recv_note_modification()

static void buf_flush_recv_note_modification ( buf_block_t block,
lsn_t  start_lsn,
lsn_t  end_lsn 
)
inlinestatic

This function should be called when recovery has modified a buffer page.

Parameters
blockin: block which is modified
start_lsnin: start lsn of the first mtr in a set of mtr's
end_lsnin: end lsn of the last mtr in the set of mtr's