wip
diff --git a/src/couch/src/couch_att.erl b/src/couch/src/couch_att.erl
index d329e44..c8b2665 100644
--- a/src/couch/src/couch_att.erl
+++ b/src/couch/src/couch_att.erl
@@ -395,7 +395,6 @@
->
store(Extended, from_disk_term(StreamSrc, Base));
from_disk_term(StreamSrc, {Name, Type, Sp, AttLen, DiskLen, RevPos, Md5, Enc, Generation}) ->
- couch_log:error("~n from_disk_term-2 Generation: ~p~n", [Generation]),
{ok, Stream} = open_stream(StreamSrc, Sp, Generation),
#att{
name = Name,
diff --git a/src/couch/src/couch_bt_engine.erl b/src/couch/src/couch_bt_engine.erl
index 766e18b..156d428 100644
--- a/src/couch/src/couch_bt_engine.erl
+++ b/src/couch/src/couch_bt_engine.erl
@@ -174,18 +174,18 @@
Header0
end
end,
-
+ couch_log:error("~n bt_engine:init() Header: ~p~n", [Header]),
Generations = couch_bt_engine_header:generations(Header),
-
Fds0 = maybe_open_generation_files(FilePath, Generations , Options),
Fds = [Fd] ++ Fds0,
{ok, init_state(FilePath, Fds, Header, Options)}.
maybe_open_generation_files(FilePath, Generations, Options) ->
- case lists:member(compacting, Options) of
- true -> [];
- false -> open_generation_files(FilePath, Generations, Options)
- end.
+ NewGenerations = case lists:member(compacting, Options) of
+ true -> Generations;
+ false -> Generations + 1
+ end,
+ open_generation_files(FilePath, NewGenerations, Options).
terminate(_Reason, St) ->
@@ -617,7 +617,6 @@
{ok, {couch_bt_engine_stream, {St#st.fd, StreamSt}}}.
open_read_stream(#st{} = St, Generation, StreamSt) ->
- couch_log:error("~nopen_read_stream/3, St: ~p St.fds: ~p, Generation: ~p~n", [St, St#st.fds, Generation]),
Fd = get_fd(St#st.fds, Generation),
{ok, {couch_bt_engine_stream, {Fd, StreamSt}}}.
@@ -673,7 +672,8 @@
{ok, St, Pid}.
finish_compaction(OldState, DbName, Options, CompactFilePath) ->
- {ok, NewState1} = ?MODULE:init(CompactFilePath, [compacting | Options]),
+ {ok, NewState1} = ?MODULE:init(CompactFilePath, [compaction | Options]),
+ couch_log:error("~n finish_compaction: OldState: ~p, NewState1: ~p~n", [OldState, NewState1]),
OldSeq = get_update_seq(OldState),
NewSeq = get_update_seq(NewState1),
case OldSeq == NewSeq of
@@ -887,7 +887,6 @@
open_generation_file(FilePath, Generation, Options) ->
GenFilePath = string:replace(FilePath, ".couch",
"." ++ integer_to_list(Generation)++ ".couch", trailing),
- couch_log:error("~n open_generation_file(FilePath: ~p) GenFilePath: ~p~n", [FilePath, GenFilePath]),
case catch open_db_file(GenFilePath, [nologifmissing | Options]) of
{ok, Db} ->
Db;
@@ -1279,6 +1278,8 @@
OldFds = OldSt#st.fds,
Fds = open_missing_generation_files(FilePath, OldFds),
+ couch_log:error("~n finish_compaction_int() OldSt: ~p, NewSt1: ~p, OldFds: ~p, Fds: ~p~n", [OldSt, NewSt1, OldFds, Fds]),
+
% We're finished with our old state
decref(OldSt),
@@ -1288,7 +1289,6 @@
filepath = FilePath,
fds = Fds
},
- couch_log:error("~n fninish_compaction_int NewSt2: ~p OldFDs ~p, Fds ~p~n", [NewSt3, OldFds, Fds]),
{ok,
NewSt3,
diff --git a/src/couch/src/couch_bt_engine_compactor.erl b/src/couch/src/couch_bt_engine_compactor.erl
index f31c055..ed3d025 100644
--- a/src/couch/src/couch_bt_engine_compactor.erl
+++ b/src/couch/src/couch_bt_engine_compactor.erl
@@ -25,7 +25,8 @@
old_st,
new_st,
meta_fd,
- retry
+ retry,
+ generation = 0
}).
-record(comp_header, {
@@ -53,6 +54,7 @@
start(#st{} = St, DbName, Options, Parent) ->
erlang:put(io_priority, {db_compact, DbName}),
couch_log:debug("Compaction process spawned for db \"~s\"", [DbName]),
+ couch_log:error("Compaction process spawned for db \"~s\"", [DbName]),
couch_db_engine:trigger_on_compact(DbName),
@@ -91,6 +93,7 @@
gen_server:cast(Parent, Msg).
open_compaction_files(DbName, OldSt, Options) ->
+ couch_log:error("~n compactor: open_compaction_files(DbName: ~p)~n", [DbName]),
#st{
filepath = DbFilePath,
header = SrcHdr
@@ -141,7 +144,7 @@
ok = reset_compaction_file(MetaFd, Header),
Generations0 = couch_bt_engine_header:generations(Header),
Generations = increment_generation(Generations0),
- % we need one more generation to compact into, maybe
+ % we need one more generation to compact into
GenFds = couch_bt_engine:open_generation_files(DbFilePath, Generations, Options),
Fds = [DataFd] ++ GenFds,
St0 = couch_bt_engine:init_state(DataFile, Fds, Header, Options),
@@ -156,7 +159,6 @@
end,
unlink(DataFd),
erlang:monitor(process, MetaFd),
- couch_log:error("~n open_compaction_files() CompSt: ~p~n", [CompSt]),
{ok, CompSt}.
copy_purge_info(#comp_st{} = CompSt) ->
@@ -408,7 +410,6 @@
St.
copy_docs(St, #st{} = NewSt, MixedInfos, Retry) ->
- couch_log:error("~n~n copy_docs(St: ~p, NewSt: ~p~nn", [St, NewSt]),
DocInfoIds = [Id || #doc_info{id = Id} <- MixedInfos],
LookupResults = couch_btree:lookup(St#st.id_tree, DocInfoIds),
% COUCHDB-968, make sure we prune duplicates during compaction
@@ -638,10 +639,10 @@
compact_final_sync(#comp_st{new_st = St0} = CompSt) ->
?COMP_EVENT(before_final_sync),
Generations = couch_bt_engine_header:generations(St0#st.header),
- NewHeader = couch_bt_engine_header:set(St0#st.header, generations, increment_generation(Generations)),
+ NewGenerations = increment_generation(Generations),
+ NewHeader = couch_bt_engine_header:set(St0#st.header, generations, NewGenerations),
St1 = St0#st{header = NewHeader},
{ok, St2} = couch_bt_engine:commit_data(St1),
- couch_log:error("~n compact_final_sync St0: ~p~n, St1: ~p~n, St3: ~p~n", [St0, St1, St2]),
?COMP_EVENT(after_final_sync),
CompSt#comp_st{
new_st = St2
diff --git a/src/couch/src/couch_db_updater.erl b/src/couch/src/couch_db_updater.erl
index fac5aee..ab2f979 100644
--- a/src/couch/src/couch_db_updater.erl
+++ b/src/couch/src/couch_db_updater.erl
@@ -153,6 +153,7 @@
{noreply, Db, idle_limit()}
end;
handle_cast({compact_done, _Engine, CompactInfo}, #db{} = OldDb) ->
+ couch_log:error("~n handle_cast(compact_done) CompactInfo: ~pm OldDb: ~p~n", [CompactInfo, OldDb]),
{ok, NewDb} = couch_db_engine:finish_compaction(OldDb, CompactInfo),
{noreply, NewDb};
handle_cast(wakeup, Db) ->
diff --git a/src/couch_pse_tests/src/cpse_test_get_set_props.erl b/src/couch_pse_tests/src/cpse_test_get_set_props.erl
index 773f1d0..6bb5e20 100644
--- a/src/couch_pse_tests/src/cpse_test_get_set_props.erl
+++ b/src/couch_pse_tests/src/cpse_test_get_set_props.erl
@@ -65,7 +65,6 @@
cpse_util:shutdown_db(Db1),
{ok, Db2} = couch_db:reopen(Db1),
- couch_log:error("~n~n~n~n~s -> ~s~n~n", [couch_db:name(Db1), couch_db:name(Db2)]),
?assertEqual(?ADMIN_ONLY_SEC_PROPS, couch_db:get_security(Db2)).
cpse_set_security(DbName) ->
diff --git a/t.sh b/t.sh
index 3334873..b66ac75 100755
--- a/t.sh
+++ b/t.sh
@@ -14,13 +14,13 @@
sleep 5
ls -lah dev/lib/node1/data/shards/00000000-ffffffff/
-$CURL $COUCH/asd/foo
-$CURL $COUCH/asd/bar/zomg
-ls -lah dev/lib/node1/data/shards/00000000-ffffffff/
-
-# TODO second compaction
-# $CURL -X POST -Hcontent-type:application/json $COUCH/asd/_compact
+# $CURL $COUCH/asd/foo
+# $CURL $COUCH/asd/bar/zomg
# ls -lah dev/lib/node1/data/shards/00000000-ffffffff/
-# sleep 5
+
+# second compaction
+# $CURL -X POST -Hcontent-type:application/json $COUCH/asd/_compact
+# sleep 3
+# ls -lah dev/lib/node1/data/shards/00000000-ffffffff/
# hexdump -C dev/lib/node1/data/shards/00000000-ffffffff/asd.*.couch
\ No newline at end of file