Terence Kelly

dblp:64/5765 · DBLP profile ↗
← Back
26ranked-venue papers
4as first author
1since 2021 · last 2023
0009-0006-1607-5674ORCID · corroborated

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

Systems, architecture and hardware · 13 · 1 first-author · 1 since 2021Software engineering, systems software and programming languages · 9 · 1 first-authorDatabases, data management, data science and information retrieval · 3 · 1 first-authorComputer networks · 2 · 1 first-authorTheory of computation · 1Applied, interdisciplinary, general and emerging computing · 1 · 1 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.

Computer architecture, parallel and distributed computing, and storage systems
10 papers
Storage systems · 63% Performance modeling and evaluation · 12% Memory systems · 11%
Software engineering, system software, and programming languages
4 papers
Operating systems · 56% Program analysis · 29% Program verification · 12%
Computer networks
3 papers
Internet architecture and protocols · 42% Network management and operations · 27% Content delivery and video streaming · 25%

Topics — the 29 heaviest of 36, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Storage systems › transaction support › transactional storage
failure atomicity
0.422016
Failure-Atomic Persistent Memory Updates via JUSTDO Logging · ASPLOS 2016
Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data · EuroSys 2013
Storage systems
storage reliability
0.422016
Failure-Atomic Persistent Memory Updates via JUSTDO Logging · ASPLOS 2016
Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data · EuroSys 2013
Storage systems
crash consistency
0.322016
Failure-Atomic Persistent Memory Updates via JUSTDO Logging · ASPLOS 2016
Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data · EuroSys 2013
Storage systems
logging
0.212016
Failure-Atomic Persistent Memory Updates via JUSTDO Logging · ASPLOS 2016
Memory systems › non-volatile memory
persistent memory
0.212016
Failure-Atomic Persistent Memory Updates via JUSTDO Logging · ASPLOS 2016
Storage systems
file systems
0.212015
Failure-Atomic Updates of Application Data in a Linux File System · FAST 2015
Performance modeling and evaluation
workload characterization
0.232007
Exploiting nonstationarity for performance prediction · EuroSys 2007
Transaction mix performance models: methods and application to performance anomaly detection · SOSP 2005
Capturing, indexing, clustering, and retrieving system history · SOSP 2005
Operating systems › resource management
deadlock avoidance
0.222009
The theory of deadlock avoidance via discrete control · POPL 2009
Gadara: Dynamic Deadlock Avoidance for Multithreaded Programs · OSDI 2008
Storage systems
key-value storage
0.212013
Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data · EuroSys 2013
Storage systems › key-value storage
transactional key-value store
0.212013
Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data · EuroSys 2013
Distributed systems
fault tolerance
0.222012
Composable Reliability for Asynchronous Systems · USENIX ATC 2012
Correlating Instrumentation Data to System States: A Building Block for Automated Diagnosis and Control · OSDI 2004
Program analysis › program representation
control flow graph
0.112009
The theory of deadlock avoidance via discrete control · POPL 2009
Program analysis
dynamic analysis
0.112008
Gadara: Dynamic Deadlock Avoidance for Multithreaded Programs · OSDI 2008
Cloud and datacenter computing › datacenter services › online service systems
internet services
0.112008
A Dollar from 15 Cents: Cross-Platform Management for Internet Services · USENIX ATC 2008
Program verification › dynamic verification
runtime verification
0.112007
Discrete control for safe execution of IT automation workflows · EuroSys 2007
Performance modeling and evaluation
performance prediction
0.112007
Exploiting nonstationarity for performance prediction · EuroSys 2007
Rendering › temporal rendering
animation rendering
0.112005
Deadline scheduling for animation rendering · SIGMETRICS 2005
Network management and operations › fault management
fault diagnosis
0.112005
Capturing, indexing, clustering, and retrieving system history · SOSP 2005
Distributed systems
anomaly detection
0.112005
Transaction mix performance models: methods and application to performance anomaly detection · SOSP 2005
Performance modeling and evaluation › performance diagnosis
performance anomaly detection
0.112005
Transaction mix performance models: methods and application to performance anomaly detection · SOSP 2005
Internet architecture and protocols › world wide web › web protocols
HTTP
0.012004
Design, Implementation, and Evaluation of Duplicate Transfer Detection in HTTP · NSDI 2004
Distributed systems
asynchronous systems
0.012012
Composable Reliability for Asynchronous Systems · USENIX ATC 2012
Internet architecture and protocols
redundancy elimination
0.012002
Aliasing on the world wide web: prevalence and performance implications · WWW 2002
Content delivery and video streaming › caching
web caching
0.012002
Aliasing on the world wide web: prevalence and performance implications · WWW 2002
Cloud and datacenter computing
resource management
0.012008
A Dollar from 15 Cents: Cross-Platform Management for Internet Services · USENIX ATC 2008
Distributed systems › service-oriented architecture
service management
0.012008
A Dollar from 15 Cents: Cross-Platform Management for Internet Services · USENIX ATC 2008
Parallel and multicore computing › parallel computing
parallel rendering
0.012005
Deadline scheduling for animation rendering · SIGMETRICS 2005
Content delivery and video streaming
web performance
0.012004
Design, Implementation, and Evaluation of Duplicate Transfer Detection in HTTP · NSDI 2004
Network measurement and analytics › web measurement
web traffic characterization
0.012002
Aliasing on the world wide web: prevalence and performance implications · WWW 2002

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

crash-injection testing · 0.2JUSTDO logging · 0.2discrete control theory · 0.2statistical modeling · 0.1similarity-based retrieval · 0.1deadline scheduling · 0.1clustering · 0.1dynamic analysis · 0.1static analysis · 0.1queueing model · 0.1performance modeling · 0.1anomaly detection · 0.1trace analysis · 0.0
YearPublicationVenuePosition
2023 Snapshot: Fast, Userspace Crash Consistency for CXL and PM Using msync
abstract
Crash consistency using persistent memory programming libraries requires programmers to use complex transactions and manual annotations. In contrast, the failure-atomic msync() (FAMS) interface is much simpler as it transparently tracks updates and guarantees that modified data is atomically durable on a call to the failure-atomic variant of msync(). However, FAMS suffers from several drawbacks, like the overhead of msync() and the write amplification from page-level dirty data tracking.To address these drawbacks while preserving the advantages of FAMS, we propose Snapshot, an efficient userspace implementation of FAMS. Snapshot uses compiler-based annotation to transparently track updates in userspace and syncs them with the backing byte-addressable storage copy on a call to msync(). By keeping a copy of application data in DRAM, Snapshot improves access latency. Moreover, with automatic tracking and syncing changes only on a call to msync(), Snapshot provides crash-consistency guarantees, unlike the POSIX msync() system call.On an emulated CXL memory semantic SSD, Snapshot out-performs PMDK by up to 10.9× on all but one YCSB workload, where PMDK is 1.2× faster than Snapshot. Further, Kyoto Cabinet commits perform up to 8.0× faster with Snapshot than its built-in, msync()-based crash-consistency mechanism.
Suyash Mahar, Mingyao Shen, Terence Kelly, Steven Swanson
ICCD3
2017 Dalí: A Periodically Persistent Hash Map
abstract
Technology trends suggest that byte-addressable nonvolatile memory (NVM) will supplant many uses of DRAM over the coming decade, raising the prospect of inexpensive recovery from power failures and similar faults. Ensuring the consistency of persistent state remains nontrivial, however, in the presence of volatile caches; cached values can "leak" back to persistent memory in arbitrary order. To ensure consistency, existing persistent memory algorithms use expensive, explicit write-back instructions to force each value back to memory before performing a dependent write, thereby incurring significant run-time overhead. To reduce this overhead, we present a new design paradigm that we call periodic persistence. In a periodically persistent data structure, updates are made "in place," but can safely leak back to memory in any order, because only those updates that are known to be valid will be heeded during recovery. To guarantee forward progress, we periodically force a write-back of all dirty data in the cache, ensuring that all "sufficiently old" updates have indeed become persistent, at which point they become semantically visible to the recovery process. As an example of periodic persistence, we present a transactional hash map, Dalí, together with an informal proof of safety (buffered durable linearizability). Experiments with a prototype implementation suggest that periodic persistence can offer substantially better performance than either file-based or incrementally persistent (per-access write-back) alternatives.
Faisal Nawab, Joseph Izraelevitz, Terence Kelly, Charles B. Morrey III, Dhruva R. Chakrabarti, Michael L. Scott
DISC3
2016 Failure-Atomic Persistent Memory Updates via JUSTDO Logging
abstract
Persistent memory invites applications to manipulate persistent data via load and store instructions. Because failures during updates may destroy transient data (e.g., in CPU registers), preserving data integrity in the presence of failures requires failure-atomic bundles of updates. Prior failure atomicity approaches for persistent memory entail overheads due to logging and CPU cache flushing. Persistent caches can eliminate the need for flushing, but conventional logging remains complex and memory intensive. We present the design and implementation of JUSTDO logging, a new failure atomicity mechanism that greatly reduces the memory footprint of logs, simplifies log management, and enables fast parallel recovery following failure. Crash-injection tests confirm that JUSTDO logging preserves application data integrity and performance evaluations show that it improves throughput 3x or more compared with a state-of-the-art alternative for a spectrum of data-intensive algorithms.
Joseph Izraelevitz, Terence Kelly, Aasheesh Kolli
ASPLOS2
2015 Procrastination Beats Prevention: Timely Sufficient Persistence for Efficient Crash Resilience
abstract
Preserving the integrity of application data across updates in the presence of failure is an essential function of computing systems, and byte-addressable non-volatile memory (NVM) broadens the range of fault-tolerance strategies that implement it. NVM invites database systems to manipulate durable data directly via load and store instructions, but overheads due to the widely used mechanisms that ensure consistent recovery from failures impair performance, e.g., the logging overheads of transactions. We introduce the concept of Timely Sucient Persistence (TSP) mechanisms, which is relevant to both conventional and emerging computer architectures. For a broad spectrum of faulttolerance requirements, satisfactory TSP mechanisms typically involve lower overheads during failure-free operation than their non-TSP counterparts; hardware and OS support can facilitate TSP mechanisms. We present TSP variants of programs representing two very di↵erent classes of sharedmemory multi-threaded software that store application data in persistent heaps: The first employs conventional mutexes for isolation, and TSP substantially reduces the overhead of a fault-tolerance mechanism based on fine-grained logging. The second class of software employs lock-free and wait-free algorithms; remarkably, TSP is very easy to retrofit onto a non-resilient design and enjoys zero runtime overhead .E xtensive experiments confirm that TSP yields robust crash resilience with substantially reduced overhead.
Faisal Nawab, Dhruva R. Chakrabarti, Terence Kelly, Charles B. Morrey III
EDBT3
2015 Failure-Atomic Updates of Application Data in a Linux File System
Rajat Verma, Anton Ajay Mendez, Stan Park, Sandya Mannarswamy, Terence Kelly, Charles B. Morrey III
FAST5
2013 Practical lock/unlock pairing for concurrent programs
abstract
In the multicore era, developers face increasing pressure to parallelize their programs. However, building correct and efficient concurrent programs is substantially more difficult than building sequential ones. To address the multicore challenge, numerous tools have been developed to assist multithreaded programmers, including static and dynamic bug detectors, automated bug fixers, and optimization tools. Many of these tools rely on or benefit from the precise identification of critical sections, i.e., sections where the thread of execution holds at least one lock. For languages where critical sections are not lexically scoped, e.g., C/C++, static analysis often fails to pair up lock and unlock calls correctly. In this paper, we propose a practical lock/unlock pairing mechanism that combines static analysis with dynamic instrumentation to identify critical sections in POSIX multithreaded C/C++ programs. Our method first applies a con-servative inter-procedural path-sensitive dataflow analysis to pair up all lock and unlock calls. When the static analysis fails, our method makes assumptions about the pairing using common heuristics. These assumptions are checked at runtime using lightweight instrumentation. Our experiments show that only one out of 891 lock/unlock pairs violates our assumptions at runtime and the instrumentation imposes negligible overhead of 3.34% at most, for large open-source server programs. Overall, our mechanism can pair up 98.2% of all locks including 7.1 % of them paired speculatively.
Hyoun Kyu Cho, Terence Kelly, Yin Wang 0001, Stéphane Lafortune, Hongwei Liao, Scott A. Mahlke
CGO2
2013 Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data
abstract
Preserving the integrity of application data across updates is difficult if power outages and system crashes may occur during updates. Existing approaches such as relational databases and transactional key-value stores restrict programming flexibility by mandating narrow data access interfaces. We have designed, implemented, and evaluated an approach that strengthens the semantics of a standard operating system primitive while maintaining conceptual simplicity and supporting highly flexible programming: Failureatomic msync() commits changes to a memory-mapped file atomically, even in the presence of failures. Our Linux implementation of failure-atomic msync() has preserved application data integrity across hundreds of whole-machine power interruptions and exhibits good microbenchmark performance on both spinning disks and solid-state storage. Failure-atomic msync() supports higher layers of fully general programming abstraction, e.g., a persistent heap that easily slips beneath the C++ Standard Template Library. An STL built atop failure-atomic msync() outperforms several local key-value stores that support transactional updates. We integrated failure-atomic msync() into the Kyoto Tycoon key-value server by modifying exactly one line of code; our modified server reduces response times by 26--43% compared to Tycoon's existing transaction support while providing the same data integrity guarantees. Compared to a Tycoon server setup that makes almost no I/O (and therefore provides no support for data durability and integrity over failures), failure-atomic msync() incurs a three-fold response time increase on a fast Flash-based SSD---an acceptable cost of data reliability for many.
Stan Park, Terence Kelly
EuroSys2
2012 Composable Reliability for Asynchronous Systems
Sunghwan Yoo, Chip Killian, Terence Kelly, Hyoun Kyu Cho, Steven Plite
USENIX ATC3
2009 Efficiently Generating k-Best Solutions to Procurement Auctions
Andrew Byde, Terence Kelly, Yunhong Zhou, Robert E. Tarjan
AAIM2
2009 The theory of deadlock avoidance via discrete control
abstract
Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in concurrent programs that employ conventional mutual exclusion and synchronization primitives (e.g., multithreaded C/Pthreads programs). Beginning with control flow graphs extracted from program source code, we construct a formal model of the program and then apply Discrete Control Theory to automatically synthesize deadlock-avoidance control logic that is implemented by program instrumentation. At run time, the control logic avoids deadlocks by postponing lock acquisitions. Discrete Control Theory guarantees that the program instrumented with our synthesized control logic cannot deadlock. Our method furthermore guarantees that the control logic is maximally permissive: it postpones lock acquisitions only when necessary to prevent deadlocks, and therefore permits maximal runtime concurrency. Our prototype for C/Pthreads scales to real software including Apache, OpenLDAP, and two kinds of benchmarks, automatically avoiding both injected and naturally occurring deadlocks while imposing modest runtime overheads.
Yin Wang 0001, Stéphane Lafortune, Terence Kelly, Manjunath Kudlur, Scott A. Mahlke
POPL3
2008 Operational Analysis of Parallel Servers
Terence Kelly, Alex Zhang, Christopher Stewart
MASCOTS1
2008 Gadara: Dynamic Deadlock Avoidance for Multithreaded Programs
Yin Wang 0001, Terence Kelly, Manjunath Kudlur, Stéphane Lafortune, Scott A. Mahlke
OSDI2
2008 Operational analysis of processor speed scaling
abstract
This brief announcement presents a pair of performance laws that bound the change in aggregate job queueing time that results when the processor speed changes in a parallel computing system. Our laws require only lightweight passive external observations of a black-box system and they apply to many commonly employed scheduling policies. By predicting the application-level performance impact of processing speed adjustments in parallel processors, including traditional SMPs and now increasingly ubiquitous multicore processors, our laws address problems ranging from capacity planning to dynamic resource allocation. Finally, our results show that operational analysis---an approach to performance analysis traditionally associated with commercial transaction processing systems---usefully complements existing parallel performance analysis techniques.
Alex Zhang, Terence Kelly, Christopher Stewart
SPAA3
2008 A Dollar from 15 Cents: Cross-Platform Management for Internet Services
Christopher Stewart, Terence Kelly, Alex Zhang
USENIX ATC2
2007 Exploiting nonstationarity for performance prediction
abstract
Real production applications ranging from enterprise applications to large e-commerce sites share a crucial but seldom-noted characteristic: The relative frequencies of transaction types in their workloads are nonstationary, i.e., the transaction mix changes over time. Accurately predicting application-level performance in business-critical production applications is an increasingly important problem. However, transaction mix nonstationarity casts doubt on the practical usefulness of prediction methods that ignore this phenomenon.
Christopher Stewart, Terence Kelly, Alex Zhang
EuroSys2
2007 Discrete control for safe execution of IT automation workflows
abstract
As information technology (IT) administration becomes increasingly complex, workflow technologies are gaining popularity for IT automation. Writing correct workflow programs is notoriously difficult. Although static analysis tools are available, fixing defects remains manual and error-prone. This paper applies discrete control theory to IT automation workflows. Discrete control detects flaws in workflows just as static analysis does, and more importantly it also allows safe execution of flawed workflows by dynamically avoiding run-time failures. Our approach can guarantee compliance with certain requirements and can partially decouple requirements from software, reducing the need to modify the latter if the former change. We have implemented a discrete control module for a real IT automation system. Experiments with workflows from a real production system and with randomly generated workflows show that our approach scales to workflows of practical size.
Yin Wang 0001, Terence Kelly, Stéphane Lafortune
EuroSys2
2007 Don't Settle for Less Than the Best: Use Optimization to Make Decisions
Kimberly Keeton, Terence Kelly, Arif Merchant, Cipriano A. Santos, Janet L. Wiener, Xiaoyun Zhu, Dirk Beyer 0002
HotOS2
2005 An Extended Evaluation of Two-Phase Scheduling Methods for Animation Rendering
Yunhong Zhou, Terence Kelly, Janet L. Wiener, Eric Anderson 0003
JSSPP2
2005 Deadline scheduling for animation rendering
abstract
No abstract available.
Eric Anderson 0003, Dirk Beyer 0002, Kamalika Chaudhuri, Terence Kelly, Norman Salazar, Cipriano A. Santos, Ram Swaminathan, Robert E. Tarjan, Janet L. Wiener, Yunhong Zhou
SIGMETRICS4
2005 Capturing, indexing, clustering, and retrieving system history
abstract
We present a method for automatically extracting from a running system an indexable signature that distills the essential characteristic from a system state and that can be subjected to automated clustering and similarity-based retrieval to identify when an observed system state is similar to a previously-observed state. This allows operators to identify and quantify the frequency of recurrent problems, to leverage previous diagnostic efforts, and to establish whether problems seen at different installations of the same site are similar or distinct. We show that the naive approach to constructing these signatures based on simply recording the actual ``raw'' values of collected measurements is ineffective, leading us to a more sophisticated approach based on statistical modeling and inference. Our method requires only that the system's metric of merit (such as average transaction response time) as well as a collection of lower-level operational metrics be collected, as is done by existing commercial monitoring tools. Even if the traces have no annotations of prior diagnoses of observed incidents (as is typical), our technique successfully clusters system states corresponding to similar problems, allowing diagnosticians to identify recurring problems and to characterize the ``syndrome'' of a group of problems. We validate our approach on both synthetic traces and several weeks of production traces from a customer-facing geoplexed 24 x 7 system; in the latter case, our approach identified a recurring problem that had required extensive manual diagnosis, and also aided the operators in correcting a previous misdiagnosis of a different problem.
Ira Cohen, Steve Zhang, Moisés Goldszmidt, Julie Symons, Terence Kelly, Armando Fox
SOSP5
2005 Transaction mix performance models: methods and application to performance anomaly detection
abstract
This poster describes a simple model of application-level performance as a function of workload. The model is intuitive, easy to apply, and requires little knowledge of the application. The model can be used for performance anomaly detection: identifying relatively rare cases where workload does not explain performance. Knowing when workload explains performance well vs. poorly can help to distinguish between true performance faults and mere overload. This in turn can inform our choice of performance analysis and debugging tools, and can also suggest remedial measures. Extensive empirical results demonstrate that the proposed method accurately models performance in three large distributed commercial production applications serving real customers. Furthermore it flags as anomalous an episode of a subtle performance bug in one of these applications.
Terence Kelly
SOSP1
2005 Value-maximizing deadline scheduling and its application to animation rendering
abstract
We describe a new class of utility-maximization scheduling problem with precedence constraints, the disconnected staged scheduling problem (DSSP). DSSP is a nonpreemptive multiprocessor deadline scheduling problem that arises in several commercially-important applications, including animation rendering, protein analysis, and seismic signal processing. DSSP differs from most previously-studied deadline scheduling problems because the graph of precedence constraints among tasks within jobs is disconnected, with one component per job. Another difference is that in practice we often lack accurate estimates of task execution times, and so purely offline solutions are not possible. However we do know the set of jobs and their precedence constraints up front and therefore some offline planning is possible.Our solution decomposes DSSP into an offline job selection phase followed by an online task dispatching phase. We model the former as a knapsack problem and explore several solutions to it, describe a new dispatching algorithm for the latter, and compare both with existing methods. Our theoretical results show that while DSSP is NP-hard and inapproximable in general, our two-phase scheduling method guarantees a good performance bound for many special cases. Our empirical results include an evaluation of scheduling algorithms on a real animation-rendering workload; we present a characterization of this workload in a companion paper. The workload records eight weeks of activity on a 1,000-CPU cluster used to render portions of the full-length animated feature film Shrek 2 in 2004. We show that our improved scheduling algorithms can substantially increase the aggregate value of completed jobs compared to existing practices. Our new task dispatching algorithm LCPF performs well by several metrics, including job completion times as well as the aggregate value of completed jobs.
Eric Anderson 0003, Dirk Beyer 0002, Kamalika Chaudhuri, Terence Kelly, Norman Salazar, Cipriano A. Santos, Ram Swaminathan, Robert E. Tarjan, Janet L. Wiener, Yunhong Zhou
SPAA4
2004 Design, Implementation, and Evaluation of Duplicate Transfer Detection in HTTP
Jeffrey C. Mogul, Yee-Man Chan, Terence Kelly
NSDI3
2004 Correlating Instrumentation Data to System States: A Building Block for Automated Diagnosis and Control
Ira Cohen, Jeffrey S. Chase, Moisés Goldszmidt, Terence Kelly, Julie Symons
OSDI4
2002 Aliasing on the world wide web: prevalence and performance implications
abstract
Aliasing occurs in Web transactions when requests containing different URLs elicit replies containing identical data payloads. Conventional caches associate stored data with URLs and can therefore suffer redundant payload transfers due to aliasing and other causes. Existing research literature, however, says little about the prevalence of aliasing in user-initiated transactions, or about redundant payload transfers in conventional Web cache hierarchies.This paper quantifies the extent of aliasing and the performance impact of URL-indexed cache management using a large client trace from WebTV Networks. Fewer than 5% of reply payloads are aliased (referenced via multiple URLs) but over 54% of successful transactions involve aliased payloads. Aliased payloads account for under 3.1% of the trace's "working set size" (sum of payload sizes) but over 36% of bytes transferred. For the WebTV workload, roughly 10% of payload transfers to browser caches and 23% of payload transfers to a shared proxy are redundant, assuming infinite-capacity conventional caches. Our analysis of a large proxy trace from Compaq Corporation yields similar results.URL-indexed caching does not entirely explain the large number of redundant proxy-to-browser payload transfers previously reported in the WebTV system. We consider other possible causes of redundant transfers (e.g., reply metadata and browser cache management policies) and discuss a simple hop-by-hop protocol extension that completely eliminates all redundant transfers, regardless of cause.
Terence Kelly, Jeffrey C. Mogul
WWW1
2002 Thin-client Web access patterns: Measurements from a cache-busting proxy
Terence Kelly
Comput. Commun.1