Page MenuHomePhabricator

When a lease triggers a resource allocation for a resource which must activate, awaken the lease task after the resource activates
ClosedPublic

Authored by epriestley on Oct 24 2018, 4:33 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Mar 9, 3:38 AM
Unknown Object (File)
Feb 21 2024, 5:17 PM
Unknown Object (File)
Feb 3 2024, 7:41 PM
Unknown Object (File)
Jan 25 2024, 1:25 AM
Unknown Object (File)
Dec 31 2023, 8:14 PM
Unknown Object (File)
Dec 22 2023, 12:33 AM
Unknown Object (File)
Nov 30 2023, 1:25 AM
Unknown Object (File)
Nov 25 2023, 8:12 PM
Subscribers
Restricted Owners Package

Details

Summary

Depends on D19753. Ref T13210. This is a small optimization that saves us from waiting up to 15 seconds for a yield.

When there are no Working Copy resources and a new lease comes in, we'll allocate one and yield until it activates.

If activating it (SSH'ing and running git clone) takes less than 15 seconds, the resource will activate (say, at T+4) but the lease won't update again for a while (say, until T+15). This leaves us with a pointless wait (in this example, we're sitting around for 9 seconds when we could move forward).

To improve this a little bit, let resources wake up the lease update tasks that triggered allocation after they activate. In the best case, that task runs ~15 seconds sooner. In the worst case, the awaken is just a no-op.

With a more-full queue, this has a smaller effect (it's likely something else will run and be able to use the resource in those 9 seconds).

With already-activated resources, this has no effect (when resources are already activated, we can lease immediately).

Test Plan
  • Cleaned up all working copy resources.
  • Requested a new "A" working copy.
  • Before patch: got a working copy after 17-18 seconds, most of which was spent yielded.
  • After patch: got a working copy after 3-4 seconds.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable