Documentation ¶
Index ¶
- func GetGTIDsForPos(ctx context.Context, r Reader, endPos gmysql.Position) (gmysql.GTIDSet, error)
- func GetGTIDsForPosFromStreamer(ctx context.Context, r Streamer, endPos gmysql.Position) (gmysql.GTIDSet, error)
- func GetPreviousGTIDFromGTIDSet(ctx context.Context, r Reader, gset gmysql.GTIDSet) (gmysql.GTIDSet, error)
- type FileReader
- type FileReaderConfig
- type FileReaderStatus
- type MockReader
- func (r *MockReader) Close() error
- func (r *MockReader) GetEvent(ctx context.Context) (*replication.BinlogEvent, error)
- func (r *MockReader) PushError(ctx context.Context, err error) error
- func (r *MockReader) PushEvent(ctx context.Context, ev *replication.BinlogEvent) error
- func (r *MockReader) StartSyncByGTID(gSet gmysql.GTIDSet) error
- func (r *MockReader) StartSyncByPos(pos gmysql.Position) error
- func (r *MockReader) Status() interface{}
- type Reader
- type Streamer
- type TCPReader
- type TCPReaderStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetGTIDsForPos ¶
GetGTIDsForPos tries to get GTID sets for the specified binlog position (for the corresponding txn). NOTE: this method is very similar with `relay/writer/file_util.go/getTxnPosGTIDs`, unify them if needed later. NOTE: this method is not well tested directly, but more tests have already been done for `relay/writer/file_util.go/getTxnPosGTIDs`.
func GetGTIDsForPosFromStreamer ¶
func GetGTIDsForPosFromStreamer(ctx context.Context, r Streamer, endPos gmysql.Position) (gmysql.GTIDSet, error)
GetGTIDsForPosFromStreamer tries to get GTID sets for the specified binlog position (for the corresponding txn) from a Streamer.
func GetPreviousGTIDFromGTIDSet ¶
func GetPreviousGTIDFromGTIDSet(ctx context.Context, r Reader, gset gmysql.GTIDSet) (gmysql.GTIDSet, error)
GetPreviousGTIDFromGTIDSet tries to get previous GTID sets from Previous_GTID_EVENT GTID for the specified GITD Set. events should be [fake_rotate_event,format_description_event,previous_gtids_event/mariadb_gtid_list_event].
Types ¶
type FileReader ¶
type FileReader struct {
// contains filtered or unexported fields
}
FileReader is a binlog event reader which reads binlog events from a file.
func (*FileReader) GetEvent ¶
func (r *FileReader) GetEvent(ctx context.Context) (*replication.BinlogEvent, error)
GetEvent implements Reader.GetEvent.
func (*FileReader) StartSyncByGTID ¶
func (r *FileReader) StartSyncByGTID(gSet gmysql.GTIDSet) error
StartSyncByGTID implements Reader.StartSyncByGTID.
func (*FileReader) StartSyncByPos ¶
func (r *FileReader) StartSyncByPos(pos gmysql.Position) error
StartSyncByPos implements Reader.StartSyncByPos. TODO: support heartbeat event.
func (*FileReader) Status ¶
func (r *FileReader) Status() interface{}
Status implements Reader.Status.
type FileReaderConfig ¶
type FileReaderConfig struct { EnableRawMode bool Timezone *time.Location ChBufferSize int // event channel's buffer size EchBufferSize int // error channel's buffer size }
FileReaderConfig is the configuration used by a FileReader.
type FileReaderStatus ¶
type FileReaderStatus struct { Stage string `json:"stage"` ReadOffset uint32 `json:"read-offset"` // read event's offset in the file SendOffset uint32 `json:"send-offset"` // sent event's offset in the file }
FileReaderStatus represents the status of a FileReader.
func (*FileReaderStatus) String ¶
func (s *FileReaderStatus) String() string
String implements Stringer.String.
type MockReader ¶
type MockReader struct { // returned error for methods ErrStartByPos error ErrStartByGTID error ErrClose error // contains filtered or unexported fields }
MockReader is a binlog event reader which read binlog events from an input channel.
func (*MockReader) GetEvent ¶
func (r *MockReader) GetEvent(ctx context.Context) (*replication.BinlogEvent, error)
GetEvent implements Reader.GetEvent.
func (*MockReader) PushError ¶
func (r *MockReader) PushError(ctx context.Context, err error) error
PushError pushes an error into the reader.
func (*MockReader) PushEvent ¶
func (r *MockReader) PushEvent(ctx context.Context, ev *replication.BinlogEvent) error
PushEvent pushes an event into the reader.
func (*MockReader) StartSyncByGTID ¶
func (r *MockReader) StartSyncByGTID(gSet gmysql.GTIDSet) error
StartSyncByGTID implements Reader.StartSyncByGTID.
func (*MockReader) StartSyncByPos ¶
func (r *MockReader) StartSyncByPos(pos gmysql.Position) error
StartSyncByPos implements Reader.StartSyncByPos.
func (*MockReader) Status ¶
func (r *MockReader) Status() interface{}
Status implements Reader.Status.
type Reader ¶
type Reader interface { Streamer // StartSyncByPos prepares the reader for reading binlog from the specified position. StartSyncByPos(pos gmysql.Position) error // StartSyncByGTID prepares the reader for reading binlog from the specified GTID set. StartSyncByGTID(gSet gmysql.GTIDSet) error // Close closes the reader and release the resource. // Close will be blocked if `GetEvent` has not returned. Close() error // Status returns the status of the reader. Status() interface{} }
Reader is a binlog event reader, it may read binlog events from a TCP stream, binlog files or any other in-memory buffer. One reader should read binlog events either through position mode or GTID mode.
func NewFileReader ¶
func NewFileReader(cfg *FileReaderConfig) Reader
NewFileReader creates a FileReader instance.
func NewTCPReader ¶
func NewTCPReader(syncerCfg replication.BinlogSyncerConfig) Reader
NewTCPReader creates a TCPReader instance.
type Streamer ¶
type Streamer interface { // GetEvent returns binlog event GetEvent(ctx context.Context) (*replication.BinlogEvent, error) }
Streamer provides the ability to get binlog event from remote server or local file.
type TCPReader ¶
type TCPReader struct {
// contains filtered or unexported fields
}
TCPReader is a binlog event reader which read binlog events from a TCP stream.
func (*TCPReader) GetEvent ¶
func (r *TCPReader) GetEvent(ctx context.Context) (*replication.BinlogEvent, error)
GetEvent implements Reader.GetEvent.
func (*TCPReader) StartSyncByGTID ¶
StartSyncByGTID implements Reader.StartSyncByGTID.
func (*TCPReader) StartSyncByPos ¶
StartSyncByPos implements Reader.StartSyncByPos.
type TCPReaderStatus ¶
TCPReaderStatus represents the status of a TCPReader.
func (*TCPReaderStatus) String ¶
func (s *TCPReaderStatus) String() string
String implements Stringer.String.