liuttorrie 2008-02-29
Lotus复制技术浅述
复制机制是分布式系统的核心技术。Domino/Notes独特的复制技术是业界争相效仿的对象,
但是迄今为止还没有任何一家在此技术领域能达到LotusDomino/Notes的技术层次。该项技术
为群件系统关键技术,曾经帮助Domino/Notes赢得无数荣誉。下面我们将就此技术进行探讨,希
望我们的解释能消除你们对此技术的疑虑。
为什么需要复制技术
信息并非总是可以集中存放在某一个地点,某一台主机上的。为了系统管理方便我们通常
理想化地试图把所有信息集中存放在一个地方、甚至一台主机上。但是由于多媒体信息以惊人
的速度生长,海量的信息常常使我们的网络或者主机系统成为信息处理的瓶颈。为了解决这些
海量信息处理问题,由此诞生了分布式处理系统,她可以发挥网络资源的优势,利用网络上的
各个节点来分担中央节点的负载。为保证各节点之间协同工作,最大限度的共享信息资源。因
此就有了分布式系统的信息同步技术――复制。
Domino/Notes复制技术概述
办公信息并非总是从总部流向远程办事处和合作伙伴。事实上,大部分信息来源于整个社
会群体。信息平台要能使信息在组织内部移动,这样可使所有用户得到最新的工程项目、最新
的讨论或最新的文档。这就表明,信息平台应支持各分布站点采用同时向各个方向繁殖新的或
更新的材料,而不只是从中央源头带给接收人。这一复制能力一直是Notes产品面市以来的一个
显著特色。
Domino/Notes复制技术可以保证分布式数据库的数据同步、支持移动办公,其特性包括双
向与端对端复制、字段级、选择性的、可以在后台进行等,所有的复制操作均采用相同的复制
机制。相对Domino/Notes,目前还没有其它任何一家产品在单一复制模式下能完成如此精细的
复制控制,而且一般复制是基于文档级操作,不象Domino/Notes一样是更有效的字段级,并缺
乏选择性复制的能力(有些利用的是基于邮件的同步机制。例如:MSExchange,而不是验证数
据准确性的同步算法,另外对于不同的连接速度或带宽,Exchange采用不同的MTA,更加剧了其
复制机制的不一致性。)。
Domino/Notes复制冲突与并发访问控制
Domino/Notes是典型的分布式系统,分布式系统的体系结构决定了并发控制的复杂性。解
决并发控制有两种方案。下面就这两种方案讨论一下其优劣。
第一种方案:采用记录共享锁与排它锁控制并发访问。此种方案可以解决并发写操作过程
中更新数据互相覆盖的问题,但是如果分布式系统节点多、并发用户量大时将会严重影响系统
响应速度。因为如果采用记录共享锁与排它锁控制并发访问,任何一个用户打开编辑系统中的
任何一条记录或文档时,系统将要对分布式系统每一个数据节点上的该条记录或文档进行加锁。
这样会占用大量的系统资源,在广域网带宽较窄的情况下,尤其会大大影响系统性能。事实上
关系数据库系统采用的就是这种并发控制手段,但是基于上述原因在实际应用中极少采用。
第二种方案:就是Domino/Notes采用的方案。Domino/Notes采用权限控制的手段尽量避免
让多个用户并发修改同一条记录或文档。由于Domino/Notes权限控制非常精细,可以指定每条
记录或文档的作者(只有记录或文档作者才可以编辑它)。这样就大大减少了多个用户编辑同一
条记录或文档的机会。即使出现多用户编辑同一条记录或文档的情况,只要他们修改的不是该
记录或文档的同一个域(字段),Domino/Notes在同步复制的时候还是可以进行信息合并的。也
就是说Domino/Notes会自动识别新修改的信息并把它保存下来。如果发生多用户编辑同一条记
录或文档同一个域(字段)信息的情况(经过上述两种控制后此种情况发生概率较小),为了避免
更新数据丢失,Domino/Notes会根据数据更新的时间与次数判断选出一个更新的文档作为主文
档,另一条文档将会作为冲突文档显示在主文档下面,用户可以来决定该数据的取舍。这样就
最大限度地保护了并发写操作的数据一致性与完整性,而且不会对分布式系统性能造成不良影
响。
总结
比较上述两种方案权衡各种利弊得失,我们不难看出LotusDomino/Notes采用的是一种更
为行之有效的策略来实现系统并发控制问题。复制冲突并不是系统产生的问题而是解决并发写
操作的一个有效手段。