Crate sst

source ·
Expand description

sst stands for sorted-string-table.

This crate provides an implementation of an SST and most common cursoring patterns necessary to create something like a log-structured merge tree out of SSTs.

Re-exports§

Modules§

  • A block is the base unit of an SST. This module provides implementations of cursors and builders for blocks.
  • Bounds cursor restricts a general cursor to be between some pair of keys.
  • Management of open files. Intended to re-use open files and fail when too many files are open.
  • This module implements a garbage-collecting cursor that compacts according to a garbage-collection policy.
  • Tools for ingesting data into a directory.
  • Lazy cursoring, so we can limit the number of files open at once.
  • A log is an unordered table.
  • A MergingCursor merges several cursors together.
  • The primary point of the pruning cursor is to turn an in-memory skip-list into something that looks like a consistent cut of the data. Consequently, there nees to be more logic than just working on a static sst. Other cursors will assume a pruning cursor gets applied beneath them to create a cursor over an immutable data set.
  • Reference types for comparing sst and block behavior.
  • This file implements the split-block bloom-filter used by parquet: https://github.com/apache/parquet-format/blob/master/BloomFilter.md
  • A Setsum type that’s more ergonomic for working with key-value pairs.

Structs§

  • An Sst represents an immutable sorted string table.
  • Build Ssts by providing keys in-order.
  • A cursor over an Sst.
  • Metadata about an Sst.
  • Create an SstBuilder that will create numbered files of similar prefix and suffix.
  • Options for working with Ssts.

Enums§

Constants§

Traits§

  • A Builder is a generic way of building a sorted (sst) or unsorted (log) string table.
  • IO to Z.

Functions§