package internal import ( "git.mills.io/prologic/bitcask" log "github.com/sirupsen/logrus" ) // BitcaskStore ... type BitcaskStore struct { db *bitcask.Bitcask } func newBitcaskStore(path string) (*BitcaskStore, error) { db, err := bitcask.Open( path, bitcask.WithMaxKeySize(256), ) if err != nil { return nil, err } return &BitcaskStore{db: db}, nil } // Sync ... func (bs *BitcaskStore) Sync() error { return bs.db.Sync() } // Close ... func (bs *BitcaskStore) Close() error { log.Info("syncing store ...") if err := bs.db.Sync(); err != nil { log.WithError(err).Error("error syncing store") return err } log.Info("closing store ...") if err := bs.db.Close(); err != nil { log.WithError(err).Error("error closing store") return err } return nil } // Merge ... func (bs *BitcaskStore) Merge() error { log.Info("merging store ...") if err := bs.db.Merge(); err != nil { log.WithError(err).Error("error merging store") return err } return nil }