Indrajit Roy 0001

dblp:r/IndrajitRoy · DBLP profile ↗
← Back
17ranked-venue papers
2as first author
2since 2021 · last 2023
0000-0002-4766-2664ORCID · corroborated

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

Software engineering, systems software and programming languages · 7 · 1 first-authorSystems, architecture and hardware · 6Databases, data management, data science and information retrieval · 4 · 2 since 2021Computer networks · 1 · 1 first-author

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

Databases, data mining, and information retrieval
4 papers
Query processing and optimization · 37% Database system architecture and tuning · 19% Machine learning and data management · 14%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Distributed systems · 59% Memory systems · 31% Parallel and multicore computing · 5%
Network and information security
6 papers
Systems and software security · 68% Hardware security and side channels · 10% Malware analysis · 9%
Software engineering, system software, and programming languages
6 papers
Operating systems · 58% Programming languages and type systems · 18% Concurrent programming · 12%

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

TopicWeightPapersLastEvidence papers
Query processing and optimization
parallel query processing
0.712023
Progressive Partitioning for Parallelized Query Execution in Google's Napa · Proc. VLDB Endow. 2023
Data integration and cleaning
data warehouse
0.512021
Napa: Powering Scalable Data Warehousing with Robust Query Performance at Google · Proc. VLDB Endow. 2021
Distributed and cloud data management
geo-distributed data management
0.512021
Napa: Powering Scalable Data Warehousing with Robust Query Performance at Google · Proc. VLDB Endow. 2021
Query processing and optimization
view maintenance
0.512021
Napa: Powering Scalable Data Warehousing with Robust Query Performance at Google · Proc. VLDB Endow. 2021
Operating systems › persistence
crash consistency
0.312017
NVthreads: Practical Persistence for Multi-threaded Applications · EuroSys 2017
Memory systems
non-volatile memory
0.312017
NVthreads: Practical Persistence for Multi-threaded Applications · EuroSys 2017
Memory systems › non-volatile memory › persistent memory
persistent memory programming
0.312017
NVthreads: Practical Persistence for Multi-threaded Applications · EuroSys 2017
Systems and software security › information flow control
decentralized information flow control
0.322014
Practical Fine-Grained Information Flow Control Using Laminar · ACM Trans. Program. Lang. Syst. 2014
Laminar: practical fine-grained decentralized information flow control · PLDI 2009
Systems and software security
information flow control
0.322014
Practical Fine-Grained Information Flow Control Using Laminar · ACM Trans. Program. Lang. Syst. 2014
Laminar: practical fine-grained decentralized information flow control · PLDI 2009
Operating systems › system security
operating system security
0.322014
Practical Fine-Grained Information Flow Control Using Laminar · ACM Trans. Program. Lang. Syst. 2014
Laminar: practical fine-grained decentralized information flow control · PLDI 2009
Distributed systems
distributed data structures
0.212016
dmapply: A functional primitive to express distributed machine learning algorithms in R · Proc. VLDB Endow. 2016
Distributed systems
distributed machine learning
0.212016
dmapply: A functional primitive to express distributed machine learning algorithms in R · Proc. VLDB Endow. 2016
Distributed systems › distributed programming
distributed programming models
0.212016
dmapply: A functional primitive to express distributed machine learning algorithms in R · Proc. VLDB Endow. 2016
Machine learning and data management
in-database machine learning
0.212015
Large-scale Predictive Analytics in Vertica: Fast Data Transfer, Distributed Model Creation, and In-database Prediction · SIGMOD Conference 2015
Programming languages and type systems
information flow control
0.212014
Practical Fine-Grained Information Flow Control Using Laminar · ACM Trans. Program. Lang. Syst. 2014
Distributed systems
distributed data processing
0.212013
Presto: distributed machine learning and graph processing with sparse matrices · EuroSys 2013
Hardware security and side channels
trusted execution environments
0.112012
Pasture: Secure Offline Data Access Using Commodity Trusted Hardware · OSDI 2012
Systems and software security › operating system security
kernel integrity
0.112011
Ensuring operating system kernel integrity with OSck · ASPLOS 2011
Systems and software security
operating system security
0.112011
Ensuring operating system kernel integrity with OSck · ASPLOS 2011
Malware analysis
rootkit detection
0.112011
Ensuring operating system kernel integrity with OSck · ASPLOS 2011
Privacy and data protection
differential privacy
0.112010
Airavat: Security and Privacy for MapReduce · NSDI 2010
Concurrent programming
transactional memory
0.112009
Committing conflicting transactions in an STM · PPoPP 2009
Distributed systems › fault tolerance › failure models
crash failures
0.112017
NVthreads: Practical Persistence for Multi-threaded Applications · EuroSys 2017
Storage systems
storage reliability
0.112017
NVthreads: Practical Persistence for Multi-threaded Applications · EuroSys 2017
Machine learning and data management › scalable machine learning
distributed learning
0.112016
dmapply: A functional primitive to express distributed machine learning algorithms in R · Proc. VLDB Endow. 2016
Data mining
predictive analytics
0.112015
Large-scale Predictive Analytics in Vertica: Fast Data Transfer, Distributed Model Creation, and In-database Prediction · SIGMOD Conference 2015
Network security › anonymity networks
anonymous communication
0.112006
BAR Gossip · OSDI 2006
Distributed systems
gossip protocols
0.112006
BAR Gossip · OSDI 2006
Parallel and multicore computing › data-parallel programming
data-parallel frameworks
0.012013
Presto: distributed machine learning and graph processing with sparse matrices · EuroSys 2013
Parallel and multicore computing
parallel programming models
0.012013
Presto: distributed machine learning and graph processing with sparse matrices · EuroSys 2013

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

load balancing · 0.7b-tree statistics · 0.7thread-level persistence · 0.6non-volatile memory persistence · 0.6multi-datacenter replication · 0.5materialized view maintenance · 0.5mapreduce · 0.5functional programming · 0.5type inference · 0.2concurrent integrity checking · 0.2sparse matrix computation · 0.2trusted hardware · 0.1gossip protocol · 0.1information flow control · 0.1differential privacy · 0.1transactional memory · 0.1
YearPublicationVenuePosition
2023 Progressive Partitioning for Parallelized Query Execution in Google's Napa
abstract
Napa holds Google's critical data warehouses in log-structured merge trees for real-time data ingestion and sub-second response for billions of queries per day. These queries are often multi-key look-ups in highly skewed tables and indexes. In our production experience, only progressive query-specific partitioning can achieve Napa's strict query latency SLOs. Here we advocate good-enough partitioning that keeps the per-query partitioning time low without risking uneven work distribution. Our design combines pragmatic system choices and algorithmic innovations. For instance, B-trees are augmented with statistics of key distributions, thus serving the dual purpose of aiding lookups and partitioning. Furthermore, progressive partitioning is designed to be "good enough" thereby balancing partitioning time with performance. The resulting system is robust and successfully serves day-in-day-out billions of queries with very high quality of service forming a core infrastructure at Google.
Jun'ichi Tatemura, Tao Zou 0002, Jagan Sankaranarayanan, Yanlai Huang, Jim Chen, Hao Zhang 0029, Gokul Nath Babu Manoharan, Goetz Graefe, Divyakant Agrawal, Brad Adelberg, Shilpa Kolhar, Indrajit Roy 0001
Proc. VLDB Endow.14
2021 Napa: Powering Scalable Data Warehousing with Robust Query Performance at Google
abstract
Google services continuously generate vast amounts of application data. This data provides valuable insights to business users. We need to store and serve these planet-scale data sets under the extremely demanding requirements of scalability, sub-second query response times, availability, and strong consistency; all this while ingesting a massive stream of updates from applications used around the globe. We have developed and deployed in production an analytical data management system, Napa, to meet these requirements. Napa is the backend for numerous clients in Google. These clients have a strong expectation of variance-free, robust query performance. At its core, Napa's principal technologies for robust query performance include the aggressive use of materialized views, which are maintained consistently as new data is ingested across multiple data centers. Our clients also demand flexibility in being able to adjust their query performance, data freshness, and costs to suit their unique needs. Robust query processing and flexible configuration of client databases are the hallmark of Napa design. Most of the related work in this area takes advantage of full flexibility to design the whole system without the need to support a diverse set of preexisting use cases. In comparison, a particular challenge we faced is that Napa needs to deal with hard constraints from existing applications and infrastructure, so we could not do a "green field" system, but rather had to satisfy existing constraints. These constraints led us to make particular design decisions and also devise new techniques to meet the challenges. In this paper, we share our experiences in designing, implementing, deploying, and running Napa in production with some of Google's most demanding applications.
Ankur Agiwal, Gokul Nath Babu Manoharan, Indrajit Roy 0001, Jagan Sankaranarayanan, Hao Zhang 0029, Tao Zou 0002, Jim Chen, Thanh Do, Haoyan Geng, Raman Grover, Yanlai Huang, Adam Li, Jianyi Liang, Xi Mao, Maya Meng, Prashant Mishra, Rajesh Sr, Vijayshankar Raman, Sourashis Roy, Mayank Singh Shishodia, Tianhang Sun, Justin Tang, Jun'ichi Tatemura, Sagar Trehan, Ramkumar Vadali, Prasanna Venkatasubramanian, Joey Zhang, Zeleng Zhuang, Goetz Graefe, Divyakant Agrawal, Jeffrey F. Naughton, Sujata Kosalge, Hakan Hacigümüs
Proc. VLDB Endow.4
2017 NVthreads: Practical Persistence for Multi-threaded Applications
abstract
Non-volatile memory technologies, such as memristor and phase-change memory, will allow programs to persist data with regular memory instructions. Liberated from the overhead to serialize and deserialize data to storage devices, programs can aim for high performance and still be crash fault-tolerant. Unfortunately, to leverage non-volatile memory, existing systems require hardware changes or extensive program modifications.
Terry Ching-Hsiang Hsu, Helge Brügner, Indrajit Roy 0001, Kimberly Keeton, Patrick Eugster
EuroSys3
2016 dmapply: A functional primitive to express distributed machine learning algorithms in R
abstract
Due to R's popularity as a data-mining tool, many distributed systems expose an R-based API to users who need to build a distributed application in R. As a result, data scientists have to learn to use different interfaces such as RHadoop, SparkR, Revolution R's ScaleR, and HPE's Distributed R. Unfortunately, these interfaces are custom, non-standard, and difficult to learn. Not surprisingly, R applications written in one framework do not work in another, and each backend infrastructure has spent redundant effort in implementing distributed machine learning algorithms. Working with the members of R-core, we have created ddR (Distributed Data structures in R), a unified system that works across different distributed frameworks. In ddR, we introduce a novel programming primitive called dmapply that executes functions on distributed data structures. The dmapply primitive encapsulates different computation patterns: from function and data broadcast to pair-wise communication. We show that dmapply is powerful enough to express algorithms that fit the statistical query model, which includes many popular machine learning algorithms, as well as applications written in MapReduce. We have integrated ddR with many backends, such as R's single-node parallel framework, multi-node SNOW framework, Spark, and HPE Distributed R, with few or no modifications to any of these systems. We have also implemented multiple machine learning algorithms which are not only portable across different distributed systems, but also have performance comparable to the "native" implementations on the backends. We believe that ddR will standardize distributed computing in R, just like the SQL interface has standardized how relational data is manipulated.
Edward Ma, Vishrut Gupta, Meichun Hsu, Indrajit Roy 0001
Proc. VLDB Endow.4
2015 Using data transformations for low-latency time series analysis
abstract
Time series analysis is commonly used when monitoring data centers, networks, weather, and even human patients. In most cases, the raw time series data is massive, from millions to billions of data points, and yet interactive analyses require low (e.g., sub-second) latency. Aperture transforms raw time series data, during ingest, into compact summarized representations that it can use to efficiently answer queries at runtime. Aperture handles a range of complex queries, from correlating hundreds of lengthy time series to predicting anomalies in the data. Aperture achieves much of its high performance by executing queries on data summaries, while providing a bound on the information lost when transforming data. By doing so, Aperture can reduce query latency as well as the data that needs to be stored and analyzed to answer a query. Our experiments on real data show that Aperture can provide one to four orders of magnitude lower query response time, while incurring only 10% ingest time overhead and less than 20% error in accuracy.
Henggang Cui, Kimberly Keeton, Indrajit Roy 0001, Krishnamurthy Viswanathan, Gregory R. Ganger
SoCC3
2015 Large-scale Predictive Analytics in Vertica: Fast Data Transfer, Distributed Model Creation, and In-database Prediction
abstract
A typical predictive analytics workflow will pre-process data in a database, transfer the resulting data to an external statistical tool such as R, create machine learning models in R, and then apply the model on newly arriving data. Today, this workflow is slow and cumbersome. Extracting data from databases, using ODBC connectors, can take hours on multi-gigabyte datasets. Building models on single-threaded R does not scale. Finally, it is nearly impossible to use R or other common tools, to apply models on terabytes of newly arriving data.
Shreya Prasad, Arash Fard, Vishrut Gupta, Jeff LeFevre, Vincent Xu, Meichun Hsu, Indrajit Roy 0001
SIGMOD Conference8
2014 Practical Fine-Grained Information Flow Control Using Laminar
abstract
Decentralized Information Flow Control (DIFC) is a promising model for writing programs with powerful, end-to-end security guarantees. Current DIFC systems that run on commodity hardware can be broadly categorized into two types: language-level and operating system-level DIFC. Language solutions provide no guarantees against security violations on system resources such as files and sockets. Operating system solutions mediate accesses to system resources but are either inefficient or imprecise at monitoring the flow of information through fine-grained program data structures. This article describes Laminar, the first system to implement DIFC using a unified set of abstractions for OS resources and heap-allocated objects. Programmers express security policies by labeling data with secrecy and integrity labels and access the labeled data in security methods . Laminar enforces the security policies specified by the labels at runtime. Laminar is implemented using a modified Java virtual machine and a new Linux security module. This article shows that security methods ease incremental deployment and limit dynamic security checks by retrofitting DIFC policies on four application case studies. Replacing the applications' ad hoc security policies changes less than 10% of the code and incurs performance overheads from 5% to 56%. Compared to prior DIFC systems, Laminar supports a more general class of multithreaded DIFC programs efficiently and integrates language and OS abstractions.
Donald E. Porter, Michael D. Bond, Indrajit Roy 0001, Kathryn S. McKinley, Emmett Witchel
ACM Trans. Program. Lang. Syst.3
2013 Presto: distributed machine learning and graph processing with sparse matrices
abstract
It is cumbersome to write machine learning and graph algorithms in data-parallel models such as MapReduce and Dryad. We observe that these algorithms are based on matrix computations and, hence, are inefficient to implement with the restrictive programming and communication interface of such frameworks.
Shivaram Venkataraman, Erik Bodzsar, Indrajit Roy 0001, Alvin AuYoung, Robert S. Schreiber
EuroSys3
2013 Views and Transactional Storage for Large Graphs
Michael Mihn-Jong Lee, Indrajit Roy 0001, Alvin AuYoung, Vanish Talwar, K. R. Jayaram, Yuanyuan Zhou 0001
Middleware2
2012 Pasture: Secure Offline Data Access Using Commodity Trusted Hardware
Ramakrishna Kotla, Thomas L. Rodeheffer, Indrajit Roy 0001, Patrick Stuedi, Benjamin Wester
OSDI3
2011 Ensuring operating system kernel integrity with OSck
abstract
Kernel rootkits that modify operating system state to avoid detection are a dangerous threat to system security. This paper presents OSck, a system that discovers kernel rootkits by detecting malicious modifications to operating system data. OSck integrates and extends existing techniques for detecting rootkits, and verifies safety properties for large portions of the kernel heap with minimal overhead. We deduce type information for verification by analyzing unmodified kernel source code and in-memory kernel data structures.High-performance integrity checks that execute concurrently with a running operating system create data races, and we demonstrate a deterministic solution for ensuring kernel memory is in a consistent state. We introduce two new classes of kernel rootkits that are undetectable by current systems, motivating the need for the OSck API that allows kernel developers to conveniently specify arbitrary integrity properties.
Owen S. Hofmann, Alan M. Dunn, Sangman Kim, Indrajit Roy 0001, Emmett Witchel
ASPLOS4
2010 Airavat: Security and Privacy for MapReduce
Indrajit Roy 0001, Srinath Setty, Ann Kilzer, Vitaly Shmatikov, Emmett Witchel
NSDI1
2009 Laminar: practical fine-grained decentralized information flow control
abstract
Decentralized information flow control (DIFC) is a promising model for writing programs with powerful, end-to-end security guarantees. Current DIFC systems that run on commodity hardware can be broadly categorized into two types: language-level and operating system-level DIFC. Language level solutions provide no guarantees against security violations on system resources, like files and sockets. Operating system solutions can mediate accesses to system resources, but are inefficient at monitoring the flow of information through fine-grained program data structures.
Indrajit Roy 0001, Donald E. Porter, Michael D. Bond, Kathryn S. McKinley, Emmett Witchel
PLDI1
2009 Committing conflicting transactions in an STM
abstract
Dependence-aware transactional memory (DATM) is a recently proposed model for increasing concurrency of memory transactions without complicating their interface. DATM manages dependences between conflicting, uncommitted transactions so that they commit safely.
Hany E. Ramadan, Indrajit Roy 0001, Maurice Herlihy, Emmett Witchel
PPoPP2
2008 A primal-dual resource augmentation analysis of a constant approximate algorithm for stable coalitions in a cluster
abstract
In this paper we study the following Cluster Profit Problem. Highly parallelizable requests are present on some network nodes. Each request is associated with a tuple (g, r). The requester is willing to pay kg if k machines execute the request in parallel. If some machines work on a request, the machines must pay the request processing cost, r, as well as connection costs to the request. The problem is to find a profit maximizing assignment of machines to requests, such that each machine works on at most one request. The Cluster Profit Problem can be viewed as a profit maximizing variant of the Facility Location Problem. We provide and analyze an algorithm under resource augmentation for the Cluster Profit Problem. Resource augmentation is a technique made famous by the LRU caching analysis. We compare our algorithm with the optimal algorithm operating on a network graph that has a constant factor longer distances. We prove our algorithm is a constant approximation under this resource augmentation. We also show that our algorithm is resilient to group deviations if deviating increases communication costs by a constant factor.
Nedialko B. Dimitrov, Indrajit Roy 0001
SPAA2
2007 Improved error reporting for software that uses black-box components
abstract
An error occurs when software cannot complete a requested action as a result of some problem with its input, configuration, or environment. A high-quality error report allows a user to understand and correct the problem. Unfortunately, the quality of error reports has been decreasing as software becomes more complex and layered. End-users take the cryptic error messages given to them by programsand struggle to fix their problems using search engines and support websites. Developers cannot improve their error messages when they receive an ambiguous or otherwise insufficient error indicator from a black-box software component.
Christopher J. Rossbach, Jason V. Davis, Indrajit Roy 0001, Hany E. Ramadan, Donald E. Porter, David L. Chen, Emmett Witchel
PLDI4
2006 BAR Gossip
Harry C. Li, Allen Clement, Edmund L. Wong, Jeff Napper, Indrajit Roy 0001, Lorenzo Alvisi, Michael Dahlin
OSDI5