mariadb/storage
Marko Mäkelä ef6f561a9e Bug#54914: InnoDB: performance drop with innodb_change_buffering=all
Reduce ibuf_mutex and ibuf_pessimistic_insert_mutex contention further.

Protect ibuf->empty by the insert buffer root page latch, not ibuf_mutex.

ibuf_tree_root_get(): Assert that ibuf_mutex is owned by the
caller. Assert that the stamped page number is correct. Assert that
ibuf->empty agrees with the root page.

ibuf_size_update(): Do not update ibuf->empty.

ibuf_init_at_db_start(): Update ibuf->empty while holding the root page latch.

ibuf_add_free_page(): Return TRUE/FALSE instead of DB_SUCCESS/DB_STRONG_FAIL.

ibuf_remove_free_page(): Release ibuf_pessimistic_insert_mutex as
early as possible.

ibuf_contract_ext(): Rely on a dirty read of ibuf->empty, unless the
server is being shut down. Never acquire ibuf_mutex. Eliminate n_stored.

ibuf_contract_after_insert(): Never acquire ibuf_mutex. Perform dirty
reads of ibuf->size and ibuf->max_size.

ibuf_insert_low(): Only acquire ibuf_mutex for mode==BTR_MODIFY_TREE.
Perform dirty reads of ibuf->size and ibuf->max_size. Update
ibuf->empty while holding the root page latch.

ibuf_delete_rec(): Update ibuf->empty while holding the root page latch.

ibuf_is_empty(): Release ibuf_mutex earlier.
2010-08-10 13:22:48 +03:00
..
archive Bug#45377: ARCHIVE tables aren't discoverable after OPTIMIZE 2010-07-26 12:54:20 -03:00
blackhole Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
csv WL#5498: Remove dead and unused source code 2010-07-23 17:17:55 -03:00
example Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
federated WL#5498: Remove dead and unused source code 2010-07-23 17:17:55 -03:00
heap WL#5498: Remove dead and unused source code 2010-07-23 17:17:55 -03:00
ibmdb2i Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
innobase Bug#54914: InnoDB: performance drop with innodb_change_buffering=all 2010-08-10 13:22:48 +03:00
myisam Bug#42733: Type-punning warnings when compiling MySQL 2010-07-24 09:24:44 -03:00
myisammrg Add a maintainer target to the warning-mode of the build scripts. 2010-07-24 10:31:48 -03:00
ndb Backport fixes for some of the more noise compiler warnings in ndb. 2010-07-24 09:54:27 -03:00
perfschema WL#5498: Remove dead and unused source code 2010-07-23 17:17:55 -03:00
Makefile.am Another incarnation of the patch for Bug#30708 2010-05-19 17:00:23 +04:00