Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Differential Synchronization

    Google TechTalks

    3 HN recommenders · recommended in 4 months, 2012–2020

    YouTube

    54:44 · 52K views · Jan 10, 2009

    Neil Fraser of Google presents Differential Synchronization, the algorithm behind MobWrite, for keeping multiple copies of a document in sync in real time. The talk argues the approach is robust, convergent and efficient.

    HN points to it as a simple diff-and-patch alternative to operational transforms and CRDTs for collaborative editing.

    Systems, Networks & SecurityDistributed systemsAlgorithms & data structures
    1. 43:39
      CRDTs and the Quest for Distributed ConsistencyInfoQ68K views • 8 years ago
    2. 1:10:10
      CRDTs: The Hard PartsMartin Kleppmann90K views • 6 years ago
    3. 51:36
      Conflict Resolution for Eventual Consistency • Martin Kleppmann • GOTO 2016GOTO Conferences46K views • 9 years ago
    4. 51:27
      Google I/O 2012 - Go Concurrency PatternsGoogle for Developers894K views • 14 years ago
    5. 34:52
      Liberating Distributed Consensus - Heidi HowardReactive Summit6.9K views • 7 years ago
    6. 1:06:08
      Scaling the Linear Sync EngineLinear37K views • 3 years ago
    7. 58:17
      Raft lecture (Raft user study)Diego Ongaro87K views • 13 years ago
    8. 1:06:34
      Paxos lecture (Raft user study)Diego Ongaro114K views • 13 years ago
    9. 1:06:45
      Let's #TalkConcurrency Panel Discussion with Sir Tony Hoare, Joe Armstrong, and Carl HewittErlang Solutions13K views • 7 years ago
    10. 1:19:35
      Lecture 1: IntroductionMIT 6.824: Distributed Systems924K views • 6 years ago
    11. 58:36
      Advanced Topics in Programming Languages: A Lock-Free Hash TableGoogleTalksArchive29K views • 14 years ago
    12. 35:15
      Solid Ground // Saša JurićEMPEX Conference14K views • 9 years ago
    13. 47:43
      "Turning the database inside out with Apache Samza" by Martin KleppmannStrange Loop Conference206K views • 12 years ago
    14. 34:00
      User-level threads....... with threads. - Paul Turner - GoogleLinux Plumbers Conference41K views • 13 years ago
    15. 1:16:07
      React Helsinki February 2020Fraktio42K views • 6 years ago
    16. 1:16:14
      Spec-ulation Keynote - Rich HickeyClojureTV136K views • 9 years ago
    17. 48:45
      Matrix 2.0 — How we're making Matrix go voom!Matrixdotorg16K views • 3 years ago
    18. 41:06
      "Unison: a new distributed programming language" by Paul ChiusanoStrange Loop Conference45K views • 7 years ago
    19. 1:10:23
      "Systems that run forever self-heal and scale" by Joe Armstrong (2013)Strange Loop Conference86K views • 5 years ago
    20. 30:06
      "Tackling Concurrency Bugs with TLA+" by Hillel WayneStrange Loop Conference24K views • 9 years ago

    4 comments from Hacker News

    1. @mhaleSep 2020· in “CRDTs are the future”

      I'm working on a project with some offline data synchronization needs, but haven't started implementation yet. I've been following CRDTs with interest. I also saw many of the same downsides mentioned in the OP, e.g. bloat (which apparently are being addressed remarkably well). Beyond OT, another approach I've run across that looks very promising is Differential Synchronization[1] by Neil Fraser. While it also relies on a centralized server, it allows for servers to be chained in such a way that seems to address many of the downsides of OT. I wonder why I rarely ever see Differential Synchronization mentioned here on HN? Is it due to lack of awareness or because of use-case fit issues or some fatal flaw I haven't seen? Or something else? [1] this video

      RecommendsView on HN
    2. @dahjelleJun 2014· in “Eventual Consistency in Real-time Web Apps”

      I've not tried it, but you might also be interested in an approach called differential synchronization[1]. Basically, it's just a specific way of passing diffs around to guarantee convergence, though (as far as I can tell) it doesn't guarantee much else (as in do you lose data if a patch can't be applied?). The really nice bits, though, are that it is a simple algorithm and that it can be applied to anything that you have diff/patch algorithms for. [1] this video

      RecommendsView on HN
    3. @raganwaldSep 2012· in “JSON Patch, a proposed standard for synchronizing JSON structures”

      One real-world use case is differential synchronization. Here's a Google Tech Talk on the subject: this video This is for real-time collaborative editing or replication of structured data (unlike Operational Transformation, which is optimized for text). Sending patches back and forth is at the core of the protocol.

      RecommendsView on HN
    4. @pg_botJul 2018· in “Differential Synchronization (2009)”

      Differential synchronization does not require a fixed polling interval. You can have real time updates as each party types, in fact the algorithm prefers this setup as it is easier to process a lot of small changes rapidly. Neil goes into further detail in this google talk about why this is the case: this video . The trick is sync after someone changes the document while including a short debounce so that you aren't overloading the system with superfluous edits.

      CitesView on HN