From b3df3ea7a26cb5763be6469f263e0433c5742c1f Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 23 Jun 2015 19:51:19 +0300 Subject: [PATCH 01/16] Improved routing hint documentation. --- Reference/Hint-Syntax.md | 83 +++++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 14 deletions(-) diff --git a/Reference/Hint-Syntax.md b/Reference/Hint-Syntax.md index 264d264f6..b84bb85fd 100644 --- a/Reference/Hint-Syntax.md +++ b/Reference/Hint-Syntax.md @@ -1,42 +1,97 @@ # Hint Syntax -Use either ’-- ’ (notice the whitespace) or ’#’ after the semicolon or ’/* .. */’ before -the semicolon. +## Enabling routing hints -The MySQL manual doesn’t specify if comment blocks, i.e. ’/* .. */’, should contain a w -hitespace character before or after the tags. +To enable routing hints for a service, the hintfilter module needs to be configured and the filter needs to be applied to the service. -All hints must start with the ’maxscale tag’: - -- maxscale - -The hints right now have two types, ones that route to a server and others that contain +Here is an example service which has the hint filter configured and applied. + +``` +[Read Service] +type=service +router=readconnroute +router_options=master +servers=server1 +user=maxuser +passwd=maxpwd +filter=Hint + +[Hint] +type=filter +module=hintfilter + +``` + +## Comments and comment types + +The client connection will need to have comments enabled. For example the `mysql` command line client has comments disabled by default. + +For comment types, use either `-- ` (notice the whitespace) or `#` after the semicolon or `/* .. */` before the semicolon. All comment types work with routing hints. + +The MySQL manual doesn`t specify if comment blocks, i.e. `/* .. */`, should contain a w +hitespace character before or after the tags, so adding whitespace at both the start and the end is advised. + +## Hint body + +All hints must start with the `maxscale` tag. + +``` +-- maxscale +``` + +The hints have two types, ones that route to a server and others that contain name-value pairs. -Routing queries to a server: +###Routing destination hints + +These hints will instruct the router to route a query to a certain type of a server. +``` -- maxscale route to [master | slave | server ] +``` -The name of the server is the same as in maxscale.cnf +A `master` value in a routing hint will route the query to a master server. This can be used to direct read queries to a master server for a up-to-date result with no replication lag. A `slave` value will route the query to a slave server. A `server` value will route the query to a named server. The value of needs to be the same as the server section name in maxscale.cnf. -Creating a name-value pair: +### Name-value hints + +These control the behavior and affect the routing decisions made by the router. + +``` -- maxscale = +``` -Currently the only accepted parameter is -’max_slave_replication_lag’ +Currently the only accepted parameter is `max_slave_replication_lag`. This will route the query to a server with lower replication lag then what is defined in the hint value. + +## Hint stack Hints can be either single-use hints, which makes them affect only one query, or named hints, which can be pushed on and off a stack of active hints. Defining named hints: + +``` -- maxscale prepare +``` Pushing a hint onto the stack: + +``` -- maxscale begin +``` Popping the topmost hint off the stack: + +``` -- maxscale end +``` You can define and activate a hint in a single command using the following: + +``` -- maxscale begin +``` You can also push anonymous hints onto the stack which are only used as long as they are on the stack: --- maxscale begin \ No newline at end of file + +``` +-- maxscale begin +``` From 68a658f7ef111a3798ba024d145cf1fa08312d54 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 23 Jun 2015 20:06:02 +0300 Subject: [PATCH 02/16] Updated documentation contents. --- Documentation-Contents.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation-Contents.md b/Documentation-Contents.md index 99f8ba38e..fc51d83ec 100644 --- a/Documentation-Contents.md +++ b/Documentation-Contents.md @@ -5,7 +5,7 @@ ## About MaxScale - [About MaxScale](About/About-MaxScale.md) - - [Release Notes 1.1](Release-Notes/MaxScale-1.1-Release-Notes.md) + - [MaxScale 1.2.0 Release Notes](Release-Notes/MaxScale-1.2.0-Release-Notes.md) - [Changelog](Changelog.md) - [Limitations](About/Limitations.md) - [COPYRIGHT](About/COPYRIGHT.md) @@ -28,6 +28,7 @@ - [MaxScale HA with Lsyncd](Reference/MaxScale-HA-with-lsyncd.md) - [How Errors are Handled in MaxScale](Reference/How-errors-are-handled-in-MaxScale.md) - [Debug and Diagnostic Support](Reference/Debug-And-Diagnostic-Support.md) + - [Routing Hints](Reference/Hint-Syntax.md) ## Tutorials @@ -70,10 +71,6 @@ Here are detailed documents about the filters MaxScale offers. They contain conf - [RabbitMQ Consumer Client](filters/RabbitMQ-Consumer-Client.md) -## Routers - - - [Simple Schema Sharding Router](routers/schemarouter/SchemaRouter.md) - ## Design Documents - [Core Objects Design (in development)](http://mariadb-corporation.github.io/MaxScale/Design-Documents/core-objects-html-docs) @@ -89,4 +86,7 @@ Here are detailed documents about the filters MaxScale offers. They contain conf - [MaxScale 1.0 Release Notes](Release-Notes/MaxScale-1.0-Release-Notes.md) - [MaxScale 1.0.1 Release Notes](Release-Notes/MaxScale-1.0.1-Release-Notes.md) - [MaxScale 1.0.3 Release Notes](Release-Notes/MaxScale-1.0.3-Release-Notes.md) + - [MaxScale 1.1.0 Release Notes](Release-Notes/MaxScale-1.1-Release-Notes.md) + - [MaxScale 1.1.1 Release Notes](Release-Notes/MaxScale-1.1.1-Release-Notes.md) + - [MaxScale 1.2.0 Release Notes](Release-Notes/MaxScale-1.2.0-Release-Notes.md) From 94ceb4f9d179d4774d7b77aadbb8a0d84c57ca05 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 23 Jun 2015 20:10:43 +0300 Subject: [PATCH 03/16] Updated 1.2 release notes. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index f85382b3c..a84f94c27 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -24,3 +24,8 @@ A quick list of changes in installation directories and file names: * Data directory is `/var/lib/maxscale`. This is the default location for MaxScale-specific data. * PID file can be found at `/var/run/maxscale` +### Client side SSL encryption +MaxScale now supports SSL/TLS encrypted connections to MaxScale. + +### Monitor scripts +State changes in backend servers can now trigger the execution of a custom script. With this you can easily customize MaxScale's behavior. From dd0bb022a87108006ce10874f4d6dbeb4b3b1038 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Wed, 24 Jun 2015 18:17:00 +0300 Subject: [PATCH 04/16] Updated readwritesplit documentation. --- routers/ReadWriteSplit.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/routers/ReadWriteSplit.md b/routers/ReadWriteSplit.md index 6058e0390..577bc2e36 100644 --- a/routers/ReadWriteSplit.md +++ b/routers/ReadWriteSplit.md @@ -4,7 +4,9 @@ This document provides a short overview of the **readwritesplit** router module ## Overview -The **readwritesplit** router is designed to be used with a Master-Slave replication cluster. It automatically detects changes in the master server and will use the current master server of the cluster. With a Galera cluster, one can achieve a resilient setup and easy master failover by using one of the Galera nodes as a Write-Master node, where are write queries are routed, and spreading the read load over all the nodes. +The **readwritesplit** router is designed to increase the read-only processing capability of a cluster while maintaining consistency. This is achieved by splitting the query load into read and write queries. Read queries, which do not modify data, are spread across multiple nodes while all write queries will be sent to a single node. + +The router is designed to be used with a traditional Master-Slave replication cluster. It automatically detects changes in the master server and will use the current master server of the cluster. With a Galera cluster, one can achieve a resilient setup and easy master failover by using one of the Galera nodes as a Write-Master node, where all write queries are routed, and spreading the read load over all the nodes. ## Configuration From b1bddf9160b3c200729dcce02d680f54a90d7064 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Wed, 24 Jun 2015 19:23:43 +0300 Subject: [PATCH 05/16] MXS-171: https://mariadb.atlassian.net/browse/MXS-171 Added option which allows the master server to be used for reads. --- routers/ReadWriteSplit.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/routers/ReadWriteSplit.md b/routers/ReadWriteSplit.md index 577bc2e36..e58367789 100644 --- a/routers/ReadWriteSplit.md +++ b/routers/ReadWriteSplit.md @@ -93,6 +93,13 @@ disable_sescmd_history=true disable_slave_recovery=true ``` +**`master_accept_reads`** allows the master server to be used for reads. This is a useful option to enable if you are using a small number of servers and wish to use the master for reads as well. + +``` +# Use the master for reads +master_accept_reads=true +``` + ## Limitations In Master-Slave replication cluster also read-only queries are routed to master too in the following situations: From ce16c3d72a781e8fd19aab4b29e57ce62a5c851f Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Thu, 2 Jul 2015 14:55:43 +0300 Subject: [PATCH 06/16] Updated release notes with fixed bugs. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index a84f94c27..49206f8ed 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -29,3 +29,27 @@ MaxScale now supports SSL/TLS encrypted connections to MaxScale. ### Monitor scripts State changes in backend servers can now trigger the execution of a custom script. With this you can easily customize MaxScale's behavior. + +## Bug fixes + +Here is a list of bugs fixed since the release of MaxScale 1.1.1. +|Key|Summary| +|[MXS-24](https://mariadb.atlassian.net/browse/MXS-24)|bugzillaId-604: Module load path documentation issues ...| +|[MXS-40](https://mariadb.atlassian.net/browse/MXS-40)|Display logged in users| +|[MXS-113](https://mariadb.atlassian.net/browse/MXS-113)|MaxScale seems to fail if built against MariaDB 10.0 libraries| +|[MXS-116](https://mariadb.atlassian.net/browse/MXS-116)|Do not run maxscale as root.| +|[MXS-125](https://mariadb.atlassian.net/browse/MXS-125)|inconsistency in maxkeys/maxpassword output and parameters| +|[MXS-136](https://mariadb.atlassian.net/browse/MXS-136)|Check for MaxScale replication heartbeat table existence before creating| +|[MXS-137](https://mariadb.atlassian.net/browse/MXS-137)|cannot get sql for queries with length >= 0x80| +|[MXS-139](https://mariadb.atlassian.net/browse/MXS-139)|Schemarouter authentication for wildcard grants fails without optimize_wildcard| +|[MXS-140](https://mariadb.atlassian.net/browse/MXS-140)|strip_db_esc does not work without auth_all_servers| +|[MXS-162](https://mariadb.atlassian.net/browse/MXS-162)|Fix Incorrect info in Configuration Guide| +|[MXS-163](https://mariadb.atlassian.net/browse/MXS-163)|Reload config leaks memory| +|[MXS-165](https://mariadb.atlassian.net/browse/MXS-165)|Concurrency issue while incrementing sessions in qlafilter| +|[MXS-166](https://mariadb.atlassian.net/browse/MXS-166)|Memory leak when creating a new event| +|[MXS-171](https://mariadb.atlassian.net/browse/MXS-171)|Allow reads on master for readwritesplit| +|[MXS-176](https://mariadb.atlassian.net/browse/MXS-176)|Missing dependencies in documentation| +|[MXS-181](https://mariadb.atlassian.net/browse/MXS-181)|Poor performance on TCP connection due to Nagle's algoritm| +|[MXS-212](https://mariadb.atlassian.net/browse/MXS-212)|Stopped services accept connections| +|[MXS-225](https://mariadb.atlassian.net/browse/MXS-225)|RPM Debug build packages have no debugging symbols| +|[MXS-227](https://mariadb.atlassian.net/browse/MXS-227)|Memory leak in Galera Monitor| From f3cb2573458900130d47f95752ed6dc09869c330 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Thu, 2 Jul 2015 15:01:16 +0300 Subject: [PATCH 07/16] Fixed broken table. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index 49206f8ed..f98c2191f 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -34,6 +34,7 @@ State changes in backend servers can now trigger the execution of a custom scrip Here is a list of bugs fixed since the release of MaxScale 1.1.1. |Key|Summary| +------------ |[MXS-24](https://mariadb.atlassian.net/browse/MXS-24)|bugzillaId-604: Module load path documentation issues ...| |[MXS-40](https://mariadb.atlassian.net/browse/MXS-40)|Display logged in users| |[MXS-113](https://mariadb.atlassian.net/browse/MXS-113)|MaxScale seems to fail if built against MariaDB 10.0 libraries| From c5d4060c7cc70a86ed6bc807b19afc24b6bfe146 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Thu, 2 Jul 2015 15:02:19 +0300 Subject: [PATCH 08/16] More broken tables. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index f98c2191f..636d46ad8 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -34,7 +34,7 @@ State changes in backend servers can now trigger the execution of a custom scrip Here is a list of bugs fixed since the release of MaxScale 1.1.1. |Key|Summary| ------------- +|---|--------| |[MXS-24](https://mariadb.atlassian.net/browse/MXS-24)|bugzillaId-604: Module load path documentation issues ...| |[MXS-40](https://mariadb.atlassian.net/browse/MXS-40)|Display logged in users| |[MXS-113](https://mariadb.atlassian.net/browse/MXS-113)|MaxScale seems to fail if built against MariaDB 10.0 libraries| From ce30d20c1227e67381826dbd1c396b9655d257f9 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Thu, 2 Jul 2015 15:05:03 +0300 Subject: [PATCH 09/16] Fixed table. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index 636d46ad8..caf7e28c6 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -33,24 +33,25 @@ State changes in backend servers can now trigger the execution of a custom scrip ## Bug fixes Here is a list of bugs fixed since the release of MaxScale 1.1.1. -|Key|Summary| -|---|--------| -|[MXS-24](https://mariadb.atlassian.net/browse/MXS-24)|bugzillaId-604: Module load path documentation issues ...| -|[MXS-40](https://mariadb.atlassian.net/browse/MXS-40)|Display logged in users| -|[MXS-113](https://mariadb.atlassian.net/browse/MXS-113)|MaxScale seems to fail if built against MariaDB 10.0 libraries| -|[MXS-116](https://mariadb.atlassian.net/browse/MXS-116)|Do not run maxscale as root.| -|[MXS-125](https://mariadb.atlassian.net/browse/MXS-125)|inconsistency in maxkeys/maxpassword output and parameters| -|[MXS-136](https://mariadb.atlassian.net/browse/MXS-136)|Check for MaxScale replication heartbeat table existence before creating| -|[MXS-137](https://mariadb.atlassian.net/browse/MXS-137)|cannot get sql for queries with length >= 0x80| -|[MXS-139](https://mariadb.atlassian.net/browse/MXS-139)|Schemarouter authentication for wildcard grants fails without optimize_wildcard| -|[MXS-140](https://mariadb.atlassian.net/browse/MXS-140)|strip_db_esc does not work without auth_all_servers| -|[MXS-162](https://mariadb.atlassian.net/browse/MXS-162)|Fix Incorrect info in Configuration Guide| -|[MXS-163](https://mariadb.atlassian.net/browse/MXS-163)|Reload config leaks memory| -|[MXS-165](https://mariadb.atlassian.net/browse/MXS-165)|Concurrency issue while incrementing sessions in qlafilter| -|[MXS-166](https://mariadb.atlassian.net/browse/MXS-166)|Memory leak when creating a new event| -|[MXS-171](https://mariadb.atlassian.net/browse/MXS-171)|Allow reads on master for readwritesplit| -|[MXS-176](https://mariadb.atlassian.net/browse/MXS-176)|Missing dependencies in documentation| -|[MXS-181](https://mariadb.atlassian.net/browse/MXS-181)|Poor performance on TCP connection due to Nagle's algoritm| -|[MXS-212](https://mariadb.atlassian.net/browse/MXS-212)|Stopped services accept connections| -|[MXS-225](https://mariadb.atlassian.net/browse/MXS-225)|RPM Debug build packages have no debugging symbols| -|[MXS-227](https://mariadb.atlassian.net/browse/MXS-227)|Memory leak in Galera Monitor| + +| Key | Summary | +| --- | -------- | +| [MXS-24](https://mariadb.atlassian.net/browse/MXS-24) | bugzillaId-604: Module load path documentation issues ... | +| [MXS-40](https://mariadb.atlassian.net/browse/MXS-40) | Display logged in users | +| [MXS-113](https://mariadb.atlassian.net/browse/MXS-113) | MaxScale seems to fail if built against MariaDB 10.0 libraries | +| [MXS-116](https://mariadb.atlassian.net/browse/MXS-116) | Do not run maxscale as root. | +| [MXS-125](https://mariadb.atlassian.net/browse/MXS-125) | inconsistency in maxkeys/maxpassword output and parameters | +| [MXS-136](https://mariadb.atlassian.net/browse/MXS-136) | Check for MaxScale replication heartbeat table existence before creating | +| [MXS-137](https://mariadb.atlassian.net/browse/MXS-137) | cannot get sql for queries with length >= 0x80 | +| [MXS-139](https://mariadb.atlassian.net/browse/MXS-139) | Schemarouter authentication for wildcard grants fails without optimize_wildcard | +| [MXS-140](https://mariadb.atlassian.net/browse/MXS-140) | strip_db_esc does not work without auth_all_servers | +| [MXS-162](https://mariadb.atlassian.net/browse/MXS-162) | Fix Incorrect info in Configuration Guide | +| [MXS-163](https://mariadb.atlassian.net/browse/MXS-163) | Reload config leaks memory | +| [MXS-165](https://mariadb.atlassian.net/browse/MXS-165) | Concurrency issue while incrementing sessions in qlafilter | +| [MXS-166](https://mariadb.atlassian.net/browse/MXS-166) | Memory leak when creating a new event | +| [MXS-171](https://mariadb.atlassian.net/browse/MXS-171) | Allow reads on master for readwritesplit | +| [MXS-176](https://mariadb.atlassian.net/browse/MXS-176) | Missing dependencies in documentation | +| [MXS-181](https://mariadb.atlassian.net/browse/MXS-181) | Poor performance on TCP connection due to Nagle's algoritm | +| [MXS-212](https://mariadb.atlassian.net/browse/MXS-212) | Stopped services accept connections | +| [MXS-225](https://mariadb.atlassian.net/browse/MXS-225) | RPM Debug build packages have no debugging symbols | +| [MXS-227](https://mariadb.atlassian.net/browse/MXS-227) | Memory leak in Galera Monitor | From 881011c9fe1826c13cde16ae3aa028dad1f65a28 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Mon, 6 Jul 2015 10:38:03 +0300 Subject: [PATCH 10/16] Updated 1.2 release notes. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 48 +++++++++++++++++-- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index caf7e28c6..de4b7a461 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -27,8 +27,8 @@ A quick list of changes in installation directories and file names: ### Client side SSL encryption MaxScale now supports SSL/TLS encrypted connections to MaxScale. -### Monitor scripts -State changes in backend servers can now trigger the execution of a custom script. With this you can easily customize MaxScale's behavior. +### Launchable scripts +Now you can configure MaxScale monitor module to automatically launch a script when it detects change in the state of a backend server. The script can be any customer script defined by you to take diagnostic or reporting action. With this you can easily customize MaxScale's behavior. ## Bug fixes @@ -40,18 +40,58 @@ Here is a list of bugs fixed since the release of MaxScale 1.1.1. | [MXS-40](https://mariadb.atlassian.net/browse/MXS-40) | Display logged in users | | [MXS-113](https://mariadb.atlassian.net/browse/MXS-113) | MaxScale seems to fail if built against MariaDB 10.0 libraries | | [MXS-116](https://mariadb.atlassian.net/browse/MXS-116) | Do not run maxscale as root. | +| [MXS-117](https://mariadb.atlassian.net/browse/MXS-117) | Allow configuration of the log file directory | | [MXS-125](https://mariadb.atlassian.net/browse/MXS-125) | inconsistency in maxkeys/maxpassword output and parameters | +| [MXS-128](https://mariadb.atlassian.net/browse/MXS-128) | cyclic dependency utils -> log_manager -> utils | | [MXS-136](https://mariadb.atlassian.net/browse/MXS-136) | Check for MaxScale replication heartbeat table existence before creating | | [MXS-137](https://mariadb.atlassian.net/browse/MXS-137) | cannot get sql for queries with length >= 0x80 | | [MXS-139](https://mariadb.atlassian.net/browse/MXS-139) | Schemarouter authentication for wildcard grants fails without optimize_wildcard | | [MXS-140](https://mariadb.atlassian.net/browse/MXS-140) | strip_db_esc does not work without auth_all_servers | -| [MXS-162](https://mariadb.atlassian.net/browse/MXS-162) | Fix Incorrect info in Configuration Guide | -| [MXS-163](https://mariadb.atlassian.net/browse/MXS-163) | Reload config leaks memory | +| [MXS-162](https://mariadb.atlassian.net/browse/MXS-162) | Fix Incorrect info in Configuration Guide | | [MXS-165](https://mariadb.atlassian.net/browse/MXS-165) | Concurrency issue while incrementing sessions in qlafilter | | [MXS-166](https://mariadb.atlassian.net/browse/MXS-166) | Memory leak when creating a new event | | [MXS-171](https://mariadb.atlassian.net/browse/MXS-171) | Allow reads on master for readwritesplit | | [MXS-176](https://mariadb.atlassian.net/browse/MXS-176) | Missing dependencies in documentation | +| [MXS-180](https://mariadb.atlassian.net/browse/MXS-180) | MariaDB10 binlog router compatibilty | | [MXS-181](https://mariadb.atlassian.net/browse/MXS-181) | Poor performance on TCP connection due to Nagle's algoritm | +| [MXS-182](https://mariadb.atlassian.net/browse/MXS-182) | SHOW SLAVE STATUS and maxadmin "show services" for binlog router needs updated when used with MariaDB 10 Master | | [MXS-212](https://mariadb.atlassian.net/browse/MXS-212) | Stopped services accept connections | | [MXS-225](https://mariadb.atlassian.net/browse/MXS-225) | RPM Debug build packages have no debugging symbols | | [MXS-227](https://mariadb.atlassian.net/browse/MXS-227) | Memory leak in Galera Monitor | +| [MXS-244](https://mariadb.atlassian.net/browse/MXS-244) | Memory leak when using prepared statements without arguments | + +## Known Issues and Limitations + +There are a number bugs and known limitations within this version of MaxScale, the most serious of this are listed below. + +* MaxScale can not manage authentication that uses wildcard matching in hostnames in the mysql.user table of the backend database. The only wildcards that can be used are in IP address entries. + +* When users have different passwords based on the host from which they connect MaxScale is unable to determine which password it should use to connect to the backend database. This results in failed connections and unusable usernames in MaxScale. + +* LONGBLOB are currently not supported. + +* Galera Cluster variables, such as @@wsrep_node_name, are not resolved by the embedded MariaDB parser. + +* The Database Firewall filter does not support multi-statements. Using them will result in an error being sent to the client. + +## Packaging + +Both RPM and Debian packages are available for MaxScale in addition to the tar based releases previously distributed we now provide + +* CentOS/RedHat 5 + +* CentOS/RedHat 6 + +* CentOS/RedHat 7 + +* Debian 6 + +* Debian 7 + +* Ubuntu 12.04 LTS + +* Ubuntu 14.04 LTS + +* SuSE Linux Enterprise 11 + +* SuSE Linux Enterprise 12 From 24d0ffe2113f93ca268e29419ebd0ecc91e327d1 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 7 Jul 2015 06:31:52 +0300 Subject: [PATCH 11/16] Fixed Building from Source document. --- .../Building-MaxScale-from-Source-Code.md | 32 ++++--------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/Getting-Started/Building-MaxScale-from-Source-Code.md b/Getting-Started/Building-MaxScale-from-Source-Code.md index 95236ed7e..2d8f0661e 100644 --- a/Getting-Started/Building-MaxScale-from-Source-Code.md +++ b/Getting-Started/Building-MaxScale-from-Source-Code.md @@ -87,16 +87,13 @@ You will also need some version specific packages. #### Earlier versions of Ubuntu or Debian -For these, you will need to obtain the MariaDB embedded library. It has to be manually extracted from the tarball. But first ascertain what version of glibc is installed. Run the command: +For these, you will need to obtain the MariaDB embedded library. It has to be manually extracted from the tarballs at the MariaDB site. But first ascertain what version of glibc is installed. Run the command: ``` dpkg -l | grep libc6 ``` -which will show the version number. If the version is less than 2.14 you should obtain the library from: -[https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-x86_64/mariadb-5.5.41-linux-x86_64.tar.gz](https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-x86_64/mariadb-5.5.41-linux-x86_64.tar.gz). -Otherwise, from: -[https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-glibc_214-x86_64/mariadb-5.5.41-linux-glibc_214-x86_64.tar.gz](https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-glibc_214-x86_64/mariadb-5.5.41-linux-glibc_214-x86_64.tar.gz) +which will show the version number. For versions older than 2.14 you should obtain the library which supports GLIBC versions older than 2.14 and for newer versions, the library which supports newer GLIBC versions should be used. The suggested location for extracting the tarball is `/usr` so the operation can be done by the following commands: @@ -107,22 +104,6 @@ The suggested location for extracting the tarball is `/usr` so the operation can where /path/to/mariadb.library.tar.gz is replaced by the actual path and name of the downloaded tarball. -## OpenSUSE - -At the time this guide was written, the MariaDB development packages for OpenSUSE were broken and the build failed. - -The packages required are: - -``` -gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc_s1 perl -make libtool libopenssl-devel libaio libaio-devel -libedit-devel librabbitmq-devel - MariaDB-devel MariaDB-client MariaDB-server -``` - -If zypper ask which MariaDB client should be installed `MariaDB-client` or `mariadb-client` - please select `MariaDB-client`. This is the package provided by the MariaDB repository. - # Obtaining the MaxScale Source Code Now clone the GitHub project to your machine either via the web interface, your favorite graphical interface or the git command line @@ -152,16 +133,15 @@ wipe the build directory clean without the danger of deleting important files wh something goes wrong. Building 'out-of-source' also allows you to have multiple configurations of MaxScale at the same time. -The default values that CMake uses can be found in the 'macros.cmake' file. -If you wish to change these, edit the 'macros.cmake' file or define the -variables manually at configuration time. +The default values that MaxScale uses for CMake can be found in the 'macros.cmake' file under the `cmake` folder. +If you wish to change these, edit the 'macros.cmake' file or define the variables manually at configuration time. To display all CMake variables with their descriptions: ``` cmake .. -LH ``` -This is a useful command if you have your libraries installed in non-standard locations. +This is a useful command if you have your libraries installed in non-standard locations and need to provide them manually. When you are ready to run cmake, provide the following command: @@ -241,7 +221,7 @@ $ make install This will result in an installation being created which is identical to that which would be achieved by installing the binary package. -By default, MaxScale installs to `/usr/local/mariadb-maxscale` and places init.d scripts and ldconfig files into their folders. Change the `CMAKE_INSTALL_PREFIX` variable to your desired installation directory and set `WITH_SCRIPTS=N` to prevent the init.d script and ldconfig file installation. +When building from source, MaxScale installs to `/usr/local/` and places init.d scripts and ldconfig files into their folders. Change the `CMAKE_INSTALL_PREFIX` variable to your desired installation directory and set `WITH_SCRIPTS=N` to prevent the init.d script and ldconfig file installation. Other useful targets for Make are `documentation`, which generates the Doxygen documentation, and `uninstall` which uninstall MaxScale binaries after an install. From c7f0c24b54b74cf69a7f6fbe7e10f0c648b47fd4 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 7 Jul 2015 06:33:49 +0300 Subject: [PATCH 12/16] Removed Fedora references from the source building documentation. --- .../Building-MaxScale-from-Source-Code.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/Getting-Started/Building-MaxScale-from-Source-Code.md b/Getting-Started/Building-MaxScale-from-Source-Code.md index 2d8f0661e..96147c0f1 100644 --- a/Getting-Started/Building-MaxScale-from-Source-Code.md +++ b/Getting-Started/Building-MaxScale-from-Source-Code.md @@ -22,9 +22,9 @@ After following the instructions on that site you should have a working MariaDB The full list of dependencies for the most common distributions is provided in this section. If your system is not listed here, MaxScale building isn't guaranteed to be compatible but might still be successful. -## RHEL, CentOS and Fedora +## RHEL and CentOS -You will need to install all of the following packages for all versions of RHEL, CentOS and Fedora. +You will need to install all of the following packages for all versions of RHEL and CentOS. ``` gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc perl make libtool @@ -39,7 +39,7 @@ rpm-build There are also some version specific packages you need to install. -#### RHEL 6, 7, CentOS 6, 7, Fedora: +#### RHEL 6, 7, CentOS 6, 7: ``` libedit-devel @@ -51,17 +51,11 @@ libedit-devel mariadb-devel mariadb-embedded-devel ``` -#### RHEL 5, 6, CentOS 5, 6, Fedora 19, 20 +#### RHEL 5, 6, CentOS 5, 6 ``` MariaDB-devel MariaDB-server ``` -#### Fedora 19, 20 - -``` -systemtap-sdt-devel -``` - ## Ubuntu and Debian These packages are required on all versions of Ubuntu and Debian. From c93eb94832c467b9650af0411ffa2d9ace7b3717 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 7 Jul 2015 14:40:13 +0300 Subject: [PATCH 13/16] Added Upgrading to 1.2 document. --- Upgrading-To-MaxScale-1.2.0.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Upgrading-To-MaxScale-1.2.0.md diff --git a/Upgrading-To-MaxScale-1.2.0.md b/Upgrading-To-MaxScale-1.2.0.md new file mode 100644 index 000000000..a48750076 --- /dev/null +++ b/Upgrading-To-MaxScale-1.2.0.md @@ -0,0 +1,24 @@ +# Upgrading MaxScale from 1.1 to 1.2 + +This document describes upgrading MaxScale from version 1.1.1 to 1.2 and the major differences in the new version compared to the old version. The major changes can be found in the `Changelog.txt` file in the installation directory and the official release notes in the `ReleaseNotes.txt` file. + +## Installation + +Before starting the upgrade, we recommend you back up your configuration, log and binary log files in `/usr/local/mariadb-maxscale/`. + +Upgrading MaxScale will copy the `MaxScale.cnf` file in `/usr/local/mariadb-maxscale/etc/` to `/etc/` and renamed to `maxscale.cnf`. Binary log files are not automatically copied and should be manually moved from `/usr/local/mariadb-maxscale` to `/var/lib/maxscale/`. + +## File location changes + +MaxScale 1.2 follows the [FHS-standard](http://www.pathname.com/fhs/) and installs to `/usr/` and `/var/` subfolders. Here are the major changes and file locations. + +* Configuration files are located in `/etc/` and use lowercase letters: `/etc/maxscale.cnf` +* Binary files are in `/usr/bin/` +* Libraries and modules are in `/usr/lib64/maxscale/`. If you are using custom modules, please make sure they are in this directory before starting MaxScale. +* Log files are in the `var/log/maxscale/` folder +* MaxScale's PID file is located in `/var/run/maxscale/maxscale.pid` +* Data files and other persistent files are in `/var/lib/maxscale/` + +## Running MaxScale without root permissions + +MaxScale can run as a non-root user with the 1.2 version. RPM and DEB packages install the `maxscale` user and `maxscale` group which are used by the init scripts and systemd configuration files. If you are installing from a binary tarball, you can run the `postinst` script included in it to manually create these groups. From e9b84c15a263badcf8980e9ea55d20031657bc33 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 7 Jul 2015 15:03:23 +0300 Subject: [PATCH 14/16] Added link to 1.2 upgrade document in Documentation-Contents.md --- Documentation-Contents.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation-Contents.md b/Documentation-Contents.md index fc51d83ec..f19797d55 100644 --- a/Documentation-Contents.md +++ b/Documentation-Contents.md @@ -19,7 +19,8 @@ ## Upgrading MaxScale -- [Upgrading MaxScale to 1.1.0](Upgrading-To-MaxScale-1.1.0.md) +- [Upgrading MaxScale from 1.1.1 to 1.2.0](Upgrading-To-MaxScale-1.2.0.md) +- [Upgrading MaxScale from 1.0.5 to 1.1.0](Upgrading-To-MaxScale-1.1.0.md) ## Reference From 6fd9b5a59fc4c62642ab5356bd5a843e78b688b0 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 7 Jul 2015 16:02:29 +0300 Subject: [PATCH 15/16] Updated release notes. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 49 +++++++++---------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index de4b7a461..c1252a932 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -34,31 +34,30 @@ Now you can configure MaxScale monitor module to automatically launch a script w Here is a list of bugs fixed since the release of MaxScale 1.1.1. -| Key | Summary | -| --- | -------- | -| [MXS-24](https://mariadb.atlassian.net/browse/MXS-24) | bugzillaId-604: Module load path documentation issues ... | -| [MXS-40](https://mariadb.atlassian.net/browse/MXS-40) | Display logged in users | -| [MXS-113](https://mariadb.atlassian.net/browse/MXS-113) | MaxScale seems to fail if built against MariaDB 10.0 libraries | -| [MXS-116](https://mariadb.atlassian.net/browse/MXS-116) | Do not run maxscale as root. | -| [MXS-117](https://mariadb.atlassian.net/browse/MXS-117) | Allow configuration of the log file directory | -| [MXS-125](https://mariadb.atlassian.net/browse/MXS-125) | inconsistency in maxkeys/maxpassword output and parameters | -| [MXS-128](https://mariadb.atlassian.net/browse/MXS-128) | cyclic dependency utils -> log_manager -> utils | -| [MXS-136](https://mariadb.atlassian.net/browse/MXS-136) | Check for MaxScale replication heartbeat table existence before creating | -| [MXS-137](https://mariadb.atlassian.net/browse/MXS-137) | cannot get sql for queries with length >= 0x80 | -| [MXS-139](https://mariadb.atlassian.net/browse/MXS-139) | Schemarouter authentication for wildcard grants fails without optimize_wildcard | -| [MXS-140](https://mariadb.atlassian.net/browse/MXS-140) | strip_db_esc does not work without auth_all_servers | -| [MXS-162](https://mariadb.atlassian.net/browse/MXS-162) | Fix Incorrect info in Configuration Guide | -| [MXS-165](https://mariadb.atlassian.net/browse/MXS-165) | Concurrency issue while incrementing sessions in qlafilter | -| [MXS-166](https://mariadb.atlassian.net/browse/MXS-166) | Memory leak when creating a new event | -| [MXS-171](https://mariadb.atlassian.net/browse/MXS-171) | Allow reads on master for readwritesplit | -| [MXS-176](https://mariadb.atlassian.net/browse/MXS-176) | Missing dependencies in documentation | -| [MXS-180](https://mariadb.atlassian.net/browse/MXS-180) | MariaDB10 binlog router compatibilty | -| [MXS-181](https://mariadb.atlassian.net/browse/MXS-181) | Poor performance on TCP connection due to Nagle's algoritm | -| [MXS-182](https://mariadb.atlassian.net/browse/MXS-182) | SHOW SLAVE STATUS and maxadmin "show services" for binlog router needs updated when used with MariaDB 10 Master | -| [MXS-212](https://mariadb.atlassian.net/browse/MXS-212) | Stopped services accept connections | -| [MXS-225](https://mariadb.atlassian.net/browse/MXS-225) | RPM Debug build packages have no debugging symbols | -| [MXS-227](https://mariadb.atlassian.net/browse/MXS-227) | Memory leak in Galera Monitor | -| [MXS-244](https://mariadb.atlassian.net/browse/MXS-244) | Memory leak when using prepared statements without arguments | + * [MXS-24](https://mariadb.atlassian.net/browse/MXS-24): bugzillaId-604: Module load path documentation issues ... + * [MXS-40](https://mariadb.atlassian.net/browse/MXS-40): Display logged in users + * [MXS-113](https://mariadb.atlassian.net/browse/MXS-113): MaxScale seems to fail if built against MariaDB 10.0 libraries + * [MXS-116](https://mariadb.atlassian.net/browse/MXS-116): Do not run maxscale as root. + * [MXS-117](https://mariadb.atlassian.net/browse/MXS-117): Allow configuration of the log file directory + * [MXS-125](https://mariadb.atlassian.net/browse/MXS-125): inconsistency in maxkeys/maxpassword output and parameters + * [MXS-128](https://mariadb.atlassian.net/browse/MXS-128): cyclic dependency utils -> log_manager -> utils + * [MXS-136](https://mariadb.atlassian.net/browse/MXS-136): Check for MaxScale replication heartbeat table existence before creating + * [MXS-137](https://mariadb.atlassian.net/browse/MXS-137): cannot get sql for queries with length >= 0x80 + * [MXS-139](https://mariadb.atlassian.net/browse/MXS-139): Schemarouter authentication for wildcard grants fails without optimize_wildcard + * [MXS-140](https://mariadb.atlassian.net/browse/MXS-140): strip_db_esc does not work without auth_all_servers + * [MXS-162](https://mariadb.atlassian.net/browse/MXS-162): Fix Incorrect info in Configuration Guide + * [MXS-165](https://mariadb.atlassian.net/browse/MXS-165): Concurrency issue while incrementing sessions in qlafilter + * [MXS-166](https://mariadb.atlassian.net/browse/MXS-166): Memory leak when creating a new event + * [MXS-171](https://mariadb.atlassian.net/browse/MXS-171): Allow reads on master for readwritesplit + * [MXS-176](https://mariadb.atlassian.net/browse/MXS-176): Missing dependencies in documentation + * [MXS-179](https://mariadb.atlassian.net/browse/MXS-179): Keep configuration changes in synch across MaxScale Mate Nodes + * [MXS-180](https://mariadb.atlassian.net/browse/MXS-180): MariaDB10 binlog router compatibilty + * [MXS-181](https://mariadb.atlassian.net/browse/MXS-181): Poor performance on TCP connection due to Nagle's algoritm + * [MXS-182](https://mariadb.atlassian.net/browse/MXS-182): SHOW SLAVE STATUS and maxadmin "show services" for binlog router needs updated when used with MariaDB 10 Master + * [MXS-212](https://mariadb.atlassian.net/browse/MXS-212): Stopped services accept connections + * [MXS-225](https://mariadb.atlassian.net/browse/MXS-225): RPM Debug build packages have no debugging symbols + * [MXS-227](https://mariadb.atlassian.net/browse/MXS-227): Memory leak in Galera Monitor + * [MXS-244](https://mariadb.atlassian.net/browse/MXS-244): Memory leak when using prepared statements without arguments ## Known Issues and Limitations From 61853975725cc84850647aa47fc80db88747735c Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 7 Jul 2015 16:22:26 +0300 Subject: [PATCH 16/16] Added lsyncd guide to release notes. --- Release-Notes/MaxScale-1.2.0-Release-Notes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Release-Notes/MaxScale-1.2.0-Release-Notes.md b/Release-Notes/MaxScale-1.2.0-Release-Notes.md index c1252a932..43560ddff 100644 --- a/Release-Notes/MaxScale-1.2.0-Release-Notes.md +++ b/Release-Notes/MaxScale-1.2.0-Release-Notes.md @@ -30,6 +30,9 @@ MaxScale now supports SSL/TLS encrypted connections to MaxScale. ### Launchable scripts Now you can configure MaxScale monitor module to automatically launch a script when it detects change in the state of a backend server. The script can be any customer script defined by you to take diagnostic or reporting action. With this you can easily customize MaxScale's behavior. +### Lsyncd configuration guide +A new tutorial has beed added which helps you keep MaxScale's configuration files in sync across multiple hosts. This allows for easier HA setups with MaxScale and guarantees up-to-date configuration files on all nodes. The tutorial can be found [here](../Reference/MaxScale-HA-with-lsyncd.md). + ## Bug fixes Here is a list of bugs fixed since the release of MaxScale 1.1.1.