论文部分内容阅读
随着互联网成为无处不在的计算和存储服务平台,如何把数据源产生的数据快速准确地分发至具有不同兴趣的大规模用户群体是当前亟需解决的关键技术问题。基于内容的发布/订阅因其松耦合的通讯模式适用于大规模分布式系统且为用户提供了强大的语义表达能力,正成为实现数据分发的主要模式。近年来,基于内容的发布/订阅模式已被广泛应用于地震监控、灾难天气预报、股票更新、社交网络、流媒体以及在线网络游戏等应急事件响应系统中。当前应急事件响应系统呈现出以下特征。一是实时数据大规模产生、高速到达且结构复杂,这要求所设计的基于内容的发布/订阅方法具有高扩展能力以保证数据快速到达感兴趣的用户。二是实时数据的到达速率可能在短时间内急剧变化,这要求所设计的基于内容的发布/订阅方法能够根据系统工作负载弹性地调整服务能力以保证低分发延迟和高性价比。然而,已有的基于内容的发布/订阅系统难以同时满足可扩展性和弹性的要求。为了实现基于内容的弹性可扩展发布/订阅服务,当前面临的技术挑战主要包括以下三个方面。首先,在基于内容的发布/订阅系统中,事件匹配技术能够有效地过滤出对事件不感兴趣的订阅者,从而降低数据分发延迟。然而当前复杂订阅模式的事件匹配吞吐率会随着订阅规模的增长而显著下降;动态网络环境下面向高维数据的事件匹配吞吐率较低,且事件丢失概率较高。其次,在基于内容的发布/订阅系统中,高效的事件路由技术是保证数据分发实时性的重要因素。然而,大数据块分发中上传带宽存在性能瓶颈。再次,在基于内容的发布/订阅系统中,高效的事件全排序技术能够快速检测出相互冲突的事件,从而降低数据分发延迟。然而已有大规模事件全排序方法的全排序效率较低,导致较高的数据分发延迟。为此,本文围绕实现基于内容的弹性可扩展发布/订阅服务这一目标,分别针对基于内容的发布/订阅模式中的事件匹配、事件路由和事件全排序技术展开深入研究。复杂订阅模式的事件匹配效率受订阅规模的影响较大,匹配吞吐率会随着订阅规模的增长而显著下降。为此,本文研究提出了一种面向复杂订阅模式的通用可扩展弹性的事件匹配方法GSEM,以适应订阅规模的快速增长,有效保证匹配吞吐率。GSEM在云计算环境中采用一种两跳查询拓扑作为事件匹配的通用框架。利用该框架的“分派-汇聚”机制,多种复杂模式的订阅能够被转换成同一种通用订阅模式以简化事件匹配过程。通过一种层次式内容空间划分技术,GSEM将大规模偏斜订阅分派到多个规模均衡的簇中,各个簇利用一致性哈希方法被均匀地映射到匹配节点中以实现并行事件匹配。为了自适应工作负载的波动,GSEM采用一种等待延迟感知的匹配节点供应算法弹性地调整匹配吞吐率以保证较高性价比。基于cloudstack平台的原型系统显示,gsem随着服务节点数目和分割粒度的增长而具有线性增长的匹配吞吐率,能够以较小的延迟和通信开销而弹性地调整匹配吞吐率并容忍大规模节点失效。相对于已有方法,gsem的匹配节点具有更均衡的工作负载,且在多种不同参数设置情况下都具有更高的匹配吞吐率。动态网络环境下的高维数据分发存在明显的事件匹配吞吐率较低、事件丢失概率较大等问题,本文提出了一种面向高维数据的可扩展可靠事件匹配方法——srem。srem在云计算环境中采用一种基于多层随机图的覆盖网skipcloud维护节点之间的邻居关系。skipcloud中各层节点间的前缀关系能够支持高效路由,层内节点间周期性交换邻居列表以保证网络拓扑的可靠性。通过一种混合式内容空间划分算法,srem将大规模高维度的偏斜订阅映射到多个子空间中从而在匹配可靠性和内存开销之间充分权衡,每个子空间采用层次式内容空间划分技术以保证高匹配吞吐率。在各种不同参数配置情况下,基于cloudstack平台的原型系统显示在skipcloud中路由事件的通信开销相比chord覆盖网降低了60%,srem的事件匹配吞吐率相比bluedove最少提高3.7倍,最多提高40.4倍。另外,srem在大量节点失效时能够在数十秒内将事件失效率降低至0。针对大数据块分发中存在的上传带宽瓶颈问题,本文提出了一种面向大数据块的可扩展弹性事件路由方法——seer。seer在云计算环境中采用一种混合式双层拓扑以保证事件匹配服务和事件路由服务能够并行执行。其中上层拓扑采用gsem以实现通用可扩展弹性的事件匹配,同时多个辅助节点被组织成树状拓扑以保证大块事件路由的实时性。下层拓扑中,订阅者被划分成多个簇,每个簇由一个辅助节点管理。通过一种基于辅助节点的内容分发算法,辅助节点同时扮演提供者和协调者两种角色以充分开发系统的上传能力。作为提供者,辅助节点主动将数据块转发给感兴趣的订阅节点;作为协调者,辅助节点通过获取订阅者的下载完成信息以指导不同订阅者相互交换已接收到的数据块。为了自适应系统工作负载的波动,seer采用一种数据量感知的辅助节点供应技术以保证低分发延迟和高性价比。基于cloudstack平台的原型系统显示,seer在分发大数据块时能够随服务节点数目的增长而线性地降低数据分发完成时间,能够根据待分发数据量的变化在数十秒内弹性地调整系统上传能力,能够在大规模节点频繁波动或失效情况下仍然保证可靠的数据分发。与已有的最新方法相比,seer的混合式双层拓扑具有更好的可扩展能力,辅助节点之间具有更好的负载均衡能力,且在不同参数配置情况下都具有更短的分发完成时间。针对大规模事件全排序存在的全排序效率较低的问题,本文提出了一种面向高速到达事件的可扩展弹性事件全排序方法——seto。seto在云计算环境中采用一种双层拓扑结构以保证事件匹配服务和事件全排序服务能够并行执行。其中上层拓扑采用GSEM组织服务节点以实现高效的事件匹配,下层拓扑采用树状覆盖网组织排序节点以保证事件路由的实时性。在每个排序节点上,SETO采用一种前序图构建技术以保证较低的事件分发延迟。在该前序图构建技术中,服务节点以较低的计算开销构建并消解冲突事件之间的前序关系,从而使非冲突事件能够并行提交至相应的订阅节点。利用一种提交延迟感知的排序节点供应技术,SETO能够弹性地调整服务节点规模以自适应工作负载的波动。基于CloudStack平台的原型系统显示,在事件高速到达时,SETO能够在不同的工作负载环境下保持较高的事件提交并发度,能够随服务节点数目的增长而线性地降低事件分发延迟,能够在数十秒内弹性地调整事件提交吞吐率以自适应工作负载的波动。与基于集中式全排序方法和基于树状拓扑的全排序方法相比,SETO在多种不同参数设置情况下都具有更低的事件分发延迟。