~bigbes/tarantool-etcd · parade

main · last commit 1 month ago · 2npkec0r

← Back to the parade

tarantool-etcd-tzk Acked writes are not fsynced — shipped config.yaml has no wal section Lined Up

status: open P2 bug etcd-changelog-sweep
bd update tarantool-etcd-tzk --claim bd close tarantool-etcd-tzk
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-07-17T13:20:53Z
Updated2026-07-17T13:20:53Z
Description
etcd fdatasyncs the WAL before responding, so an acked write survives power loss.

Our ack ORDERING is correct (box.commit() before the response — app/etcd/kv.lua:566-586, app/etcd/txn.lua:278-292), but the shipped config.yaml:30-34 has NO wal: section, so Tarantool defaults to wal_mode='write' (page cache, no fsync). An acked write survives a process crash but NOT power loss — weaker than etcd on the same wire ack.

Telling detail: the bench harness explicitly sets WalMode="fsync" 'for symmetric durability' (tests/conformance/bench/benchharness/spawn.go:42-49). So our benchmarks measure fsync durability while the shipped default does not provide it. That asymmetry should be a decision, not an accident.

Judgment call: arguably deployment config rather than a code gap — one line closes it. Filed so the choice is explicit either way.
Acceptance criteria
Either wal.mode: fsync in config.yaml, or an explicit docs/TODO.md divergence stating the shipped default trades durability for throughput and why the bench harness differs.

Depends on

No outgoing dependencies.

Depended on by

Nothing depends on this issue.

No comments.

  • Eugene Blikh created the issue · 2026-07-17T16:20:52Z
  • Eugene Blikh added label etcd-changelog-sweep · 2026-07-17T16:20:52Z
Stored rows — what this pane was built from, as read
issues 1 row
id tarantool-etcd-tzk
content_hash 3118f9aa62633997a681d45e16a91f84bed91eb8b469c292c08f094d08840e0d
title Acked writes are not fsynced — shipped config.yaml has no wal section
description etcd fdatasyncs the WAL before responding, so an acked write survives power loss. Our ack ORDERING is correct (box.commit() before the response — app/etcd/kv.lua:566-586, app/etcd/txn.lua:278-292), but the shipped config.yaml:30-34 has NO wal: section, so Tarantool defaults to wal_mode='write' (page cache, no fsync). An acked write survives a process crash but NOT power loss — weaker than etcd on the same wire ack. Telling detail: the bench harness explicitly sets WalMode="fsync" 'for symmetric durability' (tests/conformance/bench/benchharness/spawn.go:42-49). So our benchmarks measure fsync durability while the shipped default does not provide it. That asymmetry should be a decision, not an accident. Judgment call: arguably deployment config rather than a code gap — one line closes it. Filed so the choice is explicit either way.
design
acceptance_criteria Either wal.mode: fsync in config.yaml, or an explicit docs/TODO.md divergence stating the shipped default trades durability for throughput and why the bench harness differs.
notes
status open
priority 2
issue_type bug
assignee NULL
estimated_minutes NULL
created_at 2026-07-17T13:20:53Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-07-17T13:20:53Z
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 0
labels 1 row
issue_id tarantool-etcd-tzk
label etcd-changelog-sweep
events 2 rows
id 019f703c-aefa-7f23-8f17-8d0d098ddf0f
issue_id tarantool-etcd-tzk
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-07-17T16:20:52Z
id 019f703c-aefb-7a31-8801-577c26cb2bec
issue_id tarantool-etcd-tzk
event_type label_added
actor Eugene Blikh
old_value NULL
new_value NULL
comment Added label: etcd-changelog-sweep
created_at 2026-07-17T16:20:52Z