forked from TrueCloudLab/frostfs-node
[#373] local storage: Pass parent ID
This is required to add shard ID as metric label. Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
d5aaec1107
commit
d8ecc69d00
16 changed files with 47 additions and 0 deletions
|
@ -256,3 +256,7 @@ func (b *Blobovniczas) SetCompressor(cc *compression.Config) {
|
||||||
func (b *Blobovniczas) SetReportErrorFunc(f func(string, error)) {
|
func (b *Blobovniczas) SetReportErrorFunc(f func(string, error)) {
|
||||||
b.reportError = f
|
b.reportError = f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *Blobovniczas) SetParentID(parentID string) {
|
||||||
|
b.metrics.SetParentID(parentID)
|
||||||
|
}
|
||||||
|
|
|
@ -9,6 +9,8 @@ import (
|
||||||
type Metrics interface {
|
type Metrics interface {
|
||||||
BlobovnicaMetrics(path string) blobovnicza.Metrics
|
BlobovnicaMetrics(path string) blobovnicza.Metrics
|
||||||
|
|
||||||
|
SetParentID(parentID string)
|
||||||
|
|
||||||
SetMode(readOnly bool)
|
SetMode(readOnly bool)
|
||||||
Close()
|
Close()
|
||||||
|
|
||||||
|
@ -25,6 +27,7 @@ type noopMetrics struct{}
|
||||||
func (m *noopMetrics) BlobovnicaMetrics(string) blobovnicza.Metrics {
|
func (m *noopMetrics) BlobovnicaMetrics(string) blobovnicza.Metrics {
|
||||||
return &blobovnicza.NoopMetrics{}
|
return &blobovnicza.NoopMetrics{}
|
||||||
}
|
}
|
||||||
|
func (m *noopMetrics) SetParentID(string) {}
|
||||||
func (m *noopMetrics) SetMode(bool) {}
|
func (m *noopMetrics) SetMode(bool) {}
|
||||||
func (m *noopMetrics) Close() {}
|
func (m *noopMetrics) Close() {}
|
||||||
func (m *noopMetrics) Delete(time.Duration, bool, bool) {}
|
func (m *noopMetrics) Delete(time.Duration, bool, bool) {}
|
||||||
|
|
|
@ -72,6 +72,13 @@ func (b *BlobStor) SetLogger(l *logger.Logger) {
|
||||||
b.log = l
|
b.log = l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *BlobStor) SetParentID(parentID string) {
|
||||||
|
b.metrics.SetParentID(parentID)
|
||||||
|
for _, ss := range b.storage {
|
||||||
|
ss.Storage.SetParentID(parentID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// WithStorages provides sub-blobstors.
|
// WithStorages provides sub-blobstors.
|
||||||
func WithStorages(st []SubStorage) Option {
|
func WithStorages(st []SubStorage) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
|
|
|
@ -19,6 +19,7 @@ type Storage interface {
|
||||||
// SetReportErrorFunc allows to provide a function to be called on disk errors.
|
// SetReportErrorFunc allows to provide a function to be called on disk errors.
|
||||||
// This function MUST be called before Open.
|
// This function MUST be called before Open.
|
||||||
SetReportErrorFunc(f func(string, error))
|
SetReportErrorFunc(f func(string, error))
|
||||||
|
SetParentID(parentID string)
|
||||||
|
|
||||||
Get(context.Context, GetPrm) (GetRes, error)
|
Get(context.Context, GetPrm) (GetRes, error)
|
||||||
GetRange(context.Context, GetRangePrm) (GetRangeRes, error)
|
GetRange(context.Context, GetRangePrm) (GetRangeRes, error)
|
||||||
|
|
|
@ -554,3 +554,7 @@ func (t *FSTree) SetCompressor(cc *compression.Config) {
|
||||||
func (t *FSTree) SetReportErrorFunc(_ func(string, error)) {
|
func (t *FSTree) SetReportErrorFunc(_ func(string, error)) {
|
||||||
// Do nothing, FSTree can encounter only one error which is returned.
|
// Do nothing, FSTree can encounter only one error which is returned.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *FSTree) SetParentID(parentID string) {
|
||||||
|
t.metrics.SetParentID(parentID)
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@ package fstree
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
type Metrics interface {
|
type Metrics interface {
|
||||||
|
SetParentID(parentID string)
|
||||||
|
|
||||||
SetMode(readOnly bool)
|
SetMode(readOnly bool)
|
||||||
Close()
|
Close()
|
||||||
|
|
||||||
|
@ -16,6 +18,7 @@ type Metrics interface {
|
||||||
|
|
||||||
type noopMetrics struct{}
|
type noopMetrics struct{}
|
||||||
|
|
||||||
|
func (m *noopMetrics) SetParentID(string) {}
|
||||||
func (m *noopMetrics) SetMode(bool) {}
|
func (m *noopMetrics) SetMode(bool) {}
|
||||||
func (m *noopMetrics) Close() {}
|
func (m *noopMetrics) Close() {}
|
||||||
func (m *noopMetrics) Iterate(time.Duration, bool) {}
|
func (m *noopMetrics) Iterate(time.Duration, bool) {}
|
||||||
|
|
|
@ -13,3 +13,4 @@ func (s *memstoreImpl) Type() string { return Type }
|
||||||
func (s *memstoreImpl) Path() string { return s.rootPath }
|
func (s *memstoreImpl) Path() string { return s.rootPath }
|
||||||
func (s *memstoreImpl) SetCompressor(cc *compression.Config) { s.compression = cc }
|
func (s *memstoreImpl) SetCompressor(cc *compression.Config) { s.compression = cc }
|
||||||
func (s *memstoreImpl) SetReportErrorFunc(f func(string, error)) { s.reportError = f }
|
func (s *memstoreImpl) SetReportErrorFunc(f func(string, error)) { s.reportError = f }
|
||||||
|
func (s *memstoreImpl) SetParentID(string) {}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package blobstor
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
type Metrics interface {
|
type Metrics interface {
|
||||||
|
SetParentID(parentID string)
|
||||||
SetMode(readOnly bool)
|
SetMode(readOnly bool)
|
||||||
Close()
|
Close()
|
||||||
|
|
||||||
|
@ -16,6 +17,7 @@ type Metrics interface {
|
||||||
|
|
||||||
type noopMetrics struct{}
|
type noopMetrics struct{}
|
||||||
|
|
||||||
|
func (m *noopMetrics) SetParentID(string) {}
|
||||||
func (m *noopMetrics) SetMode(bool) {}
|
func (m *noopMetrics) SetMode(bool) {}
|
||||||
func (m *noopMetrics) Close() {}
|
func (m *noopMetrics) Close() {}
|
||||||
func (m *noopMetrics) Delete(time.Duration, bool, bool) {}
|
func (m *noopMetrics) Delete(time.Duration, bool, bool) {}
|
||||||
|
|
|
@ -214,3 +214,5 @@ func (s *TestStore) Iterate(ctx context.Context, req common.IteratePrm) (common.
|
||||||
panic(fmt.Sprintf("unexpected storage call: Iterate(%+v)", req))
|
panic(fmt.Sprintf("unexpected storage call: Iterate(%+v)", req))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *TestStore) SetParentID(string) {}
|
||||||
|
|
|
@ -294,6 +294,11 @@ func (db *DB) SetLogger(l *logger.Logger) {
|
||||||
db.log = l
|
db.log = l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetParentID sets parent ID to nested components. It is used after the shard ID was generated to use it in logs.
|
||||||
|
func (db *DB) SetParentID(parentID string) {
|
||||||
|
db.metrics.SetParentID(parentID)
|
||||||
|
}
|
||||||
|
|
||||||
// WithLogger returns option to set logger of DB.
|
// WithLogger returns option to set logger of DB.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
|
|
|
@ -7,6 +7,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Metrics interface {
|
type Metrics interface {
|
||||||
|
SetParentID(parentID string)
|
||||||
|
|
||||||
SetMode(m mode.Mode)
|
SetMode(m mode.Mode)
|
||||||
Close()
|
Close()
|
||||||
|
|
||||||
|
@ -15,6 +17,7 @@ type Metrics interface {
|
||||||
|
|
||||||
type noopMetrics struct{}
|
type noopMetrics struct{}
|
||||||
|
|
||||||
|
func (m *noopMetrics) SetParentID(string) {}
|
||||||
func (m *noopMetrics) SetMode(mode.Mode) {}
|
func (m *noopMetrics) SetMode(mode.Mode) {}
|
||||||
func (m *noopMetrics) Close() {}
|
func (m *noopMetrics) Close() {}
|
||||||
func (m *noopMetrics) AddMethodDuration(string, time.Duration, bool) {}
|
func (m *noopMetrics) AddMethodDuration(string, time.Duration, bool) {}
|
||||||
|
|
|
@ -158,6 +158,10 @@ func (t *boltForest) Close() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *boltForest) SetParentID(id string) {
|
||||||
|
t.metrics.SetParentID(id)
|
||||||
|
}
|
||||||
|
|
||||||
// TreeMove implements the Forest interface.
|
// TreeMove implements the Forest interface.
|
||||||
func (t *boltForest) TreeMove(ctx context.Context, d CIDDescriptor, treeID string, m *Move) (*Move, error) {
|
func (t *boltForest) TreeMove(ctx context.Context, d CIDDescriptor, treeID string, m *Move) (*Move, error) {
|
||||||
_, span := tracing.StartSpanFromContext(ctx, "boltForest.TreeMove",
|
_, span := tracing.StartSpanFromContext(ctx, "boltForest.TreeMove",
|
||||||
|
|
|
@ -119,6 +119,7 @@ func (f *memoryForest) SetMode(mode.Mode) error {
|
||||||
func (f *memoryForest) Close() error {
|
func (f *memoryForest) Close() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
func (f *memoryForest) SetParentID(string) {}
|
||||||
|
|
||||||
// TreeGetByPath implements the Forest interface.
|
// TreeGetByPath implements the Forest interface.
|
||||||
func (f *memoryForest) TreeGetByPath(_ context.Context, cid cid.ID, treeID string, attr string, path []string, latest bool) ([]Node, error) {
|
func (f *memoryForest) TreeGetByPath(_ context.Context, cid cid.ID, treeID string, attr string, path []string, latest bool) ([]Node, error) {
|
||||||
|
|
|
@ -61,6 +61,7 @@ type ForestStorage interface {
|
||||||
Open(bool) error
|
Open(bool) error
|
||||||
Close() error
|
Close() error
|
||||||
SetMode(m mode.Mode) error
|
SetMode(m mode.Mode) error
|
||||||
|
SetParentID(id string)
|
||||||
Forest
|
Forest
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Metrics interface {
|
type Metrics interface {
|
||||||
|
SetParentID(id string)
|
||||||
|
|
||||||
SetMode(m mode.Mode)
|
SetMode(m mode.Mode)
|
||||||
Close()
|
Close()
|
||||||
|
|
||||||
|
@ -15,6 +17,7 @@ type Metrics interface {
|
||||||
|
|
||||||
type noopMetrics struct{}
|
type noopMetrics struct{}
|
||||||
|
|
||||||
|
func (m *noopMetrics) SetParentID(string) {}
|
||||||
func (m *noopMetrics) SetMode(mode.Mode) {}
|
func (m *noopMetrics) SetMode(mode.Mode) {}
|
||||||
func (m *noopMetrics) Close() {}
|
func (m *noopMetrics) Close() {}
|
||||||
func (m *noopMetrics) AddMethodDuration(string, time.Duration, bool) {}
|
func (m *noopMetrics) AddMethodDuration(string, time.Duration, bool) {}
|
||||||
|
|
|
@ -55,6 +55,9 @@ func (s *Shard) UpdateID() (err error) {
|
||||||
if s.hasWriteCache() {
|
if s.hasWriteCache() {
|
||||||
s.writeCache.SetLogger(s.log)
|
s.writeCache.SetLogger(s.log)
|
||||||
}
|
}
|
||||||
|
s.metaBase.SetParentID(s.info.ID.String())
|
||||||
|
s.blobStor.SetParentID(s.info.ID.String())
|
||||||
|
s.pilorama.SetParentID(s.info.ID.String())
|
||||||
|
|
||||||
if len(id) != 0 {
|
if len(id) != 0 {
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in a new issue