~/talk

The Mysteries of Dropbox

Talkat Lambda Days 2016 · 2016-02-25..02-26· [databases, testing]
slides:none on file

Uses QuickCheck shrinking to generate minimal failing sequences against multiple Dropbox clients running in VirtualBox VMs on one laptop and models behavior with a server-buffered model tracking global value, per-node fresh/dirty flags and a conflict set. Tests include read write stabilize and background upload/download actions; surprising, reproducible behaviors include transient deletion, resurrected files and a rare case of complete data loss. The model is iteratively refined to match Dropbox semantics and some bugs are confirmed and being fixed.

AI-written summary · about

  1. 0:00Intro
  2. 0:30File Synchronizer Usage
  3. 2:16Why Generate Tests?
  4. 3:11Example: Testing a Queue with QuickCheck
  5. 3:43A Generated Failing Test
  6. 4:48A Shrunk Failing Test
  7. 8:07How can we tell if a test passed?
  8. 9:28Modelling a queue
  9. 10:34But what about Dropbox?
  10. 11:46Goals
  11. 12:52What's the model?
  12. 15:59A new approach
  13. 18:01What background operations?
  14. 20:12Conflicts
  15. 22:23Observing conflict files
  16. 25:52stabilize() → (V,C)
  17. 26:36download()
  18. 26:59upload()
  19. 28:19Does the model match reality?
  20. 29:57Another inconsistency
  21. 33:08Dropbox can delete a newly created file
  22. 34:25Dropbox can recreate deleted files
  23. 35:56Dropbox can lose data completely
  24. 36:32What did we do?
  25. 37:34What do Dropbox say?
  26. 38:00Synchronization is subtle!
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.