Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dcache-qos: repair faulty queue refresh algorithm in verifier
Motivation: Discovered while investigating RT 10479 Time-outs using QoS in dCache 8.2.23 when doing a QoS transition through namespace and bulk https://rt.dcache.org/Ticket/Display.html?id=10479 The current algorithm for refreshing the queues from the `qos_operation` table uses the total size of the in-memory queues to trigger the query. This is flawed and is susceptible to starving one or more of the queues. Modfication: Two changes have been made: - the existence of any empty queue now triggers the refresh - the refresh is run after available running slots have been filled The second change is for efficiency. The `delegate` API (internal) has been extended with a `refresh()` method. Result: Queue starvation should be avoided and operations of all message types should continue to be processed. Target: master Request: 9.1 Request: 9.0 Request: 8.2 Patch: https://rb.dcache.org/r/14004/ Requires-book: no Requires-notes: yes Acked-by: Dmitry
- Loading branch information
Showing
3 changed files
with
54 additions
and
51 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters