Skip to content

Releases: andy-byers/CalicoDB

v0.2.0

02 Oct 15:30
b0592ad
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

Changelog

  • Exposes a high-level virtual WAL interface
  • Allow general purpose allocation functions to be customized for the process (via calicodb::configure() API)
  • Correct the cursor history during upward rebalancing passes, then skip straight to the correct record afterward
  • Fixes some concurrency issues and defers creation of the WAL until the first write transaction
  • Go back to using memcpy and memcmp for the WAL index headers
    • Was copying in chunks of atomic uint64_t, but this takes too long
    • Causes readers to fail to read the header too frequently, slowing down the process of connecting
  • Fixes issues relating to 32-bit platforms, and files larger than 4 GiB
  • Adds CALICODB_DEBUG_DELAY macro (sometimes adds a random-length delay in debug builds) for provoking synchronization problems
  • Got the file format fuzzer to work

v0.1.1

19 Jul 22:12
f03641c
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release

Fixes WAL File::sync() behavior

  • Fixes a problem in wal.c that would have likely resulted in data loss/corruption
  • Added some tests to test_crashes.cpp that make sure File::sync() is being called at the correct locations, and that any unsync'd data can be lost without corrupting the database
  • Added a fuzzer, db_format_fuzzer.cpp that tries to run a transaction on a database file made up of fuzzer input data
    • This will need a lot more work: the fuzzer produces crashes quickly (when provided a corpus of valid database files to start with)
    • Fixed a few easy corruption problems revealed by the new fuzzer
  • Added to the design docs

v0.1.0

17 Jul 21:24
4298657
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

First pre-release 馃惐