From 05b650ed91bed91c35f847d002b492c439d50fcb Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Mon, 28 Jan 2019 11:38:59 +0200 Subject: [PATCH] MXS-2273 Update release notes regarding draining TODO: This much explanation in the release notes is a bit too much, the beef should be moved somewhere else and the release notes simply refer to that. --- Documentation/Changelog.md | 1 + .../MaxScale-2.4.0-Release-Notes.md | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/Documentation/Changelog.md b/Documentation/Changelog.md index 1309cbb4c..b27a45895 100644 --- a/Documentation/Changelog.md +++ b/Documentation/Changelog.md @@ -4,6 +4,7 @@ * Names starting with `@@` are reserved for use by MaxScale. * Names can no longer contain whitespace. +* Servers can now be drained. For more details, please refer to: diff --git a/Documentation/Release-Notes/MaxScale-2.4.0-Release-Notes.md b/Documentation/Release-Notes/MaxScale-2.4.0-Release-Notes.md index 022a1c206..df4e20afb 100644 --- a/Documentation/Release-Notes/MaxScale-2.4.0-Release-Notes.md +++ b/Documentation/Release-Notes/MaxScale-2.4.0-Release-Notes.md @@ -23,6 +23,46 @@ rejected and cause the startup of MaxScale to fail. ## New Features +### Servers can be drained + +It is now possible to drain a server, which means that existing +connections to the server can continue to be used but new connections +are no longer created to the server. + +In the output of `maxctrl`, the fact that a server is being drained +is visible in the `State` column as the value `Being Drained`. +``` +┌─────────┬─────────────────┬──────┬─────────────┬───────────────────────────────┬───────┐ +│ Server │ Address │ Port │ Connections │ State │ GTID │ +├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤ +│ Server1 │ 192.168.121.159 │ 3306 │ 2 │ Master, Running │ 0-1-6 │ +├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤ +│ Server2 │ 192.168.121.80 │ 3306 │ 1 │ Being Drained, Slave, Running │ 0-1-6 │ +├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤ +│ Server3 │ 192.168.121.122 │ 3306 │ 2 │ Slave, Running │ 0-1-6 │ +├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤ +│ Server4 │ 192.168.121.144 │ 3306 │ 2 │ Slave, Running │ 0-1-6 │ +└─────────┴─────────────────┴──────┴─────────────┴───────────────────────────────┴───────┘ +``` +A server is set in the _being drained_ state the same way as it is +set in the _maintenance_ state: +``` +$ maxctrl set server Server2 drain +``` +Note that although the state is displayed as `Being Drained`, when setting +and clearing the state, the word `drain` is used. + +Note that the full implication of draining a server depends upon +both on the role of the server and on the router being used, and its +configuration. + +For instance, if readwritesplit is used and the server being drained +is a slave, then from a client's perspective there will be no difference; +readwritesplit will simply not use that server. However, if the server +being drained is the master, then it will not be possible to connect +unless `master_failure_mode` has been set to something else but the +default `fail_instantly`. + ## Bug fixes [Here is a list of bugs fixed in MaxScale 2.4.0.](https://jira.mariadb.org/issues/?jql=project%20%3D%20MXS%20AND%20issuetype%20%3D%20Bug%20AND%20status%20%3D%20Closed%20AND%20fixVersion%20%3D%202.4.0)