diff --git a/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl b/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl index c222afdb2..9184a3530 100644 --- a/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl +++ b/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl @@ -48,6 +48,7 @@ %% Type declarations %%================================================================================ +-define(ACCUM_TIMEOUT, 4). -define(DRAIN_TIMEOUT, 1). -define(COOLDOWN_TIMEOUT_MIN, 1000). -define(COOLDOWN_TIMEOUT_MAX, 5000). @@ -112,7 +113,7 @@ handle_cast(_Cast, S) -> {noreply, S}. handle_info(Req = {_Pid, _Ref, #message{}}, S) -> - ok = timer:sleep(?DRAIN_TIMEOUT), + ok = timer:sleep(?ACCUM_TIMEOUT), Batch = [Req | drain_requests(1, max_batch_size())], _ = flush(Batch, S), true = erlang:garbage_collect(), @@ -137,7 +138,7 @@ drain_requests(N, M) -> receive Req = {_Pid, _Ref, #message{}} -> [Req | drain_requests(N + 1, M)] - after 0 -> + after ?DRAIN_TIMEOUT -> [N] end.