Hi Patrick
> When supporting the rule, the engine gets all
fields already with ReadNextItem, so they needn't
to be re-read later.
I see how that may improve performance. But why is it necessary to
negotiate this behavior in advance? According to the documentation, the
plugin may refuse ReadNextItem:allfields and then fill in the data
anyway.
Correct.
Only the plugin knows, if reading the item ID will anyway read the whole item.
So this will be negotiated as the first step.
The important thing is that the plugin can return
data (or not) for each item individually when
refusing the ContextSupport.
The engine decides then whether to use/store data or not.
At least this is my understanding of "\<aItemData> can be returned, if
anyway available or ..."
Can be. For example for all changed items.
That's the difference.
What exactly does "aNeedAll" mean here? Let me guess: if the engine only
needs to know changes, it will not call
ContextSupport("ReadNextItem:allfields") and performance is best when
the plugin does not return data in ReadNextItem. If the engine needs all
changes and the corresponding data, performance is best when the plugin
returns the data right away. Always returning the data in ReadNextItem
leads to bad performance when the engine doesn't really need it, thus
the hint.
That's correct with the current implementation.
I think this needs to be explained more explicitly in sync_dbapi.h.
It is NOT documented here, because another engine
implementation might have another strategy to
handle this.
E.g. server or client strategy might be totally
different due to memory size availability.
Another engine implementation might handle this slightly different.
But feel free to add some comments here.
Best Regards
Beat
--
-----------------------------------------------
Beat FORSTER
Dipl. El. Ing. ETH
Dipl. NDS ETHZ in Betriebswissenschaften
Managing Partner
[email protected]
Synthesis AG SyncML Server & Client Solutions
Badenerstrasse 18, CH-8004 Zürich, Switzerland
Tel (direct): +41 44 440 66 02
Fax: +41 44 440 66 04
email: [email protected]
web: http://www.synthesis.ch
-----------------------------------------------
_______________________________________________
os-libsynthesis mailing list
[email protected]
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis