Skip to content

Commit 48c2b6d

Browse files
author
Gillian Gunson
authored
Added note about table schema needing to be identical
1 parent 7d31346 commit 48c2b6d

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

doc/the-fine-print.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,27 @@ Here are technical considerations you may be interested in. We write here things
44

55
# Connecting to replica
66

7-
`gh-ost` prefers connecting to replica. If your master uses Statement Based Replication, this is a _requirement_.
7+
`gh-ost` prefers connecting to a replica. If your master uses Statement Based Replication, this is a _requirement_.
88

99
What does "connect to replica" mean?
1010

1111
- `gh-ost` connects to the replica as a normal client
1212
- It additionally connects as a replica to the replica (pretends to be a MySQL replica itself)
13-
- It auto-detects master
13+
- It auto-detects the master
1414

15-
`gh-ost` reads the RBR binary logs from the replica, and applies events onto the master as tables are being migrated.
15+
`gh-ost` reads the RBR binary logs from the replica, and applies events onto the master as part of the table migration.
1616

1717
THE FINE PRINT:
1818

1919
- You trust the replica's binary logs to represent events applied on master.
20-
If you don't trust the replica, if you suspect there's data drift between replica & master, take notice. If your master is RBR, do instead connect `gh-ost` to master, via `--allow-on-master` (see [cheatsheet](cheatsheet.md)).
21-
Our take: we trust replica data; if master dies in production, we promote a replica. Our read serving is based on replica(s).
22-
20+
- If you don't trust the replica, or if you suspect there's data drift between replica & master, take notice.
21+
- If the table on the replica has a different schema than the master, `gh-ost` likely won't work correctly.
22+
- Our take: we trust replica data; if master dies in production, we promote a replica. Our read serving is based on replica(s).
23+
24+
- If your master is RBR, do instead connect `gh-ost` to master, via `--allow-on-master` (see [cheatsheet](cheatsheet.md)).
25+
2326
- Replication needs to run.
24-
This is an obvious, but worth stating. You cannot perform a migration with "connect to replica" if your replica lags. `gh-ost` will actually do all it can so that replication does not lag, and avoid critical operations at such time when replication does lag.
27+
- This is an obvious, but worth stating. You cannot perform a migration with "connect to replica" if your replica lags. `gh-ost` will actually do all it can so that replication does not lag, and avoid critical operations if replication is lagging.
2528

2629
# Network usage
2730

@@ -30,12 +33,12 @@ THE FINE PRINT:
3033
THE FINE PRINT:
3134

3235
- `gh-ost` delivers more network traffic than other online-schema-change tools, that let MySQL handle all data transfer internally. This is part of the [triggerless design](triggerless-design.md).
33-
Our take: we deal with cross-DC migration traffic and this is working well for us.
36+
- Our take: we deal with cross-DC migration traffic and this is working well for us.
3437

3538
# Impersonating as a replica
3639

37-
`gh-ost` impersonates as a replica: connects to a MySQL server, says "oh hey, I'm a replica, please send me binary logs kthx".
40+
`gh-ost` impersonates as a replica: it connects to a MySQL server, says "oh hey, I'm a replica, please send me binary logs kthx".
3841

3942
THE FINE PRINT:
4043

41-
- `SHOW SLAVE HOSTS` or `SHOW PROCESSLIST` will list down this strange "replica" that you can't really connect to.
44+
- `SHOW SLAVE HOSTS` or `SHOW PROCESSLIST` will list this strange "replica" that you can't really connect to.

0 commit comments

Comments
 (0)