Files
Baradb/docs/de/performance.md
T
dimgigov c95bc4cd44
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
docs: synchronize documentation across all languages
- Add mcp.md to: bg, fa, ru, tr, zh, ar
- Add index.md to Bulgarian (bg)
- Add 24 missing German (de) documentation files

Translations for all supported languages now complete.
2026-05-17 16:29:28 +03:00

4.7 KiB
Raw Blame History

BaraDB Performance-Leitfaden

Benchmark-Methodik

Alle Benchmarks wurden ausgeführt mit:

  • Compiler: Nim 2.2.0 mit -d:release --opt:speed
  • CPU: AMD Ryzen 9 5900X (12 Kerne / 24 Threads)
  • Memory: 64 GB DDR4-3600
  • Storage: Samsung 980 Pro NVMe SSD
  • OS: Ubuntu 24.04 LTS

Die vollständige Benchmark-Suite ausführen:

nim c -d:ssl -d:release -r benchmarks/bench_all.nim

Storage Engine Benchmarks

LSM-Tree Key-Value

Metrik Wert
Write Throughput ~580,000 ops/s
Read Throughput ~720,000 ops/s
Durchschnittliche Write-Latenz 1.7 µs
Durchschnittliche Read-Latenz 1.4 µs
Testdatensatz 100,000 Keys (16-Byte Keys, 64-Byte Values)

Der LSM-Tree verwendet eine 64MB MemTable, WAL fsync bei jedem Write und size-tiered Compaction mit 6 Levels.

B-Tree Index

Metrik Wert
Insert Throughput ~1,200,000 ops/s
Point Lookup Throughput ~1,500,000 ops/s
Range Scan (1000 Keys) ~0.3 ms
Baumhöhe (100K Keys) 4

B-Tree Knoten sind 4KB mit Copy-on-Write für MVCC-Kompatibilität.

Vector Engine Benchmarks

HNSW Index

Metrik Wert
Insert (dim=128) ~45,000 vectors/s
Search top-10 (dim=128, n=10K) ~2 ms
Search top-10 (dim=128, n=100K) ~8 ms
Speicher pro Vektor (dim=128) ~580 bytes

Parameter: M=16, efConstruction=200, efSearch=64.

SIMD Distanzfunktionen

Operation dim=128 dim=768 dim=1536
Cosine Distance 4.2M/s 850K/s 420K/s
L2 (Euclidean) 4.5M/s 920K/s 450K/s
Dot Product 4.8M/s 980K/s 480K/s

SIMD verwendet AVX2 256-Bit Vektoren mit Loop Unrolling.

Quantization

Methode Genauigkeitsverlust Speicherreduzierung
Scalar 8-bit <1% 4×
Scalar 4-bit ~3% 8×
Product Quantization (PQ16) ~5% 16×
Binary ~15% 32×

Full-Text Search Benchmarks

Metrik Wert
Index Throughput ~320,000 docs/s
BM25 Search ~28,000 queries/s
Fuzzy Search (distance=2) ~850 queries/s
Wildcard Regex Search ~4,200 queries/s

Testkorpus: 5 einzigartige Dokumente × 2,000 Wiederholungen (~50 Wörter/Dok).

Graph Engine Benchmarks

Operation Throughput Latenz
Knoten hinzufügen ~2.5M ops/s 0.4 µs
Kante hinzufügen ~1.8M ops/s 0.55 µs
BFS (1K Knoten, 5K Kanten) ~12K Traversierungen/s 83 µs
DFS (1K Knoten, 5K Kanten) ~15K Traversierungen/s 67 µs
Dijkstra kürzester Pfad ~120 µs
PageRank (10 Iterationen) ~450 Graphen/s 2.2 ms
Louvain Community Detection ~45 ms

Protokoll-Benchmarks

Protokoll Verbindungen Queries/sec Latenz p99
Binary (localhost) 1 45,000 0.4 ms
Binary (localhost) 100 380,000 1.2 ms
HTTP/REST 1 12,000 2.1 ms
HTTP/REST 100 95,000 5.8 ms
WebSocket 1 18,000 1.8 ms

Query Engine Benchmarks

Abfragetyp Zeilen Zeit
Simple SELECT 100K 12 ms
SELECT + WHERE 100K 18 ms
SELECT + ORDER BY 100K 35 ms
GROUP BY + Aggregates 100K 42 ms
INNER JOIN (1K × 1K) 1M Ergebnis 85 ms
CTE (2 Ebenen) 100K 28 ms
Subquery (EXISTS) 100K 22 ms

Skalierungsverhalten

Vertikale Skalierung

Kerne LSM Write LSM Read Vector Search
1 580K 720K 2.0 ms
4 1.9M 2.6M 1.1 ms
8 3.4M 4.8M 0.7 ms
16 5.8M 7.2M 0.5 ms

Speicherverbrauch

Komponente Basis-Speicher Pro-Entity Overhead
LSM MemTable 64 MB (fest) ~1.2× Rohdaten
B-Tree 8 MB (fest) ~8 bytes/Key
HNSW Index ~580 bytes/Vektor (dim=128)
Graph ~32 bytes/Knoten, ~24 bytes/Kante
FTS Index ~40% von Rohtext
Page Cache 256 MB (konfigurierbar)

Tuning-Leitfaden

Für Write-intensive Workloads

export BARADB_MEMTABLE_SIZE_MB=256
export BARADB_WAL_SYNC_INTERVAL_MS=10
export BARADB_COMPACTION_INTERVAL_MS=30000

Für Read-intensive Workloads

export BARADB_CACHE_SIZE_MB=1024
export BARADB_BLOOM_BITS_PER_KEY=10
export BARADB_COMPACTION_INTERVAL_MS=120000
export BARADB_VECTOR_EF_CONSTRUCTION=200
export BARADB_VECTOR_EF_SEARCH=128
export BARADB_VECTOR_M=32

Für Graph Analytics

export BARADB_GRAPH_PAGE_RANK_ITERATIONS=20
export BARADB_GRAPH_LOUVAIN_RESOLUTION=1.0