Skip to content

HBASE-29912 Codel lifoThreshold should be applied on soft queue limit…#7864

Open
Umeshkumar9414 wants to merge 7 commits into
apache:masterfrom
Umeshkumar9414:HBASE-29912
Open

HBASE-29912 Codel lifoThreshold should be applied on soft queue limit…#7864
Umeshkumar9414 wants to merge 7 commits into
apache:masterfrom
Umeshkumar9414:HBASE-29912

Conversation

@Umeshkumar9414

@Umeshkumar9414 Umeshkumar9414 commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

… instead of hard limit

I think that after HBASE-16089 codel target delay was changed to 100, that is not standard for CoDel (patch). I have changed it back.
To visualize why we should have 5 target delay with 100 interval, I used the model, 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.


// so we can calculate actual threshold to switch to LIFO under load
private int maxCapacity;
private int currentQueueLimit;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because this can be updated with onConfigurationChange should this be volatile ? Just a nit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is also confusing in that it seems to shadow a variable of the same name that is declared volatile?

Please don't shadow. Why do we need this separately?

@Umeshkumar9414 Umeshkumar9414 Mar 6, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made currentQueueLimit volatile.

Please don't shadow. Why do we need this separately?

Generally a queue should only handle hard limit and layer above it can handle soft limit and that is what was happening but for codel, we needed queue to know the soft limit as well, I didn't saw a way to use the same variable at both place.

@apurtell apurtell Mar 9, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least let's not shadow the parent class's variable with the same name. That is a code smell. Pick another one.

@Umeshkumar9414

Copy link
Copy Markdown
Contributor Author

Yetus JDK17 Hadoop3 Unit check failed on TestNamespaceReplication Test case with timout, I checked on my local, it is passing. No related change in this PR as well. Looks like a flakey.

@Umeshkumar9414

Copy link
Copy Markdown
Contributor Author

cc @saintstack

@apurtell apurtell left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor changes needed. Otherwise lgtm.

Comment thread hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java Outdated
Comment thread hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java Outdated

@apurtell apurtell left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything else looks good, but the new test will probably flake.

@Umeshkumar9414

Copy link
Copy Markdown
Contributor Author

For branch-2.6 : #8344
For branch-2 : #8345

@Umeshkumar9414

Copy link
Copy Markdown
Contributor Author

For branch-2.5 #8346

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants