- Apr 16, 2020
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Apr 14, 2020
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Apr 07, 2020
-
-
Christoph Wurst authored
The initial message sync has to fetch potentially large amounts of data and insert that into the database. To work around limitations with sync requests triggered by web requests the process had already been made interruptable and resumable. This means we never insert all the data right away. Yet, the IMAP code fetched all UIDs before we capped it to a maximum number of results per sync attempt. Depending on the mailbox size this operation could require and allocate a lot of memory. On some setup with lower memory limits, the process was aborted by the web server due to a php memory exhaustion. This patch modifies the IMAP code to optimize the memory usage by limiting the amount of data that is fetched with each initial sync attempt. The algorithm works as follows. IMAP allows us to search in a range with a lower an upper bound UID. While we know the highest known UID from the current cache values, we can't derive the range for the next page from that as UIDs are not continuous but might have holes due to deleted messages. If we assume that messages of a mailbox are roughly distributed equally across the assigned UIDs we can guess the max UID for the next range. So we ask the server for min and max UIDs. The min or our known highest UID is always the lower bound. Then we can calculate the distribution rate from the min, max and number of messages and build the upper bound. On everage this will fetch about the expected number of messages. It could be more, but it could also be less. It shouldn't matter in most cases. Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Mar 26, 2020
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Mar 24, 2020
-
-
Cyrille Bollu authored
Signed-off-by:
Cyrille Bollu <cyrpub@bollu.be> Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at> Co-authored-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Mar 20, 2020
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Feb 26, 2020
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Feb 10, 2020
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Jan 31, 2020
-
-
Christoph Wurst authored
Co-authored-by:
Roeland Jago Douma <roeland@famdouma.nl> Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at> Signed-off-by:
Roeland Jago Douma <roeland@famdouma.nl>
-
- Jan 08, 2020
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Oct 08, 2019
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Sep 27, 2019
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Sep 06, 2019
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Sep 05, 2019
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Sep 04, 2019
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- May 08, 2019
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Jul 30, 2018
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Feb 02, 2018
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- May 23, 2017
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Apr 25, 2017
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
Christoph Wurst authored
This class shall help connect the IMAP world with the OOP world. Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Feb 22, 2017
-
-
Christoph Wurst authored
Signed-off-by:
Christoph Wurst <christoph@winzerhof-wurst.at>
-
- Dec 16, 2016
-
-
Christoph Wurst authored
-
- Aug 04, 2016
-
-
Christoph Wurst authored
-
- May 09, 2016
-
-
Christoph Wurst authored
-
- Apr 12, 2016
-
-
Christoph Wurst authored
fixes #1025
-
- Feb 07, 2016
-
-
Christoph Wurst authored
-
- Sep 17, 2015
-
-
Christoph Wurst authored
-
- Aug 29, 2015
-
-
Christoph Wurst authored
-