Closed Bug 1141849 Opened 9 years ago Closed 9 years ago

Implement synchronization for independent cross-device records

Categories

(Firefox for iOS :: Sync, defect)

All
iOS 8
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: rnewman, Unassigned)

References

Details

This is the meat and potatoes of Sync, in contrast to simpler parts like Bug 1141845.

This involves:

* Carefully splitting storage to allow for tracking of local changes versus a known parent, which we call the snapshot.
* Implementing a mirroring store to allow for incremental fetching of server-side changes.
* Implementing the synchronization component that takes the snapshot, the mirror, and client changes, yielding a bundle of updates that must be applied in turn to the server, the server mirror, the snapshot, client changes, and then the whiteboard.

Note that bug 1141845 is essentially the server-facing half of this: fetching server records into a table. We just don't actually need to merge records for that!

Note that in various situations the snapshot can be empty, or not contain records that are referenced by changes on either side. This is perfectly normal, and is resolved via a content-based reconciling approach, just as with our other Sync clients.

In the simplest scenarios, either the server mirror or the client changes are empty, and synchronization is just a fast-forward.
Blocks: 1141850
Blocks: 1157553
Blocks: 1158216
Depends on: 1166008
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.