This document describes issues you may encounter when using the Multi-master Cluster (Limitless) Edition and provides solutions.
How do I add more read/write nodes to a Multi-master Cluster (Limitless) Edition?
A new Multi-master Cluster (Limitless) Edition includes only two read/write nodes. You can add more read/write nodes after the cluster is created. For more information, see Add or remove nodes.
Why are the connections to an RW node high even when it has a low workload?
When a connection is established to a Multi-master Cluster (Limitless) Edition using the cluster endpoint, the database proxy connects to each RW node. As a result, the number of connections is the same on every RW node. You can enable the thread pool feature to prevent a high number of connections from consuming significant database resources.
After I start using a Multi-master Cluster (Limitless) Edition, can I access data from a single database or object on any read/write node?
No, you cannot. Data within a single database or data object can be accessed on only one node at a time. However, you can use a command to dynamically switch the endpoint when needed.
When should I use database-level isolation versus object-level isolation?
You can use database-level isolation if your services are isolated by database or schema and there are few cross-database queries or updates. This is the default method. It simplifies management when you need to switch endpoints. You can use object-level isolation if your services use only a few databases and features are isolated at the table level. This method requires minimal changes to your application and provides flexible management. However, switching endpoints is more complex because you must manually switch each object within the database.
Do I need to change my application code to use a Multi-master Cluster (Limitless) Edition?
No, you do not. Although a Multi-master Cluster (Limitless) Edition has multiple read/write nodes on the backend, your application does not need to know which node hosts the endpoint for a specific database or data object. The proxy layer automatically forwards requests to the correct node.
Can I modify two databases or data objects in a single transaction if their endpoints are on different nodes?
No, you cannot. All databases or data objects modified within a single transaction must be on the same node.
Solution: You can use a multi-master sharded table instead of performing related modifications across different nodes. A multi-master sharded table automatically distributes data across multiple sharded databases based on sharding rules. This enables read/write operations on each node and provides distributed processing capabilities.
Can I perform a cross-node query if the endpoints for two databases or data objects are on different nodes?
Yes, you can. You can purchase a global read-only node. A global read-only node lets you perform queries that span across endpoints.
Why does an ALTER statement to switch an endpoint not return promptly?
This can happen for two main reasons. First, if you are switching a database endpoint and the database contains many objects, the switch may be slow. Second, high Data Manipulation Language (DML) pressure, especially write pressure, on the database or data object during the switch can also slow it down. To avoid this issue, switch endpoints during off-peak hours.
How do I view metadata?
You can still view metadata using the tables in the information_schema database. However, you must distinguish between tables that contain information for the entire cluster and tables that contain information for the specific node that executes the SQL statement. For example, the information_schema.tables table contains cluster-wide information, while the information_schema.innodb_tables table contains information for a single node.
How do I add hot standby storage nodes?
You can purchase hot standby storage nodes in the console. By default, hot standby storage nodes are deployed in a different zone from other nodes and have independent compute and storage resources.
A Multi-master Cluster (Limitless) Edition has many write nodes. How can I subscribe to binlogs for a downstream application?
You can enable binlogs for the cluster. The downstream application can then subscribe directly using the cluster endpoint. The Multi-master Cluster (Limitless) Edition automatically sorts the logs and provides a single, coherent binlog stream for the downstream application.
What should I do before I delete a read/write node?
Before you delete a read/write node, you must migrate the endpoints of all databases on the node to other available read/write nodes. This is a required step. Otherwise, these databases become inaccessible. For more information, see Delete a node. You can delete the node only after the database migration is complete.
A Multi-master Cluster (Limitless) Edition must have at least two read/write nodes. Therefore, you cannot delete a read/write node if the cluster has only two read/write nodes.
I accidentally deleted a read/write node and now my database is inaccessible. How can I recover it?
If you delete a read/write node without first migrating its database endpoints, the associated databases may become inaccessible. To recover access, you can assign a new read/write node to these databases by running the following SQL statement:
ALTER DATABASE <name> POLARDB_WRITE_NODE <new_master_id>;This command reassigns the endpoint of the inaccessible database to an active read/write node to restore access. For more information, see Instructions.