[sync] SyncML performance issues: history lessons
Karsten Fourmont
fourmont at gmx.de
Tue Sep 20 10:21:34 PDT 2005
Hi,
various people were experiencing problems that sync sessions and
especially the initial slowSync takes very long, possibly resulting in
timeouts.
I think the problem is in the way we use the history package: the
history object stores the uid, timestamp and who did the modification
but not which calendar/addressbook/notepad/todolist the action belongs to.
So the history call returns actions of _all_ users and _all_
(data-)sources. Of course a lot of the subsequent api export calls to
actually retrieve the data return "permission denied" as the user does
not have permissions to access other people's addresbook/calendar etc.
This is arkward and time consuming.
The performance issue on the initial slowsync is (hopefully) fixed with
the latest cvs changes: the slowsync no longer retrieves the elements
using the history (think of all entries anybody did in any turba
collection) but rather directly from the list of objects(_list api
functions rather than _listBy).
However it's kindof strange design that a call like
$histories = $history->getByTimestamp('>', $timestamp,
array(array('op' => '=', 'field' => 'action', 'value' => 'add')),
'turba');
returns uids from _all_ addressbooks (including other users private
ones) regardless whether the user has read permissions on them or not.
Any ideas how to fix this?
BTW: should I (cross-) post something like this to the dev list?
Cheers,
Karsten
More information about the sync
mailing list