Comment # 5 on bug 59551 from
(In reply to comment #2)
> Let me offer a refinement of the original idea: instead of only
> processing a subset of the phone's contacts per sync, let's split the
> sync itself into more phases:
>       * Start at offset x into the set of contacts.
>       * Download n contacts and update the local database with them.
>       * Update x persistently.
>       * Repeat and role over until we have dealt with all contacts.
>       * Then delete all local contacts which had no match on the phone
>         anymore.

It could be even simpler:
 * Start at offset x.
 * Download, process in parallel.
 * Download more chunks until done.

However, after discussing the "Offset" value with Luiz van Dentz, our
conclusion was that the value is poorly defined: it is not clear whether it is
based on the original numbering of contacts (in which case one could ask for
contacts #10-#19 and not get any because all of those were deleted) or counts
all current non-deleted contacts.

Depending on a feature that is poorly defined, probably not used much and has
corner cases which are even rarer and hard to test (contacts deleted while
syncing) is asking for trouble. Download times are small enough that the
theoretic advantage of downloading in chunks may never matter in practice.

Taking all of that into account, I don't intend to implement downloading in
chunks anymore.


You are receiving this mail because: