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

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


                                               表 2    HTAP  数据库系统特征总结

                 一                   数据标识号分配                    数据版本同步                   数据版本追踪
                 致    数据库                    分配方式            补充功能         同步 同步
                 性            方式    精度      TP     AP      TP       AP    范围 格式     组织方式       确认机制
                    HyPer (new) 事务号 时间点      单机TSO         -        -      -   -      链式    读  取  读  时  已  提  交
                     Greenplum 事务号 时间点       全局TSO         -        -      -   -      链式    的最新版本
                    SAP HANA 事务号 时间点         单机TSO         -        -     全量 数据             首先读取delta中
                      Hyrise  事务号 时间点        单机TSO         -        -     全量 数据    main单版本, 读  时  已  提  交  的  最
                                                                                    delta链式 新版本, 数据缺失
                    FoundationDB 事务号 时间点     全局TSO         -        -      -   -            时从main中读取
                                                                                            首  先  读  取  内  存  中
                                                                                    buffer链式, 读  时  已  提  交  的  最
                      Oracle  事务号 时间点        单机TSO         -        -     全量 日志    内存单版本 新版本, 数据缺失
                 线                                                                          时通过日志读取
                 性
                                                                                            首  先  读  取  列  存  中
                                                                                   行存链式, 列读   时  已  提  交  的  最
                                                缓存已同
                     SQL Server 事务号 时间点      单机TSO         -        -     全量 数据
                                                                                    存单版本 新版本, 数据缺失
                                                                                            时从行存中读取
                     MemSQL   事务号 时间点        全局TSO         -        -     全量 数据       链式
                                                                                            读  取  读  时  已  提  交
                                                        发送日志&                               的最新版本, 数据
                       TiDB   事务号 时间点        全局TSO      确认最新版   日志回放&格    全量 日志       链式    缺  失  时  等  待  数  据
                                                                  式转换
                                                          本号
                                                                                            完成同步
                      Spanner  事务号 时间点        原子钟       发送日志     日志回放     全量 日志       链式
                                                已同步日
                    F1 Lightning 日志号 Epoch 单机TSO        发送日志     日志回放     全量 日志       链式
                                                  志号
                                                已同步日                          日志/
                      IDAA    日志号 Epoch 单机TSO           发送日志     日志回放     全量          链式
                                                  志号                           数据
                                                已同步日                               TP链式, AP
                     BatchDB  日志号 Epoch 单机TSO           发送日志     日志回放     全量 日志             读  取  当  前  已  同  步
                                                  志号                                 单版本
                                                                                            版本
                                                已同步全
                 顺                                      发送日志& 日志回放&格
                 序    Vegito  事务号 Epoch 全局TSO    局最小    分割Epoch   式转换     部分 日志       块式
                                                  Epoch
                      MySQL                     已同步事                               TP链式, AP
                              事务号 时间点 单机TSO             发送数据     格式转换     全量 数据
                     Heatwave                     务号                                 单版本
                                                                                            读  取  读  时  已  同  步
                                                已同步日                               main单版本, 的版本, 该版本通
                     ByteHTAP 日志号 时间点 单机TSO             发送日志     日志回放     全量 日志
                                                  志号                                delta链式 过  合  并  m  a i n  和
                                                                                            delta得到
                                                                                            当创建会话时, 创
                                                                                            建新的数据快照,
                     HyPer (old) 事务号 时间点     单机TSO         -        -      -   -       -
                                                                                            并  读  取  该  快  照  下
                                                                                            的数据
                                                                          缓存
                 会    Aurora  日志号 时间点 单机TSO             发送日志     日志回放     部分,  日志     链式
                 话                              步日志号                      存储                读  取  缓  存  中  的  版
                                                                          全量                本, 数据缺失时从
                                                                          缓存                存  储  中  读  取  版  本
                                                缓存已同 发送日志& 日志回放&缓 部分,              缓存链式, 存  一致的快照
                      PolarDB  日志号 时间点 单机TSO                                   日志
                                                步日志号    刷脏控制     存版本对齐 存储           储单版本
                                                                          全量

                             [9]
                    Greenplum 作为分布式的行列混存数据库, 只有在分布式事务中才需要设置全局的事务号, 对于仅在本地执
                 行的事务, 则由节点自行维护版本, 不需要全局统一. 在开始分布式事务时, Greenplum                    的主节点首先对所有节点
   379   380   381   382   383   384   385   386   387   388   389