You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/the-fine-print.md
+13-10Lines changed: 13 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,24 +4,27 @@ Here are technical considerations you may be interested in. We write here things
4
4
5
5
# Connecting to replica
6
6
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_.
8
8
9
9
What does "connect to replica" mean?
10
10
11
11
-`gh-ost` connects to the replica as a normal client
12
12
- 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
14
14
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.
16
16
17
17
THE FINE PRINT:
18
18
19
19
- 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
+
23
26
- 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.
25
28
26
29
# Network usage
27
30
@@ -30,12 +33,12 @@ THE FINE PRINT:
30
33
THE FINE PRINT:
31
34
32
35
-`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.
34
37
35
38
# Impersonating as a replica
36
39
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".
38
41
39
42
THE FINE PRINT:
40
43
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