You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2017/04/10 18:20:36 UTC

[couchdb] branch 63012-scheduler updated: [fixup] comments in doc_processor

This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a commit to branch 63012-scheduler
in repository https://gitbox.apache.org/repos/asf/couchdb.git

The following commit(s) were added to refs/heads/63012-scheduler by this push:
       new  fa94532   [fixup] comments in doc_processor
fa94532 is described below

commit fa945327dd5e716612bdd442c7af172113ea8dae
Author: Nick Vatamaniuc <va...@apache.org>
AuthorDate: Mon Apr 10 14:20:31 2017 -0400

    [fixup] comments in doc_processor
---
 .../src/couch_replicator_doc_processor.erl              | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/couch_replicator/src/couch_replicator_doc_processor.erl b/src/couch_replicator/src/couch_replicator_doc_processor.erl
index 8b19836..75ccb26 100644
--- a/src/couch_replicator/src/couch_replicator_doc_processor.erl
+++ b/src/couch_replicator/src/couch_replicator_doc_processor.erl
@@ -172,8 +172,8 @@ process_updated({DbName, _DocId} = Id, JsonRepDoc) ->
     % Parsing replication doc (but not calculating the id) could throw an
     % exception which would indicate this document is malformed. This exception
     % should propagate to db_change function and will be recorded as permanent
-    % failure in the document. User will have to delete and re-create the
-    % document to fix the problem.
+    % failure in the document. User will have to update the documet to fix the
+    % problem.
     Rep0 = couch_replicator_docs:parse_rep_doc_without_id(JsonRepDoc),
     Rep = Rep0#rep{db_name = DbName, start_time = os:timestamp()},
     Filter = case couch_replicator_filters:parse(Rep#rep.options) of
@@ -351,8 +351,8 @@ worker_returned(Ref, Id, {ok, RepId}) ->
                 Row0#rdoc{rid = RepId, info = couch_util:to_binary(Msg)};
             #rdoc{rid = nil} ->
                 % Calculated new replication id for non-filtered replication.
-                % Remove replication doc body, after this we won't needed any
-                % more.
+                % Remove replication doc body, after this we won't need it
+                % anymore.
                 Row0#rdoc{rep=nil, rid=RepId, info=nil}
         end,
         true = ets:insert(?MODULE, NewRow),
@@ -418,12 +418,21 @@ maybe_update_doc_triggered(Rep, RepId) ->
 -spec error_backoff(non_neg_integer()) -> seconds().
 error_backoff(ErrCnt) ->
     Exp = min(ErrCnt, ?ERROR_MAX_BACKOFF_EXPONENT),
+    % ErrCnt is the exponent here. The reason 64 is used is to start at
+    % 64 (about a minute) max range. Then first backoff would be 30 sec
+    % on average. Then 1 minute and so on.
     random:uniform(64 bsl Exp).
 
 
 -spec filter_backoff() -> seconds().
 filter_backoff() ->
     Total = ets:info(?MODULE, size),
+    % This value scaled by the number of replications. If the are a lot of
+    % them wait is longer, but not more than a day (?TS_DAY_SEC). If there
+    % are just few, wait is shorter, starting at about 30 seconds. `2 *` is
+    % used since the expected wait would then be 0.5 * Range so it is easier
+    % to see the average wait. `1 +` is used because random:uniform only
+    % accepts > 0 values and crashes otherwise.
     Range = 1 + min(2 * (Total / 10), ?TS_DAY_SEC),
     60 + random:uniform(round(Range)).
 

-- 
To stop receiving notification emails like this one, please contact
['"commits@couchdb.apache.org" <co...@couchdb.apache.org>'].