Skip to end of metadata
Go to start of metadata

Features

More and more organizations are using CiviMail to send mail to 100K+ contacts. This project is aimed at allowing the CiviMail delivery process to scale to larger jobs and deliver at a faster rate with a smaller memory footprint. The goals of the project are

  • Reduce memory footprint of the cron job - The cron job should take a constant amount of memory. This will allow it to deliver 10K+ emails in one run without significant increase in the PHP memory allocation
  • Reduce DB calls in inner loop, optimize SQL queries - All DB calls in the inner loop are computationally expensive, since the inner loop is invoked for every mail. As such we need to minimize / eliminate all DB calls in the inner loop either by caching or be pre-computing in the outer loop

Schedule

  • The project will be completed by mid-July
  • Code that is not dependent on 3.4 schema / structure changes, will be backported to 3.3.x (and be part of the 3.3.8 tagset)
Labels:
  1. Jun 24, 2011

    I haven't looked closely at it but I have an impression that the hook for custom tokens is not well optimized. It would be good if there were a parameter passed to the function that indicated which tokens were required so that not all need to be created if they will not be used. I would also like to contribute the implementation of a few more standard tokens into core, on the assumption that they are used frequently and that core token production is more efficient than custom token (though that may not be true): work phone, home phone, work address fields, home address fields.


Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.