3
3
package measure
4
4
5
5
import (
6
+ "context"
6
7
"io"
7
8
"time"
8
9
@@ -171,31 +172,31 @@ func recordLatency(h metrics.Histogram, start time.Time) {
171
172
h .Observe (elapsed .Seconds ())
172
173
}
173
174
174
- func (m * measure ) Put (key datastore.Key , value []byte ) error {
175
+ func (m * measure ) Put (ctx context. Context , key datastore.Key , value []byte ) error {
175
176
defer recordLatency (m .putLatency , time .Now ())
176
177
m .putNum .Inc ()
177
178
m .putSize .Observe (float64 (len (value )))
178
- err := m .backend .Put (key , value )
179
+ err := m .backend .Put (ctx , key , value )
179
180
if err != nil {
180
181
m .putErr .Inc ()
181
182
}
182
183
return err
183
184
}
184
185
185
- func (m * measure ) Sync (prefix datastore.Key ) error {
186
+ func (m * measure ) Sync (ctx context. Context , prefix datastore.Key ) error {
186
187
defer recordLatency (m .syncLatency , time .Now ())
187
188
m .syncNum .Inc ()
188
- err := m .backend .Sync (prefix )
189
+ err := m .backend .Sync (ctx , prefix )
189
190
if err != nil {
190
191
m .syncErr .Inc ()
191
192
}
192
193
return err
193
194
}
194
195
195
- func (m * measure ) Get (key datastore.Key ) (value []byte , err error ) {
196
+ func (m * measure ) Get (ctx context. Context , key datastore.Key ) (value []byte , err error ) {
196
197
defer recordLatency (m .getLatency , time .Now ())
197
198
m .getNum .Inc ()
198
- value , err = m .backend .Get (key )
199
+ value , err = m .backend .Get (ctx , key )
199
200
switch err {
200
201
case nil :
201
202
m .getSize .Observe (float64 (len (value )))
@@ -207,20 +208,20 @@ func (m *measure) Get(key datastore.Key) (value []byte, err error) {
207
208
return value , err
208
209
}
209
210
210
- func (m * measure ) Has (key datastore.Key ) (exists bool , err error ) {
211
+ func (m * measure ) Has (ctx context. Context , key datastore.Key ) (exists bool , err error ) {
211
212
defer recordLatency (m .hasLatency , time .Now ())
212
213
m .hasNum .Inc ()
213
- exists , err = m .backend .Has (key )
214
+ exists , err = m .backend .Has (ctx , key )
214
215
if err != nil {
215
216
m .hasErr .Inc ()
216
217
}
217
218
return exists , err
218
219
}
219
220
220
- func (m * measure ) GetSize (key datastore.Key ) (size int , err error ) {
221
+ func (m * measure ) GetSize (ctx context. Context , key datastore.Key ) (size int , err error ) {
221
222
defer recordLatency (m .getsizeLatency , time .Now ())
222
223
m .getsizeNum .Inc ()
223
- size , err = m .backend .GetSize (key )
224
+ size , err = m .backend .GetSize (ctx , key )
224
225
switch err {
225
226
case nil , datastore .ErrNotFound :
226
227
// Not really an error.
@@ -230,31 +231,31 @@ func (m *measure) GetSize(key datastore.Key) (size int, err error) {
230
231
return size , err
231
232
}
232
233
233
- func (m * measure ) Delete (key datastore.Key ) error {
234
+ func (m * measure ) Delete (ctx context. Context , key datastore.Key ) error {
234
235
defer recordLatency (m .deleteLatency , time .Now ())
235
236
m .deleteNum .Inc ()
236
- err := m .backend .Delete (key )
237
+ err := m .backend .Delete (ctx , key )
237
238
if err != nil {
238
239
m .deleteErr .Inc ()
239
240
}
240
241
return err
241
242
}
242
243
243
- func (m * measure ) Query (q query.Query ) (query.Results , error ) {
244
+ func (m * measure ) Query (ctx context. Context , q query.Query ) (query.Results , error ) {
244
245
defer recordLatency (m .queryLatency , time .Now ())
245
246
m .queryNum .Inc ()
246
- res , err := m .backend .Query (q )
247
+ res , err := m .backend .Query (ctx , q )
247
248
if err != nil {
248
249
m .queryErr .Inc ()
249
250
}
250
251
return res , err
251
252
}
252
253
253
- func (m * measure ) Check () error {
254
+ func (m * measure ) Check (ctx context. Context ) error {
254
255
defer recordLatency (m .checkLatency , time .Now ())
255
256
m .checkNum .Inc ()
256
257
if c , ok := m .backend .(datastore.CheckedDatastore ); ok {
257
- err := c .Check ()
258
+ err := c .Check (ctx )
258
259
if err != nil {
259
260
m .checkErr .Inc ()
260
261
}
@@ -263,11 +264,11 @@ func (m *measure) Check() error {
263
264
return nil
264
265
}
265
266
266
- func (m * measure ) Scrub () error {
267
+ func (m * measure ) Scrub (ctx context. Context ) error {
267
268
defer recordLatency (m .scrubLatency , time .Now ())
268
269
m .scrubNum .Inc ()
269
270
if c , ok := m .backend .(datastore.ScrubbedDatastore ); ok {
270
- err := c .Scrub ()
271
+ err := c .Scrub (ctx )
271
272
if err != nil {
272
273
m .scrubErr .Inc ()
273
274
}
@@ -276,11 +277,11 @@ func (m *measure) Scrub() error {
276
277
return nil
277
278
}
278
279
279
- func (m * measure ) CollectGarbage () error {
280
+ func (m * measure ) CollectGarbage (ctx context. Context ) error {
280
281
defer recordLatency (m .gcLatency , time .Now ())
281
282
m .gcNum .Inc ()
282
283
if c , ok := m .backend .(datastore.GCDatastore ); ok {
283
- err := c .CollectGarbage ()
284
+ err := c .CollectGarbage (ctx )
284
285
if err != nil {
285
286
m .gcErr .Inc ()
286
287
}
@@ -289,10 +290,10 @@ func (m *measure) CollectGarbage() error {
289
290
return nil
290
291
}
291
292
292
- func (m * measure ) DiskUsage () (uint64 , error ) {
293
+ func (m * measure ) DiskUsage (ctx context. Context ) (uint64 , error ) {
293
294
defer recordLatency (m .duLatency , time .Now ())
294
295
m .duNum .Inc ()
295
- size , err := datastore .DiskUsage (m .backend )
296
+ size , err := datastore .DiskUsage (ctx , m .backend )
296
297
if err != nil {
297
298
m .duErr .Inc ()
298
299
}
@@ -304,12 +305,12 @@ type measuredBatch struct {
304
305
m * measure
305
306
}
306
307
307
- func (m * measure ) Batch () (datastore.Batch , error ) {
308
+ func (m * measure ) Batch (ctx context. Context ) (datastore.Batch , error ) {
308
309
bds , ok := m .backend .(datastore.Batching )
309
310
if ! ok {
310
311
return nil , datastore .ErrBatchUnsupported
311
312
}
312
- batch , err := bds .Batch ()
313
+ batch , err := bds .Batch (ctx )
313
314
if err != nil {
314
315
return nil , err
315
316
}
@@ -320,31 +321,31 @@ func (m *measure) Batch() (datastore.Batch, error) {
320
321
}, nil
321
322
}
322
323
323
- func (mt * measuredBatch ) Put (key datastore.Key , val []byte ) error {
324
+ func (mt * measuredBatch ) Put (ctx context. Context , key datastore.Key , val []byte ) error {
324
325
defer recordLatency (mt .m .batchPutLatency , time .Now ())
325
326
mt .m .batchPutNum .Inc ()
326
327
mt .m .batchPutSize .Observe (float64 (len (val )))
327
- err := mt .b .Put (key , val )
328
+ err := mt .b .Put (ctx , key , val )
328
329
if err != nil {
329
330
mt .m .batchPutErr .Inc ()
330
331
}
331
332
return err
332
333
}
333
334
334
- func (mt * measuredBatch ) Delete (key datastore.Key ) error {
335
+ func (mt * measuredBatch ) Delete (ctx context. Context , key datastore.Key ) error {
335
336
defer recordLatency (mt .m .batchDeleteLatency , time .Now ())
336
337
mt .m .batchDeleteNum .Inc ()
337
- err := mt .b .Delete (key )
338
+ err := mt .b .Delete (ctx , key )
338
339
if err != nil {
339
340
mt .m .batchDeleteErr .Inc ()
340
341
}
341
342
return err
342
343
}
343
344
344
- func (mt * measuredBatch ) Commit () error {
345
+ func (mt * measuredBatch ) Commit (ctx context. Context ) error {
345
346
defer recordLatency (mt .m .batchCommitLatency , time .Now ())
346
347
mt .m .batchCommitNum .Inc ()
347
- err := mt .b .Commit ()
348
+ err := mt .b .Commit (ctx )
348
349
if err != nil {
349
350
mt .m .batchCommitErr .Inc ()
350
351
}
0 commit comments