云原生数据库具有开箱即用、弹性伸缩、按需付费等优势,是目前学术界和工业界的研究热点.当前,云原生数据库仅支持“一写多读”,即读写事务集中在单一的读写节点,只读事务分散到多个只读节点.将读写事务集中在单一的读写节点,制约了系统的读写事务处理能力,难以满足读写密集型业务需求.为此,提出D3C(deterministic concurrency control cloud-native database)架构,通过设计基于确定性并发控制的云原生数据库事务处理机制来突破一写多读的限制,支持多个读写节点并发执行读写事务.D3C将事务分拆为子事务,并根据预先确定的全局顺序在各节点独立执行这些子事务,以满足多个读写节点上事务执行的可串行化.此外,提出基于多版本机制的异步批量数据持久化等机制以保证事务处理的性能,并提出基于一致性点的故障恢复机制以实现高可用.实验结果表明,D3C在满足云原生数据库关键需求的同时,在写密集场景下能够达到一写多读性能的5.1倍.
垂直数据分区技术从逻辑上将满足一定语义条件的数据库表属性存放在同一个物理块中,进而降低数据访问成本,提高查询效率.数据库查询负载中的每条查询通常只与数据库表中的部分属性有关,因此只需使用数据库表的某个属性子集便可以得到准确的查询结果.合理的垂直数据分区方式可以使大多数查询负载不需要扫描完整数据库就可以完成查询任务,从而达到减少数据访问量,提高查询处理效率的目的.传统的数据库垂直分区方法主要基于专家设置的启发式规则,分区策略粒度较粗,且不能根据负载的特征进行有针对性的分区优化.同时,当负载规模较大或者属性个数较多时,现有垂直分区方法执行时间过长,尤其无法满足数据库在线实时调优的性能需求.为此,提出在线环境下基于谱聚类的垂直数据分区方法(spectral clustering based vertical partitioning,SCVP),采用分阶段求解的思想,减少算法时间复杂度,加快分区执行速度.首先通过增加约束条件缩小解空间(即根据谱聚类生成初始分区),然后对解空间设计算法进行精细的搜索(即采用频繁项集和贪心搜索相结合的策略对初始分区进行优化).为了进一步提升SCVP在高维属性下的性能,提出了SCVP的改进版本SCVP-R(spectral clustering based vertical partitioning redesign).SCVP-R通过引入同域竞争机制、双败淘汰机制和循环机制,对SCVP在分区优化过程中的合并方案进行了进一步优化.在不同数据集上的实验结果表明,相比于目前最好的垂直分区方法,SCVP和SCVP-R有着更快的执行时间和更好的性能表现.
暂无评论