A simple key value storage engine
go get github.com/jobala/petro
store, err := index.New[string, int]("index", dbFile)
ok, err := store.Put("age", 25)
store := index.New[string, int]("index", dbFile)
val, err := store.Get("age")
store := index.New[string, int]("index", dbFile)
val, err := store.Delete("age")
ages := map[string]int{
"john": 30,
"jane": 20,
"doe": 45
}
store := index.New[string, int]("index", dbFile)
err := store.PutBatch(ages)
ages := map[string]int{
"john": 30,
"jane": 20,
"doe": 45
}
store := index.New[string, int]("index", dbFile)
store.GetKeyRange("doe", "jane")
ages := map[string]int{
"john": 30,
"jane": 20,
"doe": 45
}
store := index.New[string, int]("index", dbFile)
storeIter := store.GetIterator()
for !storeIter.IsEnd() {
key, val, err := storeIter.Next()
}
call store.flush()
to ensure that your data is written to disk
- Disk Management
- Bufferpool Management
- Index Management
- GetValue
- Insert
- Iterator
- Delete
- Support duplicate keys
- Transactions
- Recovery