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