@cryptotaxi247 / kubo / commits / d7aa2f7da

expose vlogFileSize in badgerds config

License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>

Łukasz Magiera committed Feb 1, 2018 at 13:23 UTC d7aa2f7da38166c2e8747f9ab4c14159006202bc
1 file changed +20
repo/fsrepo/datastores.go
+20
@@ -16,6 +16,7 @@ import (
16 ds "gx/ipfs/QmPpegoMqhAEqjncrzArm7KVWAkCm78rqL2DPuNjhPrshg/go-datastore"
17 mount "gx/ipfs/QmPpegoMqhAEqjncrzArm7KVWAkCm78rqL2DPuNjhPrshg/go-datastore/syncmount"
18
19 + humanize "gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
20 ldbopts "gx/ipfs/QmbBhyDKsY4mbY6xsKt3qu9Y7FPvMJ6qbD8AMjYYvPRw1g/goleveldb/leveldb/opt"
21 badgerds "gx/ipfs/Qmbjb3c2KRPVNZWSvQED8zAf12Brdbp3ksSnGdsJiytqUs/go-ds-badger"
22 levelds "gx/ipfs/Qmbkc8BMfEixGCeKRuGGbf34mAjTb9xPmJ8Pm5gHU7ohZ4/go-ds-leveldb"
@@ -342,6 +343,8 @@ func (c measureDatastoreConfig) Create(path string) (repo.Datastore, error) {
343 type badgerdsDatastoreConfig struct {
344 path string
345 syncWrites bool
346 +
347 + vlogFileSize int64
348 }
349
350 // BadgerdsDatastoreConfig returns a configuration stub for a badger datastore
@@ -366,6 +369,22 @@ func BadgerdsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, er
369 }
370 }
371
372 + vls, ok := params["vlogFileSize"]
373 + if !ok {
374 + // default to 1GiB
375 + c.vlogFileSize = badgerds.DefaultOptions.ValueLogFileSize
376 + } else {
377 + if vlogSize, ok := vls.(string); ok {
378 + s, err := humanize.ParseBytes(vlogSize)
379 + if err != nil {
380 + return nil, err
381 + }
382 + c.vlogFileSize = int64(s)
383 + } else {
384 + return nil, fmt.Errorf("'vlogFileSize' field was not a string")
385 + }
386 + }
387 +
388 return &c, nil
389 }
390
@@ -389,6 +408,7 @@ func (c *badgerdsDatastoreConfig) Create(path string) (repo.Datastore, error) {
408
409 defopts := badgerds.DefaultOptions
410 defopts.SyncWrites = c.syncWrites
411 + defopts.ValueLogFileSize = c.vlogFileSize
412
413 return badgerds.NewDatastore(p, &defopts)
414 }