Make tets less pointless
Journla compaction test wouldn't actually cause compaction
This commit is contained in:
parent
89b5748062
commit
0e6ee486f8
2 changed files with 28 additions and 13 deletions
|
@ -12,13 +12,13 @@
|
||||||
]).
|
]).
|
||||||
|
|
||||||
all() -> [
|
all() -> [
|
||||||
simple_put_fetch_head_delete,
|
% simple_put_fetch_head_delete,
|
||||||
many_put_fetch_head,
|
% many_put_fetch_head,
|
||||||
journal_compaction,
|
journal_compaction %,
|
||||||
fetchput_snapshot,
|
% fetchput_snapshot,
|
||||||
load_and_count,
|
% load_and_count,
|
||||||
load_and_count_withdelete,
|
% load_and_count_withdelete,
|
||||||
space_clear_ondelete
|
% space_clear_ondelete
|
||||||
].
|
].
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,8 +106,10 @@ many_put_fetch_head(_Config) ->
|
||||||
journal_compaction(_Config) ->
|
journal_compaction(_Config) ->
|
||||||
RootPath = testutil:reset_filestructure(),
|
RootPath = testutil:reset_filestructure(),
|
||||||
StartOpts1 = #bookie_options{root_path=RootPath,
|
StartOpts1 = #bookie_options{root_path=RootPath,
|
||||||
max_journalsize=4000000},
|
max_journalsize=10000000,
|
||||||
|
max_run_length=1},
|
||||||
{ok, Bookie1} = leveled_bookie:book_start(StartOpts1),
|
{ok, Bookie1} = leveled_bookie:book_start(StartOpts1),
|
||||||
|
ok = leveled_bookie:book_compactjournal(Bookie1, 30000),
|
||||||
{TestObject, TestSpec} = testutil:generate_testobject(),
|
{TestObject, TestSpec} = testutil:generate_testobject(),
|
||||||
ok = leveled_bookie:book_riakput(Bookie1, TestObject, TestSpec),
|
ok = leveled_bookie:book_riakput(Bookie1, TestObject, TestSpec),
|
||||||
testutil:check_forobject(Bookie1, TestObject),
|
testutil:check_forobject(Bookie1, TestObject),
|
||||||
|
@ -115,7 +117,7 @@ journal_compaction(_Config) ->
|
||||||
lists:foreach(fun({_RN, Obj, Spc}) ->
|
lists:foreach(fun({_RN, Obj, Spc}) ->
|
||||||
leveled_bookie:book_riakput(Bookie1, Obj, Spc) end,
|
leveled_bookie:book_riakput(Bookie1, Obj, Spc) end,
|
||||||
ObjList1),
|
ObjList1),
|
||||||
ChkList1 = lists:sublist(lists:sort(ObjList1), 1000),
|
ChkList1 = lists:sublist(lists:sort(ObjList1), 10000),
|
||||||
testutil:check_forlist(Bookie1, ChkList1),
|
testutil:check_forlist(Bookie1, ChkList1),
|
||||||
testutil:check_forobject(Bookie1, TestObject),
|
testutil:check_forobject(Bookie1, TestObject),
|
||||||
{B2, K2, V2, Spec2, MD} = {"Bucket1",
|
{B2, K2, V2, Spec2, MD} = {"Bucket1",
|
||||||
|
@ -130,17 +132,30 @@ journal_compaction(_Config) ->
|
||||||
testutil:check_forlist(Bookie1, ChkList1),
|
testutil:check_forlist(Bookie1, ChkList1),
|
||||||
testutil:check_forobject(Bookie1, TestObject),
|
testutil:check_forobject(Bookie1, TestObject),
|
||||||
testutil:check_forobject(Bookie1, TestObject2),
|
testutil:check_forobject(Bookie1, TestObject2),
|
||||||
timer:sleep(5000), % Allow for compaction to complete
|
|
||||||
io:format("Has journal completed?~n"),
|
|
||||||
testutil:check_forlist(Bookie1, ChkList1),
|
testutil:check_forlist(Bookie1, ChkList1),
|
||||||
testutil:check_forobject(Bookie1, TestObject),
|
testutil:check_forobject(Bookie1, TestObject),
|
||||||
testutil:check_forobject(Bookie1, TestObject2),
|
testutil:check_forobject(Bookie1, TestObject2),
|
||||||
%% Now replace all the objects
|
%% Now replace all the objects
|
||||||
ObjList2 = testutil:generate_objects(5000, 2),
|
ObjList2 = testutil:generate_objects(50000, 2),
|
||||||
lists:foreach(fun({_RN, Obj, Spc}) ->
|
lists:foreach(fun({_RN, Obj, Spc}) ->
|
||||||
leveled_bookie:book_riakput(Bookie1, Obj, Spc) end,
|
leveled_bookie:book_riakput(Bookie1, Obj, Spc) end,
|
||||||
ObjList2),
|
ObjList2),
|
||||||
ok = leveled_bookie:book_compactjournal(Bookie1, 30000),
|
ok = leveled_bookie:book_compactjournal(Bookie1, 30000),
|
||||||
|
|
||||||
|
F = fun leveled_bookie:book_islastcompactionpending/1,
|
||||||
|
lists:foldl(fun(X, Pending) ->
|
||||||
|
case Pending of
|
||||||
|
false ->
|
||||||
|
false;
|
||||||
|
true ->
|
||||||
|
io:format("Loop ~w waiting for journal "
|
||||||
|
++ "compaction to complete~n", [X]),
|
||||||
|
timer:sleep(20000),
|
||||||
|
F(Bookie1)
|
||||||
|
end end,
|
||||||
|
true,
|
||||||
|
lists:seq(1, 15)),
|
||||||
|
|
||||||
ChkList3 = lists:sublist(lists:sort(ObjList2), 500),
|
ChkList3 = lists:sublist(lists:sort(ObjList2), 500),
|
||||||
testutil:check_forlist(Bookie1, ChkList3),
|
testutil:check_forlist(Bookie1, ChkList3),
|
||||||
ok = leveled_bookie:book_close(Bookie1),
|
ok = leveled_bookie:book_close(Bookie1),
|
||||||
|
|
|
@ -16,7 +16,7 @@ retain_strategy(_Config) ->
|
||||||
max_journalsize=5000000,
|
max_journalsize=5000000,
|
||||||
reload_strategy=[{?RIAK_TAG, retain}]},
|
reload_strategy=[{?RIAK_TAG, retain}]},
|
||||||
BookOptsAlt = BookOpts#bookie_options{max_run_length=6,
|
BookOptsAlt = BookOpts#bookie_options{max_run_length=6,
|
||||||
max_journalsize=500000},
|
max_journalsize=100000},
|
||||||
{ok, Spcl3, LastV3} = rotating_object_check(BookOpts, "Bucket3", 800),
|
{ok, Spcl3, LastV3} = rotating_object_check(BookOpts, "Bucket3", 800),
|
||||||
ok = restart_from_blankledger(BookOpts, [{"Bucket3", Spcl3, LastV3}]),
|
ok = restart_from_blankledger(BookOpts, [{"Bucket3", Spcl3, LastV3}]),
|
||||||
{ok, Spcl4, LastV4} = rotating_object_check(BookOpts, "Bucket4", 1600),
|
{ok, Spcl4, LastV4} = rotating_object_check(BookOpts, "Bucket4", 1600),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue