@@ -45,7 +45,7 @@ func (server *ServerMonitor) RefreshBinaryLogs() error {
45
45
server .SetBinaryLogFiles (binlogs )
46
46
}
47
47
48
- if len (server .BinaryLogFiles ) > 0 {
48
+ if len (server .BinaryLogFiles . ToNewMap () ) > 0 {
49
49
server .SetBinaryLogFileOldest ()
50
50
}
51
51
@@ -62,7 +62,7 @@ func (server *ServerMonitor) CheckBinaryLogs() error {
62
62
return err
63
63
}
64
64
65
- if len (server .BinaryLogFiles ) == 0 {
65
+ if len (server .BinaryLogFiles . ToNewMap () ) == 0 {
66
66
server .RefreshBinaryLogs ()
67
67
}
68
68
@@ -115,7 +115,7 @@ func (server *ServerMonitor) ForcePurgeBinlogs() {
115
115
if err != nil {
116
116
cluster .LogModulePrintf (cluster .Conf .Verbose , config .ConstLogModPurge , config .LvlWarn , err .Error ())
117
117
}
118
- } else if len (server .BinaryLogFiles ) > 2 {
118
+ } else if len (server .BinaryLogFiles . ToNewMap () ) > 2 {
119
119
if isMaster {
120
120
go server .JobBinlogPurgeMaster ()
121
121
}
@@ -295,7 +295,7 @@ func (server *ServerMonitor) SetMaxBinlogTotalSize() error {
295
295
296
296
func (server * ServerMonitor ) SetBinaryLogFileOldest () {
297
297
cluster := server .ClusterGroup
298
- files := len (server .BinaryLogFiles )
298
+ files := len (server .BinaryLogFiles . ToNewMap () )
299
299
300
300
if server .IsRefreshingBinlog {
301
301
return
@@ -324,10 +324,10 @@ func (server *ServerMonitor) SetBinaryLogFileOldest() {
324
324
last := len (parts ) - 1
325
325
prefix := strings .Join (parts [:last ], "." )
326
326
latestbinlog , _ := strconv .Atoi (parts [last ])
327
- oldestbinlog := latestbinlog - len ( server . BinaryLogFiles ) + 1
327
+ oldestbinlog := latestbinlog - files + 1
328
328
oldest := prefix + "." + fmt .Sprintf ("%06d" , oldestbinlog )
329
329
330
- if _ , ok := server .BinaryLogFiles [ oldest ] ; ok && server .BinaryLogFileOldest != server .BinaryLogFile {
330
+ if _ , ok := server .BinaryLogFiles . CheckAndGet ( oldest ) ; ok && server .BinaryLogFileOldest != server .BinaryLogFile {
331
331
if server .BinaryLogFileOldest != oldest {
332
332
server .BinaryLogFileOldest = oldest
333
333
cluster .LogModulePrintf (cluster .Conf .Verbose , config .ConstLogModPurge , config .LvlDbg , "Refreshed binary logs on %s. oldest: %s" , server .Host + ":" + server .Port , server .BinaryLogFileOldest )
@@ -356,7 +356,7 @@ func (server *ServerMonitor) JobBinlogPurgeMaster() {
356
356
return
357
357
}
358
358
359
- if len (server .BinaryLogFiles ) == 0 {
359
+ if len (server .BinaryLogFiles . ToNewMap () ) == 0 {
360
360
server .RefreshBinaryLogs ()
361
361
}
362
362
@@ -388,7 +388,7 @@ func (server *ServerMonitor) JobBinlogPurgeMaster() {
388
388
prefix := strings .Join (parts [:last ], "." )
389
389
390
390
suffix , _ := strconv .Atoi (parts [last ])
391
- oldestbinlog := suffix + 1 - len (server .BinaryLogFiles )
391
+ oldestbinlog := suffix + 1 - len (server .BinaryLogFiles . ToNewMap () )
392
392
393
393
if cluster .SlavesOldestMasterFile .Prefix != prefix {
394
394
cluster .LogModulePrintf (cluster .Conf .Verbose , config .ConstLogModPurge , config .LvlDbg , "Purge cancelled, master binlog file has different prefix" )
@@ -429,7 +429,7 @@ func (server *ServerMonitor) JobBinlogPurgeMaster() {
429
429
//Accumulating newest binlog size and shifting to oldest
430
430
for suffix > 0 && totalSize < uint (cluster .Conf .ForceBinlogPurgeTotalSize * (1024 * 1024 * 1024 )) {
431
431
filename := prefix + "." + fmt .Sprintf ("%06d" , suffix )
432
- if size , ok := server .BinaryLogFiles [ filename ] ; ok {
432
+ if size , ok := server .BinaryLogFiles . CheckAndGet ( filename ) ; ok {
433
433
//accumulating size
434
434
totalSize += size
435
435
lastfile = suffix //last file based on total size
@@ -454,7 +454,7 @@ func (server *ServerMonitor) JobBinlogPurgeMaster() {
454
454
455
455
if oldestbinlog > 0 && oldestbinlog < cluster .SlavesOldestMasterFile .Suffix - 1 {
456
456
filename := prefix + "." + fmt .Sprintf ("%06d" , oldestbinlog )
457
- if _ , ok := server .BinaryLogFiles [ filename ] ; ok {
457
+ if _ , ok := server .BinaryLogFiles . CheckAndGet ( filename ) ; ok {
458
458
cluster .LogModulePrintf (cluster .Conf .Verbose , config .ConstLogModPurge , config .LvlInfo , "Purging binlog of %s: %s. " , server .URL , filename )
459
459
_ , err := dbhelper .PurgeBinlogTo (server .Conn , filename )
460
460
if err != nil {
@@ -476,7 +476,7 @@ func (server *ServerMonitor) JobBinlogPurgeMaster() {
476
476
func (server * ServerMonitor ) PurgeBinlogTo (filename string ) {
477
477
cluster := server .ClusterGroup
478
478
//Check if file exists
479
- if _ , ok := server .BinaryLogFiles [ filename ] ; ok {
479
+ if _ , ok := server .BinaryLogFiles . CheckAndGet ( filename ) ; ok {
480
480
_ , err := dbhelper .PurgeBinlogTo (server .Conn , filename )
481
481
if err != nil {
482
482
cluster .LogModulePrintf (cluster .Conf .Verbose , config .ConstLogModPurge , config .LvlWarn , "Error purging binlog of %s,%s : %s" , server .URL , filename , err .Error ())
@@ -509,7 +509,7 @@ func (server *ServerMonitor) JobBinlogPurgeSlave() {
509
509
}
510
510
511
511
//Purge slaves to oldest master binlog timestamp and skip if slave only has 2 binary logs file left (Current Binlog and Prev Binlog)
512
- if server .BinaryLogOldestTimestamp > 0 && master .BinaryLogOldestTimestamp > server .BinaryLogPurgeBefore && len (server .BinaryLogFiles ) > 2 {
512
+ if server .BinaryLogOldestTimestamp > 0 && master .BinaryLogOldestTimestamp > server .BinaryLogPurgeBefore && len (server .BinaryLogFiles . ToNewMap () ) > 2 {
513
513
cluster .LogModulePrintf (cluster .Conf .Verbose , config .ConstLogModPurge , config .LvlInfo , "Purging slave binlog of %s from %s until oldest timestamp on master: %s" , server .URL , time .Unix (server .BinaryLogOldestTimestamp , 0 ).String (), time .Unix (master .BinaryLogOldestTimestamp , 0 ).String ())
514
514
q , err := dbhelper .PurgeBinlogBefore (server .Conn , master .BinaryLogOldestTimestamp )
515
515
if err != nil {
0 commit comments