A Framework For Inferring Properties of User-Defined Functions
User-defined functions (UDFs) are widely used to enhance the capabilities of DBMSs. However, using UDFs comes with a significant performance penalty because DBMSs treat UDFs as black boxes, which hinders their ability to optimize queries that invoke such UDFs. To mitigate this problem, in this paper we present LAMBDA, a technique and framework for improving DBMSs’ performance in the presence of UDFs. The core idea of LAMBDA is to statically infer properties of UDFs that facilitate UDF processing. Taking one such property as an example, if DBMSs know that a UDF is pure, that is it returns the same result given the same arguments, they can leverage a cache to avoid repetitive UDF invocations that have the same call arguments. We reframe the problem of analyzing UDF properties as a data flow problem. We tackle the data flow problem by building LAMBDA on top of an extensible abstract interpretation framework and developing an analysis model that is tailored to UDFs. Currently, LAMBDA supports inferring four properties from UDFs that are widely used across DBMSs.We evaluate LAMBDA on a benchmark that is derived from production query workloads and UDFs. Our evaluation results show that (1) LAMBDA conservatively and efficiently infers the considered UDF properties, and (2) inferring such properties improves UDF performance, with a time reduction ranging from 10% to 99%. In addition, when applied to 20 production UDFs, LAMBDA caught five instances in which developers provided incorrect UDF property annotations. We qualitatively compare LAMBDA against Froid, a state-of-the-art framework for improving UDF performance, and explain how LAMBDA can optimize UDFs that are not supported by Froid.
Wed 17 AprDisplayed time zone: Lisbon change
11:00 - 12:30 | Analysis 1Demonstrations / Software Engineering Education and Training / Journal-first Papers / Research Track at Fernando Pessoa Chair(s): Davide Taibi University of Oulu and Tampere University | ||
11:00 15mTalk | Symbol-Specific Sparsification of Interprocedural Distributive Environment Problems Research Track Kadiray Karakaya Heinz Nixdorf Institut, Paderborn University, Eric Bodden Heinz Nixdorf Institut, Paderborn University and Fraunhofer IEM Pre-print | ||
11:15 15mTalk | A Framework For Inferring Properties of User-Defined Functions Research Track Xinyu Liu Georgia Institute of Technology, Joy Arulraj Georgia Institute of Technology, Alessandro Orso Georgia Institute of Technology | ||
11:30 15mTalk | Building Collaborative Learning: Exploring Social Annotation in Introductory Programming Software Engineering Education and Training Francisco Gomes de Oliveira Neto Chalmers | University of Gothenburg, Felix Dobslaw Mid Sweden University | ||
11:45 15mTalk | Teaching Software Development for Real-World Problems using a Microservice-Based Collaborative Problem-Solving Approach Software Engineering Education and Training Yi Meng LAU Singapore Management University, Christian Michael KOH Singapore Management University, Lingxiao Jiang Singapore Management University | ||
12:00 7mTalk | Detecting Outdated Code Element References in Software Repository Documentation Journal-first Papers Wen Siang Tan The University of Adelaide, Markus Wagner Monash University, Australia, Christoph Treude Singapore Management University | ||
12:07 7mTalk | Augmenting Diffs With Runtime Information Journal-first Papers Khashayar Etemadi KTH Royal Institute of Technology, Aman Sharma KTH Royal Institute of Technology, Fernanda Madeiral Vrije Universiteit Amsterdam, Martin Monperrus KTH Royal Institute of Technology Link to publication Pre-print | ||
12:14 7mTalk | TPV: A Tool for Validating Temporal Properties in UML Class Diagrams Demonstrations Mustafa Al Lail Texas A&M International University, Antonio Rosales Viesca Texas A&M International University, Hector Cardenas Texas A&M International University, Mohammad Zarour Hashemite University, Alfredo Perez University of Nebraska at Omaha |