From f28a87d8351be73e6893887691e9459ba96d456a Mon Sep 17 00:00:00 2001 From: mqliang Date: Tue, 28 Jun 2016 10:11:41 +0800 Subject: [PATCH] proxy: implement compaction --- proxy/grpcproxy/kv.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/proxy/grpcproxy/kv.go b/proxy/grpcproxy/kv.go index c8c72567a..91ee96f20 100644 --- a/proxy/grpcproxy/kv.go +++ b/proxy/grpcproxy/kv.go @@ -81,6 +81,20 @@ func (p *kvProxy) Txn(ctx context.Context, r *pb.TxnRequest) (*pb.TxnResponse, e return (*pb.TxnResponse)(resp), err } +func (p *kvProxy) Compact(ctx context.Context, r *pb.CompactionRequest) (*pb.CompactionResponse, error) { + var opts []clientv3.CompactOption + if r.Physical { + opts = append(opts, clientv3.WithCompactPhysical()) + } + + resp, err := p.c.KV.Compact(ctx, r.Revision, opts...) + if err == nil { + p.cache.Compact(r.Revision) + } + + return (*pb.CompactionResponse)(resp), err +} + func (p *kvProxy) Close() error { return p.c.Close() } @@ -137,7 +151,3 @@ func DelRequestToOp(r *pb.DeleteRangeRequest) clientv3.Op { return clientv3.OpDelete(string(r.Key), opts...) } - -func (p *kvProxy) Compact(ctx context.Context, r *pb.CompactionRequest) (*pb.CompactionResponse, error) { - panic("unimplemented") -}