HomePhorge

A set of performance improvements

Description

A set of performance improvements

Summary:
Performance: Consolidate metadata requests (#3989)

This changes number of cache requests from 4 to 2 for each groupware folder.

Performance: Don't initialize all folders in driver constructor (#3971)

Fix regression in last optimisations

Performance: Optimize kolab_storage_folder::get_object() to use one sql query instead of two

Before the change to get an object by UID we first resolve UID to IMAP-UID
and then fetch the object data by IMAP-UID - two select queries. Now we
directly select the data by UID.

Performance: Limit number of SQL queries needed for "object relations update" operation

Performance: Limit number of SQL queries when "attaching" relations/tags to list of tasks/notes (#3969)

Performance: Optimize get_message_relations() to use one query per-folder less

Fix bug where in kolab_storage::select() could not initialize/reset folder cache properly

Performance: Skip another few cache selects

Performance: Get event-to-mail relations once per events list, instead of doing SELECT for every event (including recurrences)

Unify mail-relations handling across plugins

Performance: Use initialized calendars if available, skipping redundant folder cache synchronization

Performance: Don't initialize configuration folders until they are needed

Performance: Skip redundant SELECTs on mail preview and print pages

Performance: Skip some redundant SELECT queries on event update

Performance: Skip one SELECT query when deleting relations

Performance: Better displayname annotation handling

Performance: SKip some SQL queries on "empty" tasklist refresh

Performance: Make objects moving faster (less SQL and less IMAP operations) using COPYUID

Merge remote-tracking branch 'remotes/origin/dev/perf'

Differential Revision: https://git.kolab.org/D91

Merged Changes