Browse Source

mvcc: separate synced/unsynced benchmarks

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
Gyuho Lee 7 years ago
parent
commit
e239cc276a
1 changed files with 19 additions and 4 deletions
  1. 19 4
      mvcc/watchable_store_bench_test.go

+ 19 - 4
mvcc/watchable_store_bench_test.go

@@ -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.
 // 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()
 	be, tmpPath := backend.NewDefaultTmpBackend()
 	s := newWatchableStore(zap.NewExample(), be, &lease.FakeLessor{}, nil)
 	s := newWatchableStore(zap.NewExample(), be, &lease.FakeLessor{}, nil)
 	defer cleanup(s, be, tmpPath)
 	defer cleanup(s, be, tmpPath)
@@ -75,12 +85,17 @@ func BenchmarkWatchableStoreWatchSyncPut(b *testing.B) {
 	k := []byte("testkey")
 	k := []byte("testkey")
 	v := []byte("testval")
 	v := []byte("testval")
 
 
+	rev := int64(0)
+	if !synced {
+		// non-0 value to keep watchers in unsynced
+		rev = 1
+	}
+
 	w := s.NewWatchStream()
 	w := s.NewWatchStream()
 	defer w.Close()
 	defer w.Close()
 	watchIDs := make([]WatchID, b.N)
 	watchIDs := make([]WatchID, b.N)
 	for i := range watchIDs {
 	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()
 	b.ResetTimer()