@@ -31,12 +31,12 @@ import (
31
31
)
32
32
33
33
var (
34
- EtcdPutDeleteLease Traffic = etcdTraffic {
35
- keyCount : 10 ,
36
- leaseTTL : DefaultLeaseTTL ,
37
- largePutSize : 32769 ,
34
+ EtcdPutDeleteLease Traffic = EtcdTraffic {
35
+ KeyCount : 10 ,
36
+ LeaseTTL : DefaultLeaseTTL ,
37
+ LargePutSize : 32769 ,
38
38
// Please keep the sum of weights equal 100.
39
- requests : []random.ChoiceWeight [etcdRequestType ]{
39
+ Requests : []random.ChoiceWeight [EtcdRequestType ]{
40
40
{Choice : Get , Weight : 15 },
41
41
{Choice : List , Weight : 15 },
42
42
{Choice : StaleGet , Weight : 10 },
@@ -50,12 +50,12 @@ var (
50
50
{Choice : LargePut , Weight : 5 },
51
51
},
52
52
}
53
- EtcdPut Traffic = etcdTraffic {
54
- keyCount : 10 ,
55
- largePutSize : 32769 ,
56
- leaseTTL : DefaultLeaseTTL ,
53
+ EtcdPut Traffic = EtcdTraffic {
54
+ KeyCount : 10 ,
55
+ LargePutSize : 32769 ,
56
+ LeaseTTL : DefaultLeaseTTL ,
57
57
// Please keep the sum of weights equal 100.
58
- requests : []random.ChoiceWeight [etcdRequestType ]{
58
+ Requests : []random.ChoiceWeight [EtcdRequestType ]{
59
59
{Choice : Get , Weight : 15 },
60
60
{Choice : List , Weight : 15 },
61
61
{Choice : StaleGet , Weight : 10 },
@@ -65,56 +65,56 @@ var (
65
65
{Choice : Put , Weight : 40 },
66
66
},
67
67
}
68
- EtcdDelete Traffic = etcdTraffic {
69
- keyCount : 10 ,
70
- largePutSize : 32769 ,
71
- leaseTTL : DefaultLeaseTTL ,
68
+ EtcdDelete Traffic = EtcdTraffic {
69
+ KeyCount : 10 ,
70
+ LargePutSize : 32769 ,
71
+ LeaseTTL : DefaultLeaseTTL ,
72
72
// Please keep the sum of weights equal 100.
73
- requests : []random.ChoiceWeight [etcdRequestType ]{
73
+ Requests : []random.ChoiceWeight [EtcdRequestType ]{
74
74
{Choice : Put , Weight : 50 },
75
75
{Choice : Delete , Weight : 50 },
76
76
},
77
77
}
78
78
)
79
79
80
- type etcdTraffic struct {
81
- keyCount int
82
- requests []random.ChoiceWeight [etcdRequestType ]
83
- leaseTTL int64
84
- largePutSize int
80
+ type EtcdTraffic struct {
81
+ KeyCount int
82
+ Requests []random.ChoiceWeight [EtcdRequestType ]
83
+ LeaseTTL int64
84
+ LargePutSize int
85
85
}
86
86
87
- func (t etcdTraffic ) ExpectUniqueRevision () bool {
87
+ func (t EtcdTraffic ) ExpectUniqueRevision () bool {
88
88
return false
89
89
}
90
90
91
- type etcdRequestType string
91
+ type EtcdRequestType string
92
92
93
93
const (
94
- Get etcdRequestType = "get"
95
- StaleGet etcdRequestType = "staleGet"
96
- List etcdRequestType = "list"
97
- StaleList etcdRequestType = "staleList"
98
- Put etcdRequestType = "put"
99
- LargePut etcdRequestType = "largePut"
100
- Delete etcdRequestType = "delete"
101
- MultiOpTxn etcdRequestType = "multiOpTxn"
102
- PutWithLease etcdRequestType = "putWithLease"
103
- LeaseRevoke etcdRequestType = "leaseRevoke"
104
- CompareAndSet etcdRequestType = "compareAndSet"
105
- Defragment etcdRequestType = "defragment"
94
+ Get EtcdRequestType = "get"
95
+ StaleGet EtcdRequestType = "staleGet"
96
+ List EtcdRequestType = "list"
97
+ StaleList EtcdRequestType = "staleList"
98
+ Put EtcdRequestType = "put"
99
+ LargePut EtcdRequestType = "largePut"
100
+ Delete EtcdRequestType = "delete"
101
+ MultiOpTxn EtcdRequestType = "multiOpTxn"
102
+ PutWithLease EtcdRequestType = "putWithLease"
103
+ LeaseRevoke EtcdRequestType = "leaseRevoke"
104
+ CompareAndSet EtcdRequestType = "compareAndSet"
105
+ Defragment EtcdRequestType = "defragment"
106
106
)
107
107
108
- func (t etcdTraffic ) Name () string {
108
+ func (t EtcdTraffic ) Name () string {
109
109
return "Etcd"
110
110
}
111
111
112
- func (t etcdTraffic ) RunTrafficLoop (ctx context.Context , c * client.RecordingClient , limiter * rate.Limiter , ids identity.Provider , lm identity.LeaseIDStorage , nonUniqueWriteLimiter ConcurrencyLimiter , finish <- chan struct {}) {
112
+ func (t EtcdTraffic ) RunTrafficLoop (ctx context.Context , c * client.RecordingClient , limiter * rate.Limiter , ids identity.Provider , lm identity.LeaseIDStorage , nonUniqueWriteLimiter ConcurrencyLimiter , finish <- chan struct {}) {
113
113
lastOperationSucceeded := true
114
114
var lastRev int64
115
- var requestType etcdRequestType
115
+ var requestType EtcdRequestType
116
116
client := etcdTrafficClient {
117
- etcdTraffic : t ,
117
+ EtcdTraffic : t ,
118
118
keyPrefix : "key" ,
119
119
client : c ,
120
120
limiter : limiter ,
@@ -133,7 +133,7 @@ func (t etcdTraffic) RunTrafficLoop(ctx context.Context, c *client.RecordingClie
133
133
134
134
// Avoid multiple failed writes in a row
135
135
if lastOperationSucceeded {
136
- choices := t .requests
136
+ choices := t .Requests
137
137
if shouldReturn = nonUniqueWriteLimiter .Take (); ! shouldReturn {
138
138
choices = filterOutNonUniqueEtcdWrites (choices )
139
139
}
@@ -156,7 +156,7 @@ func (t etcdTraffic) RunTrafficLoop(ctx context.Context, c *client.RecordingClie
156
156
}
157
157
}
158
158
159
- func (t etcdTraffic ) RunCompactLoop (ctx context.Context , c * client.RecordingClient , period time.Duration , finish <- chan struct {}) {
159
+ func (t EtcdTraffic ) RunCompactLoop (ctx context.Context , c * client.RecordingClient , period time.Duration , finish <- chan struct {}) {
160
160
var lastRev int64 = 2
161
161
ticker := time .NewTicker (period )
162
162
defer ticker .Stop ()
@@ -185,7 +185,7 @@ func (t etcdTraffic) RunCompactLoop(ctx context.Context, c *client.RecordingClie
185
185
}
186
186
}
187
187
188
- func filterOutNonUniqueEtcdWrites (choices []random.ChoiceWeight [etcdRequestType ]) (resp []random.ChoiceWeight [etcdRequestType ]) {
188
+ func filterOutNonUniqueEtcdWrites (choices []random.ChoiceWeight [EtcdRequestType ]) (resp []random.ChoiceWeight [EtcdRequestType ]) {
189
189
for _ , choice := range choices {
190
190
if choice .Choice != Delete && choice .Choice != LeaseRevoke {
191
191
resp = append (resp , choice )
@@ -195,15 +195,15 @@ func filterOutNonUniqueEtcdWrites(choices []random.ChoiceWeight[etcdRequestType]
195
195
}
196
196
197
197
type etcdTrafficClient struct {
198
- etcdTraffic
198
+ EtcdTraffic
199
199
keyPrefix string
200
200
client * client.RecordingClient
201
201
limiter * rate.Limiter
202
202
idProvider identity.Provider
203
203
leaseStorage identity.LeaseIDStorage
204
204
}
205
205
206
- func (c etcdTrafficClient ) Request (ctx context.Context , request etcdRequestType , lastRev int64 ) (rev int64 , err error ) {
206
+ func (c etcdTrafficClient ) Request (ctx context.Context , request EtcdRequestType , lastRev int64 ) (rev int64 , err error ) {
207
207
opCtx , cancel := context .WithTimeout (ctx , RequestTimeout )
208
208
defer cancel ()
209
209
@@ -241,7 +241,7 @@ func (c etcdTrafficClient) Request(ctx context.Context, request etcdRequestType,
241
241
}
242
242
case LargePut :
243
243
var resp * clientv3.PutResponse
244
- resp , err = c .client .Put (opCtx , c .randomKey (), random .RandString (c .largePutSize ))
244
+ resp , err = c .client .Put (opCtx , c .randomKey (), random .RandString (c .LargePutSize ))
245
245
if resp != nil {
246
246
rev = resp .Header .Revision
247
247
}
@@ -290,7 +290,7 @@ func (c etcdTrafficClient) Request(ctx context.Context, request etcdRequestType,
290
290
leaseID := c .leaseStorage .LeaseID (c .client .ID )
291
291
if leaseID == 0 {
292
292
var resp * clientv3.LeaseGrantResponse
293
- resp , err = c .client .LeaseGrant (opCtx , c .leaseTTL )
293
+ resp , err = c .client .LeaseGrant (opCtx , c .LeaseTTL )
294
294
if resp != nil {
295
295
leaseID = int64 (resp .ID )
296
296
rev = resp .ResponseHeader .Revision
@@ -335,7 +335,7 @@ func (c etcdTrafficClient) Request(ctx context.Context, request etcdRequestType,
335
335
}
336
336
337
337
func (c etcdTrafficClient ) pickMultiTxnOps () (ops []clientv3.Op ) {
338
- keys := rand .Perm (c .keyCount )
338
+ keys := rand .Perm (c .KeyCount )
339
339
opTypes := make ([]model.OperationType , 4 )
340
340
341
341
atLeastOnePut := false
@@ -372,10 +372,10 @@ func (c etcdTrafficClient) randomKey() string {
372
372
}
373
373
374
374
func (c etcdTrafficClient ) key (i int ) string {
375
- return fmt .Sprintf ("%s%d" , c .keyPrefix , i % c .keyCount )
375
+ return fmt .Sprintf ("%s%d" , c .keyPrefix , i % c .KeyCount )
376
376
}
377
377
378
- func (t etcdTraffic ) pickOperationType () model.OperationType {
378
+ func (t EtcdTraffic ) pickOperationType () model.OperationType {
379
379
roll := rand .Int () % 100
380
380
if roll < 10 {
381
381
return model .DeleteOperation
0 commit comments