couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Couchdb Wiki] Update of "Frequently asked questions" by JanLehnardt
Date Mon, 02 Mar 2009 15:58:54 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The following page has been changed by JanLehnardt:

The comment on the change is:
reorder view faq

  Using an http proxy like nginx, you can load balance GETs across nodes, and direct all POSTs,
PUTs and DELETEs to a master node. CouchDB's triggered replication facility can keep multiple
read-only servers in sync with a single master server, so by replicating from master ->
slaves on a regular basis, you can keep your content up to date.
+ ---- /!\ '''Edit conflict - other version:''' ----
+ ---- /!\ '''Edit conflict - your version:''' ----
+ ---- /!\ '''End of edit conflict''' ----
  == Why Does CouchDB Not Use Mnesia? ==
@@ -227, +233 @@

  The major advantage of the architecture is, however, that it is designed for high traffic.
No locking occurs is the storage module (MVCC and all that) allowing any number of parallel
readers as well as serialized writes. With replication, you can even set up multiple machines
for a horizontal scale-out and data partitioning (in the future) will let you cope with huge
volumes of data. (See [ slide 13
of Jan Lehnardt's essay] for more on the storage module or the whole post for detailed info
in general).
- [[Anchor(slow_view_building)]]
- == Creating my view index takes ages, WTF? ==
- A couple of reasons:
- 1) If you have a lot of documents or lots of large documents (going into the millions and
Gigabytes of data, the first time a view index is created just takes the time it is needed
to run through all documents.
  2) If you use the `emit()`-function in your view with `doc` as the second parameter you
effectively copy your entire data into the view index. This takes a lot of time. Consider
rewriting your `emit()` call to `emit(key, null);` and query the view with the `?include_docs=true`
parameter to get all doc's data with the view without having to copy the data into the view
  3) You are using Erlang release R11B (or 5.5.x). Update to at least R12B-3 (or 5.6.3).

View raw message