Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transfers: rework heartbeat handling. Closes #5252 #5306

Merged
merged 1 commit into from
Mar 14, 2022

Conversation

rcarpa
Copy link
Contributor

@rcarpa rcarpa commented Mar 2, 2022

Right now heartbeats are updated in the database at each iteration
(each activity for multi-activity daemons). This forces us to use
a big "older_than" value to avoid the race condition when a big bulk
size and slow access to transfertool makes hearbeats expire.
At the same time, this puts strain on database with un-needed heartbeat
updates when the daemons are lightly loaded.

Rework this behavior to perform hearbeat_handler.live() more frequently
(each submission, for example), but modify live() to only perform a
database update if enough time has passed from last update.

@rcarpa rcarpa force-pushed the patch-5252-conveyor_heartbeat_handling branch from 19f2eba to 9aa6acc Compare March 8, 2022 09:41
Copy link
Member

@bari12 bari12 left a comment

Choose a reason for hiding this comment

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

I wonder if we should move the HeartbeatHandler right away to a more common place? Core.heartbeat? It clearly seems like something we should use in other daemons too.

lib/rucio/daemons/conveyor/common.py Show resolved Hide resolved
lib/rucio/daemons/conveyor/common.py Show resolved Hide resolved
Right now heartbeats are updated in the database at each iteration
(each activity for multi-activity daemons). This forces us to use
a big "older_than" value to avoid the race condition when a big bulk
size and slow access to transfertool makes hearbeats expire.
At the same time, this puts strain on database with un-needed heartbeat
updates when the daemons are lightly loaded.

Rework this behavior to perform hearbeat_handler.live() more frequently
(each submission, for example), but modify live() to only perform a
database update if enough time has passed from last update.
@rcarpa rcarpa force-pushed the patch-5252-conveyor_heartbeat_handling branch from 9aa6acc to ded5e90 Compare March 14, 2022 13:41
@bari12 bari12 merged commit 59cf849 into rucio:master Mar 14, 2022
@rcarpa rcarpa deleted the patch-5252-conveyor_heartbeat_handling branch March 24, 2022 15:08
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.

None yet

2 participants