Not a CouchDB expert, but I'll try... *Transactions > *This is kind of important for me. An example would be sending scores to > the database. When someone sends a score to the database, first I am going > to store that score as its own entity. Then I am going to want to update > the record that stores the total for the day, week, month, etc... If any > one of these updates fail, I don't want to any of the updates to save > (saving the insert is fine). Is there a way to do this for CouchDB? >
CouchDB doesn't have transactions, but your usecase is easily solved using a CouchDB view. I.e., you won't store these sums yourself, you will let CouchDB compute them for you. See http://wiki.apache.org/couchdb/HTTP_view_API. > *Writing To Disk > *I really like that RavenDB by default writes to disk as it makes sure that > 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. While that data I am storage is 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 game > to be successful. Can CouchDB configured to write to disk instead of > memory > (or does it do that be default)? > CouchDB's append-only architecture means you don't have to worry about losing data. If you switch delayed commits off, you will get fully ACID operations. > *Sharding > *From my understanding, CouchDB supports replication but not sharding out > of > the box. Are there any good sharding solutions for CouchDB? > You might want to look at CouchDB Lounge http://tilgovi.github.com/couchdb-lounge/ (not sure if it is still developed) or BigCouch (https://github.com/cloudant/bigcouch). > *Auto Indexing > *One thing that is really nice with RavenDB is that is has auto index where > 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. Can > CouchDB do this? > CouchDB in fact doesn't have indices, so this doesn't apply I guess. The only way to query CouchDB is using views, there are no ad-hoc queries. (Well, there are, but you have to use an external indexing/querying engine, such as CouchDB Lucene or ElasticSearch). LT
