Skip to content

Releases: guycipher/lsmt

LSMT v1.1.0

12 Oct 19:32

Choose a tag to compare

LSMT v1.1.0

  1. Insert optimization
  2. Compact and split logic

LSMT v1.0.0

12 Oct 17:57

Choose a tag to compare

LSMT v1.0.0

  1. In-Memory AVL Tree (Memtable) The package uses an in-memory AVL tree as a memtable for temporary storage of key-value pairs.
  2. Sorted String Tables (SSTables) The package uses SSTables for persistent storage of key-value pairs. SSTables are stored on disk and are sorted by key.
  3. Simple API The package supports operations to insert (Put), retrieve (Get), and delete (Delete) key-value pairs.
  4. Automatic Flushing and Compaction The package automatically flushes the memtable to disk as an SSTable when it reaches a certain size. It also triggers a compaction process to merge all SSTables into a single one when the number of SSTables reaches a certain threshold.
  5. Concurrency Control The package uses read-write locks to ensure thread safety when accessing the memtable and SSTables.
  6. Tombstone Mechanism for Deletion The package uses a special tombstone value to indicate that a key has been deleted. This value is used during the compaction process to remove deleted keys.
  7. Directory-Based Storage: The package allows specifying a directory where the SSTables are stored.
  8. Customizable Memtable Flush Size and Compaction Interval The package allows setting the size at which the memtable should be flushed to disk and the interval at which the LSM-tree should be compacted (in number of SSTables).
  9. Graceful Shutdown The package provides a Close function to close the LSM-tree gracefully by closing all opened SSTable files.