6876 Commits

Author SHA1 Message Date
Johan Wikman
71707c8505 Merge branch '2.1' into develop 2017-02-15 08:48:36 +02:00
Johan Wikman
49cc2b52e3 Merge branch '2.1.0' into 2.1 2017-02-15 08:44:55 +02:00
Johan Wikman
5648f708af Update license to BSL 1.1 2017-02-14 21:42:28 +02:00
Johan Wikman
e8f88a5762 Add script for updating license URL 2017-02-14 21:02:16 +02:00
Johan Wikman
0838401b32 Merge branch '2.1' into develop 2017-02-14 17:54:27 +02:00
Johan Wikman
3a3b31ebb4 NullFilter capabilities are now instance specific
There can now in one configuration be multiple Null filters,
each with its own set of capabilities.
2017-02-14 13:55:50 +02:00
Johan Wikman
2a49cd6451 getCapabilities now get the instance as argument
Allows the capabilities to be different depending on how the
filter/router has been configured.
2017-02-14 13:55:22 +02:00
Johan Wikman
5f0346f5a9 Remove support for session specific log priorities
No need to maintain information in thread local storage,
which just added complexity and also incurred a slight
performance penalty.
2017-02-14 12:35:24 +02:00
Johan Wikman
d05a533611 Deprecate session specific log priorities
They are not particularly useful, they surely are not used
and impose a small cost for every event extracted from the
poll sets.

This commit only removes the maxadmin commands, subsequent
commits will remove the actual code.
2017-02-14 12:05:52 +02:00
Johan Wikman
e9bcb3c7e0 Remove deprecated logging functionality 2017-02-14 11:19:30 +02:00
Johan Wikman
20da2c7db8 Add mxs_strerror
Thread-safe version of strerror; thread local buffer used for storing
the message. The performance penalty of a thread local buffer is not
likely to be significant, since this is only called in an error
situation that anyway is likely to interrupt the normal processing.
2017-02-14 09:39:03 +02:00
Markus Mäkelä
9a03ba4566 Use on-disk database for MySQLAuth users
The SQLite database is now always created on disk. This will remove the
need to dump the database users from the in-memory database to the
persisted on-disk database.

This change will also make the authentication compatible with older SQLite
implementations which lack the URI-based database strings found in newer
versions.
2017-02-13 17:42:19 +02:00
Adam Szkoda
825782799f Zendesk's Maxwell Compatibility (#119)
* Binlog router: Introduce maxwell_compatibility flag

* Binlog router: Handle 'server vars' query

This is a step towards using MaxScale with Zendesk's Maxwell.

* Binlog router: Handle results charset query

* Binlog router: Handle sql_mode query

* Binlog router: Handle server_id query

* Binlog router: Handle 'binlog vars' queries

* Binlog router: Handle @@lower_case_table_names query

* Binlog router: Handle @@global.binlog_checksum query

* Binlog router: DRY Maxwell SQL queries
2017-02-13 16:40:01 +01:00
Johan Wikman
fdc66c660c Require that thread_data can be allocated
The allocation of the thread_data that is populated by the polling
mechanism must now succeed, or the process will exit. It's very
unlikely it would ever fail and it is unlikely MaxScale could would
function if it it did fail. Consequently, checks for its validity,
which anyway weren't done correctly everywhere, could be removed.
2017-02-13 15:37:05 +02:00
Esa Korhonen
7e23789364 Fix one last compilation error
Fix one ignored return value in Avro, caused compilation to fail.
2017-02-13 14:46:43 +02:00
Markus Mäkelä
5eed48942f Fix empty password detection
If a user was defined without a password, the authentication would fail.
2017-02-13 13:00:59 +02:00
Markus Mäkelä
acd66b4eb3 Fix compiler warnings
Added missing checks for return values of various function calls. Fixed
binlogrouter strerror_r usage and wrong buffer sizes.
2017-02-13 11:44:38 +02:00
Markus Mäkelä
eb1e163bdf Only update index file if file is flushed to disk
There's no point in indexing the file if it hasn't been synced to
disk. Any attempts to index the file will fail if the file still has an
open data block.
2017-02-12 04:38:24 +02:00
Markus Mäkelä
cf63e4cb9e Remove false debug assertion
If MaxScale is started without the appropriate permissions to the paths
pointed by default values, the debug assertion fails even though the
parameter is valid but not usable.
2017-02-10 18:49:22 +02:00
Markus Mäkelä
d2c3be8728 Fix compiler flag usage
The compiler flags overwrote the default values that CMake generates
instead of appending to them.
2017-02-10 17:19:46 +02:00
Markus Mäkelä
04b2475553 Fix random_jkiss initialization
The initialization function used another function which expected
initialization to be done.
2017-02-10 14:17:54 +02:00
Markus Mäkelä
0200a353a1 Add more filter API documentation
The member functions are now documentated. The routeQuery and clientReply
entry points should be documented in more detail.
2017-02-10 13:49:18 +02:00
Markus Mäkelä
a2727ea7e0 Generate documentation from the public headers
The Doxygen documentation is generated from the public headers. This
should make it easier to read for module developers.
2017-02-10 13:33:51 +02:00
Markus Mäkelä
334e71b079 Initialize random number generator in main
The random number generator can be initialized when MaxScale's other
systems are being initialized. This removes the need to initialized it
when the function is used for the first time.
2017-02-10 13:02:39 +02:00
MassimilianoPinto
d25d0e9c4e Don't request and set UUID if the master server is MariaDB 10
SHOW VARIABLES LIKE 'SERVER_UUID' and SET @slave_uuid are meant only
for MySQL 5.6/7 master registration.

If MariaDB 10 compatibility is set then skip these useless requests.
2017-02-10 10:33:40 +01:00
Johan Wikman
54d4a562ce Merge branch '2.1' into develop 2017-02-09 15:07:13 +02:00
MassimilianoPinto
fdcc9333c8 MaxRows configuration example
MaxRows configuration example
2017-02-09 15:02:34 +02:00
Johan Wikman
d76be99cc5 Improve error message
A parameter may be wrong because the parameter name is wrong or
the value of the parameter is wrong. That needs to be reflected in
the error message.
2017-02-09 15:02:34 +02:00
Markus Mäkelä
8ef9781d61 Add Upgrading to 2.1 document
The document lists important changes that should be noted when MaxScale is
upgraded from 2.0 to 2.1.
2017-02-09 15:02:34 +02:00
Markus Mäkelä
fbe7885ecb Add changes to router_options to release notes
Added a section to the release notes that tells the fact that the
readwritesplit, schemarouter and binlogrouter now also accept the values
of router_options as parameters.
2017-02-09 15:02:34 +02:00
Markus Mäkelä
ec238a168d Add example to CCRFilter documentation
The example has a filter configuration for a minimal setup. It also
describes how to tune the filter for greater performance.
2017-02-09 15:02:34 +02:00
Johan Wikman
b46bc47c87 Add NullFilter filter module
NullFilter is a filter module that does nothing, except reports
capabilities as defined in the configuration file. It's purpose
is only to make it simple to benchmark the performance impact
various routing capabilities have.

Note that since getCapabilities() currently does *not* take an
instance pointer as parameter, all NullFilter instances will
report the same capabilities, the ones specified for the last
filter to have been loaded.
2017-02-09 15:02:34 +02:00
Johan Wikman
0e037e4005 Add full masking example 2017-02-09 15:02:34 +02:00
Johan Wikman
ac0679a9d5 Update filter documentation
- Add note about filters having become available in 2.1.
- Add insertstream to release notes and change log.
- Add complete example to cache documentation.
2017-02-09 15:02:34 +02:00
MassimilianoPinto
fcbf3e6208 MaxRows configuration example
MaxRows configuration example
2017-02-08 14:49:01 +01:00
Markus Mäkelä
507f27b6ad Add Upgrading to 2.1 document
The document lists important changes that should be noted when MaxScale is
upgraded from 2.0 to 2.1.
2017-02-08 15:36:52 +02:00
Markus Mäkelä
ae39262dd5 Add changes to router_options to release notes
Added a section to the release notes that tells the fact that the
readwritesplit, schemarouter and binlogrouter now also accept the values
of router_options as parameters.
2017-02-08 15:36:52 +02:00
Markus Mäkelä
25c5e9ec9e Add example to CCRFilter documentation
The example has a filter configuration for a minimal setup. It also
describes how to tune the filter for greater performance.
2017-02-08 15:36:52 +02:00
Markus Mäkelä
ce5cd69eb3 Remove unused locks and variables
Removed unused spinlocks from DCBs, sessions and the MySQL protocol
structs. They were used in a context where only one thread has access to
the structure.

Removed unused member variables from DCBs.
2017-02-08 15:31:17 +02:00
Markus Mäkelä
517ecd9a12 Remove unnecessary spinlocks from random_jkiss
Removing the locks will increase the randomness of the random number
generation by introducing race conditions into the code.
2017-02-08 14:39:16 +02:00
Johan Wikman
1f9365f29b Add full masking example 2017-02-08 14:36:54 +02:00
Johan Wikman
a58498c9bf Update filter documentation
- Add note about filters having become available in 2.1.
- Add insertstream to release notes and change log.
- Add complete example to cache documentation.
2017-02-08 14:36:54 +02:00
Markus Mäkelä
5cd29c4220 Merge branch '2.1' into develop 2017-02-08 09:32:18 +02:00
Markus Mäkelä
a6698c6f07 Merge branch '2.1.0' into 2.1 2017-02-08 09:30:34 +02:00
Markus Mäkelä
c82831cc10 Fix merge conflict
An old define name caused the build to fail.
2017-02-08 09:29:26 +02:00
Markus Mäkelä
67888f3596 Merge branch '2.0' into 2.1.0 2017-02-08 09:27:00 +02:00
Markus Mäkelä
4f7b2b545e Remove documentation for monitor parameter
The use of monitors in services isn't complete but this was not in the
documentation. A more complete solution should be done at a later date and
the current documentation should be removed.
2017-02-08 09:00:53 +02:00
Johan Wikman
7035af30c3 Update ChangeLog 2017-02-07 13:43:39 +02:00
MassimilianoPinto
877551e4c1 MaxScale-2.1.0-Release-Notes update
MaxScale-2.1.0-Release-Notes update
2017-02-07 13:43:39 +02:00
Johan Wikman
b0cf8c6e38 Update ChangeLog 2017-02-07 13:43:02 +02:00