Details
-
Type: Improvement
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.2.0
-
Fix Version/s: 4.2.0
-
Component/s: None
-
Labels:None
Description
When performing significant upgrade tasks (like CRM-9923 or reorganizing activity-contact relationship tables) on large datasets, some common PHP execution environments will abend. To better manage this problem, we should
1. Provide a queue abstraction
2. Provide a queue implementation which executes tasks interactively (similar to Drupal's Batch API)
3. Modify the upgrade logic to submit bite-sized upgrade tasks to the queue and to use the queue
4. Modify the upgrade logic to handle the special case of bootstrapping the queue table(s)