Merge pull request #6804 from heyitsanthony/stm-conflict

grpcproxy: invalidate comparison keys after txn
release-3.1
Anthony Romano 2016-11-04 17:04:16 -07:00 committed by GitHub
commit 352d4fa3fa
1 changed files with 9 additions and 1 deletions

View File

@ -89,7 +89,15 @@ func (p *kvProxy) Txn(ctx context.Context, r *pb.TxnRequest) (*pb.TxnResponse, e
}
resp, err := txn.If(cmps...).Then(thenops...).Else(elseops...).Commit()
return (*pb.TxnResponse)(resp), err
if err != nil {
return nil, err
}
// txn may claim an outdated key is updated; be safe and invalidate
for _, cmp := range r.Compare {
p.cache.Invalidate(cmp.Key, nil)
}
return (*pb.TxnResponse)(resp), nil
}
func (p *kvProxy) Compact(ctx context.Context, r *pb.CompactionRequest) (*pb.CompactionResponse, error) {