MemStoreCompactionStrategy is the root of a class hierarchy which defines the strategy for
choosing the next action to apply in an (in-memory) memstore compaction.
Possible action are:
- No-op - do nothing
- Flatten - to change the segment's index from CSLM to a flat representation
- Merge - to merge the indices of the segments in the pipeline
- Compact - to merge the indices while removing data redundancies
In addition while applying flat/merge actions it is possible to count the number of unique
keys in the result segment.