Transcript
Page 1: The Problem with POSIX (1) POSIX is Dead! Long Live errr ... · Implementation •Low-level vs. high-level compounding API Low-level: allow compounding anything High-level: useful

POSIX is Dead!Long Live... errr... What Exactly?

July 10, 2017 POSUX talk (HotStorage’17 WACI) 1

Erez Zadok, Dean Hildebrand,

Geoff Kuenning, and

Keith Smith

Stony Brook University

IBM Research -Almaden

Harvey Mudd College

NetApp

The Problem with POSIX (1)

• POSIX is ~30 years oldHuge advancements in computingDeeper, more complex storage stack

• Inefficient use of resourcesDesigned for serial/sync data accessToday: faster, more complex, heterogeneous hardware§ Parallelism, clouds

July 10, 2017 2POSUX talk (HotStorage’17 WACI)

The Problem with POSIX (2)• Security: Huh? What’s

that? E.g., TOCTTOU bugs

• Assumes files and namespaces

Hard to manage many files

• Byte-level accessOverkill for Objects?

July 10, 2017 POSUX talk (HotStorage’17 WACI) 3

Worst.API.Ever.

How Do You Solve a Problem Like…• Abolish POSIX!• New API

Works with files, objects, extents, etc.

• Minimal set of native callsE.g., really need symlinks/hardlinks?!

• Security from day one• Efficiency

Asynchrony, compounding, API v2

July 10, 2017 4POSUX talk (HotStorage’17 WACI)

Increasing Efficiency (1)

• Compounding (bulk updates)Pack multiple request in one messageSaves latency, fewer context switchesMultiple failure semantics§ First-fail§ Continue-on-fail§ Transactional

Simple if-then-else and looping syntax

July 10, 2017 5POSUX talk (HotStorage’17 WACI)

[FAST’17, HOTOS’03]

Increasing Efficiency (2)

• Asynchrony everywhereEncourages more parallel “thinking”CPU speeds vs. #cores

• API changesGive a “handle” to operate on a collection of files/objects§ Locking, leases/delegations, recalls

Avoid passing same info repeatedly§ E.g., /bin/cp passes same pathname

Improves security and reliability

July 10, 2017 6POSUX talk (HotStorage’17 WACI)

[FAST’17, HOTOS’03]

Page 2: The Problem with POSIX (1) POSIX is Dead! Long Live errr ... · Implementation •Low-level vs. high-level compounding API Low-level: allow compounding anything High-level: useful

Implementation

• Low-level vs. high-level compounding API

Low-level: allow compounding anythingHigh-level: useful APIs to developers

• Offer begin/end APIsMark code segments for compoundingNeeds compiler/language support, code-analysis

July 10, 2017 7POSUX talk (HotStorage’17 WACI)

Transitioning

• Implement most common requests firste.g., read/write-whole-file, copy-file, rename-multiple-objects, rm-*

• Offer transactional semantics early onRequires support all the way through the storage/OS/network stack

July 10, 2017 8POSUX talk (HotStorage’17 WACI)

Why Migrate?Mainly for performance,

then security.

POSIX is Dead!Long Live... errr... What Exactly?

July 10, 2017 POSUX talk (HotStorage’17 WACI) 9

Erez Zadok, Dean Hildebrand,

Geoff Kuenning, and

Keith Smith

Stony Brook University

IBM Research -Almaden

Harvey Mudd College

NetApp

Q&A


Top Related