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
F14067731: D12166.diff
Tue, Nov 19, 4:27 PM
F14065766: D12166.diff
Tue, Nov 19, 6:19 AM
F14060417: D12166.diff
Mon, Nov 18, 1:09 AM
F14050870: D12166.diff
Thu, Nov 14, 9:06 PM
F14034816: D12166.diff
Sun, Nov 10, 2:16 AM
F14021785: D12166.diff
Wed, Nov 6, 12:05 PM
F14015741: D12166.id29249.diff
Sun, Nov 3, 11:48 PM
F14015699: D12166.id29240.diff
Sun, Nov 3, 11:44 PM
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.