From f62e9dc4f4005ffd59b9371bbbdfe83f360f96e1 Mon Sep 17 00:00:00 2001 From: dm-2 <45519614+dm-2@users.noreply.github.com> Date: Tue, 1 Mar 2022 11:37:31 +0000 Subject: [PATCH] Remove support for MySQL 5.6 (end-of-life Feb 2021) --- .github/workflows/replica-tests.yml | 2 +- doc/requirements-and-limitations.md | 2 +- doc/throttle.md | 4 ++-- doc/why-triggerless.md | 2 +- .../create.sql | 0 .../extra_args | 0 .../ghost_columns | 0 .../order_by | 0 .../orig_columns | 0 localtests/generated-columns-add57/ignore_versions | 1 - .../create.sql | 0 .../extra_args | 0 localtests/generated-columns-rename57/ignore_versions | 1 - .../create.sql | 0 .../{generated-columns57 => generated-columns}/create.sql | 0 localtests/generated-columns57-unique/ignore_versions | 1 - localtests/generated-columns57/ignore_versions | 1 - localtests/{geometry57 => geometry}/create.sql | 0 localtests/geometry57/ignore_versions | 1 - localtests/{json57dml => json-dml}/create.sql | 0 localtests/{json57 => json}/create.sql | 0 localtests/json57/ignore_versions | 1 - localtests/json57dml/ignore_versions | 1 - localtests/{spatial57 => spatial}/create.sql | 0 localtests/spatial57/ignore_versions | 1 - 25 files changed, 5 insertions(+), 13 deletions(-) rename localtests/{generated-columns-add57 => generated-columns-add}/create.sql (100%) rename localtests/{generated-columns-add57 => generated-columns-add}/extra_args (100%) rename localtests/{generated-columns-add57 => generated-columns-add}/ghost_columns (100%) rename localtests/{generated-columns-add57 => generated-columns-add}/order_by (100%) rename localtests/{generated-columns-add57 => generated-columns-add}/orig_columns (100%) delete mode 100644 localtests/generated-columns-add57/ignore_versions rename localtests/{generated-columns-rename57 => generated-columns-rename}/create.sql (100%) rename localtests/{generated-columns-rename57 => generated-columns-rename}/extra_args (100%) delete mode 100644 localtests/generated-columns-rename57/ignore_versions rename localtests/{generated-columns57-unique => generated-columns-unique}/create.sql (100%) rename localtests/{generated-columns57 => generated-columns}/create.sql (100%) delete mode 100644 localtests/generated-columns57-unique/ignore_versions delete mode 100644 localtests/generated-columns57/ignore_versions rename localtests/{geometry57 => geometry}/create.sql (100%) delete mode 100644 localtests/geometry57/ignore_versions rename localtests/{json57dml => json-dml}/create.sql (100%) rename localtests/{json57 => json}/create.sql (100%) delete mode 100644 localtests/json57/ignore_versions delete mode 100644 localtests/json57dml/ignore_versions rename localtests/{spatial57 => spatial}/create.sql (100%) delete mode 100644 localtests/spatial57/ignore_versions diff --git a/.github/workflows/replica-tests.yml b/.github/workflows/replica-tests.yml index 7d4ef15..360e13b 100644 --- a/.github/workflows/replica-tests.yml +++ b/.github/workflows/replica-tests.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - version: [mysql-5.6.43,mysql-5.7.25,mysql-8.0.16] + version: [mysql-5.7.25,mysql-8.0.16] steps: - uses: actions/checkout@v2 diff --git a/doc/requirements-and-limitations.md b/doc/requirements-and-limitations.md index 2f5a346..0521028 100644 --- a/doc/requirements-and-limitations.md +++ b/doc/requirements-and-limitations.md @@ -2,7 +2,7 @@ ### Requirements -- `gh-ost` currently requires MySQL versions 5.6 and greater. +- `gh-ost` currently requires MySQL versions 5.7 and greater. - You will need to have one server serving Row Based Replication (RBR) format binary logs. Right now `FULL` row image is supported. `MINIMAL` to be supported in the near future. `gh-ost` prefers to work with replicas. You may [still have your master configured with Statement Based Replication](migrating-with-sbr.md) (SBR). diff --git a/doc/throttle.md b/doc/throttle.md index 2ebc2ee..8f06b2a 100644 --- a/doc/throttle.md +++ b/doc/throttle.md @@ -38,7 +38,7 @@ Note that you may dynamically change both `--max-lag-millis` and the `throttle-c `--max-load='Threads_running=100,Threads_connected=500'` - Metrics must be valid, numeric [status variables](http://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html) + Metrics must be valid, numeric [status variables](https://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html) #### Throttle query @@ -97,7 +97,7 @@ Copy: 0/2915 0.0%; Applied: 0; Backlog: 0/100; Elapsed: 42s(copy), 42s(total); s Throttling time is limited by the availability of the binary logs. When throttling begins, `gh-ost` suspends reading the binary logs, and expects to resume reading from same binary log where it paused. -Your availability of binary logs is typically determined by the [expire_logs_days](https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_expire_logs_days) variable. If you have `expire_logs_days = 10` (or check `select @@global.expire_logs_days`), then you should be able to throttle for up to `10` days. +Your availability of binary logs is typically determined by the [expire_logs_days](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_expire_logs_days) variable. If you have `expire_logs_days = 10` (or check `select @@global.expire_logs_days`), then you should be able to throttle for up to `10` days. Having said that, throttling for so long is far fetching, in that the `gh-ost` process itself must be kept alive during that time; and the amount of binary logs to process once it resumes will potentially take days to replay. diff --git a/doc/why-triggerless.md b/doc/why-triggerless.md index 2ea8c81..1e7d97a 100644 --- a/doc/why-triggerless.md +++ b/doc/why-triggerless.md @@ -7,7 +7,7 @@ Existing MySQL schema migration tools: - [LHM](https://github.com/soundcloud/lhm) - [oak-online-alter-table](https://github.com/shlomi-noach/openarkkit) -are all using [triggers](http://dev.mysql.com/doc/refman/5.6/en/triggers.html) to propagate live changes on your table onto a ghost/shadow table that is slowly being synchronized. The tools not all work the same: while most use a synchronous approach (all changes applied on the ghost table), the Facebook tool uses an asynchronous approach (changes are appended to a changelog table, later reviewed and applied on ghost table). +are all using [triggers](https://dev.mysql.com/doc/refman/5.7/en/triggers.html) to propagate live changes on your table onto a ghost/shadow table that is slowly being synchronized. The tools not all work the same: while most use a synchronous approach (all changes applied on the ghost table), the Facebook tool uses an asynchronous approach (changes are appended to a changelog table, later reviewed and applied on ghost table). Use of triggers simplifies a lot of the flow in doing a live table migration, but also poses some limitations or difficulties. Here are reasons why we choose to [design a triggerless solution](triggerless-design.md) to schema migrations. diff --git a/localtests/generated-columns-add57/create.sql b/localtests/generated-columns-add/create.sql similarity index 100% rename from localtests/generated-columns-add57/create.sql rename to localtests/generated-columns-add/create.sql diff --git a/localtests/generated-columns-add57/extra_args b/localtests/generated-columns-add/extra_args similarity index 100% rename from localtests/generated-columns-add57/extra_args rename to localtests/generated-columns-add/extra_args diff --git a/localtests/generated-columns-add57/ghost_columns b/localtests/generated-columns-add/ghost_columns similarity index 100% rename from localtests/generated-columns-add57/ghost_columns rename to localtests/generated-columns-add/ghost_columns diff --git a/localtests/generated-columns-add57/order_by b/localtests/generated-columns-add/order_by similarity index 100% rename from localtests/generated-columns-add57/order_by rename to localtests/generated-columns-add/order_by diff --git a/localtests/generated-columns-add57/orig_columns b/localtests/generated-columns-add/orig_columns similarity index 100% rename from localtests/generated-columns-add57/orig_columns rename to localtests/generated-columns-add/orig_columns diff --git a/localtests/generated-columns-add57/ignore_versions b/localtests/generated-columns-add57/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/generated-columns-add57/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6) diff --git a/localtests/generated-columns-rename57/create.sql b/localtests/generated-columns-rename/create.sql similarity index 100% rename from localtests/generated-columns-rename57/create.sql rename to localtests/generated-columns-rename/create.sql diff --git a/localtests/generated-columns-rename57/extra_args b/localtests/generated-columns-rename/extra_args similarity index 100% rename from localtests/generated-columns-rename57/extra_args rename to localtests/generated-columns-rename/extra_args diff --git a/localtests/generated-columns-rename57/ignore_versions b/localtests/generated-columns-rename57/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/generated-columns-rename57/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6) diff --git a/localtests/generated-columns57-unique/create.sql b/localtests/generated-columns-unique/create.sql similarity index 100% rename from localtests/generated-columns57-unique/create.sql rename to localtests/generated-columns-unique/create.sql diff --git a/localtests/generated-columns57/create.sql b/localtests/generated-columns/create.sql similarity index 100% rename from localtests/generated-columns57/create.sql rename to localtests/generated-columns/create.sql diff --git a/localtests/generated-columns57-unique/ignore_versions b/localtests/generated-columns57-unique/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/generated-columns57-unique/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6) diff --git a/localtests/generated-columns57/ignore_versions b/localtests/generated-columns57/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/generated-columns57/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6) diff --git a/localtests/geometry57/create.sql b/localtests/geometry/create.sql similarity index 100% rename from localtests/geometry57/create.sql rename to localtests/geometry/create.sql diff --git a/localtests/geometry57/ignore_versions b/localtests/geometry57/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/geometry57/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6) diff --git a/localtests/json57dml/create.sql b/localtests/json-dml/create.sql similarity index 100% rename from localtests/json57dml/create.sql rename to localtests/json-dml/create.sql diff --git a/localtests/json57/create.sql b/localtests/json/create.sql similarity index 100% rename from localtests/json57/create.sql rename to localtests/json/create.sql diff --git a/localtests/json57/ignore_versions b/localtests/json57/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/json57/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6) diff --git a/localtests/json57dml/ignore_versions b/localtests/json57dml/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/json57dml/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6) diff --git a/localtests/spatial57/create.sql b/localtests/spatial/create.sql similarity index 100% rename from localtests/spatial57/create.sql rename to localtests/spatial/create.sql diff --git a/localtests/spatial57/ignore_versions b/localtests/spatial57/ignore_versions deleted file mode 100644 index ce491e6..0000000 --- a/localtests/spatial57/ignore_versions +++ /dev/null @@ -1 +0,0 @@ -(5.6)