mariadb/mysql-test/suite/versioning/t
Monty 52c29f3bdc MDEV-35469 Heap tables are calling mallocs to often
Heap tables are allocated blocks to store rows according to
my_default_record_cache (mapped to the server global variable
 read_buffer_size).
This causes performance issues when the record length is big
(> 1000 bytes) and the my_default_record_cache is small.

Changed to instead split the default heap allocation to 1/16 of the
allowed space and not use my_default_record_cache anymore when creating
the heap. The allocation is also aligned to be just under a power of 2.

For some test that I have been running, which was using record length=633,
the speed of the query doubled thanks to this change.

Other things:
- Fixed calculation of max_records passed to hp_create() to take
  into account padding between records.
- Updated calculation of memory needed by heap tables. Before we
  did not take into account internal structures needed to access rows.
- Changed block sized for memory_table from 1 to 16384 to get less
  fragmentation. This also avoids a problem where we need 1K
  to manage index and row storage which was not counted for before.
- Moved heap memory usage to a separate test for 32 bit.
- Allocate all data blocks in heap in powers of 2. Change reported
  memory usage for heap to reflect this.

Reviewed-by: Sergei Golubchik <serg@mariadb.org>
2025-01-05 16:40:11 +02:00
..
alter.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
autoinc.test MDEV-22562 Assertion `next_insert_id == 0' upon UPDATE on system-versioned table 2021-03-31 21:25:36 +03:00
commit_id.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
create.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
cte.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
debug.test Merge 10.3 into 10.4 2022-04-06 08:59:09 +03:00
delete.test MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
delete_history.test Merge branch '10.5' into 10.6 2024-10-09 08:38:48 +02:00
derived.test Merge branch '10.2' into 10.3 2019-09-03 13:17:32 +03:00
foreign.combinations MDEV-14744 Assertion `table->versioned() == m_prebuilt->table->versioned()' failed in ha_innobase::open 2017-12-29 00:23:07 +03:00
foreign.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
insert.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
insert2.test MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
misc.test MDEV-29750 triggers can modify history 2022-10-16 01:24:30 +02:00
not_embedded.test Versioning test suite cleanups 2022-01-13 23:35:16 +03:00
online.test Merge 10.3 into 10.4 2019-10-10 21:30:40 +03:00
optimized.test MDEV-15062 Information Schema COLUMNS Table does not show system versioning information 2018-04-10 13:12:36 +02:00
partition.test MDEV-35469 Heap tables are calling mallocs to often 2025-01-05 16:40:11 +02:00
replace.test MDEV-15330 Cleanup: load_data.test removed 2024-12-03 13:49:42 +03:00
rpl.test MDEV-31313 SYSTEM VERSIONING and FOREIGN KEY CASCADE create orphan rows on replica 2023-07-20 18:22:30 +03:00
rpl_mix.test MDEV-15405 Mixed replication fails with "Could not execute Delete_rows_v1 event" upon DELETE HISTORY 2018-02-25 14:31:15 +01:00
rpl_row.test MDEV-31297 Create table as select on system versioned tables do not 2024-10-08 13:08:10 +03:00
select.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
select2.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
simple.test MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
sysvars.test Merge branch '10.5' into 10.6 2021-08-02 10:11:41 +02:00
trx_id.opt MDEV-29989 binlog_do_db option breaks versioning table 2023-09-26 10:47:59 +05:30
trx_id.test Merge 10.5 into 10.6 2024-10-03 09:31:39 +03:00
update-big.test versioning test suite fixes 2019-10-10 00:20:34 +03:00
update.test MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
view.test MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00