wohali commented on a change in pull request #123: Documentation for the 
scheduling replicator
URL: 
https://github.com/apache/couchdb-documentation/pull/123#discussion_r114012788
 
 

 ##########
 File path: src/replication/replicator.rst
 ##########
 @@ -154,98 +203,253 @@ the following order:
 .. code-block:: javascript
 
     {
-        "_id": "doc_A",
-        "source":  "http://myserver.com:5984/foo";,
-        "target":  "http://user:pass@localhost:5984/bar";
+        "_id": "my_rep",
+        "source":  "http://user:pass@localhost:5984/foo";,
+        "target":  "http://user:pass@localhost:5984/bar";,
+        "create_target":  true,
+        "continuous": true
     }
 
 and
 
 .. code-block:: javascript
 
     {
-        "_id": "doc_B",
-        "source":  "http://myserver.com:5984/foo";,
-        "target":  "http://user:pass@localhost:5984/bar";
-    }
-
-Both describe exactly the same replication (only their ``_ids`` differ). In 
this
-case document ``doc_A`` triggers the replication, getting updated by CouchDB
-with the fields ``_replication_state``, ``_replication_state_time`` and
-``_replication_id``, just like it was described before. Document ``doc_B``
-however, is only updated with one field, the ``_replication_id`` so it will
-look like this:
-
-.. code-block:: javascript
-
-    {
-        "_id": "doc_B",
-        "source":  "http://myserver.com:5984/foo";,
+        "_id": "my_rep_dup",
+        "source":  "http://user:pass@localhost:5984/foo";,
         "target":  "http://user:pass@localhost:5984/bar";,
-        "_replication_id":  "c0ebe9256695ff083347cbf95f93e280"
+        "create_target":  true,
+        "continuous": true
     }
 
-While document ``doc_A`` will look like this:
-
-.. code-block:: javascript
-
-    {
-        "_id": "doc_A",
-        "source":  "http://myserver.com:5984/foo";,
-        "target":  "http://user:pass@localhost:5984/bar";,
-        "_replication_id":  "c0ebe9256695ff083347cbf95f93e280",
-        "_replication_state":  "triggered",
-        "_replication_state_time":  "2011-02-17T20:22:02+01:00"
-    }
+Both describe exactly the same replication (only their ``_ids``
+differ). In this case document ``my_rep`` triggers the
+replication. While ``my_rep_dup``` will fail. Inspecting
+``_scheduler/docs`` explains exactly why it failed:
+
+.. code-block:: json
+
+        {
+            "database": "_replicator",
+            "doc_id": "my_rep_dup",
+            "error_count": 1,
+            "id": null,
+            "info": "Replication 
`a81a78e822837e66df423d54279c15fe+continuous+create_target` specified by 
document `my_rep_dup` already started, triggered by document `my_rep` from db 
`_replicator`",
+            "last_updated": "2017-04-05T21:41:51Z",
+            "source": "http://adm:*****@localhost:5984/foo/";,
+            "start_time": "2017-04-05T21:41:51Z",
+            "state": "failed",
+            "target": "http://adm:*****@localhost:5984/bar/";
+        }
 
-Note that both document get exactly the same value for the ``_replication_id``
-field. This way you can identify which documents refer to the same replication 
-
-you can for example define a view which maps replication IDs to document IDs.
+Notice the state for this replication is ``failed``. Unlike
+``crashing``, ``failed`` state is terminal. As long as both documents
+are present replicator will not retry to run my_rep_dub
+replication. Another reason could be malformed documents. For
+example if worker process count is specified as a string
+(``"worker_processes": "a few"``) instead of an integer.
+
+Replication Scheduler
+=====================
+
+Once replication jobs are created they are managed by the scheduler.
+The scheduler is the replication component which periodically stops
+some jobs and starts others. This behavior makes it posssible to have a
+larger number of jobs than what the cluster could run at one time.
 
 Review comment:
   awkward, try "...larger number of jobs than the cluster is capable of 
running simultaneously."
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to