...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package rafttest
16
17 import (
18 "context"
19 "testing"
20 "time"
21
22 "go.etcd.io/etcd/raft/v3"
23 )
24
25 func BenchmarkProposal3Nodes(b *testing.B) {
26 peers := []raft.Peer{{ID: 1, Context: nil}, {ID: 2, Context: nil}, {ID: 3, Context: nil}}
27 nt := newRaftNetwork(1, 2, 3)
28
29 nodes := make([]*node, 0)
30
31 for i := 1; i <= 3; i++ {
32 n := startNode(uint64(i), peers, nt.nodeNetwork(uint64(i)))
33 nodes = append(nodes, n)
34 }
35
36 time.Sleep(50 * time.Millisecond)
37
38 b.ResetTimer()
39 for i := 0; i < b.N; i++ {
40 nodes[0].Propose(context.TODO(), []byte("somedata"))
41 }
42
43 for _, n := range nodes {
44 if n.state.Commit != uint64(b.N+4) {
45 continue
46 }
47 }
48 b.StopTimer()
49
50 for _, n := range nodes {
51 n.stop()
52 }
53 }
54
View as plain text