Skip to content

Commit

Permalink
Remove useless Get operation
Browse files Browse the repository at this point in the history
  • Loading branch information
marco6 committed Oct 29, 2024
1 parent c4f06d4 commit ebd19f9
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 58 deletions.
6 changes: 2 additions & 4 deletions pkg/kine/server/compact.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@ func (l *LimitedServer) compact(ctx context.Context) (*etcdserverpb.TxnResponse,
Response: &etcdserverpb.ResponseOp_ResponseRange{
ResponseRange: &etcdserverpb.RangeResponse{
Header: &etcdserverpb.ResponseHeader{},
Kvs: []*mvccpb.KeyValue{
&mvccpb.KeyValue{},
},
Count: 1,
Kvs: []*mvccpb.KeyValue{{}},
Count: 1,
},
},
},
Expand Down
7 changes: 3 additions & 4 deletions pkg/kine/server/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ func isDelete(txn *etcdserverpb.TxnRequest) (int64, string, bool) {
return 0, "", false
}

func (l *LimitedServer) delete(ctx context.Context, key string, revision int64) (*etcdserverpb.TxnResponse, error) {
var err error
func (l *LimitedServer) delete(ctx context.Context, key string, revision int64) (_ *etcdserverpb.TxnResponse, err error) {
deleteCnt.Add(ctx, 1)
ctx, span := otelTracer.Start(ctx, fmt.Sprintf("%s.delete", otelName))
defer func() {
Expand Down Expand Up @@ -57,7 +56,7 @@ func (l *LimitedServer) delete(ctx context.Context, key string, revision int64)
},
}
} else {
rev, kv, err := l.backend.Get(ctx, key, "", 1, rev)
rev, kv, err := l.backend.List(ctx, key, "", 1, rev)
if err != nil {
return nil, err
}
Expand All @@ -66,7 +65,7 @@ func (l *LimitedServer) delete(ctx context.Context, key string, revision int64)
Response: &etcdserverpb.ResponseOp_ResponseRange{
ResponseRange: &etcdserverpb.RangeResponse{
Header: txnHeader(rev),
Kvs: toKVs(kv),
Kvs: toKVs(kv...),
},
},
},
Expand Down
22 changes: 10 additions & 12 deletions pkg/kine/server/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,23 @@ func (l *LimitedServer) get(ctx context.Context, r *etcdserverpb.RangeRequest) (

span.SetAttributes(
attribute.String("key", string(r.Key)),
attribute.String("rangeEnd", string(r.RangeEnd)),
attribute.Int64("limit", r.Limit),
attribute.Int64("revision", r.Revision),
)
if r.Limit != 0 && len(r.RangeEnd) != 0 {
err := fmt.Errorf("invalid combination of rangeEnd and limit, limit should be 0 got %d", r.Limit)
return nil, err

if len(r.RangeEnd) != 0 {
return nil, fmt.Errorf("unexpected rangeEnd: want empty, got %s", r.RangeEnd)
}
if r.Limit != 0 {
return nil, fmt.Errorf("unexpected limit: want 0, got %d", r.Limit)
}

rev, kv, err := l.backend.Get(ctx, string(r.Key), string(r.RangeEnd), r.Limit, r.Revision)
rev, kv, err := l.backend.List(ctx, string(r.Key), "", 1, r.Revision)
if err != nil {
return nil, err
}

resp := &RangeResponse{
return &RangeResponse{
Header: txnHeader(rev),
}
if kv != nil {
resp.Kvs = []*KeyValue{kv}
}
return resp, nil
Kvs: kv,
}, nil
}
1 change: 0 additions & 1 deletion pkg/kine/server/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ var (
type Backend interface {
Start(ctx context.Context) error
Wait()
Get(ctx context.Context, key, rangeEnd string, limit, revision int64) (int64, *KeyValue, error)
Create(ctx context.Context, key string, value []byte, lease int64) (int64, bool, error)
Delete(ctx context.Context, key string, revision int64) (int64, bool, error)
List(ctx context.Context, prefix, startKey string, limit, revision int64) (int64, []*KeyValue, error)
Expand Down
24 changes: 9 additions & 15 deletions pkg/kine/server/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,7 @@ func isUpdate(txn *etcdserverpb.TxnRequest) (int64, string, []byte, int64, bool)
return 0, "", nil, 0, false
}

func (l *LimitedServer) update(ctx context.Context, rev int64, key string, value []byte, lease int64) (*etcdserverpb.TxnResponse, error) {
var (
kv *KeyValue
succeeded bool
err error
)
func (l *LimitedServer) update(ctx context.Context, rev int64, key string, value []byte, lease int64) (_ *etcdserverpb.TxnResponse, err error) {
updateCnt.Add(ctx, 1)

ctx, span := otelTracer.Start(ctx, fmt.Sprintf("%s.update", otelName))
Expand All @@ -44,6 +39,7 @@ func (l *LimitedServer) update(ctx context.Context, rev int64, key string, value
attribute.Int64("revision", rev),
)

var succeeded bool
if rev == 0 {
rev, succeeded, err = l.backend.Create(ctx, key, value, lease)
} else {
Expand All @@ -70,20 +66,18 @@ func (l *LimitedServer) update(ctx context.Context, rev int64, key string, value
},
}
} else {
rev, kv, err = l.backend.Get(ctx, key, "", 1, rev)
rev, kv, err := l.backend.List(ctx, key, "", 1, rev)
if err != nil {
return nil, err
}
resp.Responses = []*etcdserverpb.ResponseOp{
{
Response: &etcdserverpb.ResponseOp_ResponseRange{
ResponseRange: &etcdserverpb.RangeResponse{
Header: txnHeader(rev),
Kvs: toKVs(kv),
},
resp.Responses = []*etcdserverpb.ResponseOp{{
Response: &etcdserverpb.ResponseOp_ResponseRange{
ResponseRange: &etcdserverpb.RangeResponse{
Header: txnHeader(rev),
Kvs: toKVs(kv...),
},
},
}
}}
}

return resp, nil
Expand Down
22 changes: 0 additions & 22 deletions pkg/kine/sqllog/sqllog.go
Original file line number Diff line number Diff line change
Expand Up @@ -227,28 +227,6 @@ func (s *SQLLog) After(ctx context.Context, prefix string, revision, limit int64
return currentRevision, result, err
}

func (s *SQLLog) Get(ctx context.Context, key, rangeEnd string, limit, revision int64) (revRet int64, kvRet *server.KeyValue, errRet error) {
ctx, span := otelTracer.Start(ctx, fmt.Sprintf("%s.Get", otelName))
span.SetAttributes(
attribute.String("key", key),
attribute.String("rangeEnd", rangeEnd),
attribute.Int64("limit", limit),
attribute.Int64("revision", revision),
)
defer func() {
logrus.Debugf("GET %s, rev=%d => rev=%d, kv=%v, err=%v", key, revision, revRet, kvRet != nil, errRet)
span.SetAttributes(attribute.Int64("current-revision", revRet))
span.RecordError(errRet)
span.End()
}()

rev, kv, err := s.List(ctx, key, rangeEnd, limit, revision)
if len(kv) == 0 {
return rev, nil, err
}
return rev, kv[0], err
}

func (s *SQLLog) List(ctx context.Context, prefix, startKey string, limit, revision int64) (int64, []*server.KeyValue, error) {
var err error

Expand Down

0 comments on commit ebd19f9

Please sign in to comment.