[Kde-pim] Review Request 111885: Avoid starting a database transaction in CollectionSync when no updates are needed
Kevin Krammer
krammer at kde.org
Mon Aug 5 13:30:31 BST 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111885/#review37120
-----------------------------------------------------------
akonadi/collectionsync.cpp
<http://git.reviewboard.kde.org/r/111885/#comment27482>
that doesn't quite match what the method does. It returns true if they nodes are different in some way
akonadi/collectionsync.cpp
<http://git.reviewboard.kde.org/r/111885/#comment27483>
maybe early exit once the result is certain, avoiding all further checks?
- Kevin Krammer
On Aug. 5, 2013, 11:48 a.m., Alessandro Pignotti wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111885/
> -----------------------------------------------------------
>
> (Updated Aug. 5, 2013, 11:48 a.m.)
>
>
> Review request for Akonadi.
>
>
> Description
> -------
>
> Rationale: Unconditionally starting a transaction on every collection
> sync has an high overhead on disk activity since transaction bookkeping
> on the database requires writing to disk. Most often collection sync are
> unnecessary since collection are rarely modified, so we end up causing a
> write to disk on an operation which would be read-only.
>
> The proposed solution is two run the collection sync in 2 phases:
>
> 1) Without starting a transaction, the currently known local collections
> are loaded and are compared against the received remote ones. If no
> difference is found update is stopped right away
>
> 2) If there are differences a transaction is started, local collections
> are loaded again to guarantee consistency and the update is applied
> inside the transaction
>
>
> This addresses bug 322083.
> http://bugs.kde.org/show_bug.cgi?id=322083
>
>
> Diffs
> -----
>
> akonadi/collectionsync.cpp 0b85c2be168511486b484c7fcf8de3d157e876d4
> akonadi/collectionsync_p.h 2ea53c5e0f2d2ce8e1a684b8f685ab6683cd1493
>
> Diff: http://git.reviewboard.kde.org/r/111885/diff/
>
>
> Testing
> -------
>
> Code builds and collection fetching seems to be working correctly
>
>
> Thanks,
>
> Alessandro Pignotti
>
>
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list