Monkey
Monkey is an LSM-tree tuning design that jointly allocates Bloom-filter memory and selects buffer and merge settings to balance modeled lookup and update costs.
For absent point queries, its filter allocation minimizes the sum of false-positive probabilities rather than giving every run the same bits per entry. In the continuous model, active filters give smaller runs more bits per entry; with scarce memory, some larger runs receive no filter. [1]
Scope: this is a SIGMOD 2017 research design implemented over LevelDB, not a claim about current RocksDB defaults. Its main experiments disabled the block cache; Appendix F separately studies caching. [1]
Hesela derives and tests activation thresholds for a fixed three-run illustration. These are model results, not database latency measurements. [2]
Relations
- related
- Bloom filter, Log-structured merge-tree, Leveled compaction, Tiered compaction, Read amplification
Citations
- Dayan, Athanassoulis and Idreos. Monkey: Optimal Navigable Key-Value Store. SIGMOD 2017, 79-94. DOI: 10.1145/3035918.3064054. Sections 4.1, 5 and Appendix F.
- Hesela: when a run starts receiving filter memory.
Sources & caveats
- Primary-source synthesis and independently checked continuous-model calculation; no engine execution.