mariadb/storage
Marko Mäkelä c561f9e6e8 MDEV-24167: Use lightweight srw_lock for btr_search_latch
Many InnoDB rw-locks unnecessarily depend on the complex
InnoDB rw_lock_t implementation that support the SX lock mode
as well as recursive acquisition of X or SX locks.
One of them is the bunch of adaptive hash index search latches,
instrumented as btr_search_latch in PERFORMANCE_SCHEMA.
Let us introduce a simpler lock for those in order to
reduce overhead.

srw_lock: A simple read-write lock that does not support recursion.
On Microsoft Windows, this wraps SRWLOCK, only adding
runtime overhead if PERFORMANCE_SCHEMA is enabled.
On Linux (all architectures), this is implemented with
std::atomic<uint32_t> and the futex system call.
On other platforms, we will wrap mysql_rwlock_t with
zero runtime overhead.

The PERFORMANCE_SCHEMA instrumentation differs
from InnoDB rw_lock_t in that we will only invoke
PSI_RWLOCK_CALL(start_rwlock_wrwait) or
PSI_RWLOCK_CALL(start_rwlock_rdwait)
if there is an actual conflict.
2020-11-24 15:41:03 +02:00
..
archive Added 'final' to some classes to improve generated code 2020-08-04 17:27:32 +02:00
blackhole Merge 10.3 into 10.4 2020-11-03 14:49:17 +02:00
columnstore After-merge fix: Update ColumnStore 2020-11-24 09:09:40 +02:00
connect Merge 10.3 into 10.4 2020-11-03 14:49:17 +02:00
csv Added 'final' to some classes to improve generated code 2020-08-04 17:27:32 +02:00
example remove mysql_declare_plugin declaration from some plugins 2020-07-04 01:44:47 +02:00
federated replace HTON_AUTOMATIC_DELETE_TABLE with return -1 from drop_table() 2020-07-04 01:44:47 +02:00
federatedx Added 'final' to some classes to improve generated code 2020-08-04 17:27:32 +02:00
heap MDEV-22677 UPDATE crashes on partitioned HEAP table WITHOUT OVERLAPS 2020-11-02 14:11:43 +10:00
innobase MDEV-24167: Use lightweight srw_lock for btr_search_latch 2020-11-24 15:41:03 +02:00
maria Merge 10.4 into 10.5 2020-11-13 21:54:21 +02:00
mroonga Merge 10.5 into 10.6 2020-11-02 12:49:19 +02:00
myisam Merge 10.4 into 10.5 2020-11-03 16:24:47 +02:00
myisammrg Added 'final' to some classes to improve generated code 2020-08-04 17:27:32 +02:00
oqgraph optimization: use hton->drop_table in few simple cases 2020-07-04 01:44:46 +02:00
perfschema Merge 10.4 into 10.5 2020-11-03 16:24:47 +02:00
rocksdb MDEV-22343 Remove SYS_TABLESPACES and SYS_DATAFILES 2020-11-11 11:15:11 +02:00
sequence Added 'final' to some classes to improve generated code 2020-08-04 17:27:32 +02:00
sphinx Added 'final' to some classes to improve generated code 2020-08-04 17:27:32 +02:00
spider Merge 10.5 into 10.6 2020-11-02 12:49:19 +02:00
test_sql_discovery MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode 2020-08-01 07:43:50 +04:00