Completed
Gojournal has a modular implementation and proof
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
GoJournal - A Verified, Concurrent, Crash-Safe Journaling System
Automatically move to the next video in the Classroom when playback concludes
- 1 Intro
- 2 Suppose we want to write a correct file system
- 3 Gojournal gives a storage system efficient, atomic writes
- 4 Current approaches cannot handle a system of this complexity
- 5 Contributions
- 6 Gojournal writes operations atomically to disk
- 7 Operations can concurrently manipulate objects within a block
- 8 Specification challenge: what do concurrently committed operations do?
- 9 Sequential journaling only maintains old and next state
- 10 An operation's specification only refers to its disk footprint
- 11 Introduce assertion for operation's view of disk
- 12 Key idea: operations manipulate an in-memory view of each object
- 13 Gojournal has a modular implementation and proof
- 14 Write-ahead log implements the core atomicity of the journal
- 15 Writes are buffered before being logged
- 16 Challenge 1: Reads can observe unstable writes
- 17 Object layer implements sub-block object access
- 18 Challenge 2: Reads and writes can proceed concurrently
- 19 Concurrent writes are unsafe due to read- modify-write sequence
- 20 Implementation overview
- 21 Experimental setup
- 22 GONFS gets comparable performance even with a single client
- 23 Gojournal allows GONFS to scale with number of clients
- 24 Concurrency in the journal matters
- 25 Summary