Top¶
There is the top of RocksDB.
> log files
|
| sequential write
|
API ------> MemTable(current in list) ... ImmutableMemTable
GET/PUT |
async-flush (worker threads) |
V
0-level SSTable files (unsorted)
|
async-compact (worker threads) |
V
SSTable files (sorted)
0. MemTable¶
The class architecture as below:
MemTableList
|
| combine
V
MemTableVersion (MemTable List)
|
| combine
V
MemTable
|
| combine
V
MemTableRep
|
| inherit
----------------------------------------------------
| | | | factory classes
V V V V
HashLinkListRep HashSkipListRep SkipListRep VectorRep
Warning
There is MockMemTableRep (with also factory) for testing.
1. SSTable files¶
L0 files (flush and unsorted, duplicate keys maybe
| sequence-based linear search,
| compact to L1 when count of files reached)
V
L* files (compact and sorted, unique key in one level
key-based binary search,
compact to lower level when size reached)
The class architecture as below:
TableBuilder/Reader
|
| inherit
V
--------------------------------------------------------------
| | | factory classes
V V V
BlockBasedTableBuilder/Reader CuckooTableBuilder/Reader PlainTableBuilder/Reader
Warning
There are MockTableBuiler/Reader (with also factory) for testing.