diff options
author | unknown <tsmith@maint1.mysql.com> | 2006-08-01 21:59:58 +0200 |
---|---|---|
committer | unknown <tsmith@maint1.mysql.com> | 2006-08-01 21:59:58 +0200 |
commit | 75e40b161b5cbbea28eca2641e6dfadaf09267a1 (patch) | |
tree | 195dc86dc4ffee1c3ceca3e742282a2bf9633a2b /innobase | |
parent | edeea349b9cf8125c3ca19eff144b1334fddad28 (diff) | |
download | mariadb-git-75e40b161b5cbbea28eca2641e6dfadaf09267a1.tar.gz |
Applied innodb-5.0-ss677 snapshot.
Fixes:
- bug #19834: Using cursors when running in READ-COMMITTED can cause InnoDB to crash
- bug #21112: InnoDB slow with > 100,000 .ibd files
- bug #21113: Duplicate printout in SHOW INNODB STATUS
innobase/fil/fil0fil.c:
Applied innodb-5.0-ss677 snapshot.
Make the tablespace cache hash size 100 or 1000 times bigger. Fixes bug #21112.
innobase/ibuf/ibuf0ibuf.c:
Applied innodb-5.0-ss677 snapshot.
ibuf_print(): Don't print redundant information. Fixes bug #21113.
sql/ha_innodb.cc:
Applied innodb-5.0-ss677 snapshot.
ha_innobase::start_stmt(): patch from Heikki:
Do not call read_view_close_for_mysql(). (Bug #19834)
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/fil/fil0fil.c | 15 | ||||
-rw-r--r-- | innobase/ibuf/ibuf0ibuf.c | 16 |
2 files changed, 11 insertions, 20 deletions
diff --git a/innobase/fil/fil0fil.c b/innobase/fil/fil0fil.c index cfd9813101d..2272f7cd8b3 100644 --- a/innobase/fil/fil0fil.c +++ b/innobase/fil/fil0fil.c @@ -251,9 +251,6 @@ struct fil_system_struct { initialized. */ fil_system_t* fil_system = NULL; -/* The tablespace memory cache hash table size */ -#define FIL_SYSTEM_HASH_SIZE 50 /* TODO: make bigger! */ - /************************************************************************ NOTE: you must call fil_mutex_enter_and_prepare_for_io() first! @@ -1324,11 +1321,17 @@ fil_init( /*=====*/ ulint max_n_open) /* in: max number of open files */ { + ulint hash_size; + ut_a(fil_system == NULL); - /*printf("Initializing the tablespace cache with max %lu open files\n", - max_n_open); */ - fil_system = fil_system_create(FIL_SYSTEM_HASH_SIZE, max_n_open); + if (srv_file_per_table) { + hash_size = 50000; + } else { + hash_size = 5000; + } + + fil_system = fil_system_create(hash_size, max_n_open); } /*********************************************************************** diff --git a/innobase/ibuf/ibuf0ibuf.c b/innobase/ibuf/ibuf0ibuf.c index b95f0a1832b..9c7d9c5c3da 100644 --- a/innobase/ibuf/ibuf0ibuf.c +++ b/innobase/ibuf/ibuf0ibuf.c @@ -3499,21 +3499,9 @@ ibuf_print( data = UT_LIST_GET_FIRST(ibuf->data_list); while (data) { - fprintf(file, - "Ibuf for space %lu: size %lu, free list len %lu, seg size %lu,", - (ulong) data->space, (ulong) data->size, - (ulong) data->free_list_len, - (ulong) data->seg_size); - - if (data->empty) { - fputs(" is empty\n", file); - } else { - fputs(" is not empty\n", file); - } fprintf(file, - "Ibuf for space %lu: size %lu, free list len %lu, seg size %lu,\n" - "%lu inserts, %lu merged recs, %lu merges\n", - (ulong) data->space, + "Ibuf: size %lu, free list len %lu, seg size %lu,\n" + "%lu inserts, %lu merged recs, %lu merges\n", (ulong) data->size, (ulong) data->free_list_len, (ulong) data->seg_size, |