Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I am trying to build a 1TB database on MySQL which will need strong read performance. I intend to replicate my database to prevent downtime.

Do my database servers need load balancing to improve performance, or would a memcached setup be better?

What is the best failover solution for databases?

share|improve this question
1  
I don't know because I'm not a DBA, but it sounds like this depends entirely on the implementation of the database. –  dreamlax Sep 28 '12 at 8:52
2  
You'll need to be way more specific in your question. Answering broad questions / starting discussions is not what this site is for. If you have any very specific scenarios that you need advise for, please revise your question. –  Mark S. Rasmussen Sep 28 '12 at 9:31
    
i am sorry. i should have been more specific. my requirement is to support around 1 TB of database with best performance read performance. i would be using mySql and have been checking out multiple available systems like amazon and gogrid. which justs turn out to be too expensive. because the project although has potential growth but revenue model has not been decided. a dedicated setup will allow me to have more performance while keeping the costs down. –  Same Here Sep 28 '12 at 10:06
1  
Please can you edit that info into your question and focus on one answerable question at a time? –  Jack Douglas Sep 28 '12 at 10:21
1  
added some edits, but this is still somewhat vague and could use additional clarity. –  Chris Travers Oct 1 '12 at 9:05
show 1 more comment

1 Answer

If you want to have a solution for automated failover you could take a look at Galera replication with Galera load balancer up front of your servers. Galera will allow you to have a multi master cluster that uses the InnoDB storage engine. You can write and read to all servers. If you don’t want to use a load balancer you can make your database logic aware of multiple database servers and distribute load in the database abstraction logic.

Continuent also provide a really nice MySQL replication/clustering product (Tungsten), the basic software is free however the full clustering system costs money.

Memcached: You should always implement caching whenever possible and try to cache as much static or infrequently changing data as you can. This is another thing you can handle in your database abstraction logic.

Implementing a true multi master system using a software like Galera or Tungsten with Memcached can provide HA and speed if done correctly.

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.