CFSCQ: Extending a verified file system with concurrency Tej - - PowerPoint PPT Presentation

cfscq extending a verified file system with concurrency
SMART_READER_LITE
LIVE PREVIEW

CFSCQ: Extending a verified file system with concurrency Tej - - PowerPoint PPT Presentation

SRC #14 CFSCQ: Extending a verified file system with concurrency Tej Chajed advised by Frans Kaashoek and Nickolai Zeldovich 1 Goal: verify a concurrent file system Existing verified file systems are sequential e.g. , FSCQ,


slide-1
SLIDE 1

CFSCQ: Extending a verified file system with concurrency

Tej Chajed advised by Frans Kaashoek and Nickolai Zeldovich

SRC #14

1

slide-2
SLIDE 2

Goal: verify a concurrent file system

  • Existing verified file systems are sequential
  • e.g., FSCQ, Yggdrasil, BilbyFS
  • All real file systems are concurrent
  • e.g., ext4, btrfs

2

slide-3
SLIDE 3

CFSCQ re-uses FSCQ
 (a verified sequential file system)

  • FSCQ: 75,000 lines
  • CFSCQ: +6,000 lines
  • Concurrency verified separately from sequential

behavior

3

slide-4
SLIDE 4

What can we achieve without modifying proofs?

  • Make disk reads asynchronous
  • Run read-only system calls on multiple cores
  • Leverage FSCQ code, spec, and proof for bulk of

concurrent implementation

4

slide-5
SLIDE 5

Asynchronous reads allow system calls to read from memory while disk is reading

CPU Disk

rename read rename

5

  • ther

syscall

slide-6
SLIDE 6

Asynchronous reads allow system calls to read from memory while disk is reading

CPU Disk

rename

  • ther

syscall rename restarts

rollback writes

read

6

slide-7
SLIDE 7

Read-only system calls run

  • n separate cores

Core1 Core2

read stat stat

7

slide-8
SLIDE 8

Read-only system calls run

  • n separate cores

Core1 Core2

read stat stat

Core3

rename read-only updates

7

slide-9
SLIDE 9

Read-only system calls run

  • n separate cores

Core1 Core2

read stat stat

Core3

rename snapshot initial state read-only updates

7

slide-10
SLIDE 10

Read-only system calls run

  • n separate cores

Core1 Core2

read stat stat

Core3

rename snapshot initial state read-only updates update state

7

slide-11
SLIDE 11

Read-only system calls run

  • n separate cores

Core1 Core2

read stat stat

Core3

rename snapshot initial state with write lock read-only updates update state

7

slide-12
SLIDE 12

Progress

  • Verified asynchronous disk reads and multicore

concurrent reads

  • Asynchronous disk reads improve throughput with

slow I/O

  • Working on performance and scalability of

multicore reads

✔ ✔

8