package writecachebadger import ( "fmt" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger" "github.com/dgraph-io/badger/v4" badgeroptions "github.com/dgraph-io/badger/v4/options" ) // OpenDB opens a badger instance for write-cache. Opens in read-only mode if ro is true. func OpenDB(p string, ro bool, l *logger.Logger) (*badger.DB, error) { return badger.Open(badger.DefaultOptions(p). WithReadOnly(ro). WithSyncWrites(true). WithCompression(badgeroptions.None). WithLoggingLevel(badger.ERROR). WithLogger(badgerLoggerWrapper{l})) } type badgerLoggerWrapper struct { l *logger.Logger } func (w badgerLoggerWrapper) Errorf(msg string, args ...any) { w.l.Error(fmt.Sprintf(msg, args...)) } func (w badgerLoggerWrapper) Warningf(msg string, args ...any) { w.l.Warn(fmt.Sprintf(msg, args...)) } func (w badgerLoggerWrapper) Infof(msg string, args ...any) { w.l.Info(fmt.Sprintf(msg, args...)) } func (w badgerLoggerWrapper) Debugf(msg string, args ...any) { w.l.Debug(fmt.Sprintf(msg, args...)) }