refactor: rename `compute_hash_*` → `compute_topic_*`

This commit is contained in:
Andrew Mayorov 2023-01-03 18:53:19 +03:00
parent b300601a65
commit d5941c568b
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
2 changed files with 33 additions and 33 deletions

View File

@ -101,10 +101,10 @@
-export([ -export([
make_message_key/4, make_message_key/4,
compute_bitstring/3, compute_bitstring/3,
compute_hash_bitmask/2, compute_topic_bitmask/2,
compute_next_seek/4, compute_next_seek/4,
compute_time_seek/3, compute_time_seek/3,
compute_hash_seek/4, compute_topic_seek/4,
hash/2 hash/2
]). ]).
@ -255,7 +255,7 @@ make_iterator(DB = #db{handle = DBHandle, cf = CFHandle}, TopicFilter, StartTime
case rocksdb:iterator(DBHandle, CFHandle, DB#db.read_options) of case rocksdb:iterator(DBHandle, CFHandle, DB#db.read_options) of
{ok, ITHandle} -> {ok, ITHandle} ->
Bitstring = compute_bitstring(TopicFilter, StartTime, DB#db.keymapper), Bitstring = compute_bitstring(TopicFilter, StartTime, DB#db.keymapper),
HashBitmask = compute_hash_bitmask(TopicFilter, DB#db.keymapper), HashBitmask = compute_topic_bitmask(TopicFilter, DB#db.keymapper),
TimeBitmask = compute_time_bitmask(DB#db.keymapper), TimeBitmask = compute_time_bitmask(DB#db.keymapper),
HashBitfilter = Bitstring band HashBitmask, HashBitfilter = Bitstring band HashBitmask,
TimeBitfilter = Bitstring band TimeBitmask, TimeBitfilter = Bitstring band TimeBitmask,
@ -315,9 +315,9 @@ extract(Key, #keymapper{bitsize = Size}) ->
compute_bitstring(Topic, Timestamp, #keymapper{source = Source}) -> compute_bitstring(Topic, Timestamp, #keymapper{source = Source}) ->
compute_bitstring(Topic, Timestamp, Source, 0). compute_bitstring(Topic, Timestamp, Source, 0).
-spec compute_hash_bitmask(emqx_topic:words(), keymapper()) -> integer(). -spec compute_topic_bitmask(emqx_topic:words(), keymapper()) -> integer().
compute_hash_bitmask(TopicFilter, #keymapper{source = Source}) -> compute_topic_bitmask(TopicFilter, #keymapper{source = Source}) ->
compute_hash_bitmask(TopicFilter, Source, 0). compute_topic_bitmask(TopicFilter, Source, 0).
-spec compute_time_bitmask(keymapper()) -> integer(). -spec compute_time_bitmask(keymapper()) -> integer().
compute_time_bitmask(#keymapper{source = Source}) -> compute_time_bitmask(#keymapper{source = Source}) ->
@ -346,19 +346,19 @@ compute_bitstring(Tail, Timestamp, [{hash, levels, Size} | Rest], Acc) ->
compute_bitstring(_, _, [], Acc) -> compute_bitstring(_, _, [], Acc) ->
Acc. Acc.
compute_hash_bitmask(Filter, [{timestamp, _, Size} | Rest], Acc) -> compute_topic_bitmask(Filter, [{timestamp, _, Size} | Rest], Acc) ->
compute_hash_bitmask(Filter, Rest, bitwise_concat(Acc, 0, Size)); compute_topic_bitmask(Filter, Rest, bitwise_concat(Acc, 0, Size));
compute_hash_bitmask(['#'], [{hash, _, Size} | Rest], Acc) -> compute_topic_bitmask(['#'], [{hash, _, Size} | Rest], Acc) ->
compute_hash_bitmask(['#'], Rest, bitwise_concat(Acc, 0, Size)); compute_topic_bitmask(['#'], Rest, bitwise_concat(Acc, 0, Size));
compute_hash_bitmask(['+' | Tail], [{hash, _, Size} | Rest], Acc) -> compute_topic_bitmask(['+' | Tail], [{hash, _, Size} | Rest], Acc) ->
compute_hash_bitmask(Tail, Rest, bitwise_concat(Acc, 0, Size)); compute_topic_bitmask(Tail, Rest, bitwise_concat(Acc, 0, Size));
compute_hash_bitmask([], [{hash, level, Size} | Rest], Acc) -> compute_topic_bitmask([], [{hash, level, Size} | Rest], Acc) ->
compute_hash_bitmask([], Rest, bitwise_concat(Acc, ones(Size), Size)); compute_topic_bitmask([], Rest, bitwise_concat(Acc, ones(Size), Size));
compute_hash_bitmask([_ | Tail], [{hash, level, Size} | Rest], Acc) -> compute_topic_bitmask([_ | Tail], [{hash, level, Size} | Rest], Acc) ->
compute_hash_bitmask(Tail, Rest, bitwise_concat(Acc, ones(Size), Size)); compute_topic_bitmask(Tail, Rest, bitwise_concat(Acc, ones(Size), Size));
compute_hash_bitmask(_, [{hash, levels, Size} | Rest], Acc) -> compute_topic_bitmask(_, [{hash, levels, Size} | Rest], Acc) ->
compute_hash_bitmask([], Rest, bitwise_concat(Acc, ones(Size), Size)); compute_topic_bitmask([], Rest, bitwise_concat(Acc, ones(Size), Size));
compute_hash_bitmask(_, [], Acc) -> compute_topic_bitmask(_, [], Acc) ->
Acc. Acc.
compute_time_bitmask([{timestamp, _, Size} | Rest], Acc) -> compute_time_bitmask([{timestamp, _, Size} | Rest], Acc) ->
@ -431,7 +431,7 @@ stop_iteration(It) ->
%% `Bitstring` is out of the hash space defined by `HashBitfilter`. %% `Bitstring` is out of the hash space defined by `HashBitfilter`.
compute_next_seek(_HashMatches = false, _, Bitstring, It) -> compute_next_seek(_HashMatches = false, _, Bitstring, It) ->
NextBitstring = compute_hash_seek( NextBitstring = compute_topic_seek(
Bitstring, Bitstring,
It#it.hash_bitfilter, It#it.hash_bitfilter,
It#it.hash_bitmask, It#it.hash_bitmask,
@ -458,12 +458,12 @@ compute_time_seek(Bitstring, TimeBitfilter, TimeBitmask) ->
%% * greater than `Bitstring`, %% * greater than `Bitstring`,
%% * and falls into the hash space defined by `HashBitfilter`. %% * and falls into the hash space defined by `HashBitfilter`.
%% Note that the result can end up "back" in time and out of the time range. %% Note that the result can end up "back" in time and out of the time range.
compute_hash_seek(Bitstring, HashBitfilter, HashBitmask, Keymapper) -> compute_topic_seek(Bitstring, HashBitfilter, HashBitmask, Keymapper) ->
Sources = Keymapper#keymapper.source, Sources = Keymapper#keymapper.source,
Size = Keymapper#keymapper.bitsize, Size = Keymapper#keymapper.bitsize,
compute_hash_seek(Bitstring, HashBitfilter, HashBitmask, Sources, Size). compute_topic_seek(Bitstring, HashBitfilter, HashBitmask, Sources, Size).
compute_hash_seek(Bitstring, HashBitfilter, HashBitmask, Sources, Size) -> compute_topic_seek(Bitstring, HashBitfilter, HashBitmask, Sources, Size) ->
% NOTE % NOTE
% We're iterating through `Substring` here, in lockstep with `HashBitfilter` % We're iterating through `Substring` here, in lockstep with `HashBitfilter`
% and`HashBitmask`, starting from least signigicant bits. Each bitsource in % and`HashBitmask`, starting from least signigicant bits. Each bitsource in
@ -615,7 +615,7 @@ make_keymapper_test_() ->
]. ].
compute_test_bitmask(TopicFilter) -> compute_test_bitmask(TopicFilter) ->
compute_hash_bitmask( compute_topic_bitmask(
TopicFilter, TopicFilter,
[ [
{hash, level, 3}, {hash, level, 3},
@ -673,8 +673,8 @@ wildcard_bitmask_test_() ->
%% Key3 = |123|999|679|001| Seek = 1 |123|000|678|000| eos %% Key3 = |123|999|679|001| Seek = 1 |123|000|678|000| eos
%% Key4 = |125|011|179|017| Seek = 1 |123|000|678|000| eos %% Key4 = |125|011|179|017| Seek = 1 |123|000|678|000| eos
compute_test_hash_seek(Bitstring, Bitfilter, HBitmask) -> compute_test_topic_seek(Bitstring, Bitfilter, HBitmask) ->
compute_hash_seek( compute_topic_seek(
Bitstring, Bitstring,
Bitfilter, Bitfilter,
HBitmask, HBitmask,
@ -691,7 +691,7 @@ next_seek_test_() ->
[ [
?_assertMatch( ?_assertMatch(
none, none,
compute_test_hash_seek( compute_test_topic_seek(
16#FD_42_4242_043, 16#FD_42_4242_043,
16#FD_42_4242_042, 16#FD_42_4242_042,
16#FF_FF_FFFF_FFF 16#FF_FF_FFFF_FFF
@ -699,7 +699,7 @@ next_seek_test_() ->
), ),
?_assertMatch( ?_assertMatch(
16#FD_11_0678_000, 16#FD_11_0678_000,
compute_test_hash_seek( compute_test_topic_seek(
16#FD_11_0108_121, 16#FD_11_0108_121,
16#FD_00_0678_000, 16#FD_00_0678_000,
16#FF_00_FFFF_000 16#FF_00_FFFF_000
@ -707,7 +707,7 @@ next_seek_test_() ->
), ),
?_assertMatch( ?_assertMatch(
16#FD_12_0678_000, 16#FD_12_0678_000,
compute_test_hash_seek( compute_test_topic_seek(
16#FD_11_0679_919, 16#FD_11_0679_919,
16#FD_00_0678_000, 16#FD_00_0678_000,
16#FF_00_FFFF_000 16#FF_00_FFFF_000
@ -715,7 +715,7 @@ next_seek_test_() ->
), ),
?_assertMatch( ?_assertMatch(
none, none,
compute_test_hash_seek( compute_test_topic_seek(
16#FD_FF_0679_001, 16#FD_FF_0679_001,
16#FD_00_0678_000, 16#FD_00_0678_000,
16#FF_00_FFFF_000 16#FF_00_FFFF_000
@ -723,7 +723,7 @@ next_seek_test_() ->
), ),
?_assertMatch( ?_assertMatch(
none, none,
compute_test_hash_seek( compute_test_topic_seek(
16#FE_11_0179_017, 16#FE_11_0179_017,
16#FD_00_0678_000, 16#FD_00_0678_000,
16#FF_00_FFFF_000 16#FF_00_FFFF_000

View File

@ -154,7 +154,7 @@ t_prop_topic_hash_computes(_) ->
) )
). ).
t_prop_hash_bitmask_computes(_) -> t_prop_topic_bitmask_computes(_) ->
Keymapper = emqx_replay_message_storage:make_keymapper(#{ Keymapper = emqx_replay_message_storage:make_keymapper(#{
timestamp_bits => 16, timestamp_bits => 16,
topic_bits_per_level => [8, 12, 16], topic_bits_per_level => [8, 12, 16],
@ -163,7 +163,7 @@ t_prop_hash_bitmask_computes(_) ->
?assert( ?assert(
proper:quickcheck( proper:quickcheck(
?FORALL(TopicFilter, topic_filter(), begin ?FORALL(TopicFilter, topic_filter(), begin
Mask = emqx_replay_message_storage:compute_hash_bitmask(TopicFilter, Keymapper), Mask = emqx_replay_message_storage:compute_topic_bitmask(TopicFilter, Keymapper),
is_integer(Mask) andalso (Mask < (1 bsl (36 + 6))) is_integer(Mask) andalso (Mask < (1 bsl (36 + 6)))
end) end)
) )