使用具有全局知识的服务器处理写请求的制作方法

文档序号:6477645阅读:131来源:国知局
专利名称:使用具有全局知识的服务器处理写请求的制作方法
使用具有全局知识的服务器处理写请求
背景
分布式系统,诸如文件系统和目录系统在多个不同节点(即服务器)上存 储同一信息的复制品或副本。拥有多个具有复制品的节点提供了诸如容错、信 息的高可用性以及提高的系统性能等好处。这些分布式系统的子集允许存储信 息复制品的每个节点接受对该信息的原始改变。也就是说,节点有权提供对该 信息的读和写访问。这些系统还使用复制协议,在该协议中各节点互相获得对 该信息所作出的改变。这允许各节点各自孤立地操作,并且随后与它们的对等 节点"同步"使得其它节点具有当前的信息。这些类型的系统称为多主复制系 统。
轻量级目录访问协议(LDAP)系统是有时被实现为多主复制系统的系统 的示例。LDAP系统用于存储许多种类的数据,包括由用户提供的数据,诸如 地址和口令,并且还包括由受管IT系统提供的数据,诸如许可。各组织经常 希望对存储在LDAP目录中的数据实施规则或业务逻辑。例如, 一个这样的目 录可存储用户标识号。IT组织可能希望系统实施一个要求用户标识号唯一的规 则,即两个用户不会具有相同的用户标识号。遗憾的是,在被实现为多主复制 系统的LDAP系统中,这难以实现。每个节点可接受对具有不同值的用户的标 识号的写请求。尽管每个节点可针对该规则检查数据,但它们被限于其自己的 数据视图。有可能的是,其它节点正在同时接受特定节点尚不知道的写,而这 将在复制完成时使系统处于对于该规则而言它是不一致的(即将同一标识号分 配给了不同的用户)的状态中。
针对这些和其它考虑作出了本发明的各实施例。而且,尽管已经讨论了相 对具体的问题,但应当理解,本发明的实施例不应当限于解决在背景中所标识 的具体问题。
概述
提供本概述以便用简化形式介绍在下面的详细描述章节中进一步描述的
6一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不 旨在用于帮助确定所要求保护的主题的范围。
所描述的是针对使用具有分布式系统中的信息的全局知识的指定服务器 来批准对该分布式系统中的各节点所作的写请求的实施例。这些服务器实施对 可被写到该分布式系统的数据施加限制的数据规则,数据规则的一个示例是数
据的唯一性。该分布式系统被设计成向指定服务器提供全局知识以用于实施数 据规则。当该分布式系统内的另一个服务器接收到服从数据规则的写数据的请 求时,该服务器必须在它可以接受该写请求之前咨询这些指定服务器之一。这 确保被写到该分布式系统的任何数据都与该数据规则相一致。如果指定服务器
确定该数据与该规则相一致,则批准该写请求并且指定服务器决定是否要响应 于该请求而更新其局部状态。否则,拒绝该写请求。
各实施例可被实现为计算机过程、计算系统或诸如计算机程序产品或计算 机可读介质等制品。计算机程序产品可以是计算机系统可读并且编码了用于执 行计算机过程的指令的计算机程序的计算机存储介质。计算机程序产品也可以 是在计算系统可读并且编码了用于执行计算机过程的指令的计算机程序的载 波上的传播信号。
附图简述
参考下面的附图描述各非限制性和非穷尽性实施例。


图1示出现有技术的分布式系统。
图2示出根据一实施例的分布式系统。
图3示出在图2所示的分布式系统中的复制期间的信息传输。 图4示出用于在分布式系统中对写请求进行处理的操作流程。 图5示出用于在分布式系统中应用全局数据规则的操作流程。 图6示出适用于实现各实施例的计算环境的框图。
详细描述
下面参考附图更完整地描述各实施例,这些附图形成本发明的一部分并且 示出用于实践本发明的各具体示例性实施例。然而,各实施例可以用多种不同形式来实现并且不应当解释为限于在本文所述的这些实施例;相反,提供这些 实施例以使本公开变得透彻和完整和全面,并且向本领域的技术人员完整地传 达本发明的范围。各实施例可实践为方法、系统或设备。因此,各实施例可采 用硬件实现、完全软件实现、或者组合软硬件方面的实现的形式。因此,下面 的详细描述不是限制性的。
图1示出分布式系统100,其具有可通过网络106和108访问在图1中被 示为服务器计算机系统110、 112、 114和116的多个节点的客户机计算机系统 102和104。服务器110、 112、 114和116可存储诸如分布式文件系统或分布 式目录等信息。服务器110、 112、 114和116每一个可存储同一信息的复制品 或副本。系统100是多主复制系统的示例,在该系统中服务器110、 112、 114 和116有权向诸如客户机102和104等客户机提供读和写访问。系统100还具 有允许服务器110、 112、 114和116从彼此获得有关对该信息所作的改变的信 息的复制协议。服务器110、 112、 114和116孤立地操作,并且随后相互复制 来周期性地同步对该信息所作的改变。系统100提供许多优点,诸如使信息能 够容易地被多个用户访问,并且还能容错,因为服务器110、 112、 114和116 之一的故障不会导致信息的丢失或者对信息的访问的丢失。
客户机102和104是系统100内的向服务器110和112发出读或修改数据 的请求的节点。在各实施例中,客户机102和104可以不主存来自系统100的 任何数据,而在其它实施例中,客户机102和104可主存至少一些数据。应当 理解,在本专利申请中术语"客户机"旨在表示向另一个进程发出请求的任何 进程。为简明起见,图1将客户机102和104示为分别仅访问服务器110和112。 如本领域的技术人员将理解的, 一些分布式系统允许客户机102和104访问服 务器IIO、 112、 114和116中的任何一个。图1还将客户机102和104示为使 用不同的网络106和108来访问服务器110和112,然而本领域的技术人员将 理解, 一些分布式系统允许多个客户机通过同一个(或多个)网络来访问服务 器。
尽管系统100提供了许多优点,但它还是受到一些限制。在存储在系统 100中的数据中的冲突可在服务器110、 112、 114和116中的一个或多个暂时 与系统100断开时发生。例如,服务器110和112可变为暂时与系统100断开。
8在此期间,服务器110可接受将用户ID分配给第一用户的写请求,而服务器
112可能将同一用户ID分配给第二用户。
系统100未能提供有效实施全局数据规则的机制。在本专利申请中,术语 "全局数据规则"旨在表示用于提供与可存储在分布式系统中的数据相关联的 业务过程的规则。例如,业务过程可以是对数据的约束,例如用户ID必须只 与一个用户相关联,或者业务过程可以是一个对数据执行的过程,例如将所有 名字改变转发至人类资源数据库。为有效地实施全局数据规则, 一个或多个服 务器必须具有全局知识(有关所有复制品或副本的信息的经更新的知识)。全
局数据规则的一个示例是数据唯一性。即,要求数据在信息在分布式系统中的 所有复制品或副本上具有唯一值。 一个具体示例是要求用户标识号在整个分布 式系统中具有唯一值。
如图1所示且如下所述,系统100不能实施全局数据规则。进一步阐述用 户标识号的示例,服务器110、 112、 114和116中的每一个可接受和应用对一 个人的用户标识号的写请求。客户机102可将向第一用户分配标识号的写请求 提交至服务器110。客户机104最近可能已经向服务器112提交了将同一用户 标识号分配给不同用户的写请求。尽管服务器110和112每一个可检査数据以 确定该用户标识号是否唯一,但它们受限于它们自己的数据视图。因此,系统 100将具有与要求用户标识号唯一地与单个用户相关联的规则不一致的信息。
图2示出根据一实施例的分布式系统200。除了提供分布式系统的一般优 点之外,系统200还允许能有效且高效地实施对系统200内的数据进行约束的 全局数据规则。系统200包括使用网络206和208访问在图2中被示为接收服 务器计算机系统210、 212、 214和216的多个节点的客户机计算机系统202和 204。系统200还包括具有系统200中的信息的全局知识(或者可非常快速地 构建全局知识)并且由系统200用于实施全局数据规则的中央计算机系统220、 222、 224和226。如本领域的技术人员将理解的,存在许多不同数量的这样的 接收和中央服务器计算机系统。
再次参考接收服务器210、 212、 214和216,它们存储诸如分布式文件系 统或分布式目录等信息。接收服务器210、 212、 214和216中的每一个存储同 一信息的复制品或副本。系统200是多主复制系统,其具有有权向诸如客户机202和204等客户机提供读和写访问的接收服务器210、 212、 214和216。系 统200还具有允许接收服务器210、 212、 214和216从彼此获得有关对该信息 所作的改变的信息的复制协议。服务器210、 212、 214和216孤立地操作,并 且随后相互复制来周期性地同步在其各自的复制品中所作的改变。系统200使 信息能易于由多个用户来访问,并且还是容错的,因为服务器210、 212、 214 和216之一的故障不会导致信息的丢失或对信息的访问的丢失。
在一实施例中,接收服务器210、 212、 214和216没有实施全局数据规则 的全局知识。然而,在一些实施例中,接收服务器210、 212、 214和216可存 储和实施"局部数据规则"。在本专利申请中,术语"局部数据规则"旨在表 示对可存储在分布式系统中的数据提供约束,但不要求全局知识(关于所有复 制品或副本的信息的知识)来有效实施的规则。局部数据规则的示例包括要求 用户标识号具有8位数字,或者不允许电话号码具有字母。如可理解的,局部 数据规则对于在限制可存储在分布式系统中的数据但不要求全局知识来有效 实施时是有用的。
系统200还包括在虚线218内示出的一组中央服务器220、 222、 224和 226。中央服务器220、 222、 224和226具有系统200中的信息的全局知识(或 者可快速构建必要的知识)来有效且高效地实施全局数据规则。中央服务器 220、 222、 224和226每一个与接收服务器210、 212、 214和216—样存储同 一信息的复制品或副本。中央服务器220、 222、 224和226最初是与接收服务 器210、 212、 214和216类似的正常服务器。选择这些中央服务器来具有系统 200内信息的最新知识以允许它们实施全局数据规则。在一些实施例中,它们 可由网络管理员例如通过简单地设置一个标志来选择。哪些服务器应当被提升 为中央服务器的决定可基于服务器的特定属性。例如,具有最佳网络链路的那 些服务器可被选择为中央服务器。有关选择哪些服务器作为中央服务器的决定 可基于其它选择准则,例如各个服务器或系统200的特性或属性。
中央服务器220、 222、 224和226中的复制品与接收服务器210、 212、 214和216中的复制品相比具有最新的信息。中央服务器220、 222、 224和226 中的更新信息可至少部分地基于其复制协议和拓扑结构,这在下面参考图3更 详细地讨论。如图2所示,接收服务器210、 212、 214和216每一个连接至中
10央服务器220、 222、 224和226之一,并且在能够接受与服从全局数据规则的 数据有关的写请求之前必须咨询中央服务器220、 222、 224和226之一。中央 服务器220、 222、 224和226实施全局数据规则以确保被写到系统200内的复 制品的信息与所建立的全局数据规则相一致。
中央服务器220、 222、 224和226进行相互复制以从彼此获得有关对系统 200中的信息所作的改变的信息。中央服务器220、 222、 224和226具有关于 服从全局数据规则的数据的全局知识(或能够快速构建全局知识)。在各实施 例中,中央服务器220、 222、 224和226部分地通过快速地向中央服务器220、 222、224和226提供在系统200内所作的任何改变的复制协议来获得它们的全 局知识。如下面参考图3进一步说明的,在各实施例中,中央服务器220、 222、 224和226具有与接收服务器210、 212、 214和216所使用的不要求具有全局 知识的复制协议不同的复制协议。在其它实施例中,中央服务器220、 222、 224 和226可使用与服务器210、 212、 214和216相同的复制协议,但更积极地复 制改变,诸如在改变的复制之间具有更短的时间窗口。
系统200允许管理员建立全局数据规则,在一些实施例中该规则至少被存 储在中央服务器220、 222、 224和226中。在各实施例中,接收服务器210、 212、 214和216存储有关全局数据规则的足够信息以确定该规则何时可以应 用。接收服务器210、 212、 214和216随后被要求在它们可允许服从全局数据 规则的写请求之前咨询中央服务器220、 222、 224和226之一。因为仅要求这 些接收服务器咨询单个中央服务器,所以可高效地在系统200内实施全局数据 规则。
系统200通过给予接收服务器210、 212、 214和216向诸如客户机202 和204等客户机提供读和写访问的权限来操作。接收服务器210、 212、 214和 216可接受写请求来将数据写至其相应的复制品。然而,如果写请求与服从所 建立的全局数据规则的数据有关,则接收服务器210、 212、 214和216必须在 它们可执行该写请求之前咨询中央服务器220、 222、 224和226之一。因为中 央服务器220、 222、 224和226每一个具有全局知识(或者可非常快速地构建 全局知识)以实施全局数据规则,所以咨询这些中央服务器中任何一个都允许 接收服务器确信数据与全局数据规则相一致并且因而可执行该请求。
11将描述一个示例以进一步示出系统200的操作。管理员可建立全局数据规
则以限制系统200内的数据的值。作为示例,该数据规则可要求系统200中的 每个用户标识号是唯一的,即没有两个人可具有同一用户标识号。随后将该要 求每个用户标识号的唯一性的数据规则存储在中央服务器220、222、224和226 中。该数据规则的存在的指示被存储在所有接收服务器210、 212、 214和216 上,使得它们知道与用户标识号有关的任何写请求必须由中央服务器220、222、 224和226之一批准。
在客户机202上的用户随后可发送写请求至接收服务器210,请求将用户 标识号写到存储在系统200上的数据库中。作为响应,接收服务器210将认识 到,用户标识号必须满足先前建立的全局数据规则。结果,接收服务器210根 据该写请求生成带有用户标识号的批准消息,并且将该批准消息发送至中央服 务器220以供批准。
在接收到该批准消息时,中央服务器220应用全局数据规则。中央服务器 220确定在其复制品(它具有系统200中的信息的全局知识)中的任何信息是 否与它在来自接收服务器210的批准请求中接收到的用户标识号不一致。如果 中央服务器220确定存在与该用户标识号不一致的信息,则它将向接收服务器 210发送拒绝批准该写请求的消息。因此,接收服务器210将不允许来自客户 机202的写请求。在一些实施例中,接收服务器210还将生成指示该写请求已 被拒绝的消息并将其发送至客户机202。
如果中央服务器220确定该用户标识号确实服从全局数据规则,换言之它 是唯一的,则中央服务器220将该用户标识号写到其自己的复制品中。将该用 户标识号写到其自己的复制品中确保了它具有最新更新的信息。在中央服务器 220将该用户标识号写到其自己的复制品中之后,它将该改变复制到其它中央 服务器222、 224、和226上的复制品以确保它们维持其全局知识。中央服务器 220随后将生成批准该写请求的消息并将其发送至接收服务器210。接收服务 器210将该用户标识号写到其复制品中,并且在一些实施例中向客户机202发 送指示该写请求已完成的消息。
如果在批准来自客户机202的写请求之后不久,在客户机204上的另一个 用户发送带有针对不同人员的同一用户标识号的写请求,则该请求将被适当地拒绝。当接收服务器212从客户机204接收到该写请求时,则它将认识到该用
户标识号要服从全局数据规则。结果,它将生成批准消息并将该消息发送至中
央服务器222。中央服务器222将通过检查其复制品来应用全局数据规则以确 定在其复制品中是否已经针对另一个人接收了来自该写请求的安全号码。因为 中央服务器220已经用来自客户机202的写请求的数据更新了中央服务器222、 224和226上的所有复制品,所以中央服务器222将认识到,来自客户机204 的写请求的用户标识号不是唯一的并且将拒绝该写请求。因而,系统200可有 效且高效地实施要求用户标识号的唯一性的全局数据规则。
应当理解,图2所示的系统200的一些具体细节仅是处于简明的目的而提 出的并且不旨在是限制性的。例如,图2分别将客户机202和204示为只访问 接收服务器210、 212,而其它接收服务器没有连接至任何客户机。在其它实施 例中,客户机202和204能够访问接收服务器210、 212、 214和216中的任何 一个。图2还示出客户机202和204使用不同的网络206和208访问服务器210 和212,然而在其它实施例中,系统200允许除客户机202和204之外的许多 客户机通过同一个(或多个)网络访问服务器210、 212、 214和216。
网络206和208可以是可用于连接客户机计算机系统与服务器计算机系统 的任何类型的计算机网络。网络206和208例如可以是局域网(LAN)或广域 网(WAN)。在一些实施例中,网络206和208包括内联网、因特网和/或它 们的组合。
图2还示出中央服务器220、 222、 224和226未被客户机访问。然而,在 一些实施例中,除了被分配有实施全局数据规则的任务之外,中央服务器220、 222、 224和226可被客户机访问并且直接从客户机接受写请求。在这些实施例 中,没有必要咨询任何其它服务器以实施任何可应用的全局数据规则,因为如 上所述,中央服务器220、 222、 224和226具有用于实施全局数据规则的全局 信息。
此外,图2示出接收服务器210、 212、 214和216每一个仅连接至一个中 央服务器220、 222、 224和226。在一些实施例中,接收服务器210、 212、 214 和216可以按任何接收服务器可发送批准请求至任何中央服务器的方式来连接 至中央服务器220、 222、 224和226。这些实施例向系统200提供附加容错。
13例如,如果中央服务器220不能处理由接收服务器210所发出的批准请求,则 接收服务器210可发送该请求至另一个中央服务器以供批准。
图3示出分布式系统的另一个实施例300。系统300与系统200相似,因 为它包括两种不同类型的服务器,即接收服务器310、 312、 314和316和由虚 线318包围的一组中央服务器320、 322、 324和326。中央服务器320、 322、 324和326各自具有系统300内的信息的全局知识(或者可快速地构建全局知 识),该全局知识允许它们实施全局数据规则。在图3所示的箭头示出在系统 300中的服务器之间进行复制期间的信息传送的方向。即,图3概括地示出系 统300中的服务器的复制拓扑结构。在图3所示的实施例中,接收服务器310、 312、 314和316具有与中央服务器320、 322、 324和326不同的复制拓扑结构。 如下所述,中央服务器320、 322、 324和326的复制拓扑结构至少部分地负责 它们的全局知识。
如图3所示的,接收服务器310、 312、 314和316具有环形复制拓扑结构。 在环形复制拓扑结构中,每个服务器与另外两个服务器进行复制,其中第一个 和最后一个服务器彼此进行复制以形成一个圈或环。在系统300中,服务器314 与服务器310和312进行复制,而服务器312除了与服务器314进行复制外还 与服务器316进行复制。服务器316除了与服务器312进行复制外还与服务器 310进行复制。最后,服务器310与服务器316和314进行复制,这完成了环 的形成。
在一实施例中,中央服务器320、 322、 324和326具有全连接的复制拓扑 结构。在全连接的复制拓扑结构中,这些服务器中的每一个与其它每一个服务 器进行复制。在系统300中,服务器320与服务器322、 324和326进行复制; 服务器322与服务器320、 324和326进行复制;服务器324与服务器320、 322 和326进行复制;并且服务器326与服务器320、 322和324进行复制。如在 图3中可看到的,中央服务器320、 322、 324和326的复制拓扑结构允许所有 中央服务器直接发送信息至所有其它中央服务器。该复制拓扑结构帮助在这些 中央服务器中维护在系统300内所作的改变的全局知识。在系统300中,对信 息所作出的服从全局数据规则的任何改变必须由中央服务器320、 322、 324和 326之一批准,该中央服务器立即将该改变写到其自己的复制品并且基于其全连接的复制拓扑结构可直接将该改变复制到所有其它的中央服务器。该过程确 保这些中央服务器在系统300中作出任何改变之后几乎立即全部都具有最新的 知识。
如本领域技术人员将理解的,为分布式系统配置高效的复制拓扑结构是一 项复杂的任务,并且取决于各种因素,诸如服务器的数量、服务器是如何连接 的、分布式系统是如何组织(站点、域等)、和分布式系统的目标(数据一致 性、数据的高可用性等)。因而,图3仅旨在示出具有接收服务器和中央服务 器的组合的系统的复制拓扑结构的一个实施例,其中中央服务器具有全局知识
以便实施全局数据规则。尽管系统300示出接收服务器和中央服务器具有不同
的复制拓扑结构,但在一些实施例中,接收服务器和中央服务器可具有相同的 复制拓扑结构。
在各实施例中,除了复制拓扑结构之外,中央服务器320、 322、 324和 326还具有帮助维护其全局知识的复制协议。因为中央服务器在它们接收到批 准请求时应当具有全局知识,所以对中央服务器320、 322、 324和326之一所
作的任何改变必须非常快速地复制到其它中央服务器。结果,中央服务器可实 现一种具有在复制操作之间只有非常短的时间段的复制时间表的协议。作为复
制操作之间的短时间段的补充或替换,中央服务器可实现一种要求对其复制品 所作的改变立即(或非常快速地)直接复制到其它中央服务器的协议。
应当理解,在一些实施例中,由中央服务器320、 322、 324和326所实现 的协议可基于全局数据规则的重要性或关键性来应用不同的复制时间表。例 如,存在一些被认为对组织而言很关键的全局数据规则,在该情形中管理员可 能想要将任何改变立即复制到所有中央服务器。然而有些全局数据规则不这样 重要,在该情形中,与这些规则有关的改变可在预定的复制时间段内进行复制。 当然,在各实施例中,由中央服务器320、 322、 324和326所实现的复制协议 可以与由不要求具有全局知识的接收服务器310、 312、 314和316所实现的协 议不同。
在其它实施例中,中央服务器320、 322、 324和326在除了专门设计的复 制协议和拓扑结构之外,还可实现向它们提供用于实施全局数据规则的最新知 识的其它方法。例如在一个实施例中,服务器320、 322、 324和326可在批准来自接收服务器310、 312、 314和316的请求之前相互咨询。即,在中央服务 器接收到服从全局数据规则的请求时,它将咨询所有其它中央服务器以确保该 请求不与其它中央服务器上的数据冲突。在又一个实施例中,当中央服务器接 收到请求时,它可向其它中央服务器发出指示它接收到了与特定数据相关的请 求的消息。响应于接收到该消息,其它中央服务器将不允许它们所接收到的与 该同一数据相关的任何请求。在其它中央服务器从最初的中央服务器接收到第 二消息时将移除保持。该第二消息将包含经改变的信息。
图4和5示出根据各实施例的操作流程400和500。操作流程400和500 可在任何合适的计算环境中执行。例如,这些操作流程可由诸如图2和图3所 示出的系统来执行。因此,操作流程400和500的描述可参考图2和图3的组 件中的至少一个。然而,对图2和图3的组件的任何这样的参考仅是为了描述, 并且应当理解,图2和图3的实现是用于操作流程400和500的非限制性环境。
此外,尽管以特定次序顺序地示出和描述了操作流程400和500,但在其 它实施例中,这些操作可按不同的次序、多次和/或并行地执行。而且,在一些 实施例中, 一个或多个操作可被省略或组合。
图4示出根据一实施例的用于在分布式系统中处理写请求的操作流程 400。在操作402,接收带有写数据的写请求。在各实施例中,该写请求是由请 求对接收服务器上的复制品作出改变的客户机计算设备(诸如客户机202、204、 302和304)所生成和发送的。与该写请求一起接收到的写数据包括要被写到 分布式系统中的复制品的数据。在各实施例中,该写请求可由诸如图2 (服务 器210、 212、 214和216)和图3 (服务器310、 312、 314和316)所示的接收
服务器等接收服务器来接收。
在操作402之后,流程随后转到操作404,在那里作出关于全局数据规则 是否适用于在写请求中接收到的写数据的判断。分布式系统的管理员可建立约 束存储在分布式系统中的数据的全局数据规则。如上所述,数据规则的一个示 例要求数据在整个分布式系统中具有唯一值。在一些实施例中,全局数据规则 的实施被委托给一组中央服务器,诸如图2 (服务器220、 222、 224和226) 和图3 (服务器320、 312、 324和326)描述的中央服务器。
如果在操作404确定写数据不服从全局数据规则,则流程转到操作406。
16在操作406,作出关于写数据是否满足任何局部数据规则的判断。如上所述, 局部数据规则对被写到分布式系统的数据施加限制,但不要求全局知识来实
施。在各实施例中,接收服务器执行操作406并且确定写数据是否满足任何适
用的局部数据规则。
如果在操作406作出写数据不满足局部数据规则的判断,则流程转到操作 408,在那里拒绝写请求。在一些实施例中,操作408涉及接收服务器生成消 息并将其发送至最初生成写请求的客户机,该消息指示写请求已被拒绝。在操 作408之后,流程在操作410结束。
然而,如果在操作406作出写数据确实满足适用的局部数据规则,则流程 转到操作412,在那里接受写请求并且将写数据写到分布式系统。在一些实施 例中,操作412涉及接收服务器生成消息并将其发送至最初生成写请求的客户 机,该消息指示写请求已被接受。在操作412之后,流程在操作410结束。
应当注意,在一些实施例中,如果没有局部数据规则适用,则操作流程 400可不包括操作406。在这些实施例中,流程将直接从操作404转到操作412, 在那里接受写请求并且将写数据写到分布式系统。流程随后将在操作410结束。
回头参考操作404,如果作出全局数据规则确实适用的判断,则流程将从 操作404转到操作414。在操作414,作出有关中央服务器是否可用于处理批 准请求的判断。在各实施例中,在接收服务器在操作404确定全局数据规则适 用之后,它必须发送批准请求至实施全局数据规则的中央服务器。执行操作414 以确定中央服务器是否可用于处理接收服务器所生成的批准请求。中央服务器 可能因为多种原因而不可用,诸如服务器崩溃、失去连接、和/或服务器正忙于 处理其它请求。
如果在操作414作出中央服务器不可用的判断,则流程转到操作416。在 操作416应用与中央服务器的不可用性有关的策略。该策略确定在中央服务器 不能用于批准请求时如何处理(服从全局数据规则的)写请求。如图4所示(在 虚线中),取决于在操作416实现的特定策略,流程可从操作416转到操作406、 408或416中的任何一个操作。在各实施例中,该策略可以是简单地拒绝所有 写请求,在该情形中流程转到操作408,或者是允许所有写请求,在该情形中 流程转到操作406。在另一实施例中,该策略可要求流程从操作416循环回到
17操作414,直至中央服务器变得可用。
该策略将反映各个数据规则的重要性。例如,如果写请求服从对于组织而 言极其重要的数据规则,则该策略可通过拒绝服从该关键性数据规则的、未被 中央服务器批准的任何写请求来反映该数据规则的重要性。同时,可允许服从 较不重要的数据规则的写请求,即使它们不能被中央服务器批准。在其它实施 例中,该策略可允许违反全局数据规则的写请求,但记录该违反已经发生的事 实。该记录随后可用于在以后协调与全局数据规则的任何不一致性。如本领域
的技术人员将会理解的,在操作416确立和应用的特定策略将取决于分布式系
统的实现。
回头参考操作414,如果作出中央服务器可用的判断,则流程转到操作 418,在那里将批准请求发送至中央服务器。该批准请求寻求中央服务器对接 受写请求并且将写数据写到分布式系统的批准。在各实施例中,操作418由接 收服务器执行并且涉及多个子操作,诸如生成带有在操作402接收到的写数据 的批准请求,以及随后发送该批准请求至中央服务器。
在操作418之后,流程转到操作420,在那里从中央服务器接收消息。该 消息是响应于在操作418发送的批准请求的。在操作420之后,流程转到操作 422,在那里作出从中央服务器接收到的消息是否指示中央服务器已经批准了 写请求的判断。如果在操作422作出中央服务器没有批准写请求的判断,则流 程转到操作408,在那里如前所述地拒绝写请求。
如果在操作422作出中央服务器批准了写请求的判断,则操作流程转到操 作406,在那里作出写数据是否满足任何局部数据规则的判断。从操作406起, 流程将如上所述地继续。在一些实施例中,没有任何局部数据规则,在该情形 中,流程将直接从操作422转到操作412,在那里接受写请求。流程随后将在 操作410结束。
图4不应当被解释为限制执行操作流程400的操作的次序。例如,在一个 特定实施例中,操作404将在操作406之后或者与之同时执行。在其它实施例 中,如果还没有确立局部数据规则,则操作406将被一起跳过。
图5示出用于在分布式系统中实施全局数据规则的操作流程500。流程500 从操作502开始,在那里存储全局数据规则。在各实施例中,操作502由具有分布式系统中的信息的全局知识的中央服务器执行,诸如在图2 (服务器220、 222、 224和226)和图3 (服务器320、 322、 324和326)中描述的那些中央 服务器。这些中央服务器用于实施全局数据规则,并且确保被写到分布式系统 的任何数据与所确立的数据规则相一致。
在操作502之后,流程转到操作504,在那里接收带有写数据的批准请求。 操作502是由接收该批准请求的中央服务器来执行的,在各实施例中该批准请 求是由诸如图2 (服务器210、 212、 214和216)和图3 (服务器310、 312、 314和316)所示的接收服务器等接收服务器发送的。该批准请求寻求来自中 央服务器的对写请求(即将数据写到分布式系统的请求)的批准。除了其它信 息之外,写请求包括要被写到分布式系统的写数据。
在操作506,作出有关在操作504的批准请求中接收到的写数据是否满足 来自操作502的所存储的全局数据规则的判断。如果写数据不满足全局数据规 则,则流程转到操作508,在那里发送拒绝批准请求的消息。在各实施例中, 中央服务器生成拒绝批准请求的消息并将其发送至发送该批准消息的接收服 务器。在操作508之后,流程在操作510结束。
如果在操作506作出写数据满足来自操作502的所存储的全局数据规则的 判断,则流程转到操作512,在那里中央服务器将在批准请求中接收到的数据 写到其自己的复制品中。如上所述,中央服务器具有(或者可快速地构建)分 布式系统内的信息的全局知识以便能够实施全局数据规则,并且因此在各实施 例中,当批准改变时第一个操作是将该信息写到其自己的复制品中。
在操作512之后,在操作514发送批准该批准请求的消息。在各实施例中, 操作514涉及中央服务器生成并发送批准在操作504中接收到的批准请求的消 息。该消息向接收服务器指示它可以接受写请求并且将数据写到存储在该接收 服务器中的复制品。
在一些实施例中,全局数据规则可涉及与被写到分布式系统的数据相关联 的操作或业务过程。作为一个示例,全局数据规则可确立在写入(即新增加或 改变)名字时必须将该信息转发至人类资源服务器的规则。如在本领域的技术 人员将会理解的,可确立其它业务过程和操作。在这些实施例中,业务过程或 操作可在操作512和514之前、之后或与其同时执行。
19在操作514之后,流程随后转到操作516,在那里中央服务器将在操作512 所写的数据复制到其它中央服务器。在操作516期间执行的特定步骤将基于为 分布式系统中的中央服务器确立的复制协议和拓扑结构。如前参考图3所述, 中央服务器可实现各种复制协议和拓扑结构,它们被设计成确保这些中央服务 器维护分布式系统中的信息的全局知识。
图5不应当被解释为限制执行操作流程500的操作的次序。例如,在一个 特定实施例中,操作516将在操作514之后立即执行或与其同时执行。该实施 例确保写到复制品的数据被快速地复制到其它中央服务器,以确保它们维护分 布式系统中的信息的全局知识。
图6示出可用于实现本文所述的各实施例的通用计算机系统600。计算机 系统600仅是计算环境的一个示例,并且不旨在对计算机和网络体系结构的使 用范围或功能提出任何限制。也不应当将计算机系统600解释为对在示例计算 机系统600中所示的任何一个组件或组件组合有任何依赖性或要求。在各实施 例中,系统600可用作以上参考图2和图3所描述的接收服务器和/或中央服务 器。
在其最基本的配置中,系统600 —般包括至少一个处理单元602和存储器 604。取决于计算设备的确切配置和类型,存储器604可以是易失性(诸如 RAM)、非易失性(诸如ROM、闪存等)、或者这两者的某种组合。该最基 本的配置在图6中由虚线606示出。系统存储器604存储在系统600上执行的 应用程序。除了应用程序之外,存储器604还可存储在系统600所执行的操作 中使用的信息,诸如写请求610和/或批准请求612,如以上参考图2-5所描述 的。
另外,系统600还可具有附加特征/功能。例如,设备600还可包括附加 存储608 (可移动和/或不可移动),包括但不限于磁盘或光盘或磁带。这样的 附加存储在图6中由存储608所示。计算机存储介质包括以用于存储诸如计算 机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的 易失性和非易失性、可移动和不可移动介质。存储器604和存储608是计算机 存储介质的示例。计算机存储介质包括但不限于RAM、 ROM、 EEPROM、闪 存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并可由系
统600访问的任何其它介质。任何这样的计算机存储介质可以都是系统600的
一部分。
如本领域技术人员将会理解的,存储608可存储各种信息。除了其它类型 的信息之外,存储608可存储数据规则618和分布式系统上的信息的复制品 620。如上参考图2和3所述,取决于系统600是接收服务器还是中央服务器, 该数据规则可以是局部数据规则或全局数据规则。
系统600还包含允许系统与其它设备通信的通信连接612。通信连接612 是通信介质的示例。通信介质一般以诸如载波或者其它传输机制等已调制数据 信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何
信息传送介质。术语"已调制数据信号"指其一个或多个特征以将信息编码在 信号中的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介 质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外和其它 无线介质。本文使用的术语计算机可读介质包括存储介质和通信介质两者。
系统600还可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等 输入设备614。也可包括诸如显示器、扬声器、打印机等输出设备616。所有 这些设备在本领域中是已知的并且不必在此详细讨论。
本说明书通篇引述了 "一个实施例"或"一实施例",这意指特定描述的 特征、结构或特性包括在至少一个实施例中。因而,对这样的短语的使用可指 一个以上的实施例。此外,在一个或多个实施例中,所描述的特征、结构或特 性可用任何合适的方式组合起来。
然而,本领域的技术人员可认识到,本发明可在没有这些具体细节中的一 个或多个的情况下实施或者使用其它方法、资源、材料等来实施。仅仅为了避 免模糊本发明的各方面,在其它情况中,没有具体示出或者描述的公知的结构、 资源或操作。
尽管已经示出和描述了各示例实施例和应用,但应当理解,本发明不限于 所述的精确配置和资源。对于本领域技术人员显而易见的是,可在不背离本发 明的范围的情况下对在本文所公开的方法和系统的安排、操作和细节方面作出 各种修改、改变和变化。
2权利要求
1.一种处理包括多个服务器的分布式系统中的写请求的计算机实现的方法,所述多个服务器各自存储同一数据的复制品并且进行复制以维护存储在所述多个服务器上的所述复制品中的每一个之间的数据一致性,所述方法包括在第一服务器处接收带有要被写到存储在所述第一服务器上的复制品的数据的写请求,其中所述第一服务器是多个服务器之一;确定所述写请求中的所述数据是否服从全局数据规则;发送批准请求至中央服务器以批准接受所述写请求,其中所述中央服务器是所述多个服务器中的另一个服务器并且具有全局知识;从所述中央服务器接收指示所述批准请求是否已经被批准的消息;响应于所述中央服务器批准所述批准请求,所述第一服务器接受所述写请求并将所述数据写到存储在所述第一服务器上的所述复制品;以及响应于所述中央服务器不批准所述批准请求,所述第一服务器拒绝所述写请求。
2. 如权利要求1所述的计算机实现的方法,其特征在于,还包括所述第一服务器确定所述写请求中的所述数据是否满足局部数据规则;以及响应于所述数据确实满足所述局部数据规则的判断和所述中央服务器批 准所述批准请求,所述第一服务器接受所述写请求并且将所述数据写到存储在 所述第一服务器上的所述复制品;以及响应于所述数据不服从所述局部数据规则的判断,所述第一服务器拒绝所 述写请求。
3. 如权利要求1所述的计算机实现的方法,其特征在于,所述发送包括生 成所述批准消息和将所述数据包括在所述批准请求中。
4. 如权利要求3所述的计算机实现的方法,其特征在于,所述中央服务器 存储所述全局数据规则并且确定所述批准请求中的所述数据是否满足所述全 局数据规则。
5. 如权利要求3所述的计算机实现的方法,其特征在于,所述数据规则要 求所述数据相对于存储在所述分布式系统中的其它数据是唯一的。
6. 如权利要求1所述的计算机实现的方法,其特征在于,所述分布式系统 存储分布式目录并且所述写请求是使用轻量级目录访问协议来生成的。
7. 如权利要求1所述的计算机实现的方法,其特征在于,所述分布式系统存储分布式文件系统并且所述写请求涉及将数据写到在所述分布式文件系统 上的文件。
8. 如权利要求1所述的计算机实现的方法,其特征在于,所述写请求是从 访问所述分布式系统的客户机接收的。
9. 如权利要求1所述的计算机实现的方法,其特征在于,还包括在所述第 一服务器处存储用于在中央服务器不可用时决定接受还是拒绝写请求的策略。
10. —种在包括多个服务器的分布式系统中实施全局数据规则的计算机实 现的方法,所述多个服务器各自存储同一数据的复制品并且进行复制以维护存 储在所述多个服务器上的所述复制品之间的数据一致性,所述方法包括下列步 骤.'在中央服务器处存储供该中央服务器实施的全局数据规则,其中该中央服 务器是所述多个服务器之一;在所述中央服务器处接收由作为所述多个服务器中的一个不同服务器的 接收服务器所发送的批准请求,其中所述批准请求与在所述接收服务器处接收 到的写请求有关并且所述批准请求包括要被写到存储在所述接收服务器上的复制品的数据;所述中央服务器确定要被写到所述接收服务器的所述数据是否满足所述 全局数据规则;响应于所述数据不满足所述全局数据规则的判断,发送拒绝所述批准请求 的消息至所述接收服务器;以及响应于所述数据满足所述数据规则的判断将所述数据写到存储在所述中央服务器上的复制品;以及发送批准所述写请求的消息至所述接收服务器。
11. 如权利要求10所述的计算机实现的方法,其特征在于,还包括.-在所述写入之后,将所述数据复制到作为所述多个服务器之一的第二中央服务器。
12. 如权利要求11所述的计算机实现的方法,其特征在于,所述复制是在 所述发送之前执行的。
13. 如权利要求11所述的计算机实现的方法,其特征在于,所述复制是按 预定的时间表执行的。
14. 如权利要求10所述的计算机实现的方法,其特征在于,所述分布式系 统存储分布式目录服务并且所述写请求是使用轻量级目录访问协议生成的。
15. —种分布式系统,包括多个中央服务器,所述多个中央服务器中的每一个都存储要求全局知识来实施的数据规则并且每一个中央服务器可用于接收寻求批准将数据写到接收服务器的批准请求,其中所述批准请求包 括所述数据;确定所述写数据是否服从所述数据规则;响应于所述数据不服从所述数据规则的判断,发送拒绝所述批准请求的 消息至所述接收服务器;以及响应于所述数据服从所述数据规则的判断 将所述数据写到所述中央服务器,以及 发送批准所述批准请求的消息至所述接收服务器;以及 多个接收服务器,所述接收服务器中的每一个可用于 接收将数据写到所述接收服务器的写请求;发送批准请求至所述多个中央服务器之一,其中所述批准请求寻求所述 多个中央服务器之一对所述写请求的批准;响应于从所述中央服务器接收到批准所述批准请求的消息,接受所述写 请求并且将所述数据写到所述接收服务器;以及响应于从所述中央服务器接收到拒绝所述批准请求的消息,拒绝所述写请求。
16. 如权利要求15所述的分布式系统,其特征在于,所述多个中央服务器 实现与所述多个接收服务器不同的复制协议。
17. 如权利要求15所述的分布式系统,其特征在于,所述多个中央服务器 实现与所述多个接收服务器不同的复制拓扑结构。
18. 如权利要求17所述的分布式系统,其特征在于,所述多个中央服务器 实现全连接的复制拓扑结构。
19. 如权利要求15所述的分布式系统,其特征在于,所述多个接收服务器 各自还可用于存储在中央服务器不能用于接收批准请求时决定接受还是拒绝 写请求的策略。
20. 如权利要求15所述的分布式系统,所述多个中央服务器各自还可用于 接收将数据写到所述中央服务器的写请求。
全文摘要
所描述的是针对使用具有分布式系统中的信息的全局知识的指定服务器来处理写请求的各实施例。这些指定服务器用于实施对可被写到该分布式系统的数据进行限制的数据规则。为了确保被写到该分布式系统的数据与数据规则相一致,当该分布式系统内的另一个服务器接收到写入服从该数据规则的信息的请求时,该服务器必须在它可接受该写请求之前咨询指定服务器之一。如果指定服务器确定该数据与数据规则相一致,则批准该写请求。否则,拒绝该写请求。
文档编号G06F15/16GK101689166SQ200880022216
公开日2010年3月31日 申请日期2008年6月16日 优先权日2007年6月27日
发明者D·加夫里洛夫, E·S·弗莱士曼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1