Skip to content

Commit f5540f3

Browse files
author
Vadim Kilibaba
committed
add buntdb
1 parent 24a3af1 commit f5540f3

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

cmd/pogreb-bench/buntdb.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package main
2+
3+
import (
4+
"github.com/tidwall/buntdb"
5+
)
6+
7+
type buntEngine struct {
8+
db *buntdb.DB
9+
}
10+
11+
func newBunt(path string) (kvEngine, error) {
12+
db, err := buntdb.Open(path)
13+
14+
if err != nil {
15+
return nil, err
16+
}
17+
18+
return &buntEngine{db: db}, err
19+
}
20+
21+
func (db *buntEngine) Put(key []byte, value []byte) error {
22+
return db.db.Update(func(tx *buntdb.Tx) error {
23+
_, _, err := tx.Set(string(key), string(value), nil)
24+
return err
25+
})
26+
}
27+
28+
func (db *buntEngine) Get(key []byte) ([]byte, error) {
29+
var val []byte
30+
err := db.db.View(func(tx *buntdb.Tx) error {
31+
valstr, err := tx.Get(string(key))
32+
if err != nil {
33+
return err
34+
}
35+
val = []byte(valstr)
36+
return nil
37+
})
38+
return val, err
39+
}
40+
41+
func (db *buntEngine) Close() error {
42+
return db.db.Close()
43+
}
44+
func (db *buntEngine) FileSize() (int64, error) {
45+
return 0, nil
46+
}

cmd/pogreb-bench/engine.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ var engines = map[string]engineCtr{
2222
"badgerdb": newBadgerdb,
2323
"slowpoke": newSlowpoke,
2424
"pudge": newPudge,
25+
"buntdb": newBunt,
2526
}
2627

2728
func getEngineCtr(name string) (engineCtr, error) {

cmd/pogreb-bench/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
)
88

99
var (
10-
engine = flag.String("e", "pogreb", "database engine name. pogreb, goleveldb, bolt, badgerdb, pudge and slowpoke")
10+
engine = flag.String("e", "pogreb", "database engine name. pogreb, goleveldb, bolt, badgerdb, pudge and slowpoke, buntdb")
1111
numKeys = flag.Int("n", 100000, "number of keys")
1212
minKeySize = flag.Int("mink", 16, "minimum key size")
1313
maxKeySize = flag.Int("maxk", 64, "maximum key size")

0 commit comments

Comments
 (0)