论文部分内容阅读
随着计算机工业的发展,各种软件应用日趋复杂,对软件的性能和可靠性的要求也越来越高。计算机硬件的高速发展能够部分的解决这些问题,但高性能的硬件设备因其价格昂贵而难以普及。分布式并行技术的发展和计算机网络的普及,使我们可以使用廉价的普通计算机来开发高性能、高可靠的软件。然而,分布式并行系统的开发也存在开发成本高、开发周期长等问题,难以适应快速变化的市场需求。针对以上这些问题,[0]我们提出了分布式并行函数库的设想,由分布式并行函数库提供分布式并行系统所需的多种组件,以解决节点管理、通信、一致性等多方面的问题。为了解决分布式并行系统的节点管理和节点间通信问题,本论文设计了通信子模块,并提出了通信域的概念来限制分布式并行系统的通信范围。通信子模块自动完成节点管理工作,并参照MPI标准[文献3-5]设计了节点间通信的接口。通信子模块是整个分布式并行函数库的基础,其他模块(除了流水锁模块)的实现都依赖于该模块。一致性问题是分布式并行技术中最重要的议题之一。提供通用的一致性解决方案是本论文的重点。Lamport的顺序一致性模型[文献6]指出,相关的操作(操作同一数据源)在各个副本上如果有一致的顺序视图,则可以保证数据的一致性。本论文按照这个思想,将一致性问题分解成事务结果一致性和事务执行顺序一致性两个方面,并分别设计出同步子模块和流水锁模块来解决这两个方面的问题。同步子模块可以同步启动多个节点上的同名函数,并封装了两阶段提交算法,使保证事务结果一致的过程对用户透明。而流水锁模块可以使一个节点上的事务按一定的顺序串行执行,同时拥有与并发执行相近的性能。配合使用同步子和流水锁可以保证各个节点上数据副本的一致性。本论文分四个部分,第一章分析了现有的多种分布式并行技术,并总结了分布式并行函数库的主要功能;第二章介绍了分布式并行函数库的总体框架;第三章讲述了分布式并行函数库的底层架构――通信子模块;第四章,也是本论文最重要的一章,详细讲解了分布式并行函数库解决一致性问题的方案,它包括解决事务结果一致性的同步子模块和解决执行顺序一致性的流水锁模块两大部分。