summaryrefslogtreecommitdiff
path: root/storage/xtradb/buf/buf0lru.cc
Commit message (Collapse)AuthorAgeFilesLines
* Remove XtraDBMarko Mäkelä2017-06-211-3016/+0
| | | | | | | | | | | | | | The XtraDB storage engine was already replaced by InnoDB and disabled in MariaDB Server 10.2. Let us remove it altogether to avoid dragging dead code around. Replace some references to XtraDB with references to InnoDB. rpl_get_position_info(): Remove. Remove the mysql-test-run --suite=percona, because it only contains tests specific to XtraDB, many of which were disabled already in earlier MariaDB versions.
* Merge 10.0 into 10.1Marko Mäkelä2017-05-121-2/+3
|\
| * MDEV-12674 Innodb_row_lock_current_waits has overflowMarko Mäkelä2017-05-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a race condition related to the variable srv_stats.n_lock_wait_current_count, which is only incremented and decremented by the function lock_wait_suspend_thread(), The incrementing is protected by lock_sys->wait_mutex, but the decrementing does not appear to be protected by anything. This mismatch could allow the counter to be corrupted when a transactional InnoDB table or record lock wait is terminating roughly at the same time with the start of a wait on a (possibly different) lock. ib_counter_t: Remove some unused methods. Prevent instantiation for N=1. Add an inc() method that takes a slot index as a parameter. single_indexer_t: Remove. simple_counter<typename Type, bool atomic=false>: A new counter wrapper. Optionally use atomic memory operations for modifying the counter. Aligned to the cache line size. lsn_ctr_1_t, ulint_ctr_1_t, int64_ctr_1_t: Define as simple_counter<Type>. These counters are either only incremented (and we do not care about losing some increment operations), or the increment/decrement operations are protected by some mutex. srv_stats_t::os_log_pending_writes: Document that the number is protected by log_sys->mutex. srv_stats_t::n_lock_wait_current_count: Use simple_counter<ulint, true>, that is, atomic inc() and dec() operations. lock_wait_suspend_thread(): Release the mutexes before incrementing the counters. Avoid acquiring the lock mutex if the lock wait has already been resolved. Atomically increment and decrement srv_stats.n_lock_wait_current_count. row_insert_for_mysql(), row_update_for_mysql(), row_update_cascade_for_mysql(): Use the inc() method with the trx->id as the slot index. This is a non-functional change, just using inc() instead of add(1). buf_LRU_get_free_block(): Replace the method add(index, n) with inc(). There is no slot index in the simple_counter.
* | Merge 10.0 into 10.1Marko Mäkelä2017-03-091-38/+104
|\ \ | |/ | | | | | | | | | | | | | | Also, implement MDEV-11027 a little differently from 5.5 and 10.0: recv_apply_hashed_log_recs(): Change the return type back to void (DB_SUCCESS was always returned). Report progress also via systemd using sd_notifyf().
| * Merge branch 'merge-xtradb-5.6' into 10.0Vicențiu Ciorbaru2017-03-051-38/+104
| |\
| | * 5.6.35-80.0Vicențiu Ciorbaru2017-03-041-38/+104
| | |
* | | Merge branch '10.0' into 10.1Sergei Golubchik2016-08-251-9/+9
|\ \ \ | |/ /
| * | Merge branch 'merge/merge-xtradb-5.6' into 10.0Sergei Golubchik2016-08-101-9/+9
| |\ \ | | |/ | | | | | | 5.6.31-77.0
| | * 5.6.31-77.0Sergei Golubchik2016-08-101-9/+9
| | |
* | | Merge branch '10.0' into 10.1Sergei Golubchik2016-06-281-7/+12
|\ \ \ | |/ /
| * | Merge branch 'merge-xtradb-5.6' into 0.0Sergei Golubchik2016-06-211-7/+12
| |\ \ | | |/
| | * 5.6.30-76.3Sergei Golubchik2016-06-211-7/+12
| | |
| | * move to storage/xtradbSergei Golubchik2015-05-041-0/+2920
| |
* | MDEV-9236: Dramatically overallocation of InnoDB buffer pool leads to crashJan Lindström2015-12-171-1/+3
|/ | | | | Part I: Add diagnostics to page allocation if state is not correct but do not assert if it is incorrect.
* xtradb 5.6.22-72.0Sergei Golubchik2015-02-181-1/+1
|
* MDEV-6933: Spurious lock_wait_timeout_thread wakeup in ↵Jan Lindström2014-10-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | lock_wait_suspend_thread() Merged Facebooks commit 6e06bbfa315ffb97d713dd6e672d6054036ddc21 authored by Inaam Rana from https://github.com/facebook/mysql-5.6. Fixes MySQL bug http://bugs.mysql.com/bug.php?id=72123 lock_timeout thread works in a tight loop waking up every second and checking for lock_wait_timeout. In addition, when a mysql thread is forced to wait on a lock, it signals the lock_timeout thread as well. This call is not required. In a heavily contended workload each thread going to wait will signal the lock_timeout thread making it work all the time. As lock_timeout thread scans the array of waiting threads under lock_sys::wait_mutex which is already very hot in contneded loads, these extra scans can cause significanct performance regression. Also, in various codepaths lock_timeout thread is signalled where actual intention was to signal the innodb monitor thread.
* XtraDB 5.6.20-68.0Sergei Golubchik2014-09-111-27/+0
|
* xtradb-5.6.19-67.0Sergei Golubchik2014-08-061-0/+2
|
* Merge InnoDB fixes from 5.5 revisions 4229, 4230, 4233, 4237 and 4238 i.e.Jan Lindström2014-07-251-0/+22
| | | | | | | | | | | | | | | | | | 4229: MDEV-5670: Assertion failure in file buf0lru.c line 2355 Add more status information if repeatable. 4230: MDEV-5673: Crash while parallel dropping multiple tables under heavy load Improve long semaphore wait output to include all semaphore waits and try to find out if there is a sequence of waiters. 4233: Fix compiler errors on product build. 4237: Fix too agressive long semaphore wait output and add guard against introducing compression failures on insert buffer. 4238: Fix test failure caused by simulated compression failure on IBUF_DUMMY table.
* xtradb 5.6.17-65.0Sergei Golubchik2014-05-071-6/+8
|
* MDEV-6184 10.0.11 mergeSergei Golubchik2014-05-061-37/+37
| | | | XtraDB 5.6.16-64.2
* MDEV-5830: Assertion failure mutex_get_waiters(mutex) == 0 at shutdown.Jan Lindström2014-03-211-3/+0
| | | | | | | | | | | | | | Analysis: XtraDB merge regression, at the end of mutex_spin_wait before goto mutex_loop there is missing if (prio_mutex) { os_atomic_decrement_ulint(&prio_mutex->high_priority_waiters, 1); } Hence we get unbalanced waiter count. Thanks to Laurynas Biveinis for finding this.
* Remove assertions now that the actual bug has been repeated.Jan Lindström2014-03-201-3/+3
|
* Better to use ut_ad macro.Jan Lindström2014-03-191-3/+3
|
* MDEV-5830: Assertion failure mutex_get_waiters(mutex) == 0 at shutdown.Jan Lindström2014-03-191-0/+3
|
* Percona-Server-5.6.14-rel62.0 mergeSergei Golubchik2013-12-221-0/+2943
support ha_innodb.so as a dynamic plugin. * remove obsolete *,innodb_plugin.rdiff files * s/--plugin-load=/--plugin-load-add=/ * MYSQL_PLUGIN_IMPORT glob_hostname[] * use my_error instead of push_warning_printf(ER_DEFAULT) * don't use tdc_size and tc_size in a module update test cases (XtraDB is 5.6.14, InnoDB is 5.6.10) * copy new tests over * disable some tests for (old) InnoDB * delete XtraDB tests that no longer apply small compatibility changes: * s/HTON_EXTENDED_KEYS/HTON_SUPPORTS_EXTENDED_KEYS/ * revert unnecessary InnoDB changes to make it a bit closer to the upstream fix XtraDB to compile on Windows (both as a static and a dynamic plugin) disable XtraDB on Windows (deadlocks) and where no atomic ops are available (e.g. CentOS 5) storage/innobase/handler/ha_innodb.cc: revert few unnecessary changes to make it a bit closer to the original InnoDB storage/innobase/include/univ.i: correct the version to match what it was merged from