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/srv/srv0mon.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/srv/srv0mon.cc')
-rw-r--r-- | storage/innobase/srv/srv0mon.cc | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/storage/innobase/srv/srv0mon.cc b/storage/innobase/srv/srv0mon.cc index f34680b9aed..017c5da0353 100644 --- a/storage/innobase/srv/srv0mon.cc +++ b/storage/innobase/srv/srv0mon.cc @@ -1631,7 +1631,7 @@ srv_mon_process_existing_counter( /* innodb_buffer_pool_read_requests, the number of logical read requests */ case MONITOR_OVLD_BUF_POOL_READ_REQUESTS: - value = buf_pool->stat.n_page_gets; + value = buf_pool.stat.n_page_gets; break; /* innodb_buffer_pool_write_requests, the number of @@ -1647,61 +1647,61 @@ srv_mon_process_existing_counter( /* innodb_buffer_pool_read_ahead */ case MONITOR_OVLD_BUF_POOL_READ_AHEAD: - value = buf_pool->stat.n_ra_pages_read; + value = buf_pool.stat.n_ra_pages_read; break; /* innodb_buffer_pool_read_ahead_evicted */ case MONITOR_OVLD_BUF_POOL_READ_AHEAD_EVICTED: - value = buf_pool->stat.n_ra_pages_evicted; + value = buf_pool.stat.n_ra_pages_evicted; break; /* innodb_buffer_pool_pages_total */ case MONITOR_OVLD_BUF_POOL_PAGE_TOTAL: - value = buf_pool_get_n_pages(); + value = buf_pool.get_n_pages(); break; /* innodb_buffer_pool_pages_misc */ case MONITOR_OVLD_BUF_POOL_PAGE_MISC: - value = buf_pool_get_n_pages() - - UT_LIST_GET_LEN(buf_pool->LRU) - - UT_LIST_GET_LEN(buf_pool->free); + value = buf_pool.get_n_pages() + - UT_LIST_GET_LEN(buf_pool.LRU) + - UT_LIST_GET_LEN(buf_pool.free); break; /* innodb_buffer_pool_pages_data */ case MONITOR_OVLD_BUF_POOL_PAGES_DATA: - value = UT_LIST_GET_LEN(buf_pool->LRU); + value = UT_LIST_GET_LEN(buf_pool.LRU); break; /* innodb_buffer_pool_bytes_data */ case MONITOR_OVLD_BUF_POOL_BYTES_DATA: - value = buf_pool->stat.LRU_bytes - + (UT_LIST_GET_LEN(buf_pool->unzip_LRU) + value = buf_pool.stat.LRU_bytes + + (UT_LIST_GET_LEN(buf_pool.unzip_LRU) << srv_page_size_shift); break; /* innodb_buffer_pool_pages_dirty */ case MONITOR_OVLD_BUF_POOL_PAGES_DIRTY: - value = UT_LIST_GET_LEN(buf_pool->flush_list); + value = UT_LIST_GET_LEN(buf_pool.flush_list); break; /* innodb_buffer_pool_bytes_dirty */ case MONITOR_OVLD_BUF_POOL_BYTES_DIRTY: - value = buf_pool->stat.flush_list_bytes; + value = buf_pool.stat.flush_list_bytes; break; /* innodb_buffer_pool_pages_free */ case MONITOR_OVLD_BUF_POOL_PAGES_FREE: - value = UT_LIST_GET_LEN(buf_pool->free); + value = UT_LIST_GET_LEN(buf_pool.free); break; /* innodb_pages_created, the number of pages created */ case MONITOR_OVLD_PAGE_CREATED: - value = buf_pool->stat.n_pages_created; + value = buf_pool.stat.n_pages_created; break; /* innodb_pages_written, the number of page written */ case MONITOR_OVLD_PAGES_WRITTEN: - value = buf_pool->stat.n_pages_written; + value = buf_pool.stat.n_pages_written; break; /* innodb_index_pages_written, the number of index pages written */ @@ -1716,7 +1716,7 @@ srv_mon_process_existing_counter( /* innodb_pages_read */ case MONITOR_OVLD_PAGES_READ: - value = buf_pool->stat.n_pages_read; + value = buf_pool.stat.n_pages_read; break; /* Number of times secondary index lookup triggered cluster lookup */ |