Page MenuHomePhabricator

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

Authored by epriestley on Apr 17 2017, 7:39 PM.
Referenced Files
Unknown Object (File)
Sat, Jan 28, 12:04 PM
Unknown Object (File)
Fri, Jan 27, 6:23 PM
Unknown Object (File)
Sun, Jan 22, 11:06 PM
Unknown Object (File)
Thu, Jan 19, 6:05 AM
Unknown Object (File)
Wed, Jan 18, 4:47 PM
Unknown Object (File)
Sat, Jan 14, 6:13 AM
Unknown Object (File)
Sat, Jan 7, 3:15 PM
Unknown Object (File)
Sun, Jan 1, 8:27 AM



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

rP Phabricator
Lint Not Applicable
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.