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.

Jonathan Goldstein

dblp:g/JonathanGoldstein · DBLP profile ↗
← Back
36ranked-venue papers
6as first author
1since 2021 · last 2022
—ORCID · none

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

Databases, data management, data science and information retrieval · 31 · 6 first-authorHuman-computer interaction and ubiquitous computing · 4 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1

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.

Databases, data mining, and information retrieval
27 papers
Data stream processing · 34% Query processing and optimization · 33% Distributed and cloud data management · 7%
Computer architecture, parallel and distributed computing, and storage systems
12 papers
Distributed systems · 56% Cloud and datacenter computing · 33% Parallel and multicore computing · 6%
Human-computer interaction and pervasive computing
2 papers
Interaction techniques and input · 85% Collaborative and social computing · 15%
Computer graphics and multimedia
3 papers
Visualization and visual analytics · 81% Audio and music processing · 19%
Theoretical computer science
3 papers
Algorithms and data structures · 76% Automata and formal languages · 22% Computational geometry · 2%

Topics — the 30 heaviest of 74, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Interaction techniques and input
cross-device interaction
1.022022
Understanding Multi-Device Usage Patterns: Physical Device Configurations and Fragmented Workflows · CHI 2022
SurfaceFleet: Exploring Distributed Interactions Unbounded from Device, Application, User, and Time · UIST 2020
Data stream processing
continuous query processing
0.852016
Quill: Efficient, Transferable, and Rich Analytics at Scale · Proc. VLDB Endow. 2016
Trill: A High-Performance Incremental Query Processor for Diverse Analytics · Proc. VLDB Endow. 2014
Scalable Progressive Analytics on Big Data in the Cloud · Proc. VLDB Endow. 2013
Distributed systems
distributed programming
0.412020
A.M.B.R.O.S.I.A: Providing Performant Virtual Resiliency for Distributed Applications · Proc. VLDB Endow. 2020
Distributed systems
fault tolerance
0.412020
A.M.B.R.O.S.I.A: Providing Performant Virtual Resiliency for Distributed Applications · Proc. VLDB Endow. 2020
Cloud and datacenter computing
cloud data analytics
0.422016
Quill: Efficient, Transferable, and Rich Analytics at Scale · Proc. VLDB Endow. 2016
Scalable Progressive Analytics on Big Data in the Cloud · Proc. VLDB Endow. 2013
Data mining
temporal analysis
0.422016
Quill: Efficient, Transferable, and Rich Analytics at Scale · Proc. VLDB Endow. 2016
Temporal Analytics on Big Data for Web Advertising · ICDE 2012
Query processing and optimization › incremental computation
incremental query processing
0.422014
Trill: A High-Performance Incremental Query Processor for Diverse Analytics · Proc. VLDB Endow. 2014
Stat!: an interactive analytics environment for big data · SIGMOD Conference 2013
Query processing and optimization
query execution
0.322018
Impatience Is a Virtue: Revisiting Disorder in High-Performance Log Analytics · ICDE 2018
Processing Queries By Linear Constraints · PODS 1997
Data stream processing
out-of-order stream processing
0.312018
Impatience Is a Virtue: Revisiting Disorder in High-Performance Log Analytics · ICDE 2018
Transaction processing and concurrency control › recovery
checkpointing
0.312017
Shrink - Prescribing Resiliency Solutions for Streaming · Proc. VLDB Endow. 2017
Data integration and cleaning › data transformation
JSON parsing
0.312017
Mison: A Fast JSON Parser for Data Analytics · Proc. VLDB Endow. 2017
Query processing and optimization › query optimization › transformation-based optimization
query pushdown
0.312017
Mison: A Fast JSON Parser for Data Analytics · Proc. VLDB Endow. 2017
Cloud and datacenter computing
cloud service reliability
0.312017
Shrink - Prescribing Resiliency Solutions for Streaming · Proc. VLDB Endow. 2017
Query processing and optimization › parallel query processing
distributed query plan
0.212016
Quill: Efficient, Transferable, and Rich Analytics at Scale · Proc. VLDB Endow. 2016
Distributed and cloud data management
distributed query processing
0.212016
Quill: Efficient, Transferable, and Rich Analytics at Scale · Proc. VLDB Endow. 2016
Visualization and visual analytics › visual analytics
query visualization
0.212016
Making Sense of Temporal Queries with Interactive Visualization · CHI 2016
Distributed systems › distributed database
distributed query processing
0.212016
Quill: Efficient, Transferable, and Rich Analytics at Scale · Proc. VLDB Endow. 2016
Algorithms and data structures › sequence algorithms › sorting › comparison sorting
merge sort
0.212014
Patience is a virtue: revisiting merge and sort on modern processors · SIGMOD Conference 2014
Algorithms and data structures › sequence algorithms
sorting
0.212014
Patience is a virtue: revisiting merge and sort on modern processors · SIGMOD Conference 2014
Collaborative and social computing
remote work
0.212022
Understanding Multi-Device Usage Patterns: Physical Device Configurations and Fragmented Workflows · CHI 2022
Query processing and optimization
approximate query processing
0.212013
Scalable Progressive Analytics on Big Data in the Cloud · Proc. VLDB Endow. 2013
Query processing and optimization › interactive query processing
progressive query processing
0.212013
Scalable Progressive Analytics on Big Data in the Cloud · Proc. VLDB Endow. 2013
Information retrieval › online advertising
behavioral targeting
0.112012
Temporal Analytics on Big Data for Web Advertising · ICDE 2012
Parallel and multicore computing › data-parallel programming
mapreduce
0.112012
Temporal Analytics on Big Data for Web Advertising · ICDE 2012
Database system architecture and tuning
extensibility
0.112011
The extensibility framework in Microsoft StreamInsight · ICDE 2011
Distributed systems › distributed scheduling
operator placement
0.112011
Accurate latency estimation in a distributed event processing system · ICDE 2011
Query processing and optimization
materialized view
0.132007
Dynamic Materialized Views · ICDE 2007
Optimizing Queries Using Materialized Views: A practical, scalable solution · SIGMOD Conference 2001
MTCache: Transparent Mid-Tier Database Caching in SQL Server · ICDE 2004
Data stream processing › complex event processing
event pattern matching
0.112010
High-Performance Dynamic Pattern Matching over Disordered Streams · Proc. VLDB Endow. 2010
Automata and formal languages
finite automata
0.112010
High-Performance Dynamic Pattern Matching over Disordered Streams · Proc. VLDB Endow. 2010
Indexing and storage engines › caching
database caching
0.132004
MTCache: Transparent Mid-Tier Database Caching in SQL Server · ICDE 2004
Transparent Mid-Tier Database Caching in SQL Server · SIGMOD Conference 2003
Relaxed Currency and Consistency: How to Say "Good Enough" in SQL · SIGMOD Conference 2004

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

resilient distributed programming · 0.9interaction promises · 0.9thematic analysis · 0.6survey · 0.6experimental validation · 0.6cost modeling · 0.6shardedstreamable abstraction · 0.5lab study · 0.5interactive visualization · 0.5dynamic code generation · 0.5log-as-user-data · 0.4database performance optimization · 0.4speculative prediction · 0.4replacement selection sort · 0.4patience sort · 0.3impatience sort · 0.3structural indexing · 0.3prism progress model · 0.2
YearPublicationVenuePosition
2022 Understanding Multi-Device Usage Patterns: Physical Device Configurations and Fragmented Workflows
abstract
To better ground technical (systems) investigation and interaction design of cross-device experiences, we contribute an in-depth survey of existing multi-device practices, including fragmented workflows across devices and the way people physically organize and configure their workspaces to support such activity. Further, this survey documents a historically significant moment of transition to a new future of remote work, an existing trend dramatically accelerated by the abrupt switch to work-from-home (and having to contend with the demands of home-at-work) during the COVID-19 pandemic. We surveyed 97 participants, and collected photographs of home setups and open-ended answers to 50 questions categorized in 5 themes. We characterize the wide range of multi-device physical configurations and identify five usage patterns, including: partitioning tasks, integrating multi-device usage, cloning tasks to other devices, expanding tasks and inputs to multiple devices, and migrating between devices. Our analysis also sheds light on the benefits and challenges people face when their workflow is fragmented across multiple devices. These insights have implications for the design of multi-device experiences that support people’s fragmented workflows.
Ye Yuan 0010, Nathalie Henry Riche, Nicolai Marquardt, Molly Jane Pearce Nicholas, Teddy Seyed, Hugo Romat, Bongshin Lee, Michel Pahud, Jonathan Goldstein, Rojin Vishkaie, Christian Holz 0001, Ken Hinckley
CHI9
2020 SurfaceFleet: Exploring Distributed Interactions Unbounded from Device, Application, User, and Time
abstract
Knowledge work increasingly spans multiple computing surfaces. Yet in status quo user experiences, content as well as tools, behaviors, and workflows are largely bound to the current device-running the current application, for the current user, and at the current moment in time. SurfaceFleet is a system and toolkit that uses resilient distributed programming techniques to explore cross-device interactions that are unbounded in these four dimensions of device, application, user, and time. As a reference implementation, we describe an interface built using SurfaceFleet that employs lightweight, semi-transparent UI elements known as Applets. Applets appear always-on-top of the operating system, application windows, and (conceptually) above the device itself. But all connections and synchronized data are virtualized and made resilient through the cloud. For example, a sharing Applet known as a Portfolio allows a user to drag and drop unbound Interaction Promises into a document. Such promises can then be fulfilled with content asynchronously, at a later time (or multiple times), from another device, and by the same or a different user.
Frederik Brudy, David Ledo, Michel Pahud, Nathalie Henry Riche, Christian Holz 0001, Anand Waghmare, Hemant Bhaskar Surale, Marcus Peinado, Xiaokuan Zhang, Shannon Joyner, Badrish Chandramouli, Umar Farooq Minhas, Jonathan Goldstein, William Buxton, Ken Hinckley
UIST13
2020 A.M.B.R.O.S.I.A: Providing Performant Virtual Resiliency for Distributed Applications
abstract
When writing today's distributed programs, which frequently span both devices and cloud services, programmers are faced with complex decisions and coding tasks around coping with failure, especially when these distributed components are stateful. If their application can be cast as pure data processing, they benefit from the past 40--50 years of work from the database community, which has shown how declarative database systems can completely isolate the developer from the possibility of failure in a performant manner. Unfortunately, while there have been some attempts at bringing similar functionality into the more general distributed programming space, a compelling general-purpose system must handle non-determinism, be performant, support a variety of machine types with varying resiliency goals, and be language agnostic, allowing distributed components written in different languages to communicate. This paper introduces Ambrosia, the first system to satisfy all these requirements. We coin the term "virtual resiliency", analogous to virtual memory, for the platform feature which allows failure oblivious code to run in a failure resilient manner. We also introduce novel programming language constructs for resiliently handling non-determinism. Of further interest is the effective reapplication of much database performance optimization technology to make Ambrosia more performant than many of today's non-resilient cloud solutions.
Jonathan Goldstein, Ahmed S. Abdelhamid, Michael Barnett 0001, Sebastian Burckhardt, Badrish Chandramouli, Darren Gehring, Niel Lebeck, Christopher Meiklejohn, Umar Farooq Minhas, Ryan Newton, Rahee Peshawaria, Tal Zaccai, Irene Zhang
Proc. VLDB Endow.1
2018 Impatience Is a Virtue: Revisiting Disorder in High-Performance Log Analytics
abstract
There is a growing interest in processing real-time queries over out-of-order streams in this big data era. This paper presents a comprehensive solution to meet this requirement. Our solution is based on Impatience sort, an online sorting technique that is based on an old technique called Patience sort. Impatience sort is tailored for incrementally sorting streaming datasets that present themselves as almost sorted, usually due to network delays and machine failures. With several optimizations, our solution can adapt to both input streams and query logic. Further, we develop a new Impatience framework that leverages Impatience sort to reduce the latency and memory usage of query execution, and supports a range of user latency requirements, without compromising on query completeness and throughput, while leveraging existing efficient in-order streaming engines and operators. We evaluate our proposed solution in Trill, a high-performance streaming engine, and demonstrate that our techniques significantly improve sorting performance and reduce memory usage - in some cases, by over an order of magnitude.
Badrish Chandramouli, Jonathan Goldstein, Yinan Li 0009
ICDE2
2017 READY: Completeness is in the Eye of the Beholder
Badrish Chandramouli, Johannes Gehrke, Jonathan Goldstein, Donald Kossmann, Justin J. Levandoski, Renato Marroquín, Wenlei Xie
CIDR3
2017 Enabling Signal Processing over Data Streams
abstract
Internet of Things applications analyze the data coming from large networks of sensor devices using relational and signal processing operations and running the same query logic over groups of sensor signals. To support such increasingly important scenarios, many data management systems integrate with numerical frameworks like R. Such solutions, however, incur significant performance penalties as relational data processing engines and numerical tools operate on fundamentally different data models with expensive inter-communication mechanisms. In addition, none of these solutions supports efficient real-time and incremental analysis.
Milos Nikolic 0001, Badrish Chandramouli, Jonathan Goldstein
SIGMOD Conference3
2017 Shrink - Prescribing Resiliency Solutions for Streaming
abstract
Streaming query deployments make up a vital part of cloud oriented applications. They vary widely in their data, logic, and statefulness, and are typically executed in multi-tenant distributed environments with varying uptime SLAs. In order to achieve these SLAs, one of a number of proposed resiliency strategies is employed to protect against failure. This paper has introduced the first, comprehensive, cloud friendly comparison between different resiliency techniques for streaming queries. In this paper, we introduce models which capture the costs associated with different resiliency strategies, and through a series of experiments which implement and validate these models, show that (1) there is no single resiliency strategy which efficiently handles most streaming scenarios; (2) the optimization space is too complex for a person to employ a "rules of thumb" approach; and (3) there exists a clear generalization of periodic checkpointing that is worth considering in many cases. Finally, the models presented in this paper can be adapted to fit a wide variety of resiliency strategies, and likely have important consequences for cloud services beyond those that are obviously streaming.
Badrish Chandramouli, Jonathan Goldstein
Proc. VLDB Endow.2
2017 Mison: A Fast JSON Parser for Data Analytics
abstract
The growing popularity of the JSON format has fueled increased interest in loading and processing JSON data within analytical data processing systems. However, in many applications, JSON parsing dominates performance and cost. In this paper, we present a new JSON parser called Mison that is particularly tailored to this class of applications, by pushing down both projection and filter operators of analytical queries into the parser. To achieve these features, we propose to deviate from the traditional approach of building parsers using finite state machines (FSMs). Instead, we follow a two-level approach that enables the parser to jump directly to the correct position of a queried field without having to perform expensive tokenizing steps to find the field. At the upper level, Mison speculatively predicts the logical locations of queried fields based on previously seen patterns in a dataset. At the lower level, Mison builds structural indices on JSON data to map logical locations to physical locations. Unlike all existing FSM-based parsers, building structural indices converts control flow into data flow, thereby largely eliminating inherently unpredictable branches in the program and exploiting the parallelism available in modern processors. We experimentally evaluate Mison using representative real-world JSON datasets and the TPC-H benchmark, and show that Mison produces significant performance benefits over the best existing JSON parsers; in some cases, the performance improvement is over one order of magnitude.
Yinan Li 0009, Nikos R. Katsipoulakis, Badrish Chandramouli, Jonathan Goldstein, Donald Kossmann
Proc. VLDB Endow.4
2016 Making Sense of Temporal Queries with Interactive Visualization
abstract
As real-time monitoring and analysis become increasingly important, researchers and developers turn to data stream management systems (DSMS's) for fast, efficient ways to pose temporal queries over their datasets. However, these systems are inherently complex, and even database experts find it difficult to understand the behavior of DSMS queries. To help analysts better understand these temporal queries, we developed StreamTrace, an interactive visualization tool that breaks down how a temporal query processes a given dataset, step-by-step. The design of StreamTrace is based on input from expert DSMS users; we evaluated the system with a lab study of programmers who were new to streaming queries. Results from the study demonstrate that StreamTrace can help users to verify that queries behave as expected and to isolate the regions of a query that may be causing unexpected results.
Leilani Battle, Danyel Fisher, Robert DeLine, Michael Barnett 0001, Badrish Chandramouli, Jonathan Goldstein
CHI6
2016 Quill: Efficient, Transferable, and Rich Analytics at Scale
abstract
This paper introduces Quill (stands for a quadrillion tuples per day ), a library and distributed platform for relational and temporal analytics over large datasets in the cloud. Quill exposes a new abstraction for parallel datasets and computation, called ShardedStreamable . This abstraction provides the ability to express efficient distributed physical query plans that are transferable, i.e., movable from offline to real-time and vice versa. ShardedStreamable decouples incremental query logic specification, a small but rich set of data movement operations, and keying; this allows Quill to express a broad space of plans with complex querying functionality, while leveraging existing temporal libraries such as Trill. Quill's layered architecture provides a careful separation of responsibilities with independently useful components, while retaining high performance. We built Quill for the cloud, with a master-less design where a language-integrated client library directly communicates and coordinates with cloud workers using off-the-shelf distributed cloud components such as queues. Experiments on up to 400 cloud machines, and on datasets up to 1TB, find Quill to incur low overheads and outperform SparkSQL by up to orders-of-magnitude for temporal and 6× for relational queries, while supporting a rich space of transferable, programmable, and expressive distributed physical query plans.
Badrish Chandramouli, Raul Castro Fernandez, Jonathan Goldstein, Ahmed Eldawy, Abdul Quamar
Proc. VLDB Endow.3
2015 Tempe: Live scripting for live data
abstract
Data scientists are increasingly working with live streaming data, for example, business telemetry and signals from wearable devices and the Internet of Things. Unfortunately, current tools for exploratory data analysis provide poor support for streaming data. This paper presents Tempe, a data science environment for temporal and streaming data. Tempe's extensible scripting environment allows for live programming, displays interactive, continually updating visualizations, and provides a uniform query language for both stored and live data. We discuss the streaming features of Tempe and evaluate our design choices with a deployment study at Microsoft with a product team who used Tempe continuously for six months.
Robert DeLine, Danyel Fisher, Badrish Chandramouli, Jonathan Goldstein, Michael Barnett 0001, James F. Terwilliger, John Robert Wernsing
VL/HCC4
2014 Patience is a virtue: revisiting merge and sort on modern processors
abstract
The vast quantities of log-based data appearing in data centers has generated an interest in sorting almost-sorted datasets. We revisit the problem of sorting and merging data in main memory, and show that a long-forgotten technique called Patience Sort can, with some key modifications, be made competitive with today's best comparison-based sorting techniques for both random and almost sorted data. Patience sort consists of two phases: the creation of sorted runs, and the merging of these runs. Through a combination of algorithmic and architectural innovations, we dramatically improve Patience sort for both random and almost-ordered data. Of particular interest is a new technique called ping-pong merge for merging sorted runs in main memory. Together, these innovations produce an extremely fast sorting technique that we call P3 Sort (for Ping-Pong Patience+ Sort), which is competitive with or better than the popular implementations of the fastest comparison-based sort techniques of today. For example, our implementation of P3 sort is around 20% faster than GNU Quicksort on random data, and 20% to 4x faster than Timsort for almost sorted data. Finally, we investigate replacement selection sort in the context of single-pass sorting of logs with bounded disorder, and leverage P3 sort to improve replacement selection. Experiments show that our proposal, P3 replacement selection, significantly improves performance, with speedups of 3x to 20x over classical replacement selection.
Badrish Chandramouli, Jonathan Goldstein
SIGMOD Conference2
2014 Trill: A High-Performance Incremental Query Processor for Diverse Analytics
abstract
This paper introduces Trill -- a new query processor for analytics. Trill fulfills a combination of three requirements for a query processor to serve the diverse big data analytics space: (1) Query Model : Trill is based on a tempo-relational model that enables it to handle streaming and relational queries with early results, across the latency spectrum from real-time to offline; (2) Fabric and Language Integration : Trill is architected as a high-level language library that supports rich data-types and user libraries, and integrates well with existing distribution fabrics and applications; and (3) Performance : Trill's throughput is high across the latency spectrum. For streaming data, Trill's throughput is 2-4 orders of magnitude higher than comparable streaming engines. For offline relational queries, Trill's throughput is comparable to a major modern commercial columnar DBMS. Trill uses a streaming batched-columnar data representation with a new dynamic compilation-based system architecture that addresses all these requirements. In this paper, we describe Trill's new design and architecture, and report experimental results that demonstrate Trill's high performance across diverse analytics scenarios. We also describe how Trill's ability to support diverse analytics has resulted in its adoption across many usage scenarios at Microsoft.
Badrish Chandramouli, Jonathan Goldstein, Michael Barnett 0001, Robert DeLine, John C. Platt, James F. Terwilliger, John Robert Wernsing
Proc. VLDB Endow.2
2013 Stat!: an interactive analytics environment for big data
abstract
Exploratory analysis on big data requires us to rethink data management across the entire stack -- from the underlying data processing techniques to the user experience. We demonstrate Stat! -- a visualization and analytics environment that allows users to rapidly experiment with exploratory queries over big data. Data scientists can use Stat! to quickly refine to the correct query, while getting immediate feedback after processing a fraction of the data. Stat! can work with multiple processing engines in the backend; in this demo, we use Stat! with the Microsoft StreamInsight streaming engine. StreamInsight is used to generate incremental early results to queries and refine these results as more data is processed. Stat! allows data scientists to explore data, dynamically compose multiple queries to generate streams of partial results, and display partial results in both textual and visual form.
Michael Barnett 0001, Badrish Chandramouli, Robert DeLine, Steven Mark Drucker, Danyel Fisher, Jonathan Goldstein, Patrick Morrison, John C. Platt
SIGMOD Conference6
2013 Scalable Progressive Analytics on Big Data in the Cloud
abstract
Analytics over the increasing quantity of data stored in the Cloud has become very expensive, particularly due to the pay-as-you-go Cloud computation model. Data scientists typically manually extract samples of increasing data size (progressive samples) using domain-specific sampling strategies for exploratory querying. This provides them with user-control, repeatable semantics, and result provenance. However, such solutions result in tedious workflows that preclude the reuse of work across samples. On the other hand, existing approximate query processing systems report early results, but do not offer the above benefits for complex ad-hoc queries. We propose a new progressive analytics system based on a progress model called Prism that (1) allows users to communicate progressive samples to the system; (2) allows efficient and deterministic query processing over samples; and (3) provides repeatable semantics and provenance to data scientists. We show that one can realize this model for atemporal relational queries using an unmodified temporal streaming engine, by re-interpreting temporal event fields to denote progress. Based on Prism, we build Now!, a progressive data-parallel computation framework for Windows Azure, where progress is understood as a first-class citizen in the framework. Now! works with "progress-aware reducers"- in particular, it works with streaming engines to support progressive SQL over big data. Extensive experiments on Windows Azure with real and synthetic workloads validate the scalability and benefits of Now! and its optimizations, over current solutions for progressive analytics.
Badrish Chandramouli, Jonathan Goldstein, Abdul Quamar
Proc. VLDB Endow.2
2013 DiAl: Distributed Streaming Analytics Anywhere, Anytime
abstract
Connected devices are expected to grow to 50 billion in 2020. Through our industrial partners and their use cases, we validated the importance of inflight data processing to produce results with low latency, in particular local and global data analytics capabilities. In order to cope with the scalability challenges posed by distributed streaming analytics scenarios, we propose two new technologies: (1) JStreams, a low footprint and efficient JavaScript complex event processing engine supporting local analytics on heterogeneous devices and (2) DiAlM, a distributed analytics management service that leverages cloud-edge evolving topologies. In the demonstration, based on a real manufacturing use case, we walk through a situation where operators supervise manufacturing equipment through global analytics, and drill down into alarm cases on the factory floor by locally inspecting the data generated by the manufacturing equipment.
Ivo Santos, Marcel Tilly, Badrish Chandramouli, Jonathan Goldstein
Proc. VLDB Endow.4
2012 Temporal Analytics on Big Data for Web Advertising
abstract
"Big Data" in map-reduce (M-R) clusters is often fundamentally temporal in nature, as are many analytics tasks over such data. For instance, display advertising uses Behavioral Targeting (BT) to select ads for users based on prior searches, page views, etc. Previous work on BT has focused on techniques that scale well for offline data using M-R. However, this approach has limitations for BT-style applications that deal with temporal data: (1) many queries are temporal and not easily expressible in M-R, and moreover, the set-oriented nature of M-R front-ends such as SCOPE is not suitable for temporal processing, (2) as commercial systems mature, they may need to also directly analyze and react to real-time data feeds since a high turnaround time can result in missed opportunities, but it is difficult for current solutions to naturally also operate over real-time streams. Our contributions are twofold. First, we propose a novel framework called TiMR (pronounced timer), that combines a time-oriented data processing system with a M-R framework. Users write and submit analysis algorithms as temporal queries - these queries are succinct, scale-out-agnostic, and easy to write. They scale well on large-scale offline data using TiMR, and can work unmodified over real-time streams. We also propose new cost-based query fragmentation and temporal partitioning schemes for improving efficiency with TiMR. Second, we show the feasibility of this approach for BT, with new temporal algorithms that exploit new targeting opportunities. Experiments using real data from a commercial ad platform show that TiMR is very efficient and incurs orders-of-magnitude lower development effort. Our BT solution is easy and succinct, and performs up to several times better than current schemes in terms of memory, learning time, and click-through-rate/coverage.
Badrish Chandramouli, Jonathan Goldstein, Songyun Duan
ICDE2
2012 Physically Independent Stream Merging
abstract
A facility for merging equivalent data streams can support multiple capabilities in a data stream management system (DSMS), such as query-plan switching and high availability. One can logically view a data stream as a temporal table of events, each associated with a lifetime (time interval) over which the event contributes to output. In many applications, the "same" logical stream may present itself physically in multiple physical forms, for example, due to disorder arising in transmission or from combining multiple sources, and modifications of earlier events. Merging such streams correctly is challenging when the streams may differ physically in timing, order, and composition. This paper introduces a new stream operator called Logical Merge (LMerge) that takes multiple logically consistent streams as input and outputs a single stream that is compatible with all of them. LMerge can handle the dynamic attachment and detachment of input streams. We present a range of algorithms for LMerge that can exploit compile-time stream properties for efficiency. Experiments with Stream Insight, a commercial DSMS, show that LMerge is sometimes orders-of-magnitude more efficient than enforcing determinism on inputs, and that there is benefit to using specialized algorithms when stream variability is limited. We also show that LMerge and its extensions can provide performance benefits in several real-world applications.
Badrish Chandramouli, David Maier 0001, Jonathan Goldstein
ICDE3
2011 The extensibility framework in Microsoft StreamInsight
abstract
Microsoft StreamInsight (StreamInsight, for brevity) is a platform for developing and deploying streaming applications, which need to run continuous queries over high-data-rate streams of input events. StreamInsight leverages a well-defined temporal stream model and operator algebra, as the underlying basis for processing long-running continuous queries over event streams. This allows StreamInsight to handle imperfections in event delivery and to provide correctness guarantees on the generated output. StreamInsight natively supports a diverse range of off-the-shelf streaming operators. In order to cater to a much broader range of customer scenarios and applications, StreamInsight has recently introduced a new extensibility infrastructure. With this infrastructure, StreamInsight enables developers to integrate their domain expertise within the query pipeline in the form of user defined modules (functions, operators, and aggregates). This paper describes the extensibility framework in StreamInsight; an ongoing effort at Microsoft SQL Server to support the integration of user-defined modules in a stream processing system. More specifically, the paper addresses the extensibility problem from three perspectives: the query writer's perspective, the user defined module writer's perspective, and the system's internal perspective. The paper introduces and addresses a range of new and subtle challenges that arise when we try to add extensibility to a streaming system, in a manner that is easy to use, powerful, and practical. We summarize our experience and provide future directions for supporting stream-oriented workloads in different business domains.
Mohamed H. Ali, Badrish Chandramouli, Jonathan Goldstein, Roman Schindlauer
ICDE3
2011 Accurate latency estimation in a distributed event processing system
abstract
A distributed event processing system consists of one or more nodes (machines), and can execute a directed acyclic graph (DAG) of operators called a dataflow (or query), over long-running high-event-rate data sources. An important component of such a system is cost estimation, which predicts or estimates the “goodness” of a given input, i.e., operator graph and/or assignment of individual operators to nodes. Cost estimation is the foundation for solving many problems: optimization (plan selection and distributed operator placement), provisioning, admission control, and user reporting of system misbehavior. Latency is a significant user metric in many commercial real-time applications. Users are usually interested in quantiles of latency, such as worst-case or 99thpercentile. However, existing cost estimation techniques for event-based dataflows use metrics that, while they may have the side-effect of being correlated with latency, do not directly or provably estimate latency. In this paper, we propose a new cost estimation technique using a metric called Mace (Maximum cumulative excess). Mace is provably equivalent to maximum system latency in a (potentially complex, multi-node) distributed event-based system. The close relationship to latency makes Mace ideal for addressing the problems described earlier. Experiments with real-world datasets on Microsoft StreamInsight deployed over 1-13 nodes in a data center validate our ability to closely estimate latency (within 4%), and the use of Mace for plan selection and distributed operator placement.
Badrish Chandramouli, Jonathan Goldstein, Roger S. Barga, Mirek Riedewald, Ivo Santos
ICDE2
2010 High-Performance Dynamic Pattern Matching over Disordered Streams
abstract
Current pattern-detection proposals for streaming data recognize the need to move beyond a simple regular-expression model over strictly ordered input. We continue in this direction, relaxing restrictions present in some models, removing the requirement for ordered input, and permitting stream revisions (modification of prior events). Further, recognizing that patterns of interest in modern applications may change frequently over the lifetime of a query, we support updating of a pattern specification without blocking input or restarting the operator. Our new pattern operator (called AFA) is a streaming adaptation of a non-deterministic finite automaton (NFA) where additional schema-based user-defined information, called a register , is accessible to NFA transitions during execution. AFAs support dynamic patterns, where the pattern itself can change over time. We propose clean order-agnostic pattern-detection semantics for AFAs, with new algorithms that allow a very efficient implementation, while retaining significant expressiveness and supporting native handling of out-of-order input, stream revisions, dynamic patterns, and several optimizations. Experiments on Microsoft StreamInsight show that we achieve event rates of more than 200K events/sec (up to 5x better than simpler schemes). Our dynamic patterns give up to orders-of-magnitude better throughput than solutions such as operator restart, and our other optimizations are very effective, incurring low memory and latency.
Badrish Chandramouli, Jonathan Goldstein, David Maier 0001
Proc. VLDB Endow.2
2009 Microsoft CEP Server and Online Behavioral Targeting
abstract
In this demo, we present the Microsoft Complex Event Processing (CEP) Server, Microsoft CEP for short. Microsoft CEP is an event stream processing system featured by its declarative query language and its multiple consistency levels of stream query processing. Query composability, query fusing, and operator sharing are key features in the Microsoft CEP query processor. Moreover, the debugging and supportability tools of Microsoft CEP provide visibility of system internals to users. Web click analysis has been crucial to behavior-based online marketing. Streams of web click events provide a typical workload for a CEP server. Meanwhile, a CEP server with its processing capabilities plays a key role in web click analysis. This demo highlights the features of Microsoft CEP under a workload of web click events.
Mohamed H. Ali, Ciprian Gerea, Balan Sethu Raman, Beysim Sezgin, Tiho Tarnavski, Tomer Verona, Peter Zabback, Anton Kirilov, Asvin Ananthanarayan, Alex Raizman, Ramkumar Krishnan, Roman Schindlauer, Torsten Grabs, Sharon Bjeletich, Badrish Chandramouli, Jonathan Goldstein, Sudin Bhat, Vincenzo Di Nicola, Xianfang Wang, David Maier 0001, Ivo Santos, Olivier Nano, Stephan Grell
Proc. VLDB Endow.18
2009 On-the-fly Progress Detection in Iterative Stream Queries
abstract
Multiple researchers have proposed cyclic query plans for evaluating iterative queries over streams or rapidly changing input. The Declarative Networking community uses cyclic plans to evaluate Datalog programs that track reachability and other graph traversals on networks. Cyclic query plans can also evaluate pattern-matching and other queries based on event sequences. An issue with cyclic queries over dynamic inputs is knowing when the query result has progressed to a certain point in the input, since the number of iterations is data dependent. One option is a "strictly staged" computation, where the query plan quiesces between inputs. This option introduces significant latency, and may also "underload" inter-operator buffers. An alternative is to settle for soft guarantees, such as "eventual consistency". Such imprecision can make it difficult, for example, to know when to purge state from stateful operators. We propose a third option in which cyclic queries run continuously, but detect progress "on the fly" by means of a Flying Fixed-Point (FFP) operator. FFP sits on the cyclic loop and circulates speculative predictions on forward progress, which it then validates. FFP is always able to track progress for a class of queries we term strongly convergent . A key advantage of FFP is that it works with existing algebra operators, thereby inheriting their capabilities, such as windowing and dealing with out-of-order input. Also, for stream systems that explicitly model input-event lifetimes, we know exactly which values are in the query result at each point in time. A key implementation decision is the method for speculating. Using the high-water mark of data events minimizes the number of speculative punctuations. Probing operators on the cyclic loop to determine their external progress circulates many more speculative messages, but tracks actual output progress more closely. We show how a hybrid approach limits predictions while coming close the progress-tracking ability of Probing.
Badrish Chandramouli, Jonathan Goldstein, David Maier 0001
Proc. VLDB Endow.2
2007 Consistent Streaming Through Time: A Vision for Event Stream Processing
Roger S. Barga, Jonathan Goldstein, Mohamed H. Ali, Mingsheng Hong
CIDR2
2007 Dynamic Materialized Views
abstract
A conventional materialized view blindly materializes and maintains all rows of a view, even rows that are never accessed. We propose a more flexible materialization strategy aimed at reducing storage space and view maintenance costs. A dynamic materialized view selectively materializes only a subset of rows, for example, the most frequently accessed rows. One or more control tables are associated with the view and define which rows are currently materialized. The set of materialized rows can be changed dynamically, either manually or automatically by an internal cache manager using a feedback loop. Dynamic execution plans are generated to decide whether the view is applicable at run time. Experimental results in Microsoft SQL Server show that compared with conventional materialized views, dynamic materialized views greatly reduce storage requirements and maintenance costs while achieving better query performance with improved buffer pool efficiency.
Jingren Zhou 0001, Per-Åke Larson, Jonathan Goldstein, Luping Ding
ICDE3
2004 MTCache: Transparent Mid-Tier Database Caching in SQL Server
abstract
Many applications today run in a multitier environment with browser-based clients, midtier (application) servers and a backend database server. Midtier database caching attempts to improve system throughput and scalability by offloading part of the database workload to intermediate database servers that partially replicate data from the backend server. The fact that some queries are offloaded to an intermediate server should be completely transparent to applications - one of the key distinctions between caching and replication. MTCache is a prototype midtier database caching solution for SQL server that achieves this transparency. It builds on SQL server's support for materialized views, distributed queries and replication. We describe MTCache and report experimental results on the TPC-W benchmark. The experiments show that a significant part of the query workload can be offloaded to cache servers, resulting in greatly improved scale-out on the read-dominated workloads of the benchmark. Replication overhead was small with an average replication delay of less than two seconds.
Per-Åke Larson, Jonathan Goldstein, Jingren Zhou 0001
ICDE2
2004 Relaxed Currency and Consistency: How to Say "Good Enough" in SQL
abstract
Despite the widespread and growing use of asynchronous copies to improve scalability, performance and availability, this practice still lacks a firm semantic foundation. Applications are written with some understanding of which queries can use data that is not entirely current and which copies are "good enough"; however, there are neither explicit requirements nor guarantees. We propose to make this knowledge available to the DBMS through explicit currency and consistency (C&C) constraints in queries and develop techniques so the DBMS can guarantee that the constraints are satisfied. In this paper we describe our model for expressing C&C constraints, define their semantics, and propose SQL syntax. We explain how C&C constraints are enforced in MTCache, our prototype mid-tier database cache, including how constraints and replica update policies are elegantly integrated into the cost-based query optimizer. Consistency constraints are enforced at compile time while currency constraints are enforced at run time by dynamic plans that check the currency of each local replica before use and select sub-plans accordingly. This approach makes optimal use of the cache DBMS while at the same time guaranteeing that applications always get data that is "good enough" for their purpose.
Hongfei Guo, Per-Åke Larson, Raghu Ramakrishnan 0001, Jonathan Goldstein
SIGMOD Conference4
2004 Support for Relaxed Currency and Consistency Constraints in MTCache
abstract
No abstract available.
Hongfei Guo, Per-Åke Larson, Raghu Ramakrishnan 0001, Jonathan Goldstein
SIGMOD Conference4
2003 Identifying audio clips with RARE
abstract
In this paper, we describe RARE (Robust Audio Recognition Engine): a system for identifying audio streams and files. RARE can be used in a variety of applications: from enhancing the consumer listening experience to cleaning large audio databases. RARE was designed with two key qualities in mind: robustness to distortion of the audio, and lookup speed. RARE identifies audio clips in a stream against a database of 1/4 million songs in real time using approximately 10% CPU on an 850 MHz P3, and with a measured false positive rate of 1.5x10-8 per clip, per database entry, at a false negative rate of 0.2% per clip. We demo RARE in real-time on a stream and on distorted files.
Christopher J. C. Burges, John C. Platt, Jonathan Goldstein
ACM Multimedia3
2003 Transparent Mid-Tier Database Caching in SQL Server
abstract
No abstract available.
Per-Åke Larson, Jonathan Goldstein, Jingren Zhou 0001
SIGMOD Conference2
2001 Optimizing Queries Using Materialized Views: A practical, scalable solution
abstract
Materialized views can provide massive improvements in query processing time, especially for aggregation queries over large tables. To realize this potential, the query optimizer must know how and when to exploit materialized views. This paper presents a fast and scalable algorithm for determining whether part or all of a query can be computed from materialized views and describes how it can be incorporated in transformation-based optimizers. The current version handles views composed of selections, joins and a final group-by. Optimization remains fully cost based, that is, a single “best” rewrite is not selected by heuristic rules but multiple rewrites are generated and the optimizer chooses the best alternative in the normal way. Experimental results based on an implementation in Microsoft SQL Server show outstanding performance and scalability. Optimization time increases slowly with the number of views but remains low even up to a thousand.
Jonathan Goldstein, Per-Åke Larson
SIGMOD Conference1
2000 Squeezing the Most out of Relational Database Systems
abstract
We present compelling experimental evidence of the suitability of FOR compression for many database applications. While there has been some previous and concurrent work on compressing relations, no alternative solution combines the high compression ratios, low over-head, ease of incorporation into an RDBMS, and selective decompression that FOR compression achieves. Overall, we believe that this is a very attractive approach to implementing compression in an RDBMS.
Jonathan Goldstein, Raghu Ramakrishnan 0001
ICDE1
2000 Contrast Plots and P-Sphere Trees: Space vs. Time in Nearest Neighbour Searches
Jonathan Goldstein, Raghu Ramakrishnan 0001
VLDB1
1999 When Is ''Nearest Neighbor'' Meaningful?
Kevin S. Beyer, Jonathan Goldstein, Raghu Ramakrishnan 0001, Uri Shaft
ICDT2
1998 Compressing Relations and Indexes
abstract
We propose a new compression algorithm that is tailored to database applications. It can be applied to a collection of records, and is especially effective for records with many low to medium cardinality fields and numeric fields. In addition, this new technique supports very fast decompression. Promising application domains include decision support systems (DSS), since fact tables, which are by far the largest tables in these applications, contain many low and medium cardinality fields and typically no text fields. Further, our decompression rates are faster than typical disk throughputs for sequential scans; in contrast, gzip is slower. This is important in DSS applications, which often scan large ranges of records. An important distinguishing characteristic of our algorithm, in contrast to compression algorithms proposed earlier, is that we can decompress individual tuples (even individual fields), rather than a full page (or an entire relation) at a time. Also, all the information needed for tuple decompression resides on the same page with the tuple. This means that a page can be stored in the buffer pool and used in compressed form, simplifying the job of the buffer manager and improving memory utilization. Our compression algorithm also improves index structures such as B-trees and R-trees significantly by reducing the number of leaf pages and compressing index entries, which greatly increases the fan-out. We can also use lossy compression on the internal nodes of an index.
Jonathan Goldstein, Raghu Ramakrishnan 0001, Uri Shaft
ICDE1
1997 Processing Queries By Linear Constraints
abstract
The emergence of several new application domains for databases has introduced the need for more efficient complex query handling than databases currently support. These application domains include On-Line Analytical Processing (OLAP), Geographical Information Systems (GIS), and scientific databases. This paper focuses attention on a form of selection query, expressible in SQL but not evaluated efficiently by current DBMSs, with wide applicability in these new problem domains. We introduce a processing strategy for this class of queries, which we call queries by linear constraints (QBLC). This processing strategy can be implemented with a wide variety of multidimensional indexing structures that include the R-Tree variants, the k-d-B-Tree, the Buddy-Tree, and many more. Note that any processing strategy meant for general database use must guarantee that all correct answers are returned. Therefore, all numerical techniques we employ uphold this guarantee. Thus the most distinguishing ch...
Jonathan Goldstein, Raghu Ramakrishnan 0001, Uri Shaft, Jie-Bing Yu
PODS1