Merge pull request #4375 from xiang90/kvapi_no_retry

clientv3: do not retry on modifications
This commit is contained in:
Xiang Li 2016-02-01 22:49:18 -08:00
commit 9afee37471

View File

@ -122,21 +122,18 @@ func (kv *kv) Delete(key string) (*DeleteResponse, error) {
}
func (kv *kv) Compact(rev int64) error {
for {
r := &pb.CompactionRequest{Revision: rev}
_, err := kv.getRemote().Compact(context.TODO(), r)
if err == nil {
return nil
}
if isRPCError(err) {
return err
}
if nerr := kv.switchRemote(err); nerr != nil {
return nerr
}
r := &pb.CompactionRequest{Revision: rev}
_, err := kv.getRemote().Compact(context.TODO(), r)
if err == nil {
return nil
}
if isRPCError(err) {
return err
}
go kv.switchRemote(err)
return nil
}
func (kv *kv) Txn() Txn {
@ -187,6 +184,12 @@ func (kv *kv) do(op Op) (*pb.ResponseUnion, error) {
return nil, err
}
// do not retry on modifications
if op.t != tRange {
go kv.switchRemote(err)
return nil, err
}
if nerr := kv.switchRemote(err); nerr != nil {
return nil, nerr
}