6 messages in com.mysql.lists.clusterRe: questions about ndb| From | Sent On | Attachments |
|---|---|---|
| joseph kacmarcik | 29 Jun 2005 11:41 | |
| Jonathan Miller | 29 Jun 2005 13:09 | |
| Jonathan Miller | 29 Jun 2005 13:45 | |
| Stewart Smith | 29 Jun 2005 22:08 | |
| Simon Garner | 29 Jun 2005 22:23 | |
| Simon Garner | 29 Jun 2005 22:29 |
| Subject: | Re: questions about ndb![]() |
|---|---|
| From: | Stewart Smith (stew...@mysql.com) |
| Date: | 06/29/2005 10:08:20 PM |
| List: | com.mysql.lists.cluster |
On Wed, 2005-06-29 at 11:41 -0700, joseph kacmarcik wrote:
i have a few questions about NDB, which i'm unable to find definitive answers on in the list archives, and other places.
Well, it's always good to hear people looking before asking! I now feel better about the human race :)
1) the way i understand NDB is that, to an sql nodes, it's just another engine (like innodb or myisam). is it supported to have an sql node act as a master for n slaves, and have ndb tables in the same replicated db? the ndb tables would not be replicated, but the slaves would have the ndb engine, and therefore should be able to act as replicating slaves, as well as sql nodes for the ndb cluster. i'll have a database named 'tables' with myisam tables (replicated), and ndb tables (not replicated). i want to use the same database name.
As Jonathan has said, this can be done easily.
2) the way i understand the sql node concept is that read queries are executed on the machine the query is directed to, and not on the storage nodes or management node. i could have a series of sql nodes behind a load-balancer, and throw read queries at the LB, not caring where they go.
the mysqld nodes will, however, ask the storage nodes for the data. Depending on your query, indexes (and indeed, version of mysql), this may require various amounts of CPU power and network bandwidth on the side of the storage nodes.
Having the sql nodes behind a load-balancer is *exactly* how cluster is designed to work.
2b) i've read of slow read query performance, but wouldn't this be alleviated by a fast sql node (or optimized query or adding an index, etc)?
It largely depends on your queries. Also, remember that cluster is best in parallel and while a single query will be slower than with MyISAM, it should be a different story when running 1000 (or more) of them at the same time (depending on system configuration etc).
Having multiple mysqlds will, of course, help with that.
3) with today's fast ram, is the current bottleneck for fast writes the network connections over which the sql node(s) is connected to the storage nodes? ie: i can write much faster to a ramdisk than i can to a ramdisk over Gbit ethernet.
There are configuration parameters for ndb that you can tweak to get lower latency on queries, however, this means we'll be sending a lot of smaller packets over the network (as opposed to fewer larger ones).
Again, the strength of NDB here is parallelism. Many inserts going on at once (across several mysqld) is going to look a lot better.
4) is downtime required to expand the ndb storage size? is it as simple as adding storage nodes, modifying the DataMemory (and IndexMemory), adding [NDBD] entries and restarting the management node? i'll always have backups, but are there risks in taking down the management node while sql nodes are accepting queries?
You cannot (currently) add nodes to a cluster.
The way you currently do it is to start up a new cluster (with your desired number of nodes) and restore from backup.
The good news is that ndb_backup and ndb_restore make this relatively easy.
You are, of course, welcome to sponsor the development of online add node to make it happen sooner :)
5) is it supported to do join queries of ndb tables and myisam or innodb tables?
yes, Jonathan showed an example in his previous mail.
-- Stewart Smith, Software Engineer MySQL AB, www.mysql.com Office: +14082136540 Ext: 6616 VoIP: 66...@sip.us.mysql.com Mobile: +61 4 3 8844 332
Jumpstart your cluster: http://www.mysql.com/consulting/packaged/cluster.html




