Playing With CouchDB: First Impressions
About a week ago, Nat
posted Open
Source NG Databases on O’Reilly Radar. That caught my interest
because I’m playing with some “alternative” databases for some of our
data at Craigslist. Don’t get me wrong, MySQL is great. But MySQL
isn’t well suited to every use case out there either. (I’ll talk more
about
this at
the MySQL Conference.)
Meanwhile, I
left a
comment on that posting about CouchDB and have been playing with
it a bit more since then–mostly loading in test data, figuring out
the data footprint, performance, etc.
Overall, I’m impressed and encouraged. I agree with
what Ben
Bangert said. The simple API is great but the lack of a schema to
worry about really makes my life simple in this application. I don’t
have any initial plans for views, but writing them in Javascript is an
interesting idea. I can definitely appreciate the flexibility there.
And having good replication built-in solves one of my big needs.
I’m sure my thinking will have evolve after I’ve loaded a few
hundred million documents in, but so far I’m really liking it. The
CPAN modules
in Net::CouchDb
do a pretty good job and get you up and running quickly. I had a
knee-jerk response to tweak a few things there but quickly realize
that they’re far from being the bottleneck anyway.
It seems that without any tuning or fancy work, I can get about
75-100 inerts/sec on my desktop class Ubuntu box (Intel Core 2 Duo,
2.66GHz, 1GB RAM, single 80GB SATA disk). That’s not bad for
out-of-the-box performance. And doing the math on space used for a
document set (after compaction), I’m seeing roughly ~3KB/doc. That’s
a bit more than I expected but really not bad at all.
I wonder if there’s a future for gzip compression in CouchDB. Or
maybe we should just use ZFS…
(comments)
No Comments »
No comments yet.
RSS feed for comments on this post.
Leave a comment
You must be logged in to post a comment.
