Logo

Documentation

SplinterDB Known Limitations

SplinterDB is expected to evolve its API and add significant features, and it is not recommended for production use until version 1.0.

Thus, SplinterDB is provided as-is given the following limitations and missing features:

  • Data recovery is not yet implemented (see issue for roadmap).
  • Public API is not yet stable. Users should expect breaking changes in future versions.
  • SplinterDB on-disk format is not versioned (Data may not survive software upgrades.)
  • Single 4KiB page size, with fixed extent size of 32 pages/extent.
  • Key and value size need to be less than the page size. Key size must be between 8 to 105 bytes. Support for smaller key-sizes is experimental.
  • The application must specify the minimum and maximum of the key range.
  • SplinterDB on-disk size is fixed at compile time.
  • SplinterDB does not expose an API to force the latest write to be durable (e.g., fsync/commit.)
  • SplinterDB disk size cannot be changed once configured.
  • SplinterDB does not have a public API for the experimental async features.
  • SplinterDB does not retain configuration parameters and metadata. (These cannot be discovered from the database, and have to be provided for re-starting SplinterDB.)
  • Internal metrics and stats are not exposed to applications.
  • Range delete is not yet implemented.
  • Empty database (e.g. db->clear()) is not yet implemented.
  • Transactions not supported (no atomic multi-put.)

Ready to dive in?

Documentation