- Providing a mysql proxy (better than mysql-proxy) which is
You may find this useful…
- Providing a mysql proxy (better than mysql-proxy) which is
You may find this useful…
Advice from smart and well-intentioned people notwithstanding, I firmly
believe you should think about scale early and often. Google thought
about
scale early - their very name is scale.
My deep concern is that those who work on improving the Ruby on Rails
framework may have this “worry about scale later” mentality. I’m
concerned
that many of the programming paradigms in Rails lead to unscalable
practices
like “transparent” joins that novice programmers won’t know to avoid
(e.g.
image.user.comments.categories - in views no less). It would be very
helpful if RoR actually solved some of the tough scale issues by, for
example:
m
On Feb 11, 2008 2:30 AM, Lionel B. [email protected]
Marc B. wrote:
Advice from smart and well-intentioned people notwithstanding, I
firmly believe you should think about scale early and often. Google
thought about scale early - their very name is scale.My deep concern is that those who work on improving the Ruby on Rails
framework may have this “worry about scale later” mentality. I’m
concerned that many of the programming paradigms in Rails lead to
unscalable practices like “transparent” joins that novice programmers
won’t know to avoid (e.g. image.user.comments.categories - in views no
less).
I’m quite sure Google architects knew these pitfalls and worked out by
themselves how to avoid them… As they simply coded their own
framework (and probably several times along their path).
If you really believe you can throw a “scaling” framework into the hands
of “novice programmers” and expect them to code something that scales
anything like the Google underlying architecture, just wait a minute,
I’ll fetch a good seat and popcorn to watch the show. I’m sure I’ll find
it either quite instructive or good laughing material 
Good luck,
Lionel
My experience taught me to think about it often, but code for it only
when needed.
Just build it sounds cool to some and stupid to others, but it does
works.
Until you have real people smashing around in your carefully crafted
application, you will never know where and more importantly when to
address scaling.
You can assume it is in location X, Y, or Z, but who knew users of the
application would be clicking on A, B, C like hamsters on a treadmill.
When I started with Rails, it was only a few weeks after David and
37Signals released it to the world. At the time my application ran
under Apache, FastCGI and MySQL. That was the entire technology chain
using 1 web server and 1 database server.
Today, the very same application runs on 5 servers, using MySQL,
Nginx, Mongrel, Amazon S3, a dedicated email platform and numerous
back processing scripts on dedicated servers.
Some of my scaling challenges:
After several years of real world use by customers, I now have enough
experience to see some issues down the road.
Rails can and will scale if you think of it as only one part of the
solution.
If you think every tool needed is in the framework itself, your
application will not scale.
–
Lon
I guess the main difference between mysql-proxy and things like this and
acts_as_readonlyable is that mysql-proxy acts at the mysql layer. You
can
connect to mysql-proxy from the command line just as if it were a mysql
server. It allows you to say things like “if it’s an INSERT or UPDATE
and
the table is users, then use this db” - thus it hides those details from
the
RoR code, which may be kept clean, simple, and flexible if/when you need
to
add a slave, move a master, etc.
My only real problem with mysql-proxy is lua - what’s up with that? ;^)
Just my $0.02,
m
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs