Jason Flinn

dblp:14/85 · DBLP profile ↗
← Back
67ranked-venue papers
9as first author
4since 2021 · last 2025
—ORCID · none

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

Software engineering, systems software and programming languages · 31 · 4 first-author · 3 since 2021Systems, architecture and hardware · 24 · 4 first-author · 1 since 2021Computer networks · 16 · 1 first-authorDatabases, data management, data science and information retrieval · 4 · 1 first-authorArtificial intelligence and machine learning · 1Human-computer interaction and ubiquitous computing · 1
YearPublicationVenuePosition
2025 Introduction to the Special Section on SOSP 2023
Jason Flinn, Margo I. Seltzer
ACM Trans. Comput. Syst.1
2022 Debugging the OmniTable Way
Andrew Quinn 0001, Jason Flinn, Michael J. Cafarella, Baris Kasikci
OSDI2
2022 Owl: Scale and Flexibility in Distribution of Hot Content
Jason Flinn, Xianzheng Dou, Arushi Aggarwal, Alex Boyko, Francois Richard, Eric Sun, Wendy Tobagus, Nick Wolchko
OSDI1
2021 Log-structured Protocols in Delos
abstract
Developers have access to a wide range of storage APIs and functionality in large-scale systems, such as relational databases, key-value stores, and namespaces. However, this diversity comes at a cost: each API is implemented by a complex distributed system that is difficult to develop and operate. Delos amortizes this cost by enabling different APIs on a shared codebase and operational platform. The primary innovation in Delos is a log-structured protocol: a fine-grained replicated state machine executing above a shared log that can be layered into reusable protocol stacks under different databases. We built and deployed two production databases using Delos at Facebook, creating nine different log-structured protocols in the process. We show via experiments and production data that log-structured protocols impose low overhead, while allowing optimizations that can improve latency by up to 100X (e.g., via leasing) and throughput by up to 2X (e.g., via batching).
Mahesh Balakrishnan 0001, Ahmed Jafri, Suyog Mapara, David Geraghty, Jason Flinn, Vidhya Venkat, Ivailo Nedelchev, Santosh Ghosh, Mihir Dharamshi, Jingming Liu, Filip Gruszczynski, Rounak Tibrewal, Ali Zaveri, Rajeev Nagar, Ahmed Yossef, Francois Richard, Yee Jiun Song
SOSP6
2020 Virtual Consensus in Delos
Mahesh Balakrishnan 0001, Jason Flinn, Mihir Dharamshi, Ahmed Jafri, Santosh Ghosh, Hazem Hassan, Aaryaman Sagar, Rhed Shi, Jingming Liu, Filip Gruszczynski, Xianan Zhang, Huy Hoang, Ahmed Yossef, Francois Richard, Yee Jiun Song
OSDI2
2019 You can't debug what you can't see: Expanding observability with the OmniTable
abstract
The effectiveness of a debugging tool is fundamentally limited by what program state it can observe. Yet, for performance reasons, all current debugging tools restrict the program state that can be observed in some way. For example, tools like heap analysis restrict what can be observed (i.e., only global variables) and tools like core dump analysis restrict when observations may be made (i.e., only on program termination). Other tools effectively limit the scope of observation by requiring developers to specify what and when observations will be made before execution (e.g., logging) or during an execution (e.g., gdb).
Andrew Quinn 0001, Jason Flinn, Michael J. Cafarella
HotOS2
2019 Accelerating Applications in the Fast-moving Devices with Proactive Provisioning
abstract
An increasing number of applications that leverage built-in sensors is hosted on new types of devices such as vehicles and drones. Example applications are augmented reality Head-Up-Display in a connected car [2], scout drone that chases a target suspect among the crowd [3], autonomous fleet drones [1], and so on. These futuristic applications in various genres of devices are latency-sensitive and require a significant computation power to process a tremendous amount of data from built-in sensors [8]. However, the capabilities of processors shipped with these devices are limited. A natural solution is offloading to an edge surrogate,1 running on a 'nearby' edge-cloud that offers more computation capacity at low latency.
Hee Won Lee, Moo-Ryong Ra, Yu Xiang 0003, Jason Flinn
MobiSys5
2019 ShortCut: accelerating mostly-deterministic code regions
abstract
Applications commonly perform repeated computations that are mostly, but not exactly, similar. If a subsequent computation were identical to the original, the operating system could improve performance via memoization, i.e., capturing the differences in program state caused by the computation and applying the differences in lieu of re-executing the computation. However, opportunities for generic memoization are limited by a myriad of differences that arise during execution, e.g., timestamps differ and communication yields non-deterministic responses. Such difference cause memoization to produce incorrect state.
Xianzheng Dou, Peter M. Chen, Jason Flinn
SOSP3
2018 Optimistic Hybrid Analysis: Accelerating Dynamic Analysis through Predicated Static Analysis
abstract
Dynamic analysis tools, such as those that detect data-races, verify memory safety, and identify information flow, have become a vital part of testing and debugging complex software systems. While these tools are powerful, their slow speed often limits how effectively they can be deployed in practice. Hybrid analysis speeds up these tools by using static analysis to decrease the work performed during dynamic analysis. In this paper we argue that current hybrid analysis is needlessly hampered by an incorrect assumption that preserving the soundness of dynamic analysis requires an underlying sound static analysis. We observe that, even with unsound static analysis, it is possible to achieve sound dynamic analysis for the executions which fall within the set of states statically considered. This leads us to a new approach, called optimistic hybrid analysis. We first profile a small set of executions and generate a set of likely invariants that hold true during most, but not necessarily all, executions. Next, we apply a much more precise, but unsound, static analysis that assumes these invariants hold true. Finally, we run the resulting dynamic analysis speculatively while verifying whether the assumed invariants hold true during that particular execution; if not, the program is reexecuted with a traditional hybrid analysis. Optimistic hybrid analysis is as precise and sound as traditional dynamic analysis, but is typically much faster because (1) unsound static analysis can speed up dynamic analysis much more than sound static analysis can and (2) verifications rarely fail. We apply optimistic hybrid analysis to race detection and program slicing and achieve 1.8x over a state-of-the-art race detector (FastTrack) optimized with traditional hybrid analysis and 8.3x over a hybrid backward slicer (Giri).
David Devecsery, Peter M. Chen, Jason Flinn, Satish Narayanasamy
ASPLOS3
2018 RAVEN: Improving Interactive Latency for the Connected Car
abstract
Increasingly, vehicles sold today are connected cars: they offer vehicle-to-infrastructure connectivity through built-in WiFi and cellular interfaces, and they act as mobile hotspots for devices in the vehicle. We study the connection quality available to connected cars today, focusing on user-facing, latency-sensitive applications. We find that network latency varies significantly and unpredictably at short time scales and that high tail latency substantially degrades user experience. We also find an increase in coverage options available due to commercial WiFi offerings and that variations in latency across network options are not well-correlated. Based on these findings, we develop RAVEN, an in-kernel MPTCP scheduler that mitigates tail latency and network unpredictability by using redundant transmission when confidence about network latency predictions is low. RAVEN has several novel design features. It operates transparently, without application modification or hints, to improve interactive latency. It seamlessly supports three or more wireless networks. Its in-kernel implementation allows proactive cancellation of transmissions made unnecessary through redundancy. Finally, it explicitly considers how the age of measurements affects confidence in predictions, allowing better handling of interactive applications that transmit infrequently and networks that exhibit periods of temporary poor performance. Results from speech, music, and recommender applications in both emulated and live vehicle experiments show substantial improvement in application response time.
Jason Flinn, Basavaraj Tonshal
MobiCom2
2018 Sledgehammer: Cluster-Fueled Debugging
Andrew Quinn 0001, Jason Flinn, Michael J. Cafarella
OSDI2
2017 Knockoff: Cheap Versions in the Cloud
Xianzheng Dou, Peter M. Chen, Jason Flinn
FAST3
2017 Poster: Redundancy Aided Vehicular Networking
abstract
Vehicular applications are increasingly connected to cloud services. For example, route planning, gas price applications, and Siri-like personal assistants all respond to user queries based in part on cloud processing. Network communication thus is often a substantial component of user-perceived latency in vehicular applications. Current vehicular computing platforms typically connect to the cloud using a single cellular network provider. Network conditions can change rapidly as a vehicle moves due to geographical variation in coverage, radio shadows, and differing traffic density. Such variation is often exacerbated by connection re-establishment after an interface has entered a sleep state. Thus, vehicular applications can often appear unresponsive due to high wireless network latency. Even worse, the responsiveness is unpredictable; high tail latency makes some user interactions take longer, even when most interactions complete in an acceptable amount of time. This unpredictability is especially worrisome in a vehicular environment, in which occasional unexpected performance anomalies distract the driver of the vehicle.
Jason Flinn
MobiSys2
2016 DQBarge: Improving Data-Quality Tradeoffs in Large-Scale Internet Services
Michael Chow, Kaushik Veeraraghavan, Michael J. Cafarella, Jason Flinn
OSDI4
2016 JetStream: Cluster-Scale Parallelization of Information Flow Queries
Andrew Quinn 0001, David Devecsery, Peter M. Chen, Jason Flinn
OSDI4
2015 Toward Eidetic Distributed File Systems
Xianzheng Dou, Jason Flinn, Peter M. Chen
HotStorage2
2015 Accelerating Mobile Applications through Flip-Flop Replication
abstract
Mobile devices have less computational power and poorer Internet connections than other computers. Computation offload, in which some portions of an application are migrated to a server, has been proposed as one way to remedy this deficiency. Yet, partition-based offload is challenging because it requires applications to accurately predict whether mobile or remote computation will be faster, and it requires that the computation be large enough to overcome the cost of shipping state to and from the server. Further, offload does not currently benefit network-intensive applications.
Mark S. Gordon, David Ke Hong, Peter M. Chen, Jason Flinn, Scott A. Mahlke, Z. Morley Mao
MobiSys4
2015 Outatime: Using Speculation to Enable Low-Latency Continuous Interaction for Mobile Cloud Gaming
abstract
Gaming on phones, tablets and laptops is very popular. Cloud gaming - where remote servers perform game execution and rendering on behalf of thin clients that simply send input and display output frames - promises any device the ability to play any game any time. Unfortunately, the reality is that wide-area network latencies are often prohibitive; cellular, Wi-Fi and even wired residential end host round trip times (RTTs) can exceed 100ms, a threshold above which many gamers tend to deem responsiveness unacceptable.
Kyungmin Lee, David Chu, Eduardo Cuervo Laffaye, Johannes Kopf 0001, Yury Degtyarev, Sergey Grizan, Alec Wolman, Jason Flinn
MobiSys8
2014 Demo: DeLorean: using speculation to enable low-latency continuous interaction for mobile cloud gaming
abstract
No abstract available.
Kyungmin Lee, David Chu, Eduardo Cuervo Laffaye, Alec Wolman, Jason Flinn
MobiSys5
2014 The Mystery Machine: End-to-end Performance Analysis of Large-scale Internet Services
Michael Chow, David Meisner, Jason Flinn, Daniel Peek, Thomas F. Wenisch
OSDI3
2014 Eidetic Systems
David Devecsery, Michael Chow, Xianzheng Dou, Jason Flinn, Peter M. Chen
OSDI4
2014 Race detection for event-driven mobile applications
abstract
Mobile systems commonly support an event-based model of concurrent programming. This model, used in popular platforms such as Android, naturally supports mobile devices that have a rich array of sensors and user input modalities. Unfortunately, most existing tools for detecting concurrency errors of parallel programs focus on a thread-based model of concurrency. If one applies such tools directly to an event-based program, they work poorly because they infer false dependencies between unrelated events handled sequentially by the same thread.
Chun-Hung Hsiao, Cristiano Pereira, Jie Yu 0016, Gilles Pokam, Satish Narayanasamy, Peter M. Chen, Ziyun Kong, Jason Flinn
PLDI8
2013 Parallelizing data race detection
abstract
Detecting data races in multithreaded programs is a crucial part of debugging such programs, but traditional data race detectors are too slow to use routinely. This paper shows how to speed up race detection by spreading the work across multiple cores. Our strategy relies on uniparallelism, which executes time intervals of a program (called epochs) in parallel to provide scalability, but executes all threads from a single epoch on a single core to eliminate locking overhead. We use several techniques to make parallelization effective: dividing race detection into three phases, predicting a subset of the analysis state, eliminating sequential work via transitive reduction, and reducing the work needed to maintain multiple versions of analysis via factorization. We demonstrate our strategy by parallelizing a happens-before detector and a lockset-based detector. We find that uniparallelism can significantly speed up data race detection. With 4x the number of cores as the original application, our strategy speeds up the median execution time by 4.4x for a happens-before detector and 3.3x for a lockset race detector. Even on the same number of cores as the conventional detectors, the ability for uniparallelism to elide analysis locks allows it to reduce the median overhead by 13% for a happens-before detector and 8% for a lockset detector.
Benjamin Wester, David Devecsery, Peter M. Chen, Jason Flinn, Satish Narayanasamy
ASPLOS4
2013 AMC: verifying user interface properties for vehicular applications
abstract
Vehicular environments require continuous awareness of the road ahead. It is critical that mobile applications used in such environments (e.g., GPS route planners and location-based search) do not distract drivers from the primary task of operating the vehicle. Fortunately, a large body of research on vehicular interfaces provides best practices that mobile application developers can follow. However, when we studied the most popular vehicular applications in the Android marketplace, no application followed these guidelines. In fact, vehicular applications were not substantially better at meeting best practice guidelines than non-vehicular applications.
Kyungmin Lee, Jason Flinn, Thomas J. Giuli, Brian D. Noble, Christopher Peplin
MobiSys2
2012 Informed mobile prefetching
abstract
Prefetching is a double-edged sword. It can hide the latency of data transfers over poor and intermittently connected wireless networks, but the costs of prefetching in terms of increased energy and cellular data usage are potentially substantial, particularly for data prefetched incorrectly. Weighing the costs and benefits of prefetching is complex, and consequently most mobile applications employ simple but sub-optimal strategies.
Brett D. Higgins, Jason Flinn, Thomas J. Giuli, Brian D. Noble, Christopher Peplin, David Watson 0001
MobiSys2
2012 X-ray: Automating Root-Cause Diagnosis of Performance Anomalies in Production Software
Mona Attariyan, Michael Chow, Jason Flinn
OSDI3
2012 Chimera: hybrid program analysis for determinism
abstract
Chimera uses a new hybrid program analysis to provide deterministic replay for commodity multiprocessor systems. Chimera leverages the insight that it is easy to provide deterministic multiprocessor replay for data-race-free programs (one can just record non-deterministic inputs and the order of synchronization operations), so if we can somehow transform an arbitrary program to be data-race-free, then we can provide deterministic replay cheaply for that program. To perform this transformation, Chimera uses a sound static data-race detector to find all potential data-races. It then instruments pairs of potentially racing instructions with a weak-lock, which provides sufficient guarantees to allow deterministic replay but does not guarantee mutual exclusion.
Peter M. Chen, Jason Flinn, Satish Narayanasamy
PLDI3
2012 DoublePlay: Parallelizing Sequential Logging and Replay
abstract
Deterministic replay systems record and reproduce the execution of a hardware or software system. In contrast to replaying execution on uniprocessors, deterministic replay on multiprocessors is very challenging to implement efficiently because of the need to reproduce the order of or the values read by shared memory operations performed by multiple threads. In this paper, we present DoublePlay, a new way to efficiently guarantee replay on commodity multiprocessors. Our key insight is that one can use the simpler and faster mechanisms of single-processor record and replay, yet still achieve the scalability offered by multiple cores, by using an additional execution to parallelize the record and replay of an application. DoublePlay timeslices multiple threads on a single processor, then runs multiple time intervals ( epochs ) of the program concurrently on separate processors. This strategy, which we call uniparallelism , makes logging much easier because each epoch runs on a single processor (so threads in an epoch never simultaneously access the same memory) and different epochs operate on different copies of the memory. Thus, rather than logging the order of shared-memory accesses, we need only log the order in which threads in an epoch are timesliced on the processor. DoublePlay runs an additional execution of the program on multiple processors to generate checkpoints so that epochs run in parallel. We evaluate DoublePlay on a variety of client, server, and scientific parallel benchmarks; with spare cores, DoublePlay reduces logging overhead to an average of 15% with two worker threads and 28% with four threads.
Kaushik Veeraraghavan, Benjamin Wester, Jessica Ouyang 0002, Peter M. Chen, Jason Flinn, Satish Narayanasamy
ACM Trans. Comput. Syst.6
2012 Introduction to the special issue USENIX FAST 2012
abstract
No abstract available.
William J. Bolosky, Jason Flinn
ACM Trans. Storage2
2011 DoublePlay: parallelizing sequential logging and replay
abstract
Deterministic replay systems record and reproduce the execution of a hardware or software system. In contrast to replaying execution on uniprocessors, deterministic replay on multiprocessors is very challenging to implement efficiently because of the need to reproduce the order or values read by shared memory operations performed by multiple threads. In this paper, we present DoublePlay, a new way to efficiently guarantee replay on commodity multiprocessors. Our key insight is that one can use the simpler and faster mechanisms of single-processor record and replay, yet still achieve the scalability offered by multiple cores, by using an additional execution to parallelize the record and replay of an application. DoublePlay timeslices multiple threads on a single processor, then runs multiple time intervals (epochs) of the program concurrently on separate processors. This strategy, which we call uniparallelism, makes logging much easier because each epoch runs on a single processor (so threads in an epoch never simultaneously access the same memory) and different epochs operate on different copies of the memory. Thus, rather than logging the order of shared-memory accesses, we need only log the order in which threads in an epoch are timesliced on the processor. DoublePlay runs an additional execution of the program on multiple processors to generate checkpoints so that epochs run in parallel. We evaluate DoublePlay on a variety of client, server, and scientific parallel benchmarks; with spare cores, DoublePlay reduces logging overhead to an average of 15% with two worker threads and 28% with four threads.
Kaushik Veeraraghavan, Benjamin Wester, Jessica Ouyang 0002, Peter M. Chen, Jason Flinn, Satish Narayanasamy
ASPLOS6
2011 Operating system support for application-specific speculation
abstract
Speculative execution is a technique that allows serial tasks to execute in parallel. An implementation of speculative execution can be divided into two parts: (1) a policy that specifies what operations and values to predict, what actions to allow during speculation, and how to compare results; and (2) the mechanisms that support speculative execution, such as checkpointing, rollback, causality tracking, and output buffering.
Benjamin Wester, Peter M. Chen, Jason Flinn
EuroSys3
2011 Detecting and surviving data races using complementary schedules
abstract
Data races are a common source of errors in multithreaded programs. In this paper, we show how to protect a program from data race errors at runtime by executing multiple replicas of the program with complementary thread schedules. Complementary schedules are a set of replica thread schedules crafted to ensure that replicas diverge only if a data race occurs and to make it very likely that harmful data races cause divergences. Our system, called Frost, uses complementary schedules to cause at least one replica to avoid the order of racing instructions that leads to incorrect program execution for most harmful data races. Frost introduces outcome-based race detection, which detects data races by comparing the state of replicas executing complementary schedules. We show that this method is substantially faster than existing dynamic race detectors for unmanaged code. To help programs survive bugs in production, Frost also diagnoses the data race bug and selects an appropriate recovery strategy, such as choosing a replica that is likely to be correct or executing more replicas to gather additional information.
Kaushik Veeraraghavan, Peter M. Chen, Jason Flinn, Satish Narayanasamy
SOSP3
2010 Respec: efficient online multiprocessor replayvia speculation and external determinism
abstract
Deterministic replay systems record and reproduce the execution of a hardware or software system. While it is well known how to replay uniprocessor systems, replaying shared memory multiprocessor systems at low overhead on commodity hardware is still an open problem. This paper presents Respec, a new way to support deterministic replay of shared memory multithreaded programs on commodity multiprocessor hardware. Respec targets online replay in which the recorded and replayed processes execute concurrently.
Benjamin Wester, Kaushik Veeraraghavan, Satish Narayanasamy, Peter M. Chen, Jason Flinn
ASPLOS6
2010 quFiles: The Right File at the Right Time
Kaushik Veeraraghavan, Jason Flinn, Ed Nightingale, Brian D. Noble
FAST2
2010 Intentional networking: opportunistic exploitation of mobile network diversity
abstract
Mobile devices face a diverse and dynamic set of networking options. Using those options to the fullest requires knowledge of application intent. This paper describes Intentional Networking, a simple but powerful mechanism for handling network diversity. Applications supply a declarative label for network transmissions, and the system matches transmissions to the most appropriate network. The system may also defer and re-order opportunistic transmissions subject to application-supplied mutual exclusion and ordering constraints. We have modified three applications to use Intentional Networking: BlueFS, a distributed file system for pervasive computing, Mozilla's Thunderbird e-mail client, and a vehicular participatory sensing application. We evaluated the performance of these applications using measurements obtained by driving a vehicle through WiFi and cellular 3G network coverage. Compared to an idealized solution that makes optimal use of all aggregated available networks but that lacks knowledge of application intent, Intentional Networking improves the latency of interactive messages from 48% to 13x, while adding no more than 7% throughput overhead.
Brett D. Higgins, Azarias Reda, Timur Alperovich, Jason Flinn, Thomas J. Giuli, Brian D. Noble, David Watson 0001
MobiCom4
2010 Automating Configuration Troubleshooting with Dynamic Information Flow Analysis
Mona Attariyan, Jason Flinn
OSDI2
2010 Guest Editorial: Special Section on Papers from MobiSys 2009
abstract
The four papers in this special section are extended versions of papers presented at the Seventh Annual International Conference on Mobile Systems, Applications, and Services (MobiSys 2009), held in June 2009 in Krakow, Poland.
Jason Flinn, Anthony LaMarca
IEEE Trans. Mob. Comput.1
2010 quFiles: The right file at the right time
abstract
A quFile is a unifying abstraction that simplifies data management by encapsulating different physical representations of the same logical data. Similar to a quBit (quantum bit), the particular representation of the logical data displayed by a quFile is not determined until the moment it is needed. The representation returned by a quFile is specified by a data-specific policy that can take context into account such as the application requesting the data, the device on which data is accessed, screen size, and battery status. We demonstrate the generality of the quFile abstraction by using it to implement six case studies: resource management, copy-on-write versioning, data redaction, resource-aware directories, application-aware adaptation, and platform-specific encoding. Most quFile policies were expressed using less than one hundred lines of code. Our experimental results show that, with caching and other performance optimizations, quFiles add less than 1% overhead to application-level file system.
Kaushik Veeraraghavan, Jason Flinn, Ed Nightingale, Brian D. Noble
ACM Trans. Storage2
2009 Tolerating Latency in Replicated State Machines Through Client Speculation
Benjamin Wester, James A. Cowling, Ed Nightingale, Peter M. Chen, Jason Flinn, Barbara Liskov
NSDI5
2009 Automatically Generating Predicates and Solutions for Configuration Troubleshooting
Ya-Yunn Su, Jason Flinn
USENIX ATC2
2008 Parallelizing security checks on commodity hardware
abstract
Speck (Speculative Parallel Check) is a system thataccelerates powerful security checks on commodity hardware by executing them in parallel on multiple cores. Speck provides an infrastructure that allows sequential invocations of a particular security check to run in parallel without sacrificing the safety of the system. Speck creates parallelism in two ways. First, Speck decouples a security check from an application by continuing the application, using speculative execution, while the security check executes in parallel on another core. Second, Speck creates parallelism between sequential invocations of a security check by running later checks in parallel with earlier ones. Speck provides a process-level replay system to deterministically and efficiently synchronize state between a security check and the original process.We use Speck to parallelize three security checks: sensitive data analysis, on-access virus scanning, and taint propagation. Running on a 4-core and an 8-core computer, Speck improves performance 4x and 7.5x for the sensitive data analysis check, 3.3x and 2.8x for theon-access virus scanning check, and 1.6x and 2x for the taint propagation check.
Ed Nightingale, Daniel Peek, Peter M. Chen, Jason Flinn
ASPLOS4
2008 PAN-on-Demand: leveraging multiple radios to build self-organizing, energy-efficient pans
abstract
We present PAN-on-Demand, a self-organizing wireless personalarea network (PAN) that balances performance and energy concerns by scaling the structure of the network to match the demands of applications. PAN-on-Demand autonomously organizes co-located mobile devices with one or more commodity radios
Manish Anand, Jason Flinn
MobiQuitous2
2008 Using Causality to Diagnose Configuration Bugs
Mona Attariyan, Jason Flinn
USENIX ATC2
2008 Rethink the sync
abstract
We introduce external synchrony , a new model for local file I/O that provides the reliability and simplicity of synchronous I/O, yet also closely approximates the performance of asynchronous I/O. An external observer cannot distinguish the output of a computer with an externally synchronous file system from the output of a computer with a synchronous file system. No application modification is required to use an externally synchronous file system. In fact, application developers can program to the simpler synchronous I/O abstraction and still receive excellent performance. We have implemented an externally synchronous file system for Linux, called xsyncfs. Xsyncfs provides the same durability and ordering-guarantees as those provided by a synchronously mounted ext3 file system. Yet even for I/O-intensive benchmarks, xsyncfs performance is within 7% of ext3 mounted asynchronously . Compared to ext3 mounted synchronously, xsyncfs is up to two orders of magnitude faster.
Ed Nightingale, Kaushik Veeraraghavan, Peter M. Chen, Jason Flinn
ACM Trans. Comput. Syst.4
2007 Cobalt: Separating Content Distribution from Authorization in Distributed File Systems
Kaushik Veeraraghavan, Andrew Myrick, Jason Flinn
FAST3
2007 AutoBash: improving configuration management with operating system causality analysis
abstract
AutoBash is a set of interactive tools that helps users and system administrators manage configurations. AutoBash leverages causal tracking support implemented within our modified Linux kernel to understand the inputs (causal dependencies) and outputs (causal effects) of configuration actions. It uses OS-level speculative execution to try possible actions, examine their effects, and roll them back when necessary. AutoBash automates many of the tedious parts of trying to fix a misconfiguration, including searching through possible solutions, testing whether a particular solution fixes a problem, and undoing changes to persistent and transient state when a solution fails. Our results show that AutoBash correctly identifies the solution to several CVS, gcc cross-compiler, and Apache configuration errors. We also show that causal analysis reduces AutoBash's search time by an average of 35% and solution verification time by an average of 70%.
Ya-Yunn Su, Mona Attariyan, Jason Flinn
SOSP3
2007 Sprockets: Safe Extensions for Distributed File Systems
Daniel Peek, Ed Nightingale, Brett D. Higgins, Puspesh Kumar, Jason Flinn
USENIX ATC5
2006 Rethink the Sync (Awarded Best Paper!)
Ed Nightingale, Kaushik Veeraraghavan, Peter M. Chen, Jason Flinn
OSDI4
2006 EnsemBlue: Integrating Distributed Storage and Consumer Electronics
Daniel Peek, Jason Flinn
OSDI2
2006 Speculative execution in a distributed file system
abstract
Speculator provides Linux kernel support for speculative execution. It allows multiple processes to share speculative state by tracking causal dependencies propagated through interprocess communication. It guarantees correct execution by preventing speculative processes from externalizing output, for example, sending a network message or writing to the screen, until the speculations on which that output depends have proven to be correct. Speculator improves the performance of distributed file systems by masking I/O latency and increasing I/O throughput. Rather than block during a remote operation, a file system predicts the operation's result, then uses Speculator to checkpoint the state of the calling process and speculatively continue its execution based on the predicted result. If the prediction is correct, the checkpoint is discarded; if it is incorrect, the calling process is restored to the checkpoint, and the operation is retried. We have modified the client, server, and network protocol of two distributed file systems to use Speculator. For PostMark and Andrew-style benchmarks, speculative execution results in a factor of 2 performance improvement for NFS over local area networks and an order of magnitude improvement over wide area networks. For the same benchmarks, Speculator enables the Blue File System to provide the consistency of single-copy file semantics and the safety of synchronous I/O, yet still outperform current distributed file systems with weaker consistency and safety.
Ed Nightingale, Peter M. Chen, Jason Flinn
ACM Trans. Comput. Syst.3
2005 Slingshot: deploying stateful services in wireless hotspots
abstract
Given a sufficiently good network connection, even a handheld computer can run extremely resource-intensive applications by executing the demanding portions on a remote server. At first glance, the increasingly ubiquitous deployment of wireless hotspots seems to offer the connectivity needed for remote execution. However, we show that the backhaul connection from the hotspot to the Internet can be a prohibitive bottleneck for interactive applications. To eliminate this bottleneck, we propose a new architecture, called Slingshot, that replicates remote application state on surrogate computers co-located with wireless access points. The first-class replica of each application executes on a remote server owned by the handheld user; this offers a safe haven for application state in the event of surrogate failure. Slingshot deploys second-class replicas on nearby surrogates to improve application response time. A proxy on the handheld broadcasts each application request to all replicas and returns the first response it receives. We have modified a speech recognizer and a remote desktop to use Slingshot. Our results show that these applications execute 2.6 times faster with Slingshot than with remote execution.
Ya-Yunn Su, Jason Flinn
MobiSys2
2005 Context-aware metadata creation in a heterogeneous mobile environment
abstract
With an exponentially-growing amount of digital information, data management is becoming increasingly burdensome for an average user. We propose an enhancement to the existing media-management techniques which utilizes the context available in the surrounding environment around the time a media file is created. This context information is associated with the file to provide enhanced data categorization and searching capabilities. A typical scenario considered in our design involves a heterogeneous environment where users capture digital images using camera-enabled mobile devices, such as iPAQs. Concurrently, these mobile agents also collect environmental data from a variety of sensors and other surrounding wirelessly-enabled devices. At the time of image capture, mobile devices collect and process environmental information, which is then associated with the digital image in the form of metadata. Association of the context with the image makes it possible to build user applications with context-based image classification and query facilities. Our system includes such a GUI application, which provides an image query mechanism based on metadata attributes collected at the time of a picture. Our preliminary evaluation of the system validates successful metadata creation and association with the media files and demonstrates the enhanced searching and classification capabilities using a GUI application.
Olga Volgin, Wanda Hung, Chris Vakili, Jason Flinn, Kang G. Shin
NOSSDAV4
2005 Speculative execution in a distributed file system
abstract
Speculator provides Linux kernel support for speculative execution. It allows multiple processes to share speculative state by tracking causal dependencies propagated through inter-process communication. It guarantees correct execution by preventing speculative processes from externalizing output, e.g., sending a network message or writing to the screen, until the speculations on which that output depends have proven to be correct. Speculator improves the performance of distributed file systems by masking I/O latency and increasing I/O throughput. Rather than block during a remote operation, a file system predicts the operation's result, then uses Speculator to checkpoint the state of the calling process and speculatively continue its execution based on the predicted result. If the prediction is correct, the checkpoint is discarded; if it is incorrect, the calling process is restored to the checkpoint, and the operation is retried. We have modified the client, server, and network protocol of two distributed file systems to use Speculator. For PostMark and Andrew-style benchmarks, speculative execution results in a factor of 2 performance improvement for NFS over local-area networks and an order of magnitude improvement over wide-area networks. For the same benchmarks, Speculator enables the Blue File System to provide the consistency of single-copy file semantics and the safety of synchronous I/O, yet still outperform current distributed file systems with weaker consistency and safety.
Ed Nightingale, Peter M. Chen, Jason Flinn
SOSP3
2005 Drive-Thru: Fast, Accurate Evaluation of Storage Power Management
Daniel Peek, Jason Flinn
USENIX ATC, General Track2
2005 Self-Tuning Wireless Network Power Management
Manish Anand, Ed Nightingale, Jason Flinn
Wirel. Networks3
2004 Ghosts in the Machine: Interfaces for Better Power Management (Awarded Best Paper!)
abstract
We observe that the modularity of current power management algorithms often leads to poor results. We propose two new interfaces that pierce the abstraction barrier that inhibits device power management. First, an OS power manager allows applications to query the current power mode of I/O devices to evaluate the performance and energy cost of alternative strategies for reading and writing data. Second, we allow applications to disclose ghost hints that enable better power management in the presence of multiple devices. Adaptive applications issue ghost hints to device power managers when they are forced to use a poor I/O path because a device is not in an ideal power mode; such hints allow devices to implement proactive power management strategies that do not depend upon passive load observation. Using these new interfaces, we implement a middleware layer that supports adaptive disk cache management. On an iPAQ handheld running Linux, our cache manager reduces interactive response time for a Web browser by 27% and decreases total energy usage by 9%. For a mail reader, the cache manager decreases response time by 42% and energy use by 5%.
Manish Anand, Ed Nightingale, Jason Flinn
MobiSys3
2004 Energy-Efficiency and Storage Flexibility in the Blue File System
Ed Nightingale, Jason Flinn
OSDI2
2004 Managing battery lifetime with energy-aware adaptation
abstract
We demonstrate that a collaborative relationship between the operating system and applications can be used to meet user-specified goals for battery duration. We first describe a novel profiling-based approach for accurately measuring application and system energy consumption. We then show how applications can dynamically modify their behavior to conserve energy. We extend the Linux operating system to yield battery lifetimes of user-specified duration. By monitoring energy supply and demand and by maintaining a history of application energy use, the approach can dynamically balance energy conservation and application quality. Our evaluation shows that this approach can meet goals that extend battery life by as much as 30%.
Jason Flinn, Mahadev Satyanarayanan
ACM Trans. Comput. Syst.1
2003 Data Staging on Untrusted Surrogates
Jason Flinn, Shafeeq Sinnamohideen, Niraj Tolia, Mahadev Satyanarayanan
FAST1
2003 Self-tuning wireless network power management
abstract
Current wireless network power management often substantially degrades performance and may even increase overall energy usage when used with latency-sensitive applications. We propose self-tuning power management (STPM) that adapts its behavior to the access patterns and intent of applications, the characteristics of the network interface, and the energy usage of the platform. We have implemented STPM as a Linux kernel module---our results show substantial benefits for distributed file systems, streaming audio, and thin-client applications. Compared to default 802.11b power management, STPM reduces the total energy usage of an iPAQ running the Coda distributed file system by 21% while also reducing interactive file system delay by 80%. Further, STPM adapts to diverse operating conditions: it yields good results on both laptops and handhelds, supports 802.11b network interfaces with substantially different characteristics, and performs well across a range of application network access patterns.
Manish Anand, Ed Nightingale, Jason Flinn
MobiCom3
2002 Balancing Performance, Energy, and Quality in Pervasive Computing
abstract
We describe Spectra, a remote execution system for battery-powered clients used in pervasive computing. Spectra enables applications to combine the mobility of small devices with the greater processing power of static compute servers. Spectra is self-tuning: it monitors both application resource usage and the availability of resources in the environment, and dynamically determines how and where to execute application components. In making this determination, Spectra balances the competing goals of performance, energy conservation, and application quality. We have validated Spectra's approach on the Compaq Itsy v2.2 and IBM ThinkPad 560X using a speech recognizer a document preparation system, and a natural language translator. Our results confirm that Spectra almost always selects the best execution plan, and that its few suboptimal choices are very close to optimal.
Jason Flinn, SoYoung Park, Mahadev Satyanarayanan
ICDCS1
2001 Self-Tuned Remote Execution for Pervasive Computing
abstract
Pervasive computing creates environments saturated with computing and communication capability, yet gracefully integrated with human users. Remote execution has a natural role to play, in such environments, since it lets applications simultaneously leverage the mobility of small devices and the greater resources of large devices. In this paper, we describe Spectra, a remote execution system designed for pervasive environments. Spectra monitors resources such as battery, energy and file cache state which are especially important for mobile clients. It also dynamically balances energy use and quality goals with traditional performance concerns to decide where to locate functionality. Finally, Spectra is self-tuning-it does not require applications to explicitly specify intended resource usage. Instead, it monitors application behavior, learns functions predicting their resource usage, and uses the information to anticipate future behavior.
Jason Flinn, Dushyanth Narayanan, Mahadev Satyanarayanan
HotOS1
2001 Reducing the Energy Usage of Office Applications
Jason Flinn, Eyal de Lara, Mahadev Satyanarayanan, Dan S. Wallach, Willy Zwaenepoel
Middleware1
2000 Quantifying the energy consumption of a pocket computer and a Java virtual machine
abstract
In this paper, we examine the energy consumption of a state-of-the-art pocket computer. Using a data acquisition system, we measure the energy consumption of the Itsy Pocket Computer, developed by Compaq Computer Corporation's Palo Alto Research Labs. We begin by showing that the energy usage characteristics of the Itsy differ markedly from that of a notebook computer. Then, since we expect that flexible software environments will become increasingly prevalent on pocket computers, we consider applications running in a Java environment. In particular, we explain some of the Java design tradeoffs applicable to pocket computers, and quantify their energy costs. For the design options we considered and the three workloads we studied, we find a maximum change in energy use of 25%.
Keith I. Farkas, Jason Flinn, Godmar Back, Dirk Grunwald, Jennifer-Ann M. Anderson
SIGMETRICS2
1999 Energy-aware adaptation for mobile applications
abstract
In this paper, we demonstrate that a collaborative relationship between the operating system and applications can be used to meet user-specified goals for battery duration. We first show how applications can dynamically modify their behavior to conserve energy. We then show how the Linux operating system can guide such adaptation to yield a battery-life of desired duration. By monitoring energy supply and demand, it is able to select the correct tradeoff between energy conservation and application quality. Our evaluation shows that this approach can meet goals that extend battery life by as much as 30%.
Jason Flinn, Mahadev Satyanarayanan
SOSP1
1997 Agile Application-Aware Adaptation for Mobility
abstract
In this paper we show that application-aware adaptation, a collaborative partnership between the operating system and applications, offers the most general and effective approach to mobile information access.We describe the design of Odyssey, a prototype implementing this approach, and show how it supports concurrent execution of diverse mobile applications.We identify agility as a key attribute of adaptive systems, and describe how to quantify and measure it.We present the results of our evaluation of Odyssey, indicating performance improvements up to a factor of 5 on a benchmark of three applications concurrently using remote services over a network with highly variable bandwidth.This research was supported by the
Brian D. Noble, Mahadev Satyanarayanan, Dushyanth Narayanan, J. Eric Tilton, Jason Flinn, Kevin R. Walker
SOSP5
1992 Design and performance of a prototype analog neural computer
abstract
A prototype programmable analog neural computer and selected applications are described. The machine is assembled from over 100 custom VLSI modules containing neurons, synapses, routing switches and programmable synaptic time constants. Connection symmetry and modular construction allow expansion to arbitrary size. The network runs in real time analog mode, however connection architecture as well as neuron and synapse parameters are controlled by a digital host that monitors also the network performance through an A/D interface. Programming and monitoring software has been developed and several application examples including the dynamic decomposition of acoustical patterns are described. The machine is intended for real time, real world computations including ATR. In current configuration its maximal speed is equivalent to that of a digital machine capable of more than 1011 flops. A much larger machine is currently under development.
Paul Mueller, Jan Van der Spiegel, Vincent Agami, David Blackman, Peter Chance, Christopher Donham, Ralph Etienne-Cummings, Jason Flinn, Mike Massa, Supun Samarasekera
Neurocomputing8