- 分享人:任勇闯
- 关键词:HTAP, 共享设计, 隔离设计
- Keywords: HTAP, Shared, solation
- 分享PPT: 2022-07-15-面向HTAP的内存数据库
论文:How Good is My HTAP System?
什么样的业务需求将决定底层数据库系统应该提供什么样的能力,而根据上层应用负载分为了 OLTP 和 OLAP 两种。HTAP 概念的出现旨在融合处理两种不同的工作负载的能力,而 HTAP 系统设计目标是 ”HTAP在不影响事务吞吐量情况和响应时间下对最新的数据进行分析处理,同时分析处理的响应时间不受最新数据新鲜度的影响“,并提出评判 HTAP 设计的三个角度:
- 隔离负载:并发OLAP查询不能影响OLTP事务处理的响应时间和吞吐量
- 数据新鲜度:OLAP查询应在最新的数据版本上
- 一致性保证:OLAP查询应确保是正确一致的数据视图
进而从三个角度了解设计 HTAP 的不同设计思想。
论文:HyPer: A hybrid OLTP&OLAP main memory database system based on virtual memory snapshots
hyper 利用 OS 的虚拟内存的管理机制,依赖 MMU 内存管理单元,通过 page-shadowing 思路支持 HTAP 能力。通过虚拟快照达到了查询数据隔离性的目的,通过快速生成的快照保证了数据新鲜度,同时实时数据副本的产生,完成数据一致性的保障。
论文:HyPer: A hybrid OLTP&OLAP main memory database system based on virtual memory snapshots
基于主从复制的思想,通过增量日志的传输,达到不同的存储引擎同时工作并应付不同的工作负载能力。通过解耦了存储资源,进而完成了隔离负载的要求。通过数据更新日志批量传输,在较短的时间间隔下,传输数据。同时将事务进行还原,达到数据一致性的要求。
论文:Oracle Database In-Memory: A dual format in-memory database
主要针对大内存下,同时在内存中维护行存和列存两种数据结构,达到应对不同工作负载对数据存储格式的要求。Oracle 通过版本升级的方式,快速将原有的 OLTP 数据库升级为 HTAP 数据库,更加符合 ”HTAP as a service“ 思想,即不影响原有上层应用情况下拓展 HTAP 功能。主要是通过内存管理形式完成数据隔离能力,同时在 AP 侧主动获取最新事务日志达到树新鲜度的需求,并通过版本号完成数据一致性需要。
论文:Adaptive HTAP through Elastic Resource Scheduling
并没有哪种设计架构真的满足 HTAP 的隔离性和数据新鲜度的要求,"Adaptive HTAP through elastic resource scheduling" 论文通过将资源模块化,加入资源调度器来达到动态适应不同工作负载,完成 HTAP 的能力。通过对内存和 CPU 资源的工作对象转换,在对上层业务整体资源要求程度不高时,直接在相同数据上处理 OLTP 和 OLAP 两种工作负载。当上层应用对 TP 和 AP 同时要求资源时,将资源隔离处理不同的负载,进而达到资源最大化利用的情况。 这里主要通过调度引擎实现了资源的隔离,并根据业务情况,适当调节对数据新鲜度的需要,适应更多复杂的负载要求。