[erlang-questions] Re: Conceptual questions on key-value databases for RDBMs users
Wed Nov 10 02:20:38 CET 2010
On Wed, 10 Nov 2010 10:23:50 +1100, Richard O'Keefe <ok@REDACTED>
> If what you need is persistent storage for a single application,
> and you don't expect the data to outlive the application, a relational
> database probably is not for you.
It has taken me 12 years as an SQL-RDBMS user to realise that the problem
was I was using the wrong class of database the whole time! Silly, silly
me. Square peg, round hole. (actually I started suspecting this about 5
years ago.) I wonder how many more silly me's there are out there?
I think a major reason many assume the relational + sql solution as the
default answer is not because they need relational constraints per se, but
because they need complex querying for which it is assumed only SQL can
provide (and the best SQL dbs seem to be relational). My requirement list
was normally like this...
1. Persistent storage for my application that be _might_ later be shared
with other applications, but I'm free to dictate how.
2. Complex querying preferably with indexing.
3. Data unlikely to outlive my application (if it needs to, it can be
4. Data won't fit in RAM (without hogging too much of it).
5. (NEW) Data can be replicated.
For a long time I assumed only SQL-RDBMSs could give me these. I've found,
like many, that I was wrong. In retrospect, a lot of it was
do-as-others-do I guess. As you point out OO dbs could have given me many
of these. Some other alternatives were there too. I discovered Btrieve
about five years back and really liked it.
I think what the NoSQL/kv-dbs like Couch are adding to their older OO
counterparts is 1 (HTTP APIs for other apps), 2, & 5.
It's interesting too to observe the increasing popularity of
object-relational mapping layers for popular SQL-RDBMSs. Essentially
trying to turn RDBMSs into something closer to OO dbs. Funny that! Round
and round we go!
- Edmond -
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
More information about the erlang-questions