Page MenuHomePhabricator

Provide a generic transaction-oriented bulk job worker

Authored by epriestley on Jan 10 2018, 9:06 PM.
Referenced Files
F13308989: D18862.diff
Mon, Jun 10, 8:24 AM
F13255108: D18862.diff
Sat, May 25, 4:25 AM
F13233738: D18862.diff
Tue, May 21, 2:32 AM
F13218300: D18862.diff
Sat, May 18, 11:38 AM
F13211938: D18862.diff
Fri, May 17, 6:14 AM
F13196993: D18862.diff
May 12 2024, 11:44 PM
Unknown Object (File)
May 4 2024, 4:28 PM
Unknown Object (File)
May 3 2024, 8:46 AM



Depends on D18806. Ref T13025. See PHI173. Currently, Maniphest bulk edits are processed by a Maniphest-specific worker. I want to replace this with a generic worker which can apply transactional edits to any object.

This implements a generic worker, although it has no callers yet. Future changes give it callers, and later remove the Maniphest-specific worker.

Test Plan

See next changes.

Diff Detail

rP Phabricator
Lint Not Applicable
Tests Not Applicable

Event Timeline

amckinley added inline comments.

It feels a little heavy-handed to make new a new BulkTask for every PHID. On the other hand, I have a hard time imagining bulk jobs with like 1m+ PHIDs, or otherwise scaling to the point where this would start to get painful.

This revision is now accepted and ready to land.Jan 11 2018, 12:26 AM

I think each actual edit normally writes at least 5 rows when it actually applies (offhand: transaction, feed story, mail message, notification row, Herald transcript) so the overhead of the bulk job should always be fairly low compared to the overhead of actually performing an edit, even though it's high relative to, say, holding a string in memory.

  • Pull the minor changes from D18863 to here (value vs old) to improve conceptual purity.
This revision was automatically updated to reflect the committed changes.