CN1848849A - 复制目录修改的方法和装置 - Google Patents
复制目录修改的方法和装置 Download PDFInfo
- Publication number
- CN1848849A CN1848849A CN 200610066740 CN200610066740A CN1848849A CN 1848849 A CN1848849 A CN 1848849A CN 200610066740 CN200610066740 CN 200610066740 CN 200610066740 A CN200610066740 A CN 200610066740A CN 1848849 A CN1848849 A CN 1848849A
- Authority
- CN
- China
- Prior art keywords
- request
- directory
- duplicate
- source
- modification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
复制目录的修改包括在用于源目录的源目录服务中接收对在源目录中进行修改的请求,并在多个数据通信连接上异步并行地将对在副本目录中进行相同修改的请求从源目录服务传输给用于副本目录的副本目录服务。在典型实施例中,副本目录可复制源目录的子树,接收修改请求可包括在源目录服务中接收对在源目录内的子树中进行修改的请求,并且传输请求可包括传输对在副本目录内的子树中进行相同修改的请求。
Description
技术领域
本发明涉及数据处理,并尤其涉及用于复制(replicate)目录的修改的方法、系统和产品。
背景技术
目录服务例如LDAP服务或X.500服务是计算机实现的数据存储和检索方法。‘LDAP’指示轻量级目录访问协议,这是一组用于访问信息目录的协议。X.500是用于目录结构的ISO和ITU标准。X.500目录是具有用于信息的每个范畴例如国家、州和城市的不同层次的层次结构即树结构。LDAP是基于X.500标准的,但是简单很多。并且与X.500不同,LDAP支持TCP/IP,这是用于面向互联网的目录访问的重要特征。
目录服务是根据目录协议操作的系统。LDAP是协议或实际上是一组协议。X.500标准包括目录访问协议。目录协议的一般模型是客户机之一针对服务器执行协议操作。在此模型中,客户机传输协议请求,该协议请求向服务器说明将在目录上执行的操作,即修改、比较、安全绑定等。服务器然后负责在目录中执行该被请求的操作。在操作完成时,服务器将包含任何结果或错误的响应返回给请求客户机。另外,目录协议通常也允许服务器将到其他服务器的转荐(referral)返回给客户机。作为对整体系统性能的帮助,这允许服务器将联系其他服务器以继续操作的工作卸载回给客户机。
目录服务通过利用针对快速读取优化的备份数据库为其目录树中的数据实现持久性。例如,这种备份数据库可以是例如关系数据库或BTREE。目录中的数据的层次结构或树表示为属性类型-属性值对。这种结构提供了设计目录项时的灵活性。例如,特定的用户记录可具有添加的新数据类型而不需要重新设计整个数据库。可存储任何类型的文本或二进制数据。目录服务对于相对静态的信息例如公司目录、用户数据、消费者数据、密码和安全密钥(security key)尤其有用。
为了高可用性和可伸缩性,在两个或多个目录服务器中复制目录数据。目录可包括大量的数据,并且每秒可发生许多对目录项的更新。副本(replica)可被具有很长延迟的网络链路分隔开。对大目录的高数据量访问会很慢。密歇根大学开发了被称为‘独立LDAP更新数据守护程序’或‘SLURPD’的早期的目录复制的方法,但是SLURPD复制在慢的网络链路上非常慢。在2001年3月的由R.Harrison、J.Sermershein和Y.Dong个别提交给因特网工作组的名为draft-rharrison-iburp-03.txt的文件中公开了被称为‘批量更新/复制协议’或‘LBURP’的另一种目录复制方法。LBURP将目录操作分组为束,从而可一次发送更多操作,而不是复制单个操作并等待响应。但是,LBURP没有利用处理中的并行性,并且LBURP也引入了额外的网络通信量开销,这是因为每个目录操作必须具有额外的封装。
发明内容
公开了这样的方法、系统和计算机程序产品,其一般操作以通过并行传送修改请求来提供目录复制而不需要另外封装请求消息。更具体地,说明了用于复制目录的修改的示例性方法、系统和产品,其包括在用于源目录的源目录服务中接收对在源目录中进行修改的请求,并在多个数据通信连接上异步并行地将对在副本目录中进行相同修改的请求从源目录服务传输给用于副本目录的副本目录服务。在典型实施例中,副本目录可复制源目录的子树,接收修改请求可包括在源目录服务中接收对在源目录内的子树中进行修改的请求,并且传输请求可包括传输对在副本目录的子树中进行相同修改的请求。
一些实施例可包括识别对相关串行操作的请求。在这样的实施例中,传输请求可包括在相同数据通信连接上传输被识别的对相关串行操作的请求。在这样的实施例中,对相关串行操作的请求可包括修改项的模式的请求和随后的修改该项的请求。对相关串行操作的请求可包括对创建或移动具有子项的项的请求和随后的修改该子项的请求。对相关串行操作的请求可包括删除或移动项的子项的请求和随后的修改该项的请求。对相关串行操作的请求可包括修改项的请求和随后的修改该项的请求。
实施例还包括由源目录服务将多个请求归类为原子事务。在这样的实施例中,传输请求可包括在相同数据通信连接上传输原子事务的被归类的请求。
从下面对如附图所示的本发明的示例性实施例的更具体的说明中可清楚地看到本发明的前述和其他目标、特征和优点,在所述附图中同样的标号通常代表本发明的示例性实施例的相同部分。
附图说明
图1给出根据本发明的实施例的用于复制目录的修改的示例性系统的网络图。
图2给出根据本发明的实施例的包括可用于复制目录的修改的示例性计算机的自动计算机器的框图。
图3给出根据本发明的实施例的用于复制目录的修改的示例性系统的框图。
图4给出根据本发明的实施例的用于复制目录的修改的示例性方法的流程图。
图5给出根据本发明的实施例的用于复制目录的修改的另一个示例性方法的流程图。
图6给出根据本发明的实施例的用于复制目录的修改的再一个示例性方法的流程图。
具体实施方式
参照附图并从图1开始说明根据本发明的实施例的用于复制目录的修改的示例性方法、系统和产品。图1给出根据本发明的实施例的用于复制目录的修改的示例性系统的网络图。图1的系统通常通过在用于源目录的源目录服务中接收对源目录中的修改的请求,并在多个数据通信连接上异步并行地将对在副本目录中进行相同修改的请求从源目录服务传输给用于副本目录的副本目录服务,来根据本发明的实施例复制目录的修改。图1的系统包括源服务器(102),该服务器是可在其上安装用于源目录的源目录服务的计算机。‘源目录服务’是使其全部或部分目录树通过其他目录服务被复制的目录服务。所述其他目录服务在本说明书中被称为‘副本目录服务’。由源目录服务管理的目录树被称为‘源目录树’。由副本目录服务管理的目录树被称为‘副本目录树’。图1的系统包括一些副本服务器(104、106、108),所述副本服务器是可在其上安装用于副本目录的副本目录服务的计算机。
根据本发明的实施例的源目录服务通常用作对目录树包括其自己的目录树以及一个或多个副本目录树中的一个或多个目录树(或子树)的修改的‘源’。修改包括改变目录项中的数据值,从目录中删除项,向目录添加新的项,以及在目录中移动数据即改变项在目录树中的位置。并非所有对访问目录数据的请求都修改目录数据。不修改目录数据的请求包括用于交换安全数据的绑定请求、搜索请求、比较请求以及一些用户定义的扩展请求。
图1的示例性系统包括通过网络(100)连接到源服务器(102)和副本服务器(104、106、108)以进行数据通信的一些客户机设备。客户机设备包括膝上型计算机(116)、个人数字助理(‘PDA’)(114)、个人计算机(112)和移动电话(110)。客户机设备包括根据目录协议例如LDAP发出目录请求消息的目录客户端软件。请求消息代表对修改目录项、绑定安全数据、搜索目录树等的请求。为了有效使用服务器资源,副本服务器(104、106、108)可仅应答搜索和比较请求,而仅从源服务器(102)接受修改请求,并针对来自客户机设备的修改请求返回到源服务器(102)的转荐。类似地,源服务器(102)可配置成仅执行修改请求,而将搜索和比较请求转荐到副本服务器(104、106、108)。这样,尤其为了可伸缩性和效率,所有修改被引导通过单个服务器,该单个服务器可例如实现完整的主目录,同时副本服务器仅实现子集或子树。
实际上,有用的是指出,不需要副本服务器复制在源服务器上实现的整个目录。在根据本发明的实施例复制目录的修改时,副本服务器通常仅复制源服务器上的主目录的子树。考虑使用与图1中所示的系统类似的系统的示例,该系统为在欧洲、中国和美国具有办事处的跨国组织的用户在源服务器中实现用于用户账户信息的目录树。此示例可将整个目录包括所有修改处理放置在物理地位于例如芝加哥的源服务器(102)上,并且:
·在北京在副本服务器(104)上放置存储位于北京的用户的用户账户信息的子树,
·在纽约在副本服务器(106)上放置存储位于美国的用户的用户账户信息的子树,以及
·在法兰克福在副本服务器(108)上放置存储位于欧洲的用户的用户账户信息的子树。
在此示例中,客户机可向副本服务器提出修改请求,而副本服务器可将这样的请求转荐回给源服务器。源服务器(102)首先在它的主目录树中进行所有修改,并然后:
·将对中国子树的修改传输给北京的副本服务器(104);
·将对美国子树的修改传输给纽约的副本服务器(106);以及
·将对欧洲子树的修改传输给法兰克福的副本服务器(104)。
根据本发明的实施例改进源服务器(102)中的源目录服务,以将对在源目录中进行的相同修改的请求传输给副本服务器。该传输在多个数据通信连接(118)上并行地进行。图1仅示出源服务器(102)和副本服务器之间的两个数据通信连接,但是在本发明的范围内,源服务器可为这样的并行传输使用任何数量的数据通信连接。
构成图1中所示的示例性系统的服务器和其他设备的安排是用于说明而不是限制。本领域内的那些技术人员可想到,根据本发明的各种实施例有用的数据处理系统可包括图1中未示出的其他的服务器、路由器、其他设备和对等体系结构。这样的数据处理系统中的网络可支持许多数据通信协议,包括例如TCP(传输控制协议)、IP(网际协议)、HTTP(超文本传输协议)、WAP(无线访问协议)、HDTP(手持设备传输协议)以及本领域内的那些技术人员可想到的其他协议。本领域的各种实施例可在除了图1所示的硬件平台之外的多种硬件平台上实现。
根据本发明复制目录的修改通常利用计算机即自动计算机器实现。例如在图1的系统中,网络、服务器和客户机设备在某种程度上至少实现为计算机。因此为了进一步说明,图2给出包括根据本发明的实施例可用于复制目录的修改的示例性计算机(152)的自动计算机器的框图。图2的计算机(152)包括至少一个计算机处理器(156)或‘CPU’以及随机存取处理器(168)(“RAM”),该随机存取存储器通过系统总线(160)连接到处理器(156)和计算机的其他部件。
RAM(168)中存储有包括根据本发明的实施例的用于复制目录的修改的计算机程序指令的源目录服务。源目录服务复制对也存储在RAM(168)中的源目录树(428)的修改。RAM(168)中还存储有源接收队列(434)、主线程(468)、一些传输队列(416、418和420)和一些传输线程(417、419、421)。每个传输线程为了一个传输队列在源目录服务和副本目录服务之间的数据通信连接上操作数据通信。源目录服务按客户机请求到达的顺序将客户机请求串行地放置在源接收队列中。主线程(468)通常操作以从源接收队列(434)移除请求,并将它们放置在传输队列中,从而将它们在多个数据通信连接(460)上并行地传输。
RAM(168)中还存储操作系统(154)。可用于根据本发明的实施例的计算机的操作系统包括UNIXTM、LinuxTM、Microsoft NTTM、AIXTM、IBM的i5/OSTM和本领域内的技术人员可想到的其它操作系统。图2的示例中的操作系统(154)和源目录服务(438)被示为位于RAM(168)中,但是这种软件的许多组件通常还存储在非易失存储器(166)中。
图2的计算机(152)包括通过系统总线(160)连接到处理器(156)和计算机(152)的其他部件的非易失计算机存储器(166)。非易失计算机存储器(166)可被实现为硬盘驱动器(170)、光盘驱动器(172)、电可擦除可编程只读存储空间(所谓的‘EEPROM’或‘闪速’存储器)(174)、RAM驱动器(未示出)、或本领域内的那些技术人员可想到的任何其他类型的计算机。
图2的示例性计算机包括一个或多个输出/输出接口适配器(178)。计算机中的输入/输出接口适配器通过例如用于控制对显示设备(180)例如计算机显示屏的输出以及来自用户输入设备(181)例如键盘和鼠标的用户输入的软件驱动器和计算机硬件,实现面向用户的输入/输出。
图2的示例性计算机(152)包括用于实现与其它计算机(182)尤其是副本服务器的数据通信连接(460)的通信适配器(167)。这样的数据通信可通过RS-232连接、通过外部总线例如USB、通过数据通信网络例如IP网络、以及以本领域内的技术人员可想到的其它方式执行。通信适配器实现数据通信的硬件级,通过该硬件级至少一个传输线程(417、419、421)直接地或通过网络将数据通信发送给副本服务器。根据本发明的实施例的可用于确定目的地的可用性的通信适配器的示例包括用于有线拨号通信的调制解调器、用于有线网络通信的以太网(IEEE 802.3)适配器以及用于无线网络通信的802.11b适配器。每个数据通信适配器可串行操作,但是它们组合在一起可支持向副本服务器并行传输对在源目录树中进行的相同修改的请求。
为了进一步说明,图3给出了根据本发明的实施例的用于复制目录的修改的示例性系统的框图。图3的系统包括源目录服务(438)和副本目录服务(440)。源目录服务从目录客户机接收到对在源目录树(428)中进行修改的请求,所述目录客户机在此示例中为个人计算机(112)。所述请求被串行地存储在源接收队列(434)中。图3的系统包括一些传输队列(451)和一些传输线程(452),一个传输线程用于一个传输队列。每个传输线程是从其对应的队列中按请求入队的顺序检索请求并将请求发送给副本目录服务的数据通信程序。图3的源目录服务(438)还包括主线程(468),该主线程是这样的计算机程序,其从源接收队列(434)移除请求并将它们放置在传输队列中,从而多个传输线程可在多个数据通信连接(460)上并行地传输它们。为了快速访问,源目录树(428)在可行的程度上被保持在RAM中,并具有由数据库管理系统(‘DBMS’)(430)提供的持久性,该数据库管理系统转而操作关系数据库(432)、BTREE类型的数据库(433)或本领域内的那些技术人员可想到的某种其他持久数据存储。
如上所述,用于图3中的数据通信的目录协议是客户机-服务器、请求响应协议。但是,有用的是指出,特定设备是客户机还是服务器是角色的问题而不是固定的指定。当源目录服务(438)从客户机(112)接收修改请求并更新其源目录树时,源目录服务(438)担当目录服务器。当源目录服务(438)使用传输线程将那些相同的修改请求发送给副本目录服务(440)时,源目录服务(438)担当目录客户机。
图3的系统包括在副本目录树(454)中复制(replicate或duplicate)源目录(428)的至少一个子树的副本目录服务(440)。副本目录服务(440)将每个数据通信连接视为用于修改副本目录树(454)中的项的客户机请求的源。副本目录服务(440)通常通过将在并行数据通信连接(460)上接收到的每个请求按请求被接收的顺序入队在其副本接收队列(436)中而操作。在此示例中,副本目录服务(440)没有为每个接收线程(461、462、464、466)提供单独的接收队列,而是提供单个副本接收队列(436),所有被接收到的请求按请求被接收到的顺序被放置在该单个副本接收队列中。为了快速访问,副本目录树(428)在可行的程度上被保持在RAM中,并具有由数据库管理系统(‘DBMS’)(430)提供的持久性,该数据库管理系统转而操作关系数据库(458)、BTREE类型的数据库(459)或本领域内的那些技术人员可想到的某种其他持久数据存储。
为了进一步说明,图4给出根据本发明的实施例的用于复制目录的修改的示例性方法的流程图,该方法包括在源目录服务(438)和副本目录服务(440)之间打开(402)两个或更多个数据通信连接(460)。图4的方法包括在用于源目录的源目录请求服务(438)中接收(404)对在源目录中进行修改的请求(406-414)。源目录被实现为源目录树(428),该源目录树的持久性由DBMS(430)和备份数据库(432)提供。
图4的方法包括将对在副本目录中进行相同修改的请求(444-450)从源目录服务传输(424)给用于副本目录(454)的副本目录服务(440)。源目录服务(438)在多个数据通信连接(460)上异步并行地传输这些请求。可实现为如上所述的主线程的传输功能(424)按请求被接收到的顺序从源接收队列(434)中移除请求,并且将每个请求添加到最短的可用传输队列(451)中。该队列可实现为C程序设计语言中的链表、C++或Java中的队列类、汇编程序中的链表或本领域内的那些技术人员可想到的任何程序设计语言中的任何其他的队列结构。
如上所述,在图4的方法中,副本目录(454)可复制源目录(428)的子树,从而传输功能可从一些副本服务器中选择向其传输特定的请求的特定的副本服务器。接收(404)修改请求可包括在源目录服务(438)中接收对在源目录(428)内的特定子树中进行修改的请求,并且传输请求(424)可通过传输对在副本目录(454)内的相同子树中进行相同修改的请求而执行。
图4的方法还包括根据从目录客户机接收到的请求(406-414)更新(426)源目录(428)。在此示例中,源目录树(428)是主目录,其子树被复制在一个或多个副本目录(454)中。因此,从目录客户机接收到的修改目录的请求有利地不仅在副本中执行而且在源目录(428)中执行。
为了进一步说明,图5给出根据本发明的实施例的用于复制目录的修改的另一个示例性方法的流程图,该方法与图4的方法类似。就是说,图5的方法包括接收修改请求(404),将所述请求传输(424)给副本目录服务,并根据请求(404-414)更新(426)源目录(428),这些都如在上文针对图4的方法说明的那样。但是,图5的方法还包括识别(502)对相关串行操作的请求,并且在图5的方法中,传输(424)请求包括在相同的数据通信连接上传输(504)被识别的对相关串行操作的请求。
对相关串行操作的请求是对这样的目录操作的请求,这些目录操作是有用地按照它们的请求最初被接收到的顺序执行的。在分离的数据通信连接上传输这样的请求带有这样的风险,即这些请求可能在副本目录服务上被不按次序地执行。在第二请求(412)之前到达源目录服务(438)的请求(414),当在不同的、较慢的数据通信连接上被传输时,可能在第二请求之后到达副本目录服务(440)。
对相关串行操作的请求的一个示例是修改项的模式(schema)的请求和随后的修改该项的请求。模式是属性类型定义、对象类定义和其他信息的集合,目录服务使用该信息来确定如何对照项的属性匹配过滤器或属性值断言(在比较操作中),以及是否允许添加和修改操作。例如,在试图修改项之前执行允许项的修改的模式改变是有用的。
对相关串行操作的请求的另一个示例是创建或移动具有子项的项的请求和随后的修改该子项的请求。在试图修改子项之前该子项存在是有用的。移动项意味着改变其识别名(distinguished name)以及其在其目录树中的位置。随后的修改项的请求将试图在项的新位置访问该项。因此,在试图在项的新位置访问该项之前将该项移动到其新位置是有用的。
对相关串行操作的请求的再一个示例是删除或移动项的子项的请求和随后的修改该项的请求。修改项可能修改一个或多个该项的子项。随后的修改项的请求依赖于先前的子项的删除或移动,这意味着子项不再处于将被修改的子项中。如果子项仍在那里,则它会遭受不希望的修改的风险。
对相关串行操作的请求的又一个示例是修改项的请求和随后的修改该项的请求。对单个项的很多修改有用地是按特定的顺序执行的。例如,考虑移动后面跟着删除。该删除是针对它认为该项先前已移动到的新位置。进行删除的试图失败,则使副本树留有在源目录树中不再存在的项。
在图5的示例中,在相同数据通信连接上传输(504)被识别的对相关串行操作的请求可由主线程执行,该主线程以与在源目录服务中接收请求的顺序相同的顺序将相关串行操作添加到相同传输队列中。队列具有一最大大小。将所有对相关串行操作的请求放置在相同传输队列中确保了它们将以与它们在源目录服务中被接收的顺序相同的顺序到达副本目录服务。如果在可将所有对一组被识别的相关串行操作的请求放置在队列中之前该队列已满,则主线程等待直到该特定传输队列中有可用空间。对于非串行相关的请求,主线程可如上所述将请求添加到最短的可用队列。
为了进一步说明,图6给出根据本发明的实施例的用于复制目录的修改的另一个示例性方法的流程图,该方法与图4的方法类似。就是说,图6的方法包括接收修改请求(404),将请求所述传输(424)给副本目录服务,并根据所述请求更新(426)源目录(428),这些都如以上针对图4的方法说明的那样。但是,图6的方法还包括由源目录服务(438)将多个请求归类为一原子(atomic)事务,并且在图6的方法中,传输请求(424)包括在相同数据通信连接上传输(604)原子事务的被归类的请求。
事务是将被原子地执行的一组对在目录树上进行修改操作的请求。这些请求和操作被以‘全部或没有’的方式执行。如果一事务的所有操作都执行成功,则该事务成功。如果出于任何原因该组的任何操作失败,则整个组被回滚(roll back)到开始处,就象完全没有发生操作似的。
在应用水平事务存在许多应用,并且许多DBMS支持事务处理。例如,考虑具有借方和贷方的簿记。每个日记帐分录包含一组平衡的借方和贷方。如果单个借方或贷方分录错误而没有事务处理,则结果是日记帐或分类帐不再平衡。因此,用于记账和簿记的数据处理系统通常将簿记分录归类在原子事务中。如果事务中的任何分录错误,则回滚整个事务,从而使簿记平衡。
按照目录协议的请求可实现影响多于一个目录项的操作。这种操作通常被原子地执行,但是目录协议通常不提供跨越请求或操作的原子性。但是,可通过用户扩展将跨越请求或操作的原子性添加到目录协议。例如,LDAP是可扩展协议。在LDAP标准中提供了用户扩展。事务通常由应用程序中的客户端软件‘归类’,即划定范围、打开和关闭。它们被DBMS和用户扩展的目录协议支持,但是例如是记账系统知道哪些借方和贷方参与哪些事务。
在图6的示例中,归类函数(602)通过在接收队列(434)中在被归类的请求之前插入‘打开事务’请求(606)以及在该接收队列中在被归类的请求之后插入‘提交事务’请求(608),将请求(410、412、414)归类为一事务。如上所述,打开事务请求和提交事务请求通常是从目录客户机例如个人计算机(112)上的客户端应用例如记账程序接收的。然后这样的请求将出现在源接收队列中,并通常被用于源目录树(428)的更新函数(426)处理。因此,源目录服务(438)中的归类函数(602)将打开和提交请求(606、608)放置在接收队列(434)中是有用的,因为打开和提交请求(606、608)然后通过传输函数(424)被呈现给副本目录服务(440)并还被呈现给用于源树(428)的更新函数(426)。
目光敏锐的读者现在会询问,既然是应用级需要事务并知道如何划定事务的范围,为什么由源目录服务归类事务。答案是总的处理效率。给目录树提供持久性的备份服务器将事务数据分组地提交给持久存储器,从而最小化输入/输出成本,并减小对一组修改进行重新索引的开销。因此,根据本发明的实施例的复制目录的修改的系统可有用地将一组请求归类为事务,尽管没有客户级的应用请求这样的归类。
在图6的方法中,传输请求(424)包括在相同数据通信连接上传输(604)一原子事务的被归类的请求。应记得,在分离的数据通信连接上并行传输的请求可能以不同的顺序到达副本目录服务。例如如果在分离的、较慢的数据通信连接上传输打开事务请求,并在较快的连接上传输其余的事务请求,则有可能打开事务请求实际上比用于该事务的提交请求较迟地到达复制事务服务。此外,一原子事务的被归类的请求经常有利地以与它们被放置在源接收队列中的顺序相同的相同顺序执行。如果在分离的连接上传输一事务中的被归类的请求,则它们也可能不按次序地到达。为此,根据本发明的实施例的复制目录的修改的系统可有用地在相同的数据通信连接上传输(604)一原子事务的被归类的请求。不管事务的请求是被源目录服务(438)还是被目录客户机(112)上的应用归类,这都是正确的。
主要在用于复制目录的修改的全功能的计算机系统的情境中说明了本发明的示例性实施例。但是,本领域内的有技术的读者可认识到本发明还可体现为设置在信号承载介质上以便与任何合适的数据处理系统一起使用的计算机程序产品。这样的信号承载介质可以是用于机器可读信息的传输介质或可记录介质包括磁介质、光介质或其它合适的介质。可记录介质的示例包括硬盘驱动器或软盘内的磁盘、光盘驱动器的光盘、磁带和本领域内的技术人员可想到的其它介质。传输介质的示例包括用于语音通信的电话网络,以及数字数据通信网络例如EthernetTM和使用网际协议及万维网通信的网络。本领域内的技术人员将立即认识到,具有合适的编程装置的任何计算机系统将能够执行体现为程序产品的本发明的方法的步骤。本领域内的技术人员将立即认识到,尽管本说明中说明的一些示例性实施是面向安装在计算机硬件上并且在其上执行的软件,但是实现为固件或硬件的其他可选择实施例也完全在本发明的范围内。
从前文说明应理解,可对本发明的各种实施例进行修改和改变而不会背离本发明的真正精神。此说明书中的说明仅是用于说明目的而不应在限制的意义上理解。本发明的范围仅由下文的权利要求的语言限制。
Claims (13)
1.一种用于复制目录的修改的方法,该方法包括:
在用于源目录的源目录服务中接收对在该源目录中进行修改的请求;以及
在多个数据通信连接上异步并行地将对在副本目录中进行相同修改的请求从源目录服务传输到用于副本目录的副本目录服务。
2.根据权利要求1的方法,其中:
所述副本目录包括所述源目录的子树;
接收修改请求还包括在所述源目录服务中接收对在该源目录中的子树中进行修改的请求;以及
传输请求还包括传输对在该副本目录内的子树中进行相同修改的请求。
3.根据权利要求1的方法,还包括识别对相关串行操作的请求,其中传输请求还包括在相同数据通信连接上传输被识别的对相关串行操作的请求。
4.根据权利要求3的方法,其中,所述对相关串行操作的请求还包括修改一项的模式的请求和随后的修改该项的请求。
5.根据权利要求3的方法,其中,所述对相关串行操作的请求还包括创建或移动具有子项的项的请求和随后的修改该子项的请求。
6.根据权利要求3的方法,其中,所述对相关串行操作的请求还包括删除或移动项的子项的请求和随后的修改该项的请求。
7.根据权利要求3的方法,其中,所述对相关串行操作的请求还包括修改一项的请求和随后的修改该项的请求。
8.根据权利要求1的方法,还包括由源目录服务将多个请求归类为原子事务,其中传输请求还包括在相同数据通信连接上传输原子事务的被归类的请求。
9.一种用于复制目录的修改的装置,该装置包括计算机处理器和操作地连接到该计算机处理器的计算机存储器,该计算机存储器中设置有能够执行以下操作的计算机程序指令:
在用于源目录的源目录服务中接收对在该源目录中进行修改的请求;以及
在多个数据通信连接上异步并行地将对在副本目录中进行相同修改的请求从源目录服务传输给用于副本目录的副本目录服务。
10.根据权利要求9的装置,其中,
所述副本目录包括所述源目录的子树;
接收修改请求还包括在所述源目录服务中接收对在该源目录内的子树中进行修改的请求;以及
传输请求还包括传输对在该副本目录内的子树中进行相同修改的请求。
11.根据权利要求9的装置,还包括能够识别对相关串行操作的请求的计算机程序指令,其中传输请求还包括在相同数据通信连接上传输被识别的对相关串行操作的请求。
12.根据权利要求9的装置,还包括能够由源目录服务将多个请求归类为原子事务的计算机程序指令,其中传输请求还包括在相同数据通信连接上传输原子事务的被归类的请求。
13.一种用于复制目录的修改的计算机程序产品,该计算机程序产品位于信号承载介质上,该计算机程序产品包含能够执行前面方法权利要求的任何一个方法的步骤的计算机程序指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/104,046 US8856068B2 (en) | 2005-04-12 | 2005-04-12 | Replicating modifications of a directory |
US11/104,046 | 2005-04-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1848849A true CN1848849A (zh) | 2006-10-18 |
CN1848849B CN1848849B (zh) | 2011-01-12 |
Family
ID=37078206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610066740 Active CN1848849B (zh) | 2005-04-12 | 2006-04-07 | 复制目录修改的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8856068B2 (zh) |
CN (1) | CN1848849B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508926A (zh) * | 2011-11-30 | 2012-06-20 | 山东中创软件商用中间件股份有限公司 | 一种目录数据解析方法和系统 |
CN104504123A (zh) * | 2014-12-31 | 2015-04-08 | 天津南大通用数据技术股份有限公司 | 一种基于日志拆分的目录复制实现方法 |
CN107888655A (zh) * | 2017-10-09 | 2018-04-06 | 成都启航信息技术有限公司 | 一种目录服务数据管理方法及系统 |
CN108334316A (zh) * | 2017-01-18 | 2018-07-27 | 北京京东尚科信息技术有限公司 | 应用开发实现方法和装置 |
CN103353867B (zh) * | 2005-12-29 | 2018-08-14 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10375203B2 (en) * | 2011-02-28 | 2019-08-06 | Red Hat, Inc. | Generating a selection of cloud data distribution service from alternative providers for staging data to host clouds |
US9026496B1 (en) * | 2011-09-30 | 2015-05-05 | Emc Corporation | Efficient building of restore list |
CN103107898A (zh) * | 2011-11-09 | 2013-05-15 | 阿尔卡特朗讯公司 | 用于同时发送或接收多个管理对象的方法、设备以及系统 |
US8914327B2 (en) | 2012-03-16 | 2014-12-16 | Apple Inc. | Methods and systems for searching a backup volume |
US11102313B2 (en) * | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US10423608B2 (en) * | 2015-10-26 | 2019-09-24 | International Business Machines Corporation | Dynamic directory of objects based on logical attributes |
CN110909521B (zh) * | 2019-11-14 | 2024-03-12 | 抖音视界有限公司 | 在线文档信息的同步处理方法、装置及电子设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
US5799141A (en) * | 1995-06-09 | 1998-08-25 | Qualix Group, Inc. | Real-time data protection system and method |
US6446077B2 (en) * | 1998-09-21 | 2002-09-03 | Microsoft Corporation | Inherited information propagator for objects |
US6751634B1 (en) * | 1999-08-26 | 2004-06-15 | Microsoft Corporation | Method and system for detecting object inconsistency in a loosely consistent replicated directory service |
US6615223B1 (en) * | 2000-02-29 | 2003-09-02 | Oracle International Corporation | Method and system for data replication |
EP1244015B1 (en) | 2001-03-21 | 2015-08-19 | Sap Se | Parallel replication mechanism for state information produced by serialized processing |
US6782399B2 (en) | 2001-06-15 | 2004-08-24 | Hewlett-Packard Development Company, L.P. | Ultra-high speed database replication with multiple audit logs |
EP1488330B1 (en) | 2002-03-15 | 2014-05-07 | Shinkuro, Inc. | Method for forming groups |
US7225204B2 (en) | 2002-03-19 | 2007-05-29 | Network Appliance, Inc. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
JP2004000072A (ja) | 2002-05-31 | 2004-01-08 | Iseki & Co Ltd | コンバインの刈取伝動装置 |
US8311980B2 (en) | 2002-12-09 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Namespace consistency for a wide-area file system |
US7117221B2 (en) * | 2003-01-09 | 2006-10-03 | International Business Machines Corporation | Replication of changed information in a multi-master environment |
US7584474B2 (en) * | 2003-02-25 | 2009-09-01 | Bea Systems, Inc. | Systems and methods for transaction chaining |
US7587422B2 (en) * | 2003-04-24 | 2009-09-08 | Neopath Networks, Inc. | Transparent file replication using namespace replication |
-
2005
- 2005-04-12 US US11/104,046 patent/US8856068B2/en active Active
-
2006
- 2006-04-07 CN CN 200610066740 patent/CN1848849B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353867B (zh) * | 2005-12-29 | 2018-08-14 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储系统 |
CN102508926A (zh) * | 2011-11-30 | 2012-06-20 | 山东中创软件商用中间件股份有限公司 | 一种目录数据解析方法和系统 |
CN102508926B (zh) * | 2011-11-30 | 2015-01-07 | 山东中创软件商用中间件股份有限公司 | 一种目录数据解析方法和系统 |
CN104504123A (zh) * | 2014-12-31 | 2015-04-08 | 天津南大通用数据技术股份有限公司 | 一种基于日志拆分的目录复制实现方法 |
CN104504123B (zh) * | 2014-12-31 | 2018-10-16 | 天津南大通用数据技术股份有限公司 | 一种基于日志拆分的目录复制实现方法 |
CN108334316A (zh) * | 2017-01-18 | 2018-07-27 | 北京京东尚科信息技术有限公司 | 应用开发实现方法和装置 |
CN108334316B (zh) * | 2017-01-18 | 2022-01-28 | 北京京东尚科信息技术有限公司 | 应用开发实现方法和装置 |
CN107888655A (zh) * | 2017-10-09 | 2018-04-06 | 成都启航信息技术有限公司 | 一种目录服务数据管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US8856068B2 (en) | 2014-10-07 |
US20060230078A1 (en) | 2006-10-12 |
CN1848849B (zh) | 2011-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1848849B (zh) | 复制目录修改的方法和装置 | |
KR102293093B1 (ko) | 분산된 데이터 스토어 내의 버젼형 계층 데이터 구조 | |
US11308123B2 (en) | Selectively replicating changes to hierarchial data structures | |
US11609895B2 (en) | Methods and systems for appending data to large data volumes in a multi-tenant store | |
US20210109907A1 (en) | Versioning schemas for hierarchical data structures | |
US11574070B2 (en) | Application specific schema extensions for a hierarchical data structure | |
US9165047B2 (en) | Data synchronization system and method | |
US8543596B1 (en) | Assigning blocks of a file of a distributed file system to processing units of a parallel database management system | |
CN101576915B (zh) | 一种分布式b+树索引系统及构建方法 | |
US6850969B2 (en) | Lock-free file system | |
US11366802B1 (en) | Batch undo processing for transaction rollbacks in a multi-writer database | |
JPH0822409A (ja) | ネットワークにおける配布情報管理システム | |
US11741144B2 (en) | Direct storage loading for adding data to a database | |
US20180276267A1 (en) | Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system | |
CN105550342B (zh) | 一种全透明的分布式数据库的数据处理方法 | |
US11657088B1 (en) | Accessible index objects for graph data structures | |
US11379463B1 (en) | Atomic enforcement of cross-page data constraints in decoupled multi-writer databases | |
US11874796B1 (en) | Efficient garbage collection in optimistic multi-writer database systems | |
CN117493389A (zh) | 基于日志的处理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |