mirror of https://github.com/prometheus/prometheus
Expose DB.Compact()
Signed-off-by: Ganesh Vernekar <cs15btech11018@iith.ac.in>pull/6667/head
parent
0eb34299da
commit
e0733a99e3
|
@ -1079,7 +1079,7 @@ func TestDeleteCompactionBlockAfterFailedReload(t *testing.T) {
|
||||||
// Do the compaction and check the metrics.
|
// Do the compaction and check the metrics.
|
||||||
// Compaction should succeed, but the reload should fail and
|
// Compaction should succeed, but the reload should fail and
|
||||||
// the new block created from the compaction should be deleted.
|
// the new block created from the compaction should be deleted.
|
||||||
testutil.NotOk(t, db.compact())
|
testutil.NotOk(t, db.Compact())
|
||||||
testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.metrics.reloadsFailed), "'failed db reload' count metrics mismatch")
|
testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.metrics.reloadsFailed), "'failed db reload' count metrics mismatch")
|
||||||
testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran), "`compaction` count metric mismatch")
|
testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran), "`compaction` count metric mismatch")
|
||||||
testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.metrics.compactionsFailed), "`compactions failed` count metric mismatch")
|
testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.metrics.compactionsFailed), "`compactions failed` count metric mismatch")
|
||||||
|
|
|
@ -606,7 +606,7 @@ func (db *DB) run() {
|
||||||
|
|
||||||
db.autoCompactMtx.Lock()
|
db.autoCompactMtx.Lock()
|
||||||
if db.autoCompact {
|
if db.autoCompact {
|
||||||
if err := db.compact(); err != nil {
|
if err := db.Compact(); err != nil {
|
||||||
level.Error(db.logger).Log("msg", "compaction failed", "err", err)
|
level.Error(db.logger).Log("msg", "compaction failed", "err", err)
|
||||||
backoff = exponential(backoff, 1*time.Second, 1*time.Minute)
|
backoff = exponential(backoff, 1*time.Second, 1*time.Minute)
|
||||||
} else {
|
} else {
|
||||||
|
@ -655,7 +655,7 @@ func (a dbAppender) Commit() error {
|
||||||
// this is sufficient to reliably delete old data.
|
// this is sufficient to reliably delete old data.
|
||||||
// Old blocks are only deleted on reload based on the new block's parent information.
|
// Old blocks are only deleted on reload based on the new block's parent information.
|
||||||
// See DB.reload documentation for further information.
|
// See DB.reload documentation for further information.
|
||||||
func (db *DB) compact() (err error) {
|
func (db *DB) Compact() (err error) {
|
||||||
db.cmtx.Lock()
|
db.cmtx.Lock()
|
||||||
defer db.cmtx.Unlock()
|
defer db.cmtx.Unlock()
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
|
@ -1412,7 +1412,7 @@ func TestChunkAtBlockBoundary(t *testing.T) {
|
||||||
err := app.Commit()
|
err := app.Commit()
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
|
|
||||||
err = db.compact()
|
err = db.Compact()
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
|
|
||||||
for _, block := range db.Blocks() {
|
for _, block := range db.Blocks() {
|
||||||
|
@ -1467,7 +1467,7 @@ func TestQuerierWithBoundaryChunks(t *testing.T) {
|
||||||
err := app.Commit()
|
err := app.Commit()
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
|
|
||||||
err = db.compact()
|
err = db.Compact()
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
|
|
||||||
testutil.Assert(t, len(db.blocks) >= 3, "invalid test, less than three blocks in DB")
|
testutil.Assert(t, len(db.blocks) >= 3, "invalid test, less than three blocks in DB")
|
||||||
|
@ -1613,7 +1613,7 @@ func TestNoEmptyBlocks(t *testing.T) {
|
||||||
defaultMatcher := labels.MustNewMatcher(labels.MatchRegexp, "", ".*")
|
defaultMatcher := labels.MustNewMatcher(labels.MatchRegexp, "", ".*")
|
||||||
|
|
||||||
t.Run("Test no blocks after compact with empty head.", func(t *testing.T) {
|
t.Run("Test no blocks after compact with empty head.", func(t *testing.T) {
|
||||||
testutil.Ok(t, db.compact())
|
testutil.Ok(t, db.Compact())
|
||||||
actBlocks, err := blockDirs(db.Dir())
|
actBlocks, err := blockDirs(db.Dir())
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
testutil.Equals(t, len(db.Blocks()), len(actBlocks))
|
testutil.Equals(t, len(db.Blocks()), len(actBlocks))
|
||||||
|
@ -1631,7 +1631,7 @@ func TestNoEmptyBlocks(t *testing.T) {
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
testutil.Ok(t, app.Commit())
|
testutil.Ok(t, app.Commit())
|
||||||
testutil.Ok(t, db.Delete(math.MinInt64, math.MaxInt64, defaultMatcher))
|
testutil.Ok(t, db.Delete(math.MinInt64, math.MaxInt64, defaultMatcher))
|
||||||
testutil.Ok(t, db.compact())
|
testutil.Ok(t, db.Compact())
|
||||||
testutil.Equals(t, 1, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here")
|
testutil.Equals(t, 1, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here")
|
||||||
|
|
||||||
actBlocks, err := blockDirs(db.Dir())
|
actBlocks, err := blockDirs(db.Dir())
|
||||||
|
@ -1653,7 +1653,7 @@ func TestNoEmptyBlocks(t *testing.T) {
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
testutil.Ok(t, app.Commit())
|
testutil.Ok(t, app.Commit())
|
||||||
|
|
||||||
testutil.Ok(t, db.compact())
|
testutil.Ok(t, db.Compact())
|
||||||
testutil.Equals(t, 2, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here")
|
testutil.Equals(t, 2, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here")
|
||||||
actBlocks, err = blockDirs(db.Dir())
|
actBlocks, err = blockDirs(db.Dir())
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
|
@ -1674,7 +1674,7 @@ func TestNoEmptyBlocks(t *testing.T) {
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
testutil.Ok(t, app.Commit())
|
testutil.Ok(t, app.Commit())
|
||||||
testutil.Ok(t, db.head.Delete(math.MinInt64, math.MaxInt64, defaultMatcher))
|
testutil.Ok(t, db.head.Delete(math.MinInt64, math.MaxInt64, defaultMatcher))
|
||||||
testutil.Ok(t, db.compact())
|
testutil.Ok(t, db.Compact())
|
||||||
testutil.Equals(t, 3, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here")
|
testutil.Equals(t, 3, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here")
|
||||||
testutil.Equals(t, oldBlocks, db.Blocks())
|
testutil.Equals(t, oldBlocks, db.Blocks())
|
||||||
})
|
})
|
||||||
|
@ -1693,7 +1693,7 @@ func TestNoEmptyBlocks(t *testing.T) {
|
||||||
testutil.Ok(t, db.reload()) // Reload the db to register the new blocks.
|
testutil.Ok(t, db.reload()) // Reload the db to register the new blocks.
|
||||||
testutil.Equals(t, len(blocks)+len(oldBlocks), len(db.Blocks())) // Ensure all blocks are registered.
|
testutil.Equals(t, len(blocks)+len(oldBlocks), len(db.Blocks())) // Ensure all blocks are registered.
|
||||||
testutil.Ok(t, db.Delete(math.MinInt64, math.MaxInt64, defaultMatcher))
|
testutil.Ok(t, db.Delete(math.MinInt64, math.MaxInt64, defaultMatcher))
|
||||||
testutil.Ok(t, db.compact())
|
testutil.Ok(t, db.Compact())
|
||||||
testutil.Equals(t, 5, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here once for each block that have tombstones")
|
testutil.Equals(t, 5, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here once for each block that have tombstones")
|
||||||
|
|
||||||
actBlocks, err := blockDirs(db.Dir())
|
actBlocks, err := blockDirs(db.Dir())
|
||||||
|
@ -1776,7 +1776,7 @@ func TestDB_LabelNames(t *testing.T) {
|
||||||
testutil.Ok(t, headIndexr.Close())
|
testutil.Ok(t, headIndexr.Close())
|
||||||
|
|
||||||
// Testing disk.
|
// Testing disk.
|
||||||
err = db.compact()
|
err = db.Compact()
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
// All blocks have same label names, hence check them individually.
|
// All blocks have same label names, hence check them individually.
|
||||||
// No need to aggregate and check.
|
// No need to aggregate and check.
|
||||||
|
@ -1823,7 +1823,7 @@ func TestCorrectNumTombstones(t *testing.T) {
|
||||||
}
|
}
|
||||||
testutil.Ok(t, app.Commit())
|
testutil.Ok(t, app.Commit())
|
||||||
|
|
||||||
err := db.compact()
|
err := db.Compact()
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
testutil.Equals(t, 1, len(db.blocks))
|
testutil.Equals(t, 1, len(db.blocks))
|
||||||
|
|
||||||
|
@ -2189,7 +2189,7 @@ func TestVerticalCompaction(t *testing.T) {
|
||||||
// Vertical compaction.
|
// Vertical compaction.
|
||||||
lc := db.compactor.(*LeveledCompactor)
|
lc := db.compactor.(*LeveledCompactor)
|
||||||
testutil.Equals(t, 0, int(prom_testutil.ToFloat64(lc.metrics.overlappingBlocks)), "overlapping blocks count should be still 0 here")
|
testutil.Equals(t, 0, int(prom_testutil.ToFloat64(lc.metrics.overlappingBlocks)), "overlapping blocks count should be still 0 here")
|
||||||
err = db.compact()
|
err = db.Compact()
|
||||||
testutil.Ok(t, err)
|
testutil.Ok(t, err)
|
||||||
testutil.Equals(t, c.expBlockNum, len(db.Blocks()), "Wrong number of blocks [after compact]")
|
testutil.Equals(t, c.expBlockNum, len(db.Blocks()), "Wrong number of blocks [after compact]")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue