diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-03-18 21:48:00 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-03-18 22:32:40 +0200 |
commit | a786f50de5ce17748d851cf4264399c277d61925 (patch) | |
tree | 8a107091cec37ee88a58ebbffb2bcd0fa4ceb241 /storage/innobase/lock/lock0lock.cc | |
parent | e0eacbee77fd56255d1073d7cb3e738b7de0285c (diff) | |
download | mariadb-git-a786f50de5ce17748d851cf4264399c277d61925.tar.gz |
MDEV-21962 Allocate buf_pool statically
Thanks to MDEV-15058, there is only one InnoDB buffer pool.
Allocating buf_pool statically removes one level of pointer indirection
and makes code more readable, and removes the awkward initialization of
some buf_pool members.
While doing this, we will also declare some buf_pool_t data members
private and replace some functions with member functions. This is
mostly affecting buffer pool resizing.
This is not aiming to be a complete rewrite of buf_pool_t to
a proper class. Most of the buffer pool interface, such as
buf_page_get_gen(), will remain in the C programming style
for now.
buf_pool_t::withdrawing: Replaces buf_pool_withdrawing.
buf_pool_t::withdraw_clock_: Replaces buf_withdraw_clock.
buf_pool_t::create(): Repalces buf_pool_init().
buf_pool_t::close(): Replaces buf_pool_free().
buf_bool_t::will_be_withdrawn(): Replaces buf_block_will_be_withdrawn(),
buf_frame_will_be_withdrawn().
buf_pool_t::clear_hash_index(): Replaces buf_pool_clear_hash_index().
buf_pool_t::get_n_pages(): Replaces buf_pool_get_n_pages().
buf_pool_t::validate(): Replaces buf_validate().
buf_pool_t::print(): Replaces buf_print().
buf_pool_t::block_from_ahi(): Replaces buf_block_from_ahi().
buf_pool_t::is_block_field(): Replaces buf_pointer_is_block_field().
buf_pool_t::is_block_mutex(): Replaces buf_pool_is_block_mutex().
buf_pool_t::is_block_lock(): Replaces buf_pool_is_block_lock().
buf_pool_t::is_obsolete(): Replaces buf_pool_is_obsolete().
buf_pool_t::io_buf: Make default-constructible.
buf_pool_t::io_buf::create(): Delayed 'constructor'
buf_pool_t::io_buf::close(): Early 'destructor'
HazardPointer: Make default-constructible. Define all member functions
inline, also for derived classes.
Diffstat (limited to 'storage/innobase/lock/lock0lock.cc')
-rw-r--r-- | storage/innobase/lock/lock0lock.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc index 17c9a89cd0b..401de967808 100644 --- a/storage/innobase/lock/lock0lock.cc +++ b/storage/innobase/lock/lock0lock.cc @@ -516,8 +516,8 @@ void lock_sys_t::resize(ulint n_cells) hash_table_free(old_hash); /* need to update block->lock_hash_val */ - mutex_enter(&buf_pool->mutex); - for (buf_page_t* bpage = UT_LIST_GET_FIRST(buf_pool->LRU); + mutex_enter(&buf_pool.mutex); + for (buf_page_t* bpage = UT_LIST_GET_FIRST(buf_pool.LRU); bpage; bpage = UT_LIST_GET_NEXT(LRU, bpage)) { if (buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE) { buf_block_t* block = reinterpret_cast<buf_block_t*>( @@ -527,7 +527,7 @@ void lock_sys_t::resize(ulint n_cells) bpage->id.space(), bpage->id.page_no()); } } - mutex_exit(&buf_pool->mutex); + mutex_exit(&buf_pool.mutex); mutex_exit(&mutex); } |