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

Umesh Kumar Kumawat updated HBASE-29912:
----------------------------------------
    Description: 
Codel switch from fifo to lifo and it does this when queue size reached an 
threshold.

For now codel lifoThreshold is applied on hard limit. By default soft limit of 
the queue remains 100 (10 handler per queue 
(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY) and we use 
DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER is 10). And 250 is hard limit. 

This way we are never achiving out desired behaviour. 

 

In this Jira we will also reduce CALL_QUEUE_CODEL_DEFAULT_TARGET_DELAY to 5ms.

I think that after HBASE-16089 codel target delay was changed to 100, that is 
not standard for CoDel ([^HBASE-16089.v3.patch]). I have changed it back.
To visualize why we should have 5 target delay with 100 interval, I used the 
[model|https://github.com/Umeshkumar9414/hbase/blob/0056886fb540ca1cfd9035aec489a3106c47bc09/hbase-server/src/main/resources/hbase-webapps/queue-simulator/adaptive-lifo-codel-simulator.html],
 With target delay 100 and interval 100 we are more prone the queue being full, 
although CoDel will be still helpful in LIFO mode but a full queue is problem 
as it can cause OOM.

  was:
Codel switch from fifo to lifo and it does this when queue size reached an 
threshold.

For now codel lifoThreshold is applied on hard limit. By default soft limit of 
the queue remains 100 (10 handler per queue 
(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY) and we use 
DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER is 10). And 250 is hard limit. 

This way we are never achiving out desired behaviour. 

 

In this Jira we will also reduce CALL_QUEUE_CODEL_DEFAULT_TARGET_DELAY to 5ms.


> Codel lifoThreshold should be applied on soft queue limit instead of hard 
> limit
> -------------------------------------------------------------------------------
>
>                 Key: HBASE-29912
>                 URL: https://issues.apache.org/jira/browse/HBASE-29912
>             Project: HBase
>          Issue Type: Bug
>          Components: rpc
>    Affects Versions: 3.0.0-beta-1, 2.6.4, 2.5.13
>            Reporter: Umesh Kumar Kumawat
>            Assignee: Umesh Kumar Kumawat
>            Priority: Major
>              Labels: pull-request-available
>
> Codel switch from fifo to lifo and it does this when queue size reached an 
> threshold.
> For now codel lifoThreshold is applied on hard limit. By default soft limit 
> of the queue remains 100 (10 handler per queue 
> (CALL_QUEUE_HANDLER_FACTOR_CONF_KEY) and we use 
> DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER is 10). And 250 is hard limit. 
> This way we are never achiving out desired behaviour. 
>  
> In this Jira we will also reduce CALL_QUEUE_CODEL_DEFAULT_TARGET_DELAY to 5ms.
> I think that after HBASE-16089 codel target delay was changed to 100, that is 
> not standard for CoDel ([^HBASE-16089.v3.patch]). I have changed it back.
> To visualize why we should have 5 target delay with 100 interval, I used the 
> [model|https://github.com/Umeshkumar9414/hbase/blob/0056886fb540ca1cfd9035aec489a3106c47bc09/hbase-server/src/main/resources/hbase-webapps/queue-simulator/adaptive-lifo-codel-simulator.html],
>  With target delay 100 and interval 100 we are more prone the queue being 
> full, although CoDel will be still helpful in LIFO mode but a full queue is 
> problem as it can cause OOM.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to