Skip to content

Commit

Permalink
Merge pull request #9796 from gyuho/watcher-benchmark
Browse files Browse the repository at this point in the history
mvcc: separate synced/unsynced benchmarks
  • Loading branch information
gyuho authored Jun 1, 2018
2 parents e6de5d8 + e239cc2 commit 83abce0
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions mvcc/watchable_store_bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,22 +65,37 @@ 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)

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()
Expand Down

0 comments on commit 83abce0

Please sign in to comment.