Skip to content

Commit

Permalink
table/tables: fix some stability issues with cached table (#33171)
Browse files Browse the repository at this point in the history
close #33169
  • Loading branch information
tiancaiamao committed Mar 17, 2022
1 parent e8ee6c1 commit 13e6969
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
1 change: 1 addition & 0 deletions table/tables/cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ func (c *cachedTable) updateLockForRead(ctx context.Context, store kv.Storage, t
if succ {
mb, startTS, totalSize, err := c.loadDataFromOriginalTable(store, lease)
if err != nil {
log.Info("load data from table", zap.Error(err))
return
}

Expand Down
11 changes: 9 additions & 2 deletions table/tables/state_remote.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,15 +211,20 @@ func waitForLeaseExpire(oldReadLease, now uint64) time.Duration {
if oldReadLease >= now {
t1 := oracle.GetTimeFromTS(oldReadLease)
t2 := oracle.GetTimeFromTS(now)
waitDuration := t1.Sub(t2)
return waitDuration
if t1.After(t2) {
waitDuration := t1.Sub(t2)
return waitDuration
}
return time.Microsecond
}
return 0
}

// RenewReadLease renew the read lock lease.
// Return the current lease value on success, and return 0 on fail.
func (h *stateRemoteHandle) RenewReadLease(ctx context.Context, tid int64, oldLocalLease, newValue uint64) (uint64, error) {
h.Lock()
defer h.Unlock()
var newLease uint64
err := h.runInTxn(ctx, func(ctx context.Context, now uint64) error {
lockType, remoteLease, _, err := h.loadRow(ctx, tid)
Expand Down Expand Up @@ -266,6 +271,8 @@ func (h *stateRemoteHandle) RenewReadLease(ctx context.Context, tid int64, oldLo
}

func (h *stateRemoteHandle) RenewWriteLease(ctx context.Context, tid int64, newLease uint64) (bool, error) {
h.Lock()
defer h.Unlock()
var succ bool
err := h.runInTxn(ctx, func(ctx context.Context, now uint64) error {
lockType, oldLease, _, err := h.loadRow(ctx, tid)
Expand Down

0 comments on commit 13e6969

Please sign in to comment.