Releases: guycipher/lsmt
Releases · guycipher/lsmt
LSMT v1.1.0
LSMT v1.1.0
- Insert optimization
- Compact and split logic
LSMT v1.0.0
LSMT v1.0.0
- In-Memory AVL Tree (Memtable) The package uses an in-memory AVL tree as a memtable for temporary storage of key-value pairs.
- 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.
- Simple API The package supports operations to insert (Put), retrieve (Get), and delete (Delete) key-value pairs.
- 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.
- Concurrency Control The package uses read-write locks to ensure thread safety when accessing the memtable and SSTables.
- 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.
- Directory-Based Storage: The package allows specifying a directory where the SSTables are stored.
- 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).
- Graceful Shutdown The package provides a Close function to close the LSM-tree gracefully by closing all opened SSTable files.