Files
Baradb/docs/bg/storage.md
T
dimgigov c55d3080cf
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
Update documentation and clients for v1.1.0
Documentation updates:
- Fix v0.1.0 → v1.1.0 version numbers in en, ru, fa, zh docs
- Add missing Window Functions, Multi-Tenant ERP, Supported Keywords sections
  to ru, fa, zh baraql.md (~105 lines each)
- Expand Turkish and Arabic baraql.md (110 → 268 lines)
- Expand Turkish and Arabic installation.md (62 → 307 lines)
- Add new Bulgarian documentation files (18 new files)

Client updates:
- Python: Full async/await rewrite with asyncio, request queueing
- Rust: Full async/await rewrite with tokio, async examples
- Nim: Update README to v1.1.0
- All clients now support async patterns consistently
2026-05-14 23:05:47 +03:00

2.0 KiB
Raw Blame History

Storage Engines

BaraDB предоставя множество storage двигатели, оптимизирани за различни модели на достъп.

LSM-Tree (Key-Value)

Основният storage engine с write-оптимизирана append-only лог структура.

Употреба

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: Write-ahead log за устойчивост
  • SSTable: Сортирани string таблици на диска
  • Bloom Filter: Вероятностна проверка за принадлежност
  • Compaction: Size-tiered стратегия с управление на нива
  • Page Cache: LRU кеш с проследяване на hit rate

B-Tree Индекс

Подреден индекс за range сканиране и точково търсене.

Употреба

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")

Write-Ahead Log (WAL)

Осигурява устойчивост на операциите за запис.

import barabadb/storage/wal

var wal = newWAL("./wal")
wal.append("txn1", "SET key1 value1")
wal.flush()

Bloom Filter

Вероятностна структура от данни за бързи негативни проверки.

import barabadb/storage/bloom

var filter = newBloomFilter(10000, 0.01)
filter.add("key1")
if filter.mightContain("key1"):
  echo "евентуално съществува"

Memory-mapped I/O

Ефективен достъп до файлове чрез mmap.

import barabadb/storage/mmap

var mapped = mmapFile("./data/file.dat")
let data = mapped.read(0, 100)