Mas d31 i413 (#415)
* Allow snapshots to be reused in queries Allow for a full bookie snapshot to be re-used for multiple queries, not just KV fetches. * Reduce log noise The internal dummy tag is expected so should not prompt a log on reload * Snapshot should have same status of active db wrt head_only and head_lookup * Allow logging to specified on snapshots * Shutdown snapshot bookie is primary goes down Inker and Penciller already will shut down based on `erlang:monitor/2` * Review feedback Formatting and code readability fixes
This commit is contained in:
parent
9e804924a8
commit
d544db5461
9 changed files with 289 additions and 183 deletions
|
@ -404,6 +404,8 @@ fetchput_snapshot(_Config) ->
|
|||
testutil:check_forlist(Bookie1, ChkList1),
|
||||
testutil:check_forlist(SnapBookie1, ChkList1),
|
||||
|
||||
compare_foldwithsnap(Bookie1, SnapBookie1, ChkList1),
|
||||
|
||||
% Close the snapshot, check the original store still has the objects
|
||||
|
||||
ok = leveled_bookie:book_close(SnapBookie1),
|
||||
|
@ -480,6 +482,8 @@ fetchput_snapshot(_Config) ->
|
|||
testutil:check_forlist(SnapBookie3, ChkList2),
|
||||
testutil:check_forlist(SnapBookie2, ChkList1),
|
||||
io:format("Started new snapshot and check for new objects~n"),
|
||||
|
||||
compare_foldwithsnap(Bookie2, SnapBookie3, ChkList3),
|
||||
|
||||
% Load yet more objects, these are replacement objects for the last load
|
||||
|
||||
|
@ -563,6 +567,28 @@ fetchput_snapshot(_Config) ->
|
|||
testutil:reset_filestructure().
|
||||
|
||||
|
||||
compare_foldwithsnap(Bookie, SnapBookie, ChkList) ->
|
||||
HeadFoldFun = fun(B, K, _Hd, Acc) -> [{B, K}|Acc] end,
|
||||
KeyFoldFun = fun(B, K, Acc) -> [{B, K}|Acc] end,
|
||||
{async, HeadFoldDB} =
|
||||
leveled_bookie:book_headfold(
|
||||
Bookie, ?RIAK_TAG, {HeadFoldFun, []}, true, false, false
|
||||
),
|
||||
{async, HeadFoldSnap} =
|
||||
leveled_bookie:book_headfold(
|
||||
SnapBookie, ?RIAK_TAG, {HeadFoldFun, []}, true, false, false
|
||||
),
|
||||
true = HeadFoldDB() == HeadFoldSnap(),
|
||||
|
||||
testutil:check_forlist(SnapBookie, ChkList),
|
||||
|
||||
{async, KeyFoldSnap} =
|
||||
leveled_bookie:book_keylist(
|
||||
SnapBookie, ?RIAK_TAG, {KeyFoldFun, []}
|
||||
),
|
||||
true = HeadFoldSnap() == KeyFoldSnap().
|
||||
|
||||
|
||||
load_and_count(_Config) ->
|
||||
% Use artificially small files, and the load keys, counting they're all
|
||||
% present
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue