13054 Commits

Author SHA1 Message Date
Markus Mäkelä
5242cd5ebf
Readwritesplit: Graceful maintenance mode
By allowing transactions to the master to end even if the server is in
maintenance mode makes it possible to terminate connections at a known
point. This helps prevent interrupted transactions which can help reduce
errors that are visible to the clients.
2019-04-02 14:21:54 +03:00
Markus Mäkelä
319d9fa1c5
Document the force option for set
Added documentation for the new option and mentioned it in the release
notes.
2019-04-02 14:21:54 +03:00
Markus Mäkelä
ebd2162024
Add force option to set endpoint
The new `force=yes` option closes all connections to the server that is
being put into maintenance mode. This will immediately close all open
connections to the server without allowing results to return.
2019-04-02 14:21:54 +03:00
Esa Korhonen
f4c6b648d8 MXS-2271 Remove monitor->m_active field
Deactivated monitors are now moved to a separate, inaccessible list.
2019-04-02 13:08:38 +03:00
Esa Korhonen
d89f0c062b MXS-2271 Change Monitor->m_name to std::string
Also, monitor address is no longer printed.
2019-04-02 13:08:38 +03:00
Markus Mäkelä
d7971fa44d
Merge branch '2.3' into develop 2019-04-02 12:48:33 +03:00
Markus Mäkelä
868ae4456c
Merge branch '2.3.5' into 2.3 2019-04-02 12:47:08 +03:00
Markus Mäkelä
366fc6b8ee
MXS-2201: Document static parameters
Documented the list of parameters that cannot be changed at runtime.
2019-04-02 12:45:00 +03:00
Johan Wikman
2829baeab7 Merge branch '2.3' into develop 2019-04-02 12:35:36 +03:00
Johan Wikman
d6d5c82fc3 Merge branch '2.3.5' into 2.3 2019-04-02 12:35:23 +03:00
Johan Wikman
b42d38a3f6 Update release date 2019-04-02 12:34:11 +03:00
Johan Wikman
370c57ebbc Merge branch '2.3' into develop 2019-04-02 12:29:11 +03:00
Johan Wikman
09c7183a2b Update 2.3 maintenance version 2019-04-02 12:25:11 +03:00
Markus Mäkelä
1417292f0d
Destroy monitor only if it's not used
If a service uses a monitor as the source of its servers, it must not be
destroyed before the monitor is removed from all services that use it.
2019-04-02 10:08:59 +03:00
Johan Wikman
84bf241dd1 MXS-2339 A running Clustrix node is regarded as master
In this context master should be interpreted as "can be read
and written to".

Marking them as master requires less changes in RWS to make it
usable with a Clustrix cluster.
2019-04-02 08:13:50 +03:00
Markus Mäkelä
5f02974303
Fix mxs2057_systemd_watchdog
The coredump pattern was wrong.
2019-04-01 21:13:02 +03:00
Johan Wikman
ab96606269 Merge branch '2.3' into develop 2019-04-01 15:41:52 +03:00
Johan Wikman
758fec5e2f Update 2.3.5 Change Log and Release Notes 2019-04-01 15:39:59 +03:00
Johan Wikman
0419e358a6 MXS-2393 Turn off 'require_fully_parsed'
Otherwise test program will not pass as some non test-realated
statements are not fully parsed.
2019-04-01 15:38:01 +03:00
Markus Mäkelä
e659c6cc73
Merge branch '2.3' into develop 2019-04-01 13:24:30 +03:00
Esa Korhonen
9281220e91 Cleanup sharding test
Added a timeout to ensure shard info is updated.
2019-04-01 11:32:48 +03:00
Markus Mäkelä
738ae9178b
Fix binlogfilter matching
The matching always checked the default database when it should only check
it if there are no tables in the statement.
2019-04-01 11:29:16 +03:00
Johan Wikman
06c01439fb MXS-2393 Fix masking test
The masking_user test creates a database over a masked connection.
As 'CREATE DATABASE DB' is not fully parsed the test will fail since
it creates a database.

To allow the test to pass, we turn off the strict requirement that
all statements must be fully parsed.
2019-04-01 10:52:52 +03:00
Johan Wikman
5346b24fa4 MXS-2393 Add parameter 'require_fully_parsed'
If set to true and if any of the other blocking related parameters
is true, then a statement that cannot be fully parsed will be blocked.

Default is true.
2019-04-01 10:52:52 +03:00
Markus Mäkelä
3977207d12
Update transaction_replay documentation
Removed the confusing paragraph.
2019-03-29 14:23:15 +02:00
Johan Wikman
4276514e27 MXS-2363 Add section to release notes
Also fix some minor other things in the relase notes.
2019-03-29 11:32:36 +02:00
Johan Wikman
8fc761ce49 MXS-2363 Add maxctrl show qc_cache 2019-03-29 11:31:35 +02:00
Johan Wikman
d7e3dd1a23 MXS-2363 Return QC cache information as collection
More logcal perhaps and Makes it easier to handle the output in maxctrl.
2019-03-29 11:31:35 +02:00
Johan Wikman
ea6ffe2371 MXS-2363 Add REST-API test 2019-03-29 11:31:35 +02:00
Johan Wikman
5f5d2ef183 MXS-2363 Implement /v1/maxscale/query_classifier/cache
That URL will now return information about the statements in
the query classifier cache. The information is collected using
the same map in a serial manner from all routing workers (that
each have their own cache). Since all caches will contains the
same statements, collecting the information in a serial manner
means that the overall memory consumption will be lower than
what it would be if the information was collected in parallel.
2019-03-29 11:31:35 +02:00
Johan Wikman
64a0327ada MXS-2363 Add string constants needed by new QC functionality 2019-03-29 11:31:35 +02:00
Johan Wikman
56ec56f7a0 MXS-2363 Enable the serial execution of function objects
Make it possible to run function objects serially on all
routing workers. Sometimes that is exactly what you want.
2019-03-29 11:31:35 +02:00
Johan Wikman
9ec82932cf MXS-2363 Skeleton of /v1/maxscale/query_classifier/cache
URL routing in place, callback exists, but no actual information.
2019-03-29 11:31:35 +02:00
Johan Wikman
1a81371346 MXS-2363 Keep track of individual QC cache hits
Useful statistics.
2019-03-29 11:31:35 +02:00
Johan Wikman
42e658d91f MXS-2403 Fix test program
ERROR 1248 (42000): Every derived table must have its own alias
2019-03-29 11:31:13 +02:00
Markus Mäkelä
48791c3877
Fix duplication of the router parameter
The service parameter list had two router entries in it due to the
assumption that the parameter list never contained the router itself in
it.
2019-03-29 10:35:41 +02:00
Markus Mäkelä
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
Johan Wikman
514dd96301 MXS-2413 Parse 'DROP DATABASE [IF EXISTS] db' completely 2019-03-29 10:09:38 +02:00
Markus Mäkelä
6aa846ebc7
MXS-1951: Document SO_REUSEPORT effects
Added a section into limitations and noted the effects in the release
notes.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
66f850d77d
MXS-1951: Fix maxctrl cluster tests
The fact that two MaxScale processes can bind to the same port is now
possible due to the use of SO_REUSEPORT. As this is doable only with a
very deliberate setup, it is unlikely to be a practical problem in most
cases. Regardless, the test needs to be fixed to accept multiple MaxScales
bound to the same port.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
388e952c5f
MXS-1951: Fix port conflict detection
With the addition of SO_REUSEPORT support, it is no longer possible to
rely on the network stack to prevent multiple listeners from listening on
the same port. Without explicitly checking for the ports it would be
possible for two listeners from two different services to listen on the
same port in which case the service would be almost randomly chosen.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
df3b501563
MXS-1951: Add SO_REUSEPORT support
If SO_REUSEPORT is available and the kernel supports it, listeners will
now listen on separate file descriptors. This removes the need for
cross-worker communication when in normal operation which should make
MaxScale scale better.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
cb957200c9
MXS-1951: Detect SO_REUSEPORT support
The support for SO_REUSEPORT is now detected at runtime.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
e745d1cffb
MXS-2312: Use default network buffer sizes
Removed the hard-coded network buffer sizes. This effectively makes them
configurable via the kernel.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
db97c3343d
MXS-1951: Move worker selection into Listener
The worker to which the client DCB is assigned to is now chosen by the
Listener. This makes the protocol code simpler which is always a good
thing.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
5c7846da3f
MXS-1951: Make listener fd worker-local
By storing the file descriptor inside a worker-local variable, it is
possible to handle both unique file descriptors (created with
SO_REUSEPORT) and shared file descriptors with the same code. The way in
which the file descriptor is stored in the rworker_local object determines
the way the listener behaves.
2019-03-28 16:34:12 +02:00
Markus Mäkelä
27cc247e47
MXS-1951: Clean up listener creation
The old values that were encoded into a string wasn't necessary as the
data is already present in a processed form in the member variables.
2019-03-28 16:34:12 +02:00
Esa Korhonen
841bdf4d0f Merge branch '2.3' into develop 2019-03-28 15:33:09 +02:00
Johan Wikman
24c763d701 Update 2.3.5 release notes 2019-03-28 14:47:31 +02:00
Johan Wikman
dfd1d1e979 Update 2.3.5 release notes 2019-03-28 14:42:20 +02:00