Repository navigation
Ubuntu 24.04 / GCC 13 release build.
All packages include lavik, lavik-meta, lavik-ctl, Lavik Admin,
its Node.js runtime, LICENSE and notices. Run ./lavik-admin and open
http://localhost:4173 to deploy and manage clusters over SSH.
- Standard: DPDK/SPDK included; x86-64-v2 or ARMv8-A+CRC32 required.
- Minimal: kernel TCP/io_uring only; compiler-default CPU target.
Both variants require Linux 6.1+ with io_uring enabled for lavik and
lavik-meta, including DPDK/SPDK deployments, and Ubuntu 24.04-compatible glibc.
Source: feb61224e414c5653fd09560e20c9d214db1e3ac
Hardware and platform requirements
What's Changed
- docs: publish beta.1 SPDK benchmarks and setup guide by @thweetkomputer in #84
- perf(cluster): accelerate FULL sync and replica startup by @liunyl in #83
- meta: replace NuRaft with asynchronous etcd Raft runtime by @thweetkomputer in #85
- chore: remove CLAUDE.md symlink by @LAJ-THU in #119
- feat(meta): add independently authenticated Sentinel server by @liunyl in #120
- perf(storage): reduce SET and defrag overhead by @thweetkomputer in #87
- test: fix asynchronous apply and TTL timing races by @thweetkomputer in #123
- feat(config)!: separate client mode and Meta replication management by @liunyl in #121
- perf: optimize index lookups and SET handling; default flush to 100ms by @thweetkomputer in #124
- fix: avoid allocation deadlock in grouped auxiliary relocation by @thweetkomputer in #126
- fix(replication): encode recovered cluster population group identity by @thweetkomputer in #127
- fix: order Meta startup after recovery and stabilize expiration fault test by @thweetkomputer in #125
- Fix collection FULL validation overhead and replica abort stack growth by @thweetkomputer in #129
- fix(replication): preserve FULL across tailing storage mutations by @thweetkomputer in #146
- fix(replication): preserve FULL apply context for wrapped TTL effects by @thweetkomputer in #147
- feat(meta): serve managed Single with committed modes and replica reads by @liunyl in #130
- fix(replication): preserve FULL ordering and publish-only replay by @thweetkomputer in #148
- chore: consolidate documentation and release packaging by @thweetkomputer in #152
- Add Lavik Admin with shared CLI management and Docker quick start by @zhangh43 in #155
- docs: add a unified contributing guide by @thweetkomputer in #156
- feat(cluster): isolate Meta sessions on a dedicated worker by @thweetkomputer in #128
- perf(cluster): encode control messages once per send by @liunyl in #157
- fix(replication): wait for replica backup cuts before EXEC and COPY by @thweetkomputer in #159
- build: simplify configuration workflow by @thweetkomputer in #168
- perf(storage): index batched collection writes and reuse encoders by @thweetkomputer in #166
- style: expand pre-commit formatting coverage by @thweetkomputer in #173
- feat(redis): support scheduled background saves by @thweetkomputer in #172
- test(cluster): add fixed-version standard Cluster client compatibility matrix (#170) by @liunyl in #176
- feat(storage): split streams into grouped logical records by @thweetkomputer in #169
- feat(cluster): admit Single cross-slot multi-key and blocking commands by @liunyl in #175
- feat(meta): serve authoritative Sentinel topology discovery by @liunyl in #177
- feat(storage): group large Strings into fixed 8 KiB segments by @thweetkomputer in #174
- perf(storage): batch large sorted-set RESTORE creation by @thweetkomputer in #182
- feat(single): enable managed logical databases by @liunyl in #180
- doc: update readme by @thweetkomputer in #185
- feat(storage): compact grouped collections below 8 KiB by @thweetkomputer in #181
- perf(redis): batch pending Pub/Sub and MONITOR writes by @thweetkomputer in #184
- feat(meta): add Sentinel peer discovery and failover notifications by @liunyl in #186
- feat(function): authorize catalog mutations through the local Group by @liunyl in #188
- feat(redis): enable Group-scoped managed FLUSH by @liunyl in #190
- Added a Dockerfile with both build targets (deploy/docker/Dockerfile)… by @zhangh43 in #194
- Share long keys through UUID records and group large Strings by @thweetkomputer in #192
- Retire stale Redis clients at managed serving boundaries by @liunyl in #189
- feat(redis): enable managed composite commands and Stream reads by @liunyl in #195
- feat(redis): enable managed SORT_RO and RDB saves by @liunyl in #204
- feat(redis): support RedisShake imports into managed targets by @liunyl in #200
- fix(meta): wait for source lease before cluster-create rebuild by @thweetkomputer in #202
- feat(replication): add standalone LAVIK.REPLICAOF by @thweetkomputer in #198
- feat(replication): support RedisShake emergency export from serving Primaries by @liunyl in #206
- Optimize Stream page routing and range reads by @thweetkomputer in #207
- Bound Tx backlog and parallelize cleanup and external reads by @thweetkomputer in #203
- Optimize grouped HGET and Set single-field reads by @thweetkomputer in #212
- Fix native FULL error propagation during handoff cleanup by @thweetkomputer in #213
- feat(meta): support Sentinel TLS and advertised hostnames by @liunyl in #210
- Bound grouped auxiliary memory during cold recovery by @thweetkomputer in #209
- Reduce grouped index work and wake durability waits on completion by @thweetkomputer in #215
- perf: streamline write requests and vectorize Redis replies by @thweetkomputer in #214
- Keep Meta control reads responsive during directive result commits by @thweetkomputer in #216
- Bound GEO and ZSet random reads and range removals by @thweetkomputer in #218
- fix(meta): preserve alternate-stack shutdown signal delivery by @thweetkomputer in #220
- perf(meta): share bounded audit pages across committed views by @thweetkomputer in #221
- Speed up large Hash and Set RESTORE imports by @thweetkomputer in #219
- fix(cluster): race bounded Meta TCP connection attempts by @thweetkomputer in #223
- perf(storage): reduce ZSet RESTORE index build work by @thweetkomputer in #224
- fix(meta): isolate cluster creation progress across groups by @thweetkomputer in #225
- perf(meta): overlap bounded failover proposals across groups by @thweetkomputer in #226
- perf(storage): pack grouped physical index pages for point writes by @thweetkomputer in #222
- fix(storage): preserve publication headroom during collection ingest by @thweetkomputer in #229
- perf(storage): reduce temporary work in grouped Hash and Set writes by @thweetkomputer in #228
- fix(redis): preserve FULL transaction effects and initial blocking attempts by @thweetkomputer in #232
- test(meta): handle reconnect retirement after storage failure by @thweetkomputer in #234
- Upgrade Lavik Admin by @zhangh43 in #211
- perf: reduce ordered collection metadata work on writes by @thweetkomputer in #233
- refactor(replication): unify native FULL session admission and drain by @liunyl in #239
- feat(replication): limit FollowOwner FULL to one session per Group by @liunyl in #240
- feat(replication): share native FULL admission with explicit rebuilds by @liunyl in #241
- fix(storage): adopt Bycorf SPDK qpair polling starvation fix by @thweetkomputer in #243
- storage: pipeline grouped successors through shared transaction commits by @thweetkomputer in #235
- fix(storage): run Tomb Raider for complete local populations by @liunyl in #242
- storage: reduce immutable grouped publication allocations by @thweetkomputer in #244
- perf(storage): reuse ZSet pages and checked member changes by @thweetkomputer in #246
- perf(storage): remove repeated ordered directory work and update Stream ranks locally by @thweetkomputer in #247
- fix(cluster): revisit Meta followers during leader discovery by @thweetkomputer in #248
- perf(ci): deduplicate shared HA tests and shard software suites by @liunyl in #245
- perf: share ordered metadata across tail appends and retirements by @thweetkomputer in #249
- perf(storage): reduce List read copies and inline encoding overhead by @thweetkomputer in #258
- perf(storage): avoid materializing Sorted Set scan members by @thweetkomputer in #260
- perf(storage): reuse prepared Hash and Set record payloads by @thweetkomputer in #259
- refactor(storage): organize grouped code and share page writing by @thweetkomputer in #262
- Stop recovering from C++ allocation failures by @thweetkomputer in #264
- perf(meta): capture owned observation facts for revalidation by @liunyl in #257
- perf(meta): capture scoped creation and membership inputs by @liunyl in #277
- perf(meta): capture command-specific proposal views by @liunyl in #278
- perf(meta): capture failover planning and detection inputs by @liunyl in #279
- perf(storage): reuse Stream directory prefixes across suffix inserts by @thweetkomputer in #265
- fix(storage): recover expired grouped roots after full-device reclamation by @thweetkomputer in #268
- perf(storage): reuse member-index leaves for point Sorted Set writes by @thweetkomputer in #266
- perf(stream): coalesce reply chunks and serialize borrowed fields by @thweetkomputer in #270
- perf(zset): read indexed scores from validated page views by @thweetkomputer in #280
- perf(storage): overlap List range reads and reduce reply allocation and copying by @thweetkomputer in #267
- perf(meta): share Data publication views and read exact directive results by @liunyl in #281
- perf(meta): capture Admin and Sentinel reads by purpose by @liunyl in #284
- perf: buffer repeated updates to large Hash and Set routing metadata by @thweetkomputer in #285
- perf: overlap pinned Stream range reads within an admitted page window by @thweetkomputer in #275
- perf(grouped): reuse verified root identity during page reads by @thweetkomputer in #282
- refactor: simplify shared grouped metadata types by @thweetkomputer in #286
- test(meta): complete purpose-specific view acceptance by @liunyl in #287
- refactor(storage): unify grouped indexes and ZSet routing by @thweetkomputer in #288
- perf(storage): optimize grouped directory updates, ranks and memory by @thweetkomputer in #289
- fix(storage): reduce single-pass recovery memory by @thweetkomputer in #290
- Updated the live Lavik Admin: by @zhangh43 in #292
- perf(storage): avoid redundant grouped reads and point-write encoding by @thweetkomputer in #291
- test: inject online OOM after successful recovery by @thweetkomputer in #293
- Support grouped and indirect-key shutdown checkpoints by @thweetkomputer in #295
- Implemented the button-driven workflow: by @zhangh43 in #297
- test(meta): tolerate delayed startup probes in CI by @thweetkomputer in #296
- fix(storage): restore checkpoints across SPDK ownership changes by @thweetkomputer in #298
- fix(ci): separate Admin tests from release packaging by @thweetkomputer in #299
- refactor(config): describe scalar startup options in a table by @thweetkomputer in #300
- Reduce default registered read payload to 32 KiB by @thweetkomputer in #302
- Remove obsolete 32 KiB read-slot performance report by @thweetkomputer in #304
- refactor: simplify codegen-checked character checks and value operations by @thweetkomputer in #306
- perf: avoid repeated Pub/Sub order-vector removal during cleanup by @thweetkomputer in #307
- Share io_uring storage buffer arenas and retry registration within memlock by @thweetkomputer in #305
- perf: inline buffer accessors on storage read paths by @thweetkomputer in #308
- perf: avoid validation substring copies and repeated page lookups by @thweetkomputer in #309
- Avoid standalone control worker and silent DPDK adaptive fallback by @thweetkomputer in #310
- Guarantee compile-time initialization of scan arena tables by @thweetkomputer in #311
- perf(storage): use direct awaitables for value and extent reads by @thweetkomputer in #313
- perf(storage): read eligible disk GETs on the connection worker by @thweetkomputer in #314
- test(meta): check publication session at its Applied receipt by @thweetkomputer in #316
- fix(storage): preserve detached index alignment during reclamation by @thweetkomputer in #319
- perf(storage): extend remote reads to compact collections by @thweetkomputer in #318
- fix: clean compiler warnings without redundant initialization by @thweetkomputer in #321
- refactor(redis): remove obsolete managed Single command gate by @liunyl in #320
New Contributors
Full Changelog: v0.1.0-beta.1...v0.1.0