面向高并发小包数据分布式存储系统的设计与实现
发布时间:2017-06-08 06:11
本文关键词:面向高并发小包数据分布式存储系统的设计与实现,,由笔耕文化传播整理发布。
【摘要】:近年来,由于物联网、基于大数据的推荐系统等概念的兴起,对大量高并发、海量小块数据的存储问题提出了新的挑战。本系统放弃了分布式系统中较常用的带有中心节点的结构设计,采用了一种基于Gossip协议的P2P对等节点的结构。中心节点式结构设计,由于单点故障、中心热点等问题的存在,对系统硬件的配置以及维护成本有较大要求。本文从数据分流、降低成本等角度考虑,围绕P2P结构,参考业内许多成熟的相关技术并在此基础上研究以及阐述了,在此结构下的节点同步机制、节点故障检测、数据分布策略、冗余副本策略,以及为了提高并发处理能力,进而研究了如何高效完成对消息的发送与分发、单机数据的存储与管理等问题。下面简要介绍本系统在实现过程中,对上述问题提出的解决方案及实现策略:(1)研究并实现节点之间如何通过Gossip协议进行通信,该协议以模拟病毒传染或者说流言传播的方式,帮助集群中各节点快速的完成状态同步,以低通信成本的方式达到最终的系统状态一致性。(2)通过研究学习Phi Accrual Failure Detector故障检测算法,设计如何通过为节点建立采样空间并以概率分布的理论建模的方式,来给出集群中节点故障的概率,而不是直接给出bool型的节点故障值,在检测中考虑,集群中各节点的网络情况以及机器处理性能等会影响心跳到达的因素,从而降低误判概率。(3)讨论设计数据分布的策略。避免了中心节点式结构中,读写取数据时需要先查中心节点再访问数据节点这种两步的操作方式,通过在本地直接计算关键字的Hash值,然后查找Hash环即可直接确定据所归属的节点。读写延迟小,并且降低了对集群的访问压力。(4)讨论设计了基于Reactor模型的处理引擎。通过将所有的线程通信、网络通信都设计成非阻塞的方式,来提高并发处理能力。另外可以根据系统硬件条件,配置运行网络IO程序的线程个数,充分发挥多核或多处理器的优势。(5)研究优化了单机数据的存储,使用诸如对数据文件横向切割,内存映射,充分利用磁盘顺序读写等技术手段来提高IO效率。
【关键词】:P2P 高并发 海量小数据 分布式存储
【学位授予单位】:电子科技大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP333
【目录】:
- 摘要5-6
- ABSTRACT6-10
- 第一章 绪论10-17
- 1.1 引言10-11
- 1.2 研究现状11-14
- 1.3 论文的研究内容与意义14-15
- 1.4 论文组织结构15-16
- 1.5 本章小结16-17
- 第二章 P2P分布式存储系统相关技术介绍17-25
- 2.1 Reactor事件驱动模型17
- 2.2 Gossip协议17-21
- 2.3 Phi Accural Failure Detector故障检测算法21-22
- 2.4 一致性Hash算法22-24
- 2.5 本章小结24-25
- 第三章 面向高并发小包数据分布式存储系统的总体结构设计25-32
- 3.1 系统结构设计25-27
- 3.2 服务器软件模块层次图27-29
- 3.3 系统数主要据流的处理过程设计29-31
- 3.3.1 客户端读写数据流程29-30
- 3.3.2 服务器端消息的收集和分发30-31
- 3.4 本章小结31-32
- 第四章 面向高并发小包数据分布式存储系统的具体实现32-67
- 4.1 Messaging Service统一消息处理模块32-38
- 4.1.1 Messaging Service模块总体结构32-33
- 4.1.2 Messaging Service模块关键类图33-35
- 4.1.3 模块主线程和LibEventBase子线程的通信设计35-36
- 4.1.4 TCP缓冲区的作用和设计36-38
- 4.2 Gossip节点同步模块实现38-43
- 4.2.1 节点属性版本号管理的设计38-40
- 4.2.2 Gossip协议报文实现40-42
- 4.2.3 Gossip协议交互时序图及其具体实现42-43
- 4.3 多线程库的封装43-47
- 4.3.1 线程体的数据结构设计43-45
- 4.3.2 创建线程时的执行流程45-46
- 4.3.3 子线程启动流程46-47
- 4.4 集群节点的相互感知47-51
- 4.4.1 心跳管理47-48
- 4.4.2 故障节点的检测48-51
- 4.5 客户端及一致性Hash模块的设计51-54
- 4.5.1 客户端模块51-53
- 4.5.2 一致性Hash模块设计53-54
- 4.6 数据副本模块54-62
- 4.6.1 数据副本策略54-55
- 4.6.2 数据副本模块实现55-57
- 4.6.3 异步计数服务的设计57-62
- 4.6.3.1 数据结构57-58
- 4.6.3.2 异步计数服务使用方式58-59
- 4.6.3.3 时间轮定时器59-62
- 4.7 数据IO管理器模块62-66
- 4.7.1 模块整体结构62-63
- 4.7.2 读数据流程63-64
- 4.7.3 数据IO管理器模块实现64-66
- 4.8 本章小结66-67
- 第五章 系统测试和分析67-78
- 5.1 实验环境67
- 5.2 网络模块性能测试67-70
- 5.2.1 压力测试67-69
- 5.2.2 模拟仿真69-70
- 5.3 Gossip协议模块测试70-73
- 5.4 一致性Hash及数据副本测试73-75
- 5.5 故障检测模块测试75-76
- 5.6 数据IO管理模块测试76-77
- 5.7 本章小结77-78
- 第六章 总结与展望78-81
- 6.1 总结78-79
- 6.2 下一步工作79-81
- 致谢81-82
- 参考文献82-85
【参考文献】
中国期刊全文数据库 前4条
1 陆婷;房俊;乔彦克;;基于HBase的交通流数据实时存储系统[J];计算机应用;2015年01期
2 陈东辉;曾乐;梁中军;肖卫青;;基于HBase的气象地面分钟数据分布式存储系统[J];计算机应用;2014年09期
3 许健;于鸿洋;;Linux下一种高性能定时器池的实现[J];电子技术应用;2012年12期
4 李如年;;基于RFID技术的物联网研究[J];中国电子科学研究院学报;2009年06期
中国硕士学位论文全文数据库 前2条
1 李玲;基于P2P的分布式通信网服务器的设计与实现[D];北京邮电大学;2011年
2 陈长瑶;Chord算法在对等网络中的应用研究[D];广东工业大学;2008年
本文关键词:面向高并发小包数据分布式存储系统的设计与实现,由笔耕文化传播整理发布。
本文编号:431625
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/431625.html