https://github.com/yah01/cykv-storage
A standalone key-value storage engine
https://github.com/yah01/cykv-storage
Last synced: 25 days ago
JSON representation
A standalone key-value storage engine
- Host: GitHub
- URL: https://github.com/yah01/cykv-storage
- Owner: yah01
- Created: 2020-12-16T04:32:42.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-01-07T09:09:31.000Z (over 5 years ago)
- Last Synced: 2025-10-27T01:53:26.542Z (9 months ago)
- Language: Rust
- Size: 38.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CyKV-Storage
## Cache Layer
The engine doesn't read and write files directly when handling the `get`, `set` and `remove` requests, it reads and writes with an inner cache. You can disable the feature by creating a engine with `NoCacheManager`.
### Policy
The cache policy is scalable, but there are some basic principles for the engine:
- `read` causes the policy to determine to evict or not
- `write` forces the cache to sync contents to disk
## Todo
The stages:
- in-plan
- developing
- nightly: available, but hasn't been tested yet
- stable
|features|stage|comment|
|:---:|:---:|---|
|re-open|stable||
|compaction|stable||
|server|nightly||
|cache|nightly|there are still some issues, and bad performance for writing|
|efficient replay| nightly | store the keydir items which not in the writing log, and replay only the writing log|
|efficient scan()| nightly | the compaction procedure writes logs lexicographically |
|ACID transaction| in-plan||