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 DBE51478C for ; Mon, 27 Jun 2011 09:05:13 +0000 (UTC) Received: (qmail 42575 invoked by uid 500); 27 Jun 2011 09:05:12 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 42292 invoked by uid 500); 27 Jun 2011 09:04:59 -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 42284 invoked by uid 99); 27 Jun 2011 09:04:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Jun 2011 09:04:56 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of marcello.nuccio@gmail.com designates 209.85.210.180 as permitted sender) Received: from [209.85.210.180] (HELO mail-iy0-f180.google.com) (209.85.210.180) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Jun 2011 09:04:49 +0000 Received: by iyh42 with SMTP id 42so9274084iyh.11 for ; Mon, 27 Jun 2011 02:04:28 -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:content-transfer-encoding; bh=DSQmnrja4VoeWAraFu+yoy8iGvRGJ6eEiqjQWjps5+Q=; b=e2GKkk/R8zvSlp5wF9W1QHIOoC++IE3F6sWQmWmCUvHzjWjcleI/r5HuQX23JSZ25t 0ZO4F0NBU3wgJZ6YuIu8dRlieFKippLS29usFbVAaKzOkEJPcChpy1AflP6Cur/k/ucc zzEcCkQLITcQGj1Xag+Yib1OnS2h4G6iEIStU= 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:content-transfer-encoding; b=T4lRc/TYxKuAmjPz63VYIHz8HFyvtNV2mrThX6xOKk7WQMKKWDfUIsk0Cs47Kb9t6D 5YVC8eTQvNS8s3pmQ9IPiNu72hO+BZShEURfnUE5m1vxIHwynZhE2nc2jtj+p4jeXaoY Rj8cOJr+YEbhXcwX4L/fxUPn9jmfXlQcC2NSo= MIME-Version: 1.0 Received: by 10.42.82.75 with SMTP id c11mr6374025icl.92.1309165468439; Mon, 27 Jun 2011 02:04:28 -0700 (PDT) Received: by 10.42.8.1 with HTTP; Mon, 27 Jun 2011 02:04:28 -0700 (PDT) In-Reply-To: References: Date: Mon, 27 Jun 2011 11:04:28 +0200 Message-ID: Subject: Re: CouchDB vs RavenDB (Specific features) From: Marcello Nuccio To: user@couchdb.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org 2011/6/27 Ryan Zec : > *Transactions > *This is kind of important for me. =C2=A0An example would be sending scor= es to > the database. =C2=A0When someone sends a score to the database, first I a= m going > to store that score as its own entity. =C2=A0Then I am going to want to u= pdate > the record that stores the total for the day, week, month, etc... =C2=A0I= f any > one of these updates fail, I don't want to any of the updates to save > (saving the insert is fine). =C2=A0Is there a way to do this for CouchDB? I don't think you will need to store a record with the totals in CouchDB. You should use a view for that. http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views > *Writing To Disk > *I really like that RavenDB by default writes to disk as it makes sure th= at > when data is sent to the server, the data will be there even if there is = a > power outage or some other event that happens that is out or your control= . > I would rather sacrifice a little write performance to maintain a much > better chance that data is not lost. =C2=A0While that data I am storage i= s not > super mission critical (like payment information), it is still pretty > important to the players of the game and important if we want the meta ga= me > to be successful. =C2=A0Can CouchDB configured to write to disk instead o= f memory > (or does it do that be default)? You can turn off delayed commits for maximum safety, but make sure to do some performance test. You can read about delayed commits at http://guide.couchdb.org/draft/performance.html#single > *Auto Indexing > *One thing that is really nice with RavenDB is that is has auto index whe= re > if you use an index that is not manually create a lot, RavenDB will > automatically turn the temporary index into an real index for you. =C2=A0= Can > CouchDB do this? In CouchDB you build an index by adding a view, i.e. a Map function and, optionally, a Reduce function. So I don't think it is technically possible to automatically build it. ...just my 2cents. Marcello PS: I have never used RavenDB so I do not know how does it compare to Couch= DB.