SplinterDB uses a mapped B^e-Tree as its global structure. The mapped B^e-Tree is a size-tiered variant of a B^e-Tree, which additionally uses maplets instead of filters to reduce the number of filter operations required for reads. B^e-Trees themselves can be considered a type of LSM.
The memtable and branches (SplinterDB's name for SSTables) use a B^+-Tree.
SplinterDB is composed of several primary modules: trunk, btree (used for branches and memtables), maplet, cache, allocator, and log. All allocation of on-disk blocks is handled by the allocator, and nearly all allocation of memory is handled by the cache, which also determines when data is read in from or written out to disk.
https://github.com/vmware/splinterdb
https://github.com/vmware/splinterdb/blob/main/docs/README.md
VMware, Inc.
2018
Industrial Research, Open Source