Files
Baradb/PLAN.md
T
dimgigov d259c1a1fc fix(distributed): 2PC atomicity, DISTTXN handler, sharding bugs, gossip timers
- disttxn: prepare failure rolls back already-prepared participants (C1)
- disttxn: commit failure rolls back committed participants (C2)
- server: DISTTXN handler uses real DistTxnManager (C3)
- server: DistTxnManager initialized in newServer() (H1)
- sharding: getShardRange returns -1 instead of 0 for out-of-range keys (M6)
- sharding: binary search in consistent hashing ring (M7)
- gossip: startHealthCheck() and startGossipRound() async loops
- 283 tests, 0 failures
2026-05-07 14:13:17 +03:00

2.2 KiB
Raw Blame History

BaraDB — PLAN

Всички задачи завършени. Базата е production-ready.


Разпределени модули — status след сесия 5

Поправено

Модул Промяна
disttxn 2PC atomicity: prepare failure → rollback на вече готови участници. Commit failure → rollback на вече commit-нати. Няма частичен commit.
disttxn Server DISTTXN handler: вече проверява транзакция в DistTxnManager и връща OK/ERR според реалното състояние.
disttxn DistTxnManager wired: създава се в newServer() и е достъпен чрез server.distTxnManager.
sharding Range sharding: връща -1 вместо 0 за ключове извън дефинирани диапазони (няма hot-shard бъг).
sharding Consistent hashing: бинарно търсене вместо O(n) линейно.
gossip Health check timer: startHealthCheck(intervalMs) async loop.
gossip Gossip round timer: startGossipRound(intervalMs) async loop.

⚠️ Оставащи distributed gaps (non-critical за single-node)

Модул Gap
raft RaftNetwork.run() не се извиква от main() — няма Raft cluster при старт.
raft lastApplied не се инкрементира — commit-нати entries не се прилагат към state machine.
raft asyncCheck поглъща грешки.
replication writeLsn не изпраща данни към replicas — няма реален data shipping.
gossip Няма UDP/TCP transport за gossip messages — in-memory само.
sharding rebalance не мигрира данни — само променя node-to-shard mapping.
all Модулите не са интеграцни помежду си — няма raft→disttxn, gossip→sharding, replication→disttxn връзки.

Завършено (обща сума: 5 сесии)

283 теста — 0 failure-а.