Page MenuHomePhabricator

Improve task subpriority movement algorithm for homogenous blocks
ClosedPublic

Authored by epriestley on Mar 26 2015, 11:42 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Mar 5, 6:41 PM
Unknown Object (File)
Feb 20 2024, 3:49 AM
Unknown Object (File)
Feb 16 2024, 3:18 PM
Unknown Object (File)
Feb 8 2024, 6:33 PM
Unknown Object (File)
Feb 3 2024, 2:42 AM
Unknown Object (File)
Jan 30 2024, 8:38 AM
Unknown Object (File)
Jan 29 2024, 7:21 PM
Unknown Object (File)
Jan 18 2024, 5:21 AM
Subscribers

Details

Summary

Fixes T7664. When there are a large number of tasks (400+) with the same subpriority (which can happen if the subpriority features are rarely used), it may take more than 30 seconds to rebalance them.

Make the algorithm more aggressive about rebalancing homogenous blocks of tasks.

This may need to get even fancier, but I'd guess it can process blocks 1-2 orders of magnitude larger, which should be ~all installs.

(If someone still hits issues with this, I'll make it fancier.)

Once a block is rebalanced, it doesn't need to be rebalanced again (at least, not as a whole block) so we basically just need to get over the initial hurdle here and then we're good.

In the worst case, we can provide bin/maniphest rebalance or similar and do the rebalance step offline.

And, in any case, we have more test coverage here now.

Test Plan
  • Existing tests.
  • New tests.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Improve task subpriority movement algorithm for homogenous blocks.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: btrahan.
src/infrastructure/testing/fixture/PhabricatorStorageFixtureScopeGuard.php
14

This improves performance of unit tests which need to build fixtures by skipping the database verification step, which should not be necessary in general.

btrahan edited edge metadata.
This revision is now accepted and ready to land.Mar 26 2015, 6:06 PM
This revision was automatically updated to reflect the committed changes.