Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Austin T. Clements is active.

Publication


Featured researches published by Austin T. Clements.


symposium on operating systems principles | 2013

The scalable commutativity rule: designing scalable software for multicore processors

Austin T. Clements; M. Frans Kaashoek; Nickolai Zeldovich; Robert Tappan Morris; Eddie Kohler

What fundamental opportunities for scalability are latent in interfaces, such as system call APIs? Can scalability opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions this paper introduces the following rule: Whenever interface operations commute, they can be implemented in a way that scales. This rule aids developers in building more scalable software starting from interface design and carrying on through implementation, testing, and evaluation. To help developers apply the rule, a new tool named Commuter accepts high-level interface models and generates tests of operations that commute and hence could scale. Using these tests, Commuter can evaluate the scalability of an implementation. We apply Commuter to 18 POSIX calls and use the results to guide the implementation of a new research operating system kernel called sv6. Linux scales for 68% of the 13,664 tests generated by Commuter for these calls, and Commuter finds many problems that have been observed to limit application scalability. sv6 scales for 99% of the tests.


architectural support for programming languages and operating systems | 2012

Scalable address spaces using RCU balanced trees

Austin T. Clements; M. Frans Kaashoek; Nickolai Zeldovich

Software developers commonly exploit multicore processors by building multithreaded software in which all threads of an application share a single address space. This shared address space has a cost: kernel virtual memory operations such as handling soft page faults, growing the address space, mapping files, etc. can limit the scalability of these applications. In widely-used operating systems, all of these operations are synchronized by a single per-process lock. This paper contributes a new design for increasing the concurrency of kernel operations on a shared address space by exploiting read-copy-update (RCU) so that soft page faults can both run in parallel with operations that mutate the same address space and avoid contending with other page faults on shared cache lines. To enable such parallelism, this paper also introduces an RCU-based binary balanced tree for storing memory mappings. An experimental evaluation using three multithreaded applications shows performance improvements on 80 cores ranging from 1.7x to 3.4x for an implementation of this design in the Linux 2.6.37 kernel. The RCU-based binary tree enables soft page faults to run at a constant cost with an increasing number of cores,suggesting that the design will scale well beyond 80 cores.


european conference on computer systems | 2013

RadixVM: scalable address spaces for multithreaded applications

Austin T. Clements; M. Frans Kaashoek; Nickolai Zeldovich

RadixVM is a new virtual memory system design that enables fully concurrent operations on shared address spaces for multithreaded processes on cache-coherent multicore computers. Today, most operating systems serialize operations such as mmap and munmap, which forces application developers to split their multithreaded applications into multiprocess applications, hoard memory to avoid the overhead of returning it, and so on. RadixVM removes this burden from application developers by ensuring that address space operations on non-overlapping memory regions scale perfectly. It does so by combining three techniques: 1) it organizes metadata in a radix tree instead of a balanced tree to avoid unnecessary cache line movement; 2) it uses a novel memory-efficient distributed reference counting scheme; and 3) it uses a new scheme to target remote TLB shootdowns and to often avoid them altogether. Experiments on an 80 core machine show that RadixVM achieves perfect scalability for non-overlapping regions: if several threads mmap or munmap pages in parallel, they can run completely independently and induce no cache coherence traffic.


architectural support for programming languages and operating systems | 2008

Xoc, an extension-oriented compiler for systems programming

Russ Cox; Tom Bergan; Austin T. Clements; M. Frans Kaashoek; Eddie Kohler

Todays system programmers go to great lengths to extend the languages in which they program. For instance, system-specific compilers find errors in Linux and other systems, and add support for specialized control flow to Qt and event-based programs. These compilers are difficult to build and cannot always understand each others language changes. However, they can greatly improve code understandability and correctness, advantages that should be accessible to all programmers. We describe an extension-oriented compiler for C called xoc. An extension-oriented compiler, unlike a conventional extensible compiler, implements new features via many small extensions that are loaded together as needed. Xoc gives extension writers full control over program syntax and semantics while hiding many compiler internals. Xoc programmers concisely define powerful compiler extensions that, by construction, can be combined; even some parts of the base compiler, such as GNU C compatibility, are structured as extensions. Xoc is based on two key interfaces. Syntax patterns allow extension writers to manipulate language fragments using concrete syntax. Lazy computation of attributes allows extension writers to use the results of analyses by other extensions or the core without needing to worry about pass scheduling. Extensions built using xoc include xsparse, a 345-line extension that mimics Sparse, Linuxs C front end, and xlambda, a 170-line extension that adds function expressions to C. An evaluation of xoc using these and 13 other extensions shows that xoc extensions are typically more concise than equivalent extensions written for conventional extensible compilers and that it is possible to compose extensions.


international workshop on peer to peer systems | 2005

Arpeggio: metadata searching and content sharing with chord

Austin T. Clements; Dan R. K. Ports; David R. Karger

Arpeggio is a peer-to-peer file-sharing network based on the Chord lookup primitive. Queries for data whose metadata matches a certain criterion are performed efficiently by using a distributed keyword-set index, augmented with index-side filtering. We introduce index gateways, a technique for minimizing index maintenance overhead. Because file data is large, Arpeggio employs subrings to track live source peers without the cost of inserting the data itself into the network. Finally, we introduce postfetching, a technique that uses information in the index to improve the availability of rare files. The result is a system that provides efficient query operations with the scalability and reliability advantages of full decentralization, and a content distribution system tuned to the requirements and capabilities of a peer-to-peer network.


symposium on operating systems principles | 2005

PersiFS: a versioned file system with an efficient representation

Dan R. K. Ports; Austin T. Clements; Erik D. Demaine

The availability of previous file versions is invaluable for recovering from file corruption or user errors such as accidental deletions. Versioned file systems address this need by retaining earlier versions of changed files. Many existing file systems, such as Plan 9, WAFL, AFS, and others, use a snap-shotting approach: they record and archive the state of the file system at periodic intervals. However, this fails to capture modifications that are made between snapshots. Our system, PersiFS, is continuously versioned, meaning that it stores every modification, and thus allows access to the file system state as it appeared at any specified time. To make this feasible, we use a number of efficient data structures to optimize both access time and disk space.


symposium on operating systems principles | 2017

Scaling a file system to many cores using an operation log

Srivatsa S. Bhat; Rasha Eqbal; Austin T. Clements; M. Frans Kaashoek; Nickolai Zeldovich

It is challenging to simultaneously achieve multicore scalability and high disk throughput in a file system. For example, even for commutative operations like creating different files in the same directory, current file systems introduce cache-line conflicts when updating an in-memory copy of the on-disk directory block, which limits scalability. ScaleFS is a novel file system design that decouples the in-memory file system from the on-disk file system using per-core operation logs. This design facilitates the use of highly concurrent data structures for the in-memory representation, which allows commutative operations to proceed without cache conflicts and hence scale perfectly. ScaleFS logs operations in a per-core log so that it can delay propagating updates to the disk representation (and the cache-line conflicts involved in doing so) until an fsync. The fsync call merges the per-core logs and applies the operations to disk. ScaleFS uses several techniques to perform the merge correctly while achieving good performance: timestamped linearization points to order updates without introducing cache-line conflicts, absorption of logged operations, and dependency tracking across operations. Experiments with a prototype of ScaleFS show that its implementation has no cache conflicts for 99% of test cases of commutative operations generated by Commuter, scales well on an 80-core machine, and provides on-disk performance that is comparable to that of Linux ext4.


operating systems design and implementation | 2010

An analysis of Linux scalability to many cores

Silas Boyd-Wickizer; Austin T. Clements; Yandong Mao; Aleksey Pesterev; M. Frans Kaashoek; Robert Tappan Morris; Nickolai Zeldovich


usenix annual technical conference | 2009

Decentralized deduplication in SAN cluster file systems

Austin T. Clements; Irfan Ahmad; Murali Vilayannur; Jinyuan Li


operating systems design and implementation | 2010

Transactional consistency and automatic management in an application data cache

Dan R. K. Ports; Austin T. Clements; Irene Zhang; Samuel Madden; Barbara Liskov

Collaboration


Dive into the Austin T. Clements's collaboration.

Top Co-Authors

Avatar

M. Frans Kaashoek

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Nickolai Zeldovich

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Robert Tappan Morris

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Erik D. Demaine

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Aleksey Pesterev

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Barbara Liskov

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

David R. Karger

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Irene Zhang

University of Washington

View shared research outputs
Researchain Logo
Decentralizing Knowledge