论文部分内容阅读
分布式互斥是分布式系统设计的关键问题,它保证了相互冲突的并发进程可以共享资源。分布式互斥算法被广泛应用于解决副本一致性、领导者选举等问题。随着计算机及网络技术的不断发展,各种新型的分布式系统不断涌现;针对这些系统的不同特性,因地制宜的进行分布式互斥算法研究具有相当重要的意义。本文详细分析与研究了分布式互斥算法的发展现状与未来趋势。在此基础上,分析了分布式互斥算法应用环境;详细探讨了分布式互斥对象的特征、特性及行为,并根据这些特征和特定应用环境提出了对应的分布式互斥算法。本文的创新点及其贡献在于:1.本文分析了分布式互斥对象的特性、特征及行为,并提出了一种基于可复制资源的分布式负载均衡策略。分布式系统的异构决定了分布式互斥对象的多样性;传统分布式互斥模型忽略了这种多样性,因此制约了分布式互斥算法的研究。针对上述问题,本文分析了不同分布式环境下的互斥对象的特性,并详细说明了这些特性对分布式互斥算法的影响,提出了相应的优化及改进策略。在研究分布式副本对象的过程中,提出了一种分布式负载均衡策略;在传统负载均衡策略基础上,本文提出了将节点的负载分为内部、外部和转发负载,并且分别进行处理的策略;提出了负载的方向性的概念,并且将它应用在负载均衡策略中;该策略能够有效的均衡负载,减小内部通信量,同时能够有效的抑制系统抖动。2.本文分析了分布式互斥算法所运行的环境,提出了若干特定拓扑结构下的基于特殊仲裁集(Quorum)构建的优化分布式互斥算法。分布式系统所处的通信网络具有异构特征;特定拓扑结构的通信网络具有节点距离可计算性及通信的多跳性;传统分布式互斥算法通常假设分布式互斥算法处于全互连的点到点通信网中,从而忽略了上述特性,这种假设脱离了分布式系统的实际情况,因而严重制约了分布式互斥算法的性能。针对上述问题,本文提出了根据网络的特定拓扑结构,优化生成分布式互斥算法所需的仲裁集;主要包括四类:(1)线形网络的折半仲裁集算法(2)环形网络的半环仲裁集分布式互斥算法;(3)树形网络的回溯仲裁集分布式互斥算法;(4)网格网络的十字仲裁集分布式互斥算法。这些算法综合考虑了自身所在网络的特性,并利用这些特性减少算法的消息复杂度,缩短响应延迟,提高算法的容错能力。同时,由于P2P系统构建于覆盖网(Overlay)之上,忽略真实的拓扑结构,本文针对这种系统提出了基于分布式哈希表DHT(Distributed Hash Table)的分布式互斥算法。3.本文提出了自组织网络(Ad hoc)分布式系统的互斥算法。Ad hoc网络的动态拓扑结构和节点自组织特性给分布式互斥算法的实现带来了诸多困难。针对Ad hoc分布式互斥算法研究滞后的现状,研究了分布式互斥对象唯一标识在Ad hoc网络中的动态生成问题;提出了应用于小规模Ad hoc网络的ADMUTEX算法;进一步,提出了一种用于大规模网络的Ad hoc分布式领导者选举算法ADLE及该算法在自愈雷场系统中的应用实例。ADLE采用Lamport逻辑时戳保证消息的时序性,避免了节点饿死;通过限制算法执行范围缩小了消息复杂度与同步延迟;而且它采用动态生成的请求/应答队列,因此不需要节点了解系统的全局信息,能够适应Ad hoc网络的动态拓扑结构和节点频繁出入的情况。较之传统算法,该算法具有较低的消息复杂度、小响应延迟和公平性。4.本文提出了面向多互斥对象的多目标分布式互斥算法。由于分布式系统中的节点往往同时需要多个互斥对象来协同完成特定任务,或者临界区中能够容纳多个节点进入,这使得多目标分布式互斥算法显得尤为重要。根据这种情况,本文提出了若干改进的多目标分布式互斥算法。