On Mon, Nov 2, 2009 at 6:59 PM, Adam Kocoloski <kocol...@apache.org> wrote:
> On Nov 2, 2009, at 4:19 AM, Benoit Chesneau wrote:
>
>> On Sun, Nov 1, 2009 at 8:15 PM, Chris Anderson <jch...@apache.org> wrote:
>>>
>>> On Sun, Nov 1, 2009 at 11:00 AM, Suhail Ahmed <suhail...@gmail.com>
>>> 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 :

http://github.com/benoitc/couchdb/blob/rpc/src/couchdb/couch_rpc.erl


- benoit

Reply via email to