15 messages in com.mysql.lists.clusterRe: max database size is limited to R...
FromSent OnAttachments
Casto, Robert31 Oct 2005 12:03 
Claudio Aracena C31 Oct 2005 12:25 
Stewart Smith31 Oct 2005 18:16 
Stewart Smith31 Oct 2005 18:19 
Jimmy Brake01 Nov 2005 11:14 
Simon Garner01 Nov 2005 15:03 
Stewart Smith01 Nov 2005 18:26 
Frank Cases02 Nov 2005 09:32 
pek...@mysql.com02 Nov 2005 10:20 
Kris Buytaert04 Jan 2006 08:41 
Mikael Ronström20 Feb 2006 07:47 
Mikael Ronström20 Feb 2006 11:18 
Kris Buytaert20 Feb 2006 11:24 
Mikael Ronström20 Feb 2006 11:31 
Adam Dixon20 Feb 2006 14:37 
Subject:Re: max database size is limited to RAM size in cluster???
From:Simon Garner (sgar@expio.co.nz)
Date:11/01/2005 03:03:04 PM
List:com.mysql.lists.cluster

On 2/11/2005 8:14 a.m., Jimmy Brake wrote:

Hi!

If I am understanding you correctly concerning spreading ram across multiple machines then this scenario would work.

I have 10 small servers each with 512 megabytes of RAM. I have one database that is 4 gigabytes in size. So in theory the mysql cluster will be able to load this database in RAM. When I run out of ram I can add another node or add more ram to a node or nodes?

Yes, although in that scenario (10 x 512MB = 5120MB, with a 4000MB database) you would only be able to have one "Replica" - meaning each server stores a tenth of the database and you have no redundancy, so if one server crashes the cluster goes down. If you upgraded the RAM in the servers so they had 1GB each then you could set NoOfReplicas=2, meaning each server stores a fifth of the database and you could lose between 1 and 5 servers (depending on which servers you lose) without affecting cluster operation.

Think of it this way:

A B C D E X: 1 2 3 4 5 Y: 6 7 8 9 10

The numbers 1 through 10 are your storage nodes. "X" and "Y" are your replicas. "A" through "E" are the segments of the database stored on each node.

You can lose one node from each segment. So you could lose all of the nodes 1, 2, 3, 4 and 5 without the cluster failing, as long as 6, 7, 8, 9 and 10 are still there - as they store a copy of the data in the other nodes. You could not however lose both nodes 1 and 6 as then segment "A" would be lost (ditto 2&7, 3&8, 4&9 or 5&10). Thus you can lose a minimum of 1 server and a maximum of 5 servers.

If you set NoOfReplicas=1 then it looks like this:

A B C D E F G H I J X: 1 2 3 4 5 6 7 8 9 10

If you lose any of the nodes then a segment is lost and the cluster fails.

Or in other words, the minimum servers you can lose is equal to (NoOfReplicas - 1) and the maximum servers you can lose is equal to (the_number_of_nodes / NoOfReplicas).

-Simon