Commit Graph

56 Commits

Author SHA1 Message Date
1fed465fdb MXS-2246 Remove duplicate info in SERVICE and Service
Both of them contained fields for the service and router names.
Now the names are in SERVICE and they must be accessed via member
function.
2019-02-14 15:24:10 +02:00
df17619722 MXS-2220 Move server_update_address inside class
Should be moved to internal class once blr is cleaned up.
2019-01-10 10:26:53 +02:00
5fc2c1f49c MXS-2220 Store server ports as integers and modify them in methods 2019-01-03 12:13:15 +02:00
0927a0b938 MXS-2197 Remove most includes of maxscale/log.hh
All cc-files should include maxscale/ccdefs.hh, which includes
maxscale/log.hh. Consequently it need not be included again.
2018-12-10 13:07:23 +02:00
c0c9a9858d MXS-2197 Rename maxscale/log.h to maxscale/log.hh
In files either include maxscale/log.hh or remove include entirelly
as maxscale/ccdefs.hh includes it.
2018-12-10 12:58:17 +02:00
1b5b789342 MXS-2208 Move trim-functions from maxscale to maxbase
log.h now includes string.hh, which is conceptually wrong, but
log.h will shortly disappear and be superceded by log.hh.
2018-12-10 12:50:07 +02:00
d96a7dedc5 MXS-2205 Convert maxscale/poll.h to .hh 2018-12-04 14:51:02 +02:00
ad12ff6d06 MXS-2196: Rename dcb.h to dcb.hh 2018-12-04 11:50:43 +02:00
39f668ff3c MXS-2196: Rename SERV_LISTENER to Listener 2018-12-04 11:39:52 +02:00
d9ae298102 MXS-2205 Combine maxscale/server.h with maxscale/server.hh
The server-struct is still used in several .h-files.
2018-12-03 16:47:27 +02:00
756593a718 MXS-2205 Combine maxscale/router.h with maxscale/router.hh 2018-12-03 15:28:06 +02:00
760f2ff34c Move alloc.cc to maxbase
Only renames the functions. Macro names are left as is to keep the diff
small.
2018-12-03 10:20:45 +02:00
77585bdb8c MXS-2197: Make config.h and service.h C++ headers
This is the first step into converting the other headers into C++.
2018-11-30 12:15:57 +02:00
8a0805d264 MXS-2090 Drop requirement that GTID based replication is used
Drop the requirement that GTID based replication is used for
the BinLog Galera "failover" mechanism. There is no reason for
that restriction; it works just as well with file+position based
replication.
2018-10-19 08:03:11 +03:00
661bdd5b82 Work around debug assertions in binlogrouter
The binlogrouter uses buffers across worker threads which is no longer OK
in 2.3. The correct solution would be to store data in something other
than a GWBUF (e.g. std::vector) and protect the sharing with a mutex. The
current solution simply works around the assertions by using macros
instead of functions.
2018-10-04 12:48:27 +03:00
9278da1f54 MXS-2067: Remove spinlock.h
Removed the spinlock.h header and replaced with plain pthread types and
functions.
2018-09-28 12:18:24 +03:00
25038432bb MXS-2047 Rename MARIADB_GTID_INFO::file -> binlog_name
That's how the concept is named elsewhere.
2018-09-25 10:08:30 +03:00
be4df2508f MXS-2047 Use same name for same concept
If a member variable in ROUTER_INSTANCE and ROUTER_SLAVE refer
to the same concept, the name used in both should be the same.
2018-09-25 10:07:11 +03:00
71ffef5708 Partially revert 4ba011266843857bbd3201e5b925a47e88e1808f
Add back leading operator enforcement.
2018-09-20 15:57:30 +03:00
4e41978069 Merge branch '2.2' into develop 2018-09-14 10:41:43 +03:00
d11c78ad80 Format all sources with Uncrustify
Formatted all sources and manually tuned some files to make the code look
neater.
2018-09-10 13:22:49 +03:00
c447e5cf15 Uncrustify maxscale
See script directory for method. The script to run in the top level
MaxScale directory is called maxscale-uncrustify.sh, which uses
another script, list-src, from the same directory (so you need to set
your PATH). The uncrustify version was 0.66.
2018-09-09 22:26:19 +03:00
a0ea37b2c5 MXS-2011 Fix documentation and comments
Fix documentation and comment based upon review comments.
2018-09-04 15:54:21 +03:00
65d355c7d7 MXS-2011 Enforce gtid based replication
If secondary masters are defined, MASTER_USE_GTID=Slave_pos must
be specified for the default master.

If MASTER_USE_GTID is specified, only Slave_pos is allowed as
value.
2018-09-04 15:54:21 +03:00
f5b73cf106 MXS-2011 Fix terminology and names
The variable storing the configuration index renamed from
'current_config' to 'config_index'.

In the code the same terminology is used as in the documentation.
"Default" is is used for referring to the default connections
(earlier "primary" was used) and the secondary connections are
referred to as "secondary" (earlier "alternative" was also used).
2018-09-04 15:54:21 +03:00
a70885a541 MXS-2011 Allow configurations to be modified
- When specifying a configuration, if it already exists use
  the existing configuration as the default, thus allowing you
  to change only a specific configuration value.
- When specifying a new alternative configuration, use the
  primary (aka first) configuration as the base.
- If MASTER_HOST is changed on the primary (first, nameless)
  configuration, then all configurations are erased.
- At "SLAVE START", always start from the first configuration.
2018-09-04 15:54:21 +03:00
d293424f11 MXS-2011 Stop passing around unneeded arguments 2018-09-04 15:54:21 +03:00
9c06a60b48 MXS-2011 Immediately validate the connection name
And convert it to an index. This is subsequently needed when
connections configs can be updated and not just added.
2018-09-04 15:54:21 +03:00
76fbe72454 MXS-2011 Fix rebase bug 2018-09-04 15:54:21 +03:00
dec81594c1 MXS-2011 Assert that configurations are identical
At save time, assert that the configuration as dispersed around
blr and as stored in the config object are identical.

Later its the state from the config object that will be saved.
2018-09-04 15:54:21 +03:00
0c3fcfe302 MXS-2011 Allow alternative connections to be specified
Alternative masters can now be specified like

  CHANGE MASTER TO ...
  CHANGE MASTER ":2" TO ...
  CHANGE MASTER ":3" TO ...

Now only the data is stored, but it is neither used nor
saved.
2018-09-04 15:54:21 +03:00
a43f2ce8fb MXS-2011 Store current CHANGE MASTER config in router 2018-09-04 15:54:21 +03:00
d036668ffa MXS-2011 Rename blr.h to blr.hh
Now contains C++ elements.
2018-09-04 15:54:21 +03:00
ce18d13133 MXS-2011 Pick out the connection name if it is provided
Yet not used for anything.
2018-09-04 15:54:21 +03:00
8f1d807f1b MXS-2011 Remove "CHANGE MASTER" when testing
The blr_handle_change_master() will receive the string without
"CHANGE MASTER" when running BLR.
2018-09-04 15:54:21 +03:00
1aad1ae7d7 MXS-2011 Introduce blr_apply_change_master()
This function applies a change master config. Currently is
used from blr_handle_change_master(), and subsequently will
be used when BLR switches to an alternative master.
2018-09-04 15:54:21 +03:00
8f26e3cbaf MXS-2011 Take ChangeMasterConfig into use 2018-09-04 15:54:21 +03:00
2ba0b4dda9 MXS-2011 Declare variables at the point where they are needed
Also change explicit allocation into vector.
2018-09-04 15:54:21 +03:00
883a3a6fe1 MXS-2010 Introduce ChangeMasterConfig
This type will be used for storing the configuration
specified with CHANGE MASTER at a point where it has been
verified, to the extent possible, that the provided options
are valid.
2018-09-04 15:54:21 +03:00
adb7bb8e8a MXS-2011 Lock router only when needed 2018-09-04 15:54:21 +03:00
0e1d2ec1ec MXS-2011 First check, then change
By slightly re-arranging things, we do not need to revert
the situation if some parameters are not acceptable, but
can simply return.
2018-09-04 15:54:21 +03:00
41e467d543 MXS-2011 Rename types
In order to make it visible that the types contain C++
members, the following types were renamed:

CHANGE_MASTER_OPTIONS -> ChangeMasterOptions
MASTER_SERVER_CNF -> MasterServerConfig

Functions where also changed to take const refs were appropriate.
2018-09-04 15:54:21 +03:00
1d059f26eb MXS-2011 Use std::string in MASTER_SERVER_CFG
Makes things simpler if you do not need to worry about string
lifetime management.
2018-09-04 15:54:21 +03:00
0c59516e24 MXS-2011 Do not "free" CONFIG_MASTER_OPTIONS
Its members are std::string, so they do not need to be
explicitly freed.
2018-09-04 15:54:21 +03:00
e85c4387c7 MXS-2011 Store CHANGE MASTER options as std::strings
In order support the possiblity for having multiple alternative
masters for the binlog server, we need to have multiple configs
around.

Originally the config values were stored as 'char *':s, which
would have made the lifetime management of the strings laborious
and error prone.

Now, the options are stored as std::string:s, which makes the
lifetime management a non-issue.
2018-09-04 15:54:21 +03:00
51fffedf7d MXS-2011 Assume argument values have been dequoted
Functions setting particular values no longer de-quote strings,
but assume the de-quoting already has been made.
2018-09-04 15:54:21 +03:00
f946272af1 MXS-2011 Immediately de-quote strings
When receiving a command, such as

    CHANGE MASTER TO MASTER_HOST = '127.0.0.1' ...

when the value is extracted, the quotes are removed before the value
is returned.

Firstly, BLR does not anyway anywhere enforce that quotes are present
where they should be and, secondly, BLR currently does de-quoting all
over the place and with this change, all those places can be simplified.
2018-09-04 15:54:21 +03:00
a13e95951b Merge branch '2.2' into develop 2018-08-30 11:37:49 +03:00
3f53eddbde MXS-2020 Replace ss[_info]_dassert with mxb_assert[_message] 2018-08-22 11:34:59 +03:00
cf0aeed516 MXS-2014 Rename log_manager.h to log.h
There's nothing resembling a manager anymore.
2018-08-17 10:59:37 +03:00