From 6ce903ad2b278daefb5dc1da21c29b621f618e3b Mon Sep 17 00:00:00 2001 From: Martin Sumner Date: Thu, 22 Mar 2018 17:12:58 +0000 Subject: [PATCH] Change segment_hahs for HEAD Needs toaling with ?RIAK tag, and so that AAE key-ordered and segment-ordered stores also agree on definition of Segment ID --- src/leveled_codec.erl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/leveled_codec.erl b/src/leveled_codec.erl index 844aa71..0eb8fec 100644 --- a/src/leveled_codec.erl +++ b/src/leveled_codec.erl @@ -98,9 +98,12 @@ segment_hash(Key) when is_binary(Key) -> segment_hash({?RIAK_TAG, Bucket, Key, null}) when is_binary(Bucket), is_binary(Key) -> segment_hash(<>); -segment_hash({?HEAD_TAG, Bucket, Key, SubKey}) - when is_binary(Bucket), is_binary(Key), is_binary(SubKey) -> - segment_hash(<>); +segment_hash({?HEAD_TAG, Bucket, Key, null}) + when is_binary(Bucket), is_binary(Key) -> + segment_hash(<>); +segment_hash({?HEAD_TAG, Bucket, Key, SubK}) + when is_binary(Bucket), is_binary(Key), is_binary(SubK) -> + segment_hash(<>); segment_hash(Key) -> segment_hash(term_to_binary(Key)). @@ -960,5 +963,13 @@ delayedupdate_aaeidx_test() -> AAESpecs = aae_indexspecs(AAE, Bucket, Key, SQN, H, LastMods), ?assertMatch(0, length(AAESpecs)). +head_segment_compare_test() -> + % Reminder to align native and parallel(leveled_ko) key stores for + % kv_index_tictactree + H1 = segment_hash({?HEAD_TAG, <<"B1">>, <<"K1">>, null}), + H2 = segment_hash({?RIAK_TAG, <<"B1">>, <<"K1">>, null}), + H3 = segment_hash({?HEAD_TAG, <<"B1">>, <<"K1">>, <<>>}), + ?assertMatch(H1, H2), + ?assertMatch(H1, H3). -endif.