Skip to content

Conversation

@masih
Copy link
Member

@masih masih commented Jun 19, 2024

The alarming system is used to schedule successive rebroadcasts should the conditions permit rebroadcasting messages. The alarming system works using absolute time. This means if a node is busy with other things, e.g. processing queued messages, an alarm might not fire at absolute specified time.

Apart from the initial rebroadcast all other successive rebroadcast alarms are offset based on the previous rebroadcast timeout. This means if the triggering of an alarm is delayed for whatever reason the absolute rate at which rebroadcast happens remains constant. This can result in unnecessary message rebroadcast and eventual saturation of message queue by repeated rebroadcasts.

The changes here avoid this issue by using the current host time to schedule the next rebroadcast after one rebroadcast is done. This means the rate of rebroadcasted messages remains relative to the host's current time, and removes sensitivity to discrepancy between the time at which an alarm is set vs the time at which it fires.

The alarming system is used to schedule successive rebroadcasts should
the conditions permit rebroadcasting messages. The alarming system works
using absolute time. This means if a node is busy with other things,
e.g. processing queued messages, an alarm might not fire at absolute
specified time.

Apart from the initial rebroadcast all other successive rebroadcast
alarms are offset based on the previous rebroadcast timeout. This means
if the triggering of an alarm is delayed for whatever reason the
absolute rate at which rebroadcast happens remains constant. This can
result in unnecessary message rebroadcast and eventual saturation of
message queue by repeated rebroadcasts.

The changes here avoid this issue by using the current host time to
schedule the next rebroadcast after one rebroadcast is done. This means
the rate of rebroadcasted messages remains relative to the host's
current time, and removes sensitivity to discrepancy between the time at
which an alarm is set vs the time at which it fires.
@masih masih requested review from Kubuxu and anorth June 19, 2024 12:36
@codecov
Copy link

codecov bot commented Jun 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 83.14%. Comparing base (e4ef2ea) to head (7d59fce).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #353   +/-   ##
=======================================
  Coverage   83.14%   83.14%           
=======================================
  Files          15       15           
  Lines        1774     1774           
=======================================
  Hits         1475     1475           
  Misses        174      174           
  Partials      125      125           
Files Coverage Δ
gpbft/gpbft.go 85.14% <100.00%> (ø)

@masih masih added this pull request to the merge queue Jun 19, 2024
Merged via the queue into main with commit d416407 Jun 19, 2024
@masih masih deleted the masih/fuzz-power-evolution-post-rebrodcast branch June 19, 2024 14:51
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.

3 participants