CN108491504B - 用于分布式配置管理的方法及装置 - Google Patents
用于分布式配置管理的方法及装置 Download PDFInfo
- Publication number
- CN108491504B CN108491504B CN201810233950.7A CN201810233950A CN108491504B CN 108491504 B CN108491504 B CN 108491504B CN 201810233950 A CN201810233950 A CN 201810233950A CN 108491504 B CN108491504 B CN 108491504B
- Authority
- CN
- China
- Prior art keywords
- data structure
- node
- peer
- network
- owner
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000005192 partition Methods 0.000 claims abstract description 30
- 230000003362 replicative effect Effects 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 48
- 230000010076 replication Effects 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 8
- 238000000638 solvent extraction Methods 0.000 claims 2
- 230000004048 modification Effects 0.000 abstract description 7
- 238000012986 modification Methods 0.000 abstract description 7
- 230000009471 action Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及用于分布式配置管理的方法及装置。具体地,涉及一种用于经网络复制数据结构的方法及装置,其中在多个联网的对等节点中为每个数据结构分配一个所有者节点。优选地,所有者可以通过数据结构中的信息来确定。当非所有者期望对数据结构进行更新时,修改数据结构的请求在网络上发送,并且当被所有者接收到时,所有者执行该修改。然后,关于该更新,所有者节点可以通知其它节点。通过单写者、多读者范例实现的所述方法确保了可用性、分区容限和最终的一致性;它避免了现有技术的集中式管理与锁定协议的高开销成本和单点故障缺陷。管理员可以连接到网络中的任何对等节点,以便管理、监视和请求对数据结构的修改。
Description
本申请是申请日为2012年6月13日、申请号为201280036259.0(PCT申请号:PCT/US2012/042244)、名称为“用于分布式配置管理的方法及装置”的发明专利申请的分案申请。
技术领域
本发明涉及计算机数据结构并且涉及用于经对等节点的网络复制数据结构的方法及装置。
背景技术
根据CAP定理,也称为Brewer定理,分布式计算机系统可以同时满足以下保证中任意两条,但不是全部三条:
●一致性(所有节点都同时看到相同的数据);
●可用性(节点故障不妨碍幸存节点继续运行);
●分区容限(虽然消息在一个分区丢失,但在这个分区两侧的节点都将继续运行)。
在对等的数据库复制拓扑结构中,对等点具有相同的表模式而且每个表行在每个对等点上都具有副本。数据操作可以在任何对等点上发生并且将被复制到其它所有对等点。但是,如果同一行的副本同时在不同的对等点上被操作,则有可能发生冲突。解决这种冲突可能很困难、耗时和/或涉及显著的开销。
传统的数据库使用锁定协议或主-从关系来保持数据在(例如,节点网络上的)多个系统之间同步。但是,分布式锁定协议需要相当大的开销,例如,节点必须发送对锁的请求、等待直到锁变得可用、进行修改、释放锁并且分布更新。主/从关系要求节点之间的完全连通性并且还生成大量的网络通信量。
发明内容
本申请根据本发明的一种或多种实施例,提供了一种经网络复制数据结构的方法,其中在多个联网的对等节点中为每个数据结构分配一个所有者节点。优选地,所有者可以通过数据结构中的信息来确定。当非所有者期望对数据结构的更新时,修改数据结构的请求在网络上发送,并且当被所有者接收到时,所有者执行修改。然后,关于这个更新,所有者节点可以通知其它节点。
相比于需要两次往返通信(即,一次用于改变所有关系而另一次用于修改数据)的现有技术方法,这种方法只有一次往返通信,因而是更为有效的协议。另外,当数据结构代表节点资源的时候,修改数据结构的节点还将修改该资源。还有,优选地,(来自非所有者节点的)修改数据结构的请求及(来自所有者节点的)响应也都是可以在网络上以与被修改的数据结构相同的方式复制的数据结构。
根据本发明的一种实施例,提供了一种在对等节点的网络上复制数据结构的方法,其中数据结构复制到网络上的所有节点,该方法包括步骤:
把单个对等节点指定为数据结构的所有者;
只允许所指定的所有者节点修改数据结构;及
当一个对等节点期望修改数据结构并且确定它不是所有者节点时,这一个对等节点启动修改数据结构的请求,该请求包括数据结构的其中一个并且被这一个对等节点所拥有,而且该请求发送到网络上所有节点;
所有者节点接收并执行该请求,以修改数据结构。
本发明可以与经由集中式服务器实现的分布式管理系统相区分开,其中集中式服务器提供单点故障,没有固有的(内置的)数据冗余性,而且在管理服务器和其它所有被管理的节点之间都需要连通性。相比之下,在本发明中,每个对等节点都提供对整个节点组的访问,存在数据冗余性,而且不需要在所有节点之间的直接连通性。例如,用户可以连接到任何参与的节点并且管理整个组。网络中的所有数据都复制到所有参与的节点。参与的节点只需要与整个组的部分连通性。通过所描述的机制,数据结构最终将在所有参与的节点中一致。通过遵循严格的单写者、多读者协议,更新冲突是不可能的并且确保了事务一致性。
如由CAP定理所定义的,一致性需要所有节点一直都彼此一致。在这里,每个数据结构都具有专用的所有者节点而且每个所有者节点维持关于它所拥有的数据结构的一致性。所有对等节点都通过复制处理实现关于不拥有的数据结构的最终一致性。可用性(经CAP定理)得以实现,因为每个节点对于其复制数据结构集合维持一致性,并且因此可以孤立地操作。分区容限(经CAP定理)得以实现,因为专用的数据结构所有关系和节点的局部一致性允许每个节点孤立地运行或者在存在组分区的情况下运行。数据所有关系还确保在分区合并的时候将不发生数据冲突。
在一个例子中,关系数据库在每个对等节点上被复制。数据库包括表,在该表中一列(字段)包含该表的行的所有者的标识符。只有该行的所有者被允许修改该行。当该行的一个实例被改变时,例如被创建、修改或删除时,为进行改变而生成的数据库命令存储在事务日志中。当应用认为所有更新都事务性地完成时,该改变通过网络被发送到所有对等节点。
在一个例子中,数据结构是通过传播而复制到网络上所有节点的。当更新(改变)到达进行接收的节点时,该节点检查它是否已经具有该更新。如果是,则该更新被丢弃。如果不是,则该更新被处理并且被发送到所有直接连接的节点。这确保了如果节点A和B连接而且节点B和C连接,则来自节点A的更新将到达节点C。这种更新机制可在所有节点不是直接彼此连接的网络中运行。
在一个例子中,所述方法允许在对等点之间滚动(rolling)更新,包括模式更新。例如,当对等节点处于比到达该节点的更新低的模式修订版本(revision)时,它将使更新排队直到该节点被更新成匹配那种模式修订版本的时候,在这个时候,它将应用所有待定的、模式匹配的更新。当对等节点处于比到达的更新低的模式修订版本时,它忽略那个修订版本。对等节点可以被请求向还不具有那些更新的节点发送任何丢失的更新。以这种方式,存储在数据库中的数据最终在所有对等节点中一致,甚至是在软件更新中一致。
根据本发明的一种实施例,提供了一种包含用于复制数据结构的方法的可执行程序指令的计算机可读介质,该方法包括:
在对等节点的网络上,其中数据结构被复制到该网络上所有节点;
把单个对等节点指定为数据结构的所有者;
只允许所指定的所有者节点修改该数据结构;及
当一个对等节点期望修改该数据结构并且确定它不是所有者节点时,该一个对等节点启动修改该数据结构的请求,该请求包括该数据结构中的一个并且被该一个对等节点所拥有,并且该请求发送到网络上的所有节点;及
所有者节点接收并执行该请求,以修改数据结构。
在一种实施例中,该方法包括:
所有者节点启动关于修改的数据结构的响应,该响应是该数据结构中的一个并且被所有者节点所拥有,并且该响应在网络上被复制。
在一种实施例中,该方法包括:
当响应被非所有者节点接收时,进行接收的节点确定它是否已经接收到该响应,并且如果是的话则丢弃该响应,如果不是的话则处理该响应。
在一种实施例中,响应包括用于该修改的数据结构的标识符。
在一种实施例中,该请求包括唯一识别该请求的标签。
在一种实施例中,该方法包括:
当一个对等节点期望修改该数据结构并且确定它是所有者节点时,该一个对等节点修改该数据结构。
在一种实施例中,当分区把网络分成多个网络分区时,每个网络分区上的复制保持为可运行的。
在一种实施例中,当该分区结束时,跨该分区的复制恢复。
在一种实施例中,该网络是其中所有节点不是直接连接的网络。
在一种实施例中,该数据结构包括所有者节点的标识符。
在一种实施例中,该数据结构包含跨所有节点而全局唯一的标识符。
在一种实施例中,该数据结构存储在数据库中。
在一种实施例中,该方法实现了关系数据库。
在一种实施例中,该数据结构是数据库表中的行。
在一种实施例中,该数据库结构描述网络接口、文件系统或者文件系统快照。
在一种实施例中,该数据结构、请求和响应通过传播而复制到网络上的所有节点。
根据本发明的另一种实施例,提供了一种由计算机网络实现的方法,该方法包括:
获得在多个对等节点上复制的数据结构的副本中的信息,该信息指示其中一个对等节点作为具有更新该数据结构的专用权的所有者节点;
经由该信息确定对等节点是否是所有者节点;
如果该对等节点不是所有者节点,则执行包括以下的动作:
向所有直接连接的对等节点发送更新该数据结构的请求,以传播该请求;
所有者节点接收请求,在接收到该请求之后更新该数据结构并且向所有直接连接的对等节点发送关于更新的数据结构的更新,以传播该更新。
根据本发明的另一种实施例,在计算环境中,在网络中的多个对等节点中的每个上面提供了一个装置,该装置包括:
复制管理器,可操作用于参与跨对等节点复制数据结构;
更新管理器,可操作用于更新对等节点上的数据结构的副本;及
配置管理器,可操作用于:基于数据结构中所包括的信息确定对等节点是否是该数据结构的所有者节点;如果该对等节点不是所有者节点,则启动修改该数据结构的请求;并且处理对关于修改的数据结构的请求的响应,其中所有者节点具有更新数据结构的专用权,并且请求和响应也是跨对等节点复制的数据结构。
附图说明
通过结合附图参考对各种实施例的具体描述,本发明可以得到更充分的理解,其中:
图1是用于实践本发明一种实施例的多个联网对等节点的示意性框图;
图2是根据本发明一种实施例的、涉及数据结构的副本的示例性动作的框图;
图3是根据本发明一种实施例的、配置为对等节点的装置的框图;
图4是根据本发明一种实施例的、在寻求修改数据结构的对等节点上可能发生的动作的流程图;
图5是根据本发明一种实施例的、在接收修改数据结构的请求的对等节点上可能发生的动作的流程图;及
图6是其中可以实现本发明各种实施例的计算系统环境的框图。
具体实施方式
图1是用于示出本发明一种实施例的、网络100中的多个对等节点101(标记为A、B、C、D、E、F)的示意图。每个对等节点具有全局唯一标识符(GUID),使得每个对等节点都可以经由网络上传送的消息来识别它在与哪个节点通信。对等节点以其中只有一些节点直接连接到其它节点的配置来进行布置。节点A直接连接到节点B和D;节点D直接连接到节点A、C和E;节点B直接连接到节点A和C;节点C直接连接到节点B和D;节点E直接连接到节点D和F;而节点F直接连接到节点E。在这个例子中,网络可以如虚线103所指示的那样地分区(在某个时间点),其中节点A-D位于一个网络分区104上(该分区的左手侧),而节点E-F位于另一个网络分区105上(该分区的右手侧)。在图1中还示出了诸如管理员的用户106,他可以查看网络的一个对等节点(例如,节点A),从而具有局部视图107,或者可以另选地查看全部多个节点并且具有全局视图108。
在各种实施例中,网络可以包括一个或多个局域网、广域网、直接连接、虚拟连接、私有网络、虚拟私有网络、互联网、以上所述的某种组合,等等。
每个对等节点都可以在一个或多个计算机上实现或者实现为一个或多个计算机,诸如结合图6所描述的计算机。对等节点101可以包括一个或多个处理,该处理请求直接或间接地访问存储在数据库中的数据。对等节点可以包括一个或多个处理,该处理请求直接或间接地访问存储在数据储存装置(data store)中的数据。对等节点可以包括用于组织或表示对数据的访问的文件系统等。
在一个例子中,数据库包括能够以结构化的格式存储数据的储存库。术语“数据”被广义地理解为包括可以存储在计算机存储介质上的任何东西。数据的一些例子包括信息、程序代码、程序状态、程序数据、其它数据等。
存储在数据库中的数据可以在表、记录、对象或其它数据结构等中组织。数据库可以包括关系数据库、面向对象的数据库、层次数据库、网络数据库或者其它类型的数据库、以上所述的某种组合或扩展,等等。
数据库可以经由数据库管理系统(DBMS)访问,包括控制数据库中的数据的组织、存储、管理和检索的一个或多个程序。DBMS可以接收访问数据库中的数据的请求并且可以执行提供这种访问所需的操作。访问可以包括读数据、写数据、删除数据、更新数据、包括以上所述一个或多个的组合,等等。数据库可以存储在数据储存装置上,包括能够存储数据的任何存储介质。在其上存储数据库的数据储存装置可以是外部的、内部的,或者包括在对等节点内部和外部二者的组件。
返回图1,在本发明的一个例子中,位于节点A的用户106启动对位于节点C的文件系统一(FS-1)的快照(snap)的命令。节点A确定它不是FS-1的所有者并且因此启动对FS-1的快照的请求,它把这个请求发送到网络100上所有直接连接的节点,即,节点D和B。进行接收的节点D和B进一步把该请求传播到所有直接连接的节点,由此在节点C处将从节点B和D接收到该请求的两个拷贝。类似地,节点E和F(假设没有分区)将经由节点D接收到该请求。
当节点C接收到第一个请求时,节点C确定它是关于FS-1的所有者节点。因此,它执行该请求,生成FS-1的快照。然后,节点C启动关于该文件系统快照的响应,它把该响应发送到所有直接连接的节点(即节点B和D),节点B和D通过把该响应发送到所有直接连接的节点来进一步传播该响应。以这种方式,请求的发起者即节点A接收到响应。现在,节点A可以向用户106提供快照FS-1。当节点C接收到第二个请求时,它简单地忽略它。以类似的方式,当节点A从节点B和D都接收到响应时,它简单地忽略第二个响应。
在一种另选的实施例中,先前在节点A上请求FS-1的快照的用户106可以移动到节点B并且在这里等待响应和快照FS-1。另选地,管理员106可以从节点B而不是节点A启动请求。因此,管理员可以连接到任何一个参与的节点并且有效地管理整个节点组。
在一个另选的例子中,其中一个节点可以启动对文件系统完整性检查的请求,而不是对文件系统快照的请求。然后,所有者节点将发送关于所请求的完整性检查的响应或周期性响应。
所述实施例可以用于跨多个节点使关系数据库同步。在关系数据库中,表中的一行是一个数据结构。通过把对任意给定行的更新限定到单个所有者节点,消除了对分布式锁的需求。只有拥有该数据结构的节点被允许改变它,而其它所有节点必须请求该所有者节点为它们改变该数据结构。因此,数据结构的所有关系是专用的。
通过把修改数据结构的能力限定到一个所有者,并且要求非所有者请求由所有者进行修改,复制期间的冲突是不可能的并且事务一致性可以维持。优选地,每个对等节点都保持对数据结构的每次修改的记录并且每个对等节点都不是按接收到事务变化的次序,而是按它们被创建的次序来应用事务变化。当对等节点由于更新从事务变化流中丢失而不能应用变化时,该节点负责向其对等节点索取丢失的事务。在一种实施例中,事务可以包括:
同样由(请求该改变的)发起节点所拥有的单调增加的事务数;
改变被应用到的模式修订版本;及
对数据结构所做的所有改变的记录。
还有,如果例如由于节点离线或者节点之间的链路发生故障而网络被分区,则该分区相对侧上的多个网络分区继续运行,即使在该分区发生数据丢失也是如此。每个节点继续从该分区的它那一侧的节点接收请求、响应及数据结构更新。然后,当该分区被去除时(例如,节点重新上线或者链路恢复运行)而且以前的网络分区结合到一起,现在这两侧都将接收新的响应、请求和更新,并且,因为每个节点都跟踪更新(例如,通过发起的时间),所以它可以确定它丢失了哪些更新、要求其它节点发送丢失的更新,然后按正确的次序应用所有更新,使得(以前的)分区两侧上的节点都重新回到同步。
所生成的请求和响应优选本身就是在对等节点上被复制的数据结构,例如,通过传播到所有直接连接的节点以最终被所有节点接收。因而,不仅(由所有者节点生成的)修改的数据结构在网络上被复制,而且请求和响应也是可以类似地被复制的数据结构。通过利用现有的复制处理,这简化了请求和响应的实现。此外,通过将请求的发起者指定为请求数据结构的所有者,并且将响应的发起者指定为响应数据结构的所有者,没有其它(非所有者)节点可以修改该请求或响应。
图2示出了修改数据结构的方法的一个例子。在这里,有标记为P1、P2和P3的三个对等节点,每个节点保持数据结构的一个副本。在这个例子中,数据结构有三个字段,第一个字段具有索引键k、第二个字段具有值x,而第三个字段具有该数据结构的所有者的标识符。在这里,节点3(P3)被指定为所有者节点并且因此是唯一可以修改该数据结构的节点。如图2中所示出的,当从另一个节点接收到请求时,或者当它自己主动进行时,节点P3修改第二个数据字段,以把它从x变成y。然后,所有者节点P3把这个修改复制到其它节点P1和P2。在复制之后,所有3个节点在每个字段中都包含相同的数据。
图3示出了用于实现对等节点的装置120的一种实施例。该装置包括各种程序模块122、数据储存装置124和通信机构126。程序模块可以包括复制管理器130、更新管理器132和配置管理器134。通信机构126允许装置与网络上的其它节点通信。通信机构可以是网络接口或适配器、调制解调器或者用于与其它节点建立通信的任何其它机构。
数据储存装置124是能够存储数据的任何存储介质。储存装置可以包括文件系统或数据库。储存装置可以是外部的、内部的或者包括在装置120内部和外部两者的组件。
复制管理器130可操作用于参与跨对等节点复制数据结构。这可以通过发送数据结构、对数据结构的改变、改变数据结构中所涉及的动作或者本领域技术人员理解的各种其它途径来进行。例如,在更新管理器132更新数据结构之后,对副本的修改(更新)可以经由复制管理器130复制到其它对等节点。
如前面所描述的,配置管理器134实现了对修改数据结构的请求和响应。
图4-5是一般性地表示根据本发明各种实施例可能发生的动作的流程图。应当理解,流程图不是限制性的并且所示出的动作可以按其它次序执行,可以出现附加的动作或者删除一个或多个动作。
图4是一般性地表示在期望修改数据结构的对等节点上可能发生的动作的流程图140。在第一个方框141,动作开始。在下一个方框142,例如,从数据结构本身当中获得数据结构的所有关系信息。在下一个方框143,例如通过利用图3的配置管理器134,对等节点确定它是否是数据结构的所有者。对等节点可以确定它是数据结构的所有者(方框144)。如果不是,则在下一个方框145,例如,对等节点启动请求,该请求经由图3的通信机构126被发送到其所有相邻的(直接连接的)对等节点。在下一个方框146,从所有者节点接收对该请求的响应。然后,对等节点处理该响应并且相应地修改数据结构(下一个方框147);这可以由图3的更新管理器132执行。在下一个方框148,如果有其它动作的话,则执行它们。
另选地,如果发起所期望的改变的节点确定它是该数据结构的所有者节点(在方框144),则它立即前进到修改该数据结构(方框147)。在这里,不需要发送请求。在这种情况下,所有者节点将随后生成关于修改的数据结构的消息,该消息被发送(方框148)到所有直接连接的节点并且在网络上传播,以在所有对等节点上复制该修改的数据结构。
图5是一般性地表示在接收修改数据结构的请求的对等节点上可能发生的动作的流程图150。在第一个方框151,动作开始。在下一个方框152,对等节点接收修改数据结构的请求。在下一个方框154,例如通过利用图3的配置管理器134,该对等点确定它是否是该数据结构的所有者节点。如果该节点确定它是这个数据结构的所有者,则在下一个方框155中,例如通过利用图3的更新管理器132,该节点修改该数据结构。然后,所有者节点通过如下方式把关于该修改的数据结构的响应发送到网络上的所有其它节点:把该响应直接发送到所有直接连接的节点,然后又将该响应传播到其它节点(方框156)。在方框157,如果有其它动作的话,则执行它们。
另选地,在方框154,如果对等点确定它不是所有者对等点,则它避免对请求作出响应(方框158)。相反,它立即进行其它任何动作(方框157),例如,把请求转发到所有直接连接的节点,以便把请求传播到其它节点。
图6示出了可以实现本发明的主旨的各方面的每个节点处的计算系统(计算机)的例子。这仅仅是计算系统的一个例子,而且它不意味着是限定性的。总的来说,这里所描述的主旨可以实现为通用或专用计算系统,包括服务器计算机、多处理器系统、网络PC、大型机计算系统及包括以上任何系统或设备的系统,等等。
本发明的主旨可以实现为由计算机执行的计算机可执行指令,诸如程序模块。这种程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。任务可以由通过通信网络链接的远程处理设备执行。
在图6的例子中,计算装置210包括处理器220、存储器222、数据储存装置224、盘驱动器225、键盘/鼠标230、显示器226和网络接口232。组件经由系统总线234耦合到一起。本发明的软件产品可以加载到数据储存装置224中并且在运行期间被传送到(例如RAM的)存储器222中并且由处理器220执行。
计算机210在联网环境中运行。例如,网络接口232可以把系统总线234耦合到局域网(LAN),该LAN提供对可以具有内部或外部储存装置的远程计算机的访问。当在广域网(WAN)环境中使用时,计算机210可以经由调制解调器在WAN(诸如互联网)上与远程计算机和储存装置通信。
如在此所使用的,计算机可读介质可以是可以由计算机访问的任何介质,既包括易失性又包括非易失性介质,既包括可移动又包括不可移动介质。
如在此所使用的,计算机存储介质既包括易失性又包括非易失性介质,既包括可移动又包括不可移动介质,以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息。计算机存储介质包括RAM、ROM、EEPROM、FLASH存储器或者其它存储器技术,CD-ROM、数字通用光盘(DVD)或者其它光盘储存装置,盒式磁带、磁带、磁盘储存装置或者其它磁性存储设备,或者可以用于存储期望的信息并且可以由计算机访问的任何其它介质。
链接网络上对等节点的通信介质可以包括有线介质及诸如声音、RF、红外线或其它无线介质的无线介质。通信介质可以传送被调制的数据信号,诸如用信息或任何其它传输机制进行编码的载波。术语“被调制的数据信号”意味着具有一个或多个特性变化以便在信号中编码信息的信号。在另一个实施例中,节点可以暂时性地连接,例如,允许通过USB钥匙(key)传输数据结构更新。
如在此所使用的,术语“包括”及其变体应当理解为意味着“包括但不限于”的开放式术语。除非上下文明确地另外的指示,否则术语“或者”应当理解为“和/或”。
应当理解,以上描述意在说明而不是限制本发明的范围。
Claims (20)
1.一种计算机实现的方法,用于在对等节点的网络上复制数据结构,所述方法包括:
在对等节点的网络上利用单个复制方法,用于复制以下数据结构中的每个数据结构:
更新后的数据结构;
请求数据结构;
响应数据结构;
其中所述单个复制方法通过每个对等节点处的复制管理器而被实现,所述复制管理器能操作以实现跨所述对等节点维持的数据结构之间的最终一致性,包括实现在所述网络上未直接连接的对等节点之间的最终一致性,并且
其中所述方法能够既在将所述网络划分为多个网络分区的分区期间又在所述分区结束之后操作,而无需改变所述数据结构的所有关系;
其中,所述单个复制方法包括:
为每个数据结构指定单个专用的对等节点作为所述数据结构的所有者节点,其中只有所指定的所有者节点被允许更新所述数据结构;
当所述对等节点中的任意一个对等节点期望更新所述数据结构中的一个数据结构时,期望更新所述一个数据结构的一个对等节点确定所述一个对等节点是否是所述一个数据结构的所述所有者节点,并且:
如果所述一个对等节点确定所述一个对等节点是所述一个数据结构的所述所有者节点,所述一个对等节点更新所述一个数据结构,并且请求由所述复制管理器将更新后的数据结构通过传播而被复制到所述网络上的其他全部对等节点;
如果所述一个对等节点确定所述一个对等节点不是所述一个数据结构的所述所有者节点,则所述一个对等节点生成请求数据结构,所述请求数据结构由所述复制管理器通过传播而被所述一个对等节点所有并且被类似地复制到所述网络上的其他全部对等节点,其中所述请求数据结构包括更新所述一个数据结构的请求;
当接收到所述请求时,所述所有者节点通过更新所述一个数据结构并且生成响应数据结构来执行所述请求,所述响应数据结构由所述复制管理器通过传播而被所述所有者节点所有并且被类似地复制到所述网络上的其他全部对等节点,其中所述响应数据结构包括更新后的所述一个数据结构。
2.如权利要求1所述的计算机实现的方法,其中所述单个复制方法包括:
当所述响应数据结构被非所有者节点接收时,进行接收的所述节点确定所述节点是否已经接收到所述响应数据结构,并且如果是的话则丢弃所述响应数据结构,如果不是的话则所述节点处理所述响应数据结构。
3.如权利要求2所述的计算机实现的方法,其中所述响应数据结构包括用于更新后的所述一个数据结构的标识符。
4.如权利要求1所述的计算机实现的方法,其中所述请求数据结构包括唯一识别所述一个数据结构的标签。
5.如权利要求1所述的计算机实现的方法,其中所述网络是在其中不是所有对等节点都被直接连接的网络。
6.如权利要求1所述的计算机实现的方法,其中所述一个数据结构包括所有者节点的标识符。
7.如权利要求1所述的计算机实现的方法,其中所述一个数据结构包含跨全部对等节点而全局唯一的标识符。
8.如权利要求1所述的计算机实现的方法,其中所述一个数据结构存储在数据库中。
9.如权利要求1所述的计算机实现的方法,其中所述单个复制方法实现关系数据库。
10.如权利要求1所述的计算机实现的方法,其中所述一个数据结构是数据库表中的行。
11.如权利要求1所述的计算机实现的方法,其中所述一个数据结构描述网络接口、文件系统或者文件系统快照。
12.一种在计算环境中在网络中的多个对等节点中的每个对等节点上的装置,所述装置包括:
复制管理器,能操作用于参与跨对等节点复制数据结构;
更新管理器,能操作用于更新对等节点上的数据结构;以及
配置管理器,能操作用于确定对等节点是否是数据结构的所有者节点;
其中,所述复制管理器、更新管理器和配置管理器包括存储在存储器上且能操作为在处理器上执行以执行方法的程序指令,所述方法包括:
在所述对等节点之间利用单个复制方法用于复制以下数据结构中的每个数据结构:
更新后的数据结构;
请求数据结构;
响应数据结构;
其中所述单个复制方法通过每个对等节点处的复制管理器而被实现,所述复制管理器能操作以实现跨所述对等节点维持的数据结构之间的最终一致性,包括实现在所述网络上未直接连接的对等节点之间的最终一致性,并且
其中所述方法能够既在将所述网络划分为多个网络分区的分区期间又在所述分区结束之后操作,而无需改变数据结构的所有关系;
其中所述单个复制方法包括:
为每个数据结构指定单个专用的对等节点作为所述数据结构的所有者节点,其中只有所指定的所有者节点被允许更新所述数据结构;
当所述对等节点中的任意一个对等节点期望更新所述数据结构中的一个数据结构时,期望更新所述一个数据结构的一个对等节点确定所述一个对等节点是否是所述一个数据结构的所述所有者节点,并且:
如果所述一个对等节点确定所述一个对等节点是所述一个数据结构的所述所有者节点,所述一个对等节点更新所述一个数据结构,并且请求由所述复制管理器将更新后的数据结构通过传播而被复制到所述网络上的其他全部对等节点;
如果所述一个对等节点确定所述一个对等节点不是所述一个数据结构的所述所有者节点,则所述一个对等节点生成请求数据结构,所述请求数据结构由所述复制管理器通过传播而被所述一个对等节点所有并且被类似地复制到所述网络上的其他全部对等节点,其中所述请求数据结构包括更新所述一个数据结构的请求;
当接收到所述请求时,所述所有者节点通过更新所述一个数据结构并且生成响应数据结构来执行所述请求,所述响应数据结构由所述复制管理器通过传播而被所述所有者节点所有并且被类似地复制到所述网络上的其他全部对等节点,其中所述响应数据结构包括更新后的所述一个数据结构。
13.如权利要求12所述的装置,其中所述配置管理器能操作用于:
当所述响应数据结构被非所有者节点接收时,进行接收的所述节点确定所述节点是否已经接收到所述响应数据结构,并且如果是的话则丢弃所述响应数据结构,如果不是的话则所述节点处理所述响应数据结构。
14.如权利要求12所述的装置,其中所述网络是在其中不是所有对等节点都被直接连接的网络。
15.如权利要求12所述的装置,其中所述一个数据结构包括所有者节点的标识符。
16.如权利要求12所述的装置,其中所述一个数据结构包含跨全部对等节点而全局唯一的标识符。
17.如权利要求12所述的装置,其中所述一个数据结构存储在数据库中。
18.如权利要求12所述的装置,其中所述程序指令能操作用于实现关系数据库。
19.如权利要求12所述的装置,其中所述一个数据结构是数据库表中的行。
20.如权利要求12所述的装置,其中所述一个数据结构描述网络接口、文件系统或者文件系统快照。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/167,365 US9436748B2 (en) | 2011-06-23 | 2011-06-23 | Method and apparatus for distributed configuration management |
US13/167,365 | 2011-06-23 | ||
CN201280036259.0A CN103703464B (zh) | 2011-06-23 | 2012-06-13 | 用于分布式配置管理的方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280036259.0A Division CN103703464B (zh) | 2011-06-23 | 2012-06-13 | 用于分布式配置管理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491504A CN108491504A (zh) | 2018-09-04 |
CN108491504B true CN108491504B (zh) | 2021-08-24 |
Family
ID=46465278
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810233950.7A Active CN108491504B (zh) | 2011-06-23 | 2012-06-13 | 用于分布式配置管理的方法及装置 |
CN201280036259.0A Active CN103703464B (zh) | 2011-06-23 | 2012-06-13 | 用于分布式配置管理的方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280036259.0A Active CN103703464B (zh) | 2011-06-23 | 2012-06-13 | 用于分布式配置管理的方法及装置 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9436748B2 (zh) |
EP (1) | EP2724263A1 (zh) |
JP (1) | JP6059216B2 (zh) |
CN (2) | CN108491504B (zh) |
AU (1) | AU2012273295B2 (zh) |
BR (1) | BR112013032706A8 (zh) |
CA (1) | CA2840178C (zh) |
WO (1) | WO2012177461A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930409B2 (en) | 2012-10-15 | 2015-01-06 | Oracle International Corporation | System and method for supporting named operations in a distributed data grid |
US9378068B2 (en) | 2013-03-13 | 2016-06-28 | International Business Machines Corporation | Load balancing for a virtual networking system |
US9438670B2 (en) | 2013-03-13 | 2016-09-06 | International Business Machines Corporation | Data replication for a virtual networking system |
CA2867585A1 (en) * | 2013-10-15 | 2015-04-15 | Coho Data Inc. | Methods, devices and systems for coordinating network-based communication in distributed server systems with sdn switching |
US9183148B2 (en) * | 2013-12-12 | 2015-11-10 | International Business Machines Corporation | Efficient distributed cache consistency |
US11449322B2 (en) | 2015-05-08 | 2022-09-20 | Desktop 365, Inc. | Method and system for managing the end to end lifecycle of a cloud-hosted desktop virtualization environment |
US10303453B2 (en) | 2015-05-08 | 2019-05-28 | Desktop 365, LLC | Method and system for managing the end to end lifecycle of the virtualization environment for an appliance |
CN104935657A (zh) * | 2015-06-15 | 2015-09-23 | 清华大学深圳研究生院 | 主动推送信息的方法和嵌入式节点操作系统 |
CN106375102B (zh) * | 2015-07-22 | 2019-08-27 | 华为技术有限公司 | 一种服务注册方法、使用方法及相关装置 |
CN107885488B (zh) | 2016-09-29 | 2021-06-01 | 微软技术许可有限责任公司 | 意图和具有意图的锁 |
US10963873B2 (en) * | 2017-04-14 | 2021-03-30 | Mastercard International Incorporated | Systems and methods for monitoring distributed payment networks |
US10970177B2 (en) * | 2017-08-18 | 2021-04-06 | Brian J. Bulkowski | Methods and systems of managing consistency and availability tradeoffs in a real-time operational DBMS |
US11947516B1 (en) * | 2018-02-22 | 2024-04-02 | Amazon Technologies, Inc. | Multi-tier definition management for distributed data stores |
US11314886B1 (en) | 2021-04-02 | 2022-04-26 | CyLogic, Inc. | Secure decentralized P2P filesystem |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008053372A2 (en) * | 2006-08-28 | 2008-05-08 | Bycast Inc. | Scalable distributed object management in a distributed fixed content storage system |
US7516491B1 (en) * | 2002-10-17 | 2009-04-07 | Roger Schlafly | License tracking system |
CN101923550A (zh) * | 2009-06-15 | 2010-12-22 | 马杰 | 一种在分布式环境下防止非法复制文件的方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748429B1 (en) | 2000-01-10 | 2004-06-08 | Sun Microsystems, Inc. | Method to dynamically change cluster or distributed system configuration |
US6704730B2 (en) | 2000-02-18 | 2004-03-09 | Avamar Technologies, Inc. | Hash file system and method for use in a commonality factoring system |
CA2331474A1 (en) | 2001-01-19 | 2002-07-19 | Stergios V. Anastasiadis | Stride-based disk space allocation scheme |
JP4131781B2 (ja) | 2001-03-30 | 2008-08-13 | 株式会社東芝 | 分散処理型データベース管理システム |
US7493363B2 (en) * | 2001-09-19 | 2009-02-17 | Microsoft Corporation | Peer-to-peer group management and method for maintaining peer-to-peer graphs |
US8311980B2 (en) * | 2002-12-09 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Namespace consistency for a wide-area file system |
US7139781B2 (en) | 2003-04-29 | 2006-11-21 | International Business Machines Corporation | Managing filesystem versions |
EP1617341A1 (en) | 2004-07-16 | 2006-01-18 | International Business Machines Corporation | File operation management device |
US8495266B2 (en) * | 2004-12-10 | 2013-07-23 | Hewlett-Packard Development Company, L.P. | Distributed lock |
JP4635615B2 (ja) | 2005-01-17 | 2011-02-23 | 富士ゼロックス株式会社 | 情報処理装置、システム、データ同期方法及びプログラム |
US7814078B1 (en) | 2005-06-20 | 2010-10-12 | Hewlett-Packard Development Company, L.P. | Identification of files with similar content |
US7454592B1 (en) | 2006-02-16 | 2008-11-18 | Symantec Operating Corporation | Block-level and hash-based single-instance storage |
WO2008070688A1 (en) | 2006-12-04 | 2008-06-12 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
US20080201335A1 (en) | 2007-02-20 | 2008-08-21 | Nec Laboratories America, Inc. | Method and Apparatus for Storing Data in a Peer to Peer Network |
US8028106B2 (en) | 2007-07-06 | 2011-09-27 | Proster Systems, Inc. | Hardware acceleration of commonality factoring with removable media |
US8073922B2 (en) * | 2007-07-27 | 2011-12-06 | Twinstrata, Inc | System and method for remote asynchronous data replication |
US7747663B2 (en) | 2008-03-05 | 2010-06-29 | Nec Laboratories America, Inc. | System and method for content addressable storage |
US20100106744A1 (en) * | 2008-10-23 | 2010-04-29 | Microsoft Corporation | Conflict prevention for peer-to-peer replication |
US9077727B2 (en) * | 2008-12-30 | 2015-07-07 | Telecom Italia S.P.A. | Method and system for data management in peer-to-peer network |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
US20110225121A1 (en) * | 2010-03-11 | 2011-09-15 | Yahoo! Inc. | System for maintaining a distributed database using constraints |
-
2011
- 2011-06-23 US US13/167,365 patent/US9436748B2/en active Active
-
2012
- 2012-06-13 WO PCT/US2012/042244 patent/WO2012177461A1/en unknown
- 2012-06-13 JP JP2014517025A patent/JP6059216B2/ja not_active Expired - Fee Related
- 2012-06-13 AU AU2012273295A patent/AU2012273295B2/en not_active Ceased
- 2012-06-13 CA CA2840178A patent/CA2840178C/en not_active Expired - Fee Related
- 2012-06-13 BR BR112013032706A patent/BR112013032706A8/pt not_active Application Discontinuation
- 2012-06-13 EP EP12732895.3A patent/EP2724263A1/en not_active Ceased
- 2012-06-13 CN CN201810233950.7A patent/CN108491504B/zh active Active
- 2012-06-13 CN CN201280036259.0A patent/CN103703464B/zh active Active
-
2016
- 2016-08-29 US US15/249,864 patent/US10255340B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516491B1 (en) * | 2002-10-17 | 2009-04-07 | Roger Schlafly | License tracking system |
WO2008053372A2 (en) * | 2006-08-28 | 2008-05-08 | Bycast Inc. | Scalable distributed object management in a distributed fixed content storage system |
CN101923550A (zh) * | 2009-06-15 | 2010-12-22 | 马杰 | 一种在分布式环境下防止非法复制文件的方法 |
Non-Patent Citations (1)
Title |
---|
"Consistency maintenance in peer-to-peer file";Jiang Lan ET AL;《IEEE Xplore》;20030709;第2-3页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2012177461A1 (en) | 2012-12-27 |
EP2724263A1 (en) | 2014-04-30 |
BR112013032706A8 (pt) | 2017-10-10 |
CA2840178A1 (en) | 2012-12-27 |
CN108491504A (zh) | 2018-09-04 |
US10255340B2 (en) | 2019-04-09 |
US9436748B2 (en) | 2016-09-06 |
CN103703464A (zh) | 2014-04-02 |
US20160371354A1 (en) | 2016-12-22 |
US20120331029A1 (en) | 2012-12-27 |
BR112013032706A2 (pt) | 2017-01-24 |
AU2012273295B2 (en) | 2016-09-29 |
JP2014524078A (ja) | 2014-09-18 |
JP6059216B2 (ja) | 2017-01-11 |
CA2840178C (en) | 2016-11-08 |
AU2012273295A1 (en) | 2014-01-16 |
CN103703464B (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491504B (zh) | 用于分布式配置管理的方法及装置 | |
AU2019201733B2 (en) | Active state blockchain synchronization | |
US10831720B2 (en) | Cloud storage distributed file system | |
US8805810B2 (en) | Generalized reconciliation in a distributed database | |
US20190370362A1 (en) | Multi-protocol cloud storage for big data and analytics | |
RU2421799C2 (ru) | Безопасность в приложениях синхронизации равноправных узлов | |
US5434994A (en) | System and method for maintaining replicated data coherency in a data processing system | |
KR20200100173A (ko) | 데이터베이스 시스템 내의 데이터 복제 및 데이터 장애 조치 | |
CN104239439A (zh) | 选择性的数据库复制 | |
US20100145911A1 (en) | Serverless Replication of Databases | |
EP4276651A1 (en) | Log execution method and apparatus, and computer device and storage medium | |
Xhafa et al. | Data replication in P2P collaborative systems | |
JP2011522337A (ja) | サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用 | |
US20230126173A1 (en) | Methods, devices and systems for writer pre-selection in distributed data systems | |
Masud et al. | Synchronizing Data through Update Queries in Interoperable E-Health and Technology Enhanced Learning Data Sharing Systems. | |
Gustafsson et al. | A Mobile Unit Synchronization Algorithm-A Partial Database Synchronization Scheme between a Centralized Server and Mobile Units | |
Abdul-Mehdi et al. | New Transaction Management Model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |