Skip to content

Commit

Permalink
Merge pull request #1 from sei-protocol/tony-chen-add-option-for-bloo…
Browse files Browse the repository at this point in the history
…m-filter

Add GoLevelDB with bloom filter backend
  • Loading branch information
codchen authored Apr 10, 2023
2 parents 56f94ba + 0d43cbd commit 76db7da
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
3 changes: 2 additions & 1 deletion db.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ const (
// popular implementation)
// - pure go
// - stable
GoLevelDBBackend BackendType = "goleveldb"
GoLevelDBBackend BackendType = "goleveldb"
GoLevelDBBackendWithBloomFilter BackendType = "goleveldb-bloom"
// CLevelDBBackend represents cleveldb (uses levigo wrapper)
// - fast
// - requires gcc
Expand Down
11 changes: 11 additions & 0 deletions goleveldb.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,22 @@ import (

"github.com/syndtr/goleveldb/leveldb"
"github.com/syndtr/goleveldb/leveldb/errors"
"github.com/syndtr/goleveldb/leveldb/filter"
"github.com/syndtr/goleveldb/leveldb/opt"
"github.com/syndtr/goleveldb/leveldb/util"
)

const BloomFilterBitSize = 256

func init() {
dbCreator := func(name string, dir string) (DB, error) {
return NewGoLevelDB(name, dir)
}
registerDBCreator(GoLevelDBBackend, dbCreator, false)
dbCreatorWithBloomFilter := func(name string, dir string) (DB, error) {
return NewGoLevelDBWithBloomFilter(name, dir)
}
registerDBCreator(GoLevelDBBackendWithBloomFilter, dbCreatorWithBloomFilter, false)
}

type GoLevelDB struct {
Expand All @@ -27,6 +34,10 @@ func NewGoLevelDB(name string, dir string) (*GoLevelDB, error) {
return NewGoLevelDBWithOpts(name, dir, nil)
}

func NewGoLevelDBWithBloomFilter(name string, dir string) (*GoLevelDB, error) {
return NewGoLevelDBWithOpts(name, dir, &opt.Options{Filter: filter.NewBloomFilter(BloomFilterBitSize)})
}

func NewGoLevelDBWithOpts(name string, dir string, o *opt.Options) (*GoLevelDB, error) {
dbPath := filepath.Join(dir, name+".db")
db, err := leveldb.OpenFile(dbPath, o)
Expand Down

0 comments on commit 76db7da

Please sign in to comment.