diff options
author | Nick Vatamaniuc <vatamane@apache.org> | 2020-05-21 18:40:55 -0400 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2020-05-21 18:52:48 -0400 |
commit | 5bade6fde84c46c472ab64967563cb07a239f026 (patch) | |
tree | 1203afa626065c91c40553f022d18ded2c70c25a | |
parent | 9e3f47535e2aa9a9416230a0fb335a5a8e0b533e (diff) | |
download | couchdb-5bade6fde84c46c472ab64967563cb07a239f026.tar.gz |
Improve load handling in couch_jobs and couch_views
Increase couch_views job timeout by 20 seconds. This will set a larger jitter
when multiple nodes concurrently check and re-equeue jobs. It would reduce the
chance of them bumping into each other and conflicting.
If they do conflict in activity monitor, catch the error and emit an error log.
We gain some more robustness under load for a longer timeout for jobs with
workers that have suddenly died getting re-enqueued.
-rw-r--r-- | src/couch_jobs/src/couch_jobs_activity_monitor.erl | 9 | ||||
-rw-r--r-- | src/couch_views/src/couch_views_jobs.erl | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/couch_jobs/src/couch_jobs_activity_monitor.erl b/src/couch_jobs/src/couch_jobs_activity_monitor.erl index ef82e6bd9..6f50d9653 100644 --- a/src/couch_jobs/src/couch_jobs_activity_monitor.erl +++ b/src/couch_jobs/src/couch_jobs_activity_monitor.erl @@ -65,7 +65,14 @@ handle_cast(Msg, St) -> handle_info(check_activity, St) -> - St1 = check_activity(St), + St1 = try + check_activity(St) + catch + {error, {erlfdb_error, 1020}} -> + LogMsg = "~p : type:~p got 1020 error, possibly from overload", + couch_log:error(LogMsg, [?MODULE, St#st.type]), + St + end, St2 = schedule_check(St1), {noreply, St2}; diff --git a/src/couch_views/src/couch_views_jobs.erl b/src/couch_views/src/couch_views_jobs.erl index 909e9234f..a9ca168ee 100644 --- a/src/couch_views/src/couch_views_jobs.erl +++ b/src/couch_views/src/couch_views_jobs.erl @@ -31,7 +31,7 @@ set_timeout() -> - couch_jobs:set_type_timeout(?INDEX_JOB_TYPE, 6). + couch_jobs:set_type_timeout(?INDEX_JOB_TYPE, 26). build_view(TxDb, Mrst, UpdateSeq) -> |