MySQL Clusters are so awesome they can be the biggest PITA.

So for those that don’t have me added on facebook, you didn’t know, one of our big projects at work has been to get a MySQL Cluster online and functional.

This is big for a whole host of reasons, the biggest is that our Hosted VoIP Phone solution has been taking off, what this entails is more servers, with more backend databases needed.

We have been noticing that our current solution, for our web and our phones have been hitting a peak of usefulness, so we thought, Let’s Cluster it!

After a failed setup by another co worker (not his fault 100%, he has many many things to do, and no time to do them in..), I took control, reinstalled Debian Wheezy on a Dell R410 and Dell R420, both with 32GB of RAM (we are working on getting them boosted to 64GB, for MOAR POWA!).

I spent 6 hours last week Wednesday, into the evening, getting the cluster configured and talking between all nodes. The setup consisted of two Management nodes, two NDB nodes and two mysqld nodes. This setup gives the ultimate level of redundancy (imo), and makes it easy to scale with new Data nodes without the worry of having to deploy new mysqld/Management servers to handle load.

So.. tl;dr, we had one of our development days today, I spent the durration of the day, making sure that both systems were setup in the even of a reboot that they would join back up and have no issues, along with making sure I could do rolling updates without so much as a peep from any active clients to the servers.

Once I had those down pat and Documented I proceeded to move our Cacti install’s database over to the cluster, I figured if anything could be moved, this could.

Due to the nature of the NDBd, I imported all of the tables into the database as their MyISAM engine structures, then I proceeded to change the engine’s over to NDBCLUSTER.

The process was all unicorns and ponies until I hit the last two of the tables, I would get an error about a #xx-XXx-xx table being full, wtf right? So after searching.. and Searching.. and Searching.. I only found instances where people would say that their Data settings were too low.. However, with my install, that was not the case, I had tuned the servers to use 22GB of RAM for the NDBd, so that we could chuck any and all data into memory and go nuts.

Digging some more I found that I could create new tables, assign columns and data, but if a table had existing structure, like in the Invision Power Board I was testing a migration for, nope, it wouldn’t have it. I constantly would get errors for the table being full, yet we only had 6MB of data being stored in RAM.. -_-

So.. in frustration I ended up posting on the MySQL Cluster forums so if you or anyone knows the answer to my quandary, PLEASE LET ME KNOW.. I have a few ideas, but i’m running out of patients with this thing..

If/When I find the answer, i’ll post up a new entry letting the world know what I found, since i’m the only one to have this issue..