More spec/doc work in leveled_codec
Note that at some stage KeyChanges got overloaded to mean {KeyChanges, TTL}, and the spec now tries to make this a bit clearer
This commit is contained in:
parent
aa34ffda5b
commit
2063cacd8f
3 changed files with 73 additions and 35 deletions
|
@ -127,6 +127,7 @@
|
|||
-define(PENDING_FILEX, "pnd").
|
||||
-define(LOADING_PAUSE, 1000).
|
||||
-define(LOADING_BATCH, 1000).
|
||||
-define(TEST_KC, {[], infinity}).
|
||||
|
||||
-record(state, {manifest = [] :: list(),
|
||||
manifest_sqn = 0 :: integer(),
|
||||
|
@ -671,8 +672,11 @@ get_cdbopts(InkOpts)->
|
|||
CDBopts#cdb_options{waste_path = WasteFP}.
|
||||
|
||||
|
||||
-spec put_object(tuple(), any(), list(), ink_state())
|
||||
-> {ok|rolling, ink_state(), integer()}.
|
||||
-spec put_object(leveled_codec:ledger_key(),
|
||||
any(),
|
||||
leveled_codec:journal_keychanges(),
|
||||
ink_state())
|
||||
-> {ok|rolling, ink_state(), integer()}.
|
||||
%% @doc
|
||||
%% Add the object to the current journal if it fits. If it doesn't fit, a new
|
||||
%% journal must be started, and the old journal is set to "roll" into a read
|
||||
|
@ -1051,12 +1055,14 @@ build_dummy_journal(KeyConvertF) ->
|
|||
{ok, J1} = leveled_cdb:cdb_open_writer(F1),
|
||||
{K1, V1} = {KeyConvertF("Key1"), "TestValue1"},
|
||||
{K2, V2} = {KeyConvertF("Key2"), "TestValue2"},
|
||||
ok = leveled_cdb:cdb_put(J1,
|
||||
{1, stnd, K1},
|
||||
create_value_for_journal({V1, []}, false)),
|
||||
ok = leveled_cdb:cdb_put(J1,
|
||||
{2, stnd, K2},
|
||||
create_value_for_journal({V2, []}, false)),
|
||||
ok =
|
||||
leveled_cdb:cdb_put(J1,
|
||||
{1, stnd, K1},
|
||||
create_value_for_journal({V1, ?TEST_KC}, false)),
|
||||
ok =
|
||||
leveled_cdb:cdb_put(J1,
|
||||
{2, stnd, K2},
|
||||
create_value_for_journal({V2, ?TEST_KC}, false)),
|
||||
ok = leveled_cdb:cdb_roll(J1),
|
||||
LK1 = leveled_cdb:cdb_lastkey(J1),
|
||||
lists:foldl(fun(X, Closed) ->
|
||||
|
@ -1075,12 +1081,14 @@ build_dummy_journal(KeyConvertF) ->
|
|||
{ok, J2} = leveled_cdb:cdb_open_writer(F2),
|
||||
{K1, V3} = {KeyConvertF("Key1"), "TestValue3"},
|
||||
{K4, V4} = {KeyConvertF("Key4"), "TestValue4"},
|
||||
ok = leveled_cdb:cdb_put(J2,
|
||||
{3, stnd, K1},
|
||||
create_value_for_journal({V3, []}, false)),
|
||||
ok = leveled_cdb:cdb_put(J2,
|
||||
{4, stnd, K4},
|
||||
create_value_for_journal({V4, []}, false)),
|
||||
ok =
|
||||
leveled_cdb:cdb_put(J2,
|
||||
{3, stnd, K1},
|
||||
create_value_for_journal({V3, ?TEST_KC}, false)),
|
||||
ok =
|
||||
leveled_cdb:cdb_put(J2,
|
||||
{4, stnd, K4},
|
||||
create_value_for_journal({V4, ?TEST_KC}, false)),
|
||||
LK2 = leveled_cdb:cdb_lastkey(J2),
|
||||
ok = leveled_cdb:cdb_close(J2),
|
||||
Manifest = [{1, "../test/journal/journal_files/nursery_1", "pid1", LK1},
|
||||
|
@ -1119,11 +1127,11 @@ simple_inker_test() ->
|
|||
compression_method=native,
|
||||
compress_on_receipt=true}),
|
||||
Obj1 = ink_get(Ink1, "Key1", 1),
|
||||
?assertMatch({{1, "Key1"}, {"TestValue1", []}}, Obj1),
|
||||
?assertMatch({{1, "Key1"}, {"TestValue1", ?TEST_KC}}, Obj1),
|
||||
Obj3 = ink_get(Ink1, "Key1", 3),
|
||||
?assertMatch({{3, "Key1"}, {"TestValue3", []}}, Obj3),
|
||||
?assertMatch({{3, "Key1"}, {"TestValue3", ?TEST_KC}}, Obj3),
|
||||
Obj4 = ink_get(Ink1, "Key4", 4),
|
||||
?assertMatch({{4, "Key4"}, {"TestValue4", []}}, Obj4),
|
||||
?assertMatch({{4, "Key4"}, {"TestValue4", ?TEST_KC}}, Obj4),
|
||||
ink_close(Ink1),
|
||||
clean_testdir(RootPath).
|
||||
|
||||
|
@ -1143,9 +1151,9 @@ simple_inker_completeactivejournal_test() ->
|
|||
compression_method=native,
|
||||
compress_on_receipt=true}),
|
||||
Obj1 = ink_get(Ink1, "Key1", 1),
|
||||
?assertMatch({{1, "Key1"}, {"TestValue1", []}}, Obj1),
|
||||
?assertMatch({{1, "Key1"}, {"TestValue1", ?TEST_KC}}, Obj1),
|
||||
Obj2 = ink_get(Ink1, "Key4", 4),
|
||||
?assertMatch({{4, "Key4"}, {"TestValue4", []}}, Obj2),
|
||||
?assertMatch({{4, "Key4"}, {"TestValue4", ?TEST_KC}}, Obj2),
|
||||
ink_close(Ink1),
|
||||
clean_testdir(RootPath).
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue