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.

Christopher Frost 0001

dblp:69/6042-1 · DBLP profile ↗
← Back
7ranked-venue papers
1as first author
0since 2021 · last 2013
—ORCID · none

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

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

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.

Computer architecture, parallel and distributed computing, and storage systems
6 papers
Distributed systems · 48% Storage systems · 38% Memory systems · 11%
Software engineering, system software, and programming languages
4 papers
Programming languages and type systems · 87% Operating systems · 13%

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

TopicWeightPapersLastEvidence papers
Distributed systems
distributed database
0.322013
Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013
Spanner: Google's Globally-Distributed Database · OSDI 2012
Distributed systems
consensus
0.212013
Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013
Distributed systems
replication
0.212013
Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013
Distributed systems › replication › update propagation
synchronous replication
0.212013
Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013
Storage systems
crash consistency
0.122007
Generalized file system dependencies · SOSP 2007
The KudOS architecture for file systems · SOSP 2005
Storage systems
file systems
0.122007
Generalized file system dependencies · SOSP 2007
The KudOS architecture for file systems · SOSP 2005
Programming languages and type systems › method dispatch
dynamic dispatch
0.112009
Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009
Programming languages and type systems › type checking
modular typechecking
0.112009
Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009
Programming languages and type systems › method dispatch
predicate dispatch
0.112009
Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009
Programming languages and type systems
type systems
0.112009
Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009
Storage systems › i/o scheduling
disk scheduling
0.112009
Reducing Seek Overhead with Application-Directed Prefetching · USENIX ATC 2009
Storage systems › i/o optimization
disk seek time reduction
0.112009
Reducing Seek Overhead with Application-Directed Prefetching · USENIX ATC 2009
Memory systems
non-volatile memory
0.112009
Better I/O through byte-addressable, persistent memory · SOSP 2009
Memory systems › non-volatile memory
persistent memory
0.112009
Better I/O through byte-addressable, persistent memory · SOSP 2009
Storage systems › non-volatile memory storage
persistent memory systems
0.112009
Better I/O through byte-addressable, persistent memory · SOSP 2009
Storage systems
storage reliability
0.112007
Generalized file system dependencies · SOSP 2007
Storage systems › file systems › write-optimized file system
log-structured file system
0.112005
The KudOS architecture for file systems · SOSP 2005
Distributed systems › distributed coordination and fault tolerance
consensus and replication
0.012012
Spanner: Google's Globally-Distributed Database · OSDI 2012
Programming languages and type systems › object-oriented programming
java
0.012009
Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009
Programming languages and type systems
object-oriented programming
0.012009
Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009

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

truetime · 0.2patch-based dependency abstraction · 0.1soft updates · 0.1journalling · 0.1featherweight java · 0.1decision procedures · 0.1
YearPublicationVenuePosition
2013 Spanner: Google's Globally Distributed Database
abstract
Spanner is Google’s scalable, multiversion, globally distributed, and synchronously replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This article describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: nonblocking reads in the past, lock-free snapshot transactions, and atomic schema changes, across all of Spanner.
James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost 0001, J. J. Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson C. Hsieh, Sebastian Kanthak, Eugene Kogan, Alexander Lloyd, Sergey Melnik 0001, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Ruth Wang, Dale Woodford
ACM Trans. Comput. Syst.5
2012 Spanner: Google's Globally-Distributed Database
James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost 0001, J. J. Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson C. Hsieh, Sebastian Kanthak, Eugene Kogan, Alexander Lloyd, Sergey Melnik 0001, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Ruth Wang, Dale Woodford
OSDI5
2009 Better I/O through byte-addressable, persistent memory
abstract
Modern computer systems have been built around the assumption that persistent storage is accessed via a slow, block-based interface. However, new byte-addressable, persistent memory technologies such as phase change memory (PCM) offer fast, fine-grained access to persistent storage.
Jeremy Condit, Ed Nightingale, Christopher Frost 0001, Engin Ipek, Benjamin C. Lee, Doug Burger, Derrick Coetzee
SOSP3
2009 Reducing Seek Overhead with Application-Directed Prefetching
Steve Vandebogart, Christopher Frost 0001, Eddie Kohler
USENIX ATC2
2009 Expressive and modular predicate dispatch for Java
abstract
Predicate dispatch is an object-oriented (OO) language mechanism for determining the method implementation to be invoked upon a message send. With predicate dispatch, each method implementation includes a predicate guard specifying the conditions under which the method should be invoked, and logical implication of predicates determines the method overriding relation. Predicate dispatch naturally unifies and generalizes several common forms of dynamic dispatch, including traditional OO dispatch, multimethod dispatch, and functional-style pattern matching. Unfortunately, prior languages supporting predicate dispatch have had several deficiencies that limit the practical utility of this language feature. We describe JPred, a backward-compatible extension to Java supporting predicate dispatch. While prior languages with predicate dispatch have been extensions to toy or nonmainstream languages, we show how predicate dispatch can be naturally added to a traditional OO language. While prior languages with predicate dispatch have required the whole program to be available for typechecking and compilation, JPred retains Java's modular typechecking and compilation strategies. While prior languages with predicate dispatch have included special-purpose algorithms for reasoning about predicates, JPred employs general-purpose, off-the-shelf decision procedures. As a result, JPred's type system is more flexible, allowing several useful programming idioms that are spuriously rejected by those other languages. After describing the JPred language informally, we present an extension to Featherweight Java that formalizes the language and its modular type system, which we have proven sound. Finally, we discuss two case studies that illustrate the practical utility of JPred, including its use in the detection of several errors.
Todd D. Millstein, Christopher Frost 0001, Jason Ryder, Alessandro Warth
ACM Trans. Program. Lang. Syst.2
2007 Generalized file system dependencies
abstract
Reliable storage systems depend in part on “write-before” relationships where some changes to stable storage are delayed until other changes commit. A journaled file system, for example, must commit a journal transaction before applying that transaction’s changes, and soft updates [9] and other consistency enforcement mechanisms have similar constraints, implemented in each case in systemdependent ways. We present a general abstraction, the patch, that makes write-before relationships explicit and file system agnostic. A patch-based file system implementation expresses dependencies among writes, leaving lower system layers to determine write orders that satisfy those dependencies. Storage system modules can examine and modify the dependency structure, and generalized file system dependencies are naturally exportable to user level. Our patch-based storage system, Featherstitch, includes several important optimizations that reduce patch overheads by orders of magnitude. Our ext2 prototype runs in the Linux kernel and supports asynchronous writes, soft updates-like dependencies, and journaling. It outperforms similarly reliable ext2 and ext3 configurations on some, but not all, benchmarks. It also supports unusual configurations, such as correct dependency enforcement within a loopback file system, and lets applications define consistency requirements without micromanaging how those requirements are satisfied.
Christopher Frost 0001, Mike Mammarella, Eddie Kohler, Andrew de los Reyes, Shant Hovsepian, Andrew Matsuoka
SOSP1
2005 The KudOS architecture for file systems
abstract
For robustness, stability, and reboot speed, file system implementations must ensure that the file system's stored image is kept consistent or easy to return to consistency. Advanced consistency mechanisms such as soft updates [2] and journalling make this possible; unfortunately, they are generally tied to a particular file system, and can't be ported or adapted without significant engineering effort. Furthermore, interfaces like fsync () give user code only coarse control over consistency. Applications with custom consistency and performance requirements get little help from conventional file systems, which either impose high overhead (data journalling) or don't guarantee data consistency (soft updates, for example, ensures metadata consistency only).
Andrew de los Reyes, Christopher Frost 0001, Eddie Kohler, Mike Mammarella
SOSP2