|
|
@@ -39,11 +39,14 @@ func (p *kvProxy) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeRespo
|
|
|
resp, err := p.cache.Get(r)
|
|
|
switch err {
|
|
|
case nil:
|
|
|
+ cacheHits.Inc()
|
|
|
return resp, nil
|
|
|
case cache.ErrCompacted:
|
|
|
+ cacheHits.Inc()
|
|
|
return nil, err
|
|
|
}
|
|
|
}
|
|
|
+ cachedMisses.Inc()
|
|
|
|
|
|
resp, err := p.kv.Do(ctx, RangeRequestToOp(r))
|
|
|
if err != nil {
|
|
|
@@ -55,18 +58,23 @@ func (p *kvProxy) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeRespo
|
|
|
req.Serializable = true
|
|
|
gresp := (*pb.RangeResponse)(resp.Get())
|
|
|
p.cache.Add(&req, gresp)
|
|
|
+ cacheKeys.Set(float64(p.cache.Size()))
|
|
|
|
|
|
return gresp, nil
|
|
|
}
|
|
|
|
|
|
func (p *kvProxy) Put(ctx context.Context, r *pb.PutRequest) (*pb.PutResponse, error) {
|
|
|
p.cache.Invalidate(r.Key, nil)
|
|
|
+ cacheKeys.Set(float64(p.cache.Size()))
|
|
|
+
|
|
|
resp, err := p.kv.Do(ctx, PutRequestToOp(r))
|
|
|
return (*pb.PutResponse)(resp.Put()), err
|
|
|
}
|
|
|
|
|
|
func (p *kvProxy) DeleteRange(ctx context.Context, r *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) {
|
|
|
p.cache.Invalidate(r.Key, r.RangeEnd)
|
|
|
+ cacheKeys.Set(float64(p.cache.Size()))
|
|
|
+
|
|
|
resp, err := p.kv.Do(ctx, DelRequestToOp(r))
|
|
|
return (*pb.DeleteRangeResponse)(resp.Del()), err
|
|
|
}
|
|
|
@@ -120,6 +128,9 @@ func (p *kvProxy) Txn(ctx context.Context, r *pb.TxnRequest) (*pb.TxnResponse, e
|
|
|
} else {
|
|
|
p.txnToCache(r.Failure, resp.Responses)
|
|
|
}
|
|
|
+
|
|
|
+ cacheKeys.Set(float64(p.cache.Size()))
|
|
|
+
|
|
|
return (*pb.TxnResponse)(resp), nil
|
|
|
}
|
|
|
|
|
|
@@ -134,6 +145,8 @@ func (p *kvProxy) Compact(ctx context.Context, r *pb.CompactionRequest) (*pb.Com
|
|
|
p.cache.Compact(r.Revision)
|
|
|
}
|
|
|
|
|
|
+ cacheKeys.Set(float64(p.cache.Size()))
|
|
|
+
|
|
|
return (*pb.CompactionResponse)(resp), err
|
|
|
}
|
|
|
|