• No results found

Preparing Applications for Persistent Memory Doug Voigt Hewlett Packard (Enterprise)

N/A
N/A
Protected

Academic year: 2021

Share "Preparing Applications for Persistent Memory Doug Voigt Hewlett Packard (Enterprise)"

Copied!
23
0
0

Loading.... (view fulltext now)

Full text

(1)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Preparing Applications

for Persistent Memory

Doug Voigt

(2)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Latency Thresholds Cause Disruption

2 La te nc y ( Lo g ) 200 nS 2 uS HDD SATA SSD NVMe Flash Persistent Memory Context Switch NUMA Min, Max Latencies For

Example Technologies

“Persistent memory” refers to

memory-like non-volatile memory

(3)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

SNIA NVM Programming Model

Version 1.1 approved by SNIA in March 2015

 http://www.snia.org/tech_activities/standards/curr_standards/npm

Expose new block and file features to applications

 Atomicity capability and granularity

 Thin provisioning management

Use of memory mapped files for persistent memory

 Existing abstraction that can act as a bridge

 Limits the scope of application re-invention

 Open source implementations available

Programming Model, not API

 Described in terms of attributes, actions and use cases

 Implementations map actions and attributes to API’s

(4)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Persistent Memory Modes

Use with memory-like NVM

NVM.PM.VOLUME Mode

Software abstraction to OS components for Persistent Memory (PM) hardware

List of physical address ranges for each PM volume

Thin provisioning management

NVM.PM.FILE Mode

Describes the behavior for applications accessing persistent memory Discovery and use of atomic write features

Mapping PM files (or subsets of files) to virtual memory addresses

Syncing portions of PM files to the persistence domain 4 Application PM device . . . PM device User space Kernel space MMU Mappings PM-aware file system NVM PM capable driver Load/ store Native file API PM-aware kernel module PM device NVM.PM.VOLUME mode NVM.PM.FILE mode

(5)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Programming Model Application Impact

Map and Sync Paradigm

 Map associates memory addresses with PM in files

 Sync ensures that modifications to data are persistent

 Sync does not guarantee order

Pointers – how do PM data structures reference each other?

 Virtual addresses can be used as pointers?

 Always use an offset from a re-locatable base? 

Failure Atomicity

 Different from the inter-process consistency in current architectures

 Processor architecture specific

Exception Handling instead of status

 If low level failure recovery fails

 If backtracking is needed because PM was restored to an earlier state

(6)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Application Horizons

6 Compiler Until Recently Horizon 3: Languages Application

File System File System

File System PM Application Application Application PM Library File System PM PM Disk Driver Horizon 1: PM Middleware Horizon 2: PM Libraries SSD

(7)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Persistent Memory Data Structures

(8)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Libraries Using NVM Programming Model

8 Kernel Space PM Aware Application PM-Aware File System MMU Mapp ings Persistent Memory

PM data structure

libraries

(9)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Trivial Example: Append Only Log

9

Append pseudo-code:

<Create new log entry in free space>

Sync(new entry);

filled = filled + size(new entry); # Atomic update to fundamental data type

Sync(filled);

Pre-allocated PM pool

Int filled;

Next entry WIP

(10)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

PM Data Structures

It can be more efficient to avoid modifying data in place

Use newly allocated space

PM allocation itself must be atomic/transactional

Form groups of data structures

Within a PM pool

Cataloged under a common root

Unify groups of PM data structures into larger transactions

Transaction object tracks and manages PM updates

Captures pre-images and rolls back if needed

Syncs/Flushes data to persistence domain

(11)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Pmem.io Library

http://pmem.io/nvml

PM assist functions

Map, Sync, Allocation

PM Data Structures

Log, Block

PM Object

Root, Transactions, Type Safety and more

(12)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Library vs. Language Extensions

Features similar to pmem can be integrated into

standard programming languages

 More convenient

 More sophisticated

 Safer

http://www.hpl.hp.com/techreports/2013/HPL-2013-78.pdf

Failure atomic code sections based on existing critical sections

http://www.snia.org/sites/default/files/BillBridgeNVMSummit

2015Slides.pdf

NVM region file management, transactions with locks, heap management

(13)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Failure Recovery

(14)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

PM Fault Tolerance

14 User Space Kernel Space PM Aware Application PM-Aware File System MMU Mapp ings Persistent Memory

PM RAID or

Erasure Coding

(15)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

High Durability and High Availability (HA)

Durability

Ability to (eventually) recover data after failure

e.g. Local mirroring (1)

Does not guarantee continuous access

Availability

Ability to continuously access data regardless of failure

Requires cross-node redundancy (2)

High availability requires high durability 15 CPU NVDIMMS IO CPU IO Network Adapter Network Adapter Network Switch(s) Server Server 2 1 St St NVDIMMS

(16)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Remote Access for High Availability

SNIA NVMP TWG work in progress

 Use today’s RDMA to explore this use case

 Agnostic to specific implementation (IB, ROCE, iWARP)

 Optimal implementation may not always be RDMA

Recommends Remote OptimizedFlush network service

 Goal is to minimize latency

 Requires at least 2 round trips with today’s implementations

 Main issue is assurance of durability at remote site. 

New RDMA completion type helps

 Proposed in Open Fabrics Alliance IO working group

 Delays RDMA completion until data is in the remote persistence domain

 Likely component of remote optimized flush implementation

(17)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Application Recovery and Consistency

Application level goal is recovery from failure

 Requires robust local and remote error handling

 High Availability (as opposed to High Durability) in today’s systems requires application involvement.

 High Availability is high latency (10’s of uS) compared to memory 

Consistency is an application specific constraint

 Uncertainty of data state after failure

 Crash consistency

 Higher order consistency points such as transactions

 Atomicity of Aligned Fundamental Data Types

Use consistency points to optimize HA performance

 Periodic consistency points comprise groups of transactions

 Apply recovery point objectives

 Recovery may require application level backtracking

(18)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Backtracking Recovery

Occurs when PM state is recovered to a recent consistency point

 Created by remote optimized flush or transaction

 Requires work in progress to be reconciled by the application 

Detection

 During an exception

 During a system or application restart 

Application Response

 Transaction roll forward or roll back and retry

 Consistency checking and correction

(19)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Application Horizons

19 Compiler Until Recently Horizon 3: Languages Application

File System File System

File System PM Application Application Application PM Library File System PM PM Disk Driver Horizon 1: PM Middleware Horizon 2: PM Libraries SSD

(20)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Related Talks

(21)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Related Talks at SDC

PM Hardware

 The NVDIMM Cookbook: A Soup-to-Nuts Primer on Using NVDIMMs to Improve Your Storage Performance

Jeff Chang, AgigA Tech and Arthur Sainio, Smart Modular 

PM Management

 Managing the Next Generation Memory Subsystem Paul von Behren, Software Architect, Intel

PM Performance

 Load-Sto-Meter: Generating Workloads for Persistent Memory Doug Voigt, Damini Chopra, Storage CT Office, HP

Remote Access and Failure Recovery

 Remote Access to Ultra-low-latency Storage Tom Talpey, Architect, Microsoft

 RDMA with PM: Software Mechanisms for Enabling Persistent Memory Replication, Chet Douglas, Principal SW Architect, Intel

(22)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Related Talks at SDC

Applications of Persistent Memory

 Solving the Challenges of Persistent Memory Programming Sarah Jelinek, Senior SW Engineer, Intel

 Building NVRAM Subsystems in All-Flash Storage Arrays Pete Kirkpatrick, Principal Engineer, Pure Storage

Keynote earlier today

 Planning for the Next Decade of NVM Programming Andy Rudoff, SNIA NVM Programming TWG, Intel

Also check out persistent memory presentations in the pre-conference

 Advances in Non-Volatile Storage Technologies

 Nonvolatile Memory (NVM), Four Trends in the Modern Data Center, and the Implications for the Design of Next Generation Distributed Storage Platforms

 Developing Software for Persistent Memory

(23)

2015 Storage Developer Conference. © Insert Your Company Name. All Rights Reserved.

Preparing Applications

for Persistent Memory

Doug Voigt

References

Related documents

A partir de la revisión de material publicado en diarios de circulación nacional y local, el documento pro- porciona una mirada a la situación étnica desde lo político-electoral en

Location: Kampnagel Kulturfabrik Hall: K2 Statements 18:10 - 19:00 PM Pan-African Media Forum:. Migration and Labor Mobility within Africa and Beyond an entrepreneurship

No one can get to the Father except by means of me.” (John 14:6) The Way in is like a needle, a gate, a door, a highway: Jesus has a standing invitation to us: “Look! I have

[r]

Your assessment of the candidate will assist the Campus Life and Student Success Programs staff in their selection process.. This recommendation may be mailed directly to the

Budući da se u voltametriji s pravokutnim izmjeničnim signalom pobude struja odziva mjeri pri kraju trajanja pravokutnog impulsa jedne odnosno druge poluperiode

Furthermore, the importance of construction industry to Malaysian economic is something that undoubtable, hence the importance of this study undeniable in order to