List Info

Thread: cluster scaling & performance questiosn




cluster scaling & performance questiosn
user name
2007-10-23 11:20:51
I posted this a version of this on my blog but haven't
gotten nearly the 
responses I had hoped.  Hoping someone here can help me
instead.

I’ve been trying to figure out if a MySQL Cluster would make
sense in 
our environment and if it’s worth the complexity. I think so
but I can’t 
find enough information online to answer some nagging
questions.

Mozilla has several "pairs" of servers
(master/slave, sometimes slaves). 
  It's a balancing act to move databases around when a pair
gets 
hammered which usually involves some sort of downtime but
less so then 
when we determine we need to add another slave.

What I want is to be able to throw more machines into a
cluster to 
increase I/O, CPU or number of client connections &
queries I can handle 
without a lot of effort. On paper, MySQL Cluster looks like
it’ll do 
that but I’m left with a bunch of questions:

    1. What do I do if disk I/O is my contention? CPU?
    2. If I need more capacity on my read-write heads, do I
just add 
more SQL nodes? Do my apps just need to know of multiple
heads?
    3. How are simultaneous database writes
(updates/inserts) handled? 
Will I run into locking issues?
    4. How critical is the management node? If it stops
running, what 
breaks?

I’m hoping someone out there’s been through these issues and
can point 
me in the right directions.


-- 
matthew zeier | Network Engineer | Mozilla Corp. |
(650)903-0800 x219


-- 
MySQL Cluster Mailing List
For list archives: http://lists.mysql.com
/cluster
To unsubscribe:    http://list
s.mysql.com/cluster?unsub=bondyahoo.com


Re: cluster scaling & performance questiosn
country flaguser name
Germany
2007-10-24 02:15:00
    1. What do I do if disk I/O is my contention? CPU?

Adding more nodes could do the trick in both cases. When you
add data 
nodes, you can either increase the number of replicas
(better HA) or add 
the number of node groups. If you increase the number of
node groups, full 
table scans will be distributed over nodes, making it
faster. However, 
simple queries (e.g. using primary key) will be slower as
you will more 
often ask the wrong node group for the data.

    2. If I need more capacity on my read-write heads, do I
just add 
more SQL nodes? Do my apps just need to know of multiple
heads?

I would say yes in most cases, until the data nodes are too
loaded.

    3. How are simultaneous database writes
(updates/inserts) handled? 
Will I run into locking issues?

You may run into locking issues if you have a lot of
concurrent writes, as 
you would do with any multi-master synchronous replication,
or even shared 
disk (Oracle RAC, PGCluster, PGCluster-II ...). Just think
about your 
application. Does it often modify the same rows ? Does it
only write new 
rows ? Does it mostly read ?

    4. How critical is the management node? If it stops
running, what 
breaks?

The management node is necessary to start or stop nodes.
It's also 
necessary if exactly half of the nodes remains (if you have
a cluster with 
even number of nodes) to keep the cluster running (to avoid
split brain, 
ie having two copies of the database evolving separately).
If it stops 
running, it's not a problem as long as you have more than
half of data 
nodes and at least one replica of each fragment.

Regards,
Colin
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )