Repository navigation
v1.1.0
Image: ghcr.io/jazware/vlpds:1.1.0 (linux/amd64 and linux/arm64)
Upgrading: docs/operations/upgrades.md
47 commits since v1.0.0: v1.0.0...v1.1.0
Changes
- vlpds, vlrelay: a fat-LTO dist profile for published releases (518d4af)
- vlpds: rustfmt cluster.rs; test-vlpds and test-vlrelay check formatting (8cc3e5b)
- vlpds: repo node bytes exact: each MST node keeps its block length, and a commit subtracts the replaced nodes' real sizes instead of the mean (25efab3)
- vlpds: fix three test-vlpds flakes (a fail-stop in runtime shutdown, an import slot race, a takeover snapshot race) (baa21a8)
- vlpds, vlrelay, vlsync, vlatproto: test profiles skip thin-local LTO (lto = "off"; false still runs it) (f134fc7)
- vlrelay, vlpds, deltad: heap profiles always on, GET /debug/pprof/heap (0d342b6)
- vlsync-firehose, vlrelay, vlpds: configurable backfill cache and read-ahead (10eeaba)
- vlpds, vlrelay: thin LTO with 16 codegen units for release builds (d8079b4)
- vlpds releases: vlpds-v tags, published as v (20db991)
- vlpds: image recipes without mono's vcs.sh, and no private names in shipped notes (02b7e76)
- vlpds: the server-key fault test stubs the fail-stop itself (1ae35cc)
- vlpds: two clippy 1.99 lints (map_entry in changes.rs, redundant pattern in a store_stats test) (c162156)
Shared crates
- vlsync-lease: pluggable liveness (Alive) with bucket leases or peer heartbeats (Peers, vlRelay's quorum rules), vlRelay's peer RPC client moved in, replica positions and topology generations on the beats, a table op with an unknown outcome forgets its cached record; chaos sim runs both models with partitions and rogue owners; vlrelay uses the crate's rpc and quorum rules; docs/leases.md costs and vlDB P3 steps on heartbeats (d791200)
- vlsync: vlsync-lease, one implementation of bucket ownership (CAS on JSON records, epoch claims and fences, node leases judged on each node's monotonic clock, a slot-range assignment table with epochs, spans, replicas and a published topology, a chaos store), docs/leases.md, for vlDB P3 (8fce690)
- vlsync-store: send deletes as single DELETEs, never a DeleteObjects POST (21aa212)
- vlsync-store: name vlRelay's PLC seeds, export checkpoint, discovery and policy keys in the request counts (cec9ba5)
- vlsync-heapprof: dump into a private mkdtemp dir; no private names in vlRelay and vlpds (1a4bf32)
- vlsync: vlsync-heapprof, continuous jemalloc heap profiles as Go's pprof (9a5d718)
- vlsync-firehose: a backfill's first read-ahead asks for one segment; vlrelay: rcvbuf 64 on a small box (a50c566)
- vlsync: pin slatedb at 08addd13 (patch 10: open without waiting for the compactor) (6ba8df8)
- vlsync-store: label delta's bucket paths by component (2d91ed6)
- vlatproto: atproto out of vlsync into its own package (3515b6e)
- vlsync: docs and comments point at the crates' new homes (e95670f)
- vlsync: image builds take vlsync (7c4f159)
- vlsync: justfile, README, clippy-clean crates (77ac866)
- vlsync: shared storage, atproto and firehose crates out of vlpds (298b9fe)
- slatedb: fork 87db9e3b (patch 9, cache weighted bytes); slatedb_cache_bytes{cache,part} (3d048ba)
- slatedb: fork patch 8 (fetched blocks/indexes clamped); vlRelay's state and seeds SSTs zstd (89684b8)
- slate-metrics: db label only on per-database families; the newest open handle per name shows (838d36f)
- slate-metrics: SlateDB metrics per database (db label) and LSM shapes; wired into vlpds and vlRelay (13a558a)
Docs
- vlpds docs: console screenshots from a local 5-node cluster with fake accounts (91bf30d)
- vlpds docs: the compatibility contract holds within a feature level, with Spaces and pre-2026-10-06 builds as exceptions; upgrading from those is one-way (stop every node, then start all on the new build) and drops users' unused TOTP recovery codes (61bfefa)
- vlpds docs: catch up with Spaces, vlsync/vlatproto and the console redesign; new console screenshot (dde121d)
Tests and benchmarks
- vlpds tests: gathers_every_node waits for a balanced cluster (160d929)
- vlpds tests: a TestServer's first write no longer waits out the 1 s lease-write gap; the long tests start first (56f7b53)
- vlpds e2e: HA scenarios run side by side, replays end when they reach the head (15a504f)
- vlpds bench/ha: the dead-log audit lets spans the node handed off before the fault end below the fence; a failed scenario says why (c31af8c)
- vlpds bench/ha: hactl.py reads today's log segments (42b2924)
- vlpds bench/ha/upgrade.sh: the default previous release is the first build with 40-byte repo stats rows (2026-10-06), the oldest a rolling upgrade is promised from; older ones upgrade one-way (38d80a0)
Other
- vlpds 1.1.0 (77b8897)
- public syncs: a GitHub Release for each published v* tag (ff85f06)
- deploy: retire Pyroscope for yeet's continuous profiles (a039286)
- tokio-console: keep a minute of finished tasks and cap its buffers (d8856fb)
- tokio-console in vlrelay, vlpds, deltad and yeet-hq, and
yeet console(de23d27) - builds, packages and deploy scripts: mono's own checkout through scripts/vcs.sh, not git (82c430b)
- scripts: VCS shim (scripts/vcs.sh) for the delta cutover; image scripts, lib.sh, check-sops and justfile tag defaults use it (b3e687e)
- vlrelay: bound the SlateDB compactor and memtables (state and PLC seeds); small-box docs (60fbd09)