paper-outline icon indicating copy to clipboard operation
paper-outline copied to clipboard

HTAP Databases: What is New and What is Next

Open mrdrivingduck opened this issue 2 years ago • 4 comments

一篇关于目前 HTAP 技术发展流派的综述。

sigmod22-tutorial-paper.pdf

mrdrivingduck avatar May 17 '23 04:05 mrdrivingduck

关于 HTAP 的定义:2014 年 Gartner 提出能够并发执行 OLTP 和 OLAP 负载,而不需要 ETL (Extract-Transfrom-Load) 的就可以被称为 HTAP。2018 年,Gartner 扩展了 In-Process HTAP 的概念:能够把 OLTP 和 OLAP 交织在一起的架构也可以被称为 HTAP。这种新的定义意味着 HTAP 不再需要局限于一些仅存在于内存中的技术。

mrdrivingduck avatar May 17 '23 04:05 mrdrivingduck

架构设计分类

image

  • 行存为主,内存列存:所有数据持久化为行存,数据更新被 append 到增量存储中,归并到列存里;由于所有工作都在内存中完成,所以具有高吞吐率;典型:Oracle、SQL Server
  • 分布式行存 + 列存副本:主存储为行存,部分 slave 被选为列存;事务查询只发生在行存节点上,提交后的事务异步复制到列存节点上;工作负载隔离性佳,数据新鲜度低;典型:TiDB
  • 磁盘行存 + 独立列存:使用一个完全独立的内存列存节点,只保留行存 TP 的热数据;典型:MySQL Heatwave
  • 列存为主 + 行存增量表:数据更新被 append 到行存增量表中,逐步归并到列存;AP 性能佳,TP 扩展性差;典型:SAP HANA

mrdrivingduck avatar May 17 '23 05:05 mrdrivingduck

HTAP 技术分类

OLTP 技术

  1. MVCC + 日志
  2. 2PC + Raft + 日志

OLAP 技术

  1. 内存增量 + 列扫描:数据新鲜度高
  2. 日志增量 + 列扫描:数据新鲜度中等
  3. 纯列扫描:数据新鲜度低

数据同步技术

  1. 内存内同步
  2. 基于磁盘增量的同步
  3. 从主行存重建列存

查询优化技术

  1. 列选择:按照历史负载和统计信息,选择部分列维护为列存,对这些列的查询可以被推到列存执行;选择的准确性十分重要
  2. 混合行列扫描:要么在行存上执行,要么在列存上执行,基于代价选择
  3. 使用 CPU/GPU

资源调度技术

  1. 基于负载驱动的调度:基于正在进行中的负载性能,调整 OLTP 和 OLAP 的并行比例
  2. 基于新鲜度驱动的调度:确保 OLTP 和 OLAP 同时以高吞吐运行,周期性同步数据

mrdrivingduck avatar May 17 '23 06:05 mrdrivingduck

未来需要解决的问题

  1. 自动化的列选择:轻量、准确
  2. 查询优化
  3. 自适应的资源调度
  4. 目前没有官方的 benchmark

mrdrivingduck avatar May 17 '23 06:05 mrdrivingduck