@cryptotaxi247 / kubo / commits / a9b8b90da

add option to set syncWrites to badger

License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>

Jeromy committed Sep 5, 2017 at 22:46 UTC a9b8b90da1d6cc533b069735416158fc879efba6
2 files changed +21 -4
repo/config/profile.go
+3 -2
@@ -46,8 +46,9 @@ var ConfigProfiles = map[string]func(*Config) error{
46 "type": "measure",
47 "prefix": "badger.datastore",
48 "child": map[string]interface{}{
49 - "type": "badgerds",
50 - "path": "badgerds",
49 + "type": "badgerds",
50 + "path": "badgerds",
51 + "syncWrites": true,
52 },
53 }
54 return nil
repo/fsrepo/datastores.go
+18 -2
@@ -18,6 +18,7 @@ import (
18
19 badgerds "gx/ipfs/QmNWbaGdPCA3anCcvh4jm3VAahAbmmAsU58sp8Ti4KTJkL/go-ds-badger"
20 levelds "gx/ipfs/QmPdvXuXWAR6gtxxqZw42RtSADMwz4ijVmYHGS542b6cMz/go-ds-leveldb"
21 + badger "gx/ipfs/QmQL7yJ4iWQdeAH9WvgJ4XYHS6m5DqL853Cck5SaUb8MAw/badger"
22 ldbopts "gx/ipfs/QmbBhyDKsY4mbY6xsKt3qu9Y7FPvMJ6qbD8AMjYYvPRw1g/goleveldb/leveldb/opt"
23 )
24
@@ -340,7 +341,8 @@ func (c measureDatastoreConfig) Create(path string) (repo.Datastore, error) {
341 }
342
343 type badgerdsDatastoreConfig struct {
343 - path string
344 + path string
345 + syncWrites bool
346 }
347
348 // BadgerdsDatastoreConfig returns a configuration stub for a badger datastore
@@ -354,6 +356,17 @@ func BadgerdsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, er
356 return nil, fmt.Errorf("'path' field is missing or not string")
357 }
358
359 + sw, ok := params["syncWrites"]
360 + if !ok {
361 + c.syncWrites = true
362 + } else {
363 + if swb, ok := sw.(bool); ok {
364 + c.syncWrites = swb
365 + } else {
366 + return nil, fmt.Errorf("'syncWrites' field was not a boolean")
367 + }
368 + }
369 +
370 return &c, nil
371 }
372
@@ -375,5 +388,8 @@ func (c *badgerdsDatastoreConfig) Create(path string) (repo.Datastore, error) {
388 return nil, err
389 }
390
378 - return badgerds.NewDatastore(p, nil)
391 + defopts := badger.DefaultOptions
392 + defopts.SyncWrites = c.syncWrites
393 +
394 + return badgerds.NewDatastore(p, &defopts)
395 }