mariadb/storage/maria
Monty 7813f18e0f 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-06-25 21:42:50 +03:00
..
libmarias3@0d5babbe46 MDEV-34937 s3 engine no longer functional on non-gcc builds 2024-09-30 09:23:30 +01:00
unittest MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
aria_chk.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
aria_dump_log.c MDEV-28671 post-merge fixes 2024-05-27 12:39:02 +02:00
aria_ftdump.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
aria_pack.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
aria_read_log.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
aria_s3_copy.1 more changes to man page handling 2023-02-12 12:15:22 +01:00
aria_s3_copy.cc cleanup: CREATE_TYPELIB_FOR() helper 2024-11-05 14:00:47 -08:00
CMakeLists.txt Merge branch '10.11' into 11.0 2024-05-12 12:18:28 +02:00
file_formats.txt
ft_maria.c
ha_maria.cc MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ha_maria.h cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
ha_s3.cc MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ha_s3.h Merge 10.5 into 10.6 2021-09-06 10:31:32 +03:00
lockman.c Merge 10.4 into 10.5 2020-04-25 21:57:52 +03:00
lockman.h
ma_backup.c Fix various spelling errors still found in code 2021-03-22 18:10:39 +11:00
ma_bitmap.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_blockrec.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_blockrec.h Changes needed for ColumnStore and insert cache 2020-06-14 19:39:42 +03:00
ma_cache.c Improve error reporting in Aria 2022-06-07 20:43:11 +03:00
ma_changed.c
ma_check.c Merge 11.4 into 11.7 2025-01-09 09:41:38 +02:00
ma_check.h Fix clang -Wtypedef-redefinition 2022-03-11 13:29:41 +02:00
ma_check_standalone.h MDEV-17913 Encrypted transactional Aria tables remain corrupt after crash recovery, automatic repairment does not work 2021-04-06 14:57:22 +03:00
ma_checkpoint.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_checkpoint.h
ma_checksum.c
ma_close.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_commit.c
ma_commit.h
ma_control_file.c Merge 10.11 into 11.4 2025-03-28 13:55:21 +02:00
ma_control_file.h Merge 10.11 into 11.0 2024-03-28 10:51:36 +02:00
ma_create.c Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
ma_crypt.c Merge branch '10.11' into 11.0 2023-08-09 07:53:48 +02:00
ma_crypt.h MDEV-26258 Various crashes/asserts/corruptions when Aria encryption is enabled/used, but the encryption plugin is not loaded 2023-05-02 23:37:10 +03:00
ma_dbug.c
ma_delete.c cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
ma_delete_all.c Merge 11.4 into 11.6 2024-09-04 10:38:25 +03:00
ma_delete_table.c Merge commit '10.4' into 10.5 2023-07-20 11:54:52 +02:00
ma_dynrec.c MDEV-9101 Limit size of created disk temporary files and tables 2024-05-27 12:39:04 +02:00
ma_extra.c Merge 10.11 into 11.4 2025-01-09 07:58:08 +02:00
ma_ft_boolean_search.c MDEV-34348: Consolidate cmp function declarations 2024-11-23 08:14:22 -07:00
ma_ft_eval.c
ma_ft_eval.h
ma_ft_nlq_search.c MDEV-34348: Fix casts relating to tree_walk_action 2024-11-23 08:14:23 -07:00
ma_ft_parser.c Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
ma_ft_stem.c
ma_ft_test1.c
ma_ft_test1.h Switch Perl DBI scripts from DBD::mysql to DBD::MariaDB driver 2019-07-19 13:39:20 +03:00
ma_ft_update.c Merge branch '10.6' into 10.10 2023-11-08 16:23:30 +01:00
ma_ftdefs.h
ma_fulltext.h
ma_info.c Tag my_printf_error with ATTRIBUTE_FORMAT 2025-02-11 20:32:55 +01:00
ma_init.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_key.c cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
ma_key_recover.c Improve error reporting in Aria 2022-06-07 20:43:11 +03:00
ma_key_recover.h
ma_keycache.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_locking.c MDEV-29693 ANALYZE TABLE still flushes table definition cache when engine-independent statistics is used 2023-08-18 13:28:39 +03:00
ma_loghandler.c Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
ma_loghandler.h Merge 10.11 into 11.0 2024-03-28 10:51:36 +02:00
ma_loghandler_lsn.h MDEV-17913 Encrypted transactional Aria tables remain corrupt after crash recovery, automatic repairment does not work 2021-04-06 14:57:22 +03:00
ma_norec.c
ma_open.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_packrec.c cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
ma_page.c MDEV-34016 Assertion `info->key_del_used == 0' failed in maria_close with limited tmp space 2024-05-27 12:39:04 +02:00
ma_pagecache.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_pagecache.h MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_pagecaches.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_pagecrc.c MDEV-22641: Provide SIMD optimized wrapper for zlib crc32() (#1558) 2020-06-01 11:34:06 +03:00
ma_panic.c
ma_preload.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
ma_range.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_recovery.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_recovery.h Improve logging of Aria redo's and undo's 2020-05-27 15:47:10 +03:00
ma_recovery_util.c Small improvements to aria recovery 2023-02-03 10:43:02 +03:00
ma_recovery_util.h Reënable ATTRIBUTE_FORMAT on DBUG_PRINT & t/eprint 2025-02-12 10:17:44 +01:00
ma_rename.c MDEV-23842 Atomic RENAME TABLE 2021-05-19 22:54:12 +02:00
ma_rfirst.c
ma_rkey.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rlast.c
ma_rnext.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rnext_same.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rprev.c MDEV-21794: Optimizer flag rowid_filter leads to long query 2020-05-07 12:27:17 +02:00
ma_rrnd.c
ma_rsame.c
ma_rsamepos.c
ma_rt_index.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rt_index.h cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rt_key.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rt_key.h cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rt_mbr.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rt_mbr.h cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rt_split.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_rt_test.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_scan.c Fixes to make dbug traces from Windows easier to compare with Unix traces 2023-03-02 13:11:54 +02:00
ma_search.c cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
ma_servicethread.c
ma_servicethread.h
ma_sort.c Update my_snprintf’s last loose ends to suffixes 2025-02-12 10:17:44 +01:00
ma_sp_defs.h cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_sp_key.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_sp_test.c cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
ma_state.c cleanup: remove unconditional #ifdef's 2024-11-05 14:00:47 -08:00
ma_state.h MDEV-9101 Limit size of created disk temporary files and tables 2024-05-27 12:39:04 +02:00
ma_static.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_statrec.c MDEV-9101 Limit size of created disk temporary files and tables 2024-05-27 12:39:04 +02:00
ma_test1.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_test2.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_test3.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_test_all.res
ma_test_all.sh
ma_test_big.sh MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
ma_test_force_start.pl
ma_test_recovery
ma_trnman.h Do not display not moved tables as moved in aria_chk 2021-05-19 22:54:12 +02:00
ma_unique.c MDEV-35620 UBSAN: runtime error: applying zero offset to null pointer 2025-02-03 16:45:02 +04:00
ma_update.c cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
ma_write.c Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
maria_def.h MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
s3.cnf MDEV-22980: Allow plugin-maturity=alpha so S3 plugin loads 2020-08-01 10:31:41 +10:00
s3_func.c Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
s3_func.h MDEV-34867 engine S3 cause 500 error for huawei buckets 2024-09-11 16:15:37 +03:00
tablockman.c
tablockman.h
test_aria_s3_copy.sh
test_ma_backup.c MDEV-24 Segmented key cache for Aria 2025-06-25 21:42:50 +03:00
test_pack
trnman.c Merge 10.5 into 10.6 2024-11-29 12:37:46 +02:00
trnman.h mysqld --help will now load mysqld.options table 2020-03-24 21:00:04 +02:00
trnman_public.h Aria: Add transaction id to log of create table 2021-03-20 21:17:32 +02:00