mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-23 12:44:05 -08:00
Make rollback actually rollback.
Also add tests for basic commit/rollback functionality. Fixes #39
This commit is contained in:
parent
25d4546518
commit
dba222b53c
2
db.go
2
db.go
|
@ -654,7 +654,7 @@ func (a *dbAppender) Rollback() error {
|
|||
var g errgroup.Group
|
||||
|
||||
for _, h := range a.heads {
|
||||
g.Go(h.app.Commit)
|
||||
g.Go(h.app.Rollback)
|
||||
}
|
||||
|
||||
return g.Wait()
|
||||
|
|
75
db_test.go
75
db_test.go
|
@ -12,3 +12,78 @@
|
|||
// limitations under the License.
|
||||
|
||||
package tsdb
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/prometheus/tsdb/labels"
|
||||
)
|
||||
|
||||
func TestDataAvailableOnlyAfterCommit(t *testing.T) {
|
||||
tmpdir, _ := ioutil.TempDir("", "test")
|
||||
defer os.RemoveAll(tmpdir)
|
||||
|
||||
db, err := Open(tmpdir, nil, nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("Error opening database: %q", err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
app := db.Appender()
|
||||
_, err = app.Add(labels.FromStrings("foo", "bar"), 0, 0)
|
||||
if err != nil {
|
||||
t.Fatalf("Error adding sample: %q", err)
|
||||
}
|
||||
|
||||
querier := db.Querier(0, 1)
|
||||
defer querier.Close()
|
||||
seriesSet := querier.Select(labels.NewEqualMatcher("foo", "bar"))
|
||||
if seriesSet.Next() {
|
||||
t.Fatalf("Error, was expecting no matching series.")
|
||||
}
|
||||
|
||||
err = app.Commit()
|
||||
if err != nil {
|
||||
t.Fatalf("Error committing: %q", err)
|
||||
}
|
||||
|
||||
querier = db.Querier(0, 1)
|
||||
defer querier.Close()
|
||||
|
||||
seriesSet = querier.Select(labels.NewEqualMatcher("foo", "bar"))
|
||||
if !seriesSet.Next() {
|
||||
t.Fatalf("Error, was expecting a matching series.")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDataNotAvailableAfterRollback(t *testing.T) {
|
||||
tmpdir, _ := ioutil.TempDir("", "test")
|
||||
defer os.RemoveAll(tmpdir)
|
||||
|
||||
db, err := Open(tmpdir, nil, nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("Error opening database: %q", err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
app := db.Appender()
|
||||
_, err = app.Add(labels.FromStrings("foo", "bar"), 0, 0)
|
||||
if err != nil {
|
||||
t.Fatalf("Error adding sample: %q", err)
|
||||
}
|
||||
|
||||
err = app.Rollback()
|
||||
if err != nil {
|
||||
t.Fatalf("Error rolling back: %q", err)
|
||||
}
|
||||
|
||||
querier := db.Querier(0, 1)
|
||||
defer querier.Close()
|
||||
|
||||
seriesSet := querier.Select(labels.NewEqualMatcher("foo", "bar"))
|
||||
if seriesSet.Next() {
|
||||
t.Fatalf("Error, was expecting no matching series.")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue