diff options
author | Joan Touzet <wohali@apache.org> | 2017-05-08 22:14:24 -0400 |
---|---|---|
committer | Joan Touzet <wohali@apache.org> | 2017-05-08 22:14:24 -0400 |
commit | d9811be4012d4d21d6b058846a3139a366fcf66a (patch) | |
tree | b4b0ca3d5b1ed519f287163ed6fc65dca1ba9433 | |
parent | e38b1d611d381fbb4415bc632fbeeb28ab46d667 (diff) | |
download | couchdb-1943-attachment-perf.tar.gz |
Hibernate couch_stream after each write1943-attachment-perf
In COUCHDB-1946 Adam Kocoloski investigated a memory explosion resulting
from replication of databases with large attachments (npm fullfat). He
was able to stabilize memory usage to a much lower level by hibernating
couch_stream after each write. While this increases CPU utilization when
writing attachments, it should help reduce memory utilization.
This patch is the single change that affected a ~70% reduction in
memory.
No alteration to the spawn of couch_stream to change the fullsweep_after
setting has been made, in part because this can be adjusted at the erl
command line if desired (-erl ERL_FULLSWEEP_AFTER 0).
-rw-r--r-- | src/couch/src/couch_stream.erl | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/couch/src/couch_stream.erl b/src/couch/src/couch_stream.erl index 913977fb4..7da422baa 100644 --- a/src/couch/src/couch_stream.erl +++ b/src/couch/src/couch_stream.erl @@ -259,7 +259,7 @@ handle_call({write, Bin}, _From, Stream) -> buffer_len=0, md5=Md5_2, identity_md5=IdenMd5_2, - identity_len=IdenLen + BinSize}}; + identity_len=IdenLen + BinSize}, hibernate}; true -> {reply, ok, Stream#stream{ buffer_list=[Bin|Buffer], |