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
|