summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Newson <rnewson@apache.org>2017-07-15 18:30:00 +0100
committerRobert Newson <rnewson@apache.org>2017-07-15 18:30:00 +0100
commitc8ee29505c718ed6bd9687a664dae11d984d89a7 (patch)
treed7d51947df17165361ea32c6d40f238be17f7277
parentdce6e34686329e711e1a6c50aae00761ecb3262e (diff)
downloadcouchdb-c8ee29505c718ed6bd9687a664dae11d984d89a7.tar.gz
Revert "Use Ejson Body Instead of Compressed Body for External size (#606)"
This reverts commit dce6e34686329e711e1a6c50aae00761ecb3262e.
-rw-r--r--src/couch/src/couch_db.erl6
-rw-r--r--src/couch/src/couch_db_updater.erl22
-rw-r--r--src/couch/test/couchdb_file_compression_tests.erl18
3 files changed, 4 insertions, 42 deletions
diff --git a/src/couch/src/couch_db.erl b/src/couch/src/couch_db.erl
index e4e3a8b34..d01a3e0c4 100644
--- a/src/couch/src/couch_db.erl
+++ b/src/couch/src/couch_db.erl
@@ -1111,11 +1111,7 @@ prepare_doc_summaries(Db, BucketList) ->
nil
end,
SummaryChunk = couch_db_updater:make_doc_summary(Db, {Body, DiskAtts}),
- Meta = Doc#doc.meta,
- Doc#doc{
- body = {summary, SummaryChunk, SizeInfo, AttsFd},
- meta = [{ejson_size, ?term_size(Body)} | Meta]
- }
+ Doc#doc{body = {summary, SummaryChunk, SizeInfo, AttsFd}}
end,
Bucket) || Bucket <- BucketList].
diff --git a/src/couch/src/couch_db_updater.erl b/src/couch/src/couch_db_updater.erl
index 277f2b535..49061b2f6 100644
--- a/src/couch/src/couch_db_updater.erl
+++ b/src/couch/src/couch_db_updater.erl
@@ -677,7 +677,6 @@ flush_trees(#db{fd = Fd} = Db,
case Value of
#doc{deleted = IsDeleted, body = {summary, _, _, _} = DocSummary} ->
{summary, Summary, AttSizeInfo, AttsFd} = DocSummary,
- ExternalSize = get_meta_body_size(Value#doc.meta, Summary),
% this node value is actually an unwritten document summary,
% write to disk.
% make sure the Fd in the written bins is the same Fd we are
@@ -696,6 +695,7 @@ flush_trees(#db{fd = Fd} = Db,
" changed. Possibly retrying.", []),
throw(retry)
end,
+ ExternalSize = ?term_size(Summary),
{ok, NewSummaryPointer, SummarySize} =
couch_file:append_raw_chunk(Fd, Summary),
Leaf = #leaf{
@@ -1086,16 +1086,8 @@ copy_docs(Db, #db{fd = DestFd} = NewDb, MixedInfos, Retry) ->
{NewRevTree, FinalAcc} = couch_key_tree:mapfold(fun
(_Rev, #leaf{ptr=Sp}=Leaf, leaf, SizesAcc) ->
{Body, AttInfos} = copy_doc_attachments(Db, Sp, DestFd),
- % In the future, we should figure out how to do this for
- % upgrade purposes.
- EJsonBody = case is_binary(Body) of
- true ->
- couch_compress:decompress(Body);
- false ->
- Body
- end,
SummaryChunk = make_doc_summary(NewDb, {Body, AttInfos}),
- ExternalSize = ?term_size(EJsonBody),
+ ExternalSize = ?term_size(SummaryChunk),
{ok, Pos, SummarySize} = couch_file:append_raw_chunk(
DestFd, SummaryChunk),
AttSizes = [{element(3,A), element(4,A)} || A <- AttInfos],
@@ -1475,16 +1467,6 @@ make_doc_summary(#db{compression = Comp}, {Body0, Atts0}) ->
SummaryBin = ?term_to_bin({Body, Atts}),
couch_file:assemble_file_chunk(SummaryBin, couch_crypto:hash(md5, SummaryBin)).
-
-get_meta_body_size(Meta, Summary) ->
- case lists:keyfind(ejson_size, 1, Meta) of
- {ejson_size, ExternalSize} ->
- ExternalSize;
- false ->
- ?term_size(couch_compress:decompress(Summary))
- end.
-
-
default_security_object(<<"shards/", _/binary>>) ->
case config:get("couchdb", "default_security", "everyone") of
"admin_only" ->
diff --git a/src/couch/test/couchdb_file_compression_tests.erl b/src/couch/test/couchdb_file_compression_tests.erl
index 41d055624..ccfa24435 100644
--- a/src/couch/test/couchdb_file_compression_tests.erl
+++ b/src/couch/test/couchdb_file_compression_tests.erl
@@ -119,19 +119,16 @@ should_compare_compression_methods(DbName) ->
compare_compression_methods(DbName) ->
config:set("couchdb", "file_compression", "none", false),
- ExternalSizePreCompact = db_external_size(DbName),
compact_db(DbName),
compact_view(DbName),
DbSizeNone = db_disk_size(DbName),
ViewSizeNone = view_disk_size(DbName),
- ExternalSizeNone = db_external_size(DbName),
config:set("couchdb", "file_compression", "snappy", false),
compact_db(DbName),
compact_view(DbName),
DbSizeSnappy = db_disk_size(DbName),
ViewSizeSnappy = view_disk_size(DbName),
- ExternalSizeSnappy = db_external_size(DbName),
?assert(DbSizeNone > DbSizeSnappy),
?assert(ViewSizeNone > ViewSizeSnappy),
@@ -150,13 +147,9 @@ compare_compression_methods(DbName) ->
compact_view(DbName),
DbSizeDeflate9 = db_disk_size(DbName),
ViewSizeDeflate9 = view_disk_size(DbName),
- ExternalSizeDeflate9 = db_external_size(DbName),
?assert(DbSizeDeflate1 > DbSizeDeflate9),
- ?assert(ViewSizeDeflate1 > ViewSizeDeflate9),
- ?assert(ExternalSizePreCompact =:= ExternalSizeNone),
- ?assert(ExternalSizeNone =:= ExternalSizeSnappy),
- ?assert(ExternalSizeNone =:= ExternalSizeDeflate9).
+ ?assert(ViewSizeDeflate1 > ViewSizeDeflate9).
populate_db(_Db, NumDocs) when NumDocs =< 0 ->
@@ -201,12 +194,6 @@ db_disk_size(DbName) ->
ok = couch_db:close(Db),
active_size(Info).
-db_external_size(DbName) ->
- {ok, Db} = couch_db:open_int(DbName, []),
- {ok, Info} = couch_db:get_db_info(Db),
- ok = couch_db:close(Db),
- external_size(Info).
-
view_disk_size(DbName) ->
{ok, Db} = couch_db:open_int(DbName, []),
{ok, DDoc} = couch_db:open_doc(Db, ?DDOC_ID, [ejson_body]),
@@ -217,9 +204,6 @@ view_disk_size(DbName) ->
active_size(Info) ->
couch_util:get_nested_json_value({Info}, [sizes, active]).
-external_size(Info) ->
- couch_util:get_nested_json_value({Info}, [sizes, external]).
-
wait_compaction(DbName, Kind, Line) ->
WaitFun = fun() ->
case is_compaction_running(DbName) of