Return new block ULID in compactor

This commit is contained in:
Fabian Reinartz 2017-12-05 11:49:22 +01:00
parent b945098e3a
commit 7087f68647
2 changed files with 8 additions and 8 deletions

View file

@ -58,7 +58,7 @@ type Compactor interface {
// Compact runs compaction against the provided directories. Must
// only be called concurrently with results of Plan().
Compact(dest string, dirs ...string) error
Compact(dest string, dirs ...string) (ulid.ULID, error)
}
// LeveledCompactor implements the Compactor interface.
@ -305,7 +305,7 @@ func compactBlockMetas(uid ulid.ULID, blocks ...*BlockMeta) *BlockMeta {
// Compact creates a new block in the compactor's directory from the blocks in the
// provided directories.
func (c *LeveledCompactor) Compact(dest string, dirs ...string) (err error) {
func (c *LeveledCompactor) Compact(dest string, dirs ...string) (uid ulid.ULID, err error) {
var blocks []BlockReader
var bs []*Block
var metas []*BlockMeta
@ -313,13 +313,13 @@ func (c *LeveledCompactor) Compact(dest string, dirs ...string) (err error) {
for _, d := range dirs {
b, err := OpenBlock(d, c.chunkPool)
if err != nil {
return err
return uid, err
}
defer b.Close()
meta, err := readMetaFile(d)
if err != nil {
return err
return uid, err
}
metas = append(metas, meta)
@ -328,11 +328,11 @@ func (c *LeveledCompactor) Compact(dest string, dirs ...string) (err error) {
}
entropy := rand.New(rand.NewSource(time.Now().UnixNano()))
uid := ulid.MustNew(ulid.Now(), entropy)
uid = ulid.MustNew(ulid.Now(), entropy)
err = c.write(dest, compactBlockMetas(uid, metas...), blocks...)
if err == nil {
return nil
return uid, nil
}
var merr MultiError
@ -344,7 +344,7 @@ func (c *LeveledCompactor) Compact(dest string, dirs ...string) (err error) {
}
}
return merr
return uid, merr
}
func (c *LeveledCompactor) Write(dest string, b BlockReader, mint, maxt int64) (ulid.ULID, error) {

2
db.go
View file

@ -386,7 +386,7 @@ func (db *DB) compact() (changes bool, err error) {
default:
}
if err := db.compactor.Compact(db.dir, plan...); err != nil {
if _, err := db.compactor.Compact(db.dir, plan...); err != nil {
return changes, errors.Wrapf(err, "compact %s", plan)
}
changes = true