1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-15 08:21:24 +03:00

branches/zip: Implement resizeable buffer pool.

mysql.patch: Patch to change or add variables to MySQL

innodb.patch: Patch to make the master thread poll requests to resize
the buffer pool.

Replace srv_pool_size and innobase_buffer_pool_size
with srv_buf_pool_size, srv_buf_pool_old_size,
and srv_buf_pool_curr_size.

Add buf_chunk_t, a collection of buf_block_t.
This commit is contained in:
marko
2006-11-14 14:27:26 +00:00
parent 8e8719dabe
commit 2018ce35b3
12 changed files with 573 additions and 200 deletions

View File

@@ -69,11 +69,16 @@ extern ulint srv_buf_pool_write_requests; /* variable to count write request
Creates the buffer pool. */
buf_pool_t*
buf_pool_init(
/*==========*/
buf_pool_init(void);
/*===============*/
/* out, own: buf_pool object, NULL if not
enough memory or error */
ulint curr_size); /* in: current size to use */
/************************************************************************
Resizes the buffer pool. */
void
buf_pool_resize(void);
/*=================*/
/*************************************************************************
Gets the current size of buffer buf_pool in bytes. */
UNIV_INLINE
@@ -833,11 +838,8 @@ struct buf_pool_struct{
mutex_t mutex; /* mutex protecting the buffer pool
struct and control blocks, except the
read-write lock in them */
byte* frame_mem; /* pointer to the memory area which
was allocated for the frames */
ulint frame_mem_size; /* allocated length of frame_mem
in bytes */
buf_block_t* blocks; /* array of buffer control blocks */
ulint n_chunks; /* number of buffer pool chunks */
buf_chunk_t* chunks; /* buffer pool chunks */
ulint curr_size; /* current pool size in pages */
hash_table_t* page_hash; /* hash table of the file pages */