Published: Sun 10 July 2011
In Tech .
tags: europython python scaling
Link: Talk description and
video
This talk was about non-relational databases. I didn't take a lot of
notes :o) The most important morale is probably: don't keep the mind
altering substances and the tools in the same shed.
With 2 decades of relational databases, they are pretty robust by now.
They cover different spectrum of ACID compliance ; for instance MySQL is
faster, Postgres is more reliable (though becoming faster... if you tick
off the reliability options!). Relational databases are supposed to be
normalised, except they are not really: there is also a spectrum here as
databases tend to get denormalised for performance reasons.
Amazon uses an "eventually consistent" system, which they can pull off
by charging at shipping time only. Conflicts are rare, if 2 orders are
placed and there is only 1 item available, someone might get a gift
certificate instead.
The NoSQL taxonomy includes wildly different tools that don't have much
in common except for the fact that they don't use SQL: key-value stores,
document stores, ....
CAP : Consistency,
Availability, Partition tolerance. You can have 1 or 2, not all 3.
(Brewer's Theorem)
There was only 1 Postgres database for all of SourceForge for a long
time, while they were in the top 100 sites. Don't obsess about scale
you'll never achieve.
One of the question was about how difficult it is to convert from a
relational database to NoSQL. The answer is, from something like
Postgres to MongoDB, it wouldn't be that much work (he did suggest 4
people 6 weeks though, which doesn't sound that trivial to me). Changing
to Cassandra on the other hand would be a huge effort.