协同内核KVSmith的设计与实现

协同内核KVSmith的设计与实现

论文摘要

计算与通信技术的高速发展加速了互联网应用在人们日常生活中的普及,而在数据中心内构建高效可靠的数据中心应用系统是支持高质量互联网应用的重要保障。数据中心中主要包括三类软件实体:数据中心应用、协同服务、协同内核。多个数据中心应用共同为用户提供服务,它们之间必须进行有效的合作。协同服务为数据中心应用的协调与合作提供了有效支持。协同服务可以有很多种形式,而协同内核的主要目标是用来支撑这些不同形式的协同服务的构建。协同内核作为一个通用模块,提供了一组用于构建协同服务的接口。基于协同内核,我们可以高效地构建各种不同的协同服务。协同内核是构建数据中心应用的一个关键元素,我们希望设计出一个同时满足数据一致性,系统可用性,以及容忍网络分隔的协同内核。但是理论分析表明上述三个性质不能同时满足。对于协同内核而言,为了确保协同的正确完成,数据的一致性必须被满足。而同时网络的分隔难以避免,系统必须对网络分隔具有充分的容忍度。因此对协同内核而言,在必要的时候牺牲系统的可用性是一个必然的选择。这样,构建协同内核的主要挑战在于如何在同时满足数据一致性和网络分隔容忍性的前提下,尽量保证协同内核的可用性。针对上述问题,本文着重研究协同内核构建技术。具体而言,本文的主要贡献包括:首先,本文给出协同内核KVSmith的设计与优化。KVSmith的外在表现形式是一个键值存储服务,它的主要原理是基于多台机器之间的容错协商,保证存储数据的一致性和整个系统的网络分隔容忍性,由此完成协同内核的功能。在上述设计的基础上,KVSmith采用三个优化技术提升系统的性能:并行协商优化、选主优化和本地读优化。这些优化技术是提升KVSmith性能的关键。其次,协同内核的主要目标是支撑高效构建不同的协同服务。本文选择了两个典型的协同服务-锁服务和选主服务-作为应用案例,讨论了如何基于KVSmith协同内核来构建具体的协同服务。基于KVSmith提供的键值数据模型的接口,本文给出了锁服务和选主服务的具体实现。最后,本文实现了KVSmith原型系统,并且对KVSmith的性能进行了全面的实验评估。实验验证的结果表明,在不同类型不同数量的系统负载下,KVSmith均具有较好的性能,并能较快地从节点失效中恢复。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪言
  • 1.1 协同内核
  • 1.2 构建协同内核的挑战
  • 1.3 本文贡献
  • 1.4 论文组织
  • 第二章 相关工作
  • 2.1 协同服务与协同内核
  • 2.1.1 Chubby
  • 2.1.2 Zookeeper
  • 2.2 协同内核优化技术
  • 2.2.1 Parallel-Paxos优化
  • 2.2.2 选主优化
  • 2.2.3 本地读优化
  • 第三章 KVSmith设计概览
  • 3.1 系统结构
  • 3.2 KVSmith的设计与优化
  • 3.2.1 KVSmith基础设计
  • 3.2.2 KVSmith优化技术
  • 第四章 KVSmith基础设计
  • 4.1 KVSmith主要构件
  • 4.1.1 配置器
  • 4.1.2 副本日志
  • 4.1.3 内存表
  • 4.1.4 系统构件
  • 4.2 基于Multi-Paxos算法协商副本日志记录
  • 4.2.1 Paxos算法
  • 4.2.2 Multi-Paxos算法
  • 4.2.3 基于Multi-Paxos算法协商副本日志记录
  • 4.3 主从节点运作过程
  • 4.3.1 主节点稳定在主节点的运作过程
  • 4.3.2 主节点降级为从节点的运作过程
  • 4.3.3 从节点稳定在从节点的运作过程
  • 4.3.4 从节点提升为主节点的运作过程
  • 第五章 KVSmith优化技术
  • 5.1 Parallel-Paxos优化
  • 5.1.1 Parallel-Paxos优化目标
  • 5.1.2 Parallel-Paxos优化原理
  • 5.1.3 Parallel-Paxos优化实现
  • 5.2 选主优化
  • 5.2.1 选主优化目标
  • 5.2.2 选主优化原理
  • 5.2.3 选主优化实现
  • 5.3 本地读优化
  • 5.3.1 本地读优化目标
  • 5.3.2 本地读优化原理
  • 5.3.3 本地读优化实现
  • 第六章 KVSmith应用案例分析
  • 6.1 典型协同服务
  • 6.2 基于KVSmith构建协同服务
  • 6.2.1 构建锁服务
  • 6.2.2 构建选主服务
  • 第七章 KVSmith实验评估
  • 7.1 实验环境配置
  • 7.2 实验设计
  • 7.2.1 考察负载对系统性能的影响
  • 7.2.2 考察读写请求比例对系统性能的影响
  • 7.2.3 考察负载对系统恢复能力的影响
  • 7.3 实验结果
  • 7.3.1 负载对系统性能的影响分析
  • 7.3.2 读写请求比例对系统性能的影响分析
  • 7.3.3 负载对系统恢复能力的影响分析
  • 第八章 总结与展望
  • 8.1 工作总结
  • 8.2 研究展望
  • 致谢
  • 简历与科研成果
  • 参考文献
  • 相关论文文献

    标签:;  ;  ;  ;  

    协同内核KVSmith的设计与实现
    下载Doc文档

    猜你喜欢