[Kde-pim] Review Request 111885: Avoid starting a database transaction in CollectionSync when no updates are needed

Alessandro Pignotti a.pignotti at sssup.it
Mon Aug 5 14:13:17 BST 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111885/
-----------------------------------------------------------

(Updated Aug. 5, 2013, 1:13 p.m.)


Review request for Akonadi.


Changes
-------

Fixed stylistic issues and removed stale debug fprintfs


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 (updated)
-----

  CMakeLists.txt 1fcd81e4667b1d733119a9ab388de954bdaf82f1 
  akonadi/CMakeLists.txt a5edf0fd339c3043bdb21a4c180eff6d41397f60 
  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