上一篇文章中,我们从技术和商业角度分析了 HTAP 系统缘起的背景,本篇文章中,我们将从 HTAP 定义及其相关核心技术等方面来讨论:构建一个 HTAP 所面临的核心问题和挑战有哪些?
HTAP 涉及技术和对产品的影响
HTAP 是将 TP 和 AP 进行高度融合的产物, 而非简单的 TP 和 AP 相加:TP+AP ≠ HTAP。有的数据库让 TP 系统通过简单的数据同步方式(比如 Binlog等),将数据同步到 AP 系统,然后再由 AP 系统进行处理数据,虽然该种方式从用户的角度来看似乎是获得了同时处理 TP 和 AP 的能力,但是从本质上来看,这并不能称为真正的 HTAP 产品,国内有一些数据库厂商宣传 HTAP 概念很起劲,但是自身可能还真不满足 HTAP 的定义。下面我们就 HTAP 所涉及到的几个核心问题来探讨一下,一个真正的 HTAP 产品需要具备哪些能力。 我们将从以下维度进行探讨:
- 架构选择(Architecture choice)
- 数据导入及查询处理引擎 (Ingestion and query processing egnines)
- 存储方案 (Storage options)
- 数据组织方案 (Data organization)
- 事务语义(Transaction semantics)
- 数据的时效性(Recency of data being read by OLAP)
- 索引支持(Indexing supports)
- AP 负载和 TP 负载的相互干扰(Workload interference)
当系统接收到一个查询负载的时候,查询处理模块需要识别出该查询负载中的 TP 负载和 AP 负载。并能够依据相应的策略(这里可以是基于规则或者是基于查询代价),将相应的负载转发至相应的处理引擎。
1. 架构的选择 Single system(即 One system)