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