Commit Graph

200 Commits

Author SHA1 Message Date
13e95ffc53 Improved diagnostics
Added master reconnect on failure

Added EPOLLRDHUP events
2014-06-07 21:01:11 +01:00
bb0e6c3858 Support non-default binlog filenames
Add support for bin log file names that are shorter than the default.
Handle events per more than 2 packets
2014-06-04 18:37:41 +01:00
4b5f801ff9 Misc fixes for bin log rotate issues 2014-05-28 23:38:54 +01:00
97bb1638ad Delete swp file 2014-05-27 12:17:09 +01:00
7fe50a311f Addition of developer and user modes to debugcli
In order to be able to protect the interface so that mistyped argument
do not endanger MaxScale yet still allow the developer access a router
option has been added that gives the debugcli two modes.
2014-05-23 13:29:58 +01:00
23a9759fca Fixed a couple of memory leaks 2014-05-23 09:08:02 +01:00
3b984d2773 Improve quoting mechanism is debug interface
Introduce the use of \ and allow the quotes to appear at any point
within the string, not just the beginning and end of words.
2014-05-22 15:24:07 +01:00
837d15dc33 Fix valgrind issue with saved master responses 2014-05-22 15:07:46 +01:00
c1d39999ff Improvements to debug interface & blr updates 2014-05-21 17:25:21 +01:00
8b3ea0c4d9 Added ability to use the service name in a show service command 2014-05-19 18:20:03 +01:00
d52f761b2d Fix missing GWBUF queue 2014-05-19 15:18:09 +01:00
6d83e48b87 Merge 2014-05-19 13:47:15 +01:00
9777e83a5a Merge branch 'master' into blr 2014-05-19 13:46:47 +01:00
29d247319d Fixed issue with bin log event straddling buffers 2014-05-17 07:25:03 +01:00
1d08b0100f Initial binlog prototype
Supports pulling binlogs from the master, caching to a local file and relaying to a slave.

Only tested with a single slave and a single MaxScale thread.
2014-05-13 16:06:05 +01:00
6f46742201 master update from 'release-0.5' 2014-03-28 16:21:10 +01:00
efebd27d31 Galera HA Connection Router
Example Galera Connection router for HA environments. Code produced as
part of router writers tutorial.
2014-03-28 14:48:21 +00:00
7c3a354fd8 Query classifier ignored implicit commits in cases of write commands. Fixed it.
Added more tests for transaction support. Mostly different cases where some command triggers implicit commit in the middle of transaction.
2014-03-28 00:16:18 +02:00
9b1035751a Made rwsplit test select_for_var_set.sql generic so that master server's id is filled in test.inc. 2014-03-27 17:17:01 +02:00
e9d1f04bc6 Added test: set var @a via select @@server_id
Added test: set  var @a via select @@server_id
2014-03-27 11:45:47 +01:00
10fdccdeee Added two tests for testing readwrite split router's ability to route read to master if in active transaction and to slave when outside transaction. 2014-03-27 10:27:19 +02:00
75549c6a20 Added $(ROOT_PATH)/test.inc where test parameters can be added. For example, MaxScale port numbers, usernames, passwords. The file can be included in every */test/makefile so that all test directories can use same parameters if necessary.
Moved checking test results to rwsplit.sh so that tests can use easily different criterias to evaluate test success.
2014-03-27 10:06:31 +02:00
f49df89a0c Changed how query classifier determines which statements trigger implicit commit.
Changed test makefile and rwsplit.sh script and added two example sql scripts.
2014-03-26 19:10:35 +02:00
df02926321 Added structure which can be cloned for multiple test cases. 2014-03-25 23:19:24 +02:00
f320c17834 Added test for readwrite split: SET and TRANSACTION - COMMIT
Added test for readwrite split: SET and TRANSACTION - COMMIT
2014-03-24 15:15:21 +01:00
d660d3590d Cannot compile in readwritesplit.c 2014-03-20 20:30:03 +02:00
288ca68677 Changed variable type which includes information of query type returned by query classifier.
As a consequence, if autocommit is enabled, active transaction(s) are implicitly committed and MaxScale detects that implicit commit.
2014-03-20 12:15:57 +02:00
fcf7d37114 Added support for router option 'synced' in read write split router. If router option is specified, backend server must be in 'joined' state to be eligible backend candidate. 2014-03-19 22:29:02 +02:00
5ef657d833 Corrected some error messages. Added checking for protocol state in gw_MySQLWrite_backend. If protocol is in MYSQL_AUTH_FAILED state (=authentication is comleted and failed) write to backend is discarded. 2014-03-19 14:36:47 +02:00
d6a9a5c1d0 MAX-10, Transaction support for MaxScale.
Naive implementation, which routes all statements to master between BEGIN|START TRANSACTION <options> and ROLLBACK|COMMIT
2014-03-18 23:41:32 +02:00
d7e9978ac1 Changed back the first part of gw_MySQLWrite_backend so that it is protected by dcb->authlock which must wait until authentication phase is complete. If authentication fails, the error is handled before next query starts its execution. 2014-03-18 17:00:43 +02:00
35c460457a Fixed compile error. 2014-03-18 11:21:51 +02:00
526762bcc7 Fixed reference to backend servers. 2014-03-18 10:54:19 +02:00
72a17e5fe2 Merging SESvars with develop. 2014-03-18 10:28:34 +02:00
c356b396a6 Merge branch 'SESvars' of https://github.com/skysql/MaxScale into SESvars
Conflicts:
	server/core/dcb.c
	server/core/poll.c
	server/modules/include/mysql_client_server_protocol.h
	server/modules/routing/readwritesplit/readwritesplit.c
2014-03-18 10:28:06 +02:00
67d9b3afb9 Fixed bug in how response messages from backends were handled. Now messages are examined if session command cursor is active
. That means that (at least) the first packet  in the message is response to session command. Then if the response is alread
y forwarded to client it is discarded. Otherwise it is routed to client and the command is marked as responded so that the o
ther backend knows to discard its duplicate response.
2014-03-17 22:26:32 +02:00
68e96fb0fc Unix domain socket support 2014-03-17 16:57:51 +01:00
ae2379be31 Server connection counter is updated in closeSession
Server connection counter is updated in closeSession
2014-03-17 11:26:35 +01:00
90f701be8e readwritesplit.c : router is changed so that it guarantees to keep the execution order of session commands and queries when they are routed to backend servers. In the same way it maintains the order of response packets and discards duplicate responses.
For each session command a sescmd property is created and added to the end of list of session commands. List is owned by router client session and it includes all session commands from the beginning of router session.
Router maintains an individual session command cursor for each backend. A cursor refers to the first session command which the corresponding backend server haven't yet responded yet.
When response message arrives at any time from backend, first it is checked whether backend's cursor is active. Cursor is active if a session command is routed to backend and the backend haven't responded to it yet. If cursor is active, next it is checked whether the current session command property has been responded by other backend. If both are true, then response message is sent to client as is. If session command response is routed to client already, the arrived response is discarded.
2014-03-16 19:43:49 +02:00
a3f7eebdc9 Extended session command support to cover COM_CHANGE_USER, and COM_INIT_DB.
This implementation doesn't guarantee execution order between session commands and queries
if other backend server lags behind in session command execution.

In poll.c : moved processing of EPOLLERR and EPOLLHUP after processing of EPOLLIN and EPOLLOUT.
This ensures that COM_QUIT messages are read and routed forward before signals arrive (from local client/backend).
2014-03-14 13:25:37 +02:00
cb6a976555 Router has now capability value which currently tells whether router session expects stream or individual, complete statements. With read con
nection router stream is used and with read/write split router individual statements are passed to router.
Added new function to ROUTER_OBJECT : uint8_t (*getCapabilities)(ROUTER *instance, void* router_session); which is implemented in every route
r.

Added support for multi-statement packets in rwsplit router. In other words, if network packet includes multiple mysql statements, they are separated and passed to router one by one.

Multi-packet statements (those which exceeds network packet boundaries) are _not_ supported yet.
2014-03-11 23:12:11 +02:00
9a11a3241b UNIX socket support
UNIX socket support
2014-03-11 13:00:34 +01:00
c28892323a Added support for session commands to readwrite split router.
Added support for multi-statement packets.

This is an intermediate commit to save work. Code is not cleaned and there are debug prints and prototypes to be removed.
2014-03-07 20:53:33 +02:00
4f60625a54 Server connection counter is updated in closeSession
Server connection counter is updated in closeSession
2014-03-06 08:45:51 +01:00
a2285e9e00 Compile errors fixed
Compile errors fixed
2014-02-28 12:56:09 +01:00
45543eceed Merge branch 'fix-127' into feature-MAX-2
Conflicts:
server/core/dbusers.c
server/core/service.c
server/core/users.c
server/include/dbusers.h
server/include/users.h
server/modules/protocol/mysql_client.c
server/modules/protocol/mysql_common.c
2014-02-28 12:28:14 +01:00
3e111534a1 Support for mysql session variable commands, for example, SET AUTOCOMMIT=0
Session commands are identified by query clasisfier, and added to the session command property list in router client session object.
Session commands are then executed in existing backend servers but only one of them will reply to client.
2014-02-26 20:07:09 +02:00
e8d68d7271 Added localhost check in gw_find_mysql_user_password_sha()
Added localhost check in gw_find_mysql_user_password_sha1().
The wilcard check is skipped if user@localhost failed
2014-02-17 10:17:22 +01:00
7ecea7ae7d set dcb->ipv4 for mysql user@host authentication
set dcb->ipv4 for mysql user@host authentication
2014-02-14 18:37:04 +01:00
9b6ad904f6 MySQL authentication with user@host, resolved compile errors
MySQL authentication with user@host, resolved compile errors
2014-02-14 17:27:17 +01:00