Skip to content

Durable local storage. File that survives failures.

License

Notifications You must be signed in to change notification settings

temoto/extremofile

Repository files navigation

What

Extremofile is single binary value persistent storage that makes best effort to read your data back unchanged. GoDoc

Use case

Answer yes to all questions:

  • Need to persist small amount of data? It costs 2 full data writes + fsync on each store operation.
  • Expect power loss or storage media degradation? If you have reliable power supply and storage, that's awesome.
  • Network backup is not available? If you have robust remote database available when you need it, that's great.

Failure modes tolerated:

  • power loss
  • random data corrupted in one replica

Failure modes detected:

  • almost any data corruption, limited to checksum mismatch

Failures not handled by design: human error, files deleted.

API guarantees

  • You only get valid value bytes.
  • You may get value/writer together with non-critical error.
  • Internal storage format may change with major version.
  • Library will read one previous storage format.
  • Thread-safe.
  • Not safe to use by multiple processes, data may be corrupted.

FAQ

  • Why not SQLite or goleveldb or X?

    I could not find a ready solution that actually survives storage media degradation, rather than just reporting error. If you need similar durability with complex data structure, wrap your database of choice with automatic backup.

Flair

Build status Coverage Go Report Card

About

Durable local storage. File that survives failures.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages