Skip to content

basaltd 0.8.4

Choose a tag to compare

@waynehoover waynehoover released this 12 Sep 03:15
· 46 commits to main since this release

Basalt server 0.8.4 cuts the disk waiting out of a batch of writes.

  • A batch of entries now commits in one transaction with a savepoint per entry, so it costs one fsync instead of one per entry while each entry keeps its own stale or badentry answer. A folder rename or a bulk delete carries no file bodies, so those fsyncs were the whole cost of it.
  • Chunk directories are flushed concurrently after their bodies land, with every flush completing before anything is acknowledged. A batch of 256 chunk names touches most of the 256 shard directories, and those flushes ran one after another.
  • A setup line for a server started with -vault NAME now carries the name (host:3003#TOKEN#NAME), so the Obsidian plugin can claim a vault that is not called default. A line with no second # means default, exactly as before.
  • Protocol 7 and the database format are unchanged. Existing devices stay paired.

Update to ghcr.io/waynehoover/basalt-sync:0.8.4 or use the attached binary for your platform. Back up the data directory before upgrading. Continue to expose the server through Tailscale Serve or another TLS reverse proxy.

Clients from 0.8.3 and earlier read everything after the last # as the token, so a named setup line needs a client from 0.8.4.