1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-13 20:03:16 +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

@@ -1132,7 +1132,7 @@ innobase_start_or_create_for_mysql(void)
}
/* Note that the call srv_boot() also changes the values of
srv_pool_size etc. to the units used by InnoDB internally */
some variables to the units used by InnoDB internally */
/* Set the maximum number of threads which can wait for a semaphore
inside InnoDB: this is the 'sync wait array' size, as well as the
@@ -1147,15 +1147,12 @@ innobase_start_or_create_for_mysql(void)
NetWare. */
srv_max_n_threads = 1000;
#else
if (srv_pool_size >= 1000 * 1024) {
/* Here we still have srv_pool_size counted
in kilobytes (in 4.0 this was in bytes)
srv_boot() converts the value to
pages; if buffer pool is less than 1000 MB,
if (srv_buf_pool_size >= 1000 * 1024 * 1024) {
/* If buffer pool is less than 1000 MB,
assume fewer threads. */
srv_max_n_threads = 50000;
} else if (srv_pool_size >= 8 * 1024) {
} else if (srv_buf_pool_size >= 8 * 1024 * 1024) {
srv_max_n_threads = 10000;
} else {
@@ -1164,7 +1161,7 @@ innobase_start_or_create_for_mysql(void)
computers */
}
#endif
err = srv_boot(); /* This changes srv_pool_size to units of a page */
err = srv_boot();
if (err != DB_SUCCESS) {
@@ -1230,7 +1227,7 @@ innobase_start_or_create_for_mysql(void)
fil_init(srv_max_n_open_files);
ret = buf_pool_init(srv_pool_size);
ret = buf_pool_init();
if (ret == NULL) {
fprintf(stderr,