Commit Graph

183 Commits

Author SHA1 Message Date
Shlomi Noach
690e046c51 adding --allow-master-master 2016-06-22 10:38:13 +02:00
Shlomi Noach
b6d88ddece Merge pull request #77 from github/cut-over-lock-table-names
Solved cut-over stall; change of table names
2016-06-21 12:56:53 +02:00
Shlomi Noach
96e8419a35 Solved cut-over stall; change of table names
- Cutover would stall after `lock tables` wait-timeout due do waiting on a channel that would never be written to. This has been identified, reproduced, fixed, confirmed.
- Change of table names. Heres the story:
  - Because were testing this even while `pt-online-schema-change` is being used in production, the `_tbl_old` naming convention makes for a collision.
  - "old" table name is now `_tbl_del`, "del" standing for "delete"
  - ghost table name is now `_tbl_gho`
  - when issuing `--test-on-replica`, we keep the ghost table around, and were also briefly renaming original table to "old". Well this collides with a potentially existing "old" table on master (one that hasnt been dropped yet).
  `--test-on-replica` uses `_tbl_ght` (ghost-test)
  - similar problem with `--execute-on-replica`, and in this case the table doesnt stick around; calling it `_tbl_ghr` (ghost-replica)
  - changelog table is now `_tbl_ghc` (ghost-changelog)
  - To clarify, I dont want to go down the path of creating "old" tables with 2 or 3 or 4 or 5 or infinite leading underscored. I think this is very confusing and actually not operations friendly. Its OK that the migration will fail saying "hey, you ALREADY have an old table here, why dont you take care of it first", rather than create _yet_another_ `____tbl_old` table. Were always confused on which table it actually is that gets migrated, which is safe to `drop`, etc.
- just after rowcopy completing, just before cutover, during cutover: marking as point in time _of interest_ so as to increase logging frequency.
2016-06-21 12:56:01 +02:00
Shlomi Noach
dc8d27466c Merge pull request #76 from github/cut-over-no-throttle
not throttling during cut-over operation
2016-06-21 09:23:23 +02:00
Shlomi Noach
cd6b3c5e9e not throttling during cut-over operation 2016-06-21 09:21:58 +02:00
Shlomi Noach
0200cc9305 Merge pull request #75 from github/dynamic-throttle-control-replicas
supporting interactive command throttle-control-replicas
2016-06-20 12:10:03 +02:00
Shlomi Noach
2c8121c070 upped version 2016-06-20 12:09:35 +02:00
Shlomi Noach
80fcc05eb5 supporting interactive command throttle-control-replicas 2016-06-20 12:09:04 +02:00
Shlomi Noach
94c8812146 Merge pull request #74 from github/status-clueanup-comments
Retries, better visibility, documentation
2016-06-20 08:04:17 +02:00
Shlomi Noach
9197eedc64 Merge pull request #73 from github/throttle-critical
Throttling & critical load
2016-06-20 08:02:28 +02:00
Shlomi Noach
f0b012b238 support for 'panic' interactive command 2016-06-20 06:38:29 +02:00
Shlomi Noach
62b8a897e3 Retries, better visibility, documentation
- Rowcopy time is bounded by copy end-time
- Retries are configurable via `--default-retries` (default: `60`)
- `migrator` notes the hostname
- `applier` and `inspector` note `impliedKey` (`@@hostname` and `@@port`)
- Added lots of code comments
- Adding documentation for "triggerless design"
2016-06-19 17:55:37 +02:00
Shlomi Noach
23cb8ea7e9 Throttling & critical load
- Added `--throttle-query` param (when returns > 0, throttling applies)
- Added `--critical-load`, similar to `--max-load` but implies panic and quit
- Recoded *-load as `LoadMap`
- More info on *-load throttle/panic
- `printStatus()` now gets printing heuristic. Always shows up on interactive `"status"`
- Fixed `change column` (aka rename) handling with quotes
- Removed legacy `mysqlbinlog` parser code
- Added tests
2016-06-18 21:12:07 +02:00
Shlomi Noach
b31ba4e8ce Merge pull request #71 from github/panic-file
supporting `--panic-flag-file`;
2016-06-17 11:41:25 +02:00
Shlomi Noach
d38ff68a15 minor formatting 2016-06-17 11:41:10 +02:00
Shlomi Noach
94f311ec7b supporting --panic-flag-file; when it exists - app panics and exits without cleanup 2016-06-17 11:40:08 +02:00
Shlomi Noach
2b0f7af84b Merge pull request #70 from github/identify-rename
Supporting column rename
2016-06-17 08:04:03 +02:00
Shlomi Noach
836d0fe119 Supporting column rename
- Parsing `alter` statement to catch `change old_name new_name ...` statements
- Auto deducing renamed columns
- When suspecting renamed columns, requesting explicit `--approve-renamed-columns` or `--skip-renamed-columns`
- updated tests
2016-06-17 08:03:18 +02:00
Shlomi Noach
5a8688ee2e Merge pull request #69 from github/check-privileges
more elaborate check that user has privileges
2016-06-16 16:07:13 +02:00
Shlomi Noach
3e83202b97 more elaborate check that user has privileges 2016-06-16 16:06:26 +02:00
Shlomi Noach
166c6f3457 Merge pull request #68 from github/dependencies
Dependencies
2016-06-16 11:51:09 +02:00
Shlomi Noach
8c17701e58 more attempts 2016-06-16 11:49:16 +02:00
Shlomi Noach
2cab1eaab7 more attempts 2016-06-16 11:48:39 +02:00
Shlomi Noach
869bc4b6da more attempts 2016-06-16 11:46:44 +02:00
Shlomi Noach
e0aca0a768 more attempts 2016-06-16 11:46:06 +02:00
Shlomi Noach
02ec1d2b0c trying to get rid of godeps 2016-06-16 11:30:43 +02:00
Shlomi Noach
41569d8161 trying something else. Go deps are hell 2016-06-16 11:28:42 +02:00
Shlomi Noach
9d1c420ff1 adding go/vendor dependencies 2016-06-16 11:19:58 +02:00
Shlomi Noach
18f0ea6bc3 Merge pull request #67 from github/go-vendor-dependencies
resolving go/vendor dependencies
2016-06-16 11:16:50 +02:00
Shlomi Noach
1cfdb27a3a added siddontang dependencies 2016-06-16 11:15:56 +02:00
Shlomi Noach
60fef6b5fe Merge pull request #66 from github/execute-on-replica
--migrate-on-replica
2016-06-15 12:32:32 +02:00
Shlomi Noach
1226fa893f updated documentation re: cut-over, test-on-replica, migrate-on-replica 2016-06-15 12:31:38 +02:00
Shlomi Noach
7d0ec9c9dc added --migrate-on-replica flag; runs complete migration on replica 2016-06-15 12:18:59 +02:00
Shlomi Noach
574c372fba Merge pull request #64 from github/safe-cut-over
Safe cut over
2016-06-15 10:14:07 +02:00
Shlomi Noach
85d6883e69 printing migration status on waitForEventsUpToLock() 2016-06-15 10:13:06 +02:00
Shlomi Noach
96bc3804eb test-on-replica stops replication completely 2016-06-14 12:50:07 +02:00
Shlomi Noach
97adbf1ff8 - --cut-over no longer mandatory; default to safe
- Removed `CutOverVoluntaryLock` and associated code
- Removed `CutOverUdfWait`
- `RenameTablesRollback()` first attempts an atomic swap
2016-06-14 09:01:06 +02:00
Shlomi Noach
cb1c61ac47 - --cut-over no longer mandatory; default to safe
- Removed `CutOverVoluntaryLock` and associated code
- Removed `CutOverUdfWait`
- `RenameTablesRollback()` first attempts an atomic swap
2016-06-14 09:00:56 +02:00
Shlomi Noach
8292f5608f Safe cut-over
- Supporting multi-step, safe cut-over phase, where queries are blocked throughout the phase, and worst case scenario is table outage (no data corruption)
- Self-rollsback in case of failure (restored original table)
2016-06-14 08:35:07 +02:00
Shlomi Noach
302dbf0939 Merge pull request #63 from github/cut-over-on-test-on-replica
test-on-replica to invoke cut-over swap
2016-06-14 08:32:11 +02:00
Shlomi Noach
e4ed801df5 noting posponing status 2016-06-13 18:36:29 +02:00
Shlomi Noach
b8c7e046a1 test-on-replica to invoke cut-over swap 2016-06-10 11:15:11 +02:00
Shlomi Noach
29aead6212 Merge pull request #61 from github/more-operational-perks
suuporting dynamic reconfiguration of max-load
2016-06-09 11:25:54 +02:00
Shlomi Noach
087d1dd64d suuporting dynamic reconfiguration of max-load 2016-06-09 11:25:01 +02:00
Shlomi Noach
b608d5b391 Merge pull request #60 from github/more-docs-4fix
fixed doc path
2016-06-08 16:16:47 +02:00
Shlomi Noach
0ca6e2655a fixed path 2016-06-08 16:16:15 +02:00
Shlomi Noach
a5f0a64afd Merge pull request #59 from github/more-docs-4
More docs
2016-06-08 16:15:15 +02:00
Shlomi Noach
b042fc1ea8 moar documentation 2016-06-08 16:14:59 +02:00
Shlomi Noach
b0e00f561e moar documentation 2016-06-08 16:14:58 +02:00
Shlomi Noach
0749e025ef Merge pull request #58 from github/more-docs-3
moar, moar docs. Explaining why triggerless
2016-06-08 11:14:57 +02:00