Page 378 - 《软件学报》2024年第6期
P. 378

2954                                                       软件学报  2024  年第  35  卷第  6  期


                 AP  端的存储引擎. 这种方案类似        ETL  式的物理隔离, 试图避免两者之间的资源冲突. 但             AP 端对新鲜数据的需求
                 与  TP 端的高吞吐   (大量数据更新) 制约了两个存储引擎的数据一致性. 故而, 如何实现在完全解耦的存储下实现
                 高效的数据同步是一个核心挑战.
                    针对这   3 种资源隔离方案引入的版本同步和追踪的挑战, HTAP               数据库系统需要设计有效的数据共享方式, 如
                 为了解决逻辑隔离的挑战, 数据追踪时往往对存储格式进行转化; 为了解决缓存隔离的挑战, 数据版本追踪时需要
                 对齐不一致的版本; 为了解决存储隔离的挑战, 数据同步时可以阶段性同步数据. 基于对现有                             HTAP  数据库系统
                 的数据共享方式的总结, 本文从          TP  端到  AP  端的数据生产、同步、追踪的整个生命周期出发, 归纳了不同的数据
                 共享模型, 其约束了     AP  端访问  TP  端产生的数据版本的模式. 进一步, 我们探讨了数据共享模型下的主流优化手段.
                  1.3   相关工作
                    随着  HTAP  数据库系统的发展, 出现了一批综述类工作对其技术进行概括和总结. Özcan                     等人  [30] 从实现的角
                 度整理了   HTAP  数据库系统的发展历史, 并着重分析、比较了不同的存储架构, 包括行列混存和分离式两套存储
                 的具体实现方式. Hieber 等人     [31] 则以分布式架构为中心, 总结了       HTAP  数据库系统的设计要点和具体实现, 讨论
                 分布式场景下的并发控制、故障恢复、垃圾回收等问题. 另一方面, Psaroudakis 等人                    [32] 、Raza 等人  [22] 主要分析
                                w i (K) 表示在某一时刻事务
                 了吞吐性能和新鲜度之间的相互影响, 前者设计了针对                  HTAP  数据库系统的混合评测负载, 并通过实验定量分析
                 其对彼此的影响, 后者在实验的基础上, 进一步讨论资源隔离问题, 并给出一套资源调度算法. 张超等人                              [33,34] 根据
                 存储结构对    HTAP  数据库系统进行分类, 总结了         HTAP  不同于  OLTP/OLAP  数据库系统在诸如内存与磁盘的行/
                 列存异构存储设计、查询优化、资源调度等技术上的关键要点, 并对比了近                            10  年内典型的支持行列共存的
                 HTAP 数据库系统, 深入地分析了        HTAP  数据库系统的实现技术及不同设计的优劣. 而本文侧重于对不同一致性
                 模型下数据共享方式的分析, 旨在为不同应用场景下性能稳定的                     HTAP  数据库系统研发提供思路. 文献         [35] 也展
                 望了机器学习技术在面向         HTAP  数据库系统中存储模型自动化选取、混合负载资源调度等方向上的未来应用. 这
                 些工作都从设计架构和实现效果两个方面综述                 HTAP  数据库系统, 但都缺乏对       HTAP  数据库系统如何在天然的
                 架构选择下, 实现有效的数据共享策略的总结和分析.
                  1.4   论文结构
                    本文第   2  节从一致性模型的角度出发, 定义了数据共享模型, 归纳                HTAP  数据库系统在不同一致性级别下的
                 数据共享模型实现机制和实现特征, 随后围绕业界主流的十余款                     HTAP  数据库系统, 进行数据共享模型方案的案
                 例分析. 第  3  节概述了现阶段     HTAP  数据库系统为了提高数据共享时版本同步、追踪、回收的效率和减少对应开
                 销所提出的优化方案. 第       4  节基于对数据共享模型的归纳, 分析并展望了             HTAP  数据库系统未来可能的优化方向.

                  2   HTAP  数据库系统数据共享模型

                  2.1   数据共享模型
                    数据版本是     TP  任务和  AP  任务数据共享的基础, 系统中事务每次写入产生的新数据会被唯一标识, 该标识文
                 中统一称为版本标识号. 为了深入剖析            HTAP  数据库系统数据共享模型, 本节首先给出数据版本的定义; 进一步,
                 根据  TP  端版本更新操作和     AP  端版本读取操作在版本标识号上存在的关系, 给出               3  类数据共享模型的定义. 其实
                 例如图   2  所示. 注意, 为了介绍简单, 示例中每个事务仅包含一个数据库访问操作, 即写或读, 每个事务均只访问数
                     x . 在图  2                                                    w i r(K) 则表示在某一时刻读
                 据项          中,                      T i  针对数据项   x  写入/修改的值为  K  ;
                 数据项   x  的值为   K  , 这一结果是  w i  对应事务  T i  所写入/修改的值.
                    定义  1 (版本更新操作). 版本更新操作        w 是已提交事务     T  对数据库的修改操作. 基于事务的原子性, 操作            w 的
                 执行时间点为事务       T  的提交时间, 记为   w.t .
                    例  1: 如图  2  所示, TP  客户端  A  共发起两次版本更新操作, 即      w 1 w 3  , 分别对应事务  T 1 , T 3  将数据项  x 修改
                                                                        ,
                 为  2  和  0, 其执行时间点分别为   w 1 .t = t1 w 3 .t = t5 .
                                                ,
                    定义  2 (版本更新序列). 版本更新序列        S n  是执行时间点小于等于      w n .t  的全部版本更新操作构成的线性序列,
   373   374   375   376   377   378   379   380   381   382   383