mariadb/storage/maria
Michael Widenius f0f2072d1f Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write
Reason for the problem was that the hash of changed files in the key cache was too small (was 128). Fixed by making the hash size larger and changeable.

- Introduced key-cache-file-hash-size (default 512) for MyISAM and aria_pagecache_file_hash_size (default 512) for Aria.
- Added new status variable "Feature_delay_key_write" which counts number of tables opened that are using delay_key_write


mysql-test/r/features.result:
  Added test of Feature_delay_key_write
mysql-test/r/key_cache.result:
  Updated tests as the number of blocks has changed
mysql-test/r/mysqld--help.result:
  Updated result
mysql-test/suite/maria/maria3.result:
  Updated result
mysql-test/suite/sys_vars/r/key_cache_file_hash_size_basic.result:
  Test new variable
mysql-test/suite/sys_vars/t/aria_pagecache_file_hash_size_basic.test:
  Test new variable
mysql-test/suite/sys_vars/t/key_cache_file_hash_size_basic.test:
  Test new variable
mysql-test/t/features.test:
  Added test of Feature_delay_key_write
mysql-test/t/key_cache.test:
  Updated tests as the number of blocks has changed
mysys/mf_keycache.c:
  Made CHANGED_BLOCKS_HASH dynamic
sql/handler.cc:
  Updated call to init_key_cache()
sql/mysqld.cc:
  Added "Feature_delay_key_write"
  Added support for key-cache-file-hash-size
sql/mysqld.h:
  Added support for key-cache-file-hash-size
sql/sql_class.h:
  Added feature_files_opened_with_delayed_keys
sql/sys_vars.cc:
  Added key_cache_file_hash_size
storage/maria/ha_maria.cc:
  Added pagecache_file_hash_size
  Added counting of files with delay_key_write
storage/maria/ma_checkpoint.c:
  Fixed compiler warning
storage/maria/ma_pagecache.c:
  Made PAGECACHE_CHANGED_BLOCKS_HASH into a variable
storage/maria/ma_pagecache.h:
  Made PAGECACHE_CHANGED_BLOCKS_HASH into a variable
storage/maria/ma_rt_test.c:
  Updated parameters for init_pagecache()
storage/maria/ma_test1.c:
  Updated parameters for init_pagecache()
storage/maria/ma_test2.c:
  Updated parameters for init_pagecache()
storage/maria/ma_test3.c:
  Updated parameters for init_pagecache()
storage/maria/maria_chk.c:
  Updated parameters for init_pagecache()
storage/maria/maria_ftdump.c:
  Updated parameters for init_pagecache()
storage/maria/maria_pack.c:
  Updated parameters for init_pagecache()
storage/maria/maria_read_log.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_pagecache_consist.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_pagecache_rwconsist.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_pagecache_rwconsist2.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_pagecache_single.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_multithread-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_noflush-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_nologs-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
  Updated parameters for init_pagecache()
storage/maria/unittest/ma_test_loghandler_purge-t.c:
  Updated parameters for init_pagecache()
storage/myisam/ha_myisam.cc:
  Added counting of files with delay_key_write
storage/myisam/mi_check.c:
  Updated call to init_key_cache()
storage/myisam/mi_test1.c:
  Updated call to init_key_cache()
storage/myisam/mi_test2.c:
  Updated call to init_key_cache()
storage/myisam/mi_test3.c:
  Updated call to init_key_cache()
storage/myisam/mi_test_all.sh:
  Fixed broken test
storage/myisam/myisam_ftdump.c:
  Updated call to init_key_cache()
storage/myisam/myisamchk.c:
  Updated call to init_key_cache()
storage/myisam/myisamlog.c:
  Updated call to init_key_cache()
2014-07-19 17:46:08 +03:00
..
unittest Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
CMakeLists.txt MDEV-672 : storage/maria and storage/perfschema do not appear to honor WITH_UNIT_TESTS 2012-10-30 23:05:55 +01:00
file_formats.txt
ft_maria.c Fixed some compiler warnings and errors in test suite found by buildbot 2010-01-27 23:53:08 +02:00
ha_maria.cc Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ha_maria.h MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
lockman.c cleanup: remove LF_REQUIRE_PINS, use compile_time_assert() instead of reimplementing it 2013-06-24 20:56:55 +02:00
lockman.h
ma_bitmap.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
ma_blockrec.c Merge with 10.0-base 2014-03-13 16:43:11 +02:00
ma_blockrec.h 5.1 merge 2013-05-20 10:53:04 +02:00
ma_cache.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
ma_changed.c lots of post-merge changes 2011-04-25 17:22:25 +02:00
ma_check.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_check_standalone.h MySQL-5.5.35 merge 2014-01-22 15:29:36 +01:00
ma_checkpoint.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ma_checkpoint.h rename maria to aria 2010-09-12 18:40:01 +02:00
ma_checksum.c make 5.1 compiling with modern gcc. 2013-12-20 12:35:47 +02:00
ma_close.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
ma_commit.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
ma_commit.h
ma_control_file.c use PSI wrappers in aria and other non-MySQL code 2011-07-13 21:10:18 +02:00
ma_control_file.h rename maria to aria 2010-09-12 18:40:01 +02:00
ma_create.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_dbug.c Fixed lp:925377 "Querying myisam table metadata while 'alter table..enable keys' is running may corrupt the table" 2012-02-28 23:18:52 +02:00
ma_delete.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
ma_delete_all.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_delete_table.c MDEV-5815 MySQL BUG#11751736: DROP DATABASE STATEMENT SHOULD REMOVE .OLD SUFFIX FROM DATABASE DIRECTORY 2014-03-26 09:32:54 +01:00
ma_dynrec.c Merge with 10.0-base 2014-03-13 16:43:11 +02:00
ma_extra.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_ft_boolean_search.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_ft_eval.c
ma_ft_eval.h
ma_ft_nlq_search.c Push a lot of small fixes to get larger parts to compile 2013-05-21 22:00:08 +03:00
ma_ft_parser.c cleanup: use MYF() for mysys flags 2013-01-23 16:18:09 +01:00
ma_ft_stem.c
ma_ft_test1.c
ma_ft_test1.h
ma_ft_update.c 5.3->5.5 merge 2011-11-22 18:04:38 +01:00
ma_ftdefs.h lots of post-merge changes 2011-04-25 17:22:25 +02:00
ma_fulltext.h Merge with mysql-maria 2009-01-30 23:55:42 +02:00
ma_info.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
ma_init.c my_dir() cleanup 2013-04-07 15:19:45 +02:00
ma_key.c make 5.1 compiling with modern gcc. 2013-12-20 12:35:47 +02:00
ma_key_recover.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
ma_key_recover.h Fixes some bug in Aria recovery: 2010-10-07 12:51:34 +03:00
ma_keycache.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_locking.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_loghandler.c 10.0-base merge 2014-02-26 15:28:07 +01:00
ma_loghandler.h Fix of compiler errors. 2011-05-16 16:13:34 +03:00
ma_loghandler_lsn.h remove ULL() and LL(), because they're totally unnecessary 2013-04-07 14:00:16 +02:00
ma_norec.c Added support for NO_RECORD record format (don't store any row data) for Aria. 2011-01-14 11:54:39 +01:00
ma_open.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_packrec.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_page.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_pagecache.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ma_pagecache.h Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ma_pagecaches.c
ma_pagecrc.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_panic.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_preload.c lots of post-merge changes 2011-04-25 17:22:25 +02:00
ma_range.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_recovery.c MDEV-5314 - Compiling fails on OSX using clang 2014-02-19 14:05:15 +04:00
ma_recovery.h Fixed portability problem with partiton_error.test 2011-06-13 12:46:11 +03:00
ma_recovery_util.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_recovery_util.h
ma_rename.c Fixed lp:947474 "Assertion `table->file->stats.records > 0 || error' failed in join_read_const_table on concurrent SELECT and ALTER, constant Aria table" 2012-03-20 16:04:50 +02:00
ma_rfirst.c
ma_rkey.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_rlast.c
ma_rnext.c MDEV-6153 Trivial Lintian errors in MariaDB sources: spelling errors and wrong executable bits 2014-05-13 11:53:30 +02:00
ma_rnext_same.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_rprev.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_rrnd.c MDEV-736 LP:1004615 - Unexpected warnings "Encountered illegal value '' when converting to DECIMAL" on a query with aggregate functions and GROUP BY 2012-11-17 16:50:15 +01:00
ma_rsame.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_rsamepos.c Added versioning of Maria index 2008-06-26 08:18:28 +03:00
ma_rt_index.c merge with 5.3. 2012-06-04 17:26:11 +02:00
ma_rt_index.h Added MARIA_PAGE structure to keep all information about a maria key page. 2008-09-01 20:31:40 +03:00
ma_rt_key.c Fixes some bug in Aria recovery: 2010-10-07 12:51:34 +03:00
ma_rt_key.h Added MARIA_PAGE structure to keep all information about a maria key page. 2008-09-01 20:31:40 +03:00
ma_rt_mbr.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
ma_rt_mbr.h Added MARIA_PAGE structure to keep all information about a maria key page. 2008-09-01 20:31:40 +03:00
ma_rt_split.c compiler warnings 2013-04-14 16:48:16 +02:00
ma_rt_test.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ma_scan.c MDEV-4280: Assertion `empty_size == empty_size_on_page' failure in ma_blockrec.c or ER_NOT_KEYFILE on query with DISTINCT and GROUP BY 2013-05-11 15:55:11 +03:00
ma_search.c Compilation warnings. 2013-05-07 18:26:22 +02:00
ma_servicethread.c fix the include guards and add missing gplv2 headers 2012-02-17 12:19:38 +01:00
ma_servicethread.h fix the include guards and add missing gplv2 headers 2012-02-17 12:19:38 +01:00
ma_sort.c 10.0-base merge 2014-02-03 15:22:39 +01:00
ma_sp_defs.h Added versioning of Maria index 2008-06-26 08:18:28 +03:00
ma_sp_key.c lots of post-merge changes 2011-04-25 17:22:25 +02:00
ma_sp_test.c lots of post-merge changes 2011-04-25 17:22:25 +02:00
ma_state.c MDEV-3999: Valgrind errors 'invalid write' or assorted server crashes on concurrent flow with partitioned Aria tables 2013-05-12 11:29:16 +03:00
ma_state.h MDEV-3999: Valgrind errors 'invalid write' or assorted server crashes on concurrent flow with partitioned Aria tables 2013-05-12 11:29:16 +03:00
ma_static.c Fixed MDEV-3815: Aria engine return "The table is full" (ERROR 1114) inserting record, while MyISAM and InnoDB doesn't 2014-02-11 19:40:33 +02:00
ma_statrec.c merge with 5.3 2011-10-19 21:45:18 +02:00
ma_test1.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ma_test2.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ma_test3.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
ma_test_all.res
ma_test_all.sh makes mi_test_all.sh & ma_test_all.sh working (MDEV-285) 2012-09-25 13:45:11 +03:00
ma_test_big.sh
ma_test_force_start.pl MDEV-4447 MariaDB sources should have unix-style line endings everywhere 2014-02-27 12:00:16 +01:00
ma_test_recovery
ma_unique.c Fixed a compiler failure and removed some warnings in windows 2014-03-11 16:53:24 +02:00
ma_update.c 5.3 merge. 2013-05-20 12:36:30 +02:00
ma_write.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
maria_chk.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
maria_def.h Merge with 5.5 2014-03-11 17:49:09 +02:00
maria_dump_log.c merge with 5.3 2011-10-19 21:45:18 +02:00
maria_ftdump.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
maria_pack.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
maria_read_log.c Fixed problem with very slow shutdown when using 100,000 MyISAM tables with delay_key_write 2014-07-19 17:46:08 +03:00
maria_rename.sh
tablockman.c merge with 5.3 2011-10-19 21:45:18 +02:00
tablockman.h use PSI wrappers in aria and other non-MySQL code 2011-07-13 21:10:18 +02:00
test_pack
trnman.c 10.0-base merge 2014-02-03 15:22:39 +01:00
trnman.h remove ULL() and LL(), because they're totally unnecessary 2013-04-07 14:00:16 +02:00
trnman_public.h merged 2009-01-16 17:18:17 +01:00