Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 81820 invoked from network); 14 Apr 2011 14:05:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 14 Apr 2011 14:05:44 -0000 Received: (qmail 14779 invoked by uid 500); 14 Apr 2011 14:05:42 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 14750 invoked by uid 500); 14 Apr 2011 14:05:42 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 14742 invoked by uid 99); 14 Apr 2011 14:05:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Apr 2011 14:05:42 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of sean.copenhaver@gmail.com designates 209.85.212.52 as permitted sender) Received: from [209.85.212.52] (HELO mail-vw0-f52.google.com) (209.85.212.52) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Apr 2011 14:05:36 +0000 Received: by vws16 with SMTP id 16so2216907vws.11 for ; Thu, 14 Apr 2011 07:05:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=DVOeDX9M7qZyr6X6ZweYpG8jFjGKSb4p+TiSt1wLKzs=; b=To0/M+8d9zcAOGvnFxx2kN5vdMYTW+828k4LhscYrB2hoPsPdUzF6/XGSN3AqGYRlx oF3Og3qNgunYx+DIl6BRES71LV05+2eoGHX1aNZEBeGO/1ojDjzJe3r2nJP0Ng3IX+/Z 3lpLB21eq3TmTyYCWNlNWZZ0KRsKmBl0h7UtI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=rjsanq4eNZ87NOzy+BOaZz8xBfLmiPu2aUjyAVggzhXodJOvZFH9vz1LoUmC83PQ1o V0vvHWjp6Jx7TwqFw/SjvLg3lJtt/MoVMRWrLIbturzkJCY/R6bwd+rvx5i80N3lwayy +N3C2CDHIbN/O0sqPnoYStorKtWh6TsuffL+k= MIME-Version: 1.0 Received: by 10.52.91.232 with SMTP id ch8mr1201254vdb.85.1302789915405; Thu, 14 Apr 2011 07:05:15 -0700 (PDT) Received: by 10.52.161.230 with HTTP; Thu, 14 Apr 2011 07:05:15 -0700 (PDT) In-Reply-To: References: Date: Thu, 14 Apr 2011 10:05:15 -0400 Message-ID: Subject: Re: CouchDB's advantages over MongoDB From: Sean Copenhaver To: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=20cf307c9c3c1feca104a0e16ad5 --20cf307c9c3c1feca104a0e16ad5 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable >From my understanding, some advantages I see of CouchDB are: Easy horizontal scale path: It's HTTP. Guess what there are already a lot of and well understood? HTTP load balancers and caching systems. It has master-master replication built in. Your database logic is in a design document, which is just another document that can be replicated across nodes. Vertical scaling: With support for Android and iOS you can now take the same database and use the built in replication to take it up and down from mobile, desktop, and server. Awesome. HTTP JSON: Anything can talk to it. You don't have to have a middleware piece to talk to it for your for many web application scenarios. This can greatly simplif= y things. Changes API: You can have a lot of systems monitoring for changes and apply filters to get just what you want. Concurrent at it's core: Thanks to Erlang and the ideas of MVCC you can have many connections to the database with no worries. I think I have read that some test cases found that you would run out of IO bandwidth and ports before CouchDB would stop responding. It might be slow (probably have time outs), but it's up and talking. Write speed is limited since it's serialized on a node, but in either case you could load balance that. 2011/4/14 Daniel Itabora=ED > I'm trying to come up with some of CouchDB's advantages over MongoDB. Mon= go > seems to have some advantages on easier "queriability" and overall speed > (this is really an understatement, but I=B4m looking forward for the snap= py > compression and the NIF interface stuff). > > > So far, I've come up with the following: > > - > > Crash Proof durability (not having to replicate to achieve durability a= s > a best practice) > - > > Changes feed (for doing real time analytics, for example) > - > > Incremental map/reduce > - > > Concurrent reads during writes (no global server write lock, even if it > is a fast one) > - > > Unlimited document size > - > > Linked Documents in views > - > > Server side programmability (shows, lists, update handlers, validation > functions). > > - Atomic Bulk Operations > > > > I'd love to hear some more or even be corrected when necessary, but I fee= l > that for the uninitiated, it is hard to fully understand the strengths an= d > weaknesses of both products, as well as the operational implications of > each. Couch's weaknesses, unfortunately, seems to be a bit more evident a= t > first, despite it being a rock solid technology. > > > Thanks, > > Daniel > > > ps:. I had posted this to r/couchdb over at reddit, but that seems like a > wasteland these days. > --=20 =93The limits of language are the limits of one's world. =93 -Ludwig von Wittgenstein --20cf307c9c3c1feca104a0e16ad5--