博士论文格式栏目提供最新博士论文格式格式、博士论文格式硕士论文范文。详情咨询QQ:1847080343(论文辅导)

2021全国优秀博士学位论文「案例分析+写作技巧」

日期:2021年03月24日 编辑:ad201107111759308692 作者:无忧论文网 点击次数:335
论文价格:免费 论文编号:lw202103201631031481 论文字数:6000 所属栏目:博士论文格式
论文地区:中国 论文语种:中文 论文用途:在职博士 On-the-job Ph.D.
故障问题时能够生效。例如亚马逊旗下的网络云服务(AWS)在 2019 年 8 月北弗吉尼亚的数据中心由于市电故障出现问题,同时亚马逊的备份措施没能成功保障该数据中心继续服务,结果导致部分亚马逊的弹性计算云(EC2)失效,损害了用户利益。其他使用较为广泛的分布式数据库系统,如 Cassandra[7],Hbase[8],Hadoop Distributed File System[9],Zookeeper[10]它们为了确保用户更好的使用体验,都经过了完整的单元测试、功能测试、性能测试等必要测试流程。尽管如此我们依旧能在其开发页面上发现很多由于各种各样软硬件故障所引起的 bug,其中还存在影响整个系统导致停止服务的灾难性故障[11]。

  因此对于分布式数据库系统[12][13],其架构的复杂性导致了软硬件故障的发生是无可避免的[14][15]。这需要专门针对故障问题的测试工作来验证其容错能力,提高分布式数据库系统的可靠性和鲁棒性。传统测试工作更加注重于分布式数据库系统的性能和功能测试,较少或没能够完备考虑到系统异常状态的正确处理和容错机制。为了能够完善分布式数据库系统对于故障问题的容错机制并及时发现故障问题发生时系统的薄弱点,在测试过程中需要主动引发实际应用过程中可能出现的各类故障问题,诸如网络中断、丢包,节点宕机[16][17]等等,验证分布式数据库系统是否能在故障情况下提供正常服务,而这也就是故障注入测试的意义。

  除此之外,研究表明[18]大部分分布式系统的故障问题都是通过多个事件以不同寻常的顺序发生导致系统逐渐转入不正常的运行状态,最后导致系统出现错误。分布式数据系统中事件组合情况非常繁多,过于庞大的状态空间导致遍历所有事件组合情况需要耗费测试人员大量时间和精力。因此在不影响测试效果的情况下有效减少事件组合数目也是故障注入测试值得考虑的问题。本文结合实际生产中的测试工作进行了相关故障注入测试工具的研究。

  1.2.   研究工作。

  分布式数据库系统的测试工作是繁重且持续性的,系统只要还有用户使用测试工作就不能停止,本文的研究工作就是为了更好地测试分布式数据库系统。对于系统的性能测试和功能测试往往都有固定的测试基准,这类模板可以大幅度减少测试工作量,但是故障注入测试目的是发现系统内部不易发现,潜在的复合型问题不能套用固定的测试方案,这需要测试人员对目标系统有非常深刻的理解,能够对系统的薄弱之处针对性地设计测试案例,验证系统的不足之处。相关测试案例编写需要根据系统的当前状态调整测试案例,这不仅耗费了大量测试人员的精力,更大幅度增加了测试过程所花费的时间。类似的测试工作更是依赖于测试人员编写的测试用例,如果测试人员对目标系统的了解不够全面,测试用例不能覆盖大部分系统薄弱点,即使通过测试也不能确保系统的可靠性。因此本文在深入研究了分布式系统中各种类型的故障问题分析和国内外现有的各类故障注入测试方法,并结合实际测试工作中遇到的问题设计了一个故障注入测试工具AFTest。它能够较全面的检查分布式数据库的容错性,减少测试工作量帮助测试人员更好地进行故障注入测试。本文主要的贡献在于:

  1. 轻量级的任务调度设计:同时支持手动提交测试案例和自动遍历已有情况下的事件组合情况。测试人员可以通过前端界面实时查询测试进度,历史记录以及被测试系统的当前状态。后端任务调度程序能够定时生成测试案例并根据案例生成执行脚本,然后分配指定的工作线程执行测试并记录相应日志信息和测试过程中系统状态变化。

  2. 实现了一个故障注入框架:通过编码模拟实现实际应用过程中常见的多种软硬件故障问题以及 Cedar 特有的系统操作。模块化故障注入框架,便于嵌入测试工具中使用。

  3. 自动生成测试案例:深度遍历所有故障组合事件,避免繁琐的测试案例编写,更高效地进行分布式数据库系统的故障注入测试。

  4. 减少事件组合空间冗余问题:根据测试案例中事件之间的特点,分析出导致相同测试结果的组合情况,避免测试冗余案例以及减少不必要事件发生顺序的重新排序,以此缩小事件组合空间加快测试速度。

  本文在开源的分布式数据库系统 Cedar 上实现了上述故障注入测试工具AFTest。在实际应用中 AFTest 能够有效减少测试耗费的时间,更加快速地发现故障问题以及目标系统 Cedar 中潜在的复合型 bug。希望本文能为开发分布式数据库系统测试工具的研究者提供经验和参考。

  【由于本篇文章为硕士论文,如需全文请点击底部下载全文链接】

  1.3 文章结构

  第二章 背景知识与相关工作

  2.1 基本概念

  2.1.1 容错性

  2.1.2 故障注入测试

  2.2 测试方法

  2.2.1 Chaos Engineering

  2.2.2 Jepsen

  2.3 测试案例的构建

  2.3.1 LDFI

  2.3.2 模型检查

  2.4 本章小结

  第三章 目标系统架构和设计

  3.1 Cedar 架构介绍

  3.2 高可用设计

  3.2.1 定时合并

  3.2.2 更新节点的容错机制

  3.3 故障问题

  3.4 本章小结

  第四章 测试任务调度

  4.1 架构与实现

  4.2 各组件功能设计与实现

  4.2.1 Tracker 功能与实现

  4.2.2 Worker 功能与实现

  4.2.3 Schedule 功能与实现

  4.2.4 Reporter 功能与实现

  4.3 本章小结

  第五章 故障注入框架

  5.1 功能需求

  5.2 架构设计与介绍

  5.3 模拟故障类型

  5.4 实验结果与分析

  5.5 本章小结

  第六章 消除冗余案例

  6.1 问题描述

  6.2 状态对称性

  6.3 事件独立性

  6.4 并行重排

  6.5 实验结果与分析

  6.6 本章小结

  第七章 总结

  分布式数据库系统的可扩展性能够通过大量廉价服务器提高性能并在多个地方部署节点降低用户访问的延迟,但也由于数据需要在多个节点中存储,事务操作涉及多个节点间一致性问题,相比集中式数据库分布式数据库系统的复杂性极大地上升。在实际应用过程中,分布式特性使得整个数据库系统无法避免故障问题的发生,即使理论上存在各类容错性协议保障分布式数据库系统在遭遇故障问题时能够及时恢复正常服务,但设计者不能够保证实际应用过程中容错机制的完备性和实现过程的正确性。因此为了提升分布式数据库系统的可靠性和正确性我们需要主动触发实际应用过程中可能发生的问题,通过故障注入测试验证数据库系统内部是否存在 bug。本文根据相关故障注入测试研究和实际测试经验,针对开源分布式数据库系统 Cedar 设计并实现了故障注入测试工具 AFTest。

  本文首先从故障注入测试的基本概念出发,介绍了容错机制是如何保障分布式数据库面对故障问题时能够采取补救措施,并分析了分布式数据库中出现频率较高的几类软硬件故障问题,强调了故障注入测试的必要性。接着介绍了国内外较为流行的故障注入测试方法 Chaos Engineering 和 Jepsen 以及两者的优缺点。

  除此之外,我们还介绍了构建故障注入测试案例的方法,主要分为随机式和启发式方法,并介绍了 LDFI 和模型检查这两种较为有代表性的案例构造方法。其次介绍 AFTest 所针对目标系统 Cedar 的整体架构以及 Cedar 内部为了提升可靠性和性能所制定的高可用机制。在分析了 Cedar 在实际应用过程中曾经出现的故障问题后针对这些问题进行测试能够更加完善 Cedar。

  然后本文提出了故障注入测试工具 AFTest 的整体架构和组成。主要分成三个部分,测试任务调度、故障注入框架以及消除冗余案例的方法。其中测试任务调度包含了 AFTest 是如何进行测试案例的生成,分配,运行以及收集相关测试日志和系统运行产生的信息。主体可以分为前端用户界面和后端具体功能实现部分,前者负责启停测试和查询测试进度,后者通过 Tracker、Schedule、Worker、Reporter 等组件实现具体测试流程。

  故障注入框架主要针对分布式数据库系统中常见问题和 Cedar 的特点提供模拟故障问题发生的功能。通过实验验证了故障注入框架能有效模拟产生各类故障问题,而且遍历所有故障事件组合能发现 Cedar 内部潜在的复合型问题。

  最后提出了如何消除完全遍历故障事件组合引起的冗余测试案例。根据系统的状态独立性,能够减少导致相同测试结果的冗余事件组合;分析故障事件之间的独立性能够发现部分事件发生先后顺序的改变对结果没有任何的影响,减少事件组合不必要的重新排序。并通过实验验证了 AFTest 相比 DFS 和随机式的方法能有效减少不必要的冗余案例且更快速地发现系统内部潜在的 bug。

  参考文献

  原文出处:沈靖. 分布式数据库容错性故障注入测试工具[D].华东师范大学,2020.

  二、2021全国优秀博士学位论文写作技巧

  1、如何找到质量好的数据来源

  常见的数据库有知网、万方、维普,我们可以在一站式下载网站上互助找到自己想要的文献或者论文。

  2、注意格式

  毕业论文的格式要求是非常严格的,很多毕业生在内容查重率上都合格了,论文却因为格式问题不过关。关于格式问题,学校会具体的给大家说。每个学校的要求不尽相同,多看一下学校往届的学姐或者学长就可以。

  3、先把提纲写好

  论文的写作次序应该是怎样的?大部分人都是最后才起标题、写导语、做目录。但小编给你们的建议是先把目录(提纲)写好。

优秀博士学位论文

优秀博士学位论文

  这样做的好处是,写目录的过程就是一个整理思路的过程,你可以在里面提出关键的假说,然后在实际行文中去验证。当然,这样写下来的目