Registered: Apr, 2007
Re: Databases are only for mid-sized apps
Posted: Apr 30, 2007 9:32 AM
> > I think it's harder to design
> > than the standard ACID approach, or a least less well
> > known.
> Sure it is. ACID is conceptually easy. It is a nice
> model. But the usual implementation isn't efficient
> enough for really high volumes.
> You should work there for awhile. I did for 2.5 years and
> it smashed a bunch of previously held prejudices I had
> about how to build scalable apps. Amazon started out as a
> conventional database centric app. A lot of the
> architecture evolved to work around the lack of
> scalability in the database. That limit was reached many
> years ago and new models have been developed to cope with
> their admittedly unique demands.
> These days the mantra is: Scalability, Availability,
> Consistency - pick two. Conventional ACID emphasizes the
> latter two while saying nothing at all about scalability -
> which pretty well guarantees you're not going to get it.
Agree that ACID is less complex but limiting in a bunch of apps than more scale-friendly approaches (caching, shards, etc.). "Consistent eventually" is sufficient in even many financial systems, as long as it is dependably true.
I think there are two bigger problems when you let go of the comfort of the traditional rdbms - 1) impact on operations when you actually deploy of all the additional moving parts and 2) impact on the app developer of the additional complexity.
In http://www.appistry.com/blogs/bob/architecture/scaling-digg-shards-and-the-db/ I start to contemplate that point and make the case for ways to help with those two problems / opportunities.