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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Cong Yan

dblp:129/2744 · DBLP profile ↗
← Back
28ranked-venue papers
8as first author
15since 2021 · last 2025
—ORCID · conflict

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

Databases, data management, data science and information retrieval · 15 · 7 first-author · 8 since 2021Systems, architecture and hardware · 7 · 5 since 2021Software engineering, systems software and programming languages · 7 · 1 first-author · 3 since 2021Artificial intelligence and machine learning · 5 · 1 first-author · 4 since 2021

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
16 papers
Query processing and optimization · 38% Data integration and cleaning · 28% Database system architecture and tuning · 14%
Software engineering, system software, and programming languages
12 papers
Software testing · 32% Program synthesis and code generation · 24% Software maintenance and evolution · 12%

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

TopicWeightPapersLastEvidence papers
Data integration and cleaning
data transformation
1.522025
Auto-tables: synthesizing multi-step transformations to relationalize tables without using examples · VLDB J. 2025
Auto-Tables: Synthesizing Multi-Step Transformations to Relationalize Tables without Using Examples · Proc. VLDB Endow. 2023
Query processing and optimization
query rewriting
1.322023
Leveraging Application Data Constraints to Optimize Database-Backed Web Applications · Proc. VLDB Endow. 2023
SlabCity: Whole-Query Optimization using Program Synthesis · Proc. VLDB Endow. 2023
Database system architecture and tuning › database design
physical database design
1.022023
Leveraging Application Data Constraints to Optimize Database-Backed Web Applications · Proc. VLDB Endow. 2023
Generating Application-specific Data Layouts for In-memory Databases · Proc. VLDB Endow. 2019
Data integration and cleaning
schema matching
0.912025
Auto-tables: synthesizing multi-step transformations to relationalize tables without using examples · VLDB J. 2025
Query processing and optimization › query optimization › user-defined function optimization
UDF inlining
0.912025
QURE: AI-Assisted and Automatically Verified UDF Inlining · Proc. ACM Manag. Data 2025
Query processing and optimization › query optimization
user-defined function optimization
0.912025
QURE: AI-Assisted and Automatically Verified UDF Inlining · Proc. ACM Manag. Data 2025
Program verification
equivalence checking
0.912025
QURE: AI-Assisted and Automatically Verified UDF Inlining · Proc. ACM Manag. Data 2025
Query processing and optimization
query optimization
0.922023
Predicate Pushdown for Data Science Pipelines · Proc. ACM Manag. Data 2023
SlabCity: Whole-Query Optimization using Program Synthesis · Proc. VLDB Endow. 2023
Empirical software engineering
mining software repositories
0.822020
Managing data constraints in database-backed web applications · ICSE 2020
How not to structure your database-backed web applications: a study of performance bugs in the wild · ICSE 2018
Query processing and optimization › query optimization › declarative query optimization
constraint query optimization
0.712023
Leveraging Application Data Constraints to Optimize Database-Backed Web Applications · Proc. VLDB Endow. 2023
Data integration and cleaning
dependency discovery
0.712023
Leveraging Application Data Constraints to Optimize Database-Backed Web Applications · Proc. VLDB Endow. 2023
Query processing and optimization › query optimization › predicate optimization
predicate pushdown
0.712023
Predicate Pushdown for Data Science Pipelines · Proc. ACM Manag. Data 2023
Software testing › test coverage › code coverage
branch coverage
0.712023
Generating Test Databases for Database-Backed Applications · ICSE 2023
Program synthesis and code generation › DSL-based synthesis
query synthesis
0.712023
SlabCity: Whole-Query Optimization using Program Synthesis · Proc. VLDB Endow. 2023
Software testing
test coverage
0.712023
Generating Test Databases for Database-Backed Applications · ICSE 2023
Software testing › test input generation
test database generation
0.712023
Generating Test Databases for Database-Backed Applications · ICSE 2023
Software testing
test input generation
0.712023
Generating Test Databases for Database-Backed Applications · ICSE 2023
Transaction processing and concurrency control
contention management
0.512021
Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking · SIGMOD Conference 2021
Transaction processing and concurrency control › concurrency control › locking
early lock release
0.512021
Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking · SIGMOD Conference 2021
Transaction processing and concurrency control › contention management
hotspot contention
0.512021
Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking · SIGMOD Conference 2021
Transaction processing and concurrency control › concurrency control › locking protocols
two-phase locking
0.512021
Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking · SIGMOD Conference 2021
Data integration and cleaning
data preprocessing
0.412020
Auto-Suggest: Learning-to-Recommend Data Preparation Steps Using Data Science Notebooks · SIGMOD Conference 2020
Indexing and storage engines › in-memory storage
in-memory data layout
0.412020
Demonstration of Chestnut: An In-memory Data Layout Designer for Database Applications · SIGMOD Conference 2020
Data mining
mining software repositories
0.412020
Auto-Suggest: Learning-to-Recommend Data Preparation Steps Using Data Science Notebooks · SIGMOD Conference 2020
Data integration and cleaning › data quality
data validation
0.312018
Synthesizing Type-Detection Logic for Rich Semantic Data Types using Open-source Code · SIGMOD Conference 2018
Data integration and cleaning › table understanding › table annotation
semantic type detection
0.312018
Synthesizing Type-Detection Logic for Rich Semantic Data Types using Open-source Code · SIGMOD Conference 2018
Software testing
performance issue detection
0.312018
PowerStation: automatically detecting and fixing inefficiencies of database-backed web applications in IDE · ESEC/SIGSOFT FSE 2018
Program analysis
static analysis
0.312018
PowerStation: automatically detecting and fixing inefficiencies of database-backed web applications in IDE · ESEC/SIGSOFT FSE 2018
Software maintenance and evolution
technical debt
0.312018
PowerStation: automatically detecting and fixing inefficiencies of database-backed web applications in IDE · ESEC/SIGSOFT FSE 2018
Transaction processing and concurrency control › contention management
lock contention
0.212016
Leveraging Lock Contention to Improve OLTP Application Performance · Proc. VLDB Endow. 2016

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

code generation · 2.8program synthesis · 2.5large language model · 1.7formal verification · 1.7context modeling · 1.5search-verification · 1.3result validation · 1.3query dataflows · 1.3pattern-matching rules · 1.3empirical study · 0.8pipeline synthesis · 0.7speculation-aware task management · 0.2selective aborts · 0.2ordered commits · 0.2
YearPublicationVenuePosition
2025 LLM-Vectorizer: LLM-Based Verified Loop Vectorizer
abstract
Vectorization is a powerful optimization technique that significantly boosts the performance of high performance computing applications operating on large data arrays. Despite decades of research on auto-vectorization, compilers frequently miss opportunities to vectorize code. On the other hand, writing vectorized code manually using compiler intrinsics is still a complex, error-prone task that demands deep knowledge of specific architecture and compilers. In this paper, we evaluate the potential of large-language models (LLMs) to generate vectorized (Single Instruction Multiple Data) code from scalar programs that process individual array elements. We propose a novel finite-state-machine multi-agents based approach that harnesses LLMs and test-based feedback to generate vectorized code. Our findings indicate that LLMs are capable of producing high-performance vectorized code with run-time speedup ranging from 1.1x to 9.4x as compared to the state-of-the-art compilers such as Intel Compiler, GCC, and Clang. To verify the correctness of vectorized code, we use Alive2, a leading bounded translation validation tool for LLVM IR. We describe a few domain-specific techniques to improve the scalability of Alive2 on our benchmark dataset. Overall, our approach is able to verify 38.2% of vectorizations as correct on the TSVC benchmark dataset.
Jubi Taneja, Avery Laird, Cong Yan, Madan Musuvathi, Shuvendu K. Lahiri
CGO3
2025 QURE: AI-Assisted and Automatically Verified UDF Inlining
abstract
User-defined functions (UDFs) extend the capabilities of SQL by improving code reusability and encapsulating complex logic, but can hinder the performance due to optimization and execution inefficiencies. Prior approaches attempt to address this by rewriting UDFs into native SQL, which is then inlined into the SQL queries that invoke them. However, these approaches are either limited to simple pattern matching or require the synthesis of complex verification conditions from procedural code, a process that is brittle and difficult to automate. This limits coverage and makes the translation approaches less extensible to previously unseen procedural constructs. In this work, we present QURE, a framework that (1) leverages large language models (LLMs) to translate UDFs to native SQL, and (2) introduces a novel formal verification method to establish equivalence between the UDF and its translation. QURE uses the semantics of SQL operators to automate the derivation of verification conditions, in turn resulting in broad coverage and high extensibility. We model a large set of imperative constructs, particularly those common in Python and Pandas UDFs, in an intermediate verification language, allowing for the verification of their SQL translation. In our empirical evaluation of Python and Pandas UDFs, equivalence is successfully verified for 88% of UDF-SQL pairs (the rest lack semantically-equivalent SQLs) and LLMs correctly translate 84% of the UDFs. Executing the translated UDFs achieves median performance improvements of 23x on single-node clusters and 12x on 12-node clusters compared to the original UDFs, while also significantly reducing out-of-memory errors.
Tarique Siddiqui, Arnd Christian König, Jiashen Cao, Cong Yan, Shuvendu K. Lahiri
Proc. ACM Manag. Data4
2025 Auto-tables: synthesizing multi-step transformations to relationalize tables without using examples
Peng Li 0062, Yeye He, Cong Yan, Yue Wang 0070, Surajit Chaudhuri
VLDB J.3
2024 Generation of Steady Wheel Gait for Planar X-shaped Walker with Reaction Wheel
abstract
This paper addresses the problem of realizing a novel robotic bipedal locomotion called wheel gait, which is achieved by rotating the stance and swing legs in the same direction. First, a model of a planar 3-DOF X-shaped walker with a reaction wheel is introduced, and the mathematical equations are described. Second, the condition for stabilizing zero dynamics is formulated as the time integral value of control input to the reaction wheel for one step becomes zero, and the control system for achieving this is designed based on the method of continuous-time output deadbeat control. Third, a typical steady wheel gait of the linearized model is numerically generated, and its extension to the nonlinear model is discussed. Although the nonlinear model has only one nonlinear term in the gravity term, numerical simulations show that there is a big gap between this and the linearized model. Through analysis of the typical nonlinear wheel gaits, the difficulty of achieving the same walking speed as the linearized model is discussed.
Fumihiko Asano, Taiki Sedoguchi, Cong Yan
ICRA3
2024 Modeling and Gait Analysis of Passive Rimless Wheel with Compliant Feet
abstract
The movement of the legs involves the interaction between the feet and the ground. Consequently, most animals possess a wide variety of foot morphologies and multifunctional capabilities. The selection and switching of these foot functions are passive and environment-dependent, ensuring environmental compliance. Despite this, current research on compliant feet lacks mathematical models that simultaneously encompass locomotion and foot compliance. Therefore, conducting in-depth studies on locomotion properties under current conditions is challenging. In this study, we present novel passive compliant feet applicable to the passive walking of a rimless wheel. We first introduce a dynamic model, achieve passive walking through numerical simulations, and subsequently analyze the gait patterns for compliance and multi-period gait. This study bridges a gap in understanding the interaction between motion and compliance in foot design, providing insights into the dynamics of compliant motion.
Yanqiu Zheng, Cong Yan, Yuetong He, Fumihiko Asano, Isao T. Tokuda
IROS2
2024 Contextualized Data-Wrangling Code Generation in Computational Notebooks
abstract
Data wrangling, the process of preparing raw data for further analysis in computational notebooks, is a crucial yet time-consuming step in data science. Code generation has the potential to automate the data wrangling process to reduce analysts' overhead by translating user intents into executable code. Precisely generating data wrangling code necessitates a comprehensive consideration of the rich context present in notebooks, including textual context, code context and data context. However, notebooks often interleave multiple non-linear analysis tasks into linear sequence of code blocks, where the contextual dependencies are not clearly reflected. Directly training models with source code blocks fails to fully exploit the contexts for accurate wrangling code generation.
Junjie Huang 0008, Daya Guo, Chenglong Wang 0005, Jiazhen Gu, Jeevana Priya Inala, Cong Yan, Jianfeng Gao 0001, Nan Duan 0001, Michael R. Lyu
ASE7
2023 Generating Test Databases for Database-Backed Applications
abstract
Database-backed applications are widely used. To effectively test these applications, one needs to design not only user inputs but also database states, which imposes unique challenges. First, valid database states have to satisfy complicated constraints determined by application semantics, and hence are difficult to synthesize. Second, the state space of a database is huge, as an application can contain tens to hundreds of tables with up to tens of fields per table. Making things worse, each test involving database operations takes significant time to run. Consequently, unhelpful database states and running tests on them can severely waste testing resources. We propose DBGRILLER, a tool that generates database states to facilitate thorough testing of database-backed applications. To effectively generate valid database states, DBGRILLER strategically injects minor mutation into existing database states and transforms part of the application-under-test into a stand-alone validity checker. To tackle the huge database state space and save testing time, DBGRILLER uses program analysis to identify a novel branch-projected DB view that can be used to filter out database states that are unlikely to increase the testing branch coverage. Our evaluation on 9 popular open-source database applications shows that DBGRILLER can effectively increase branch coverage of existing tests and expose previously unknown bugs.
Cong Yan, Suman Nath, Shan Lu 0001
ICSE1
2023 Predicate Pushdown for Data Science Pipelines
abstract
Predicate pushdown is a widely adopted query optimization. Existing systems and prior work mostly use pattern-matching rules to decide when a predicate can be pushed through certain operators like join or groupby. However, challenges arise in optimizing for data science pipelines due to the widely used non-relational operators and user-defined functions (UDF) that existing rules would fail to cover. In this paper, we present MagicPush, which decides predicate pushdown using a search-verification approach.MagicPush searches for candidate predicates on pipeline input, which is often not the same as the predicate to be pushed down, and verifies that the pushdown does not change pipeline output with full correctness guarantees. Our evaluation on TPC-H queries and 200 real-world pipelines sampled from GitHub Notebooks shows that MagicPush substantially outperforms a strong baseline that uses a union of rules from prior work - it is able to discover new pushdown opportunities and better optimize 42 real-world pipelines with up to 99% reduction in running time, while discovering all pushdown opportunities found by the existing baseline on remaining cases.
Cong Yan, Yin Lin, Yeye He
Proc. ACM Manag. Data1
2023 Towards Auto-Generated Data Systems
abstract
After decades of progress, database management systems (DBMSs) are now the backbones of many data applications that we interact with on a daily basis. Yet, with the emergence of new data types and hardware, building and optimizing new data systems remain as difficult as the heyday of relational databases. In this paper, we summarize our work towards automating the building and optimization of data systems. Drawing from our own experience, we further argue that any automation technique must address three aspects: user specification, code generation, and result validation. We conclude by discussing a case study using videos data processing, along with opportunities for future research towards designing data systems that are automatically generated.
Alvin Cheung, Maaz Bin Safeer Ahmad, Brandon Haynes, Chanwut Kittivorawong, Shadaj Laddad, Chenglong Wang 0005, Cong Yan
Proc. VLDB Endow.8
2023 SlabCity: Whole-Query Optimization using Program Synthesis
abstract
Query rewriting is often a prerequisite for effective query optimization, particularly for poorly-written queries. Prior work on query rewriting has relied on a set of "rules" based on syntactic pattern-matching. Whether relying on manual rules or auto-generated ones, rule-based query rewriters are inherently limited in their ability to handle new query patterns. Their success is limited by the quality and quantity of the rules provided to them. To our knowledge, we present the first synthesis-based query rewriting technique, SlabCity, capable of whole-query optimization without relying on any rewrite rules. SlabCity directly searches the space of SQL queries using a novel query synthesis algorithm that leverages a new concept called query dataflows. We evaluate SlabCity on four workloads, including a newly curated benchmark with more than 1000 real-life queries. We show that not only can SlabCity optimize more queries than state-of-the-art query rewriting techniques, but interestingly, it also leads to queries that are significantly faster than those generated by rule-based systems.
Rui Dong 0006, Jie Liu 0048, Yuxuan Zhu 0003, Cong Yan, Barzan Mozafari, Xinyu Wang 0006
Proc. VLDB Endow.4
2023 Auto-Tables: Synthesizing Multi-Step Transformations to Relationalize Tables without Using Examples
abstract
Relational tables, where each row corresponds to an entity and each column corresponds to an attribute, have been the standard for tables in relational databases. However, such a standard cannot be taken for granted when dealing with tables "in the wild". Our survey of real spreadsheet-tables and web-tables shows that over 30% of such tables do not conform to the relational standard, for which complex table-restructuring transformations are needed before these tables can be queried easily using SQL-based tools. Unfortunately, the required transformations are non-trivial to program, which has become a substantial pain point for technical and non-technical users alike, as evidenced by large numbers of forum questions in places like StackOverflow and Excel/Tableau forums. We develop an Auto-Tables system that can automatically synthesize pipelines with multi-step transformations (in Python or other languages), to transform non-relational tables into standard relational forms for downstream analytics, obviating the need for users to manually program transformations. We compile an extensive benchmark for this new task, by collecting 244 real test cases from user spreadsheets and online forums. Our evaluation suggests that Auto-Tables can successfully synthesize transformations for over 70% of test cases at interactive speeds, without requiring any input from users, making this an effective tool for both technical and non-technical users to prepare data for analytics.
Peng Li 0062, Yeye He, Cong Yan, Yue Wang 0070, Surajit Chaudhuri
Proc. VLDB Endow.3
2023 Leveraging Application Data Constraints to Optimize Database-Backed Web Applications
abstract
Exploiting the relationships among data is a classical query optimization technique. As persistent data is increasingly being created and maintained programmatically, prior work that infers data relationships from data statistics misses an important opportunity. We present Coco, the first tool that identifies data relationships by analyzing database-backed applications. Once identified, Coco leverages the constraints to optimize the application's physical design and query execution. Instead of developing a fixed set of predefined rewriting rules, Coco employs an enumerate-test-verify technique to automatically exploit the discovered data constraints to improve query execution. Each resulting rewrite is provably equivalent to the original query. Using 14 real-world web applications, our experiments show that Coco can discover numerous data constraints from code analysis and improve real-world application performance significantly.
Mengzhu Sun, Sicheng Pan, Siddharth Jha, Cong Yan, Shan Lu 0001, Alvin Cheung
Proc. VLDB Endow.7
2022 Modeling, Analysis and Activation of Planar Viscoelastically-combined Rimless Wheels
abstract
This paper proposes novel passive-dynamic walk-ers formed by two cross-shaped frames and eight viscoelastic elements. Since it is a combination of two four-legged rimless wheels via viscoelastic elements, we call it viscoelastically-combined rimless wheel (VCRW). Two types of VCRWs consisting of different cross-shaped frames are introduced; one is formed by combining two Greek-cross-shaped frames (VCRW1), and the other is formed by combining two-link cross-shaped frames that can rotate freely around the central axis (VCRW2). First, we describe the model assumptions and equations of motion and collision. Second, we numerically analyze the basic gait properties of passive dynamic walking. Furthermore, we consider an activation of VCRW2 for gen-erating a stable level gait, and discuss the significance of the study as a novel walking support device.
Fumihiko Asano, Yuxuan Xiang, Yanqiu Zheng, Cong Yan
IROS4
2021 Modeling and Analysis of Tensegrity Robot for Passive Dynamic Walking
abstract
This paper introduces a planar tensegrity robot that walks passively and cyclically on a gentle downhill, where its gait versatility can be strengthened by applying actuation forces on the connection cables. The novelty of this work is that we design the structure of this passive robot inspired by the rimless wheel, which naturally generates cyclic locomotion. Consequently, its mathematical model is analytically derived based on passive dynamic walking. Besides, the limb support conditions and dynamics effects induced by the collisions can be precisely determined accordingly. Moreover, numerical simulation is performed to show the typical gait pattern, and resonance phenomenon is observed. Finally, a preliminary experimental study is conducted to prove the validity of the mathematical model. The robot we developed and the mathematical model we derived enable further extensions on the gait analysis and model-based control by conveniently adopting efficient passivemimic walking techniques.
Yanqiu Zheng, Longchuan Li, Fumihiko Asano, Cong Yan, Xindi Zhao, Haosong Chen
IROS4
2021 Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking
abstract
Hotspots, a small set of tuples frequently read/written by a large number of transactions, cause contention in a concurrency control protocol. While a hotspot may comprise only a small fraction of a transaction's execution time, conventional strict two-phase locking allows a transaction to release lock only after the transaction completes, which leaves significant parallelism unexploited. Ideally, a concurrency control protocol serializes transactions only for the duration of the hotspots, rather than the duration of transactions.
Zhihan Guo, Cong Yan, Xiangyao Yu
SIGMOD Conference3
2020 View-Driven Optimization of Database-Backed Web Applications
Cong Yan, Alvin Cheung, Shan Lu 0001
CIDR1
2020 Managing data constraints in database-backed web applications
abstract
Database-backed web applications manipulate large amounts of persistent data, and such applications often contain constraints that restrict data length, data value, and other data properties. Such constraints are critical in ensuring the reliability and usability of these applications. In this paper, we present a comprehensive study on where data constraints are expressed, what they are about, how often they evolve, and how their violations are handled. The results show that developers struggle with maintaining consistent data constraints and checking them across different components and versions of their web applications, leading to various problems. Guided by our study, we developed checking tools and API enhancements that can automatically detect such problems and improve the quality of such applications.
Utsav Sethi, Cong Yan, Alvin Cheung, Shan Lu 0001
ICSE3
2020 Demonstration of Chestnut: An In-memory Data Layout Designer for Database Applications
abstract
This demonstration showcases Chestnut, a data layout generator for in-memory object-oriented database applications. Given an application and a memory budget, Chestnut generates a customized in-memory data layout and the corresponding query plans that are specialized for the application queries. Our demo will let users design and improve simple web applications using Chestnut. Users can view the Chestnut-generated data layouts using a custom visualization system, which will allow users to see how the application parameters affect Chestnut's design. Finally, users will be able to run queries generated by the application via the customized query plans generated by Chestnut or traditional relational query engines, and can compare the results and observe the speedup achieved by the Chestnut-generated query plans.
Mingwei Samuel, Cong Yan, Alvin Cheung
SIGMOD Conference2
2020 Auto-Suggest: Learning-to-Recommend Data Preparation Steps Using Data Science Notebooks
abstract
Data preparation is widely recognized as the most time-consuming process in modern business intelligence (BI) and machine learning (ML) projects. Automating complex data preparation steps (e.g., Pivot, Unpivot, Normalize-JSON, etc.)holds the potential to greatly improve user productivity, and has therefore become a central focus of research. We propose a novel approach to "auto-suggest" contextualized data preparation steps, by "learning" from how data scientists would manipulate data, which are documented by data science notebooks widely available today. Specifically, we crawled over 4M Jupyter notebooks on GitHub, and replayed them step-by-step, to observe not only full input/output tables (data-frames) at each step, but also the exact data-preparation choices data scientists make that they believe are best suited to the input data (e.g., how input tables are Joined/Pivoted/Unpivoted, etc.). By essentially "logging" how data scientists interact with diverse tables, and using the resulting logs as a proxy of "ground truth", we can learn-to-recommend data preparation steps best suited to given user data, just like how search engines (Google or Bing) leverage their click-through logs to learn-to-rank documents. This data-driven and log-driven approach leverages the "collective wisdom" of data scientists embodied in the notebooks, and is shown to significantly outperform strong baselines including commercial systems in terms of accuracy.
Cong Yan, Yeye He
SIGMOD Conference1
2019 View-centric performance optimization for database-backed web applications
abstract
Web developers face the stringent task of designing informative web pages while keeping the page-load time low. This task has become increasingly challenging as most web contents are now generated by processing ever-growing amount of user data stored in back-end databases. It is difficult for developers to understand the cost of generating every web-page element, not to mention explore and pick the web design with the best trade-off between performance and functionality. In this paper, we present Panorama, a view-centric and database-aware development environment for web developers. Using database-aware program analysis and novel IDE design, Panorama provides developers with intuitive information about the cost and the performance-enhancing opportunities behind every HTML element, as well as suggesting various global code refactorings that enable developers to easily explore a wide spectrum of performance and functionality trade-offs.
Cong Yan, Chengcheng Wan 0001, Shan Lu 0001, Alvin Cheung
ICSE2
2019 Generating Application-specific Data Layouts for In-memory Databases
abstract
Database applications are often developed with object-oriented languages while using relational databases as the backend. To accelerate these applications, developers would manually design customized data structures to store data in memory, and ways to utilize such data structures to answer queries. Doing so is brittle and requires a lot of effort. Alternatively, developers might automate the process by using relational physical design tools to create materialized views and indexes instead. However, the characteristics of object-oriented database applications are often distinct enough from traditional database applications such that classical relational query optimization techniques often cannot speed up queries that arise from such applications, as our experiments show. To address this, we build Chestnut, a data layout generator for in-memory object-oriented database applications. Given a memory budget, Chestnut generates customized in-memory data layouts and query plans to answer queries written using a subset of the Rails API, a common framework for building object-oriented database applications. Chestnut differs from traditional query optimizers and physical designers in two ways. First, Chestnut automatically generates data layouts that are customized for the application after analyzing their queries, hence Chestnut-generated data layouts are designed to be efficient to answer queries from such applications. second, Chestnut uses a novel enumeration and verification-based algorithm to generate query plans that use such data layouts, rather than rule-based approaches as in traditional query optimizers. We evaluated Chestnut on four open-source Rails database applications. The result shows that it can reduce average query processing time by over 3.6X (and up to 42X), as compared to other in-memory relational database engines.
Cong Yan, Alvin Cheung
Proc. VLDB Endow.1
2018 How not to structure your database-backed web applications: a study of performance bugs in the wild
abstract
Many web applications use databases for persistent data storage, and using Object Relational Mapping (ORM) frameworks is a common way to develop such database-backed web applications. Unfortunately, developing efficient ORM applications is challenging, as the ORM framework hides the underlying database query generation and execution. This problem is becoming more severe as these applications need to process an increasingly large amount of persistent data. Recent research has targeted specific aspects of performance problems in ORM applications. However, there has not been any systematic study to identify common performance anti-patterns in real-world such applications, how they affect resulting application performance, and remedies for them.
Pranav Subramaniam, Shan Lu 0001, Cong Yan, Alvin Cheung
ICSE4
2018 Synthesizing Type-Detection Logic for Rich Semantic Data Types using Open-source Code
abstract
Given a table of data, existing systems can often detect basic atomic types (e.g., strings vs. numbers) for each column. A new generation of data-analytics and data-preparation systems are starting to automatically recognize rich semantic types such as date-time, email address, etc., for such metadata can bring an array of benefits including better table understanding, improved search relevance, precise data validation, and semantic data transformation. However, existing approaches only detect a limited number of types using regular-expression-like patterns, which are often inaccurate, and cannot handle rich semantic types such as credit card and ISBN numbers that encode semantic validations (e.g., checksum).
Cong Yan, Yeye He
SIGMOD Conference1
2018 PowerStation: automatically detecting and fixing inefficiencies of database-backed web applications in IDE
abstract
Modern web applications are built using a myriad of software components, and each of them exposes different programming models (e.g., application logic expressed in an imperative language, database queries expressed using declarative SQL). To improve programmer productivity, Object Relational Mapping (ORM) frameworks have been developed to allow developers build web applications in an object-oriented manner. Despite such frameworks, prior work has found that developers still struggle in developing performant ORM-based web applications. This paper presents PowerStation, a RubyMine IDE plugin for optimizing web applications developed using the Ruby on Rails ORM. Using automated static analysis, PowerStation detects ORM-related inefficiency problems and suggests fixes to developers. Our evaluation using 12 real-world applications shows that PowerStation can automatically detects 1221 performance issues across them. A tutorial on using PowerStation can be found at https://youtu.be/rAV8CGuSj6k.
Cong Yan, Pranav Subramaniam, Shan Lu 0001, Alvin Cheung
ESEC/SIGSOFT FSE2
2017 Understanding Database Performance Inefficiencies in Real-world Web Applications
abstract
Many modern database-backed web applications are built upon Object Relational Mapping (ORM) frameworks. While such frame- works ease application development by abstracting persistent data as objects, such convenience comes with a performance cost. In this paper, we studied 27 real-world open-source applications built on top of the popular Ruby on Rails ORM framework, with the goal to understand the database-related performance inefficiencies in these applications. We discovered a number of inefficiencies rang- ing from physical design issues to how queries are expressed in the application code. We applied static program analysis to identify and measure how prevalent these issues are, then suggested techniques to alleviate these issues and measured the potential performance gain as a result. These techniques significantly reduce database query time (up to 91%) and the webpage response time (up to 98%). Our study provides guidance to the design of future database engines and ORM frameworks to support database application that are performant yet without sacrificing programmability.
Cong Yan, Alvin Cheung, Shan Lu 0001
CIKM1
2017 DC voltage follow-up control for mitigating the power fluctuation of distributed generation
abstract
The power fluctuation of distributed generation has a negative effect on the power quality, losses and operation safety, and a good solution is to mitigate the power fluctuation near the grid-connected point of this generation. A new method for mitigating grid-side power fluctuation by the grid-connected inverter itself is proposed in this paper. A certain capacity of Li-ion supercapacitor is used as the dc-link capacitor of the grid-connected inverter first, and then a dc voltage follow-up control of the grid-connected inverter is adapted to charge/discharge the Li-ion capacitor indirectly. Finally, the power fluctuation of the renewable energy generation is well compensated by the charge/discharge power of the Li-ion capacitor, and the grid-side power has been smoothed. Taking a PV generation system as an example, the simulation results show that the dc voltage follow-up control of the grid-connected inverter can effectively mitigate its grid-side power fluctuation.
Xiangqian Tong, Cong Yan, Shude Yang, Kaiyu Tang
IECON2
2016 Leveraging Lock Contention to Improve OLTP Application Performance
abstract
Locking is one of the predominant costs in transaction processing. While much work has focused on designing efficient concurrency control mechanisms, not much has been done on understanding how transaction applications issue queries and leveraging application semantics to improve application performance. This paper presents Q uro , a query-aware compiler that automatically reorders queries in transaction code to improve performance. Observing that certain queries within a transaction are more contentious than others as they require locking the same tuples as other concurrently executing transactions, Q uro automatically changes the application such that contentious queries are issued as late as possible. We have evaluated Q uro on various transaction benchmarks, and our results show that Q uro -generated implementations can increase transaction throughput by up to 6.53x, while reduce transaction latency by up to 85%.
Cong Yan, Alvin Cheung
Proc. VLDB Endow.1
2015 A scalable architecture for ordered parallelism
abstract
We present Swarm, a novel architecture that exploits ordered irregular parallelism, which is abundant but hard to mine with current software and hardware techniques. In this architecture, programs consist of short tasks with programmer-specified timestamps. Swarm executes tasks speculatively and out of order, and efficiently speculates thousands of tasks ahead of the earliest active task to uncover ordered parallelism. Swarm builds on prior TLS and HTM schemes, and contributes several new techniques that allow it to scale to large core counts and speculation windows, including a new execution model, speculation-aware hardware task management, selective aborts, and scalable ordered commits.
Mark C. Jeffrey, Suvinay Subramanian, Cong Yan, Joel S. Emer, Daniel Sánchez 0003
MICRO3