On Thu, Feb 19, 2009 at 4:35 PM, Ben Browning <[email protected]> wrote: > So, I started thinking about partitioning with CouchDB and realized > that since views are just map/reduce, we can do some magic that's > harder if not impossible with other database systems. The idea in a > nutshell is to create a proxy that sits in front of multiple servers > and "sprays" the view queries to all servers, merging the results - > hence CouchSpray. This would give us storage and processing > scalability and could, with some extra logic, provide data redundancy > and failover.
There are plans in CouchDB's future to take care of data partitioning, as well as querying views from a cluster. Theoretically, it should be pretty simple. There are a few small projects that have started down the road of writing code in this area. https://code.launchpad.net/~dreid/sectional/trunk Sectional is an Erlang http proxy that implements consistent hashing for docs. I'm not sure how it handles view queries. There's also a project to provide partitioning around the basic key/value PUT and GET store using Nginx: http://github.com/dysinger/nginx/tree/nginx_upstream_hash If you're interested in digging into this stuff, please join d...@. We plan to include clustering in CouchDB, so if you're interested in implementing it, we could use your help. Chris -- Chris Anderson http://jchris.mfdz.com
