乐观复制算法-2.采用乐观复制技术的应用

2.采用乐观复制技术的应用

乐观复制被应用到许多重要领域,包括广域网的数据管理,移动信息系统,和基于计算机的协作。为后续技术的讨论提供背景,我们将选取这些领域中的一些主要服务,介绍它们的功能和结构。

2.1互联网服务

对于站点间通信缓慢和不可靠的情况,乐观复制特别具有吸引力,对于互联网上的应用这一点十分突出。我们将考察两种互联网应用,一个是广播信息的应用,另一个是具有更多信息交互的应用。

1.1.1DNS:广域网上的缓存和镜像

很多互联网数据传播服务采用乐观复制保证可用性和性能。例如WWW,FTP,NNTP缓存,以及目录服务器,例如Grapevine,Clearinghouse, DNS,活动目录。

这一章讨论DNS,一个分布式,层次化命名服务。对一个特定的DNS域,由一个主节点服务器所管理,它维护着属于该域的核心数据库,可选的从节点从主节点拷贝数据库。主节点和从节点都将回复从远程客户端和服务器发来的请求。为了更新数据库,管理员改变数据库,增加它的时间戳,并在主节点重新加载。一个从节点服务器,周期性的轮询主节点,当时间戳变化时下载数据库。

DNS是一个乐观复制服务,它允许从节点上的内容滞后主节点,客户端可以看到不一致。有三个原因使得乐观复制非常适合DNS和与之类似的服务。第一,乐观复制允许在长距离,不稳定网络上复制数据。第二,它避免了昂贵的硬件组成,这些对于提供高可靠的悲观复制是必须的(比如,远距离的光纤连接)。最后,因为DNS运行客户端和中间服务器缓存数据,使用乐观复制算法以及宽松的一致性,并不会明显地降低端到端的服务质量。DNS是一个单主节点(所有该域的写请求,发生在该域的主节点上),状态传输系统(主节点发送拷贝和注册信息到从节点)。

1.1.2Usenet:广域网信息交换

Usenet是一个广域网的公告板系统,部署于1979年,是最老并仍是最流行的乐观复制服务。Usenet开始运行在UUCP上,一个无交互的存储发送网络。UUCP仅能和固定的邻居通信,网络连接仅支持在直接连接的服务期间,间歇性的文件拷贝。

Usenet是由上千台服务器组成一个强连通图,由一些列人工协商而成。每个服务器复制所有的新闻文章,这样用户能从最近的服务器获取任意文章。Usenet允许任何用户将文章传送到任何服务器。上传到一台服务器的文章周期性的推送到邻近的服务器上。接收服务器,存储并再周期性地发送到它邻近的服务器。这样,每篇文章通过服务期间的连接最终传播到全世界所有的服务器上。无限的传播循环,通过每个节点仅接受自己缺少的文件而避免。文章通过设定强制性的过期时间删除,或者用户发送取消信息删除,该信息会和通常的消息一样在服务器间传播,但会强迫服务器删除特定消息。

Usenet周期性的文章传播策略,造成了延迟时间的不确定,一篇文章从一个服务器传送到另一台服务器可能需要一周之久。虽然这样的变化经常让用户混淆,但它杰出的可用性使得这是一个合理的代价。

Usenet是一个多主节点(写操作能在任意节点发生),操作传输的系统(主节点发送文章创建、取消操作到其它节点),使用一个周期性更新传播协议(任意节点可以发送更新到其它节点)。

2.2移动数据系统

乐观复制特别适合计算机经常离开的网络环境。采用乐观复制的移动存储系统有Lotus Notes,Palm,Coda,以及Bayou。

下面讨论Bayou系统。它允许用户在移动设备上复制数据库(比如,笔记本),在断开连接时修改它,用户重新连接到网络上时合并其它设备上的变化。Bayou将对站点上的修改,记录为一系列高层次的操作,利用时间戳向量来最小化站点间需要交换的操作。更新在它到来时暂时性地被应用,但到达顺序可能和所有站点最后同意的顺序不一样。

(思考:所有站点需要达成一致的到达顺序,可以通过设定某个全局服务器来统一)

因此,临时性的更新会被取消或者重做,当站点逐步了解到最后顺序。冲突的检测和解决,可以通过应用程序定义的脚本,挖掘应用程序语义来控制。

在算法上,Bayou是一个多主节点,使用周期性传送高层次操作的系统。两种时间戳来控制临时执行的操作和最终调度顺序,应用层脚本来解决语义冲突。Bayou是本文中论述到的最为精致和复杂系统,因为移动环境的挑战,比如缓慢和不可靠的网络连接,不可忽视的更新冲突。

2.3 CVS:计算辅助协作

CVS(并发版本系统)为一组文件保存一系列历史更新,允许用户在需要时兼做文件的历史版本。CVS中的通信是通过单个中心节点进行。中心服务器有一个仓库,管理着文件副本的授权,以及过去他们发生的所有变化。更新文件前,用户先创建一个私有的文件拷贝,利用标准工具比如Emacs进行编辑。任意数目的用户可以拥有他自己的副本,并发的修改副本。当工作完成,用户提交他自己的副本到仓库。如果没有其他用户修改同一个文件,提交立即成功。否则,CVS将会逐行比较不同版本的文件。只有这些行的更新集合没有重叠,CVS就会自动的合并它们,让用户提交合并后的版本。

2.4总结

这一节总体介绍了采用乐观复制的常见系统。乐观复制覆盖了广泛并重要的应用,从Usenet的发明开始。注意,这些系统使用多种不同的机制来维持副本一致性。余下的章节将仔细分析这些系统。

你可能感兴趣的:(乐观复制算法-2.采用乐观复制技术的应用)