Remove unnecessary branch. Also, assertion of q3's emptiness is unnecessary as the rest of the code works perfectly well even if q3 isn't empty
This commit is contained in:
parent
226d9285b9
commit
bbae6be610
|
|
@ -1298,44 +1298,39 @@ maybe_deltas_to_betas(State = #vqstate {
|
||||||
q3 = Q3,
|
q3 = Q3,
|
||||||
index_state = IndexState,
|
index_state = IndexState,
|
||||||
transient_threshold = TransientThreshold }) ->
|
transient_threshold = TransientThreshold }) ->
|
||||||
case bpqueue:is_empty(Q3) of
|
#delta { start_seq_id = DeltaSeqId,
|
||||||
false ->
|
count = DeltaCount,
|
||||||
State;
|
end_seq_id = DeltaSeqIdEnd } = Delta,
|
||||||
true ->
|
DeltaSeqId1 =
|
||||||
#delta { start_seq_id = DeltaSeqId,
|
lists:min([rabbit_queue_index:next_segment_boundary(DeltaSeqId),
|
||||||
count = DeltaCount,
|
DeltaSeqIdEnd]),
|
||||||
end_seq_id = DeltaSeqIdEnd } = Delta,
|
{List, IndexState1} =
|
||||||
DeltaSeqId1 =
|
rabbit_queue_index:read(DeltaSeqId, DeltaSeqId1, IndexState),
|
||||||
lists:min([rabbit_queue_index:next_segment_boundary(DeltaSeqId),
|
{Q3a, IndexState2} =
|
||||||
DeltaSeqIdEnd]),
|
betas_from_index_entries(List, TransientThreshold, IndexState1),
|
||||||
{List, IndexState1} =
|
State1 = State #vqstate { index_state = IndexState2 },
|
||||||
rabbit_queue_index:read(DeltaSeqId, DeltaSeqId1, IndexState),
|
case bpqueue:len(Q3a) of
|
||||||
{Q3a, IndexState2} = betas_from_index_entries(
|
0 ->
|
||||||
List, TransientThreshold, IndexState1),
|
%% we ignored every message in the segment due to it being
|
||||||
State1 = State #vqstate { index_state = IndexState2 },
|
%% transient and below the threshold
|
||||||
case bpqueue:len(Q3a) of
|
maybe_deltas_to_betas(
|
||||||
|
State1 #vqstate {
|
||||||
|
delta = Delta #delta { start_seq_id = DeltaSeqId1 }});
|
||||||
|
Q3aLen ->
|
||||||
|
Q3b = bpqueue:join(Q3, Q3a),
|
||||||
|
case DeltaCount - Q3aLen of
|
||||||
0 ->
|
0 ->
|
||||||
%% we ignored every message in the segment due to
|
%% delta is now empty, but it wasn't before, so
|
||||||
%% it being transient and below the threshold
|
%% can now join q2 onto q3
|
||||||
maybe_deltas_to_betas(
|
State1 #vqstate { q2 = bpqueue:new(),
|
||||||
State1 #vqstate {
|
delta = ?BLANK_DELTA,
|
||||||
delta = Delta #delta { start_seq_id = DeltaSeqId1 }});
|
q3 = bpqueue:join(Q3b, Q2) };
|
||||||
Q3aLen ->
|
N when N > 0 ->
|
||||||
Q3b = bpqueue:join(Q3, Q3a),
|
Delta1 = #delta { start_seq_id = DeltaSeqId1,
|
||||||
case DeltaCount - Q3aLen of
|
count = N,
|
||||||
0 ->
|
end_seq_id = DeltaSeqIdEnd },
|
||||||
%% delta is now empty, but it wasn't
|
State1 #vqstate { delta = Delta1,
|
||||||
%% before, so can now join q2 onto q3
|
q3 = Q3b }
|
||||||
State1 #vqstate { q2 = bpqueue:new(),
|
|
||||||
delta = ?BLANK_DELTA,
|
|
||||||
q3 = bpqueue:join(Q3b, Q2) };
|
|
||||||
N when N > 0 ->
|
|
||||||
Delta1 = #delta { start_seq_id = DeltaSeqId1,
|
|
||||||
count = N,
|
|
||||||
end_seq_id = DeltaSeqIdEnd },
|
|
||||||
State1 #vqstate { delta = Delta1,
|
|
||||||
q3 = Q3b }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue