Skip to content

Commit

Permalink
range-overla
Browse files Browse the repository at this point in the history
  • Loading branch information
kjnilsson committed Oct 21, 2024
1 parent fda9723 commit 2d7ce45
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 28 deletions.
2 changes: 1 addition & 1 deletion src/ra_log.erl
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ commit_tx(#?MODULE{tx = false} = State) ->
state() | no_return().
append({Idx, Term, Cmd0} = Entry,
#?MODULE{cfg = #cfg{uid = UId,
wal = Wal} =Cfg,
wal = Wal} = Cfg,
last_index = LastIdx,
tx = false,
mem_table = Mt0} = State)
Expand Down
27 changes: 2 additions & 25 deletions src/ra_log_reader.erl
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
update_first_index/2,
fold/5,
sparse_read/3,
fetch_term/2,
range_overlap/4
fetch_term/2
]).

-include("ra.hrl").
Expand Down Expand Up @@ -207,22 +206,13 @@ segment_term_query0(Idx, [_ | Tail], Open, Cfg) ->
segment_term_query0(_Idx, [], Open, _) ->
{undefined, Open}.

range_overlap(F, L, S, E)
when E >= F andalso
L >= S andalso
F =< L ->
X = max(F, S),
{X, min(L, E), F, X - 1};
range_overlap(F, L, _, _) ->
{undefined, F, L}.

segrefs_to_read(From0, To0, _SegRefs, Acc)
when To0 < From0 ->
Acc;
segrefs_to_read(From0, To0, [{SStart, SEnd, FileName} | SegRefs], Acc)
when SStart =< To0 andalso
SEnd >= From0 ->
%% TOOD: use range_overlap/4 here?
%% TOOD: use ra_range:range_overlap/2 here?
From = max(From0, SStart),
To = min(To0, SEnd),
Spec = {From, To, FileName},
Expand Down Expand Up @@ -337,19 +327,6 @@ compact_seg_refs_test() ->
PrevRefs = [{10, 75, "2"}, {1, 9, "1"}],
?assertEqual([{10, 100, "2"}, {1, 9, "1"}], compact_seg_refs(NewRefs, PrevRefs)).

range_overlap_test() ->
{undefined, 1, 10} = range_overlap(1, 10, 20, 30),
{undefined, 21, 30} = range_overlap(21, 30, 10, 20),
{20, 20, 20, 19} = range_overlap(20, 30, 10, 20),
{20, 30, 10, 19} = range_overlap(10, 30, 20, 40),
?assertEqual({79, 99, 79, 78}, range_overlap(79, 99, 75, 111)),
?assertEqual({undefined, 79, 78}, range_overlap(79, 78, 50, 176)),
?assertEqual({undefined, 79, 78}, range_overlap(79, 78, 25, 49)),
% {10, 10} = range_overlap(1, 10, 10, 30),
% {5, 10} = range_overlap(1, 10, 5, 30),
% {7, 10} = range_overlap(7, 10, 5, 30),
ok.

segrefs_to_read_test() ->
SegRefs = [{412,499,"00000005.segment"},
{284,411,"00000004.segment"},
Expand Down
4 changes: 2 additions & 2 deletions src/ra_server.erl
Original file line number Diff line number Diff line change
Expand Up @@ -1891,8 +1891,8 @@ make_pipelined_rpc_effects(#{cfg := #cfg{id = Id,
BatchSize = min(MaxBatchSize,
MaxPipelineCount - NumInFlight),
{NewNextIdx, Eff, S} =
make_rpc_effect(PeerId, Peer0, BatchSize, S0,
EntryCache),
make_rpc_effect(PeerId, Peer0, BatchSize, S0,
EntryCache),
Peer = Peer0#{next_index => NewNextIdx,
commit_index_sent => CommitIndex},
NewNumInFlight = NewNextIdx - MatchIdx - 1,
Expand Down

0 comments on commit 2d7ce45

Please sign in to comment.