47 lines
655 B
Go
Raw Normal View History

2017-02-12 13:13:54 +02:00
package canal
import (
"sync"
"github.com/ngaut/log"
"github.com/siddontang/go-mysql/mysql"
)
type masterInfo struct {
2017-10-02 08:40:33 +03:00
sync.RWMutex
2017-02-12 13:13:54 +02:00
2017-10-02 08:40:33 +03:00
pos mysql.Position
2017-02-12 13:13:54 +02:00
2017-10-02 08:40:33 +03:00
gtid mysql.GTIDSet
2017-02-12 13:13:54 +02:00
}
2017-10-02 08:40:33 +03:00
func (m *masterInfo) Update(pos mysql.Position) {
log.Debugf("update master position %s", pos)
2017-02-12 13:13:54 +02:00
2017-10-02 08:40:33 +03:00
m.Lock()
m.pos = pos
m.Unlock()
2017-02-12 13:13:54 +02:00
}
2017-10-02 08:40:33 +03:00
func (m *masterInfo) UpdateGTID(gtid mysql.GTIDSet) {
log.Debugf("update master gtid %s", gtid.String())
2017-02-12 13:13:54 +02:00
2017-10-02 08:40:33 +03:00
m.Lock()
m.gtid = gtid
m.Unlock()
2017-02-12 13:13:54 +02:00
}
2017-10-02 08:40:33 +03:00
func (m *masterInfo) Position() mysql.Position {
m.RLock()
defer m.RUnlock()
2017-02-12 13:13:54 +02:00
2017-10-02 08:40:33 +03:00
return m.pos
2017-02-12 13:13:54 +02:00
}
2017-10-02 08:40:33 +03:00
func (m *masterInfo) GTID() mysql.GTIDSet {
m.RLock()
defer m.RUnlock()
return m.gtid
2017-02-12 13:13:54 +02:00
}