mariadb/storage
Monty 8295add256 MDEV-24 Segmented key cache for Aria
Added option 'aria-pagecache-segments', default 1.

For values > 1, this split the aria-pagecache-buffer into the given
number of segments, each independent from each other.  Having multiple
pagecaches improve performance when multiple connections runs queries
concurrently using different tables.

Each pagecache will use aria-pageache-buffer/segments amount of
memory, however at least 128K.

Each opened table has its index and data file use the segments in a
a round-robin fashion.

Internal changes:
- All programs allocating the maria pagecache themselves should now
  call multi_init_pagecache() instead of init_pagecache().
- pagecache statistics is now stored in 'pagecache_stats' instead of
  maria_pagecache. One must call multi_update_pagecache_stats() to
  update the statistics.
- Added into PAGECACHE_FILE a pointer to files pagecache. This was
  done to ensure that index and data file are using the same
  pagecache and simplified the checkpoint code.
  I kept pagecache in TABLE_SHARE to minimize the changes.
- really_execute_checkpoint() was update to handle a dynamic number of
  pagecaches.
- pagecache_collect_changed_blocks_with_lsn() was slight changed to
  allow it to be called for each pagecache.
- undefined not used functions maria_assign_pagecache() and
  maria_change_pagecache()
- ma_pagecaches.c is totally rewritten. It now contains all multi_pagecache
  functions.

Errors found be QA that are fixed:
MDEV-36872 UBSAN errors in ma_checkpoint.c
MDEV-36874 Behavior upon too small aria_pagecache_buffer_size in case of
           multiple segments is not very user-friendly
2025-10-01 14:05:10 +00:00
..
archive MDEV-36050 DATA/INDEX DIRECTORY handling is inconsistent 2025-04-18 09:41:23 +02:00
blackhole Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
columnstore Merge branch '10.6' into 10.11 2025-07-28 18:06:31 +02:00
connect Merge 11.4 into 11.8 2025-09-29 18:25:09 +03:00
csv Merge 11.4 into 11.8 2025-09-29 18:25:09 +03:00
example Merge branch '11.4' into 11.8 2025-06-18 07:43:24 +02:00
federated MDEV-35184 Corruption errors upon creation or usage of Federated table with vector key 2025-07-21 10:24:14 +02:00
federatedx MDEV-35184 Corruption errors upon creation or usage of Federated table with vector key 2025-07-21 10:24:14 +02:00
heap Merge branch '11.7' into 11.8 2025-02-11 20:29:43 +01:00
innobase Merge 11.4 into 11.8 2025-09-30 16:03:51 +03:00
maria MDEV-24 Segmented key cache for Aria 2025-10-01 14:05:10 +00:00
mroonga Merge 11.4 into 11.8 2025-10-01 10:32:47 +03:00
myisam Merge 11.4 into 11.8 2025-09-29 18:25:09 +03:00
myisammrg Merge 11.4 into 11.7 2025-01-09 09:41:38 +02:00
oqgraph Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
perfschema Merge 11.4 into 11.8 2025-09-29 18:25:09 +03:00
rocksdb Merge 11.4 into 11.8 2025-09-29 18:25:09 +03:00
sequence cleanup: extract transaction-related part of handlerton 2024-11-05 14:00:50 -08:00
sphinx Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
spider Merge 11.4 into 11.8 2025-09-29 18:25:09 +03:00
test_sql_discovery MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00