An embedded key-value store
- 
API
- get()
 - scan()
 -  put()
- including insert and update
 
 - delete()
 
 - 
Config
- FPTree config
 - SSTable config
 
 - 
FPTree
- Simplified FPTree
 - Leaf file
 - Concurrency
 - Flush (converted to SSTable)
 - Recovery (flush)
 - tail header (for durable write)
 - Extended leaf page
 
 - 
SSTable
- SSTable file
 - Bloom filter/Sparse index
 - Compaction
 - Recovery
 
 - 
Others
- Error handling
 - Backgound thread
 
 
Basically, the number of keys triggers flushing (Converting FPTree to SSTable) because the number of the root split times on the FPTree is the threshold.
Where you insert K keys and the N split happens, the relation between 
If you set the root_split_threshold to 6, flush would happen every 17,504 insertions.