[OGo-Developer] Re: additional field for synchronizatin

Helge Hess developer@opengroupware.org
Thu, 23 Aug 2007 21:27:49 +0200


On 23.08.2007, at 21:08, Wolfgang Sourdeau wrote:
> That is what we do. Ludovic's plugin receives a query about which  
> elements were deleted from this to that date. By setting  
> "c_deleted" to 1 and updating the "c_lastmodified" field, I can  
> answer taht question appropriately without returning every deleted  
> events.
>
> The idea of a log table would be specific to Funambol, but the idea  
> of adding the "c_deleted" field can be considered as a facility of  
> SOGo/SOPE which could probably be useful to other synchronisation  
> systems too.

Might be. In fact OGo has "db_status" which is 'inserted', 'archived'  
or 'updated' (and quite often objects are "only" archived, not really  
deleted).
Maybe use the same field instead of the plain c_deleted flag?

I do not really like that the change states are stored in the table  
instead of a proper transaction table, but its probably the pragmatic  
thing to do.
(querying c_lastmodified (a date) is highly unreliable given that you  
can have hundreds of updates in a second - which is extremely common  
especially during synchronizations - which is why there are SyncML  
anchors ...)

> Regarding your etag thing, I don't think it  would be useful here  
> since Ludovic's plugin directly talk to the SOGo database, so it  
> doesn't rely on groupdav to communicate with SOGo.

? The etag is stored in the database, its the object change marker  
(called object_version in OGo, don't remember about SOGo, but should  
be named similiar). Its not just used for GroupDAV (in fact thats not  
even GroupDAV, its plain HTML).

Helge
-- 
Helge Hess
http://www.helgehess.eu/