Since last 2 year, we were using NDB Cluster for live database of our app, which is now have size of 7-10 GB, running on 6 Dedicated servers (6 data node, 2 api node, 1 mgm node) to have get maximun throughput with the single replica and multi threaded data nodes.
We are facing following problems.
- ALTER tables
We can't alter tables on live database,
algorithm=inplace don't work in ndb for alters.
Thus for these operations we must stop application. what could be possible solution for this because development is life time & ongoing, and looking for long-term solution so without app downtime we can perform some operations.
i know pt-online-schema-change and some other tools but they don't work with ndb.
When data size increases we can add node using rolling restart, but even after adding node, we'll need to reorganize partition to make data equal on all data node, which causes table lock for long hours.
Is using multiple single threaded NDB is better or multi-threaded NDBMTD
Is it possible for muliple replica system and have online alters without downtime?
What could be the solution of above two problems we are facing?
or can you guide what should be the architecture for High Avaialibity, Max Throughput and some times online Maintenance with lesser downtime.