基于策略的储存结构分布的制作方法

文档序号:9616332阅读:291来源:国知局
基于策略的储存结构分布的制作方法
【专利说明】基于策略的储存结构分布
[0001]本申请是2010年4月16日递交的申请号为201080026694.6、发明名称为“基于策略的储存结构分布”的发明专利申请的分案申请。
[0002]背景
技术领域
[0003]所公开的实施方案一般地涉及分布储存结构,并且更具体地,涉及跨多个服务器分布基于策略的储存结构。
【背景技术】
[0004]数据库由多个数据行构成,其中每行被划分为列或字段。一般地,一个字段被指定为关键字字段(key field)。在数据库结构中,每个关键字应当是唯一的。当使用者插入新数据时,数据库可以自动产生关键字,但使用者也可以产生关键字并且使所述关键字与所插入的数据一起被包括。如果使用者试图针对已在使用中的关键字增加数据,则导致错误。例如,新数据会重写(overwrite)已经与该关键字相关联的数据。
[0005]利用传统方法,由手动或手工完成在一组服务器上的数据库中的数据分布。例如,在银行业背景下,数据库可以包括银行数据、待决(pending)交易以及其他银行业信息。银行的客户(customer)拥有银行账户,银行账户具有银行账户号码。在任何时候,可以对每个账户进行多种操作。每个数据片(Piece of data)、每个要被执行的交易或者每个待决操作与账户号码(关键字)相关联。如果这些操作使用账户号码作为关键字来以普通数据库结构进行储存,在任何一次,仅有一条信息可以与该账户号码相关联。因为在数据库中,每个关键字仅允许一个输入(entry),所以当针对同一账户号码的多个交易都是待决的时候,则会出现问题和导致错误。
[0006]如果对一账户有多于一个操作正被执行,则将会保持针对该账户号码的一队列。在大量账户的情况下,单个服务器可能无法处理针对每个账户的所有数据和队列。结果,账户和账户队列应当被分布在一组服务器上。这样的任务是困难的,并且难于管理。增加或移去服务器只会增加管理的复杂度,因为队列和数据应当在所述服务器组上被重新平衡。这会达到成千上万个需要在一组消息服务器上被手动平衡或归位(home)的队列。
[0007]在包括每个关键字具有潜在的多个输入、交易或操作的大型数据库的任何背景(银行业或其他)下,可以针对每个具有多个输入的关键字创建队列。由于这样的系统难于手动地调度这样大量的队列,所以其难于管理。所述调度不是自动的并且是低效的。此夕卜,当服务器进入或离开服务器群时,会引入更大的复杂性,因为管理者则必须在一组新的服务器上重新计算和重新分布数据和待决交易。

【发明内容】

[0008]本公开涉及这样的数据结构,所述数据结构允许每个关键字多个输入。在实施方案中,数据结构可以类似于小队列的表或微型队列的表,在所述微型队列中每个微型队列输入具有相同的关键字。
[0009]本公开还涉及通过将特定关键字值映射到特定节点或服务器群,在一组服务器上对队列进行自动分布。在实施方案中,一致性哈希(consistent hashing)被用来确定队列在所述服务器组上的分布。
[0010]本公开还涉及对一组服务器自动且高效地增加或移除节点。在实施方案中,一致性哈希可以被用来对一组服务器增加或移除节点。
[0011 ] 本公开还涉及实施分布式容错储存架构。在实施方案中,一致性哈希可以被用来提供并行分布式容错。
[0012]本公开还涉及一种位于一个或更多个计算设备的系统上的数据储存器,所述数据储存器包括可执行代码,所述可执行代码执行下列步骤:接收多个数据输入,所述多个数据输入包括:第一数据输入,所述第一数据输入具有一个或更多个字段,其中至少一个字段为关键字字段,并且其中所述第一数据输入在所述关键字字段中具有第一关键字值;第二数据输入,所述第二数据输入具有一个或更多个字段,其中至少一个字段为关键字字段,并且其中所述第二数据输入在所述关键字字段中具有所述第一关键字值;以及将所述多个数据输入储存在所述数据储存器中的空间内。
[0013]其中,所述空间包括:数据库和表中的一个;以及基于策略的储存结构。
[0014]其中,所述第一数据输入和所述第二数据输入共同地包括基于策略的储存结构。
[0015]其中,所述基于策略的储存结构为微队列。
[0016]其中,所述基于策略的储存结构可操作来实现队列语义。
[0017]其中,所述队列语义包括以下内容中的至少一个:归类、排序、先入先出以及后入先出队列语义。
[0018]其中,所述空间包括至少一个基于策略的储存结构,其中所述至少一个基于策略的储存结构包括:所述第一数据输入;所述第二数据输入;以及所述多个数据输入中的任何相关数据输入,其中所述相关数据输入具有一个或更多个字段,其中至少一个字段为所述关键字字段,并且其中所述任何相关数据输入在所述关键字字段中具有所述第一关键字值。
[0019]其中,所述数据储存器还包括第二基于策略的储存结构,所述第二基于策略的储存结构包括:所述多个数据输入的第三数据输入,其中所述第三数据输入具有一个或更多个字段,其中至少一个字段为所述关键字字段,并且其中所述第三数据输入在所述关键字字段中具有第二关键字值;以及所述多个数据输入的第四数据输入,其中所述第四数据输入具有一个或更多个字段,其中至少一个字段为所述关键字字段,并且其中所述第四数据输入在所述关键字字段中具有第二关键字字段。
[0020]其中,所述基于策略的储存结构为微队列。
[0021]其中,所述基于策略的储存结构包括队列、链表、数组、堆栈、树和图中的一个。
[0022]其中,所述多个数据输入通过指定所述关键字值是可存取的。
[0023]其中,所述多个数据输入的具有特定关键字值的数据输入包括微队列,并且其中所述微队列通过指定所述特定关键字值是可存取的。
[0024]其中,所述多个数据输入包括操作或交易数据。
[0025]本公开还涉及一种用于在安装于一个或更多个计算设备上的一个或更多个服务器的系统上分布基于策略的数据结构的方法,所述方法包括:确定来自一空间的至少一个基于策略的数据结构,所述确定步骤包括:识别所述空间中的至少一个数据输入;确定所述至少一个数据输入的关键字值;将所述至少一个基于策略的数据结构映射到所述一个或更多个服务器的系统中的节点、节点群、服务器和服务器群中的一个,所述映射步骤包括使用考虑所述关键字值的分布算法。
[0026]其中,所述映射所述至少一个基于策略的数据结构的步骤包括在所述一个或更多个服务器的系统上分布至少一个微队列的操作。
[0027]其中,所述映射步骤包括使用一致性哈希算法。
[0028]其中,所述映射步骤包括:使用一致性哈希算法将所述一个或更多个服务器的系统中的节点映射到一刻度;使用所述一致性哈希算法将所述至少一个基于策略的数据结构映射到所述刻度;将所述至少一个基于策略的数据结构分配给最靠近节点,所述最靠近节点是在所述刻度上最靠近所述基于策略的数据结构被映射的节点。
[0029]其中,所述使用一致性哈希算法将所述一个或更多个服务器的系统中的节点映射到一刻度的步骤导致节点的基本上均匀分布。
[0030]其中,所述使用一致性哈希算法将所述一个或更多个服务器的系统中的节点映射到一刻度的步骤导致节点的基本上非均匀分布。
[0031]其中,所述确定所述空间中的至少一个基于策略的数据结构的步骤包括通过基于每个数据输入的关键字值对所述空间中的数据输入进行分组来确定多个基于策略的数据结构,并且其中所述映射所述多个基于策略的数据结构的步骤包括:使用一致性哈希算法将所述一个或更多个服务器的系统中的节点映射到一刻度;使用所述一致性哈希算法将所述多个基于策略的数据结构映射到所述刻度,其中所述多个基于策略的数据结构中的每个包括一组具有相同关键字值的数据输入,并且其中所述将所述多个基于策略的数据结构映射到所述刻度的步骤包括将所述多个基于策略的数据结构中的每个的所述关键字值映射到所述刻度;以及通过将所述基于策略的数据结构中的每个分配到在所述刻度上最靠近所述基于策略的数据结构被映射的节点,将所述多个基于策略的数据结构分配给所述映射的节点。
[0032]其中,所述映射所述至少一个基于策略的数据结构的步骤导致基于策略的数据结构在一组节点或服务器上的基本上均匀分布。
[0033]本公开还涉及一种对计算节点集合增加节点的方法,所述方法包括:将新节点加入所述计算节点集合作为依附节点;在所述依附节点处接收来自所述计算节点集合中其他主动节点的信息;以及此后,将所述依附节点升级为所述计算节点集合中的主动节点。
[0034]其中,所述加入所述新节点作为依附节点的步骤包括所述依附节点与所述计算节点集合中的所述其他主动节点相互作用。
[0035]其中,所述加入所述新节点作为依附节点的步骤包括所述依附节点获得所述计算节点集合中的所述其他主动节点的关键字空间。
[0036]其中,所述接收信息的步骤包括接收与一旦所述新节点成为主动节点时所述新节点将拥有的关键字值相关联的关键字值的拷贝。
[0037]其中,所述接收信息的步骤包括协调所述依附节点与所述计算节点集合中的所述其他主动节点之间的数据。
[0038]其中,所述接收信息的步骤包括所述依附节点监控更新的关键字值。
[0039]其中,接收信息的步骤还包括使用一致性哈希算法计算关键字值在包括所述新节点的计算节点集合上的分布。
[0040]本公开还涉及一种从计算节点集合移除要离开的节点的方法,所述方法包括:所述要离开的节点发信号通知所述计算节
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1