[ 
https://issues.apache.org/jira/browse/GEODE-6891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamilla Aslami reassigned GEODE-6891:
-------------------------------------

    Assignee: Kamilla Aslami

> ClusterDistributionManager.SerialQueuedExecutorPool.getThrottledSerialExecutor
>  has some problems
> ------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-6891
>                 URL: https://issues.apache.org/jira/browse/GEODE-6891
>             Project: Geode
>          Issue Type: Bug
>          Components: messaging
>            Reporter: Darrel Schneider
>            Assignee: Kamilla Aslami
>            Priority: Major
>
> The getThrottledSerialExecutor has the following issues:
> 1. It reads that stat: DistributionStats.getSerialQueueBytes(). If stats are 
> disabled then the throttling would be disabled. Someone needs to maintain 
> this value in a local atomic.
> 2. It reads the stat in three different places. One of those is outside the 
> loop but that seems wrong. Each time it is used inside the loop to calculate 
> how long to sleep it should be using the current value.
> 3. It is compared against two different constants. To get in the loop it must 
> be greater than TOTAL_SERIAL_QUEUE_THROTTLE. To exit the loop it must be >= 
> to TOTAL_SERIAL_QUEUE_BYTE_LIMIT. This seems wrong but it might be correct.
> 4. The constant TOTAL_SERIAL_QUEUE_THROTTLE is calculated from 
> SERIAL_QUEUE_BYTE_LIMIT. This looks like a copy and past mistake. I think it 
> should be TOTAL_SERIAL_QUEUE_BYTE_LIMIT
> 5. It looks like the intent of this code is to block message senders if we 
> currently have more than TOTAL_SERIAL_QUEUE_BYTE_LIMIT message bytes queued 
> up for sending. But the whole sleep calculation is scary. If we want this 
> throttling then it seems like instead of sleeping we should wait until we see 
> the value go below a threshold. We can make this event driven since it is our 
> code that will decrement the value as messages are removed from the queue.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to