couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoit Chesneau <>
Subject Re: roadmap 0.11/1.0
Date Mon, 02 Nov 2009 18:10:07 GMT
On Mon, Nov 2, 2009 at 6:59 PM, Adam Kocoloski <> wrote:
> On Nov 2, 2009, at 4:19 AM, Benoit Chesneau wrote:
>> On Sun, Nov 1, 2009 at 8:15 PM, Chris Anderson <> wrote:
>>> On Sun, Nov 1, 2009 at 11:00 AM, Suhail Ahmed <>
>>> 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.

That's already a lot and really good to know :) I was thinking more
and more to it since i have special needs in term of storage for a
project. Thanks a lot to make it opensource.

> 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.

About that I had done some works on rpc calls based on hovercraft.
Code is here and wasn't finished :

- benoit

View raw message