drha1c7anbug904l0qt002jdk53d0gf1 · 15 rows
| key | value |
|---|---|
| auto_compact_enabled | false |
| compact_batch_size | 50 |
| compact_parallel_workers | 5 |
| compact_tier1_days | 30 |
| compact_tier1_dep_levels | 2 |
| compact_tier2_commits | 100 |
| compact_tier2_days | 90 |
| compact_tier2_dep_levels | 5 |
| compaction_enabled | false |
| issue_prefix | tarantool-etcd |
| kv.memory.box-watch-box-status-fires-on-more-than | box.watch('box.status') fires on more than ro flips (status transitions, election term bumps, replica connect) — so any DESTRUCTIVE once-per-promotion work in its callback must be edge-guarded (track previous box.info.ro, run only on the RO->RW transition). Idempotent calls (schema.init, lease.start_expiry) are fine unconditionally. Concrete case: lease.rebuild_deadlines resets every lease deadline to now+ttl; running it on every RW callback would keep refreshing live leases so they never expire. Guard is in app/roles/etcd.lua status_watcher (bd-3sp). Verified disk bench after the keep-alive WAL fix on work.lab.local: LeaseKeepAlive 6021-6327 ops/s (was ~207), p50 142-152us (was 4550us). |
| kv.memory.ee-sdk-binary-for-testing | Tarantool Enterprise SDK binary on this dev machine: /Users/blikh/data/workspace/sdk/3.7.0-r137/tarantool (Enterprise 3.7.0). The default 'tarantool' on PATH is Community 3.8.0 and CANNOT run EE-only paths (config.etcd source, etc.). To test any EE feature, export TARANTOOL_EE=/Users/blikh/data/workspace/sdk/3.7.0-r137/tarantool (the examples' Justfiles read TARANTOOL_EE; default binary is now 'tarantool-ee'). Community is fine for the plain Lua role + Lua test suite. |
| kv.memory.election-failover-boot-ordering | Booting a multi-instance Tarantool replicaset under replication.failover=election: box.cfg() BLOCKS until a quorum (N/2+1) of peers is reachable, so anything that runs after box.cfg — a custom role's apply(), its listen port opening — won't happen on a single instance until its peers also start. A boot script must launch ALL instances first, THEN wait for each one's readiness; waiting for instance-1's port before starting instance-2 deadlocks. Pattern in examples/tarantool-ee-self-hosted-etcd/Justfile (up-file). Also seen: a transient 'Quorum collection for a synchronous transaction is timed out' during role apply on a racing fresh boot — recovers on retry. |
| kv.memory.self-hosted-etcd-config-coldboot | A Tarantool EE cluster CAN host its own etcd config store (every node runs app.roles.etcd, KV replicated under Raft) and migrate file->etcd live by rolling restart — VERIFIED end-to-end on EE 3.7.0 in examples/tarantool-ee-self-hosted-etcd. Hard rules learned: (1) cannot cold-boot (config.etcd fetches before box.cfg/role-start; all-down = nobody serves etcd = deadlock) — retain local cluster-config.yaml as cold-boot seed; (2) the EE config.etcd source pins to Endpoints[0] and does NOT fail over on 'no leader' (same as clientv3 pick-first) — so TT_CONFIG_ETCD_ENDPOINTS MUST list the current Raft leader FIRST or boot dies on a follower; the boot fetch is NOT a plain Range so read_pref=any doesn't save it; (3) migrate the Raft leader LAST and wait for a stable single-leader between rolling steps. read_pref=any still set as defense for plain Range reads. |
| kv.memory.tarantool-ee-uses-etcd-as-a-centralized-config | Tarantool EE uses etcd as a centralized-config backend (config.storage / etcd source in TT 3.x): on boot it reads config from etcd then opens a Watch with prev_kv set to diff old-vs-new config on live reload. So Watch prev_kv is a first-class ecosystem consumer, not just a conformance checkbox — it gates drop-in TT EE compatibility. Feature is implemented (app/etcd/watch.lua lookup_prev_kv); the open work is the TestWatchWithPrevKV conformance case (tarantool-etcd-9z2, Phase 5f). |