37class Monitoring_interface;
38class Sys_var_handler_interface;
124 const char *
path) = 0;
131 const char *
path) = 0;
139 const char *old_path,
140 const char *new_path) = 0;
225 iterate_over_dirty_pages) = 0;
290 std::vector<Tablespaces_nodes_interface::Tablespace_id>,
Status>
333 Lsn modification_lsn) = 0;
We use Flush_observer to track flushing of non-redo logged pages in bulk create index(btr0load....
Definition: buf0flu.h:283
Interface for repoting values of some INFORMATION_SCHEMA.INNODB_METRICS.
Definition: srv0monitoring_interface.h:30
Definition: ha0sys_var_handler_interface.h:36
Interface for handling operations related to page persistence.
Definition: fil0pages_persistence_interface.h:44
virtual Lsn get_checkpoint_lsn() const =0
Returns the checkpoint lsn.
virtual Status recover_tables()=0
Run recovery of tables (in particular: mysql.innodb_dynamic_metadata) based on information gathered d...
virtual void enable_periodical_checkpoints()=0
From now on, not only advancing the min needed lsn is permitted, but also encouraged.
virtual ib::Sys_var_handler_interface & config_handler()=0
Returns an object responsible for handling updates of dynamic sys-vars related to pages persistence,...
ib::redo::Lsn Lsn
Definition: fil0pages_persistence_interface.h:51
virtual void persist_tablespace(Tablespace_id space_id, const trx_t *trx)=0
Makes sure that for a specified tablespace all changes to pages are persisted.
virtual void persist_tablespaces(::Flush_observer *observer)=0
Makes sure that all changes to pages that are observed by a specified flush observer are persisted.
virtual void disable_checkpointing()=0
From now on, the implementation is no longer permitted to bump the min needed lsn.
virtual void enable_checkpointing()=0
From now on, the implementation is permitted to bump the min needed lsn value reported and persisted ...
virtual ut::Expected< std::vector< Tablespaces_nodes_interface::Tablespace_id >, Status > recover_pages(Lsn &clean_shutdown_lsn)=0
Run recovery of all tablespaces assuming they already contain all the changes at least up to the prov...
virtual Status init()=0
Allocate and construct helper data structures and start persisting changes to pages,...
Tablespace_node_handle_interface::Page_number Page_number
Type used for numbering the pages in the tablespace.
Definition: fil0pages_persistence_interface.h:47
virtual void mtr_has_dirtied_pages(Lsn start_lsn, Lsn end_lsn, ::Flush_observer *observer, ut::Function_reference< void(ut::Function_reference< void(buf_block_t *)>)> iterate_over_dirty_pages)=0
The caller informs that it is now committing an mtr which has dirtied some pages.
virtual void redo_rename_tablespace(Tablespace_id space_id, const char *old_path, const char *new_path)=0
Redo a rename operation for a tablespace.
virtual void page_is_to_be_evicted(Tablespace_id space_id, Page_number page_no, Lsn modification_lsn)=0
A callback that is called once the page is freed from the BufferPool.
virtual void redo_create_tablespace(Tablespaces_nodes_interface::Tablespace_id space_id, uint32_t flags, const char *path)=0
Redo a create tablespace storage operation for a tablespace.
Tablespaces_nodes_interface::Tablespace_id Tablespace_id
Type used for giving the tablespaces unique number.
Definition: fil0pages_persistence_interface.h:50
virtual void request_sharp_checkpoint()=0
The caller request the implementation to ensure that when it returns, it no longer needs the redo log...
virtual Status assume_checkpoint_lsn(Lsn min_needed_lsn)=0
The caller asks the implementation to assume that redo log below min_needed_lsn is not available and ...
virtual void deinit()=0
Deinitialize whatever was initialized in init().
virtual void page_became_dirty(buf_block_t *buf_block)=0
A callback that is called from buf_flush_note_oldest_modification() once for each page that became di...
virtual ~Pages_persistence_interface()=default
Status
Definition: fil0pages_persistence_interface.h:53
virtual ib::Monitoring_interface & get_monitoring()=0
Returns an object responsible for reporting values of monitors related to pages persistence,...
virtual void redo_delete_tablespace(Tablespace_id space_id, const char *path)=0
Redo a delete tablespace storage operation for a tablespace.
uint32_t Page_number
Type used for numbering the pages in the node.
Definition: fil0tablespace_node_handle_interface.h:42
uint32_t Tablespace_id
Type used for giving the tablespaces unique number.
Definition: fil0tablespaces_nodes_interface.h:40
C++23 std::expected.
Definition: ut0expected.h:74
Definition: ut0function_reference.h:29
ut::unique_ptr< ib::fil::Pages_persistence_interface > pages_persistence
The implementation of persistence for the pages stored in tablespaces' nodes' storage.
Definition: fil0fil.cc:1389
static int flags[50]
Definition: hp_test1.cc:40
static char * path
Definition: mysqldump.cc:151
Definition: fil0fil.cc:1392
void set_pages_persistence(ut::unique_ptr< Pages_persistence_interface > new_persistence)
Sets the implementation of the Pages_persistence_interface.
Definition: fil0fil.cc:1400
uint64_t Lsn
Definition: log0common.h:60
Definition: fil0fil.cc:1392
std::conditional_t< !std::is_array< T >::value, std::unique_ptr< T, detail::Deleter< T > >, std::conditional_t< detail::is_unbounded_array_v< T >, std::unique_ptr< T, detail::Array_deleter< std::remove_extent_t< T > > >, void > > unique_ptr
The following is a common type that is returned by all the ut::make_unique (non-aligned) specializati...
Definition: ut0new.h:2284
The buffer control block structure.
Definition: buf0buf.h:1756
Definition: trx0trx.h:670
Minimal implementation of C++23 std::expected.
Dynamic memory allocation routines and custom allocators specifically crafted to support memory instr...