mvcc: separate synced/unsynced benchmarks

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
release-3.4
Gyuho Lee 2018-06-01 10:00:18 -07:00
parent e6de5d8091
commit e239cc276a
1 changed files with 19 additions and 4 deletions

View File

@ -65,9 +65,19 @@ func BenchmarkWatchableStoreTxnPut(b *testing.B) {
}
}
// BenchmarkWatchableStoreWatchSyncPut benchmarks the case of
// BenchmarkWatchableStoreWatchPutSync benchmarks the case of
// many synced watchers receiving a Put notification.
func BenchmarkWatchableStoreWatchSyncPut(b *testing.B) {
func BenchmarkWatchableStoreWatchPutSync(b *testing.B) {
benchmarkWatchableStoreWatchPut(b, true)
}
// BenchmarkWatchableStoreWatchPutUnsync benchmarks the case of
// many unsynced watchers receiving a Put notification.
func BenchmarkWatchableStoreWatchPutUnsync(b *testing.B) {
benchmarkWatchableStoreWatchPut(b, false)
}
func benchmarkWatchableStoreWatchPut(b *testing.B, synced bool) {
be, tmpPath := backend.NewDefaultTmpBackend()
s := newWatchableStore(zap.NewExample(), be, &lease.FakeLessor{}, nil)
defer cleanup(s, be, tmpPath)
@ -75,12 +85,17 @@ func BenchmarkWatchableStoreWatchSyncPut(b *testing.B) {
k := []byte("testkey")
v := []byte("testval")
rev := int64(0)
if !synced {
// non-0 value to keep watchers in unsynced
rev = 1
}
w := s.NewWatchStream()
defer w.Close()
watchIDs := make([]WatchID, b.N)
for i := range watchIDs {
// non-0 value to keep watchers in unsynced
watchIDs[i], _ = w.Watch(0, k, nil, 1)
watchIDs[i], _ = w.Watch(0, k, nil, rev)
}
b.ResetTimer()