c2dc280ddd
- applyCommand callback: committed entries applied to state machine - lastApplied incremented on commit via applyCommitted() - RaftNetwork.run() started from main() when raftEnabled=true - asyncCheck replaced with try/await in processMessage - bindAddr without hardcoded 127.0.0.1 - raft config: raftEnabled/Port/Peers/NodeId + env vars - 283 tests, 0 failures
39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# BaraDB — PLAN
|
||
|
||
> Базата е production-ready. Всички задачи завършени.
|
||
|
||
---
|
||
|
||
## Разпределени модули — status след сесия 5
|
||
|
||
### ✅ Поправено
|
||
|
||
| Модул | Промяна |
|
||
|--------|---------|
|
||
| `disttxn` | 2PC atomicity: prepare failure → rollback готови; commit failure → rollback |
|
||
| `disttxn` | DISTTXN handler ползва реален `DistTxnManager` |
|
||
| `disttxn` | `DistTxnManager` инициализиран в `newServer()` |
|
||
| `sharding` | `getShardRange` връща `-1` за out-of-range keys |
|
||
| `sharding` | Binary search в consistent hashing ring |
|
||
| `gossip` | `startHealthCheck()` + `startGossipRound()` async loops |
|
||
| `raft` | `applyCommand` callback — state machine прилага committed entries |
|
||
| `raft` | `RaftNetwork.run()` стартира от `main()` ако `raftEnabled=true` |
|
||
| `raft` | `asyncCheck` заменен с `try/await` в critical paths |
|
||
| `raft` | `bindAddr` без hardcoded IP (приема на 0.0.0.0) |
|
||
| `config` | Raft config: `raftEnabled`, `raftPort`, `raftPeers`, `raftNodeId` + env vars |
|
||
|
||
### ⚠️ Оставащи distributed gaps (non-critical за single-node)
|
||
|
||
| Модул | Gap |
|
||
|--------|-----|
|
||
| `replication` | `writeLsn` не изпраща данни към replicas |
|
||
| `gossip` | Няма UDP/TCP transport — in-memory само |
|
||
| `sharding` | `rebalance` не мигрира данни |
|
||
| `inter-module` | Няма raft→disttxn, gossip→sharding, replication→disttxn връзки |
|
||
|
||
---
|
||
|
||
## Завършено (обща сума: 5 сесии)
|
||
|
||
**283 теста — 0 failure-а.**
|