views:

21

answers:

1

Hi folks,

one question about NDBCLUSTER.

I inherited the writing of a web site basing on NDBCLUSTER 5.1 solution (LAMP platform).

Unfortunately, who designed the former solution didn't realize that this database engine has strong limits. One, the maximum number of fields a table can have is 128. The former programmer conceived tables with 369 fields in a single row, one for each day of the year plus some key field (he originally worked with MyISAM engine). Ok it must be refactored, anyways, I know.

What is more, the engine needs a lot of tuning: maximum number of attributes for a table (which defaults to 1000, a bit too few) and many other parameters, the misinterpretation or underestimation of which can lead to serious problems once you're in production with your database and you're forced to change something.

Even the fact that disk storage for NDBCLUSTER tables is kind of aleatory if not precisely configured: even if specified in CREATE TABLE statements, the engine seems to prefer keeping data in memory - which explains the speed - but can be a pain if your table on node 1 should suddenly collapse (as it did during testing). All table data lost on all nodes and table corrupted after 1000 records only.

We were on a server with 8Gb RAM, and the table had just 27 fields.

Please note that no ndb_mgm operation for nodes shutdown ran to compromise table data. It simply fell down, full stop. Our provider didn't understand why.

So the question is: would you recommend NDBCLUSTER as a stable solution for a large scale web service database?

We're talking about a database which should contain several millions of records, thousands of tables and thousands of catalogues.

If not that which database would you recommend as the best to accomplish the task of making a nation-level scale web service.

Thanks in advance.

+1  A: 

I have a terrible experience with NDBCLUSTER. It's good replacement for memcached with range invalidation, nothing more. The stability and configurability does not exist for this solution. You can not force all processes to listen on specific ports, backup was working but I have to edit bkp files in vim to restore database etc..

iddqd
Terrible, indeed. Thank you.
Scarlet