Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Austin T. Clements

dblp:21/659 · DBLP profile ↗
← Back
10ranked-venue papers
5as first author
0since 2021 · last 2017
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 2 first-authorSystems, architecture and hardware · 5 · 4 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
6 papers
Operating systems · 75% Programming languages and type systems · 9% Concurrent programming · 8%
Computer architecture, parallel and distributed computing, and storage systems
9 papers
Storage systems · 45% Performance modeling and evaluation · 26% Parallel and multicore computing · 14%
Databases, data mining, and information retrieval
1 paper
Transaction processing and concurrency control · 50% Database system architecture and tuning · 50%

Topics — the 20 heaviest of 24, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Storage systems
file systems
0.432017
Scaling a file system to many cores using an operation log · SOSP 2017
Decentralized Deduplication in SAN Cluster File Systems · USENIX ATC 2009
PersiFS: a versioned file system with an efficient representation · SOSP 2005
Performance modeling and evaluation › parallel performance evaluation
multicore scalability
0.432017
The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors · ACM Trans. Comput. Syst. 2015
An Analysis of Linux Scalability to Many Cores · OSDI 2010
Scaling a file system to many cores using an operation log · SOSP 2017
Operating systems › resource management › memory management
address space management
0.322013
RadixVM: scalable address spaces for multithreaded applications · EuroSys 2013
Scalable address spaces using RCU balanced trees · ASPLOS 2012
Operating systems › resource management › memory management
virtual memory
0.322013
RadixVM: scalable address spaces for multithreaded applications · EuroSys 2013
Scalable address spaces using RCU balanced trees · ASPLOS 2012
Operating systems › kernel › kernel design
kernel scalability
0.222012
Scalable address spaces using RCU balanced trees · ASPLOS 2012
An Analysis of Linux Scalability to Many Cores · OSDI 2010
Memory systems › memory management
virtual memory
0.212013
RadixVM: scalable address spaces for multithreaded applications · EuroSys 2013
Operating systems › resource management › memory management › virtual memory
page fault handling
0.112012
Scalable address spaces using RCU balanced trees · ASPLOS 2012
Concurrent programming › synchronization
read-copy-update
0.112012
Scalable address spaces using RCU balanced trees · ASPLOS 2012
Transaction processing and concurrency control › consistency
transactional consistency
0.112010
Transactional Consistency and Automatic Management in an Application Data Cache · OSDI 2010
Storage systems › file systems
cluster file systems
0.112009
Decentralized Deduplication in SAN Cluster File Systems · USENIX ATC 2009
Storage systems › data reduction › data deduplication
distributed deduplication
0.112009
Decentralized Deduplication in SAN Cluster File Systems · USENIX ATC 2009
Compilers and program optimization › compiler construction
extensible compiler
0.112008
Xoc, an extension-oriented compiler for systems programming · ASPLOS 2008
Programming languages and type systems
language design
0.112008
Xoc, an extension-oriented compiler for systems programming · ASPLOS 2008
Programming languages and type systems › language design
language extension
0.112008
Xoc, an extension-oriented compiler for systems programming · ASPLOS 2008
Storage systems › file systems › versioning
versioning file system
0.112005
PersiFS: a versioned file system with an efficient representation · SOSP 2005
Parallel and multicore computing › thread-level parallelism
multithreaded applications
0.012013
RadixVM: scalable address spaces for multithreaded applications · EuroSys 2013
Memory systems › memory interference
cache line contention
0.012012
Scalable address spaces using RCU balanced trees · ASPLOS 2012
Distributed systems
distributed coordination and fault tolerance
0.012010
Transactional Consistency and Automatic Management in an Application Data Cache · OSDI 2010
Storage systems
storage reliability
0.012009
Decentralized Deduplication in SAN Cluster File Systems · USENIX ATC 2009
Operating systems
systems programming
0.012008
Xoc, an extension-oriented compiler for systems programming · ASPLOS 2008

Methods — techniques the papers use, named apart from their topics

test generation · 0.4formalization · 0.4radix tree metadata · 0.3distributed reference counting · 0.3commutativity analysis · 0.3TLB shootdown targeting · 0.3read-copy-update · 0.3balanced binary tree · 0.3deduplication · 0.1compiler extension framework · 0.1snapshotting · 0.1
YearPublicationVenuePosition
2017 Scaling a file system to many cores using an operation log
abstract
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.
Srivatsa S. Bhat, Rasha Eqbal, Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich
SOSP3
2015 The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors
abstract
What opportunities for multicore scalability are latent in software interfaces, such as system call APIs? Can scalability challenges and opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions, we introduce the scalable commutativity rule: whenever interface operations commute, they can be implemented in a way that scales. This rule is useful throughout the development process for scalable multicore software, from the interface design through implementation, testing, and evaluation. This article formalizes the scalable commutativity rule. This requires defining a novel form of commutativity, SIM commutativity , that lets the rule apply even to complex and highly stateful software interfaces. We also introduce a suite of software development tools based on the rule. Our Commuter tool accepts high-level interface models, generates tests of interface operations that commute and hence could scale, and uses these tests to systematically evaluate the scalability of implementations. We apply Commuter to a model of 18 POSIX file and virtual memory system operations. Using the resulting 26,238 scalability tests, Commuter highlights Linux kernel problems previously observed to limit application scalability and identifies previously unknown bottlenecks that may be triggered by future workloads or hardware. Finally, we apply the scalable commutativity rule and Commuter to the design and implementation sv6, a new POSIX-like operating system. sv6’s novel file and virtual memory system designs enable it to scale for 99% of the tests generated by Commuter . These results translate to linear scalability on an 80-core x86 machine for applications built on sv6’s commutative operations.
Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, Eddie Kohler
ACM Trans. Comput. Syst.1
2013 RadixVM: scalable address spaces for multithreaded applications
abstract
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.
Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich
EuroSys1
2013 The scalable commutativity rule: designing scalable software for multicore processors
abstract
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.
Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, Eddie Kohler
SOSP1
2012 Scalable address spaces using RCU balanced trees
abstract
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.
Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich
ASPLOS1
2010 An Analysis of Linux Scalability to Many Cores
Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris 0005, Nickolai Zeldovich
OSDI2
2010 Transactional Consistency and Automatic Management in an Application Data Cache
Dan R. K. Ports, Austin T. Clements, Irene Zhang, Samuel Madden 0001, Barbara Liskov
OSDI2
2009 Decentralized Deduplication in SAN Cluster File Systems
Austin T. Clements, Irfan Ahmad 0005, Murali Vilayannur
USENIX ATC1
2008 Xoc, an extension-oriented compiler for systems programming
abstract
Today's 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 other's language changes. However, they can greatly improve code understandability and correctness, advantages that should be accessible to all programmers.
Russ Cox, Tom Bergan, Austin T. Clements, M. Frans Kaashoek, Eddie Kohler
ASPLOS3
2005 PersiFS: a versioned file system with an efficient representation
abstract
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.
Dan R. K. Ports, Austin T. Clements, Erik D. Demaine
SOSP2