forked from TrueCloudLab/frostfs-node
[#1524] writecache: Add some bolt parameters to the configuration
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
07e06249d5
commit
972ca83e23
4 changed files with 32 additions and 0 deletions
|
@ -403,6 +403,8 @@ func initShardOptions(c *cfg) {
|
||||||
writeCacheOpts = []writecache.Option{
|
writeCacheOpts = []writecache.Option{
|
||||||
writecache.WithPath(writeCacheCfg.Path()),
|
writecache.WithPath(writeCacheCfg.Path()),
|
||||||
writecache.WithLogger(c.log),
|
writecache.WithLogger(c.log),
|
||||||
|
writecache.WithMaxBatchSize(writeCacheCfg.BoltDB().MaxBatchSize()),
|
||||||
|
writecache.WithMaxBatchDelay(writeCacheCfg.BoltDB().MaxBatchDelay()),
|
||||||
writecache.WithMaxMemSize(writeCacheCfg.MemSize()),
|
writecache.WithMaxMemSize(writeCacheCfg.MemSize()),
|
||||||
writecache.WithMaxObjectSize(writeCacheCfg.MaxObjectSize()),
|
writecache.WithMaxObjectSize(writeCacheCfg.MaxObjectSize()),
|
||||||
writecache.WithSmallObjectSize(writeCacheCfg.SmallObjectSize()),
|
writecache.WithSmallObjectSize(writeCacheCfg.SmallObjectSize()),
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package writecache
|
package writecache
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor"
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor"
|
||||||
meta "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/metabase"
|
meta "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/metabase"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
@ -31,6 +33,10 @@ type options struct {
|
||||||
maxCacheSize uint64
|
maxCacheSize uint64
|
||||||
// objCounters is an ObjectCounters instance needed for cache size estimation.
|
// objCounters is an ObjectCounters instance needed for cache size estimation.
|
||||||
objCounters ObjectCounters
|
objCounters ObjectCounters
|
||||||
|
// maxBatchSize is the maximum batch size for the small object database.
|
||||||
|
maxBatchSize int
|
||||||
|
// maxBatchDelay is the maximum batch wait time for the small object database.
|
||||||
|
maxBatchDelay time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithLogger sets logger.
|
// WithLogger sets logger.
|
||||||
|
@ -107,3 +113,21 @@ func WithMaxCacheSize(sz uint64) Option {
|
||||||
o.maxCacheSize = sz
|
o.maxCacheSize = sz
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithMaxBatchSize sets max batch size for the small object database.
|
||||||
|
func WithMaxBatchSize(sz int) Option {
|
||||||
|
return func(o *options) {
|
||||||
|
if sz > 0 {
|
||||||
|
o.maxBatchSize = sz
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithMaxBatchDelay sets max batch delay for the small object database.
|
||||||
|
func WithMaxBatchDelay(d time.Duration) Option {
|
||||||
|
return func(o *options) {
|
||||||
|
if d > 0 {
|
||||||
|
o.maxBatchDelay = d
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -38,6 +38,9 @@ func (c *cache) openStore() error {
|
||||||
return fmt.Errorf("could not open database: %w", err)
|
return fmt.Errorf("could not open database: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.db.MaxBatchSize = c.maxBatchSize
|
||||||
|
c.db.MaxBatchDelay = c.maxBatchDelay
|
||||||
|
|
||||||
err = c.db.Update(func(tx *bbolt.Tx) error {
|
err = c.db.Update(func(tx *bbolt.Tx) error {
|
||||||
_, err := tx.CreateBucketIfNotExists(defaultBucket)
|
_, err := tx.CreateBucketIfNotExists(defaultBucket)
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor/fstree"
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor/fstree"
|
||||||
"github.com/nspcc-dev/neofs-sdk-go/object"
|
"github.com/nspcc-dev/neofs-sdk-go/object"
|
||||||
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
|
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
|
||||||
|
"go.etcd.io/bbolt"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -98,6 +99,8 @@ func New(opts ...Option) Cache {
|
||||||
smallObjectSize: smallObjectSize,
|
smallObjectSize: smallObjectSize,
|
||||||
workersCount: defaultFlushWorkersCount,
|
workersCount: defaultFlushWorkersCount,
|
||||||
maxCacheSize: maxCacheSizeBytes,
|
maxCacheSize: maxCacheSizeBytes,
|
||||||
|
maxBatchSize: bbolt.DefaultMaxBatchSize,
|
||||||
|
maxBatchDelay: bbolt.DefaultMaxBatchDelay,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue