Update docs
This commit is contained in:
		
							parent
							
								
									c0582f3c96
								
							
						
					
					
						commit
						f86864db3f
					
				| @ -50,9 +50,9 @@ just like feature contributions. | |||||||
| 
 | 
 | ||||||
| Modified copy of [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) | Modified copy of [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) | ||||||
| is included with this project. It was changed in order to expose certain low | is included with this project. It was changed in order to expose certain low | ||||||
| level functions that are used to establish a slave connection and to remove | level functions that allow to establish a connection manually and register as a | ||||||
| automatic driver registration because it will likely conflict with the original | replica server and to remove automatic driver registration because it will | ||||||
| code when imported as a dependency. | likely conflict with the original code when imported as a dependency. | ||||||
| 
 | 
 | ||||||
| ### Licence | ### Licence | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @ -5,3 +5,5 @@ require ( | |||||||
| 	github.com/google/go-cmp v0.3.1 | 	github.com/google/go-cmp v0.3.1 | ||||||
| 	github.com/juju/errors v0.0.0-20190930114154-d42613fe1ab9 | 	github.com/juju/errors v0.0.0-20190930114154-d42613fe1ab9 | ||||||
| ) | ) | ||||||
|  | 
 | ||||||
|  | go 1.13 | ||||||
|  | |||||||
| @ -9,18 +9,24 @@ import ( | |||||||
| 	"github.com/localhots/bocadillo/mysql/driver/internal/mysql" | 	"github.com/localhots/bocadillo/mysql/driver/internal/mysql" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Conn is a slave connection used to issue a binlog dump command. | // Conn is a connection used to issue a binlog dump command. | ||||||
| type Conn struct { | type Conn struct { | ||||||
| 	conn *mysql.ExtendedConn | 	conn *mysql.ExtendedConn | ||||||
| 	conf Config | 	conf Config | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Config contains slave connection configuration. It is passed to master upon | // Config contains all the details necessary to establish a replica connection. | ||||||
| // registration. |  | ||||||
| type Config struct { | type Config struct { | ||||||
|  | 	// File and offset describe current state. | ||||||
|  | 	// File is the name of the binary log file. | ||||||
|  | 	File string | ||||||
|  | 	// Offset is the binary offset of the first event in the binary log file, | ||||||
|  | 	// a starting point at which processing should begin. | ||||||
|  | 	Offset uint32 | ||||||
|  | 	// ServerID should be a unique replica server identifier (i guess). | ||||||
| 	ServerID uint32 | 	ServerID uint32 | ||||||
| 	File     string | 	// Hostname along with server ID is used to identify the replica server | ||||||
| 	Offset   uint32 | 	// connection. | ||||||
| 	Hostname string | 	Hostname string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -29,13 +35,16 @@ const ( | |||||||
| 	comRegisterSlave byte = 21 | 	comRegisterSlave byte = 21 | ||||||
| 	comBinlogDump    byte = 18 | 	comBinlogDump    byte = 18 | ||||||
| 
 | 
 | ||||||
| 	// Bytes | 	// Result codes | ||||||
| 	resultOK  byte = 0x00 | 	resultOK  byte = 0x00 | ||||||
| 	resultEOF byte = 0xFE | 	resultEOF byte = 0xFE | ||||||
| 	resultERR byte = 0xFF | 	resultERR byte = 0xFF | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Connect esablishes a new slave connection. | // Connect esablishes a new database connection. It is a go-sql-driver | ||||||
|  | // connection with a few low level functions exposed and with a high level | ||||||
|  | // wrapper that allows to execute just a few commands that are required for | ||||||
|  | // operation. | ||||||
| func Connect(dsn string, conf Config) (*Conn, error) { | func Connect(dsn string, conf Config) (*Conn, error) { | ||||||
| 	if conf.Hostname == "" { | 	if conf.Hostname == "" { | ||||||
| 		name, err := os.Hostname() | 		name, err := os.Hostname() | ||||||
| @ -62,8 +71,7 @@ func Connect(dsn string, conf Config) (*Conn, error) { | |||||||
| 	return &Conn{conn: extconn, conf: conf}, nil | 	return &Conn{conn: extconn, conf: conf}, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ReadPacket reads next packet from the server and processes the first status | // ReadPacket reads next packet from the server and peeks at the status byte. | ||||||
| // byte. |  | ||||||
| func (c *Conn) ReadPacket(ctx context.Context) ([]byte, error) { | func (c *Conn) ReadPacket(ctx context.Context) ([]byte, error) { | ||||||
| 	data, err := c.conn.ReadPacket(ctx) | 	data, err := c.conn.ReadPacket(ctx) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | |||||||
| @ -36,7 +36,7 @@ func (c *ExtendedConn) Exec(query string) error { | |||||||
| 	return c.exec(query) | 	return c.exec(query) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ReadPacket reads a packet from a given connection. | // ReadPacket reads a packet from the connection. | ||||||
| func (c *ExtendedConn) ReadPacket(ctx context.Context) ([]byte, error) { | func (c *ExtendedConn) ReadPacket(ctx context.Context) ([]byte, error) { | ||||||
| 	if dl, ok := ctx.Deadline(); ok { | 	if dl, ok := ctx.Deadline(); ok { | ||||||
| 		dur := dl.Sub(time.Now()) | 		dur := dl.Sub(time.Now()) | ||||||
| @ -51,7 +51,7 @@ func (c *ExtendedConn) ReadPacket(ctx context.Context) ([]byte, error) { | |||||||
| 	return c.readPacket() | 	return c.readPacket() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // WritePacket writes a packet to a given connection. | // WritePacket writes a packet to the connection. | ||||||
| func (c *ExtendedConn) WritePacket(p []byte) error { | func (c *ExtendedConn) WritePacket(p []byte) error { | ||||||
| 	return c.writePacket(p) | 	return c.writePacket(p) | ||||||
| } | } | ||||||
|  | |||||||
| @ -37,7 +37,7 @@ var ( | |||||||
| func New(dsn string, sc driver.Config) (*Reader, error) { | func New(dsn string, sc driver.Config) (*Reader, error) { | ||||||
| 	conn, err := driver.Connect(dsn, sc) | 	conn, err := driver.Connect(dsn, sc) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, errors.Annotate(err, "establish slave connection") | 		return nil, errors.Annotate(err, "establish connection") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	r := &Reader{ | 	r := &Reader{ | ||||||
| @ -53,7 +53,7 @@ func New(dsn string, sc driver.Config) (*Reader, error) { | |||||||
| 		return nil, errors.Annotate(err, "disable binlog checksum") | 		return nil, errors.Annotate(err, "disable binlog checksum") | ||||||
| 	} | 	} | ||||||
| 	if err := conn.RegisterSlave(); err != nil { | 	if err := conn.RegisterSlave(); err != nil { | ||||||
| 		return nil, errors.Annotate(err, "register slave server") | 		return nil, errors.Annotate(err, "register replica server") | ||||||
| 	} | 	} | ||||||
| 	if err := conn.StartBinlogDump(); err != nil { | 	if err := conn.StartBinlogDump(); err != nil { | ||||||
| 		return nil, errors.Annotate(err, "start binlog dump") | 		return nil, errors.Annotate(err, "start binlog dump") | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user