Skip to content

Latest commit

 

History

History
52 lines (36 loc) · 936 Bytes

TODO.md

File metadata and controls

52 lines (36 loc) · 936 Bytes

TODO

These are my rough notes about WIP implementations and backlog.

Initialising

barrel.Open(dir="/data/barrel")

Create a barrel.db file inside /data/barrel which is the working data directory.

Writing

  • 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

Reading

  • Check in keydir
  • decode and return to user

Background

  • Merge old files
  • Hints file
  • GC cleanup of old/expired/deleted keys
  • Compaction routine
  • Rotate file if size increases

Starting program

  • Load data from hints file for faster boot time

Raft

Availability with N+1 node with raft

  • Explore hashicorp/raft

Test Cases

  • Init
  • Put
  • Set
  • Delete
  • Close
  • Merge
  • Hints file
  • Rotate size