mongodb / stitch-ios-sdk

Apache License 2.0
42 stars 25 forks source link

STITCH-2220 Implement recovery logic in DataSynchronizer for CRUD #117

Closed adamchel closed 5 years ago

adamchel commented 5 years ago

This PR adds the functionality for recovering namespaces that had interrupted CRUD operations. Once L2R/R2L logic is complete, there will be another PR for STITCH-2291 which will add the undo collection logic in conflict resolution functions, as well as add assertions that the undo collection is empty after any DataSynchronizer CRUD operation. That PR should be significantly smaller since all of the main recovery logic is implemented here.

I added various drive-by fixes, including a refactor of InstanceSynchronization. I'm not completely happy with how it's structured now, since there is a lot of code that can be cleaned up, but for now it works fine and it's relatively similar to what Android is doing. We can refactor this when we focus on cleanup tasks next week.