~bigbes/tarantool-etcd · parade

main · last commit 1 month ago · 2npkec0r

← Back to the parade

tarantool-etcd-ovo Learner: durable applied_index (WAL-equivalent for restart) Lined Up

status: open P2 task milestone:m5-clustering
bd update tarantool-etcd-ovo --claim bd close tarantool-etcd-ovo
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-05-20T06:45:17Z
Updated2026-07-17T14:27:37Z
Description
Persist enough raft state (currentTerm/HardState, applied_index, ConfState) so a restart resumes from the last applied entry instead of replaying from zero or forcing a full snapshot. Store in a dedicated space (e.g. etcd_raft_meta) written in the same transaction as each applied entry. On boot in learner mode: read last applied_index, reconnect transport, and request entries after it (or a snapshot if the leader has compacted past it). Tarantool's own WAL gives us durability of the *space writes*; this issue is specifically the raft bookkeeping that lets us re-attach to the cluster correctly.
Notes
etcd stores this as raft WAL + snapshot metadata; we collapse it to a meta space since Tarantool's WAL already durably persists the applied data.

Depends on

  • tarantool-etcd-6js — Learner: apply loop — InternalRaftRequest -> existing handlers blocks open
  • tarantool-etcd-cnj — [epic] Raft-learner replica — join an etcd cluster as a non-voting member parent-child open

Depended on by

Nothing depends on this issue.

Prerequisite chain — everything this waits on, transitively

  • tarantool-etcd-6js — Learner: apply loop — InternalRaftRequest -> existing handlers blocks open
  • tarantool-etcd-boq — Learner: raft state machine (follower/learner subset) blocks open
  • tarantool-etcd-axs — Learner: rafthttp peer transport over nghttp2 blocks open
  • tarantool-etcd-umc — Learner: config block + role plumbing blocks open
  • tarantool-etcd-cnj — [epic] Raft-learner replica — join an etcd cluster as a non-voting member parent-child open
  • tarantool-etcd-7ey — Replica route: connect as read-only replica to an existing etcd cluster related open
  • tarantool-etcd-16d — Implement Maintenance.Snapshot RPC (streaming DB snapshot) related open
  • tarantool-etcd-4yb — Learner: raftpb + InternalRaftRequest proto schemas blocks open

No comments.

  • Eugene Blikh created the issue · 2026-05-20T09:45:16Z
  • Eugene Blikh added dependency on tarantool-etcd-6js · 2026-05-20T09:47:29Z
  • Eugene Blikh added under epic tarantool-etcd-cnj · 2026-05-20T09:47:29Z
  • Eugene Blikh added label milestone:m5-clustering · 2026-05-21T14:37:38Z
Stored rows — what this pane was built from, as read
issues 1 row
id tarantool-etcd-ovo
content_hash b02eee9877621d78af7f66286e7ff63fc6564aac6beeca0cb795fe667217cb17
title Learner: durable applied_index (WAL-equivalent for restart)
description Persist enough raft state (currentTerm/HardState, applied_index, ConfState) so a restart resumes from the last applied entry instead of replaying from zero or forcing a full snapshot. Store in a dedicated space (e.g. etcd_raft_meta) written in the same transaction as each applied entry. On boot in learner mode: read last applied_index, reconnect transport, and request entries after it (or a snapshot if the leader has compacted past it). Tarantool's own WAL gives us durability of the *space writes*; this issue is specifically the raft bookkeeping that lets us re-attach to the cluster correctly.
design
acceptance_criteria
notes etcd stores this as raft WAL + snapshot metadata; we collapse it to a meta space since Tarantool's WAL already durably persists the applied data.
status open
priority 2
issue_type task
assignee NULL
estimated_minutes NULL
created_at 2026-05-20T06:45:17Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-07-17T14:27:37Z
closed_at NULL
closed_by_session
external_ref NULL
spec_id
compaction_level 0
compacted_at NULL
compacted_at_commit NULL
original_size NULL
sender
ephemeral 0
wisp_type
pinned 0
is_template 0
mol_type
work_type
source_system
metadata <binary>
source_repo
close_reason
event_kind
actor
target
payload
await_type
await_id
timeout_ns 0
waiters
hook_bead
role_bead
agent_state
last_activity NULL
role_type
rig
due_at NULL
defer_until NULL
no_history 0
started_at NULL
is_blocked 1
labels 1 row
issue_id tarantool-etcd-ovo
label milestone:m5-clustering
dependencies 2 rows
id 21eff322-baea-5777-96c0-aa1d9ecc0c8a
issue_id tarantool-etcd-ovo
type blocks
created_at 2026-05-20T09:47:29Z
created_by Eugene Blikh
metadata <binary>
thread_id
depends_on_issue_id tarantool-etcd-6js
depends_on_wisp_id NULL
depends_on_external NULL
id a9139d4e-ecc4-5a12-94a5-7105b5a44b26
issue_id tarantool-etcd-ovo
type parent-child
created_at 2026-05-20T09:47:29Z
created_by Eugene Blikh
metadata <binary>
thread_id
depends_on_issue_id tarantool-etcd-cnj
depends_on_wisp_id NULL
depends_on_external NULL
events 2 rows
id 315e7be9-6d93-5ed9-bee8-f5ac6acb6334
issue_id tarantool-etcd-ovo
event_type label_added
actor Eugene Blikh
old_value NULL
new_value NULL
comment Added label: milestone:m5-clustering
created_at 2026-05-21T14:37:38Z
id f09c9c57-f1a2-5a14-8e2a-f80de1b83eb5
issue_id tarantool-etcd-ovo
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-05-20T09:45:16Z