Page MenuHomePhabricator

Decrease JX.Leader lease duration from 16,000ms to 1,500ms and usurp more aggressively
ClosedPublic

Authored by epriestley on Apr 17 2017, 7:39 PM.

Details

Summary

Ref T12573. JX.Leader synchronizes the Aphlict connection across multiple windows.

Currently, we only test to see if the leader window has been closed every 16 seconds. Instead, test every 1.5 seconds.

Also, make windows keep trying to become the leader forever. This was removed previously (in D15806) but I think that change decreased robustness here.

Test Plan
  • Opened two windows to the "Realtime" tab in DarkConsole.
  • Saw one become the leader and one become a follower.
  • (Optionally, wait for 10 seconds here to test the "keep trying to become the leader" behavior.)
  • Closed the leader.
  • Saw the follower become the leader after ~1.5 seconds.

Diff Detail

Repository
rP Phabricator
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

We also need to deal with duplicates better in general (T12564) so I'm planning to do that in a robust way at a higher level of the application and then let all the low-level stuff make tradeoffs to be more reliable at the cost of possibly emitting duplicates.

This revision is now accepted and ready to land.Apr 17 2017, 8:16 PM
This revision was automatically updated to reflect the committed changes.