On 21/2/17 4:26 am, Nicholas Alexander wrote:
I just wanted to say that I did have lots of questions, but most of them were answered by the excellent technical planning document you posted to the ticket. Great work!

Thanks! It needs to be updated to reflect the current state of the world, but it is still largely accurate and I'm glad you found it of value.

My outstanding question: if Sync were a different system, we might handle this scenario by migrating the client collections forward to a new collection version. That functionality has been punted down the road so many times it's black and blue, but did you write the rationale for why it's not feasible? It's an argument that I mostly understand but have never seen written down.

I'm not sure exactly what you mean by a new collection version, but I see a few possibilities, so I'll answer them:

* In an ideal world, we'd have some kind of relational storage so that the back-end provides some guarantees for tree structures, much like SQL does on the front end. That would allow us to avoid getting into these corrupt states in the first place, rather than relying on independent records maintaining "pointers" between parents and children and hoping they never diverge.

We didn't consider this as the scope of work seemed too large and not something that the desktop team alone could consider.

* Sticking with the existing storage mechanism but changing the format of each record to provide better consistency. We didn't investigate this as there are no identified changes we could make which might help prevent corruption (ie, that could prevent orphans or missing children)

* Another option we considered was simply to have one client wipe the server and reupload all bookmarks it has. We felt that this was a fairly brutal solution depending on which client actually performed this action, it may cause unexpected data-loss (ie, any bookmarks on other clients but not on the one doing the wipe would be lost). Our current plan is to try the repair process as documented, and at some point give up in disgust and take this drastic action. That's bug 1340325.

I suspect you don't mean any of the above though?

Cheers,

Mark
_______________________________________________
Sync-dev mailing list
Sync-dev@mozilla.org
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to