github borgbase/vykar v0.6.3

latest releases: v0.12.12, v0.12.11, v0.12.10...
one month ago

Memory Optimization

This release dramatically reduces peak memory usage across all operations through mmap-backed storage and streaming processing:

  • Mmap-backed pack assembly: Replace heap pack buffers with mmap-backed assembly, reducing backup heap usage from 384 MiB to ~4 MiB
  • Pack buffer pool memory reduction: ~40% reduction in pack buffer pool memory (640→384 MiB) before mmap conversion
  • Tiered dedup index: Add mmap cache and xor filter for memory-efficient chunk deduplication
  • Index-free extract: Restore files without loading the full chunk index into memory, using mmap restore cache
  • Streaming item serialization/deserialization: Eliminate temp allocations during backup and reduce extract peak memory
  • Incremental index update: Reduce save_state() peak memory by flushing incrementally (~138M saved)
  • Open-phase optimization: Reduce open-phase peak memory from ~227M to ~128M
  • Restore planner compaction: Use SmallVec and filtered chunk index for ~40% better throughput

Features

  • cache_dir config option: Control where mmap temp files and cache data are stored
  • Reuse ZSTD compression context: Thread-local Compressor reuse reduces allocation churn
  • Pre-size FileCache HashMap: Use old cache length for initial capacity

Bug Fixes

  • Release pack buffer pool in save_state() to avoid retaining memory past its useful life
  • Recalculate pack writer targets in load_chunk_index() for correct sizing

Infrastructure

  • Add profiling build option to release workflow
  • Add linux_only option for manual release workflow runs

Downloads

Platform File
Linux x86_64 vger-x86_64-unknown-linux-gnu.tar.gz
macOS aarch64 vger-aarch64-apple-darwin.tar.gz
Windows x86_64 vger-x86_64-pc-windows-msvc.zip

Verify checksums with sha256sum -c SHA256SUMS.

Don't miss a new vykar release

NewReleases is sending notifications on new releases.