Skip to content

CQLite v0.14.1

A patch release on v0.14.0. It fixes the cold first-query-per-table parse cost that v0.14.0 called out as a known limitation. No API or behavior changes — a pure performance fix.

SSTableReader::open no longer builds a second, redundant in-memory index. Index.db is now parsed exactly once per open (down from twice), and the surviving index build uses capacity hints so it grows linearithmically instead of quadratically (#2385, #2395).

  • 200k-entry index build: 6.17s → 0.061s (~100×).
  • Growth ratio (build time vs entry count): 15.5 → 4.96 — quadratic collapses to linearithmic.
  • Parses of Index.db per open: 2 → 1.
  • Resident index memory: roughly halved per generation.

At round-9 field validation, a cold LIMIT query took 4m17s at 1.42M partitions. With this fix the cold cost drops to seconds per generation.

Unchanged from v0.14.0, minus the cold-start item fixed above:

  • Reads are single-node-bound under RF=N — under concurrency one pod does the work; throughput caps at one node (#2397).
  • Warm scan setup overhead — warm scans carry a fixed ~4–5s per-query resolve/merge-setup cost, so a LIMIT 5 scan runs comparably to LIMIT 100 (#2398).
Terminal window
brew install pmcfadin/cqlite/cqlite # CLI (macOS + Linux)
cargo add cqlite-core # Rust library
pip install cqlite-py # Python
npm install @cqlite/node # Node.js

Rust crates and the Python and Node bindings move 0.14.0 → 0.14.1 in lockstep. Full detail in the CHANGELOG.