On Nov 2, 2009, at 4:19 AM, Benoit Chesneau wrote:

On Sun, Nov 1, 2009 at 8:15 PM, Chris Anderson <[email protected]> wrote:
On Sun, Nov 1, 2009 at 11:00 AM, Suhail Ahmed <[email protected]> wrote:
Hi,

Any chance of seeing native erlang RPC protocol in 11 or soon there after?


This may be part of the Cloudant clustering codebase. I can't speak
for them, but from what I've heard it does inter-node communication in
a native Erlang way. You could probably use this interface as a
primary client interface as well, but what do I know? :)

Chris


cloudant is a clustered couchdb or a cluster system over couchdb ?

- benoƮt

Hi Benoit, we (Cloudant) are developing a clustered CouchDB; that is, the ability to shard a database across a variable number of CouchDB instances and have any of those instances handle any HTTP API request. The instances communicate with each other using distributed Erlang. The distribution system is Dynamo-flavored consistent hashing (actually borrowing significantly from dynomite), and view results are merged and re-reduced at query time. We're still working hard on a few technical issues (in particular, generalizing single-instance update sequences to a distributed notion of "this-happened-first" for a proper _changes feed), but I think most of the CouchDB 0.10.0 API is in pretty good shape. We'll be releasing the source code "soon"; I'm afraid I can't be any more specific at the moment.

As far as whether the code has the makings of an Erlang remote client library .... well, yes and no. It turns out the CouchDB CRUD operations mostly "just work" when you open the DB using an RPC call to the remote node. Something like

gen_server:call({couch_server, Node}, {open, DbName, Options})

or even

rpc:call(Node, couch_db, open, [DbName, Options])

Once you get a #db{} record filled with remote Pids, you can use it just like you would a local one. Pretty nice, that. It means that hovercraft and CouchDB need relatively few adjustments in order to run in different VMs.

Cheers, Adam

Reply via email to