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/01/31 15:53:22 UTC
[1/2] couch commit: updated refs/heads/master to c73a883
Repository: couchdb-couch
Updated Branches:
refs/heads/master e285b34a7 -> c73a8831b
Remove 8kB read-ahead from couch_file
In production it showed an increased input Erlang IO and increased binary
memory usage.
See attached file in Jira ticket:
COUCHDB-3284
Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/d52a5335
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/d52a5335
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/d52a5335
Branch: refs/heads/master
Commit: d52a5335d930d11ade4953c8576d22f55872ff6f
Parents: 604edd1
Author: Nick Vatamaniuc <va...@apache.org>
Authored: Fri Jan 27 12:04:01 2017 -0500
Committer: Nick Vatamaniuc <va...@apache.org>
Committed: Fri Jan 27 16:49:42 2017 -0500
----------------------------------------------------------------------
src/couch_file.erl | 31 +++++++++----------------------
1 file changed, 9 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/d52a5335/src/couch_file.erl
----------------------------------------------------------------------
diff --git a/src/couch_file.erl b/src/couch_file.erl
index 2623824..5d11083 100644
--- a/src/couch_file.erl
+++ b/src/couch_file.erl
@@ -20,7 +20,6 @@
-define(INITIAL_WAIT, 60000).
-define(MONITOR_CHECK, 10000).
-define(SIZE_BLOCK, 16#1000). % 4 KiB
--define(READ_AHEAD, 2 * ?SIZE_BLOCK).
-define(IS_OLD_STATE(S), is_pid(S#file.db_monitor)).
-define(PREFIX_SIZE, 5).
-define(DEFAULT_READ_COUNT, 1024).
@@ -423,27 +422,15 @@ handle_call(close, _From, #file{fd=Fd}=File) ->
{stop, normal, file:close(Fd), File#file{fd = nil}};
handle_call({pread_iolist, Pos}, _From, File) ->
- {RawData, NextPos} = try
- % up to 8Kbs of read ahead
- read_raw_iolist_int(File, Pos, ?READ_AHEAD - (Pos rem ?SIZE_BLOCK))
- catch
- throw:{read_beyond_eof, _} = Reason ->
- throw(Reason);
- throw:{exceed_pread_limit, _, _} = Reason ->
- throw(Reason);
- _:_ ->
- read_raw_iolist_int(File, Pos, 4)
- end,
- <<Prefix:1/integer, Len:31/integer, RestRawData/binary>> =
- iolist_to_binary(RawData),
- case Prefix of
- 1 ->
- {Md5, IoList} = extract_md5(
- maybe_read_more_iolist(RestRawData, 16 + Len, NextPos, File)),
+ {LenIolist, NextPos} = read_raw_iolist_int(File, Pos, 4),
+ case iolist_to_binary(LenIolist) of
+ <<1:1/integer,Len:31/integer>> -> % an MD5-prefixed term
+ {Md5AndIoList, _} = read_raw_iolist_int(File, NextPos, Len+16),
+ {Md5, IoList} = extract_md5(Md5AndIoList),
{reply, {ok, IoList, Md5}, File};
- 0 ->
- IoList = maybe_read_more_iolist(RestRawData, Len, NextPos, File),
- {reply, {ok, IoList, <<>>}, File}
+ <<0:1/integer,Len:31/integer>> ->
+ {Iolist, _} = read_raw_iolist_int(File, NextPos, Len),
+ {reply, {ok, Iolist, <<>>}, File}
end;
handle_call(bytes, _From, #file{fd = Fd} = File) ->
@@ -617,7 +604,7 @@ read_raw_iolist_int(#file{fd = Fd, pread_limit = Limit} = F, Pos, Len) ->
BlockOffset = Pos rem ?SIZE_BLOCK,
TotalBytes = calculate_total_read_len(BlockOffset, Len),
case Pos + TotalBytes of
- Size when Size > F#file.eof + ?READ_AHEAD ->
+ Size when Size > F#file.eof ->
couch_stats:increment_counter([pread, exceed_eof]),
{_Fd, Filepath} = get(couch_file_fd),
throw({read_beyond_eof, Filepath});
[2/2] couch commit: updated refs/heads/master to c73a883
Posted by va...@apache.org.
Merge branch 'couchdb-3284'
closes #223
Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/c73a8831
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/c73a8831
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/c73a8831
Branch: refs/heads/master
Commit: c73a8831b23659d4a12423fe907a16ec5e0383f0
Parents: e285b34 d52a533
Author: Nick Vatamaniuc <va...@apache.org>
Authored: Tue Jan 31 10:52:47 2017 -0500
Committer: Nick Vatamaniuc <va...@apache.org>
Committed: Tue Jan 31 10:52:47 2017 -0500
----------------------------------------------------------------------
src/couch_file.erl | 31 +++++++++----------------------
1 file changed, 9 insertions(+), 22 deletions(-)
----------------------------------------------------------------------