Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core: don't contact pools for regulary expired pins
Motivation: Pin-manager keeps a list on pins in different states in its pins database table. This is necessary because unpinning can be manually requested ahead of the originally specified pin lifetime, in which case the pool needs to be contacted for removal -- otherwise pools will remove expired sticky bits on their own. Extending a pin's lifetime is also forwarded to and set in the pool. Currently, pin-manager regularly expires pin entries in the database from state PINNED to READY_TO_UNPIN when their lifetime expires. These pins in state READY_TO_UNPIN are later removed by another process that contacts the pool where the replica is pinned and later removed the DB entry. Contacting the pool is unnecessary for regular pin expirations, however. These pin entries can directly be removed from the pins table and thus don't need to be limited to the chunked unpinning that aims to limit the messaging burden. The same is true for pins that expire in state PINNING: if the requests are still ongoing, they will be cancelled by PoolManager who is also aware of the timeout. Modification: The regular pin expiration task sets the 'pool' field to null, indicating that a pool does not need to be contaced for removal of the corresponding sticky bit. These pin database entries in state READY_TO_UNPIN withut a pool are removed before of the chunked pin expiry that necessitates contacting the pool. Result: Pin-manager only contacts a pool when necessary. When it does not need to do so, pin removal should be much faster as these removals are no longer controlled by the property `pinmanager.max-unpins-per-run`. Target: master Requires-notes: yes Requires-book: yes Patch: https://rb.dcache.org/r/14002/ Acked-by: Dmitry Litvintsev, Tigran Mkrtchyan
- Loading branch information
Showing
7 changed files
with
69 additions
and
25 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
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
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