[Akonadi] [Bug 322083] CollectionSync always start a database transaction, even when no update needs to be done

Daniel Vrátil dvratil at redhat.com
Thu Aug 22 13:19:55 BST 2013


https://bugs.kde.org/show_bug.cgi?id=322083

Daniel Vrátil <dvratil at redhat.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
   Version Fixed In|                            |4.12
         Resolution|---                         |FIXED
      Latest Commit|                            |http://commits.kde.org/kdep
                   |                            |imlibs/f7bf8bd51a4e03771419
                   |                            |c91ff2cd155b56445073

--- Comment #2 from Daniel Vrátil <dvratil at redhat.com> ---
Git commit f7bf8bd51a4e03771419c91ff2cd155b56445073 by Dan Vrátil, on behalf of
Alessandro Pignotti.
Committed on 22/08/2013 at 12:17.
Pushed by dvratil into branch 'master'.

Avoid starting a database transaction in CollectionSync when no updates are
needed

Unconditionally starting a transaction on every collection sync
as 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

REVIEW: 111885
FIXED-IN: 4.12

M  +1    -1    CMakeLists.txt
M  +167  -17   akonadi/collectionsync.cpp
M  +7    -1    akonadi/collectionsync_p.h

http://commits.kde.org/kdepimlibs/f7bf8bd51a4e03771419c91ff2cd155b56445073

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kdepim-bugs mailing list