NOVA-Fortis: A Fault-Tolerant Non- Volatile Main Memory File System

Similar documents
NOVA: The Fastest File System for NVDIMMs. Steven Swanson, UC San Diego

Strata: A Cross Media File System. Youngjin Kwon, Henrique Fingler, Tyler Hunt, Simon Peter, Emmett Witchel, Thomas Anderson

Lecture 18: Reliable Storage

ECE 598-MS: Advanced Memory and Storage Systems Lecture 7: Unified Address Translation with FlashMap

Designing a True Direct-Access File System with DevFS

Hardware Undo+Redo Logging. Matheus Ogleari Ethan Miller Jishen Zhao CRSS Retreat 2018 May 16, 2018

Operating Systems. File Systems. Thomas Ropars.

ParaFS: A Log-Structured File System to Exploit the Internal Parallelism of Flash Devices

CA485 Ray Walshe Google File System

Ziggurat: A Tiered File System for Non-Volatile Main Memories and Disks

Soft Updates Made Simple and Fast on Non-volatile Memory

! Design constraints. " Component failures are the norm. " Files are huge by traditional standards. ! POSIX-like

JOURNALING techniques have been widely used in modern

Aerie: Flexible File-System Interfaces to Storage-Class Memory [Eurosys 2014] Operating System Design Yongju Song

RISC-V Support for Persistent Memory Systems

Yiying Zhang, Leo Prasath Arulraj, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. University of Wisconsin - Madison

Google File System. Arun Sundaram Operating Systems

Rethink the Sync 황인중, 강윤지, 곽현호. Embedded Software Lab. Embedded Software Lab.

Announcements. Persistence: Log-Structured FS (LFS)

CLOUD-SCALE FILE SYSTEMS

EECS 482 Introduction to Operating Systems

CS5460: Operating Systems Lecture 20: File System Reliability

Towards Efficient, Portable Application-Level Consistency

The Google File System

TxFS: Leveraging File-System Crash Consistency to Provide ACID Transactions

PERSISTENCE: FSCK, JOURNALING. Shivaram Venkataraman CS 537, Spring 2019

CS 537 Fall 2017 Review Session

FS Consistency & Journaling

SHRD: Improving Spatial Locality in Flash Storage Accesses by Sequentializing in Host and Randomizing in Device

Caching and reliability

COS 318: Operating Systems. Journaling, NFS and WAFL

Operating Systems. Lecture File system implementation. Master of Computer Science PUF - Hồ Chí Minh 2016/2017

Lecture 21: Reliable, High Performance Storage. CSC 469H1F Fall 2006 Angela Demke Brown

What is a file system

System Software for Persistent Memory

The Google File System

VMware vsphere Virtualization of PMEM (PM) Richard A. Brunner, VMware

Advanced file systems: LFS and Soft Updates. Ken Birman (based on slides by Ben Atkin)

Current Topics in OS Research. So, what s hot?

Efficient Storage Management for Aged File Systems on Persistent Memory

VerifyFS in Btrfs Style (Btrfs end to end Data Integrity)

Chapter 11: File System Implementation. Objectives

November 9 th, 2015 Prof. John Kubiatowicz

Main Points. File System Reliability (part 2) Last Time: File System Reliability. Reliability Approach #1: Careful Ordering 11/26/12

HMVFS: A Hybrid Memory Versioning File System

Case study: ext2 FS 1

W4118 Operating Systems. Instructor: Junfeng Yang

Push-button verification of Files Systems via Crash Refinement

Algorithms and Data Structures for Efficient Free Space Reclamation in WAFL

NPTEL Course Jan K. Gopinath Indian Institute of Science

The Google File System

TCSS 422: OPERATING SYSTEMS

The What, Why and How of the Pure Storage Enterprise Flash Array. Ethan L. Miller (and a cast of dozens at Pure Storage)

Distributed File Systems II

High-Performance Transaction Processing in Journaling File Systems Y. Son, S. Kim, H. Y. Yeom, and H. Han

Case study: ext2 FS 1

Announcements. Persistence: Crash Consistency

mode uid gid atime ctime mtime size block count reference count direct blocks (12) single indirect double indirect triple indirect mode uid gid atime

Georgia Institute of Technology ECE6102 4/20/2009 David Colvin, Jimmy Vuong

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

HashKV: Enabling Efficient Updates in KV Storage via Hashing

File System Consistency. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Distributed Filesystem

The Google File System

The Google File System (GFS)

Windows Support for PM. Tom Talpey, Microsoft

Windows Support for PM. Tom Talpey, Microsoft

Fine-grained Metadata Journaling on NVM

MultiLanes: Providing Virtualized Storage for OS-level Virtualization on Many Cores

CS 4284 Systems Capstone

File Systems Management and Examples

Physical Storage Media

[537] Journaling. Tyler Harter

The Google File System

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

File System Consistency

File Systems: Consistency Issues

The Google File System

NVMFS: A New File System Designed Specifically to Take Advantage of Nonvolatile Memory

Soft Updates Made Simple and Fast on Non-volatile Memory

<Insert Picture Here> Filesystem Features and Performance

Open-Channel SSDs Offer the Flexibility Required by Hyperscale Infrastructure Matias Bjørling CNEX Labs

Distributed Systems 16. Distributed File Systems II

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Application-Managed Flash

Caching and consistency. Example: a tiny ext2. Example: a tiny ext2. Example: a tiny ext2. 6 blocks, 6 inodes

arxiv: v1 [cs.dc] 13 Mar 2019

Distributed System. Gang Wu. Spring,2018

SLM-DB: Single-Level Key-Value Store with Persistent Memory

PM Support in Linux and Windows. Dr. Stephen Bates, CTO, Eideticom Neal Christiansen, Principal Development Lead, Microsoft

Mass-Storage Structure

Topics. " Start using a write-ahead log on disk " Log all updates Commit

What's new in Jewel for RADOS? SAMUEL JUST 2015 VAULT

CSE 153 Design of Operating Systems

CHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

COS 318: Operating Systems. NSF, Snapshot, Dedup and Review

GFS: The Google File System

Operating Systems Design Exam 2 Review: Spring 2011

CrashMonkey: A Framework to Systematically Test File-System Crash Consistency. Ashlie Martinez Vijay Chidambaram University of Texas at Austin

ReVive: Cost-Effective Architectural Support for Rollback Recovery in Shared-Memory Multiprocessors

Transcription:

NOVA-Fortis: A Fault-Tolerant Non- Volatile Main Memory File System Jian Andiry Xu, Lu Zhang, Amirsaman Memaripour, Akshatha Gangadharaiah, Amit Borase, Tamires Brito Da Silva, Andy Rudoff (Intel), Steven Swanson Non-Volatile Systems Laboratory Department of Computer Science and Engineering University of California, San Diego 1

Non-volatile Memory and DAX Non-volatile main memory (NVMM) PCM, STT-RAM, ReRAM, 3D XPoint technology Reside on memory bus, load/store interface Application load/store load/store DRAM NVMM File system HDD / SSD 2

Non-volatile Memory and DAX Non-volatile main memory (NVMM) PCM, STT-RAM, ReRAM, 3D XPoint technology Reside on memory bus, load/store interface Direct Access (DAX) DAX file I/O bypasses the page cache DAX-mmap() maps NVMM pages to application address space directly and bypasses file system Killer app mmap() copy DRAM Application DAX-mmap() NVMM HDD / SSD 3

Application expectations on NVMM File System DAX POSIX I/O Atomicity Fault Tolerance Direct Access Speed 4

ext4 xfs BtrFS F2FS DAX POSIX I/O Atomicity Fault Tolerance Direct Speed Access 5

PMFS ext4-dax xfs-dax DAX 6

Strata SOSP 17 DAX 7

NOVA FAST 16 DAX 8

NOVA-Fortis DAX 9

Challenges DAX 10

NOVA: Log-structured FS for NVMM Per-inode logging High concurrency Parallel recovery High scalability Per-core allocator, journal and inode table Atomicity Logging for single inode update Journaling for update across logs Copy-on-Write for file data Inode log Per-inode logging Inode Head Tail Data Data Data Jian Xu and Steven Swanson, NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories, FAST 16. 11

Snapshot 13

Snapshot support Snapshot is essential for file system backup Widely used in enterprise file systems ZFS, Btrfs, WAFL Snapshot is not available with DAX file systems 14

Snapshot for normal file I/O Current snapshot 01 2 write(0, 4K); take_snapshot(); File log 0 Page 0 1 Page 0 1 Page 0 2 Page 0 write(0, 4K); write(0, 4K); Data Data Data Data take_snapshot(); write(0, 4K); recover_snapshot(1); File write entry Data in snapshot Reclaimed data Current data 15

Memory Ordering With DAX-mmap() D = 42; Fence(); V = True; D V Valid? False 42 False 42 True? True Recovery invariant: if V == True, then D is valid 16

Memory Ordering With DAX-mmap() D = 42; Fence(); V = True; Application NVMM D V DAX-mmap() Page 1 Page 3 Recovery invariant: if V == True, then D is valid D and V live in two pages of a mmap() d region. 17

DAX Snapshot: Idea Set pages read-only, then copy-on-write Applications: File system: DAX-mmap() no file system intervention File data: RO 18

DAX Snapshot: Incorrect implementation Application invariant: if V is True, then D is valid Application thread Application values NOVA snapshot Snapshot values D =?; V = False; D V D V D = 42; page fault? F 42 F snapshot_begin(); set_read_only(page_d); copy_on_write(page_d);? V = True; 42 T set_read_only(page_v); snapshot_end();? T? T 19

DAX Snapshot: Correct implementation Delay CoW page faults completion until all pages are read-only Application thread Application values NOVA snapshot Snapshot values D =?; V = False; D V D V D = 42; page fault? F snapshot_begin(); set_read_only(page_d);? V = True; 42 F 42 T set_read_only(page_v); snapshot_end(); copy_on_write(page_d); copy_on_write(page_v);? F? F 20

Performance impact of snapshots Normal execution vs. taking snapshots every 10s Negligible performance loss through read()/write() Average performance loss 3.7% through mmap() W/O snapshot W snapshot 1.2 1 0.8 0.6 0.4 0.2 0 Filebench (read/write) WHISPER (DAX-mmap()) 21

Protecting Metadata and Data 22

Read NVMM Failure Modes Detectable errors Media errors detected by NVMM controller Software: Receives MCE Raises Machine Check Exception (MCE) NVMM Ctrl.: Detects uncorrectable errors Raises exception Undetectable errors Media errors not detected by NVMM controller NVMM data: Media error Software scribbles 23

Read NVMM Failure Modes Detectable errors Media errors detected by NVMM controller Software: Consumes corrupted data Raises Machine Check Exception (MCE) NVMM Ctrl.: Sees no error Undetectable errors Media errors not detected by NVMM controller NVMM data: Media error Software scribbles 24

NVMM Failure Modes Detectable errors Media errors detected by NVMM controller Software: Bug code scribbles NVMM Raises Machine Check Exception (MCE) Undetectable errors Media errors not detected by NVMM controller NVMM Ctrl.: NVMM data: Updates ECC Scribble error Write Software scribbles 25

NOVA-Fortis Metadata Protection Detection CRC32 checksums in all structures Use memcpy_mcsafe() to catch MCEs Correction Replicate all metadata: inodes, logs, superblock, etc. Tick-tock: persist primary before updating replica log inode inode ent1 Head Tail csum H1 T1 Head Tail csum H1 T1 c1 entn log Data 1 Data 2 cn ent1 c1 entn cn 26

NOVA-Fortis Data Protection inode Head Tail csum H1 T1 Metadata inode Head Tail csum H1 T1 CRC32 + replication for all structures log ent1 c1 entn cn Data RAID-4 style parity log ent1 c1 entn cn Replicated checksums Data 1 Data 2 1 Block (8 stripes) S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7 P P = S 0..7 C i = CRC32C(S i ) Replicated 27

File data protection with DAX-mmap Stores are invisible to the file systems The file systems cannot protect mmap ed data NOVA-Fortis data protection contract: DAX NOVA-Fortis protects pages from media errors and scribbles iff they are not mmap() d for writing. 28

File data protection with DAX-mmap NOVA-Fortis logs mmap() operations User-space Applications: load/store load/store Kernel-space NOVA-Fortis: read/write mmap() NVDIMMs File data: File log: unprotected mmap log entry protected 29

File data protection with DAX-mmap On munmap and during recovery, NOVA-Fortis restores protection User-space Applications: load/store munmap() Kernel-space NOVA-Fortis: read/write mmap() NVDIMMs File data: Protection restored File log: 30

File data protection with DAX-mmap On munmap and during recovery, NOVA-Fortis restores protection User-space Applications: Kernel-space NOVA-Fortis: read/write System Failure + recovery mmap() NVDIMMs File data: File log: 31

Performance 32

Latency breakdown VFS alloc inode journaling memcpy_mcsafe memcpy_nocache append entry free old data calculate entry csum verify entry csum replicate inode replicate log verify data csum update data csum update data parity Create Append 4KB Overwrite 4KB Overwrite 512B Read 4KB Read 16KB 0 1 2 3 4 5 6 Latency (microsecond) 33

Latency breakdown VFS alloc inode journaling memcpy_mcsafe memcpy_nocache append entry free old data calculate entry csum verify entry csum replicate inode replicate log verify data csum update data csum update data parity Create Append 4KB Overwrite 4KB Overwrite 512B Read 4KB Read 16KB 0 1 2 3 4 5 6 Latency (microsecond) Metadata Protection 34

Latency breakdown VFS alloc inode journaling memcpy_mcsafe memcpy_nocache append entry free old data calculate entry csum verify entry csum replicate inode replicate log verify data csum update data csum update data parity Create Append 4KB Overwrite 4KB Overwrite 512B Read 4KB Read 16KB 0 1 2 3 4 5 6 Latency (microsecond) Metadata Protection Data Protection 35

Normalized throughput Application performance 1.2 Normalized throughput 1 0.8 0.6 0.4 0.2 0 Fileserver Varmail MongoDB SQLite TPCC Average ext4-dax Btrfs NOVA w/ MP w/ MP+DP 36

Conclusion Fault tolerance is critical for file system, but existing DAX file systems don t provide it We identify new challenges that NVMM file system fault tolerance poses NOVA-Fortis provides fault tolerance with high performance 1.5x on average to DAX-aware file systems without reliability features 3x on average to other reliable file systems 37

Give a try https://github.com/nvsl/linux-nova 38

Thanks! 39

Backup slides 40

Hybrid DRAM/NVMM system Non-volatile main memory (NVMM) PCM, STT-RAM, ReRAM, 3D XPoint technology File system for NVMM Host CPU NVMM FS DRAM NVMM 41

Disk-based file systems are inadequate for NVMM Ext4, xfs, Btrfs, F2FS, NILFS2 Built for hard disks and SSDs Software overhead is high CPU may reorder writes to NVMM NVMM has different atomicity guarantees Cannot exploit NVMM performance Performance optimization compromises consistency on system failure [1] Atomicity 1-Sector overwrite 1-Sector append 1-Block overwrite 1-Block append N-Block write/append N-Block prefix/append Ext4 wb Ext4 order Ext4 dataj Btrfs xfs [1] Pillai et al, All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications, OSDI '14. 42

NVMM file systems are not strongly consistent BPFS, PMFS, Ext4-DAX, SCMFS, Aerie None of them provide strong metadata and data consistency File system Metadata Data Mmap atomicity atomicity Atomicity [1] BPFS Yes Yes [2] No PMFS Yes No No Ext4-DAX Yes No No SCMFS No No No Aerie Yes No No NOVA Yes Yes Yes [1] Each msync() commits updates atomically. [2] In BPFS, write times are not updated atomically with respect to the write itself. 43

Why LFS? Log-structuring provides cheaper atomicity than journaling and shadow paging NVMM supports fast, highly concurrent random accesses Using multiple logs does not negatively impact performance Log does not need to be contiguous Rethink and redesign log-structuring entirely 44

Atomicity Log-structuring for single log update Write, msync, chmod, etc Strictly commit log entry to NVMM before updating log tail Lightweight journaling for update across logs Unlink, rename, etc Journal log tails instead of metadata or data Directory log File log Tail TailTail Tail Tail Copy-on-write for file data Log only contains metadata Log is short Journal Dir tail File tail 45

Atomicity Log-structuring for single log update Write, msync, chmod, etc Strictly commit log entry to NVMM before updating log tail Lightweight journaling for update across logs Unlink, rename, etc Journal log tails instead of metadata or data Directory log File log Tail Tail Tail Copy-on-write for file data Log only contains metadata Log is short Data 0 Data 1 Data 1 Data 2 46

Performance Per-inode logging allows for high concurrency Tail Directory log Split data structure between DRAM and NVMM Persistent log is simple and efficient Volatile tree structure has no consistency overhead File log Data 0 Tail Data 1 Data 2 47

Performance Per-inode logging allows for high concurrency Radix tree 0 1 2 3 Split data structure between DRAM and NVMM Persistent log is simple and efficient Volatile tree structure has no consistency overhead DRAM NVMM File log Data 0 Tail Data 1 Data 2 48

NOVA layout Put allocator in DRAM CPU 0 CPU 1 High scalability Free list Free list Per-CPU NVMM free list, journal and inode table Concurrent transactions and allocation/deallocation DRAM NVMM Super block Recovery inode Journal Inode table Inode Head Tail Journal Inode table Inode log 49

Fast garbage collection Log is a linked list Log only contains metadata Head Tail Fast GC deletes dead log pages from the linked list No copying Vaild log entry Invalid log entry 50

Thorough garbage collection Starts if valid log entries < 50% log length Format a new log and atomically replace the old one Only copy metadata Tail Head Vaild log entry Invalid log entry 51

Recovery Rebuild DRAM structure Allocator Lazy rebuild: postpones inode radix tree rebuild Accelerates recovery Reduces DRAM consumption Normal shutdown recovery: Store allocator in recovery inode No log scanning Failure recovery: Log is short Parallel scan Failure recovery bandwidth: > 400 GB/s DRAM NVMM Super block Recovery inode CPU 0 Free list Journal Inode table Recovery thread CPU 1 Free list Journal Inode table Recovery thread 52

Snapshot for normal file I/O Current snapshot 01 2 Delete snapshot 0; Snapshot 0 [0, 1) Snapshot 1 [1, 2) File log 0 Page 1 1 Page 1 1 Page 1 2 Page 1 Data Data Data Data Snapshot entry Data in snapshot File write entry Reclaimed data Epoch ID Current data 53

Corrupt Snapshots with DAX-mmap() Recovery invariant: if V == True, then D is valid Incorrect: Naïvely mark pages read-only one-at-a-time Application: D = 5; V = True; Snapshot Page hosting D:? 5? Corrupt Page hosting V: False True T Timeline: Snapshot R/W RO Page Fault Copy on Write Value Change 54

Consistent Snapshots with DAX-mmap() Recovery invariant: if V == True, then D is valid Correct: Delay CoW page faults completion until all pages are readonly Application: D = 5; V = True; Snapshot Page hosting D:? 5? Consistent Page hosting V: False True F Timeline: Snapshot R/W RO RO Waiting Page Fault Copy on Write Value Change 55

Snapshot-related latency snapshot manifest init combine manifests radix tree locking sync superblock mark pages read-only change mapping memcpy_nocache Snapshot creation Snapshot deletion CoW page fault (4KB) 0 1 2 3 4 5 6 7 8 9 10 Latency (microsecond) 56

Defense Against Scribbles Tolerating Larger Scribbles Allocate replicas far from one another NOVA metadata can tolerate scribbles of 100s of MB Preventing scribbles Mark all NVMM as read-only Disable CPU write protection while accessing NVMM Exposes all kernel data to bugs in a very small section of NOVA code. 57

Read NVMM Failure Modes: Media Failures Media errors Detectable & correctable Detectable & uncorrectable Undetectable Software scribbles Kernel bugs or own bugs Transparent to hardware Software: NVMM Ctrl.: NVMM data: Consumes good data Detects & corrects errors Media error 58

Read NVMM Failure Modes: Media Failures Media errors Detectable & correctable Detectable & uncorrectable Undetectable Software scribbles Kernel bugs or own bugs Transparent to hardware Software: NVMM Ctrl.: NVMM data: Receives MCE Detects uncorrectable errors Raises exception Media error & Poison Radius (PR) e.g. 512 bytes 59

Read NVMM Failure Modes: Media Failures Media errors Detectable & correctable Detectable & uncorrectable Undetectable Software scribbles Kernel bugs or own bugs Transparent to hardware Software: NVMM Ctrl.: NVMM data: Consumes corrupted data Sees no error Media error 60

NVMM Failure Modes: Scribbles Media errors Detectable & correctable Detectable & uncorrectable Software: Bug code scribbles NVMM Undetectable Software scribbles Kernel bugs or NOVA bugs NVMM Ctrl.: NVMM data: Updates ECC Scribble error Write NVMM file systems are highly vulnerable 61

Read NVMM Failure Modes: Scribbles Media errors Detectable & correctable Detectable & uncorrectable Software: Consumes corrupted data Undetectable NVMM Ctrl.: Sees no error Software scribbles Kernel bugs or NOVA bugs NVMM data: Scribble error NVMM file systems are highly vulnerable 62

Latency (microsecond) File operation latency 20.0 17.5 15.0 12.5 10.0 7.5 5.0 2.5 0.0 Create Append (4KB) Overwrite (4KB) Overwrite (512B) Read (4KB) xfs-dax PMFS ext4-dax ext4-dataj Btrfs NOVA w/ MP w/ MP+WP w/ MP+DP w/ MP+DP+WP Relaxed mode 63

Bandwidnth (GB/s) Bandwidnth (GB/s) Random R/W bandwidth on NVDIMM-N 30 NVDIMM-N 4K Read 14 NVDIMM-N 4K Write 25 20 15 10 12 10 8 6 4 xfs-dax PMFS ext4-dax ext4-dataj Btrfs NOVA w/ MP 5 2 w/ MP+DP 0 1 2 4 8 16 0 1 2 4 8 16 Relaxed mode Threads Threads 64

Metadata Pages at Risk Scribble size and metadata bytes at risk 16K 2K 256 32 4 0.5 0.06 7.8E-3 9.8E-4 1.2E-4 no replication, worst no replication, average simple replication, worst simple replication, average two-way replication, worst two-way replication, average dead-zone replication, worst dead-zone replication, average 1.5E-5 1 16 256 4K 64K 1M 16M 256M Scribble Size in Bytes 65

Storage overhead Primary inode 0.1% Primary log 2.0% Replica inode 0.1% Replica log 2.0% File data 82.4% File checksum 1.6% File parity 11.1% Unused 0.8% 66

Latency breakdown VFS alloc inode journaling memcpy_mcsafe memcpy_nocache append entry free old data calculate entry csum verify entry csum replicate inode replicate log verify data csum update data csum update data parity write protection Create Append 4KB Overwrite 4KB Overwrite 512B Read 4KB Read 16KB 0 1 2 3 4 5 6 7 8 9 Latency (microsecond) 67

Latency breakdown VFS alloc inode journaling memcpy_mcsafe memcpy_nocache append entry free old data calculate entry csum verify entry csum replicate inode replicate log verify data csum update data csum update data parity write protection Create Append 4KB Overwrite 4KB Overwrite 512B Read 4KB Read 16KB 0 1 2 3 4 5 6 7 8 9 Latency (microsecond) Metadata Protection 68

Latency breakdown VFS alloc inode journaling memcpy_mcsafe memcpy_nocache append entry free old data calculate entry csum verify entry csum replicate inode replicate log verify data csum update data csum update data parity write protection Create Append 4KB Overwrite 4KB Overwrite 512B Read 4KB Read 16KB 0 1 2 3 4 5 6 7 8 9 Latency (microsecond) Metadata Protection Data Protection 69

Latency breakdown VFS alloc inode journaling memcpy_mcsafe memcpy_nocache append entry free old data calculate entry csum verify entry csum replicate inode replicate log verify data csum update data csum update data parity write protection Create Append 4KB Overwrite 4KB Overwrite 512B Read 4KB Read 16KB 0 1 2 3 4 5 6 7 8 9 Latency (microsecond) Metadata Protection Data Protection Scribble Prevention 70

Normalized throughput Ops/second Application performance on NOVA-Fortis NVDIMM-N 1.2 1.0 495k 610k 553k 692k 27k 73k 30k 126k 45k 0.8 0.6 0.4 0.2 0.0 Fileserver Varmail Webproxy Webserver RocksDB MongoDB Exim SQLite TPCC Average xfs-dax PMFS ext4-dax ext4-dataj Btrfs NOVA w/ MP w/ MP+DP Relaxed mode 71

Normalized throughput to NVDIMM-N Application performance on NOVA-Fortis 1.2 PCM 1.0 0.8 0.6 0.4 0.2 0.0 Fileserver Varmail Webproxy Webserver RocksDB MongoDB Exim SQLite TPCC Average xfs-dax PMFS ext4-dax ext4-dataj Btrfs NOVA w/ MP w/ MP+DP Relaxed mode 72