fix(raft): gate snapshot build/restore, repoint http ctx, pre-tag docs
CI / test (push) Has been cancelled
CI / raft-e2e (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

This commit is contained in:
2026-07-31 04:46:05 +03:00
parent dac92d1741
commit a843f0a1a3
5 changed files with 56 additions and 36 deletions
+3
View File
@@ -48,6 +48,9 @@ Documented in [distributed.md](distributed.md). Supported scope:
- **Legacy non-raft REP replication infers delete from empty value** — the non-raft replication path still treats an empty value as a delete, so inserts into a PK-only table are misapplied over that path (the row vanishes). Use raft replication instead.
- **Snapshot-restore ctx staleness** — after an InstallSnapshot restore, HTTP endpoints using the startup-captured ctx may serve stale data until the node is restarted; the `/query` path is fresh per-request. Pre-existing client connections likewise see pre-restore state — reconnect after a restore.
- **FK-cascade divergence under raft** — `ON DELETE/UPDATE CASCADE` (and `SET NULL`) effects are not raft-replicated: followers only apply the parent row's KV change, so cascaded child rows persist on followers. Avoid FK actions on raft-replicated tables, or accept periodic snapshot resync.
- **Uncommitted writes in snapshots** — the leader applies writes locally before raft majority commit; a snapshot taken in that window can include writes that never commit (phantom rows after restore + leadership change). Narrow window; fix tracked for a later release.
- **Event-loop stall during snapshot build/restore** — snapshot build/restore performs blocking tar/gzip on the node's event loop; large data dirs can stall heartbeats and trigger an election mid-transfer.
## Operational requirements
+6 -6
View File
@@ -1,4 +1,4 @@
# Release checklist — v1.2.0 Production GA
# Release checklist — v1.3.0 raft-supported
Use before tagging and publishing artifacts.
@@ -6,8 +6,8 @@ Use before tagging and publishing artifacts.
- [ ] Working tree clean on `main`
- [ ] [Known limitations](known-limitations.md) accurate
- [ ] `CHANGELOG.md` has dated `## [1.2.0]` (not Unreleased for shipped items)
- [ ] `baradadb.nimble` version `1.2.0`
- [ ] `CHANGELOG.md` has dated `## [1.3.0]` (not Unreleased for shipped items)
- [ ] `baradadb.nimble` version `1.3.0`
## Tests
@@ -44,17 +44,17 @@ docker compose -f docker-compose.prod.yml config >/dev/null
```bash
nimble build_release # or: nim c -d:release -o:build/baradadb src/baradadb.nim
docker build -t baradb:1.2.0 -t baradb:latest .
docker build -t baradb:1.3.0 -t baradb:latest .
```
## Tag
```bash
git tag -a v1.2.0 -m "BaraDB v1.2.0 Production GA (single-node)"
git tag -a v1.3.0 -m "BaraDB v1.3.0 raft-supported"
git push origin main --tags
```
## Post-release
- [ ] Smoke: start prod compose, `/health` → ok, auth required for `/query`
- [ ] Announce: single-node GA; Raft experimental (link known-limitations)
- [ ] Announce: raft-supported release (3-node, `default` DB); link known-limitations