[Kde-pim] Review Request 111885: Avoid starting a database transaction in CollectionSync when no updates are needed
Laurent Montel
montel at kde.org
Mon Aug 5 13:17:59 BST 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111885/#review37118
-----------------------------------------------------------
akonadi/collectionsync.cpp
<http://git.reviewboard.kde.org/r/111885/#comment27479>
indent + fprintf ?
akonadi/collectionsync.cpp
<http://git.reviewboard.kde.org/r/111885/#comment27477>
coding style if/foreach(...) {
}
akonadi/collectionsync.cpp
<http://git.reviewboard.kde.org/r/111885/#comment27480>
if (!currentTransaction)
akonadi/collectionsync.cpp
<http://git.reviewboard.kde.org/r/111885/#comment27478>
fprintf ?
- Laurent Montel
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