2025, 36(3):1-25. DOI: 10.13328/j.cnki.jos.007276
摘要:云原生数据库基于云基础设施提供高可用、可弹性伸缩的数据管理, 近年来得到了快速发展. 区块链作为一种透明、防篡改、可追溯的数据库系统, 其中区块链分片是对区块链系统进行扩容的最直接且最有潜力的方案, 利用云基础设施的弹性伸缩特点可以实现更灵活的扩缩容. 首先总结当前区块链分片解决的3个关键技术问题: 节点划分的安全性、高效链上数据分片以及跨片交易处理, 分别梳理这3个问题的研究现状, 对每个问题下相应的方案进行介绍和对比, 也讨论了将这些方案运用在云原生环境下面临的新挑战. 随后, 围绕这3个维度, 从对区块链系统整体影响的角度, 对所有方案进行全面的分析和对比. 最后, 分析区块链分片技术发展趋势, 指出几个值得进一步探索的研究方向.
2025, 36(3):1-21. DOI: 10.13328/j.cnki.jos.007277
摘要:时间序列数据在工业制造、气象、电力、车辆等领域都有着广泛的应用, 促进了时间序列数据库管理系统的发展. 越来越多的数据库系统向云端迁移, 端边云协同的架构也愈发常见, 所需要处理的数据规模愈加庞大. 在端边云协同、海量序列等场景中, 由于同步周期短、数据刷盘频繁等原因, 会产生大量的短时间序列, 给数据库系统带来新的挑战. 有效的数据管理与压缩方法能显著提高存储性能, 使得数据库系统足以胜任存储海量序列的重任. Apache TsFile是一个专为时序场景设计的列式存储文件格式, 在Apache IoTDB等数据库管理系统中发挥重要作用. 阐述了Apache TsFile中应对大量短时间序列场景所使用的分组压缩及合并方法, 特别是面向工业物联网等序列数量庞大的应用场景. 该分组压缩方法充分考虑了短时间序列场景中的数据特征, 通过对设备分组的方法提高元数据利用率, 降低文件索引大小, 减少短时间序列并显著提高压缩效果. 经过真实世界数据集的验证, 分组方法在压缩效果、读取、写入、文件合并等多个方面均有显著提升, 能更好地管理短时间序列场景下的TsFile文件.
2025, 36(3):1-20. DOI: 10.13328/j.cnki.jos.007278
摘要:近年来, 随着软硬件的发展, 数据库上云已经成为了新兴发展趋势, 能够降低中小型企业和个人用户的数据库运维成本. 进一步地, 云数据库的发展带来了庞大的运维市场需求, 研究者们提出了诸多数据库自调优技术来支持数据库旋钮自动优化. 为了提高调优效率, 现有技术从仅关注调优问题本身, 到开始关注如何复用历史经验来为当前数据库实例找到最佳参数配置. 然而, 随着云数据库的发展, 用户逐渐提高了对隐私保护的要求, 期望在拥有高效数据存取效率的同时避免隐私泄露. 现有方法并未考虑到保护用户的历史调优经验隐私, 可能会使得用户负载特征被感知, 带来经济损失. 详细分析了云数据库调优任务的特点, 有机结合服务端和用户端, 提出了一种基于联邦学习的云数据库旋钮调优技术. 首先, 为了解决联邦学习中数据异构的问题, 提出了基于元特征匹配的经验筛选方法提前将数据分布差异较大的历史经验剔除, 以提高联邦学习的效率. 为了实现保护用户隐私, 结合云数据库服务特性, 提出了以节点端为训练中心的联邦贝叶斯调优算法, 通过随机傅里叶特征来完成保证调优经验不失真的前提下保护用户隐私. 在多个公开 benchmark 上的结果表明, 方法可以达到与现有调优方法相当的调优结果, 并且由于复用了历史经验, 可以大大提高调优效率.
印钰杰,史浩洋,范自豪,周华辉,刘晟驰,胡卉芪,魏星,陈河堆,屠要峰,蔡鹏,周烜
2025, 36(3):1-19. DOI: 10.13328/j.cnki.jos.007279
摘要:云原生数据库的主流设计采用一主多从架构, 集群中从节点可以分担主节点的只读请求, 写请求由主节点处理. 在此基础上, 为了进一步满足大规模交易扩展的需求, 一些云数据库尝试实现多写事务扩展. 多写扩展的一种实现路径是在计算节点间实现共享缓存, 支持跨节点的数据访问. 在基于共享缓存的数据库系统中, 跨节点远程访问的开销远大于本地访问, 因此缓存协议的设计是影响系统性能和可扩展性的关键因素. 对缓存协议提出了两个创新性改进, 并基于PostgreSQL实现了支持多写事务处理的共享缓存数据库PG-RAC. 一方面, PG-RAC提出一种新型的分布式链式路由策略, 将路由信息分散在各计算节点. 相比单点目录管理的路由策略, 事务平均延迟降低了约20%. 另一方面, 还改进了副本页失效机制, 将失效操作从事务路径分离, 减小了事务处理关键路径的延迟. 在此基础上, PG-RAC利用多版本并发控制的特性, 进一步提出推迟副本页失效时机, 有效提高了缓存利用率. TPC-C实验结果显示, 在配备4台计算节点的集群中, 吞吐率为PostgreSQL的近2倍, 为分布式数据库Citus的1.5倍.
2025, 36(3):1-14. DOI: 10.13328/j.cnki.jos.007280
摘要:云环境下的多租户数据库重要特性之一是可伸缩性, 然而大部分的弹性伸缩技术难以针对复杂变化的负载进行有效的伸缩决策. 若能提前预测负载变化, 则能够准确地调整资源供给. 鉴于此, 提出了基于内存负载预测的多租户数据库弹性伸缩方法, 包括一种组合负载预测模型和一种弹性伸缩策略. 组合负载预测模型融合了卷积神经网络、长短期记忆网络和门控循环单元的优势, 可以比较精确地预测数据库集群内存负载需求; 弹性伸缩策略基于需求预测结果, 调整虚拟机数目, 保证资源供应处于合理范围. 与现有方法对比, 所提出的模型预测误差降低了8.7%–21.8%, 预测拟合度提高了4.6%. 在此基础上, 改进了贝叶斯优化算法, 用于本模型超参数调优, 解决了贝叶斯优化在离散解、连续解的组合域中效果较差的问题, 误差指标值降低了20%以上, 拟合度提高了1.04%. 实验结果表明, 与Kubernetes中应用最广泛的伸缩策略相比, 所提出的弹性伸缩方法避免了弹性伸缩的滞后性与资源浪费, 响应时间降低了8.12%, 延迟降低了9.56%.
2025, 36(3):1-27. DOI: 10.13328/j.cnki.jos.007281
摘要:云原生数据库具有开箱即用、弹性伸缩、按需付费等优势, 是目前学术界和工业界的研究热点. 当前, 云原生数据库仅支持“一写多读”, 即读写事务集中在单一的读写节点, 只读事务分散到多个只读节点. 将读写事务集中在单一的读写节点, 制约了系统的读写事务处理能力, 难以满足读写密集型业务需求. 为此, 提出D3C (deterministic concurrency control cloud-native database)架构, 通过设计基于确定性并发控制的云原生数据库事务处理机制来突破一写多读的限制, 支持多个读写节点并发执行读写事务. D3C将事务分拆为子事务, 并根据预先确定的全局顺序在各节点独立执行这些子事务, 以满足多个读写节点上事务执行的可串行化. 此外, 提出基于多版本机制的异步批量数据持久化等机制以保证事务处理的性能, 并提出基于一致性点的故障恢复机制以实现高可用. 实验结果表明, D3C在满足云原生数据库关键需求的同时, 在写密集场景下能够达到一写多读性能的5.1倍.
2025, 36(3):1-18. DOI: 10.13328/j.cnki.jos.007282
摘要:数据库是计算机服务中的重要基础组件, 然而其运行中可能出现性能异常, 影响业务服务质量. 如何对数据库产生的性能异常进行诊断成为工业界与学术界的热点问题. 近年来, 一系列自动化的数据库异常诊断方法被相继提出, 它们通过分析数据库运行状态, 对数据库整体的异常类型进行判断. 但随着数据规模的不断扩大, 分布式数据库正成为在业界中愈受欢迎的重要解决方案. 在分布式数据库中, 数据库整体由多个服务器节点共同组成. 现有的异常诊断方法难以有效地定位节点异常, 无法识别在多节点上发生的复合异常, 不能感知节点间复杂的性能影响关系, 欠缺有效的诊断能力. 针对上述问题, 提出了一种面向分布式数据库的复合异常诊断的方法: DistDiagnosis. 该方法采用复合异常图对分布式数据库的异常状态进行建模, 在表示各节点异常的同时有效地捕获节点间的相关性. DistDiagnosis提出了节点相关性感知的根因异常排序方法, 根据节点对数据库整体的影响力有效地定位根因异常. 在国产分布式数据库OceanBase上构建了不同场景的异常测试案例. 实验结果表明, 该方法优于其他先进的对比方法, 异常诊断的AC@1、AC@3、AC@5最高达到0.97、0.98和0.98, 在各诊断场景中相较于次优方法最多提升了5.20%、5.45%和4.46%.
2025, 36(3):1-23. DOI: 10.13328/j.cnki.jos.007283
摘要:联合多方数据库的安全计算可以在保护数据隐私的情况下, 对多个数据库的私有数据进行联合查询或联合建模. 这样的联合体通常是一个松散的组织, 各参与的数据库可以随时离线, 然而现有多方安全计算系统通常采用秘密共享等隐私计算方案, 需要参与者保持在线状态, 导致系统的可用性较差. 此外, 现有系统对外提供服务时无法预知用户的数量以及请求速度, 如果将系统部署在私有集群或者租用云计算平台的虚拟机, 面对爆发式请求时系统延迟增大, 在请求较少时又造成资源浪费, 表现出较差的可扩展性. 随着云计算技术的发展, 无服务器计算(serverless computing)作为一种新的云原生部署范式出现, 具有良好的弹性资源伸缩能力. 在该工作中, 提出了基于无服务器计算环境的系统架构和间接通信方案, 实现了一套高可扩展、高可用的多方数据库安全计算系统, 可以容忍数据库节点掉线, 并且在用户请求流量发生变化时自动伸缩系统资源. 基于阿里云和OceanBase数据库实现了系统原型并进行了充分的实验对比, 结果显示该系统在低频查询、横向建模等任务上, 在计算成本、系统性能和可扩展性方面优于现有系统, 最高能够节省78%的计算成本、提升系统性能1.6倍, 同时也分析了本系统对于复杂查询、纵向建模等任务存在的不足.