That's pretty horrible. I must admit that I haven't "upgraded" to the new version of Mesh yet, due to concerns with it. First, it's not really Mesh -- it's Sync, with a name change. Second, the original Mesh was architected by Abolade Gbadegesin, probably one of the best architects in the industry you haven't heard of (and now an architect on WP7). I don't know who did Sync/Mesh.
I do wonder what would cause such an issue. You'd think that simple timestamps would catch this issue. I wonder if the original poster changed his clock to match the time for this Ignite conference and that screwed everythign up?
Comparing dates that aren't UTC is a pretty amateur mistake. Comparing timestamps alone is a mistake too.
It doesn't really matter why it broke to be honest, something like that has to be perfect or it's useless. After it breaks for someone it's impossible to trust the system again, negating any benefits. Once bitten twice shy.
They should have done their homework on distributed systems and used something like a vector clock. MS has lots of resources and absolutely no excuse for fucking this up. Especially since small startups have made similar services that actually work.
He does work at MS, although I don't think vector clocks help here necessarily. I think a strict vector clock implementation _may_ simply tell you that there is no strict ordering in this case, as you had two independent events with no synchronization ocurring between the two (if we take the worst case scenario where they both go online to the service at the same time).
UTC timestamps would solve the issue, unless you lied about your UTC time (hence the time change question).
I must say, unlike the first respondant to my post, while I agree it should never happen -- I think understanding why it did is interesting in of itself. But I'm just one of those people who likes understanding how people make mistakes in software.
I don't know enough here to say anything definitively, but I think knowing there's a conflict is half the battle. UTC timestamps are great but clocks have to be perfectly in sync which is unlikely even w/ NTP. And as you mentioned doesn't withstand users changing their system time.
Sometimes bubbling conflict resolution up to the user is a good idea. It's preferable to data loss.
Clocks on both computers are set to auto sync with MS's time server. No clock changes involved. Besides which, everything check-wise should be GMT based no?
I do wonder what would cause such an issue. You'd think that simple timestamps would catch this issue. I wonder if the original poster changed his clock to match the time for this Ignite conference and that screwed everythign up?