Skip to content

Commit

Permalink
Initial badger ds support
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
  • Loading branch information
magik6k committed Jun 24, 2017
1 parent dd93cd8 commit bb34d58
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions repo/fsrepo/datastores.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ import (
ds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore"
mount "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore/syncmount"

badgerds "github.com/ipfs/go-ds-badger"
levelds "gx/ipfs/QmaHHmfEozrrotyhyN44omJouyuEtx6ahddqV6W5yRaUSQ/go-ds-leveldb"
ldbopts "gx/ipfs/QmbBhyDKsY4mbY6xsKt3qu9Y7FPvMJ6qbD8AMjYYvPRw1g/goleveldb/leveldb/opt"
"os"
)

func (r *FSRepo) constructDatastore(params map[string]interface{}) (repo.Datastore, error) {
Expand Down Expand Up @@ -62,6 +64,8 @@ func (r *FSRepo) constructDatastore(params map[string]interface{}) (repo.Datasto

case "levelds":
return r.openLeveldbDatastore(params)
case "badgerds":
return r.openBadgerDatastore(params)
default:
return nil, fmt.Errorf("unknown datastore type: %s", params["type"])
}
Expand Down Expand Up @@ -141,6 +145,20 @@ func (r *FSRepo) openLeveldbDatastore(params map[string]interface{}) (repo.Datas
})
}

func (r *FSRepo) openBadgerDatastore(params map[string]interface{}) (repo.Datastore, error) {
p, ok := params["path"].(string)
if !ok {
return nil, fmt.Errorf("'path' field is missing or not string")
}
if !filepath.IsAbs(p) {
p = filepath.Join(r.path, p)
}

os.MkdirAll(p, 0755) //TODO: find better way

return badgerds.NewDatastore(p)
}

func (r *FSRepo) openMeasureDB(prefix string, child repo.Datastore) (repo.Datastore, error) {
return measure.New(prefix, child), nil
}

0 comments on commit bb34d58

Please sign in to comment.