summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J. Davis <paul.joseph.davis@gmail.com>2018-06-18 12:39:30 -0500
committerPaul J. Davis <paul.joseph.davis@gmail.com>2018-06-18 15:21:44 -0500
commit93f5b416c9bf4cf5cb038dc98c4597642661d336 (patch)
tree95b24f43092aa1ff9b4ba218d500beb6275b99c9
parenta5cd85672466554ac27c41857a6ca1252b43db91 (diff)
downloadcouchdb-add-set-mqd-off-heap.tar.gz
Call `set_mqd_off_heap` for critical processesadd-set-mqd-off-heap
This uses the new `couch_util:set_mqd_off_heap/0` function to set message queues to off_heap for some of our critical processes that receive a significant amount of load in terms of message volume.
-rw-r--r--src/couch/src/couch_server.erl2
-rw-r--r--src/couch_log/src/couch_log_server.erl1
-rw-r--r--src/ddoc_cache/src/ddoc_cache_lru.erl1
-rw-r--r--src/mem3/src/mem3_shards.erl1
-rw-r--r--src/rexi/src/rexi_server.erl1
5 files changed, 6 insertions, 0 deletions
diff --git a/src/couch/src/couch_server.erl b/src/couch/src/couch_server.erl
index 05af0ed54..903eb09cd 100644
--- a/src/couch/src/couch_server.erl
+++ b/src/couch/src/couch_server.erl
@@ -210,6 +210,8 @@ close_db_if_idle(DbName) ->
init([]) ->
+ couch_util:set_mqd_off_heap(),
+
% Mark pluggable storage engines as a supported feature
config:enable_feature('pluggable-storage-engines'),
diff --git a/src/couch_log/src/couch_log_server.erl b/src/couch_log/src/couch_log_server.erl
index be44af8ff..ea5def891 100644
--- a/src/couch_log/src/couch_log_server.erl
+++ b/src/couch_log/src/couch_log_server.erl
@@ -58,6 +58,7 @@ log(Entry) ->
init(_) ->
+ couch_util:set_mqd_off_heap(),
process_flag(trap_exit, true),
{ok, #st{
writer = couch_log_writer:init()
diff --git a/src/ddoc_cache/src/ddoc_cache_lru.erl b/src/ddoc_cache/src/ddoc_cache_lru.erl
index e94934d04..248a76dc8 100644
--- a/src/ddoc_cache/src/ddoc_cache_lru.erl
+++ b/src/ddoc_cache/src/ddoc_cache_lru.erl
@@ -87,6 +87,7 @@ refresh(DbName, DDocIds) ->
init(_) ->
+ couch_util:set_mqd_off_heap(),
process_flag(trap_exit, true),
BaseOpts = [public, named_table],
CacheOpts = [
diff --git a/src/mem3/src/mem3_shards.erl b/src/mem3/src/mem3_shards.erl
index c84b87397..da3b69a61 100644
--- a/src/mem3/src/mem3_shards.erl
+++ b/src/mem3/src/mem3_shards.erl
@@ -184,6 +184,7 @@ handle_config_terminate(_Server, _Reason, _State) ->
erlang:send_after(?RELISTEN_DELAY, whereis(?MODULE), restart_config_listener).
init([]) ->
+ couch_util:set_mqd_off_heap(),
ets:new(?SHARDS, [
bag,
public,
diff --git a/src/rexi/src/rexi_server.erl b/src/rexi/src/rexi_server.erl
index 3d3f272e4..954ca88cb 100644
--- a/src/rexi/src/rexi_server.erl
+++ b/src/rexi/src/rexi_server.erl
@@ -39,6 +39,7 @@ start_link(ServerId) ->
gen_server:start_link({local, ServerId}, ?MODULE, [], []).
init([]) ->
+ couch_util:set_mqd_off_heap(),
{ok, #st{}}.
handle_call(get_errors, _From, #st{errors = Errors} = St) ->