Twizzler: A Data-Centric OS for Persistent Memory Daniel Bittman - - PowerPoint PPT Presentation

twizzler a data centric os for persistent memory
SMART_READER_LITE
LIVE PREVIEW

Twizzler: A Data-Centric OS for Persistent Memory Daniel Bittman - - PowerPoint PPT Presentation

Twizzler: A Data-Centric OS for Persistent Memory Daniel Bittman Peter Alvaro Pankaj Mehra Darrell Long Ethan Miller Center for Research in Storage Systems University of California, Santa Cruz 1 Hardware Trends sys_read ~100-300 ns


slide-1
SLIDE 1

1

Twizzler: A Data-Centric OS for Persistent Memory

Daniel Bittman Peter Alvaro Pankaj Mehra Darrell Long Ethan Miller

Center for Research in Storage Systems University of California, Santa Cruz

slide-2
SLIDE 2

Hardware Trends

2

~1-10 ms

sys_read

~100-300 ns ~1 us Growing, becoming persistent Outdated interface Cannot compute on directly Persistent data should be operated on directly and like memory

slide-3
SLIDE 3

Global Object Space: Abstract References

Persistent data should be operated on directly and like memory A B C A B Process 1 Process 2 A B

3

slide-4
SLIDE 4

Existing approaches?

4

PMDK No OS support Data sharing is hard Slow pointers POSIX Explicit persistence and data access Multiple forms of data Kernel involvement mmap helps, but does not solve the virtual memory problem Twizzler’s goals Little kernel involvement Pervasive support (security, sharing) Low overhead persistent pointers

slide-5
SLIDE 5

Design Overview

5

application musl* libc libtwz twix Twizzler kernel view management, pointer translation, consistency primitives

  • bject & thread

management, trusted computing base * modified musl to change linux syscalls into function calls Linux syscall emulation

data

  • bject

userspace kernelspace POSIX access (read/write) direct access (memory-style) metadata & FOT management create, delete, etc. physical mapping

slide-6
SLIDE 6

Persistent Pointers

6

Pointers may be cross-object: referring to data within a different object

  • bject-id
  • ffset

FOT entry

  • ffset

64-bits

FOT Data Object Layout

  • bject ID or Name

Name Resolver flags

Foreign Object Table

  • bject ID or Name

Name Resolver flags

1 2 ...

1 <offset>

1 A rw- 2 B r-- O

FOT

A FOT entry of >0 means “cross-object”—points to a different object.

slide-7
SLIDE 7

Implications for Data and Sharing

7

Objects are self-contained Persistent pointers are based on identity not location Persistent pointers can be operated on generically Objects can be easily shared

FOT entry

  • ffset

64-bits

  • bject ID
  • ffset

128-bits

Pointers in Twizzler Pointers in PMDK 64-bit IDs require global coordination or collision management Coordination free sharing

slide-8
SLIDE 8

Consistency and Security

8

Cryptographically signed capabilities for access control The kernel cannot create capabilities, but it can (must) verify them. All enforcement must be done by hardware.

slide-9
SLIDE 9

Implementation

More details available at twizzler.io

9

slide-10
SLIDE 10

Evaluation Goals

Programmability, not performance (though, performance where we can get it)

10

slide-11
SLIDE 11

Case Study: KVS

11

Index Data Lookup returns direct pointers 250 lines of simple C code is all you need Data2 Index Data1 r--

slide-12
SLIDE 12

Evaluation

12

Dell R640 Servers with Intel Optane DC Ported SQLite to Twizzler and to PMDK Compared to SQLite “native” and SQLite “LMDB” (mmap)

slide-13
SLIDE 13

Performance: SQLite

13

slide-14
SLIDE 14

Performance: SQLite

14

slide-15
SLIDE 15

Future Work: Distributed Twizzler

15

code data

It’s a rendezvous problem

node A D C B

Explicit Relationships and the Object Graph

slide-16
SLIDE 16

Conclusion

16

Operating systems must evolve to support persistent data programming models directly Cross-object pointers allow us to realize the power of UNIX in a data-centric model Twizzler provides benefits for both NVM and traditional systems

slide-17
SLIDE 17

Thank You! Questions?

17