-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Compaction
-
None
-
8
-
ASeasonTooMany-2023-08-22, BermudaTriangle- 2023-09-05, TheMoon-StorEng - 2023-09-19
The background compaction server should not try to compact the same tables over and over, especially if this may not be worth it. We could create an in-memory data structure to know whether the background compaction server should compact or not a table.
For instance, every time a table is compacted, we could save the time when compaction was performed, the time it took, the effectiveness of compaction and if the table was currently being accessed. With that information, the next time the background compaction selects that table for compaction, we could decide whether it is necessary or not to try compaction again. This should reduce the number of compaction calls that were not that beneficial as well as the contention related to handles management.
Tasks:
- Define the required information
- Define what would lead to the execution of compaction
- Create and keep up to date the in-memory data structure to store all the necessary information
- Use that structure to decide whether compaction should be performed or not
Definition of done:
- The background compaction server relies on a new set of information to perform compaction
- causes
-
WT-11665 Fix uri comparison in background compaction
- Closed
- depends on
-
WT-11342 Implement the background compaction server
- Closed
- has to be done before
-
WT-11445 Create additional stats for the background compaction server
- Closed
- is depended on by
-
WT-11345 Execute WiredTiger tests with the background compaction server enabled by default and assess perf impacts
- Closed
- related to
-
WT-13210 Add debug_mode.background_compact to test/format
- Closed