Files
scylladb/utils
Botond Dénes 3286a6fa14 Merge 'Reload reclaimed bloom filters when memory is available' from Lakshmi Narayanan Sreethar
PR #17771 introduced a threshold for the total memory used by all bloom filters across SSTables. When the total usage surpasses the threshold, the largest bloom filter will be removed from memory, bringing the total usage back under the threshold. This PR adds support for reloading such reclaimed bloom filters back into memory when memory becomes available (i.e., within the 10% of available memory earmarked for the reclaimable components).

The SSTables manager now maintains a list of all SSTables whose bloom filter was removed from memory and attempts to reload them when an SSTable, whose bloom filter is still in memory, gets deleted. The manager reloads from the smallest to the largest bloom filter to maximize the number of filters being reloaded into memory.

Closes scylladb/scylladb#18186

* github.com:scylladb/scylladb:
  sstable_datafile_test: add testcase to test reclaim during reload
  sstable_datafile_test: add test to verify auto reload of reclaimed components
  sstables_manager: reload previously reclaimed components when memory is available
  sstables_manager: start a fiber to reload components
  sstable_directory_test: fix generation in sstable_directory_test_table_scan_incomplete_sstables
  sstable_datafile_test: add test to verify reclaimed components reload
  sstables: support reloading reclaimed components
  sstables_manager: add new intrusive set to track the reclaimed sstables
  sstable: add link and comparator class to support new instrusive set
  sstable: renamed intrusive list link type
  sstable: track memory reclaimed from components per sstable
  sstable: rename local variable in sstable::total_reclaimable_memory_size
2024-05-10 13:01:01 +03:00
..
2023-09-11 14:38:46 +03:00
2024-04-11 14:33:43 +03:00
2023-12-02 22:37:22 +02:00
2023-12-02 22:37:22 +02:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2023-12-05 15:18:11 +02:00
2024-01-18 12:50:06 +02:00
2024-02-01 14:50:17 +02:00
2023-12-02 22:37:22 +02:00
2023-12-05 15:18:11 +02:00
2023-12-05 15:18:11 +02:00
2024-01-18 12:50:06 +02:00
2023-09-01 22:34:23 +02:00
2023-12-02 22:37:22 +02:00
2024-01-18 12:50:06 +02:00
2023-01-27 19:15:39 +01:00
2023-12-02 22:37:22 +02:00
2024-04-30 09:07:22 +03:00
2024-02-01 10:27:55 +02:00