Commit Graph

4322 Commits

Author SHA1 Message Date
b23d3e6198 MXS-185: "read-only" transactions to be directed to the slaves by the readwritesplit router
START TRANSACTION READ ONLY
statements
COMMIT

All statements, including START … and COMMIT are routed to same slave
server
2017-01-25 11:43:17 +01:00
286f44ac80 Fix cdc add_user false error message
The success check was inverted for the adding of a user.
2017-01-25 11:11:42 +02:00
99f6d4678d Make COMMIT/ROLLBACK a part of the transaction
The transaction tracking now flags the transaction as open even when a
COMMIT/ROLLBACK is received. The next statement after the transaction is
closed resets the transaction state to inactive. This means that the end
of the transaction belongs in the transaction.

This allows all statements that belong to a transaction to be detected
with the transaction tracking functions provided by the core. With this,
the routing modules should have an easier time handling transactions.
2017-01-24 20:36:39 +02:00
c77bb502e9 Store transaction type bit on transaction end
When the transaction ends, it's good to know what type of a transaction
just ended. Currently, this will be used by readwritesplit to detect when
a read-only transaction ends.
2017-01-24 20:36:39 +02:00
81be935fa9 Track transaction end as well as start
The COMMIT and ROLLBACK are now detected. This can be used to route the
trailing end of a transaction to a specific server.
2017-01-24 20:36:39 +02:00
fe1863bb49 Remove bitmask.h & .c, since the container is no longer used 2017-01-24 14:28:28 +02:00
b187afdcf4 Move config_runtime.h and externcmd.h to core
+ some cleanup
2017-01-24 13:05:21 +02:00
641896872e Rename GW_AUTHENTICATOR and GW_BITMASK + cleanup 2017-01-24 10:03:36 +02:00
126d9be749 Remove noisy logging 2017-01-23 15:31:01 +02:00
72aebbdbb3 Add missing include file 2017-01-23 15:29:23 +02:00
47d21bd519 Masking: Change "rules_file" parameter to "rules"
The firewall filter and the cache have similar rules files and
they use "rules". To be consistent, the masking filter should
use "rules" as well.
2017-01-23 15:17:23 +02:00
ead0d4fe3e No point storing version info in transient storage
As the RocksDB storage is re-created at each startup it does not
make sense to store version information in it.
2017-01-23 15:09:13 +02:00
6a90b0c629 Ok to continue even if storage directory is created at startup
Due to some refactoring that possibility had been lost.
2017-01-23 15:08:57 +02:00
9430da94b9 Further cleanup of monitor headers 2017-01-23 14:16:34 +02:00
7723641687 Ignore relay master and external slave state changes
When the relay master or external slave states change, they should be
ignored in the current implementation. When the relay master and slave of
external master events are added, the events can be enabled.
2017-01-23 13:38:56 +02:00
eb05132a5c Cache: Use MXS_MODULE_PARAM_SIZE 2017-01-23 11:01:57 +02:00
105f626e76 IEC prefixes are matched case-insetensively
If the case of the initial character does not matter, then the case
of the following 'i' should not matter either.
2017-01-23 10:11:26 +02:00
50f594fa4e Fix ccrfilter parameters
The filter used the value of `count` for the `time` parameter.

The `options` parameter used the old-style parsing of the options and the
`match` and `exclude` parameters didn't use config_copy_string.
2017-01-22 09:24:00 +02:00
03402a86ed Check that ccrfilter time is enabled before using it
The filter calculated a time difference which was negative if the filter
was not configured to use time intervals.

Added more info level logging to help determine how the filter behaves.
2017-01-22 09:24:00 +02:00
4e6fde8a23 Use query type instead of operation for ccrfilter
The query operation not being a select is too strict and not very
precise. Only queries that actually modify data should trigger the adding
of routing hints.
2017-01-22 09:24:00 +02:00
8cffa4ad58 Divide poll.h to core and public headers
Also some cleanup of other headers.
2017-01-20 17:15:27 +02:00
468411250d Fix old header names in modules
Some of the modules still used the gw_authenticator.h name.
2017-01-20 16:57:04 +02:00
4ee7f4c91d Add some extra debug assertions
The debug assertions help catch false positives in server state change
logic.
2017-01-20 16:57:04 +02:00
7824c98dcc Maxrows filter is now the core 2017-01-20 15:46:03 +01:00
b4d7739bdc namedserverfilter.c: removed unused var
Removed unused var in namedserverfilter.c
2017-01-20 14:40:29 +01:00
872bbd1ab3 Make cache part of the core 2017-01-20 13:30:00 +02:00
be1bdfaa92 Mark masking as part of the core 2017-01-20 13:30:00 +02:00
57b530a2e8 MXS-1065: add wildcards support to source option in namedfilter
It’s possible to add % wildcards in the ‘source’ option of
namedserverfilter.
Allowed values, for an IP address only are:

X.%.%.%
X.Y.%.%
X.Y.Z.%

The match any ‘%’ is not allowed
2017-01-20 12:15:20 +01:00
6dc6d6280a Rename some .c-files, removing gw-prefix
May require reconfiguring the build. Some "gw":s are still
remaining, at least in test files.
2017-01-20 12:55:52 +02:00
6e38276a20 Rename files, removing "gw"-prefix
Also gwdirs.h.in -> paths.h.in
2017-01-20 12:55:52 +02:00
568239d2b5 Ignore auxiliary server status bits for state changes
The auxiliary status bits for the server were treated as if they changed
the real state of the server. The stale status bits don't affect the real
state of the server so they should be ignored when monitors check for
state changes in servers.
2017-01-20 09:10:44 +02:00
ffc68a688f Fix mqfilter build failure
It called an internal session function for no real reason.
2017-01-20 09:09:56 +02:00
dbeb208a5c Remove unnecessary function from header
The function was only used in one place.

Also added a debug assertion for the monitor event detection mechanism.
2017-01-19 16:03:05 +02:00
eff34b91fb Move modules.h to core/maxscale
Also remove some unnecessary includes + cleanup
2017-01-19 15:53:25 +02:00
53c5b475ad More cleanup of monitor.h
Move some more functions into core header + miscellaneous cleanup
2017-01-19 15:32:40 +02:00
02a8f7492e Divide session.h to internal and interface headers
Definitions and function used by core are in
server/core/maxscale/session.h
Definitions and function used by plugins are in
include/maxscale/session.h
2017-01-19 15:19:40 +02:00
c9a61fec6d Masking: Use common constants
- Response related constants moved from ComPacket to ComResponse
- Constants defined using defines from .../maxscale/protocol/mysql.h
2017-01-19 14:52:13 +02:00
6499994af8 Cache: Use existing defines 2017-01-19 14:52:13 +02:00
1077b313a4 Cache: Handle large packets
Basically the only thing that needs to be done is not to mistake
a 8 byte length encoded integer as an EOF packet.
2017-01-19 14:52:13 +02:00
4df3ec501a Remove extra %s in log message
The %s was added twice in two different places.
2017-01-19 14:48:54 +02:00
624d91aeca Log a message when a SSL listener is created
Seeing the type of the listener that was created helps to analyze the
actions done at runtime.
2017-01-19 14:27:14 +02:00
8aa76727d2 Remove explicit long indicator of size defines 2017-01-19 10:42:05 +02:00
7ed7f972b1 Divide monitor.h to internal and interface headers similar to filter.h
Definitions and function used by core are in
server/core/maxscale/monitor.h
Definitions and function used by plugins are in
include/maxscale/monitor.h
2017-01-19 09:50:48 +02:00
31c8481f6c Fix cache parameter default value 2017-01-19 09:26:37 +02:00
8c236c1cdc Define ComEOF packet length in terms of MYSQL_EOF_PACKET_LEN 2017-01-19 09:26:37 +02:00
fed61fde98 Disable prepared statement execution in dbfwfilter
The dbfwfilter doesn't parse prepared statements for all rules which
requires that they are disabled.
2017-01-19 08:57:15 +02:00
3793f685ac Store DATETIME correctly in avrorouter
DATETIME was stored as a raw year value when it should've been stored as
the raw year value minus 1900.
2017-01-19 08:57:15 +02:00
cfcd1dc38f Maxrows filter uses new constants: MYSQL_EOF_PACKET_LEN and MYSQL_OK_PACKET_MIN_LEN
New constants MYSQL_EOF_PACKET_LEN, MYSQL_OK_PACKET_MIN_LEN are now
used by max rows filter
2017-01-18 15:47:04 +01:00
e4d6af37a9 Masking: Distinguish between EOF and 8 byte integer
When processing the response to a COM_QUERY, the rows will be
terminated by an EOF packet. However, as the type byte of an
EOF packet is 0xFE and the identifying byte of an 8 byte length
encoded integer is also 0xFE it is not possible to distinguish
the two except by also looking at packet length.
2017-01-18 14:31:48 +02:00
00f77bbe69 Fix some leftovers from the SESSION->MXS_SESSION and related renames
Renames only.
2017-01-18 11:50:52 +02:00