Skip to content

Commit 49ca14d

Browse files
committed
Add ResolveLocksDone for other call of ResolveLocks
Signed-off-by: longfangsong <longfangsong@icloud.com>
1 parent 3f28622 commit 49ca14d

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

txnkv/transaction/pessimistic.go

+1
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ func (action actionPessimisticLock) handleSingleBatch(c *twoPhaseCommitter, bo *
227227
// tikv default will wait 3s(also the maximum wait value) when lock error occurs
228228
startTime = time.Now()
229229
msBeforeTxnExpired, err := c.store.GetLockResolver().ResolveLocks(bo, 0, locks)
230+
defer c.store.GetLockResolver().ResolveLocksDone(c.startTS)
230231
if err != nil {
231232
return err
232233
}

txnkv/txnsnapshot/client_helper.go

+5
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ func (ch *ClientHelper) ResolveLocks(bo *retry.Backoffer, callerStartTS uint64,
9797
return msBeforeTxnExpired, nil
9898
}
9999

100+
// ResolveLocksDone wraps the ResolveLocksDone function
101+
func (ch *ClientHelper) ResolveLocksDone(callerStartTS uint64) {
102+
ch.lockResolver.ResolveLocksDone(callerStartTS)
103+
}
104+
100105
// SendReqCtx wraps the SendReqCtx function and use the resolved lock result in the kvrpcpb.Context.
101106
func (ch *ClientHelper) SendReqCtx(bo *retry.Backoffer, req *tikvrpc.Request, regionID locate.RegionVerID, timeout time.Duration, et tikvrpc.EndpointType, directStoreAddr string, opts ...locate.StoreSelectorOption) (*tikvrpc.Response, *locate.RPCContext, string, error) {
102107
sender := locate.NewRegionRequestSender(ch.regionCache, ch.client)

txnkv/txnsnapshot/scan.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,8 @@ func (s *Scanner) getData(bo *retry.Backoffer) error {
293293
if err != nil {
294294
return err
295295
}
296-
msBeforeExpired, err := txnlock.NewLockResolver(s.snapshot.store).ResolveLocks(bo, s.snapshot.version, []*txnlock.Lock{lock})
296+
msBeforeExpired, err := s.snapshot.store.GetLockResolver().ResolveLocks(bo, s.snapshot.version, []*txnlock.Lock{lock})
297+
defer s.snapshot.store.GetLockResolver().ResolveLocksDone(s.snapshot.version)
297298
if err != nil {
298299
return err
299300
}

txnkv/txnsnapshot/snapshot.go

+2
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ func (s *KVSnapshot) batchGetSingleRegion(bo *retry.Backoffer, batch batchKeys,
451451
}
452452
if len(lockedKeys) > 0 {
453453
msBeforeExpired, err := cli.ResolveLocks(bo, s.version, locks)
454+
defer cli.ResolveLocksDone(s.version)
454455
if err != nil {
455456
return err
456457
}
@@ -619,6 +620,7 @@ func (s *KVSnapshot) get(ctx context.Context, bo *retry.Backoffer, k []byte) ([]
619620
}
620621

621622
msBeforeExpired, err := cli.ResolveLocks(bo, s.version, []*txnlock.Lock{lock})
623+
defer cli.ResolveLocksDone(s.version)
622624
if err != nil {
623625
return nil, err
624626
}

0 commit comments

Comments
 (0)