expected features
Throwing around all ideas, in no particular order, lest we forget.
- [x] prefer connecting to replica. Auto detect master
- [x] automatically converting
binlog_formattorow- [x] unless server has replicas, in which case bail out
- [ ] Catch Ctrl-C to restore settings
- [ ] if
binlog_row_image='minimal'the PK may not be changed - [ ] if PK is changed, will auto convert to
binlog_row_image='full'- [ ] and restore settings upon exit
- [x] support
--test-on-replica, which expects host to be a replica, and converts the table on the replica. This is for experimental alters for gaining trust in the tool. Once the table is altered, no switch take place. The replica can be stopped and the two tables (original & ghost) can be compared and verifies to be identical. - [x] accept list of replicas as control servers
- [x] accept max allowed lag as throttling threshold
- [x] accept
--max-load - [x] respect pause-file. When this file exists, the tool pauses
- [x] respect a terminate-file. When this file is brought to existence, the tool quits in orderly fashion
- [ ] accept
--auto-suggest-credentials: the tool generates aGRANTstatement with new credentials and a random password, and asks the user to create these credentials, then polls until it is satisfied it can connect with these credentials - [x] verify privileges are sufficient via
SHOW GRANTS FOR CURRENT_USER()
- [x] support
--exact-rowcountwhich actually issuesSELECT COUNT(*) FROM original_tableinstead of estimating number of rows in table. This should only be allowed on the replica.
- [x] dynamic changing of parameters, such as
chunk-sizeormax-load. This is an essential operational feature.
- [x] verify no foreign keys exist on table (neither "parent" nor "child")
- [x] a
--noopflag, or rather the contrary,noopby default and a--executeto actually make things happen (similarly to existingpt-osc)
- [ ] estimates for completion time based on how close the copy job gets to current value of auto-increment
- [x] multiple
max-loadconditions. We may wish to throttle onthreads_runningAND onthread_connectedAND on something else...
- [ ] handle
ROLLBACKevents in binary log (I think this would be irrelevant on replicas, but relevant on master)
- [x] support
RENAME COLUMN
- [ ] phase 2: optionally (via config) do not
INSERT INTO...SELECTon the master. Read the rows from replica via app, write them onto master. This removes the last coupling of OSC with the master. It removes the last concurrency consideration on the master.
- [ ] support data migrate model (data migrate is similar with the alter table process)
@dozer47528 Sorry, not following; how do you mean "support data migrate model"?
- Do you wish for
gh-ostto issue a large scaleUPDATEfor you, using chunking and throttling?
Also, please open a new Issue for a new feature request. This Issue was created in the very early days of gh-ost to lay out the general plan.