mariadb/mysql-test/suite
Sergei Golubchik 049d839350 mhnsw: inter-statement shared cache
* preserve the graph in memory between statements
* keep it in a TABLE_SHARE, available for concurrent searches
* nodes are generally read-only, walking the graph doesn't change them
* distance to target is cached, calculated only once
* SIMD-optimized bloom filter detects visited nodes
* nodes are stored in an array, not List, to better utilize bloom filter
* auto-adjusting heuristic to estimate the number of visited nodes
  (to configure the bloom filter)
* many threads can concurrently walk the graph. MEM_ROOT and Hash_set
  are protected with a mutex, but walking doesn't need them
* up to 8 threads can concurrently load nodes into the cache,
  nodes are partitioned into 8 mutexes (8 is chosen arbitrarily, might
  need tuning)
* concurrent editing is not supported though
* this is fine for MyISAM, TL_WRITE protects the TABLE_SHARE and the
  graph (note that TL_WRITE_CONCURRENT_INSERT is not allowed, because an
  INSERT into the main table means multiple UPDATEs in the graph)
* InnoDB uses secondary transaction-level caches linked in a list in
  in thd->ha_data via a fake handlerton
* on rollback the secondary cache is discarded, on commit nodes
  from the secondary cache are invalidated in the shared cache
  while it is exclusively locked
* on savepoint rollback both caches are flushed. this can be improved
  in the future with a row visibility callback
* graph size is controlled by @@mhnsw_cache_size, the cache is flushed
  when it reaches the threshold
2024-11-05 14:00:49 -08:00
..
archive open frm for DROP TABLE 2024-11-05 14:00:48 -08:00
atomic MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
binlog MDEV-15751 CURRENT_TIMESTAMP should return a TIMESTAMP [WITH TIME ZONE?] 2024-10-19 22:48:23 +02:00
binlog_encryption Merge branch 'bb-11.5-release' into bb-11.6-release 2024-08-06 17:28:38 +02:00
client MDEV-14978 fix client.client-env-variable test 2024-10-19 16:53:16 +02:00
compat MDEV-35229 NOCOPY has become reserved word bringing wide incompatibility 2024-10-30 13:58:20 +04:00
csv MDEV-33449 improving repair of tables 2024-05-27 12:39:03 +02:00
encryption MDEV-32014 Rename binlog cache temporary file to binlog file 2024-10-17 07:53:59 -06:00
engines Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
events Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
federated MDEV-34716 Allow arbitrary options in CREATE SERVER 2024-10-15 10:50:22 +11:00
funcs_1 make INFORMATION_SCHEMA.STATISTICS.COMMENT not nullable 2024-11-05 14:00:46 -08:00
funcs_2 MDEV-25829 Change default Unicode collation to uca1400_ai_ci 2024-05-24 15:50:05 +04:00
galera MDEV-34716 Allow arbitrary options in CREATE SERVER 2024-10-15 10:50:22 +11:00
galera_3nodes Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
galera_3nodes_sr Merge branch '10.6' into 10.11 2024-07-22 15:14:50 +02:00
galera_sr Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
gcol cleanup: generalize ER_SPATIAL_CANT_HAVE_NULL 2024-11-05 14:00:48 -08:00
handler Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
heap MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
innodb cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
innodb_fts cleanup: generalize ER_INNODB_NO_FT_TEMP_TABLE 2024-11-05 14:00:48 -08:00
innodb_gis cleanup: generalize ER_SPATIAL_CANT_HAVE_NULL 2024-11-05 14:00:48 -08:00
innodb_i_s
innodb_zip MDEV-27277 Add a warning when max_sort_length is reached 2024-10-22 22:39:36 +07:00
jp MDEV-33698 tests in the jp suite fail 2024-05-24 15:50:57 +04:00
json Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
large_tests fix failing large_tests.maria_recover_encrypted 2024-04-22 18:38:39 +02:00
maria cleanup: key algorithm vs key flags 2024-11-05 14:00:47 -08:00
mariabackup Merge '11.4' into 11.6 2024-10-03 15:59:20 +10:00
merge MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
mtr/t
mtr2
multi_source MDEV-33856: Alternative Replication Lag Representation via Received/Executed Master Binlog Event Timestamps 2024-07-25 08:57:27 -06:00
optimizer_unfixed_bugs
parts Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
perfschema fix a typo and an old bug in prefschema.transaction test 2024-11-05 14:00:47 -08:00
perfschema_stress
period Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
plugins Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
roles Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
rpl post-merge changes 2024-10-29 14:47:32 +01:00
s3 Merge '11.4' into 11.6 2024-10-03 15:59:20 +10:00
sql_sequence Merge branch '11.5' into 11.6 2024-08-21 15:13:47 +02:00
storage_engine
stress MDEV-34453 Trying to read 16384 bytes at 70368744161280 outside the bounds of the file: ./ibdata1 2024-09-20 20:26:43 +05:30
sys_vars mhnsw: inter-statement shared cache 2024-11-05 14:00:49 -08:00
sysschema MDEV-34380: Set optimizer_switch='cset_narrowing=on' by default 2024-09-19 11:22:05 +03:00
unit Merge branch '11.4' into 11.5 2024-08-05 17:50:18 +02:00
vcol cleanup: generalize ER_SPATIAL_CANT_HAVE_NULL 2024-11-05 14:00:48 -08:00
versioning MDEV-27293 Allow converting a versioned table from implicit 2024-10-29 17:46:40 +03:00
wsrep Merge '11.4' into 11.6 2024-10-03 15:59:20 +10:00