From user-return-19097-apmail-couchdb-user-archive=couchdb.apache.org@couchdb.apache.org Tue Dec 13 10:16:39 2011 Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 10A20774B for ; Tue, 13 Dec 2011 10:16:39 +0000 (UTC) Received: (qmail 31077 invoked by uid 500); 13 Dec 2011 10:16:37 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 30942 invoked by uid 500); 13 Dec 2011 10:16:32 -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 30934 invoked by uid 99); 13 Dec 2011 10:16:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Dec 2011 10:16:30 +0000 X-ASF-Spam-Status: No, hits=0.4 required=5.0 tests=FROM_LOCAL_NOVOWEL,HK_RANDOM_ENVFROM,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of cgsmcmlxxv@gmail.com designates 74.125.83.52 as permitted sender) Received: from [74.125.83.52] (HELO mail-ee0-f52.google.com) (74.125.83.52) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Dec 2011 10:16:20 +0000 Received: by eeke52 with SMTP id e52so1316242eek.11 for ; Tue, 13 Dec 2011 02:16:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=KvkGzIG6k7SsPAJ3HtvfSoWrrlYe9dfpS1qGB2mige8=; b=x4WWU3oGOTPpyOqbPNsARQ6MIkwjRUZ2bPG3r8Cyn4+R5Bm850sXTzBzsZIoGV0Jfj /EwLvkx+JsQtsLZGbEuXey+Qx5XN0LD98RwO3CeLLoTcOJUABk9GhZa9IbFUG6Yy8UMR GFbSujT44wpJpmADKBwGoW8AMBCiZf/VmTvk0= Received: by 10.14.9.227 with SMTP id 75mr4014169eet.206.1323771358773; Tue, 13 Dec 2011 02:15:58 -0800 (PST) Received: from [192.168.1.123] (095160203004.wroclaw.vectranet.pl. [95.160.203.4]) by mx.google.com with ESMTPS id j20sm1850769eej.8.2011.12.13.02.15.57 (version=SSLv3 cipher=OTHER); Tue, 13 Dec 2011 02:15:58 -0800 (PST) Message-ID: <4EE725DC.9050707@gmail.com> Date: Tue, 13 Dec 2011 11:15:56 +0100 From: CGS User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.23) Gecko/20110922 Thunderbird/3.1.15 MIME-Version: 1.0 To: user@couchdb.apache.org Subject: Re: Question on what is CouchDB's strength References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hi Jack, The strength of a product is in your need for what that product can provide. Each product has its own characteristics which makes it more or less useful to your needs. So, not knowing your needs, I can only theorize. Here is a list of advantages/disadvantages CouchDB may present (considering only what you spoke about): 1. Update. Requires document ID, which may slow down the performance. 2. Insert. If not update, I peaked at ~6k medium size documents per second on a "not-so-great" computer (my personal laptop is better than that computer which is dedicated for tests at low hardware capabilities). 3. Scan. Advantage: given Erlang capabilities and the CouchDB smart way to read/write from/to a database, it can be performed in parallel with other requests. Disadvantage: it doesn't provide an accurate response if more documents were added meanwhile, but the update in views works faster after that (if you referred to views). 4. Latency. Difficult to answer because I don't know which type of latency you refer to. The overall latency depends on the type of request. If you refer to the time of response since the request is sent till Erlang code gives back a response, I wouldn't go for "the embarrassing Erlang". Erlang has a nice "habit" to spawn threads with no sweat and that compensate with the response time gained by other languages (in Erlang you need to think in parallel threads by default), especially in long jobs. That's my personal opinion. 5. Functionality. CouchDB has unique replication and document read/writing system (at least from what I know, but I don't know many things, so, I might be wrong :) ). You don't have master-slave type of replication (that makes it unique in my opinion), but only master-master type of replication. That makes it more suitable for complex sharding where you need extra control over the data insertion process. The read/write system is based on two-heads document versioning update. That decreases by far the probability for the database to be left in an inconsistent state and makes it recover the databases faster from crashes. Another drawback in terms of time is compaction. But, as I said, it depends on your needs. The compaction is useful only when you want to save space on your storage device. Otherwise, the banking system of bookkeeping the full history of the operations made by that moment has its own advantage. There are more "advantages/disadvantages" one can speak of in terms of comparing CouchDB with other noSQL products. But all these "advantages/disadvantages" are subject to one's needs at a given time (some advantages can turn / be turned into disadvantages and vice-versa, even for the same user whose needs are dynamic). I tried to be as objective as possible, so, my feedback to help you in your decisions. If I mislead you by a wrong information, please, forgive me, I am just an user. CGS On 12/12/2011 02:41 AM, jack chrispoo wrote: > Hi all, > > I am new to CouchDB. I and my friends have been evaluating several > datastores including Cassandra, HBase, MongoDB, CouchDB in terms of update, > read, insert, scan throughput and latency. In our tests CouchDB performs > worst in all tests. I once read about some saying that because CouchDB is > written in Erlang, throughput and lantency is not CouchDB's strength. So > can someone tell me some advantages of CouchDB compared to other > datastores? I did look into views, but it seems that other datastores have > similar funtionalities - MongoDB can also execute javascript to generate > result, HBase has filter. So what exactly is CouchDB's strength? > > I'll be grateful to any comments, Thanks, > > jack >