pingqiu
3ec8fab2f1
feat: Phase 10 — control-plane closure (identity, convergence, idempotence)
Stable identity on wire:
- ServerID fields in proto (replica_server_id, server_id on ReplicaAddrMessage)
- volumeServerId wired through volume.go → BlockService.SetServerID
- Identity derived from canonical server ID, not transport addresses
Assignment convergence:
- V2 idempotence via lastAppliedAssignment.equals (full replica set comparison)
- setupPrimaryReplication/Multi idempotence guards
- ProcessAssignments with V2 + V1 dual-path assignment handling
Master-driven control loop:
- RecoveryManager: serialized cancel-and-drain via done channels
- Per-replica heartbeat state reporting (ReplicaShipperStatus)
- masterServerBackend: VolumeBackend calling real MasterServer in-process
- RestoreBlockSnapshot RPC (master + volume server proto)
QA tests (P10 P1-P4):
- Identity: ServerID on wire, fail-closed on missing
- Convergence: assignment delivery, epoch monotonicity, registry coherence
- Idempotence: repeated assignment, multi-replica set comparison
- Control loop: integrationMaster + real allocator + proto round-trip
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:25:43 -07:00
..
2026-02-16 16:58:15 -08:00
2026-02-23 19:11:17 -08:00
2026-01-07 13:06:08 -08:00
2026-02-16 02:15:14 -08:00
2026-01-07 13:06:08 -08:00
2026-02-23 16:27:08 -08:00
2026-02-16 02:15:14 -08:00
2025-11-03 15:27:20 -08:00
2022-07-29 00:17:28 -07:00
2026-01-06 00:09:52 -08:00
2025-08-06 10:09:26 -07:00
2026-02-23 19:11:17 -08:00
2026-01-14 21:37:50 -08:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2026-01-07 13:06:08 -08:00
2026-02-10 18:38:38 -08:00
2026-01-07 13:06:08 -08:00
2026-01-04 11:26:21 -08:00
2026-01-07 13:06:08 -08:00
2024-07-16 09:15:55 -07:00
2026-01-07 13:06:08 -08:00
2026-02-20 18:42:00 -08:00
2021-05-29 06:45:27 -07:00
2025-12-23 14:48:50 -08:00
2026-02-26 14:20:42 -08:00
2025-10-13 18:05:17 -07:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2025-12-25 11:36:38 -08:00
2025-12-14 16:02:06 -08:00
2026-01-26 11:28:23 -08:00
2026-02-18 13:42:41 -08:00
2025-12-17 12:27:43 -08:00
2026-02-09 18:13:02 -08:00
2026-03-06 00:05:17 -08:00
2026-02-18 13:42:41 -08:00
2026-02-26 14:20:42 -08:00
2022-02-27 03:03:19 -08:00
2025-06-12 08:19:47 -07:00
2026-01-07 13:06:08 -08:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2026-02-06 11:33:36 -08:00
2025-07-11 10:19:27 -07:00
2025-12-18 17:44:36 -08:00
2025-10-13 18:05:17 -07:00
2026-02-25 18:02:35 -08:00
2026-02-26 14:20:42 -08:00
2025-07-02 18:03:17 -07:00
2026-02-26 14:20:42 -08:00
2026-02-25 14:30:21 -08:00
2026-01-07 13:06:08 -08:00
2026-02-20 18:42:00 -08:00
2026-01-07 13:06:08 -08:00
2024-11-04 12:08:25 -08:00
2026-01-07 13:06:08 -08:00
2022-07-29 00:17:28 -07:00
2026-04-02 16:25:43 -07:00
2026-01-28 10:36:19 -08:00
2026-02-25 18:02:35 -08:00
2026-02-18 13:42:41 -08:00
2026-02-18 13:42:41 -08:00