clientv3: do not retry on modifications

release-2.3
Xiang Li 2016-02-01 21:54:40 -08:00
parent 24f5640d83
commit a9bd30b4af
1 changed files with 17 additions and 14 deletions

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
}