5760 Commits

Author SHA1 Message Date
Johan Wikman
087338910e storage_rocksdb: Store version to database
The storage_rocksdb version is now stored to the database. That will
ensure that should the format (key content, length, etc.) change, we
can will detect whether a database is too old and take action.
2016-09-29 14:06:23 +03:00
Johan Wikman
b9c956dda9 cache: Include the databases in the key
The databases targeted by a query are now included in the key.
That way, two identical queries targeting a different default
database will not clash.
Further, it will mean that queries targeting the same databases
are stored near each other, which is good for the performance.
2016-09-29 11:28:01 +03:00
Johan Wikman
7732070546 cache: Add 'use' rules handling
Currently onyl the user name is matched, eventually it should
probably be possible to indicate the network as well, or only
the network.
2016-09-29 11:26:12 +03:00
Johan Wikman
0478c3cc83 cache: Add table and query matching 2016-09-28 19:38:11 +03:00
Johan Wikman
7f24f12cfc cache: Update documentation and add rule handling
The concept of 'allowed_references' was removed from the
documentation and the code. Now that COM_INIT_DB is tracked,
we will always know what the default database is and hence
we can create a cache key that distinguises between identical
queries targeting different default database (that is not
implemented yet in this change).

The rules for the cache is expressed using a JSON object.
There are two decisions to be made; when to store data to the
cache and when to use data from the cache. The latter is
obviously dependent on the former.

In this change, the 'store' handling is implemented; 'use'
handling will be in a subsequent change.
2016-09-28 19:38:11 +03:00
Johan Wikman
20b57b1577 cache: Remove default db only is use db succeeds 2016-09-28 19:38:11 +03:00
Markus Makela
fd3bbf24c8 Fix .travis.tml package names
The libuuid package names were wrong.
2016-09-28 12:04:02 +03:00
counterpoint
2ae4fb7745 Add missing comment blocks. 2016-09-28 09:33:28 +01:00
Markus Makela
0f68b2b825 Fix Travis builds
libuuid and libuuid-dev were missing from the list of installed packages.
2016-09-27 10:06:18 +03:00
Markus Makela
a927cdad1b Add new mysqlmon features to release notes
The release notes now contain entries for the multi-master and failover
modes.
2016-09-26 11:18:21 +03:00
Markus Makela
c919511ba7 Implement simple failover mode into mysqlmon
The mysqlmon simple failover mode allows it to direct write traffic to a
secondary node. This enables a very simple failover mode with MaxScale
when it is used in a two node master-slave setup.
2016-09-26 11:00:16 +03:00
Johan Wikman
a4aa03a1fb cache: Explicitly handle COM_INIT_DB
With this change, the cache will be aware of which default database
is being used. That will remove the need for the cache parameter
'allowed_references' and thus make the cache easier to configure
and manage.
2016-09-23 19:06:14 +03:00
Johan Wikman
ac43580ce8 cache: storage_args renamed to storage_options 2016-09-22 14:22:45 +03:00
Markus Makela
e484aac6f0 Use CLOCK_MONOTONIC instead of CLOCK_MONOTONIC_RAW
The CLOCK_MONOTONIC_RAW isn't supported on all of the platforms, namely
CentOS 5.
2016-09-22 10:09:25 +03:00
Markus Makela
0a951d5e65 Merge branch 'develop-2.0-merge' into develop 2016-09-22 09:49:10 +03:00
Markus Makela
eaf43ca92d Merge branch '2.0' into develop-2.0-merge 2016-09-21 14:59:30 +03:00
Markus Makela
0882541c80 Make the default directories configurable
The default directories can now be changed at build time. This allows
tarballs to look for libraries in a more sensible place.
2016-09-21 14:21:18 +03:00
Johan Wikman
4422cd87eb Update tarball installation instructions
The /var/[log|lib|run|cache]/maxscale directory must be created
manually.
2016-09-21 13:07:13 +03:00
Markus Makela
578f21e757 MXS-874: Clear closed state before reconnecting to a server
The backend reference states should be cleared when a reconnection attempt
is made. Should the creation of a new DCB succeed, the backend should no
longer be closed.
2016-09-21 11:15:57 +03:00
Markus Makela
bd60fbde7e Create dummy files in /var directories for tar.gz packages
These files allow seemingly empty directories to be installed on various
platforms. Some platforms had problems installing empty directories.
2016-09-21 11:11:24 +03:00
Markus Makela
08d980b433 Trim and squeeze whitespace when canonicalizing queries
The canonical form of the query should ignore changes in whitespace as the
semantics of the query stays the same regardless of the amount of
whitespace.
2016-09-21 10:58:24 +03:00
Markus Makela
f6888ef205 Install all /var directories
The /var/lib/maxscale directory wasn't installed and tarballs didn't have
any /var directories.
2016-09-21 09:41:00 +03:00
Markus Makela
ca9021b835 Merge branch '2.0' into develop 2016-09-21 02:51:27 +03:00
Markus Makela
62ab834e8a Remove unused variables from readwritesplit
There were some unused variables in readwritesplit that caused builds to
fail.
2016-09-20 21:04:10 +03:00
Johan Wikman
ba2cafc65e Update tarball instructions 2016-09-20 16:36:33 +03:00
Markus Makela
715f978051 Add TARBALL variable to CMake
The TARBALL variable controls if a special tar.gz package is built when
packages are generated. This package has a different directory structure
compared to the RPM/DEB packages.

If RPM/DEB packages are built, tar.gz packages are not built. This makes
RPM/DEB generation faster and allows tarballs to be built separately with
a proper directory structures.
2016-09-20 16:32:21 +03:00
Markus Makela
1331bf9ae8 Add CPACK_PACKAGE_FILE_NAME to CMake cache
Adding CPACK_PACKAGE_FILE_NAME to the CMake cache allows the user to
control it. With this, custom tarball names can be easily generated.
2016-09-20 16:32:21 +03:00
Markus Makela
dfec3c8552 Install maxbinlogcheck in the right place
Maxbinlogcheck was installed in the wrong place.
2016-09-20 16:32:21 +03:00
Johan Wikman
0f6d4e4cdb Fix typo in tarball documentation 2016-09-20 13:58:28 +03:00
counterpoint
923761159f Move MXS-807 refactor read-write split into develop. 2016-09-20 11:55:02 +01:00
Johan Wikman
6ec999851f Update 2.0.1 release notes 2016-09-20 13:00:39 +03:00
Johan Wikman
9a9511fc58 Update tarball instructions 2016-09-20 12:46:43 +03:00
Markus Makela
3992135325 Move authentication return codes to gw_authenticator.h
The MYSQL_* authentication return codes are now in gw_authenticator.h so
that all authenticators can use them. Also dropped the MYSQL_ prefix from
the return codes and added AUTH_INCOMPLETE for a generic
authentication-in-progress return code.
2016-09-20 11:44:17 +03:00
Markus Makela
b1b2e5b770 Don't free the shared shard maps
When client sessions are closed, the shared shard maps should not be freed.
2016-09-20 11:33:09 +03:00
Markus Makela
0ab4f04d7b Add authentication plugin name to authenticator API
The authenticators can now declare the authentication plugin name. Right
now this is only relevant for MySQL authentication but for example the
HTTP module could implement both Basic and Digest authentication.
2016-09-20 11:31:13 +03:00
Johan Wikman
4d1eb6fe85 cache: Process response to COM_QUERY
When a query has been sent to a backend, the response is now
processed to the extent that the cache is capable of figuring
out how many rows are being returned, so that the cache setting
`max_resultset_rows` can be processed.

The code is now also written in such a manner that it should be
insensitive to how a package has been split up into a chain of
GWBUFs.
2016-09-20 10:41:02 +03:00
Johan Wikman
7e2a21de9e Cache: Assume we need to handle one packet at a time 2016-09-20 10:41:02 +03:00
Markus Makela
1001654987 Add utility scripts to make installation easier
The `create_grants` scripts allow users to be easily "copied" to
MaxScale. It queries the backend for grants for all users and converts
them into similar grants for the MaxScale host.

The `create_roles.sql` is a small set of queries which creates two utility
roles, `proxy_authenticator` and `proxy_monitor`. These roles can be
assigned to the actual service and monitor users with a single grant
command.
2016-09-20 10:30:53 +03:00
Markus Makela
35d4be14d2 Make service and monitor permissions checks optional
MaxScale shouldn't require the service and monitor user checks. It makes
sense to disable the checks to speed up the startup process when the user
knows that the permissions are OK.
2016-09-20 10:30:53 +03:00
Johan Wikman
e4543881d2 Add instructions for installing a package 2016-09-20 10:14:26 +03:00
Markus Makela
60955ba70d Clean up mysqlmon after pull request merge
The pull request introduced some minor whitespace errors.
2016-09-20 09:23:58 +03:00
TheTuxKeeper
e849297fc8 line length now less than 110 characters 2016-09-20 09:23:58 +03:00
Daniel
48456833da fixed memleak and potential call of mysql_num_rows with NULL 2016-09-20 09:23:58 +03:00
counterpoint
73c974c286 Remove automatic create database - requires too powerful database user. 2016-09-20 09:23:58 +03:00
counterpoint
ec42413db8 Initial changes to implement test before creating maxscale_schema. 2016-09-20 09:23:57 +03:00
Markus Makela
92ef33327e MXS-870: Handle non-contiguous session command responses
Session command responses with multiple packets could be spread across
multiple, non-contiguous buffers. If a buffer contained a complete packet
and some extra data but it wasn't contiguous, the debug assertion in
gwbuf_clone_portion would fail. With release builds, it would cause
eventual out-of-bounds memory access when the response would be sent to
the client.
2016-09-19 09:58:20 +03:00
Johan Wikman
7fc7249349 Update installation instructions 2016-09-16 12:25:29 +03:00
Markus Makela
89f9f4a42f Lock writeq before inspecting it
Looking at the contents of the writeq should be done under a spinlock
otherwise it is possible that another thread grabs the queue.
2016-09-16 10:05:50 +03:00
Markus Makela
2a4addc298 Clear waiting results flag on client errors
When a backend causes an error and it should be sent to the client, the
backend reference was closed but the waiting results state was not
cleared. This caused a debug assertion to be hit.
2016-09-16 09:58:56 +03:00
Johan Wikman
7bd0b19b59 Update MaxScale version number 2016-09-15 23:13:33 +03:00