docs: add multi-language documentation (ru, fa, zh, tr, ar)
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# 存储引擎
|
||||
|
||||
BaraDB 提供多种存储引擎,针对不同的访问模式进行了优化。
|
||||
|
||||
## LSM-Tree(键值)
|
||||
|
||||
主要的存储引擎,采用写优化的追加式日志结构。
|
||||
|
||||
### 使用
|
||||
|
||||
```nim
|
||||
import barabadb/storage/lsm
|
||||
|
||||
var db = newLSMTree("./data")
|
||||
db.put("key1", cast[seq[byte]]("value1"))
|
||||
let (found, value) = db.get("key1")
|
||||
db.close()
|
||||
```
|
||||
|
||||
### 组件
|
||||
|
||||
- **MemTable**:内存中的排序缓冲区
|
||||
- **WAL**:预写日志,用于持久性
|
||||
- **SSTable**:磁盘上的排序字符串表
|
||||
- **Bloom Filter**:用于快速否定查找的概率结构
|
||||
- **Compaction**:带层级管理的大小分层策略
|
||||
- **Page Cache**:带命中率追踪的 LRU 缓存
|
||||
|
||||
## B-Tree 索引
|
||||
|
||||
用于范围扫描和点查询的有序索引。
|
||||
|
||||
### 使用
|
||||
|
||||
```nim
|
||||
import barabadb/storage/btree
|
||||
|
||||
var btree = newBTreeIndex[string, string]()
|
||||
btree.insert("key1", "value1")
|
||||
let values = btree.get("key1")
|
||||
let range = btree.scan("key_a", "key_z")
|
||||
```
|
||||
|
||||
## 预写日志 (WAL)
|
||||
|
||||
确保写操作的持久性。
|
||||
|
||||
```nim
|
||||
import barabadb/storage/wal
|
||||
|
||||
var wal = newWAL("./wal")
|
||||
wal.append("txn1", "SET key1 value1")
|
||||
wal.flush()
|
||||
```
|
||||
|
||||
## Bloom 过滤器
|
||||
|
||||
用于快速否定查找的概率数据结构。
|
||||
|
||||
```nim
|
||||
import barabadb/storage/bloom
|
||||
|
||||
var filter = newBloomFilter(10000, 0.01)
|
||||
filter.add("key1")
|
||||
if filter.mightContain("key1"):
|
||||
echo "可能存在"
|
||||
```
|
||||
|
||||
## 内存映射 I/O
|
||||
|
||||
使用 mmap 进行高效的文件访问。
|
||||
|
||||
```nim
|
||||
import barabadb/storage/mmap
|
||||
|
||||
var mapped = mmapFile("./data/file.dat")
|
||||
let data = mapped.read(0, 100)
|
||||
```
|
||||
Reference in New Issue
Block a user