Specialised MySQL Servers#
When configuring a cluster it is useful to have a set of specialised MySQL Servers. The first is a specialised MySQL Server for metadata operations. Most of the operations in RonDB are possible to perform as online operations such adding a column, adding nodes to the cluster, reorganising data partitions for a table, adding and dropping indexes and tables.
The MySQL Server code is not designed for truly online operations. This means that when performing an ALTER TABLE on a table, the table is read only in the MySQL Server performing the ALTER TABLE operation while the table can be both read and written in all other MySQL Servers and API nodes.
Thus it makes sense to use a specialised MySQL Server for metadata operations. For high availability it makes sense to have two of those in different machines.
The next is Global Replication. Normally the binlog records are generated in the MySQL Server from where the update operation was issued. This is not the case for RonDB. In RonDB the operations are executed in the data nodes and after that a change log is shipped to the MySQL Server that has defined replication to be set up.
In almost all cases it is desirable to have at least two MySQL Servers used for replication to make sure we can handle failover to another MySQL Replication server in cases of node failures.
When metadata operations are performed in a MySQL Server the binlog of those events are shipped in a special manner between the MySQL Servers. We support sharing the binlogging MySQL Server and the MySQL Server performing the metadata operation.
The recommended minimum configuration for RonDB is to have two data nodes on separate machines, two MySQL Servers on two different machines (could be the same as the data node machines) and two RonDB management servers, all on different machines. In addition a few API node slots should be configured to enable the various RonDB tools to also access the cluster concurrently with the MySQL Servers.
The MySQL Servers used for metadata operations and replication will use very little memory and CPU resources, it will not be any issue in having those colocated on the same machine with a MySQL Server used for normal query processing.
This type of configuration avoids many hickups that could otherwise happen in combination with meta data changes.
For bigger clusters it is not necessary to add any more specialised MySQL Servers nor any more RonDB management servers, it is enough to add new servers with data nodes and MySQL Servers used for query services.