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
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
126 lines
4.1 KiB
Markdown
126 lines
4.1 KiB
Markdown
# Ръководство за Производителност
|
||
|
||
## Методология на Бенчмарковете
|
||
|
||
Всички бенчмаркове са проведени с:
|
||
- **Компилатор**: Nim 2.2.0 с `-d:release --opt:speed`
|
||
- **CPU**: AMD Ryzen 9 5900X (12 ядра / 24 нишки)
|
||
- **Памет**: 64 GB DDR4-3600
|
||
- **Диск**: Samsung 980 Pro NVMe SSD
|
||
- **ОС**: Ubuntu 24.04 LTS
|
||
|
||
Пускане на пълния бенчмарк сюит:
|
||
|
||
```bash
|
||
nim c -d:ssl -d:release -r benchmarks/bench_all.nim
|
||
```
|
||
|
||
## Storage Engine Бенчмаркове
|
||
|
||
### LSM-Tree Key-Value
|
||
|
||
| Метрика | Стойност |
|
||
|---------|----------|
|
||
| Пропускателна способност при запис | ~580,000 ops/s |
|
||
| Пропускателна способност при четене | ~720,000 ops/s |
|
||
| Средна латентност при запис | 1.7 µs |
|
||
| Средна латентност при четене | 1.4 µs |
|
||
|
||
LSM-Tree използва 64MB MemTable, WAL fsync при всеки запис и size-tiered compaction с 6 нива.
|
||
|
||
### B-Tree Индекс
|
||
|
||
| Метрика | Стойност |
|
||
|---------|----------|
|
||
| Пропускателна способност при вмъкване | ~1,200,000 ops/s |
|
||
| Пропускателна способност при точково търсене | ~1,500,000 ops/s |
|
||
| Range scan (1000 ключа) | ~0.3 ms |
|
||
|
||
## Vector Engine Бенчмаркове
|
||
|
||
### HNSW Индекс
|
||
|
||
| Метрика | Стойност |
|
||
|---------|----------|
|
||
| Вмъкване (dim=128) | ~45,000 вектора/s |
|
||
| Търсене топ-10 (dim=128, n=10K) | ~2 ms |
|
||
| Търсене топ-10 (dim=128, n=100K) | ~8 ms |
|
||
|
||
### SIMD Функции за Разстояние
|
||
|
||
| Операция | dim=128 | dim=768 | dim=1536 |
|
||
|----------|---------|---------|----------|
|
||
| Косинусово разстояние | 4.2M/s | 850K/s | 420K/s |
|
||
| L2 (Евклидово) | 4.5M/s | 920K/s | 450K/s |
|
||
| Скаларно произведение | 4.8M/s | 980K/s | 480K/s |
|
||
|
||
## Full-Text Search Бенчмаркове
|
||
|
||
| Метрика | Стойност |
|
||
|---------|----------|
|
||
| Индексиране | ~320,000 документа/s |
|
||
| BM25 търсене | ~28,000 заявки/s |
|
||
| Fuzzy търсене (distance=2) | ~850 заявки/s |
|
||
|
||
## Graph Engine Бенчмаркове
|
||
|
||
| Операция | Пропускателна способност |
|
||
|----------|--------------------------|
|
||
| Добавяне на възел | ~2.5M ops/s |
|
||
| Добавяне на ребро | ~1.8M ops/s |
|
||
| BFS (1K възела, 5K ребра) | ~12K обхождания/s |
|
||
| Dijkstra най-кратък път | ~120 µs |
|
||
| PageRank (10 итерации) | ~450 графа/s |
|
||
|
||
## Протоколни Бенчмаркове
|
||
|
||
| Протокол | Връзки | Заявки/s | Латентност p99 |
|
||
|----------|--------|----------|----------------|
|
||
| Бинарен (localhost) | 1 | 45,000 | 0.4 ms |
|
||
| Бинарен (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 |
|
||
|
||
## Вертикален Мащабинг
|
||
|
||
| Ядра | LSM Запис | LSM Четене | Векторно Търсене |
|
||
|------|-----------|------------|-------------------|
|
||
| 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 |
|
||
|
||
## Ръководство за Настройка
|
||
|
||
### За Write-Heavy Натоварвания
|
||
|
||
```bash
|
||
export BARADB_MEMTABLE_SIZE_MB=256
|
||
export BARADB_WAL_SYNC_INTERVAL_MS=10
|
||
export BARADB_COMPACTION_INTERVAL_MS=30000
|
||
```
|
||
|
||
### За Read-Heavy Натоварвания
|
||
|
||
```bash
|
||
export BARADB_CACHE_SIZE_MB=1024
|
||
export BARADB_BLOOM_BITS_PER_KEY=10
|
||
export BARADB_COMPACTION_INTERVAL_MS=120000
|
||
```
|
||
|
||
### За Векторно Търсене
|
||
|
||
```bash
|
||
export BARADB_VECTOR_EF_CONSTRUCTION=200
|
||
export BARADB_VECTOR_EF_SEARCH=128
|
||
export BARADB_VECTOR_M=32
|
||
```
|
||
|
||
### За Графова Аналитика
|
||
|
||
```bash
|
||
export BARADB_GRAPH_PAGE_RANK_ITERATIONS=20
|
||
export BARADB_GRAPH_LOUVAIN_RESOLUTION=1.0
|
||
```
|