毕业设计开题
Comment研究背景 + 意义,附参考文献 > 600
中国计算机学会数据库专委会在《“十四五”数据库发展趋势与挑战报告》中指出分布式数据库是未来数据库系统发展的重要方向。据 IDC 调研,超过 90% 的企业认可分布式数据库的部署效果。分布式数据库以其高性能、高可用、高扩展、高弹性为其主要优势。
openGauss 是国内热门的开源分布式数据库项目,脱胎于华为的 GaussDB 数据库,相比其他开源数据库而言,提供了面向多核架构的并发控制技术,针对了当前多核 NUMA 架构的趋势,可结合硬件优化提升系统整体性能。同时作为一个高可用分布式数据库,支持主备同步、异步、级联的部署模式,提供基于 Paxos 分布式一致性协议的日志复制和选主框架[1]。在开发过程中,引入许多成熟的技术,做到了极致性能、高可靠性、高安全性。在中国数据库排行中,长期位于前3。
在单机性能方面,openGauss 已经做了诸多优化,如 CBO 查询优化、LLVM 查询动态编译执行,以及各种基于 NUMA 硬件架构的优化。但作为分布式高可用数据库,往往为了副本一致性,增加了通讯开销与等待时间,使得跨节点的性能较为低下。本研究基于 openGauss 现有架构,围绕其高可用分布式一致性协议,对其实现方法、执行流程中的各环节进行考察,在保持副本一致性的同时,通过协议、架构的优化降低其开销。
国产数据库作为基础软件,产业化道路时间短,基础薄弱,尚未实现市场收益与自身投入的良性循环;同时受制于国际厂商垄断:Oracle 形成的事实上的垄断。且作为数据库产品,用户对其产品成熟度、品牌影响力与信心更加敏感,因为数据的可靠性是用户最看重的。阿里的 OceanBase 在内部被采用,到 TPCC 测试登顶也是一个漫长的过程。因此,对分布式数据库的研究,切合了当下国产基础软件研发的需要。
国内外研究现状 > 800
国产原生分布式数据库中,由阿里自主从0开始研发的 OceanBase 是领导者,在 TPCC 和 TPCH 测试上都刷新了世界纪录,并且已经在商用领域得到广泛使用。其基于 Paxos 协议实现高可用三地三中心五副本容灾,同时支持高扩展与 HTAP 混合负载。PingCAP 自主设计研发的开源分布式关系型数据库 TiDB 则坚持开源作为创新引擎,通过全球社区协作开发,为企业级用户提供不断迭代和演进的产品服务。腾讯云 TDSQL 历史较久,对内服务微信支付、腾讯会议、音乐等业务。其提供事务型、云原生、分析型多种产品架构,在国家级别政务民生、金融核心系统上支撑关键业务,支持了第七次全国人口普查全面电子化。其技术创新领先,在11个权威期刊发布论文;同时持续回馈开源社区,多位腾讯工程师凭借对 MySQL 8.0 版本的贡献荣获 MySQL 社区开源贡献大奖。
在分布式一致性协议方面,openGauss 自身提出了 DCF 分布式一致性框架,基于 Paxos 算法,实现数据同步强一致。其算法结合了 Raft 的主机选举方法,同时灵活地增加了 Logger 角色,只进行日志复制;另外实现了单级级联备,主备间也可以以异步方式进行同步,降低了对主机的压力。但级联备机只能从备机同步,意味着如果备机需要全量 build,级联备也必须重新全量 build,无论其副本是否与主机一致。同时不支持多级级联。
国内其他的分布式数据库中,以 TiKV 为例,基于 Raft 算法实现了线性一致性的分布式系统。客户端将请求发送给 Leader,Leader 再通过 Raft 将请求复制到主备机的 Log,最终 Commit。各 TiKV 自行应用 Log 到 DB,其状态不能同时一致,若此时发生主机切换,有可能违反线性一致性;若依次全部应用,则无法并发操作状态机,性能较差。于是 TiKV 社区提出了两种优化 ReadIndex 与 LeaseRead, 在保证线性一致性的同时,大幅提升了系统性能。
国际主流的开源分布式数据库中,以 MariaDB Galera Cluster 为例,它采用多主同步复制,既保持了整个集群的数据一致性,也允许在集群的所有节点上并行执行事务,提高读写性能。但传统同步复制通常采用两阶段提交(2PC)或分布式锁实现,随着节点数量增加,事务冲突和死锁概率增加。为解决这一问题,Galera 的同步复制采用了组通信、写集、数据库状态机、事务重排序等技术,称之为“虚拟同步复制”,使其性能目标得以实现。
主要研究或解决的问题和拟采用的方法
主要研究:openGauss 分布式一致性协议的事务、备份性能分析及调优。
拟采用的方法:
性能度量方面,通过 perf 对函数执行时间进行分析;监视主备机的各项性能负载;编写测试,对固定 workload 计算时间开销。
协议优化方面,尝试对日志同步实现 ReadIndex 优化,甚至 LeaseRead 优化;同时实现多级联备机特性。保证仍满足线性一致性。
工作进度计划 (每2周)
1、实验环境搭建,阅读项目文档及代码
2、考察分布式一致性框架,梳理完整协议工作流程
3、确定测试的数据库工作负载,形成测试代码
4、对数据库进行初步调整,并测试,形成初步优化方向
5、根据优化方向,调整协议机制,形成新的工作流程
6、将调整后的机制实现为代码
7、测试、再调整,形成最终结果
8、整理资料与总结分析,撰写毕业论文
这歌一股霉味?
问题是改进的需求。不优化是哪里?
面向openGauss数据库的副本一致性协议优化技术研究
评测 性能 有问题
设计度量,数据集,方法,通过xx技术发现瓶颈
针对瓶颈发现问题,然后原理,然后优化
以国产开源openGauss分布式数据库为研究对象。在前期的了解过程中,观察到其副本一致性协议中,将Log异步复制到各个备机,再由备机重放到 DB 并持久化的过程,若在状态不一致时发生主机切换则违反线性一致性;若保证按序全部应用,则协议效率降低。本研究借鉴 TiKV 对一致性协议的优化,在保持副本一致性的同时,优化 openGauss 数据库的主备同步效率。
以国产开源openGauss分布式数据库为研究对象。在前期的了解过程中,观察到其副本一致性协议中,将Log异步复制到各个备机,再由备机重放到 DB 并持久化的过程,若在状态不一致时发生主机切换则违反线性一致性;若保证按序全部应用,则协议效率降低。本研究的主题是通过优化 openGauss 数据库的副本一致性协议,在保证一致性的同时,加速主备同步,进而提升事务执行的效率。