Skip to content

Config, Transaction, and Opening Revamp

Compare
Choose a tag to compare
@spacejam spacejam released this 16 Oct 15:33
dfbec0b

New Features

  • The Config::open method has been added to give
    Config a similar feel to std's fs::OpenOptions.
    The Config::build and Db::start methods are
    now deprecated in favor of calling Config::open
    directly
  • A checksum method has been added to Tree and Db
    for use in verifying backups and migrations.
  • Transactions may now involve up to 69 different
    tables. Nice.
  • The TransactionError::Abort variant has had
    a generic member added that can be returned
    as a way to return information from a
    manually-aborted transaction. An abort helper
    function has been added to reduce the boiler-
    plate required to return aborted results.

Breaking Changes

  • The ConfigBuilder structure has been removed
    in favor of a simplified Config structure
    with the same functionality.
  • The way that sled versions are detected at
    initialization time is now independent of serde.
  • The cas method is deprecated in favor of the new
    compare_and_swap method which now returns the
    proposed value that failed to be applied.
  • Tree nodes now have constant prefix encoding
    lengths.
  • The io_buf_size configurable renamed to
    segment_size.
  • The io_buf_size configurable method has been
    removed from ConfigBuilder. This can be manually
    set by setting the attribute directly on the
    ConfigBuilder, but this is discouraged.
    Additionally, this must now be a power of 2.
  • The page_consolidation_threshold method has been
    removed from ConfigBuilder, and this is now
    a constant of 10.