[
https://issues.apache.org/jira/browse/ARTEMIS-4314?focusedWorklogId=865865&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-865865
]
ASF GitHub Bot logged work on ARTEMIS-4314:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 15/Jun/23 19:38
Start Date: 15/Jun/23 19:38
Worklog Time Spent: 10m
Work Description: gtully commented on PR #4509:
URL:
https://github.com/apache/activemq-artemis/pull/4509#issuecomment-1593619213
updated to batch on excess capacity, as determined by the pending metric, we
can have messages in delivery which we will now ignore for the purpose of
pulling a batch. this means that if we have some spare capacity to process,
messages on the upstream won't be stranded.
Issue Time Tracking
-------------------
Worklog Id: (was: 865865)
Time Spent: 20m (was: 10m)
> Federation, support consumerWindowSize zero and federate in batches only when
> the local queue is empty
> ------------------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-4314
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4314
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Components: Federation
> Affects Versions: 2.28.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Priority: Major
> Fix For: 2.29.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Dual queue federation, where clusters federate in both direction can suffer
> from message flip flopping once the priority adjustment kicks in.
> If there is a large backlog, the lower priority federation consumer is in
> play once all of the local consumer credit is exhausted and the backlog can
> drain to the other cluster.
> If demand is low there, the process can repeat. limiting the rate of the
> federation consumer can help but it is not ideal b/c when there is no local
> demand, we want to have a high rate of migration.
>
> A possible solution is to have the federation consumer manage its own credit
> and only flow messages when the local queue is empty. Then flow a batch of
> messages, and await again that the local queue is empty. In this way, there
> is no thundering heard effect, but there is also fast migration of messages
> once there is demand.
> the consumerWindowSize=0 is already in play for consumer.receive calls and
> there is already a defaultConsumerWindowSize for an address. These can be
> combined to realise batchFederationOnEmpty semantics.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)