Базовая реализация LSM-Tree
В качестве дерева для хранения данных в оперативной памят до сброса в постоянную память выбраны map и set.
Для хранения данных в постоянной памяти и работы с ними реализована SortedStringTable. В одном файле хранится столько же данных, сколько нужно для сброса данных из оперативаной памяти в постоянную и определяемое SortedStringTable.h/bufferSizeForUpdate равная для удобного и наглядного тестирования 1кб, при работе с большими объемами данных оптимальное значение будет 1-2мб.
Так же используется BloomFilter для оптимизации LSM-Tree. Если он сказал что его нет, то его точно нет, иначе нужно проверять.