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,7 +122,6 @@ func (kv *kv) Delete(key string) (*DeleteResponse, error) {
} }
func (kv *kv) Compact(rev int64) error { func (kv *kv) Compact(rev int64) error {
for {
r := &pb.CompactionRequest{Revision: rev} r := &pb.CompactionRequest{Revision: rev}
_, err := kv.getRemote().Compact(context.TODO(), r) _, err := kv.getRemote().Compact(context.TODO(), r)
if err == nil { if err == nil {
@ -133,10 +132,8 @@ func (kv *kv) Compact(rev int64) error {
return err return err
} }
if nerr := kv.switchRemote(err); nerr != nil { go kv.switchRemote(err)
return nerr return nil
}
}
} }
func (kv *kv) Txn() Txn { func (kv *kv) Txn() Txn {
@ -187,6 +184,12 @@ func (kv *kv) do(op Op) (*pb.ResponseUnion, error) {
return nil, err 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 { if nerr := kv.switchRemote(err); nerr != nil {
return nil, nerr return nil, nerr
} }