You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by dc...@apache.org on 2012/11/29 20:29:12 UTC

[1/3] git commit: document new utc+suffix-based UUID scheme

Updated Branches:
  refs/heads/docs fd33cc9b2 -> 51390d39d


document new utc+suffix-based UUID scheme


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/51390d39
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/51390d39
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/51390d39

Branch: refs/heads/docs
Commit: 51390d39d72907bf5dc3b539a3fe0e383e69fd82
Parents: 64d96fd
Author: Dave Cottlehuber <dc...@apache.org>
Authored: Thu Nov 29 20:28:55 2012 +0100
Committer: Dave Cottlehuber <dc...@apache.org>
Committed: Thu Nov 29 20:28:55 2012 +0100

----------------------------------------------------------------------
 share/doc/src/api/documents.rst |   44 +++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/51390d39/share/doc/src/api/documents.rst
----------------------------------------------------------------------
diff --git a/share/doc/src/api/documents.rst b/share/doc/src/api/documents.rst
index 5d34902..ce53974 100644
--- a/share/doc/src/api/documents.rst
+++ b/share/doc/src/api/documents.rst
@@ -89,7 +89,7 @@ the following request:
        "title" : "Fish Stew"
     }
 
-The return JSON will specify the automatically enerated ID and revision
+The return JSON will specify the automatically generated ID and revision
 information:
 
 .. code-block:: javascript
@@ -135,6 +135,48 @@ ID, and status message:
 
 .. _api-batch-writes:
 
+UUID generation algorithms
+--------------------------
+
+CouchDB supports a number of different UUID generation algorithms for use
+in situations where a user-specified UUID does not make sense. These
+can be set simply by `PUT http://couchdb:5984/_config/uuids/algorithm`.
+
+
++---------------+---------------------+----------------------------------+
+| Algorithm     | Description         | Sample UUID                      |
++===============+=====================+==================================+
+| random        | 128 bits of pure    | 43febce5675468a5467fb5467ce9e6c0 |
+|               | random awesomeness  |                                  |
++---------------+---------------------+----------------------------------+
+| sequential    | monotonically       | f755c413badf66b22941313f9f001e28 |
+|               | increasing ids with | f755c413badf66b22941313f9f0024ca |
+|               | random increments   | f755c413badf66b22941313f9f00332c|
++---------------+---------------------+----------------------------------+
+| utc_random    | time since start of | 04cfa405381205204f75100d0241ccc3 |
+|               | epoch, as 14 hex    | 04cfa4059c48e76e7c054bbe033dd8db |
+|               | digits, followed by | 04cfa405fce10b0df4c08f95e667cd2f |
+|               | 18 random digits.   |                                  |
++---------------+---------------------+----------------------------------+
+| utc_id        | time since start of | 04cfa718b00848_i_am_in_yer_couch |
+| & additional  | epoch, as 14 hex    | 04cfa71d377aef_i_am_in_yer_couch |
+| parameter     | digits, followed by | 04cfa71e0deabd_i_am_in_yer_couch |
+|               | utc_id_suffix.      |                                  |
++---------------+---------------------+----------------------------------+
+
+.. Impact of UUID choices::
+   The choice of UUID has a signficant impact on the layout of the B-tree,
+   prior to compaction. For example, a sequential UUID algorithm during
+   uploading thousands of documents, will avoid the need to rewrite many
+   intermediate B-tree nodes. A random UUID algorithm may require rewriting
+   intermediate nodes on a regular basis, with a corresponding decrease of
+   throughput, and significant wasted space due to the append-only B-tree
+   design. It is generally recommended to set your own UUIDs, or use the
+   sequential algorithm unless you have a specific need and take into account
+   the likely need for compaction to re-balance the B-tree and reclaim wasted
+   space.
+
+
 Batch Mode Writes
 -----------------