mvcc : Added benchmark for store.resotre

This commit is contained in:
sharat 2016-11-16 20:18:29 +05:30
parent f014cca644
commit aa2b5aec1b
2 changed files with 38 additions and 0 deletions

View File

@ -463,6 +463,7 @@ func (s *store) restore() error {
scheduledCompact = 0
}
}
tx.Unlock()
if scheduledCompact != 0 {

View File

@ -85,3 +85,40 @@ func BenchmarkStoreTxnPut(b *testing.B) {
s.TxnEnd(id)
}
}
// benchmarkStoreRestore benchmarks the restore operation
func benchmarkStoreRestore(revsPerKey int, b *testing.B) {
var i fakeConsistentIndex
be, tmpPath := backend.NewDefaultTmpBackend()
s := NewStore(be, &lease.FakeLessor{}, &i)
defer cleanup(s, be, tmpPath)
// arbitrary number of bytes
bytesN := 64
keys := createBytesSlice(bytesN, b.N)
vals := createBytesSlice(bytesN, b.N)
for i := 0; i < b.N; i++ {
for j := 0; j < revsPerKey; j++ {
id := s.TxnBegin()
if _, err := s.TxnPut(id, keys[i], vals[i], lease.NoLease); err != nil {
plog.Fatalf("txn put error: %v", err)
}
s.TxnEnd(id)
}
}
b.ResetTimer()
s = NewStore(be, &lease.FakeLessor{}, &i)
}
func BenchmarkStoreRestoreRevs1(b *testing.B) {
benchmarkStoreRestore(1, b)
}
func BenchmarkStoreRestoreRevs10(b *testing.B) {
benchmarkStoreRestore(10, b)
}
func BenchmarkStoreRestoreRevs20(b *testing.B) {
benchmarkStoreRestore(20, b)
}