Initial experimental snapshot of next-gen storage.

Change-Id: Ifb8709960dbedd1d9f5efd88cdd359ee9fa9d26d
This commit is contained in:
Julius Volz 2014-06-06 11:55:53 +02:00 committed by Bjoern Rabenstein
parent 134bd8fe34
commit e7ed39c9a6
81 changed files with 2829 additions and 13909 deletions

View file

@ -0,0 +1,47 @@
package storage_ng
import (
"testing"
"time"
"github.com/prometheus/prometheus/utility/test"
)
type testStorageCloser struct {
storage Storage
directory test.Closer
}
func (t *testStorageCloser) Close() {
t.storage.Close()
t.directory.Close()
}
func NewTestStorage(t testing.TB) (Storage, test.Closer) {
directory := test.NewTemporaryDirectory("test_storage", t)
persistence, err := NewDiskPersistence(directory.Path(), 1024)
if err != nil {
t.Fatal("Error opening disk persistence: ", err)
}
o := &MemorySeriesStorageOptions{
Persistence: persistence,
MemoryEvictionInterval: time.Minute,
MemoryRetentionPeriod: time.Hour,
}
storage, err := NewMemorySeriesStorage(o)
if err != nil {
directory.Close()
t.Fatalf("Error creating storage: %s", err)
}
storageStarted := make(chan bool)
go storage.Serve(storageStarted)
<-storageStarted
closer := &testStorageCloser{
storage: storage,
directory: directory,
}
return storage, closer
}