Thursday, August 04
CouchDB Enlightenment
Doh.
When I last looked at CouchDB, I somehow completely missed the point of views. They're not a query mechanism, they're an index definition mechanism.*
If they were a query mechanism, they'd suck. As an index definition mechanism, though, they do exactly - exactly - what I've been looking for: They look into the record structure and generate appropriate index entries based on any criteria I can think of. Thus, my need for a compound index on an array and a timestamp is trivially easy to implement.
Just how good CouchDB is beyond that feature I don't know yet, but I'm sure going to find out.
Couple of other points: The last time I was looking I was dubious about using Erlang-based software; my experience with RabbitMQ since then has improved my opinion of Erlang considerably. And CouchDB uses a consumer-SSD-friendly append-only B-Tree structure for its indexes, making it cheap to deploy a very high-performance system (for small-to-middling databases, i.e. in the tens to hundreds of gigabytes). And, because it's append-only, you can safely back it up just by copying the files. I do like that.
Oh, and this: The couchdb-python package comes with a view server to allow you to write views in Python instead of JavaScript. That's kind of significant.
* Well, they're more than that, but that's the key distinction. Views don't query the data; they define a way to query the data - including the necessary index.
Comments are disabled.
Post is locked.
Doh.
When I last looked at CouchDB, I somehow completely missed the point of views. They're not a query mechanism, they're an index definition mechanism.*
If they were a query mechanism, they'd suck. As an index definition mechanism, though, they do exactly - exactly - what I've been looking for: They look into the record structure and generate appropriate index entries based on any criteria I can think of. Thus, my need for a compound index on an array and a timestamp is trivially easy to implement.
Just how good CouchDB is beyond that feature I don't know yet, but I'm sure going to find out.
Couple of other points: The last time I was looking I was dubious about using Erlang-based software; my experience with RabbitMQ since then has improved my opinion of Erlang considerably. And CouchDB uses a consumer-SSD-friendly append-only B-Tree structure for its indexes, making it cheap to deploy a very high-performance system (for small-to-middling databases, i.e. in the tens to hundreds of gigabytes). And, because it's append-only, you can safely back it up just by copying the files. I do like that.
Oh, and this: The couchdb-python package comes with a view server to allow you to write views in Python instead of JavaScript. That's kind of significant.
* Well, they're more than that, but that's the key distinction. Views don't query the data; they define a way to query the data - including the necessary index.
Posted by: Pixy Misa at
05:20 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 243 words, total size 2 kb.
46kb generated in CPU 0.061, elapsed 0.2056 seconds.
54 queries taking 0.194 seconds, 345 records returned.
Powered by Minx 1.1.6c-pink.
54 queries taking 0.194 seconds, 345 records returned.
Powered by Minx 1.1.6c-pink.