Skip to content

Commit 30ec921

Browse files
authored
Mas i449 directpromptofdeletions (#450)
* Move prompt of deletions to Inker It is a series of casts, so no reason to offload this to the clerk. Simplifies potential races in shutdown * Rename * Change cache sizes In the hope of making test more consistent
1 parent af0f2bb commit 30ec921

File tree

4 files changed

+10
-22
lines changed

4 files changed

+10
-22
lines changed

src/leveled_iclerk.erl

-18
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,15 @@
8585
clerk_compact/6,
8686
clerk_hashtablecalc/3,
8787
clerk_trim/3,
88-
clerk_promptdeletions/3,
8988
clerk_stop/1,
9089
clerk_loglevel/2,
9190
clerk_addlogs/2,
9291
clerk_removelogs/2]).
9392

9493
-export([schedule_compaction/3]).
9594

96-
-define(JOURNAL_FILEX, "cdb").
97-
-define(PENDING_FILEX, "pnd").
9895
-define(SAMPLE_SIZE, 192).
9996
-define(BATCH_SIZE, 32).
100-
-define(BATCHES_TO_CHECK, 8).
10197
-define(CRC_SIZE, 4).
10298
-define(DEFAULT_RELOAD_STRATEGY, leveled_codec:inker_reload_strategy([])).
10399
-define(INTERVALS_PER_HOUR, 4).
@@ -188,12 +184,6 @@ clerk_compact(Pid, Checker, InitiateFun, CloseFun, FilterFun, Manifest) ->
188184
clerk_trim(Pid, PersistedSQN, ManifestAsList) ->
189185
gen_server:cast(Pid, {trim, PersistedSQN, ManifestAsList}).
190186

191-
-spec clerk_promptdeletions(pid(), pos_integer(), list()) -> ok.
192-
%% @doc
193-
%%
194-
clerk_promptdeletions(Pid, ManifestSQN, DeletedFiles) ->
195-
gen_server:cast(Pid, {prompt_deletions, ManifestSQN, DeletedFiles}).
196-
197187
-spec clerk_hashtablecalc(ets:tid(), integer(), pid()) -> ok.
198188
%% @doc
199189
%% Spawn a dedicated clerk for the process of calculating the binary view
@@ -419,14 +409,6 @@ handle_cast({trim, PersistedSQN, ManifestAsList}, State) ->
419409
leveled_log:log(ic007, []),
420410
ok = leveled_inker:ink_clerkcomplete(State#state.inker, [], FilesToDelete),
421411
{noreply, State};
422-
handle_cast({prompt_deletions, ManifestSQN, FilesToDelete}, State) ->
423-
lists:foreach(fun({_SQN, _FN, J2D, _LK}) ->
424-
leveled_cdb:cdb_deletepending(J2D,
425-
ManifestSQN,
426-
State#state.inker)
427-
end,
428-
FilesToDelete),
429-
{noreply, State};
430412
handle_cast({hashtable_calc, HashTree, StartPos, CDBpid}, State) ->
431413
{IndexList, HashTreeBin} = leveled_cdb:hashtable_calc(HashTree, StartPos),
432414
ok = leveled_cdb:cdb_returnhashtable(CDBpid, IndexList, HashTreeBin),

src/leveled_inker.erl

+6-3
Original file line numberDiff line numberDiff line change
@@ -736,9 +736,12 @@ handle_cast({clerk_complete, ManifestSnippet, FilesToDelete}, State) ->
736736
NewManifestSQN = State#state.manifest_sqn + 1,
737737
leveled_imanifest:printer(Man1),
738738
leveled_imanifest:writer(Man1, NewManifestSQN, State#state.root_path),
739-
ok = leveled_iclerk:clerk_promptdeletions(State#state.clerk,
740-
NewManifestSQN,
741-
FilesToDelete),
739+
lists:foreach(
740+
fun({_SQN, _FN, J2D, _LK}) ->
741+
leveled_cdb:cdb_deletepending(J2D, NewManifestSQN, self())
742+
end,
743+
FilesToDelete
744+
),
742745
{noreply, State#state{manifest=Man1,
743746
manifest_sqn=NewManifestSQN,
744747
pending_removals=FilesToDelete,

test/end_to_end/basic_SUITE.erl

+2
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,8 @@ fetchput_snapshot(_Config) ->
388388
RootPath = testutil:reset_filestructure(),
389389
StartOpts1 = [{root_path, RootPath},
390390
{max_journalsize, 30000000},
391+
{cache_size, 2000},
392+
{max_pencillercachesize, 16000},
391393
{sync_strategy, none}],
392394
{ok, Bookie1} = leveled_bookie:book_start(StartOpts1),
393395
{TestObject, TestSpec} = testutil:generate_testobject(),

test/property/leveled_statemeqc.erl

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
[{gen_fsm, send_event, 2}]}]).
3131

3232
-define(NUMTESTS, 1000).
33+
-define(TEST_TIMEOUT, 300).
3334
-define(QC_OUT(P),
3435
eqc:on_output(fun(Str, Args) ->
3536
io:format(user, Str, Args) end, P)).
@@ -42,7 +43,7 @@
4243

4344

4445
eqc_test_() ->
45-
Timeout = 50,
46+
Timeout = ?TEST_TIMEOUT,
4647
{timeout, max(2 * Timeout, Timeout + 10),
4748
?_assertEqual(true, eqc:quickcheck(eqc:testing_time(Timeout, ?QC_OUT(prop_db()))))}.
4849

0 commit comments

Comments
 (0)