Commit Graph

67 Commits

Author SHA1 Message Date
11960a1e93 Document transaction_replay_max_size inner workings
The documentation didn't explain how to estimate how much memory a
transaction takes and whether it was a global limit or a per session
limit.
2020-06-02 10:17:39 +03:00
1e57c2cb67 MXS-2643: Mention Galera in causal_reads documentation
causal_reads does not work with servers that update their state via
mechanisms other than the standard replication. In practice this is just
another Galera limitation.
2019-12-03 09:58:23 +02:00
3977207d12 Update transaction_replay documentation
Removed the confusing paragraph.
2019-03-29 14:23:15 +02:00
4f8d6d1853 Fix transaction_replay documentation
The documentation stated that MVCC reads weren't safe with
transaction_replay when in reality they are not safe in general and
transaction_replay has no effect on it.
2019-03-29 10:35:41 +02:00
6ab3985164 Auto-generate ToC
The KB supports the [TOC] tag that auto-generates the table of contents.
2019-01-31 14:23:27 +02:00
260ce9b8b8 MXS-2300: Add session command pruning
This commit adds a new parameter that, when enabled, prunes the session
command history to a known length. This makes it possible to keep a
client-side pooled connection open indefinitely at the cost of making
reconnections theoretically unsafe. In practice the maximum history length
can be set to a value that encompasses a single session using the pooled
connection with no risk to session state integrity. The default history
length of 50 commands is quite likely to be adequate for the majority of
use-cases.
2019-01-31 14:23:26 +02:00
7f978f275f MXS-2223 Log a message when a slave is discriminated due to replication lag
Both the replication lag and the message printing state are saved in SERVER,
although the values are mostly used by readwritesplit. A log message is printed
both when a server goes over the limit and when it comes back below.
Because of concurrency issues, a message may be printed multiple times before
different threads detect the new message state.

Documentation updated to explain the change.
2019-01-21 13:02:18 +02:00
88f234fdcd MXS-2214: Fix object names in documentation
The object names now always use a valid and supported form.
2019-01-03 09:37:59 +02:00
1a78f2ffbb Merge branch '2.2' into 2.3 2018-12-04 11:23:31 +02:00
cb878f18b7 Update max_slave_connections documentation
Corrected the default value and added a more detailed explanation of what
the parameter does and how it affects client connections.
2018-11-29 08:47:11 +02:00
ff22624d3c Add table of contents to router documentation
The TOC was added only to the long documentation files to make them easier
to navigate. Also modified the headings for Avro and Binlog routers and did
some minor cleanup.
2018-11-26 10:32:08 +02:00
dcf53da209 Enable connection_keepalive by default
Enabling the feature by default prevents the master connection from dying
during times when there are very little or no writes. Having a modest ping
interval of 300 seconds serves to minimize the amount of extra work that
both MaxScale and the server have to do while still keeping the
connections in good shape.
2018-11-26 09:42:11 +02:00
4341c2b6e2 MXS-2142: Set causal_reads_timeout default to 10
The causal_reads_timeout default value is too long when considering the
behavioral changes that MXS-2141 introduced. With a 10 second default
value, a result is returned to the client in a reasonable amount of time.
2018-11-06 15:09:14 +02:00
e56372b153 MXS-2141: Retry query on master if it times out on slave
With causal_reads enabled, the query would return with an error if the
slave was not able to catch up to the master fast enough. By automatically
retrying the query on the master, we're guaranteed that a valid result is
always returned to the client.
2018-11-06 15:09:14 +02:00
a2ef874fe6 Fix max_sescmd_history documentation
The session commands are now always stored but they are stored as
references. Also clarified that the feature was disabled in older
versions.
2018-10-16 10:59:14 +03:00
9c52ba5c07 Update release notes and documentation for the Throttle Filter
and Adaptive Routing
2018-10-05 13:52:42 +03:00
d5dbad19bb Update readwritesplit documentation
Fixed a few typos, added the 10.2 relese where last_gtid tracking was
enabled, changed wording.
2018-10-03 08:41:44 +03:00
8b39373577 MXS-1929: Document readwritesplit runtime changes
Added a note about the new behavior in 2.3.
2018-08-13 10:28:01 +03:00
437a0b92d2 Update ReadWriteSplit documentation
router_options are removed and thus do not need to be explained.
2018-07-17 11:52:21 +03:00
391618d53b MXS-1549: Add documentation for optimistic_trx
Added parameter documentation and explained the limitations it has.
2018-07-02 13:29:18 +03:00
3dd84e170f MXS-1778: Document causal_reads parameter
Documented and explained the feature and how it works.
2018-05-22 17:46:26 +03:00
2e8c19f6be Merge branch '2.2' into develop 2018-05-21 10:06:20 +03:00
bdde3c44d9 Document slave_selection_criteria and weightby interaction
Documented how the slave_selection_criteria and server weights work.
2018-05-21 09:50:43 +03:00
092532745d MXS-1507: Add transaction size limit
Added the `transaction_replay_max_size` parameter that controls the
maximum size of a transaction that can be replayed. If the limit is
exceeded, the stored statements are released thus preventing the
transaction from being replayed.

This limitation prevents accidental misuse of the transaction replaying
system when autocommit is disabled. It also allows the user to control the
amount of memory that MaxScale will use.
2018-04-26 13:44:26 +03:00
cb5917b346 MXS-1507: Clarify transaction replay limitations
Only transactions that return identical results can be replayed.
2018-04-26 13:44:26 +03:00
2848f96945 MXS-1507: Make transaction replay configurable
The transaction retrying behavior is now configurable and documented. The
`transaction_replay` parameter implicitly enables the required
functionality in the router that it needs.
2018-04-26 13:44:25 +03:00
23bc8b6db6 MXS-1506: Document delayed_retry
Document the parameters and how they interact with `master_reconnection`.
2018-04-10 15:31:51 +03:00
ce853d3f7f MXS-1503: Enable limited session command history
Enabling the session command history but limiting it to a history of 50
commands allows reconnections for sessions that don't change the state too
often.

As pooled connections will exceed this limit quite fast, they are not able
to reconnect to servers once connections are lost. To solve this problem,
the session command history needs a compaction process that removes
redundant history.
2018-04-03 13:30:53 +03:00
dd59e7181c Remove references to router_options
As they are deprecated, they should not be mentioned in the examples. Also
moved the router_options documentation under a Legacy Configuration
heading.
2018-04-03 13:30:53 +03:00
481db8acbc MXS-359: Rename parameter to master_reconnection
Changing the parameter name to `master_reconnection` allows similar
reconnection functionality to be combined under one parameter.
2018-04-03 13:30:51 +03:00
33e448fc78 MXS-359: Document interaction of master_failure_mode and allow_master_change
Added a paragraph that describes the expected behavior of the router when
both `master_failure_mode` and `allow_master_change` are enabled.
2018-03-14 14:34:49 +02:00
c2341a0003 MXS-359: Allow master changes mid-session
With the `allow_master_change` parameter enabled, sessions can start using
a different master node if one is available. This will not prevent
sessions from closing if a write query is received while no master
replacement is available.
2018-03-08 11:19:17 +02:00
d4aeca0d24 Change strict_multi_stmt default value
The default value for strict_multi_stmt prevents compound statements and
atomic multi-statement commands from being executed without completely
disabling load balancing. As the new default value will have no practical
effect on all correct uses of readwritesplit, this is a relatively safe
thing to change.
2017-12-21 10:48:07 +02:00
551bfb6f26 Merge branch '2.1' into 2.2 2017-09-25 12:35:11 +03:00
9046db06c5 MXS-1295: Add strict_sp_calls parameter
The new parameter allows the session to be "locked" to the master server
after a stored procedure is called. This will keep the session state
consistent if the stored procedure call modifies the state of the session.
2017-09-20 11:18:16 +03:00
deb11ae6eb Merge branch '2.1' into develop 2017-04-27 09:11:02 +03:00
f1efe72f66 Additional documentation cleanup for 2.1
Mostly just reflow text (=linebreaks) for better diffs. Some small changes.
Remove Debug-And-Diagnostic-Support.md.
2017-04-25 10:04:31 +03:00
e8dfccb4c8 2.1 doc esak (#127)
* Update MySQL-Replication-Read-Write-Splitting-Tutorial.md

* Update MySQL-Replication-Read-Write-Splitting-Tutorial.md

* Update MySQL-Replication-Read-Write-Splitting-Tutorial.md

* Update MySQL-Cluster-Setup.md

* Update Administration-Tutorial.md

* Update Administration-Tutorial.md

* Update Galera-Cluster-Connection-Routing-Tutorial.md

* Update CLI.md

* Update ReadWriteSplit.md

* Update Tee-Filter.md

* Update CCRFilter.md

* Update RabbitMQ-Filter.md

* Update Debug-And-Diagnostic-Support.md

* Update MaxBinlogCheck.md

* Update Configuration-Guide.md

* Update Module-Commands.md
2017-04-21 10:49:20 +03:00
043f6c92b8 Fix connection_keepalive documentation
The version number was wrong.
2017-03-28 21:20:43 +03:00
710012ac5d MXS-827: Add connection keepalive
The readwritesplit now sends COM_PING queries to backend servers that have
been idle for too long. The option is configured with the
`connection_keepalive` parameter.
2017-03-26 13:57:25 +03:00
789c14197d Merge branch '2.0' into 2.1 2017-03-02 14:05:42 +02:00
075ca42482 Expand slave_selection_criteria documentation
Added a section about how `slave_selection_criteria` and
`max_slave_connections` affect each other.
2017-03-02 13:33:45 +02:00
e64a641bcd Merge branch '2.0' into develop 2017-02-01 09:35:13 +02:00
82105d20e1 Fix a typo in readwritesplit documentation
Fixed a typo in readwritesplit documentation. The cluster should be in
plural form.
2017-01-31 10:10:25 +02:00
8a1a4c91e4 Enable disable_sescmd_history by default
The combination of the default values of `disable_sescmd_history=false`
and `max_slave_connections=100%` does not make sense as it is not possible
to find a replacement slave in case an active one fails.
2017-01-27 12:19:27 +02:00
98c2d37156 MXS-1080: Document max_slave_replication_lag behavior
The max_slave_replication_lag parameter for readwritesplit only works for
monitors that detect replication lag. As the MySQL monitor is the only one
that implements this functionality, the parameter only has meaning when
used with master-slave clusters.
2017-01-19 13:10:46 +02:00
34a8694b34 Use module parameters for readwritesplit
The parameters that readwritesplit uses now use the new system. This
removes the need for the qualified parameter processing found in config.c.

All values for router_options are now also accepted as parameters. The
router_options is deprecated and support for it will be removed in a
future version.
2017-01-05 19:51:22 +02:00
09111a73ee Clarify router_options in rwsplit documentation
This adds the required "router_options="-text to the examples. Also
adds a two-option example.
2017-01-03 18:28:59 +02:00
7a04259fc0 MXS-756: Retry reads on slave failure
If a slave fails while a non-critical read is being executed, the read is
retried on a different server. This is controlled by the new
`retry_failed_reads` option.

Only selects done that are done outside of a transaction and with
autocommit enabled are retried.
2016-12-13 09:12:58 +02:00
d337aa0476 Backport hint priority change to 2.0
The change in readwritesplit routing priorities, where hints have the
highest priority, gives users more options to control how readwritesplit
acts.

For example, this allows read-only stored procedures to be routed to
slaves by adding a hint to the query:

       CALL myproc(); -- maxscale route to slave

The readwritesplit documentation also warns the user not to use routing
hints unless they can be absolutely sure that no damage will be done.
2016-08-31 17:44:26 +03:00