Closed jmajnert closed 9 years ago
Thanks @jmajnert a lot for all the contributions to the issues, which are really great! :)
This is currently implemented in DataStore for b2g. Gecko keeps the last X (200?) revisionIds. If an old revision is used, the cursor sends a 'clear' operation and then it does a full sync from scratch. We should update the specs.
Not relevant anymore
For the sync mechanism to work, the UA needs to keep record of all revisions of datastore that were ever requested by client apps. Taking into account the fact that apps may not be "installed", we might not know if an app will ever be used again. Thus we cannot discard any revision of any datastore for fear that some app might want to update from that version.
I would like to propose a solution used in this situation by SyncML - if an old revision is forgotten/discarded by UA, the sync() method should inform the caller, that it should do a "full sync", that is retrieve the whole data store again.