Lavik 0.1.0

The first stable release: packaged Lavik Admin, expanded managed Redis compatibility, a new Meta Raft engine, and extensive storage and recovery improvements across 135 commits since beta.1.

Release At A Glance

Released October 13, 2026. v0.1.0 identifies commit feb61224e414c5653fd09560e20c9d214db1e3ac. These notes summarize the 135 commits after v0.1.0-beta.1 (3955b98d43b312324aa8d52775df52cfb111c0d0), grouped by their impact on deployment, applications and operations. Lavik remains Apache 2.0.

Full Beta-To-Stable Commit Comparison →

GitHub Release And Assets →

Deployment And Lavik Admin

Linux AMD64 and ARM64 archives are available in Minimal and Standard variants. They now bundle Lavik Admin and its Node.js runtime alongside lavik, lavik-meta and lavik-ctl. Admin adds host preparation over SSH, version selection, node placement, deployment progress, topology management and monitoring setup. Its CLI shares the same workspace and operation records.

The website also provides signed APT packages at Debian version 0.1.0-1 and multi-architecture Docker tags eloqdata/lavik:0.1.0 and eloqdata/lavik:0.1.0-cluster. APT packages and these server images exclude Admin; use an archive for the UI.

Admin And Shared CLI Management →

Get Started With 0.1.0 →

Meta, Replication And Discovery

Meta replaces NuRaft with an asynchronous etcd Raft runtime. The new persistence layout uses RAFT identity, WAL and snapshot state, and requires the initial manifest only for fresh genesis. Data nodes obtain their immutable Single or Cluster client mode from the committed Meta manifest. Control sessions move to a dedicated worker, with bounded connection races and improved leader discovery.

Meta adds independently authenticated Sentinel-compatible discovery for managed Single, including peer discovery, failover events, TLS and advertised hostnames. Replication changes accelerate FULL transfer and replica startup, preserve ordering across snapshot handoff, share bounded FULL admission, and improve candidate recovery and failover progress. Stale client connections are retired at serving boundaries.

Asynchronous etcd Raft Runtime →

Client Mode And Meta Configuration Changes →

Sentinel TLS And Hostname Support →

Redis Compatibility And Data Movement

Managed Single expands to all 16 logical databases and cross-slot multi-key operations. Managed command handling adds transactions, Lua/Functions, Stream reads, SORT_RO and RDB saves; the final release removes the obsolete Single-specific command gate. Cluster mode retains DB0 and same-slot constraints. Function catalogs and FLUSH operations remain scoped to each receiving Group.

Scheduled background saves are available through save rules and remain disabled unless configured. LAVIK.REPLICAOF explicitly selects native standalone Lavik replication; REPLICAOF remains the Redis-upstream path. RedisShake import into fresh managed targets and emergency export from serving primaries gain dedicated procedures and acceptance tests, including object/expiry and cutover boundaries.

Managed Composite Commands And Streams →

Remove The Obsolete Managed Single Gate →

Native Standalone Replication Command →

RedisShake Import Into Managed Targets →

Stable Compatibility Overview →

Storage, Memory And Request Processing

Large Strings use fixed 8 KiB segments, Streams move to grouped logical records, and small grouped collections can compact below 8 KiB. Long keys are shared through UUID records. The release reduces Hash/Set write allocation and lookup work, pipelines grouped successors through shared commits, improves Sorted Set routing and RESTORE construction, and overlaps List/Stream range reads.

The default flush interval changes to 100 ms and the registered read payload defaults to 32 KiB. io_uring storage shares buffer arenas and retries registration within the memlock budget. Eligible disk GETs and compact collection reads can run on the connection worker; reply assembly and Pub/Sub cleanup also avoid repeated allocation and copying. These are implementation changes, not a new benchmark result or an SLA promise.

Segment Large Strings →

Grouped Stream Storage →

Shared io_uring Buffer Arenas →

Disk GET On The Connection Worker →

Recovery And Correctness Fixes

Shutdown checkpoints now cover grouped collections and indirect keys, including restoration after SPDK ownership changes. Fixes address grouped auxiliary relocation deadlocks, cold-recovery memory bounds, detached-index alignment during reclamation, expired grouped roots, adjacent Sorted Set pages during score changes, and SPDK qpair polling starvation. Native AMD64/ARM64 and client compatibility coverage continues to exercise release behavior.

Grouped And Indirect-Key Checkpoints →

Checkpoints Across SPDK Ownership Changes →

Detached Index Alignment Fix →

Before Upgrading From Beta.1

Use matching 0.1.0 Data, Meta and ctl binaries. Data startup now uses --node-id, --announce-ip and --meta-seed. The old --cluster-enabled and --cluster-* forms are removed; local --client-mode and --meta-managed flags are also removed. Set client_mode in the initial Meta manifest instead.

For a stable Meta restart, retain the same member ID and state directory and omit --initial-cluster-manifest once RAFT exists. Do not translate beta NuRaft state by renaming markers or deleting metadata. This release does not establish a supported mixed-version rolling upgrade or automatic in-place beta data migration. Retain backups and rehearse a fresh stable deployment with verified logical data transfer and a rollback plan.

Platform requirements remain Linux 6.1+, usable io_uring and Ubuntu 24.04-compatible glibc, including SPDK/DPDK deployments. Minimal stays on kernel TCP/io_uring; Standard requires explicit backend setup. Existing benchmark pages retain their original tested releases and conditions.

0.1.0 Installation And Operations →

Archived Beta.1 Documentation →