Application-Allocated I/O Buffering with System-Allocated Performance,

reportActive / Technical Report | Accession Number: ADA322736 | Open PDF

Abstract:

We present a novel taxonomy that classifies IO data passing between applications and operating system along three dimensions buffer allocation scheme, guaranteed integrity, and optimization. We contribute new optimizations - input-disabled pageout, transient output copy-on-write, and input alignment - that are used in a novel buffering semantics, emulated copy. We implemented an IO framework, Genie, that allows applications to select any semantics in the taxonomy. Using Genie for end-to-end communication over an ATM network, we found that, compared to other semantics, only copy had sharply inferior performance. All other semantics performed quite similarly, contradicting the expectation that emulated copy, being application-allocated and strong-integrity as is copy semantics, should have considerably worse performance than those of move system-allocated or share weak-integrity semantics. We analyzed end-to-end latencies in terms of the costs of primitive data passing operations and modeled how those costs scale with CPU, memory, and network speeds. The analysis suggests that current trends tend to intensify the observed performance clustering. We conclude that IO interfaces with copy semantics, such as that of Unix, can be transparently converted to emulated copy and thus achieve performance approaching the best in the taxonomy.

Security Markings

DOCUMENT & CONTEXTUAL SUMMARY

Distribution:
Approved For Public Release

RECORD

Collection: TR
Identifying Numbers
Subject Terms