Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.
  1. I am thinking about using MySQL cluster, but I am curious if it supports big databases - around 50-60GB or what is the limit (mainly Radius telco accounting are stored).
  2. What would be architecture then (RAM and servers count) ?

Thank you.

share|improve this question
add comment

2 Answers

up vote 0 down vote accepted

It used to be that your database had to fit in memory to use MySQL cluster. I believe it is now the case that your indexes have to fit in memory, but data can be disk bound. If you have enough memory in your servers (64gb is quite possible), then you're set.

MySQL cluster is a bit of a niche case, and I think in most instances, better solutions exist to problems. If you give me more detail, I'll reply in-kind.


reply to first comment The cluster is a niche thing because of those memory limitations. Often in cases where redundancy is needed for something large, speed isn't. The cluster hardware requirements are vastly overkill for handling 5,500 RADIUS row insertions per day. I would suggest that you use shard your setup. Use the cluster for current entries, and then copy them to a regular server that has normal backup and offline / service times for handling historical data. That will provide you the stability of the cluster, strongly assuring that you won't lose any data or suffer downtime.

share|improve this answer
    
I need simple redundancy, database is 40gb big. 100 tables max. 2milions rows per year, Radius accounting stored. I do not want to change mysql engine... why do you think that mysql cluster is a niche case ? –  John Dec 28 '10 at 16:24
    
See reply in edit (it was too many characters) –  Jeff Ferland Dec 28 '10 at 18:55
add comment

A single mysql server can handle 50-60GB of data. It really depends on your database setup and how complex your queries might be.

I mean you can make mysql fly by writing a app that does no joins.. or you can make it crawl by doing very complex queries.

I'd go with a cluster if you want easy redundancy first of all.

Edit for cluster ram math

Use the following formula to work out the amount of RAM that you need on each storage node:

(Size of database * NumberofReplicas * 1.1) / Number of storage nodes

NumberofReplicas is set to two by default. You can change it in config.ini if you want. So for example to run a 4GB database over two servers with NumbeOfReplicas set to two you need 4.4 GB of RAM on each storage node. For the SQL nodes and managment nodes you dont need much RAM at all. To run a 4GB database over 4 servers with NumberOfReplicas set to two you would need 2.2GB per node.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.