Skip to content

Commit 382c535

Browse files
author
ffffwh
committed
Merge branch 'master' into 3.21.01.0
2 parents f405a0e + ba5a849 commit 382c535

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

drivers/mysql/mysql/applier_gtid_executed.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -252,13 +252,13 @@ func (a *ApplierIncr) cleanGtidExecuted(sid uuid.UUID, txSid string) error {
252252
}
253253
a.logger.Debug("incr. cleanup after WaitForExecution")
254254

255-
var intervalStr string
256-
{
255+
intervalStr := func() string {
257256
a.gtidSetLock.RLock()
257+
defer a.gtidSetLock.RUnlock()
258258
intervals := base.GetIntervals(a.gtidSet, txSid)
259-
intervalStr = base.StringInterval(intervals)
260-
a.gtidSetLock.RUnlock()
261-
}
259+
return base.StringInterval(intervals)
260+
}()
261+
262262
// The TX is unnecessary if we first insert and then delete.
263263
// However, consider `binlog_group_commit_sync_delay > 0`,
264264
// `begin; delete; insert; commit;` (1 TX) is faster than `insert; delete;` (2 TX)

drivers/mysql/mysql/applier_incr.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -210,15 +210,15 @@ func (a *ApplierIncr) heterogeneousReplay() {
210210
txSid := binlogEntry.Coordinates.GetSid()
211211

212212
gtidSetItem := a.gtidItemMap.GetItem(binlogEntry.Coordinates.SID)
213-
{
213+
txExecuted := func() bool {
214214
a.gtidSetLock.RLock()
215+
defer a.gtidSetLock.RUnlock()
215216
intervals := base.GetIntervals(a.gtidSet, txSid)
216-
if base.IntervalSlicesContainOne(intervals, binlogEntry.Coordinates.GNO) {
217-
// entry executed
218-
a.logger.Info("skip an executed tx", "sid", txSid, "gno", binlogEntry.Coordinates.GNO)
219-
continue
220-
}
221-
a.gtidSetLock.RUnlock()
217+
return base.IntervalSlicesContainOne(intervals, binlogEntry.Coordinates.GNO)
218+
}()
219+
if txExecuted {
220+
a.logger.Info("skip an executed tx", "sid", txSid, "gno", binlogEntry.Coordinates.GNO)
221+
continue
222222
}
223223
// endregion
224224
// this must be after duplication check

0 commit comments

Comments
 (0)