Patrick Ohly changed bug 86335
What Removed Added
Status ASSIGNED RESOLVED
Resolution --- FIXED

Comment # 11 on bug 86335 from
The current SyncEvolution master is using a more efficient approach for the "is
empty" check (point 2 from comment 3).

I don't intend to implement point 3, because the current solution for CalDAV (a
REPORT without item content) should already be comparable in performance to the
simpler PROPFIND and adding a slower, more accurate approach is of little value
(isEmpty() is allowed to err on the side of caution and report "not empty" for
cases where the server has mixed content and only items which would get ignored
during the sync).

commit 75115022c525d21341be4113d789eccd6e23cca8
Author: Patrick Ohly <patrick.ohly@intel.com>
Date:   Thu Feb 12 13:36:42 2015 +0100

    CalDAV: more efficient "is empty" check (FDO #86335)

    Since 1.4.99.4, syncing WebDAV collections always checks first
    whether there are items in the collections. This was partly done for
    slow sync prevention (which is not necessary for empty collections),
    partly for the "is the datastore usable" check.

    However, this did not take into account that for CalDAV collections,
    the entire content gets downloaded for this check. That is because
    filtering by item type (VEVENT vs. VJOURNAL) is not implemented
    correctly by all servers. So now all CalDAV syncs, whether incremental
    or slow, always transfered all items, which is not the
    intention (incremental syncs should be fast and efficient).

    This commit adds a more efficient isEmpty() check: for simple CardDAV
    collections, only luid and etag get transferred, as in
    listAllItems(). This is the behavior from 1.5.

    For CalDAV, a report with a filter for the content type is used and
    the transfer gets aborted after the first item, without actually
    double-checking the content of the item. This is different from
    listAllItems(), which really transfers the content. This extra content
    check would only be needed for some old servers (Radical 0.7) and is
    not essential, because reporting "not empty" even when empty is safe.


You are receiving this mail because: