These are my rough notes about WIP implementations and backlog.
barrel.Open(dir="/data/barrel")
Create a barrel.db
file inside /data/barrel
which is the working data directory.
- Encode the header
- Flush to a file
- Add Expiry
- Add Checksum
- Organize methods as Encoder/Decoder package
- Add KeyDir struct
- Get the file offset and add it to the hashmap
- Check in keydir
- decode and return to user
- Merge old files
- Hints file
- GC cleanup of old/expired/deleted keys
- Compaction routine
- Rotate file if size increases
- Load data from hints file for faster boot time
Availability with N+1 node with raft
- Explore hashicorp/raft
- Init
- Put
- Set
- Delete
- Close
- Merge
- Hints file
- Rotate size