Files
Baradb/docs/zh/lsm.md
T

1.8 KiB
Raw Blame History

LSM-Tree 存储引擎

BaraDB 的主要存储引擎,使用 Log-Structured Merge-Tree 架构。

架构

┌─────────────────────────────────────────────┐
│                   Writes                     │
│         (append to WAL + MemTable)           │
└─────────────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────┐
│                  MemTable                    │
│         (in-memory sorted buffer)            │
└─────────────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────┐
│                  SSTable                     │
│          (sorted string table on disk)       │
└─────────────────────────────────────────────┘

用法

import barabadb/storage/lsm

var db = newLSMTree("./data")

db.put("key1", cast[seq[byte]]("value1"))

let (found, value) = db.get("key1")

db.delete("key1")

db.close()

特性

  • 写优化:追加式日志结构
  • 持久性WAL 确保崩溃恢复
  • Bloom Filter:快速否定查找
  • 压缩:大小分层策略合并 SSTable
  • 页面缓存LRU 缓存常用页面