[Synckolab] still has speed problem
amthor at burma-center.org
Fri Mar 7 03:26:13 PST 2008
I just went through the description. Just for interest, probably not
important: (sorry if it's already there and I overread it!)
a) Under 6. you write: if we did not find an ENTRY, save CUR in the adress
book/calendar and continue.
You probably check before if CUR is in the LOCALDB, to make sure that ENTRY
was not deleted before?
b) 9.: if ENTRY is in LOCALDB: delete it --- it will also be deleted in
LOCALDB, I assume
Now, is there any different way for the first run? If the difference between
deletion on one side and new entry on the other side can only seen by the
Localdb, then you need something different for the 1st run. Since you might
have more than one client connected to the server, just copying all from
client or server to the LOCALDB will not help, I think.
This is probably in general one of the core tasks how to see if an entry is
new or has been deleted before..
Another problem I'm not clear about:
If you have two clients connected to one server, and imagine you have one
entry which is synchronized, so that it is on all three of them. Now you
delete the entry on one of the clients. With the next sync it also gets
deleted on the server. But now you sync the server with the other client and
this client still has the entry and also has it in its LOCALDB, so it thinks
that it is new (created locally after the previous sync) and puts it on the
server. And then the entry will return also to the first client, where it
was initially deleted.
This would mean, that you cannot delete an entry with two clients, because
it always gets erroneously "refreshed" from the other side.
I thought maybe it would be good, if all (clients and sever) have a list of
entries where they are marked as new/changed or as deleted, each entry in
the list with a time stamp. With synchronization, the lists on both sides
are compared and the newest entry will be valid. Lists are updated on both
sides accordingly. It's important also to keep a record of deletion for some
time in case there's a client that synchronizes very seldomly. Of course,
the localdb pobably does something like that, but we need to have it also on
the sever and have to keep track of entries deleted long ago.
So, I hope this was not too confusing! Thank you anyway for all the work!
> there is a description about the hwole sync process on
> http://www.gargan.org/extensions/synckolab.html (around the middle:
> How does Sync Kolab sync your entries?)
> Synckolab mailing list
> Synckolab at mozdev.org
More information about the Synckolab