These link to YouTube.
  1. Introduction... Video ... Slides This video (fairly long) is basically a lecture on the Vsync system as a whole: why we built it, how to think about it, what kinds of things it can do for you.
  2. Demo... In this thrilling short movie, I build a small Vsync application for you, run it, and then explain it rather carefully. You can download the code and try it out for yourself, and I include a small homework problem for you. Sorry about the sinister lighting.
  3. Basics... Video ... Slides The introduction gives the big picture. In this (only slightly shorter) video, I dive into the details of how Vsync process groups work, the View and Address objects, Group and Client portals into a group, event handers of various kinds, etc. I also explain how to register new types of your own definition.
  4. Ordering... Video ... Slides The core of the Vsync advantage is the strong consistency model, which centers on two properties: ordering and durability. But what are these properties, and how strong do the guarantees need to be to ensure that an application will operate correctly? The reason this matters is that the strongest guarantees, matching the famous Paxos protocols (Leslie Lamport recently commented that we should rename the virtual synchrony model used by Vsync as "virtually synchronous Paxos") are quite costly. We'll show you precisely why and how costly these Paxos-style properties are, and also how tricky it can be to use a Paxos protocol correctly (you need to go through some surprisingly complex actions on recovery from failure). Then we'll see that Vsync has much cheaper alternatives, such as logging the state of a group and using optimistic delivery together with a call to Flush, that can save you computer time and reduce delay for the end-user, while still yielding as safe a solution as with Paxos (we call it SafeSend, if you were wondering). This is a technically challenging video and you may find that you need to watch it a few times to fully understand the material. The other option is to read the corresponding manual pages carefully, or to consult my textbook, which has a whole chapter on this topic.
  5. Synchronization... Video ... Slides Vsync offers all sorts of ways to obtain synchronized behavior. We'll look at a bunch of them here. They include locking, time-based coordination, barriers of various kinds, and there are other options too.
  6. Sharding... Video ... Slides Big data is often spread over groups by smashing it into little pieces (individual data items) and then replicating those to a small degree. We call these little replicated data pieces "shards" and Vsync supports them. That part is easy, as is the Vsync DHT, which has just two operations (put and get). More tricky are the fancy tools for consistent access to a DHT. Vsync carries these to such an extreme that it can support full transactional database behavior.
  7. OutOfBand... Video ... Slides This is a very cool topic, at least in my opinion. Vsync lets you move big objects, like files, at the "speed of light" using Ethernet multicast or Infiniband direct copying to basically DMA the data from source to sender. We think this is a killer story and are putting a ton of effort into it. Learn about it int this video.
  8. Runtime... Video ... Slides A dull topic but everyone needs to know about it. How Vsync handles bootstrapping. What the membership Oracle does, how many copies will run, and where. How to customize various features of the system.

Now test your knowledge...

  1. Ordering. Link (Note that this link and the others are to ppsx files; they work best if you run them as a powerpoint "show").
  2. Designing an application with external clients. Link
  3. The Vsync DHT. Link

Last edited Nov 19, 2015 at 9:10 PM by birman, version 3