Skip to content

v6.0.0

Choose a tag to compare

@sw-release-bot sw-release-bot released this 21 Oct 23:55
· 54 commits to main since this release
8ff7876

Added

  • (tree) pin a version for a point-in-time copy without file I/O (#918)
  • (config) per-tree clock for reproducible tables and blob files (#914)
  • (vlog) leave blob values out of the shared cache by default (#904)
  • (compaction) plan compactions for query throughput (#903)
  • (compaction) copy columnar row groups the merge leaves untouched (#882)
  • (bench) metadata-only-update scenario, retire projected (#878)
  • (compaction) L0 trigger by runs, flush table size, write backpressure by bytes (#876)
  • (import) offline converter from the 5.x on-disk format (#872)
  • (blob) group separated values by expected lifetime (#868)
  • (rate_limiter) back off while the device is slow to answer (#851)
  • (verify) rate the scrub by bytes read (#843)
  • (blob_tree) field-level blob references with late materialization (#815)
  • (multi_get) a multi-get its caller drives (#781)
  • (durability) publish the flush barrier and cheapen its syncs (#771)
  • (columnar) project across memtables, row tables and columnar tables (#756)
  • (compaction) share one rate limiter across trees and retune it live (#755)
  • (compaction) measure blob locality and relocate deeply interleaved files (#742)
  • (columnar) encode column pages as light codecs, chosen per level (#723)
  • (columnar) default to 16 KiB row groups of 4 KiB row pages (#720)
  • (columnar) read column pages independently (#709)
  • (metrics) measure bytes read, decoded and copied per emitted row (#706)
  • (filter) [breaking] pack the BuRR solution matrix to r bits per row (#690)

Fixed

  • (fs) delegate the std capabilities of IoUringFs (#939)
  • (filter) skip by a table's prefix filter only under its own extractor (#906)
  • (range) take a read bound longer than any key (#896)
  • (tree) decline a flush or compaction whose inputs clear() removed (#892)
  • (fuzz) port the AFL targets to the current API and type-check them in CI (#859)
  • (compaction) merge only L0 runs contiguous in age under tiered (#858)
  • (version) keep newer L0 tables ahead of the runs they overlap (#857)
  • (index_block) an upper bound keeps the block after the last one ending at it (#856)
  • (ingest) pin ingested L0 tables by the L0 pinning policy (#855)
  • (fs) retry a rename or delete Windows refuses for a brief hold (#854)
  • (version) a failed manifest rotation no longer blocks the next install (#853)
  • (compaction) FIFO drops from every level and never panics on L0 shape (#852)
  • (salvage) stamp a verbatim copy for where it lands (#839)
  • (compaction) remove every output of a run that fails before install (#803)
  • (compaction) advance the tight-space blob frontier past dropped pointers (#800)
  • (mvcc) skip a key whose resolution fails, from either end (#798)
  • (blob_tree) merge operands onto a base kept in the value log (#789)
  • (repair) release cached blob descriptors before removing replacements (#792)
  • (repair) stop on descriptor exhaustion and scan within the fd cache (#776)
  • (durability) sync the directory of new blob files and edit logs (#769)
  • (config) wire the partition size policies to the table writers (#738)
  • (writer) rotate tables on per-key state, not only data bytes (#728)
  • (memtable) return the successor a skiplist seek compared (#731)
  • (memtable) stop committing 64 MiB per memtable (#725)
  • rank merges by promoted cost, order number columns, bind block checksums (#714)
  • (manifest) rotate when an edit outgrows one log record (#703)
  • (manifest) name each table's place and refuse damage (#698)

Performance

  • (filter) hash each key once and build filters without per-layer allocations (#969)
  • (table) write tables into pre-created files (#950)
  • (manifest) install a snapshot by its edit log, not a pointer (#948)
  • (tree) sync each new directory entry once (#938)
  • (cache) coalesce concurrent cold reads and decode (#923)
  • (table) delta-encode sequence numbers inside a restart interval (#919)
  • (compaction) write filter-rewritten blobs into the relocation output (#917)
  • (table) resolve the file descriptor once per table lookup (#916)
  • (scan) seek blocks by key bounds in scan_since_seqno_in_range (#891)
  • (compaction) scan inputs into unzeroed chunks and slice blocks (#889)
  • (compaction) cut outputs on next-level boundaries (#887)
  • (compaction) price leveled merge candidates in constant time (#886)
  • (read) stop a merge point read at the newest base (#883)
  • (bench) pair the head-to-head engines in rounds, split host timings (#822)
  • (columnar_scan) gather each scanned row once (#806)
  • (rate_limiter) wait for the deadline or an event, not a 100 ms tick (#805)
  • (multi_get) read a level stage by stage across its tables (#772)
  • (filter) size filters by measured negative-probe load (#748)
  • (writer) build filter partitions on the block pipeline's workers (#747)
  • (io_uring) submit a batch in one message and hand reads over as they complete (#744)
  • (writer) cut per-block coordination in parallel block prep (#741)
  • (columnar) stream the projected scan within a payload budget (#740)
  • (columnar) make a sparse scan follow the row page, not the group (#717)