Synchronization

David Strauss and I have been brainstorming about what is the problem with Sync between devices. Is it a standards problem? Is it a lock-in between the two major OTA (over the air) standards ActiveSync and Blackberry? ANd, why are the implementations so horrible on the desktop, including OpenSync and Conduit?

David made the great statement "nothing is synch -- it's all just distributed replication."

This really makes sense as the fatal flaw in most thinking of Synchronization software. Also there are various

"especially when documents are always in flux...possible irony of digital property...if various copies are always in progress..." Jon Phillips 21:23, 8 December 2008 (PST)

David makes great argument: "I mean, we'd look at someone pretty funny if they insisted on keeping all of their belonging in safe-deposit boxes. What I'm trying to say is that safe deposit boxes are expensive, slow to get to, and generally overkill for 99% of our stuff".

Basically, David is smart:

(13:17:15) David Strauss: You mentioned how connected operation could be the end of needing sync (or it's academic, rigorous equivalent: distributed replication), but I don't think that's the case for reasons of latency and scalability. (13:17:49) David Strauss: (1) You don't want to wait potentially seconds to load a piece of data (13:17:58) David Strauss: (2) You don't want to wait seconds to save changes (13:18:35) David Strauss: (3) You sometimes lose connectivity; everything can't just all go to hell (13:19:28) David Strauss: from the slides: (13:19:29) David Strauss: "	•	Now: nodes detach then reconnect elsewhere 	•	Even when attached, bandwidth is variable 	•	Reconnection elsewhere means often talking to different replica 	•	Work done on detached nodes" (13:19:42) David Strauss: sure sounds like mobile devices to me :-)

(13:23:33) David Strauss: And when I say "nothing is sync," I mean that we should stop pretending that we throw data stores at each other and hope they line up. Granted, many sync algorithms attempt to put IDs on items, but it's usually one-sided. One device usually has the perspective that it has its data, and you access it using CRUD operations. (13:24:22) David Strauss: "Sync" means one side tries to reconcile its data with the other side with little cooperation from the device being synced.

Research

 * PARC's Bayou
 * http://www2.parc.com/csl/projects/bayou/
 * http://74.125.45.132/search?q=cache:fHxGtunMxYAJ:www.cs.berkeley.edu/~istoica/classes/cs268/06/notes/20-BFT.ppt+bayou+berkeley+distributed+systems&hl=en&ct=clnk&cd=1&gl=us&client=safari
 * OpenDS
 * http://www.opends.org/
 * LDAP
 * http://openldap.org/