GitXplorerGitXplorer
s

surrealkv

public
250 stars
19 forks
13 issues

Commits

List of commits on branch main.
Verified
c6eadd17f8255f0fe6b0346fadf8925ad05d90e1

Bump version (#79)

ggsserge committed 3 days ago
Verified
602abccafaaf835668f750ccfccc7356ea870e26

Savepoint rollback on an updated key should roll it back to previous version (#77)

ggsserge committed 3 days ago
Verified
eb5dc0d1f9d9d2f34ed50728aaffebcc0876fe95

Implement savepoints (#75)

ggsserge committed 7 days ago
Verified
e5eb34d2defa20613a402c36198dfad04fdba306

Implement set_at_ts (#70)

ggsserge committed a month ago
Verified
1071bb54d504774e32ab5406fe272d07f5765d68

Make get_at_ts available in read-write transactions (#69)

ggsserge committed a month ago
Verified
376b04af183acdeff73e3c4b0d0239e6eb0481bc

fix: resolve values in scan_at_ts (#68)

ggsserge committed a month ago

README

The README file for this repository.

surrealkv

surrealkv is a versioned, low-level, persistent, embedded key-value database implemented in Rust. This ACID-compliant database offers the following features:

  • Transaction Support: SurrealKV supports rich transactions, allowing multiple items to be inserted, updated, or deleted simultaneously. These transactions are applied atomically, ensuring atomicity and consistency in line with ACID principles. This makes updates invisible until they are committed.

  • Isolation: SurrealKV provides two levels of isolation - Snapshot Isolation and Serializable Snapshot Isolation - to prevent concurrent transactions from interfering with each other.

  • Durability: SurrealKV ensures durability by persisting data on disk, protecting against data loss in the event of a system failure.

  • Multi-Version Concurrency Control (MVCC): SurrealKV employs immutable versioned adaptive radix tries via vart. This allows for any number of concurrent readers and writers to operate without blocking each other.

For more information on the underlying immutable versioned adaptive radix tries used, visit vart.

License

Features

  • [x] In-memory Index
  • [x] Embeddable
  • [x] ACID Semantics
  • [x] Transaction Support:
  • [x] Built-in Item Versioning API
  • [x] Multi-Version Concurrency Control (MVCC) support
  • [x] Multiple Concurrent Readers and Writers
  • [x] Persistence through an append-only File
  • [x] Compaction

Important Notice

This project is actively evolving, and as such, there might be changes to the file format, APIs, and feature set in future releases until reaching stability. Developers are encouraged to stay informed about updates and review future release notes for any breaking changes.

Feel free to contribute, provide feedback, or report issues to help shape the future of surrealkv. Thank you for your interest and involvement in this project!