During writing the XMLRPC backend I recognised a high number of
readItem operations, at least when using the command line interface:
1. A list of the items is generated (listAllItems)
2. All items are read (n times readItem)
3. listAllItems is called for synchronisation (listAllItems)
4. Data is changed (readItem, insertItem, removeItem)
5. The new of items is read (listAllItems)
6. All items are read (n times readItem)
1+2 as well as 5+6 seem to be the dumping of the database for logging (and
maybe recovery) purposes.
During a normal synchronisation run they are not necessary as far as I
see.
As I didn't find a way to switch off these steps by configuration, I made
the following patch:
diff --git a/src/syncevolution.cpp b/src/syncevolution.cpp
index d7bc87a..c4e4fe7 100644
--- a/src/syncevolution.cpp
+++ b/src/syncevolution.cpp
@@ -79,7 +79,7 @@ class KeyringSyncCmdline : public Cmdline {
* create a user implemented sync client.
*/
SyncContext* createSyncClient() {
- return new CmdlineSyncClient(m_server, true, m_keyring);
+ return new CmdlineSyncClient(m_server, false, m_keyring);
}
};
Is there anything that would break by using this modification? My tests
went well up to now. Is there the need to active such a behaviour by a
command line switch? In this case, I could prepare a patch.
--
NEUE MOBILNUMMER: +43 660 4859550
Franz Knipp, Dipl.-Ing.
---------------------------------------------------------------------
knipp(a)m-otion.com
+43 660 4859550
https://www.xing.com/profile/Franz_Knipp
---------------------------------------------------------------------
m-otion GmbH
Favoritenstr 4-6/III, 1040 Wien
+43 1 205705 (Fax 99)
---------------------------------------------------------------------
www.m-otion.com