【论文解读】OLTP 数据库引擎性能优化
共 10097字,需浏览 21分钟
· 2024-05-10
本篇文章解读两篇关于 OLTP 数据库引擎性能优化的论文,分别是发表于VLDB-2021的《CoroBase: coroutine-oriented main-memory database engine》和发表于VLDB-2024的《The Art of Latency Hiding in Modern Database Engines》。在此基础上探讨论文的系统设计与 TDSQL 计算引擎设计的异同,以及论文带来的启发。
● 论文一的研究对象是纯内存计算的 OLTP 引擎,作者通过引入 C++ 20 的 coroutine 特性将 thread-to-transaction 的执行模型修改为两级 coroutine-to-transaction,在不需要内部接口改动的条件下实现了事务间的 batch 机制和基于协程的 prefetch,减少了后续计算的 cache miss,提升了事务的整体执行性能。
● 论文二在论文一的基础上,研究对象从纯内存计算的 OLTP 引擎扩展为更通用的内存计算和存储 IO 访问混合的 OLTP 引擎,更完整的讨论了数据库引擎可能在哪些环节产生性能问题(重点关注端到端的吞吐和延迟):包括 CPU 的 cache miss、存储 IO、操作系统调度、数据同步等等。论文沿用 coroutine-to-transaction 的执行模型,通过控制线程数量、灵活的 coroutine 策略(可选择性的协程嵌套、存储感知的调度策略、流水线式的调度)在不同的场景实现 latency hiding ,以达到系统整体吞吐的提升。
纯内存计算场景
OLTP引擎
内存计算和存储IO
混合场景
TDSQL计算引擎对比
和论文启发
1、TDSQL 计算引擎介绍
2、有栈协程和无栈协程
3、后台线程的影响
Buffer pool 和 hot-cold 架构
论文缺少了哪些讨论
1、延迟的稳定性和可预测性
2、吞吐和延迟的相互影响
总结
﹀
﹀
﹀
抢鲜体验!腾讯云PostgreSQL国内首支持PG 16