Forum: Ruby on Rails Simple solution to the 'twitter' scaling problem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
chris hulbert (Guest)
on 2007-04-17 09:58
By now i'm sure we've all read the comments bouncing around in blogs
about the twitter scaling problem: namely they were worried about how to
use rails against multiple cloned database backends.

Well, whats wrong with having a pair (or more) of cloned database hosts,
and editing the tcpip 'hosts' file on your different rails servers so
that half your rails servers are pointing at one database, and half are
pointing at the other?

Wouldn't that be pretty simple and do the job? Or am i missing
something?
Rob S. (Guest)
on 2007-04-17 11:02
(Received via mailing list)
On 4/17/07, chris hulbert <removed_email_address@domain.invalid> wrote:
> Wouldn't that be pretty simple and do the job? Or am i missing
> something?

You couldn't do this, because you would get ID conflicts from
auto-increment.  Two inserts on the same table on each DB would
conflict.

However, there are facilities for multi-master replication in some
databases, such as Mysql 5 [1]  You need to have some sort of code to
handle connections, at least to watch for dead servers and failover.
Also, you'd want to designate some read-only servers pretty early on
because writing across many masters would get expensive quickly.  So
then you are back to square one, as need to handle writing to certain
databases and reading from others.  Nic's plugin would handle that, I
believe.

In other words, scaling can start simple but it gets complicated quick
:).

1 -
http://www.onlamp.com/pub/a/onlamp/2006/04/20/adva...

- Rob
chris hulbert (Guest)
on 2007-04-18 02:50
I think you got it right here:

Rob S. wrote:
> because writing across many masters would get expensive quickly.
This topic is locked and can not be replied to.