Details
-
Sub-task
-
Status: Resolved
-
Normal
-
Resolution: Won't Fix
-
None
-
Performance
-
Normal
-
All
-
None
-
Description
BufferCell, BTreeRow, and Clustering make up a significant amount of allocations during reads/compactions, and many of the fields of these classes are often unused. For example, the CellPath reference in BufferCell is only every used for collection columns. Since we know which fields will and won’t be used during cell creation, we can define specialized classes that only take up heap space for the data they’ll be using. This reduces compaction garbage by up to 4.5%.