发布/订阅系统中历史数据存储服务的研究与实现

来源 :东南大学 | 被引量 : 0次 | 上传用户:xiaoyaozhu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
发布/订阅(Publish/Subscribe)通信泛型由于具有时空松耦合的特点,适用于大规模分布式计算环境,近年来得到了广泛的关注。时空松耦合包含时间和空间的松耦合。其中,空间的松耦合是指数据的发布者无需关心被何种订阅者订阅,订阅者只接收感兴趣的数据,而不需要知道接收的消息来源于何种发布者;时间的松耦合是指发布者/订阅者不需要同时参与交互过程,订阅者没有在线时,发布者也可以发布数据,在数据的发布者离线时,订阅者仍然可以获取到数据。发布/订阅系统是支持分布式系统中各个参与者以发布/订阅的方式进行交互的中间件系统。为了支持时间的松耦合,发布/订阅系统需要具备历史数据的存储功能,保证订阅者可在线获取系统生命周期中所有发布的数据。目前发布/订阅系统中历史数据存储的研究主要采用将部分历史数据暂存在系统中的方式,永久存储所有历史数据的相关工作中,大多采用静态的存储策略,存储节点容易成为热点,负载均衡性较差。针对静态存储策略所存在的问题,本文设计了一种新的历史数据存储方案。该方案将系统中主题的元数据和数据分离存储。主题的元数据服务器采用分布式架构,客户端通过Chord环算法定位元数据服务器。为了避免单一代理存储容量的限制,同一主题的数据采取分块存储方式,数据块分布存放在多个节点中。本文还提出了动态的数据块划分算法,在主题发布数据速率不同的情况下依然能够保持合适的分块大小。针对发布/订阅系统中数据交互的特性,主题数据的存储节点通过建立订阅获取数据,本文进一步提出了基于节点存储适应值的存储节点选择算法,降低数据存储对系统网络资源的使用。为了提高文件块内数据定位速率,在数据块存储的过程中每隔一段长度生成“关键帧”并存储在文件头的索引中,读取操作根据索引快速定位数据。此外,本文采用副本策略应对节点失效,其中主题元数据采用链式副本,主题副本存储位置由元数据代理指定。为了降低节点暂时失效对系统的影响,系统实际存储的副本数多于指定副本数,当系统副本数低于指定副本数时再进行恢复。本文在所提出的历史数据存储方案的基础之上,设计和实现了历史数据存储服务原型系统。通过原型系统实验以及仿真实验与静态存储策略进行对比评估。实验结果表明:相比静态策略,本文的历史数据存储服务具有良好的访问效率以及负载均衡特性。
其他文献
随着数字广播技术的飞速发展,因特网的广泛普及,移动终端的逐渐成熟,人们越来越离不开网络所带来的各种便利的服务。社会的发展,人口的聚集,“社区”这个概念日益显现,每个“
本文在对GPRS-Internet网络和计算机测控技术进行充分研究的基础上,设计实现了保定市城市路灯远程监控系统的监控中心计算机软件。该系统由监控中心计算机、GPRS-Internet网
随着互联网走入我国的千家万户以及移动互联网井喷式的发展,我国的信息社会经历了飞速的发展。同时,网络生活的不断丰富,越来越多的网络流行语从“线上”走入到人们的“线下
面向方面编程(AOP)技术提供了一种新型的编程范式,解决了传统编程范式中难以模块化横切关注点的问题。为了利用AOP的技术优势改善现有的遗产系统,可以对遗产代码进行方面(aspec
数字化图像作为多媒体信息的一个重要组成部分,尤其以生动的形象、易于理解的表现形式,使之成为在商业、教育、科技等多方面广泛应用的媒体形式之一。随着网络中图像信息的日
移动Ad Hoc网络是一组带有无线收发装置的移动终端(节点)组成的一个多跳临时性自治系统。Ad Hoc网络中无需设置任何中心控制节点,所有节点地位平等,具有很强的抗破坏性。Ad H
随着计算机和网络技术的不断发展,船舶机舱自动化技术也在迅速发展。传统基于局域网的,C/S结构的机舱自动化系统已显得有些不太适应发展的需求,船岸一体的,可供远程访问的机舱自
需求分析是企业信息化工作的重要组成部分,需求分析的核心问题是如何正确地将业务需求转化为系统要求,分析模式是解决该问题的一种非常重要的手段。论文提出了面向管理支撑系统(MSS)的一种系统需求分析模式(a pattern of system requirements analysis inMSS,简称PSRAM),并将其应用到电信企业的ERP系统规划中。论文首先阐述了PSRAM的研究背景和理论依据,并
随着计算机以及通信技术的发展,图像处理被广泛应用于各个领域。伴随着大规模图像数据库的产生,传统的信息管理方式已经不能满足实际的需求。为了便于图像的检索和识别,基于内容
一方面,传统的操作系统花费大量的CPU时间来执行任务、进行任务管理、进程间通信以及其它相关的操作。另一方面,任何在实时操作系统上运行的软件应用程序都会导致代码量的增