-
Notifications
You must be signed in to change notification settings - Fork 0
theuntamed839/AtomDB
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
AtomDB is a key-value storage library that provides an mapping from string keys to string values Features Keys and values are arbitrary byte arrays. Data is stored sorted by key. Data is automatically compressed using the Snappy compression library. Theory Data is first stored in a skip list which is a memtable. there will be threshold size once exceeded the memtable is flushed as the sst file, in level 0 sst is a immutable set of file. Deletion and updation are done using compaction since sst are immutable, we can't modify the files. instead we write a new entry of the key. if the key is deleted then key and a marker is placed in sst Compaction is a process where 2 or more sst files are combined, during this process if there are multiple similar keys then the latest value is taken. if the value is deleted then key and a marker is placed. Compaction leads to a bigger file. A compression library is used, since the disk io is expensive. and if we reduce the payload we have faster writes. checksum is used, Crc32c Basic operations put(key, value), get(key), delete(key); Limitations This is not a SQL database. It does not have a relational data model, it does not support SQL queries, and it has no support for indexes. currently no multi-threading support. There is no client-server support builtin to the library. An application that needs such support will have to wrap their own server around the library.
About
Key-value database
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published