一句话:报告在工业级数据库中心系统中适配性能分析技术,诊断 SQL 业务逻辑性能问题并总结挑战与经验。
大型软件系统广泛采用以数据库为中心的架构,其业务逻辑与计算多驻留在数据库内并用 SQL 等 DSL 表达,导致传统面向 Java 等语言的性能分析技术难以直接适用。本文基于工业合作方的大型数据库中心系统,报告适配性能分析技术的经验:分析重点关注数据库本身以及数据库与应用之间的交互,并尽量减少对专家知识和人工投入的依赖。文章记录了开发与落地过程中遇到的挑战、应对方式与经验教训,并讨论了该方法在实际系统中检测到的性能问题。作者期望这些实践能为希望保障和改进数据库中心系统性能的从业者与研究者提供参考。
Database-centric architectures have been widely adopted in large-scale software systems in various domains to deal with the ever-increasing amount and complexity of data. Prior studies have proposed a wide range of performance analytic techniques aimed at assisting developers in pinpointing software performance inefficiencies and diagnosing performance issues. However, directly applying these existing techniques to large-scale database-centric systems can be challenging and may not perform well due to the unique nature of such systems. In particular, compared to typical database-based systems like online shopping systems, in database-centric systems, a majority of the business logic and calculations reside in the database instead of the application. As the calculations in the database typically use domain-specific languages such as SQL, the performance issues of such systems and their diagnosis may be significantly different from the systems dominated by traditional programming languages such as Java. In this paper, we share our experience of adapting performance analytic techniques in a large-scale database-centric system from our industrial collaborator. Our adapted performance analysis pays special attention to the database and the interactions between the database and the application with minimal reliance on expert knowledge and manual effort. Moreover, we document our encountered challenges and how they are addressed during the development and adoption of our solution in the industrial setting as well as the corresponding lessons learned. We also discuss the real-world performance issues detected by applying our analysis to the target database-centric system. We anticipate that our solution and the reported experience can be helpful for practitioners and researchers who would like to ensure and improve the performance of database-centric systems.
@inproceedings{Liao0SSTS23,
title = {Adapting Performance Analytic Techniques in a Real-World Database-Centric System: An Industrial Experience Report},
author = {Lizhi Liao and Heng Li and Weiyi Shang and Catalin Sporea and Andrei Toma and Sarah Sajedi},
booktitle = {FSE},
year = {2023},
doi = {10.1145/3611643.3613893}
}