Hello Patrick,

On Dec 8, 2010, at 12:26 , Patrick Ohly wrote:

> On Mi, 2010-12-08 at 12:22 +0100, Patrick Ohly wrote:
>> I'm currently (involuntarily ;-) stress-testing this code by running
>> SyncEvolution<->SyncEvolution syncs with lots of iCalendar 2.0 items,
>> which happen to have very long IDs.
> 
> Related to this: is there some way to increase the maximum ID size
> advertised by the Synthesis engine? Does that make sense - tradeoff
> between sending long IDs in messages and having to deal with the
> mapping?
> 
> It seems that currently the size is hard-coded, with different values
> for binfile client and server.
> 
> Server:
> libsynthesis/src/sysync/localengineds.cpp:  fMaxGUIDSize = 64;
> 
> Client:
> libsynthesis/src/sysync/binfileimplds.cpp:    
> fMaxGUIDSize=BINFILE_MAXGUIDSIZE;
> libsynthesis/src/sysync/binfileimplds.h:#define BINFILE_MAXGUIDSIZE 63

In the client, it has to be hard coded because it is a field in the fixed 
binfile layout. If it is changed, the pendingmap will become incompatible (so 
PENDINGITEM_DB_VERSION should be incremented) and will be recreated with the 
new layout on next sync. This should do no harm except if the upgrade happens 
after a suspended or non-successful sync which actually has produced pending 
maps.

In the server, fMaxGUIDSize is documentary only - clients don't need to check 
the server's maxGUIDsize (but clients with insanely long IDs will not work with 
servers that have a limit for the remoteID string size in the backend).

Best Regards,

Lukas

PS: I'm still looking into the map example you provided and trying to 
understand it. I'll follow up as soon as I see through :-)
_______________________________________________
os-libsynthesis mailing list
os-libsynthesis@synthesis.ch
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis

Reply via email to