分布式数据库系统的利记博彩app

文档序号:7607168阅读:325来源:国知局
专利名称:分布式数据库系统的利记博彩app
技术领域
本发明涉及分布式数据库系统;例如,本发明涉及这样安排的分布式数据库系统,以便提供增强的数据存储和查找性能。此外,本发明还涉及在这样的分布式数据库系统中存储和/或检索数据的方法。
背景技术
分布式数据库系统是公知的。当前的因特网就是一个大型的分布式数据库的例子,它提供数据存储和数据检索。公司内部数据库系统也应用多年了,例如在跨国公司不同区域办公室之间应用。
在已发布的编号为PCT/US02/04349(WO02/065329)国际PCT专利申请中,叙述一个对等(peer-to-peer)的存储系统,包括一个存储协调器,根据通过中心管理控制台管理的系统策略中心地管理分布式的资源。
在一个已知的现代大型分布式数据库系统中,安排几个节点相互通信,以形成一个动态的节点簇,可操作用来集中处理数据库操作。在这样的簇中,每个节点通常都作为一个终端用户个人计算机实现,执行一个或多个数据库软件程序。此外,这些节点方便地安排在现代终端用户因特网连接上通信。而且,在这样的簇中通常可以有超过百万个节点。已知数据库的每个节点都可以存储一些数据记录。存储在该网络的节点中的这些数据记录合起来形成该数据库系统的数据。
在操作中,该数据库系统的每个节点可以通过与其它节点通信发出一个或多个查找询问,例如与该簇的其它节点通信。数据库系统的节点响应一个或多个请求一起共同操作来定位匹配该一个或多个请求的数据记录。
本发明人了解专有网络结构,这些结构已由第三方提出,是以分布式数据库的形式实现的。这样的专有结构与商标名称,例如“Freenet”,“MicrosoftPeer-to-Peer Stack”,“FastTrack”和“Kademlia”相联系是已知的。
本发明人认识到有几个主要的性能特征,在设计包含多个参与节点的大型分布式数据库系统时有利地提出了。
第一个性能特征是广度查询功能。理想地,分布式数据库系统中每个数据记录是由一个或多个关键字=数值(key=value)对表示。因此该数据库可操作用来处理象“找到类型=书,作者包含‘john’,题目以‘探险’开头,价格<50的记录”的查询。
第二个性能特征是短的查找时间。理想地,例如在线用户体验对他们的一个或多个查询的有效立即的响应,安排该数据库传递查找响应给在线用户的时间少于1秒,例如0.5秒。
第三个性能特征是该数据库在要求其参与节点低通信带宽时能够实现。典型地,现代终端用户因特网连接具有不对称的带宽,例如一个64kb/s数量级的输出带宽比其相应的至少512kb/s数量级的输入带宽更有限。
第四个性能特征是容错。在该数据库中,当该数据库的几个节点不能工作时,总体数据库中几乎没有出现数据丢失或者性能恶化的情况。
因此本发明人设计了与前面所述的专有数据库的另一种分布式数据库系统,设计这个数据库系统时考虑了所述四个性能特征。

发明内容
本发明的第一个目的是提供另一个数据库系统,能够提供在前面所述的四个性能特征之间的更好的折中。
本发明的第二个目的是提供一个节点网络,包括更加优化的节点功能分配,这样该网络能提供一个增强的数据库系统。
根据本发明的第一方面,提供一个分布式数据库系统,包括多个参与节点和支持在参与节点之间数据传输的通信网络,其特点在于该参与节点包括第一子集的存储节点和第二子集的接口节点;该存储节点可操作用于存储一个或多个数据记录和/或响应从该接口节点接收的指令检索一个或多个数据记录;该存储节点分组为多个时隙,每个存储节点已在其特定的时隙内存储实际上所有其它存储节点的地址;每个时隙的存储节点还存储该系统的其它时隙的存储节点的一个或多个地址;
每个接口节点存储一个或多个存储节点的地址;配置该系统,从而其每个接口节点都至少包括以下之一(a)第一计算装置,用于分析接收的数据和继而确定对应于该接收数据的一个或多个时隙,该系统可操作用于存储该接收数据作为对应于该接收数据的所述一个或多个时隙的一个或多个存储节点中的对应的数据记录;(b)第二计算装置,用于分析一个或多个查找询问并确定一个或多个适合的相应时隙,用于从所述一个或多个相应时隙的一个或多个存储节点中检索对应该一个或多个查找询问的数据记录和用于响应一个或多个查找询问输出一个或多个数据记录。
本发明的优点在于它能够提供一个数据库系统,它至少有以下之一在查找数据时更快,健壮性(robustness)更好和使用带宽更有效。
优选地,在该系统中,该参与节点可以一种分散的方式协同工作。
优选地,在该系统中,该系统中少于10%的参与节点被安排为存储节点。更优选地,少于2%的参与节点被安排为存储节点。更优选地,大约0.5%的参与节点被安排为存储节点。有利地,存储节点配备相对宽的带宽通信连接。
为了提高系统的健壮性和降低其中出现的数据丢失的概率,该系统优选地这样安排在一个或多个时隙中存储一个或多个数据记录时,一个或多个接口节点可操作用来存储一个或多个数据记录,作为在所述一个或多个时隙的每个时隙中的多个存储节点的多个备份。
作为通过防止在该系统的任何特定节点中过多的数据集中的进一步提高系统的健壮性的措施,优选地由所述一个或多个接口节点随机地选择多个存储节点的多个备份,其中存储节点存储一个或多个数据记录的多个备份。更优选地,为了进一步提高健壮性和可靠性,所述一个或多个接口节点被安排用来在实际上不同的时刻存储所述一个或多个数据记录的所述多个备份,至少部分抵消在操作期间该系统出现的数据记录丢失。
为了提供增强的健壮性和防止该系统中过多的数据流,所述一个或多个接口节点优选地安排用来以一个时间间隔重复地存储所述一个或多个数据记录的多个备份,这一时间间隔类似于参与节点的平均故障时间。而且,为了减少在特定节点的数据集中,所述一个或多个接口节点优选地安排用来存储在存储节点中的所述一个或多个数据记录的多个备份,在每次执行数据记录存储时,存储节点在每个所述一个或多个时隙中随机地选择。更优选地,该时间间隔是在12小时到72小时的范围内。
该系统的操作效率取决于每个时隙中包含的存储节点的数量。因此,为了提供增强的效率,优选地安排每个时隙包括在2到1000个存储节点的范围内。更优选地,安排每个时隙包括在5到20个存储节点的范围内。
优选地,为了在存储数据记录时提供有效的存储节点地址识别,第一计算装置可操作用来通过以下方法定位选择的时隙中实际上所有存储节点的地址(a)随机地请求该系统中至少一个存储节点向第一计算装置发送对应于选择的时隙的一个或多个其它存储节点的地址;和(b)请求至少一个所述一个或多个其它存储节点发送该选择的时隙中实际上所有其它存储节点的地址。
同样地,为了在查找该系统中的数据记录时有效的存储节点地址识别,第二计算装置可优选地操作通过以下方法定位选择的时隙中实际上所有存储节点的地址(a)随机地请求该系统中至少一个存储节点向第二计算装置发送对应于选择的时隙的一个或多个其它存储节点的地址;和(b)请求至少一个所述一个或多个其它存储节点发送选择的时隙中实际上所有其它存储节点的地址。
优选地,在该系统中,第一计算装置安排用来通过应用key=value转换对接收数据进行迭代,其中参数key(关键字)至少对应于要分析词的一部分,参数数值(value)对应于参数key的等效数值。这样的转换能够为数据记录存储的目的提供有效的时隙数量识别。更优选地,提供在时隙中更均衡的数据分布,对于参数key的一个或多个适合的相应时隙的选择是通过应用数学模数函数得到的,这一函数的最大值对应于该系统中出现的时隙数。
优选地,在该系统中,安排key=value转换至少采用大小写折叠(case-f0lding)和词语子部分选择之一。更优选地,词语子部分选择涉及选择要分析词语的前部。更优选地,选择使用的词语子部分的长度取决于与子部分相关的信息内容。
优选地,在该系统中,安排第二计算装置应用一个或多个key=value转换和一个关键字=<短语>(key=<phrase>)转换到所述一个或多个查找询问,用于确定与对应的一个或多个合适的相应时隙。
为了使该系统能够处理更普通的查询,在发现所述一个或多个查找询问包括的信息内容少于预定的门限时,第二计算装置可优选地操作用来向一个或多个随机地选择的存储节点发送一个或多个查找询问。
为了避免当查找数据记录时该系统中出现数据流过载,第二计算装置可操作用来以顺序批量的方式向相应存储节点发送所述一个或多个查找询问。更优选地,第二计算装置可操作用来以批量方式发送所述一个或多个查找询问,这样安排每一批都由在1到50个存储节点的范围内接收。最优选地,每一批都由3个存储节点(40)接收。
根据本发明的第二方面,提供一个操作分布式数据系统的方法,该方法包括以下步骤(a)安排该系统包括多个参与节点和支持在参与节点之间数据传输的通信网络,参与节点包括第一子集的存储节点和第二子集的接口节点,(b)存储节点分组为多个时隙,每个存储节点在其特定的时隙内存储实际上所有其它存储节点的地址,(c)安排每个时隙的存储节点进一步存储该系统的其它时隙中的一个或多个存储节点的地址,(d)安排每个接口节点存储一个或多个存储节点的地址,(e)安排存储节点存储一个或多个数据记录和/或响应从接口节点接收的指令检索一个或多个数据记录,(f)安排该系统,从而其每个接口节点至少包括以下之一(i)第一计算装置,用于分析接收的数据和继而确定对应该接收数据的一个或多个时隙,该系统可操作用于存储接收的数据作为对应该接收的数据的所述一个或多个时隙的一个或多个存储节点中的对应的数据记录;(ii)第二计算装置,用于分析一个或多个查找询问并确定一个或多个适合的相应时隙,用于从所述一个或多个相应时隙的一个或多个存储节点检索对应于该一个或多个查找询问的数据记录和响应一个或多个查找询问输出一个或多个数据记录。
优选地,在这个方法中,参与节点是以分散的方式协同工作。
优选地,在这个方法中,少于10%的参与节点被安排为存储节点。更优选地,少于2%的参与节点被安排为存储节点。
为了提高该方法的健壮性,在一个或多个时隙中存储一个或多个数据记录时,一个或多个接口节点可操作用来存储一个或多个数据记录,作为在所述一个或多个时隙的每个时隙中的多个存储节点的多个备份。更优选地,在该方法中,多个存储节点由所述一个或多个接口节点随机地选择,其中存储节点存储一个或多个数据记录的多个备份。
优选地,在该方法中,所述一个或多个接口节点安排用来在实际上不同的时刻存储所述一个或多个数据记录的多个备份,至少部分抵消该系统在操作期间出现的数据记录丢失。更优选地,所述一个或多个接口节点安排用来以一个时间间隔重复地存储所述一个或多个数据记录的多个备份,这一时间间隔类似于参与节点的平均故障时间。有益地,该时间间隔是在12小时到72小时的范围内。最优选地,所述一个或多个接口节点安排用来存储在存储节点中的所述一个或多个数据记录的多个备份,每次执行数据记录存储时,在每个所述一个或多个时隙中随机地选择存储节点。
优选地,在该方法中,安排每个时隙包括在2到1000个存储节点的范围内。更优选地,每个时隙包括在5到20个存储节点的范围内。
优选地,在该方法中,第一计算装置可操作用来通过以下方法定位选择的时隙中所有存储节点的地址(a)随机地请求该系统中至少一个存储节点向第一计算装置发送其中存储的其它存储节点的地址;和(b)请求至少一个所述一个或多个其它存储节点发送在其时隙中的实际上所有其它存储节点的地址。
优选地,在该方法中,第二计算装置可操作用来通过以下方法定位选择的时隙中实际上所有存储节点的地址(a)随机地请求该系统中至少一个存储节点向第二计算装置发送对应于选择的时隙的、其中存储的其它存储节点的地址;和(b)请求至少一个所述一个或多个其它存储节点发送在该选择的时隙中实际上所有其它存储节点的地址。
优选地,在该方法中,第一计算装置安排用来通过应用key=value转换对接收的数据进行迭代,其中参数key至少对应于要分析词的一部分,参数value对应于参数key的等效数值。更优选地,参数key的一个或多个适合的相应时隙的选择是通过应用数学模数函数得到的,这一函数的最大值对应于该系统中的时隙数。更优选地,安排key=value转换至少采用大小写折叠和词语子部分选择之一。有益地,这样的词语子部分选择涉及选择要分析词语的前部。
优选地,在该方法中,为了提供更有效的时隙识别,选择使用的词语子部分的长度取决于与子部分相关的信息内容。
优选地,在该方法中,安排第二计算装置应用一个或多个key=value转换和一个key=<phrase>转换到所述一个或多个查找询问,用于确定一个或多个合适的相应时隙。
优选地,在该方法中,当发现所述一个或多个查找询问包括的信息内容少于预定的门限时,第二计算装置可操作用来向一个或多个随机地选择的存储节点发送一个或多个查找询问。
优选地,在该方法中,第二计算装置可操作用来以顺序批量的方式向相应存储节点发送所述一个或多个查找询问。更优选地,第二计算装置可操作用来以批量方式发送所述一个或多个查找询问,这样的每一批都由在1到50个存储节点的范围内接收到。更优选地,每一批由在3个存储节点接收。
根据本发明的第三方面,提供由通信网络传送的和/或存储在数据载体的软件,用于实现根据本发明的第一方面的系统。
根据本发明的第四方面,提供由通信网络传送的和/或存储在数据载体的软件,用于实现根据本发明的第二方面的方法。
很明显,发明的特点是以任何组合进行组合,而不偏离发明的范围。


现在参照下列附图以举例的方式说明本发明的实施例。
图1是根据本发明的分布式数据库系统的示意图;图2是图1的系统的示意图,说明该系统的时隙结构;图3是图1的该系统中的地址结构示意图;图4是说明图1的该系统中定位存储节点地址的方法的流程图;图5是说明图1的该系统中存储数据记录的方法的流程图。
本发明的实施例的叙述首先参见图1,描述根据本发明的分布式数据库系统;该数据库系统(SYS)通常是以10来表示,包括在虚线20的框内。系统10包括参与节点,即白圈代表的接口节点(IN),例如节点30,和黑圈代表的数据存储节点(DSN),例如节点40。优选地,存储节点40是参与节点的一小部分并且安排用于存储数据库记录。子集的存储节点40优选地根据第一和第二标准选择;第一标准是由数据库系统10内可用的带宽确定的,而第二标准是由历史节点的可靠性记录确定的。例如,如果有高带宽链路和特定的节点先前在数据库系统10中操作时足够可靠,则选择数据库系统10的特定节点为数据存储节点40。
系统10还包括数据通路50,节点30和40通过该数据通路可以互相通信。通信通路50最好至少部分是因特网连接。实际上,这样的数据通路50包括一条或多条电话线路,光纤通信链路和无线链路。因此,该数据通路和参与节点起着在分散控制下工作的分布式系统的作用。
例如,在由本发明人设计的分布式数据库系统中,该系统具有专有的名称“GI系统”,通常包括大约1千万个参与节点,其中50,000个节点被分配为存储节点40,即只有0.5%的节点被分配为存储节点40。
数据库系统10中的所有参与节点可操作用于向一个或多个存储节点40发送它们的数据记录和查找询问。这样,存储节点40可操作用于执行查找集线器,在该集线器集中数据记录和查询。因此,每个存储节点40中保留该系统10的数据库的一部分。
在系统10的操作中,每个存储节点40都能够快速查找数据库的自己的部分,尝试找到与给定查找询问匹配的记录。然而,由于每个存储节点40只存储整个数据库的一小部分,本发明人发现配置该系统10使得发送请求到系统10的每个存储节点40是不实际的。
本发明人认识到在设计系统10时,重要方面是如何配置系统10,使得一小部分的特定存储节点40可以被快速识别,这些特定存储节点40潜在地存储与系统10内产生的或者由系统10从外部网络(EU)例如连接的外部用户接收的给定查询匹配的一个或多个数据记录。为了解决这个所述的重要方面,本发明人安排系统10采用一个时隙结构,下面将详细描述这个结构。
为了提供增强的性能,数据库系统10的存储节点40被分组为子集,下面称为“时隙”。这样的分组不表示节点40的实际空间位置,而是它们在系统10内的连接方式。在系统10中,优选地选择出现的时隙的总数量,使得每个时隙包括在5到20个存储节点40中。然而,在需要的情况下,也可选择在每个存储时隙中的其它存储节点数量。
这样,在一个版本的系统10中,包括50,000个存储节点40,有利地包括4096个时隙,每个这样的时隙包含在大约12个存储节点40中。为了方便起见,在下面的描述中,时隙是以#符号表示;例如,所述4096时隙可以方便地编号从#0到#4095。
在图2中,表示系统10的表示法,其中存储节点40组织在时隙中,例如时隙80。
安排每个时隙80中的存储节点40彼此密切通信。而且,安排每个时隙80的存储节点40存储数据,这样就有大的重叠,例如在由节点40存储的数据记录中的复份和/或冗余。采用其存储节点40的时隙80分布的系统10装备操作软件,也称为GI网络组织算法,其功能是确保(a)每个接口节点30提供例如因特网地址的地址,在因特网环境中系统10是以包括在系统10中的几个存储节点40实现的;(b)每个存储节点40提供包括在系统10中的每个时隙80中的几个存储节点40的地址;和(c)每个存储节点40提供在它自己的时隙80中的所有其它存储节点40的地址。
在图3中示意地描述这样的地址结构,其中节点间地址链路由箭头表示。
系统10中的每个节点30,40可通过询问随机地选择的存储节点40来定位系统10的至少一个时隙80中的一些存储节点40的地址。这样的地址信息的请求最多需要一个网络往返程的时间。
因此,从系统10中的一个接口节点30定位特定时隙80中的所有存储节点40的地址涉及接口节点30需要执行以下步骤(i)请求随机地选择的一个存储节点40提供对应于特定时隙80的存储节点40的地址;和(ii)请求至少一个存储节点40,在步骤(i)它的地址提供给接口节点30作为特定时隙80的存储节点40的所有地址。
优选地,在步骤(ii),请求在步骤(i)提供其地址的所有存储节点40以它们各自时隙80中的存储节点40的所有地址进行响应。
包括步骤(i)和(ii)的方法需要两个网络往返程用于它的执行。
定位该地址的方法在图4中以流程图的方式示意地进行描述,术语在表1中给予解释。
表1

一个简单的例子是可以说明系统10的操作。系统10除了其它接口节点30和存储节点40外,还包括四个存储节点40,分别表示为节点A,B,C,D。在这个例子中,存储节点A,B,C,D分别包括在时隙#22,#77,#77和#55中。而且,存储节点A中已存储该存储节点B和D的地址。同样地,存储节点B中已存储该存储节点C的地址;类似地,存储节点C中已存储该存储节点B的地址,因为节点B和C都在时隙#77中。此外,存储节点D中没有存储其它的地址。
在这个简单的例子中,系统10的另一个节点E希望接收在时隙#77中的节点的所有地址。节点E随机地选择四个节点A,B,C,D之一,在这个例子中选择节点A。接着节点E进入询问节点A它知道的在时隙#77中的任何存储节点30的地址。作为响应,节点A发送节点B的地址,因为这是节点A所知的唯一的存储节点。接着节点E进入询问节点B在时隙#77中所有其它节点的地址。作为响应,节点B向节点E发送节点C的地址。在这样的两级处理中,节点E接收在时隙#77中的所有存储节点的地址,即存储节点B和C。注意,当由节点E询问时节点A优选地操作仅发送在时隙#77中它所知道的任何存储节点的地址,而不是它所知道的其它节点地址。这种方法的解释导致从节点E的查询不需要超出绝对必需的系统10的容量。
人们会理解,可以生成比前面叙述的节点A,B,C,D更复杂的系统10例子来说明系统10的操作。
因此,在设计系统10时,本发明人还意识到在系统10中希望具有有限数量的存储节点40的地址,存储在每个存储节点40中,用于减少需要的网络往返程的数量。
在上文中,描述了系统10的地址结构。在下面,将描述在向一个或多个存储节点40发送数据记录时系统10的操作。
如上文中描述的,所有的接口节点30可操作根据存储方法向一个或多个存储节点40发送它们的数据记录。当根据该存储方法向一个存储节点40发送其数据时,接口节点30首先基于特定数据记录选择一个或多个合适的时隙80。接着接口节点30定位在这些一个或多个合适的时隙40中的存储节点40的地址。然后第三,接口节点30向选择的时隙80中的几个随机地选择的存储节点40发送该数据记录,例如在每个选择的时隙80中的3到5个存储节点40。
上述的存储方法在图5中以流程图的方式进行示意地描述,其术语在表2中给予解释。
表2

在该存储方法中,通过迭代所有key=value对的记录来选择给定数据记录的时隙80;然后组合识别的时隙80。这样,根据时隙识别方法,每个key=value对可以产生零或多个时隙80#数,包括步骤(a)评估key=value对,产生一个整数值,从“值模时隙数”(value modnumber-of-slots)得到一个时隙号,这里‘模’是一个数学模数函数;例如,如在前面作为一个例子所述的,假设有4096个时隙,诸如“价格=5000”的key=value对产生一个时隙80号#904;和(b)安排步骤(a)中的文字值产生输入key=value对的每个词语的一个时隙80号。
最好安排该时隙识别方法,使得词语的时隙号作为从该词语前几个字符,即从该词语的前面的子部分得到的散列号#数值(hash#value)进行计算。例如,词语“explanation”与前面子部分“explan”相关。优选地,当确定相应的散列号#数值时,采用大小写折叠和其它类似的归一化。前面子部分中包括的文字字母数最好基于词语文本的信息内容进行选择。例如,具有相关的前面子部分“xen”的词语“Xenon”比具有前面子部分“exp”的词语“explanation”具有更大的信息内容;前面子部分“exp”可能太短并且缺乏适合于查找目的的信息内容。类似地,在词语“xzaucha”中,只要求在相应的前面子部分中包含字母“xz”,因为这个字母对不常见,因此具有大的信息内容;由于其大的信息内容,这样的短子部分潜在地适合于查找目的。此外,在词语“inaugural”中,可能需要“unaug”这么多字母来保证有足够的信息内容用于在系统10中的查找目的。再思考一下这些例子,可以懂得,词语“xzaucha”,“Xzerb”和“XZ”将得到产生的类似的时隙80号,例如时隙#145。同样地,词语“inaugural”和“INAUGURATED”将得到产生的类似的时隙80号,例如时隙#3924。这样的词语/时隙值映射称为“词语到时隙”(word to slot)算法,输入一个词语来产生一个变量(argument)。
适合处理数字表达式的算法,例如二进制数,可用类似的方式产生,它们提供相应的前面子部分。作为前面子部分的替代,后面和中间子部分可以附加地或替代地用于一个或多个词语和数字表达式,用于系统10中的查找。
这样,假定数据记录至少有一些非无价值的key=value对,该数据记录将被发送到系统10中的至少一个时隙80。实际上,许多数据记录被发送到一个以上的时隙80用于存储目的,以便提供如前面说明的数据记录冗余。
在上文刚刚描述了数据库系统10中的数据记录的存储。同样重要的是,需要处理在系统10中的查找询问,以便存取存储的数据记录。安排系统10采用将在下文详细描述的一种查找方法。
在这个查找方法中,接口节点30向系统10发出查找询问,即发给一个特定时隙80中的一个或多个存储节点40。此外,在该查找方法中,基于查找询问计算合适的时隙80号。该查找方法的目的是找出时隙80号,该时隙80号由系统10已经在前面要求存储对应于查找询问的数据记录。例如,从上面可知道,对应于短语“title contains Inaugural”的所有数据记录将发送到具有散列号#3942的时隙80。
进入系统10的查找询问包括一个或多个条件,并且如果该数据记录匹配从查询产生的所有的条件,要求这个数据记录对应于查询。因此,在接收查询的接口节点30,为了找到适合的时隙80发送查询,接口节点30可操作迭代在该查询中提供的文本条件,直到发现给定的条件对应于时隙80散列号参考。在接口节点30中,当满足下列任何一个条件时,文本条件易于产生至少一个时隙80散列号参考(a)在确定key=value对时,发现“key=<integer>”(整数)对,在这种情况下,在发送数据记录给一个或多个存储节点40时,以如在上文叙述的完全类似的方式确定相应的时隙散列号#;(b)在确定key=value对时,发现“key=<phrase>”(短语)条件或发现“key包含<phrase>”条件;在这种情况下,通过应用如用上文描述的词语到时隙算法得到适合的时隙80散列号#;和/或(c)在确定key=value对时,发现“key从<word>(词语)开始”条件和<词语>信息包括足够字母以便使用上述的词语到时隙算法确定适合的时隙80。
在操作该系统10中执行软件时,假设如果很明显任何匹配数据必需发送给一个或多个时隙80,只产生一个时隙号,那么除了上面(a)到(c)的条件之外还需附加一些条件。
在该查找方法中,如果识别时隙号#,该查询就发送到这个时隙中的存储节点40。如果需要所有的匹配记录,该查询就发送到系统10中的所有的存储节点40。相反,如果只需要一些匹配记录,该查询连续地发送到存储节点40,一个时刻发送给一个存储节点40,直至得到足够的匹配记录。这样的连续存储节点40询问节省有关存储节点40的一些网络带宽,但是增加了查找时间。因此根据特定查找的需求,在带宽使用和查找消耗两者之间进行折中。
对于合理的特定查找询问,条件(a)到(c)之一实际上产生一个合适的时隙号#。然而,对于查找询问来说,条件(a)到(c)通常不能成功产生时隙号#。例如,询问“价格>10和作者开头为a”可能就不能产生时隙号#。为了系统10能有用地处理这样的非特定查询,采用一个替代策略,即将该查询发送到一个或多个随机地选择的时隙号#并进行处理,尝试识别匹配数据记录。这个随机方法的原理在于这样的查询看上去是非常普通的查询,系统10中相当大比例的数据记录能够匹配这样的查询。例如,如果有4096个时隙和记录的1/4096匹配查询,即0.024%,则将查询发送到一个随机地选择时隙是有效的。在系统10内将查询发送到一个以上的时隙80是可能的,但是表示带宽使用和查找消耗之间的折中。
实际上,根据系统10中的带宽使用,将一个或多个一般查询发送到所有的时隙80通常是禁止的,因此一般查询采用的所述随机时隙方法不易获得匹配一个或多个一般查询的所有数据记录。从这方面来说,系统10在操作中是相对低效的。因此,发现一些查找询问是非常特定的查询并且是没有大比例数据记录匹配,这些查找询问是没有时隙号#被识别。系统10可操作用于将这样的询问发送给一个或多个随机地选择的时隙80,但是通常找不到匹配数据,因为这样的随机选择没有识别出正确的时隙80。
接下来考虑在运行中的系统10的可靠性问题,由于每个时隙80有5到20个存储节点40,在任何一个时隙中的所有存储节点40同时故障几乎是不可能的。
本发明人发现在它故障或转换离线之前,平均一个存储节点40工作12到72个小时。当存储节点40发生故障时,系统10中执行的网络组织算法可操作用迂指定一个新的存储节点40替代在该相同时隙中的故障的存储节点40。新的存储节点40不能接替故障存储节点40,因为存储的数据无法从故障存储节点40中得到。相反,新的存储节点40是从空的开始的并且仅仅逐步地得到数据库的一部分,因为接口节点30向该新的存储节点40发送数据记录。因此,没有从一个存储节点40到另一个存储节点的立即数据记录复制,因为这样的立即复制将增加系统10中的带宽要求并易于导致系统10中混乱行为。
如前所述的,每个数据记录都存储在一个以上存储节点40中;因此单个的存储节点故障不会导致系统10中整个的这个数据记录的丢失。当众多的存储节点40逐渐地发生故障时,当存储给定数据记录的所有存储节点40发生故障时,系统10中这项数据记录丢失了。如果本没有本发明人,包括系统10中的对应措施,这样逐渐的故障对于系统10来说将是严重的数据泄漏,数据记录寿命为大约12到72小时。在一个对应措施中,安排接口节点30周期地重复向存储节点40发送它们的数据记录,每次存储数据时,随机地选择在相同时隙80中的存储节点40。优选地,这样的重复数据存储的时间期间和故障之间的平均存储节点工作寿命相差不大,即在12到72小时的范围内。本发明人已经说明这样的重复存储数据记录,在统计上导致高概率,如果发送数据记录的接口节点30继续正常工作,系统10中至少有一个正常工作的存储节点40存储特定数据记录。
在最现代的数据库中,在操作中发现只希望响应一个或多个查询识别的匹配数据记录的子集。因此,假设本地处理诸如处理普通节点30的查询和匹配存储节点40的查询需要很少的时间,本发明人已经清楚,系统10中影响查找时间的主要的因素是处理查询所需的网络往返程数量。
在上文中,已经清楚,大多数查找询问发送给识别的一个或多个相应的数据记录的一个时隙80并且不由此发送作为响应。查询发给的存储节点40的数量在系统10中依赖于查找时间和系统10的带宽之间的折中。在系统10的典型的应用中,响应该给定的询问,给定的的查找询问以每批3个存储节点40的方式发送给存储节点40,直到获得足够的结果。
更优选地,发送两批给定的查询,得到接触的6个存储节点40;平均来说,发现发送这两批是足够产生需要的数据记录。另外,如上所述,要求一个往返程查找存储节点40的地址,得到总共3个网络往返程来完成给定2批查找询问。实际上,这样的三个往返程对应于在接口节点30到用户的查找询问响应时间,大约为1秒,系统10的用户实际上感觉是同时的。
在许多情况下,接口节点30已经存储在给定时隙80中的存储节点40的地址并且基于存储的地址在询问的第一批存储节点40中获得足够的查找结果;因此,这样的查找包含一个网络往返程,这种情况实际上是理想的并且在分布式数据库系统的任何替代设计时不容易改进。
系统10的优点在于,数据记录查找时间不受系统10中包含的时隙80或者节点30,40的数量的影响。这样,查找以1亿个节点数据库实现的系统10实际上和查找以1000个参与节点实现的系统10实际上是一样快的。
可以从上文的系统10的描述中体会到它是使用软件实现的。这个软件优选地由至少以下之一传送给系统10的用户(a)通过数据通信通路50将该软件作为数据传送给用户,例如作为e-mail附件;和(b)利用作为在合适的数据载体上的数据存储该软件,将该软件传送给该用户,例如利用现代的CD ROM。
可以懂得,在不偏离本发明的范围前提下,可以对上述的本发明的实施例进行修改。
在上文中,使用诸如“包括”,“是”,“具有”,“包含”等词汇并不是排他的,即这样的词汇是用来表述也允许使用其它未限定的术语。单数也可表示复数,反之亦然。在权利要求书中,在括号中包含的数字是用来辅助理解权利要求的,而不影响权利要求的范围。
权利要求
1.一种分布式数据库系统(10),包括多个参与节点(30,40)和支持该参与节点(30,40)之间的数据传输的通信网络(50),其特征在于该参与节点(30,40)包括第一子集的存储节点(40)和第二子集的接口节点(30);该存储节点(40)可操作用于存储一个或多个数据记录和/或响应从该接口节点(30)接收的指令从中检索一个或多个数据记录;该存储节点(40)分组为多个时隙(80),每个存储节点(40)在其特定的时隙(80)内基本上存储所有其它存储节点(40)的地址;每个时隙(80)的存储节点(40)还存储该系统(10)的其它时隙(80)中的存储节点(40)的一个或多个地址;每个接口节点(30)存储一个或多个存储节点(40)的地址;该系统(10)这样配置,使得它的每个接口节点(30)至少包括下列之一(a)第一计算装置,用于分析接收的数据和继而确定相应于该接收数据的一个或多个时隙(80),系统(10)可操作用于存储该接收的数据作为相应于该接收数据的所述一个或多个时隙(80)的一个或多个存储节点(40)中的相应的数据记录;(b)第二计算装置,用于分析一个或多个查找询问并用于确定一个或多个适合的相应时隙(80),用于从所述一个或多个相应时隙(80)的一个或多个存储节点(40)中检索相应于该一个或多个查找询问的数据记录和用于响应该一个或多个查找询问输出一个或多个数据记录。
2.根据权利要求1的系统(10),其中该参与节点(30,40)以分散的方式协同工作。
3.根据权利要求1的系统(10),其中少于10%的参与节点(30,40)安排为存储节点(40)。
4.根据权利要求1的系统(10),其中少于2%的参与节点(30,40)安排为存储节点(40)。
5.根据权利要求1、2、3或4的系统(10),其中在一个或多个时隙(80)中存储一个或多个数据记录时,一个或多个接口节点(30)可操作用于存储一个或多个数据记录,作为在所述一个或多个时隙(80)的每个时隙的多个存储节点(40)的多个备份。
6.根据权利要求5的系统(10),其中多个存储节点(40)由所述一个或多个接口节点(30)随机地选择,该多个存储节点(40)中存储一个或多个数据记录的多个备份。
7.根据权利要求5或6的系统(10),其中所述一个或多个接口节点(30)安排用来在实际上不同的时刻存储所述一个或多个数据记录的多个备份,至少部分抵消该系统(10)在操作期间出现的数据记录的丢失。
8.根据权利要求7的系统(10),其中所述一个或多个接口节点(30)安排用来存储以一个时间间隔重复记录的所述一个或多个数据记录的多个备份,这一时间间隔类似于该参与节点(30,40)的平均故障时间。
9.根据权利要求8的系统(10),其中所述一个或多个接口节点(30)安排用来存储在存储节点(40)中的所述一个或多个数据记录的多个备份,在每次执行数据记录存储时,存储节点(40)是在每个所述一个或多个时隙(80)中随机地选择。
10.根据权利要求8或者9的系统(10),其中该时间间隔是在12小时到72小时的范围内。
11.根据权利要求1的系统(10),其中安排每个时隙(80)包括在2到1000个存储节点(40)的范围内。
12.根据权利要求11的系统(10),其中安排每个时隙(80)包括5到20个存储节点(40)的范围内。
13.根据权利要求1的系统(10),其中第一计算装置可操作用来通过以下方法定位选择的时隙(80)中实际上所有存储节点(40)的地址(a)随机地请求系统(10)中的至少一个存储节点(40)向第一计算装置发送存储在其中的对应于该选择的时隙(80)的一个或多个其它存储节点(40)的地址;和(b)请求至少一个所述一个或多个其它存储节点(40)发送该选择的时隙中(80)实际上所有其它存储节点(40)的地址。
14.根据权利要求1的系统(10),其中第二计算装置可操作用来通过以下方法定位选择的时隙(80)中实际上所有存储节点(40)的地址(a)随机地请求该系统(10)中至少一个存储节点(40)向第二计算装置发送存储在其中的对应于该选择的时隙(80)的一个或多个其它存储节点(40)的地址;和(b)请求至少一个所述一个或多个其它存储节点(40)发送该选择的时隙中(80)实际上所有其它存储节点(40)的地址。
15.根据权利要求1的系统(10),其中安排第一计算装置通过应用关键字=数值转换迭代接收的数据,其中参数关键字至少对应于要分析的词的一部分,而参数数值对应于参数关键字的等效数值。
16.根据权利要求14的系统(10),其中对于参数关键字的一个或多个适合的相应时隙(80)的选择是通过应用一个数学模数函数得到的,这一函数的最大值对应于该系统(10)中出现的时隙(80)数。
17.根据权利要求15或16的系统(10),其中安排该关键字=数值转换至少采用大小写折叠和词语子部分选择之一。
18.根据权利要求17的系统(10),其中词语子部分选择涉及选择要分析的词语的前部。
19.根据权利要求17或18的系统(10),其中选择使用的该词语子部分的长度是根据与该子部分相关的信息内容确定的。
20.根据权利要求1的系统(10),其中安排第二计算装置应用一个或多个关键字=数值转换和一个关键字=<短语>转换决定与所述一个或多个查找询问对应的一个或多个合适的相应时隙(80)。
21.根据权利要求20的系统(10),其中当找到所述一个或多个查找询问包括的信息内容少于预定的门限时,第二计算装置可操作用来向一个或多个随机地选择的存储节点(40)发送该一个或多个查找询问。
22.根据权利要求20或21的系统(10),其中第二计算装置可操作用来向相应的存储节点(40)以顺序批量的方式发送所述一个或多个查找询问。
23.根据权利要求22的系统(10),其中第二计算装置可操作用来以批量方式发送所述一个或多个查找询问,这样安排每一批由1到50个存储节点(40)接收。
24.根据权利要求23的系统(10),其中每一批都由3个存储节点(40)接收。
25.一种操作分布式数据系统(10)的方法,该方法包括步骤(a)安排系统(10)包括多个参与节点(30,40)和支持该参与节点(30,40)之间的数据传输的通信网络(50),该参与节点(30,40)包括第一子集的存储节点(40)和第二子集的接口节点(30),(b)该存储节点(40)分组为多个时隙(80),每个存储节点(40)在其特定的时隙(80)内存储实际上所有其它存储节点(40)的地址,(c)安排每个时隙(80)的存储节点(40)还存储该系统(10)的其它时隙(80)中的一个或多个存储节点(40)的地址,(d)安排每个接口节点(30)存储一个或多个存储节点(40)的地址,(e)安排该存储节点(40)存储一个或多个数据记录和/或响应从该接口节点(30)接收的指令从中检索一个或多个数据记录,(f)安排该系统(10),使得它的每个接口节点(30)至少包括以下之一(i)第一计算装置,用于分析接收的数据并继而确定对应于该接收的数据的一个或多个时隙(80),该系统(10)可操作用于存储该接收的数据作为对应于该接收的数据的所述一个或多个时隙(80)的一个或多个存储节点(40)中的对应的数据记录;以及(ii)第二计算装置,用于分析一个或多个查找询问并确定一个或多个适合的相应时隙(80),用于从所述一个或多个对应时隙(80)的一个或多个存储节点(40)检索对应该一个或多个查找询问的数据记录,和用于响应该一个或多个查找询问输出一个或多个数据记录。
26.根据权利要求25的方法,其中该参与节点(30,40)可以分散的方式协同工作。
27.根据权利要求25的方法,其中安排少于10%的该参与节点(30,40)为存储节点(40)。
28.根据权利要求25的方法,其中安排少于2%的参与节点(30,40)为存储节点(40)。
29.根据权利要求25、26、27或26的方法,其中当在一个或多个时隙(80)中存储一个或多个数据记录时,一个或多个接口节点(30)可操作用来存储一个或多个数据记录,作为在所述一个或多个时隙(80)的每个时隙中的多个存储节点(40)的多个备份。
30.根据权利要求29的方法,其中该多个存储节点(40)由所述一个或多个接口节点(30)随机地选择,该存储节点(40)中存储该一个或多个数据记录的多个备份。
31.根据权利要求29或30的方法,其中所述一个或多个接口节点(30)安排用来在基本上不同的时刻存储所述一个或多个数据记录的所述多个备份,至少部分抵消该系统(10)在操作期间出现的数据记录的丢失。
32.根据权利要求31的方法,其中所述一个或多个接口节点(30)安排用来以一个时间间隔重复地存储所述一个或多个数据记录的多个备份,这一时间间隔类似于该参与节点(30,40)的平均故障时间。
33.根据权利要求32的方法,其中所述一个或多个接口节点(30)安排用来存储在存储节点(40)中的所述一个或多个数据记录的多个备份,每次执行数据记录存储时,该存储节点(40)是在每个所述一个或多个时隙(80)中随机地选择的。
34.根据权利要求32或33的方法,其中该时间间隔是在12小时到72小时的范围内。
35.根据权利要求25的方法,其中安排每个时隙(80)包括在2到1000个存储节点(40)内。
36.根据权利要求35的方法,其中安排每个时隙(80)包括在5到20个存储节点(40)内。
37.根据权利要求25的方法,其中第一计算装置可操作用来通过以下方法定位选择的时隙(80)中实际上所有存储节点(40)的地址(a)随机地请求该系统(10)中至少一个存储节点(40)向第一计算装置发送其中存储的对应于选择的时隙(80)的其它存储节点(40)的地址;和(b)请求至少一个所述一个或多个其它存储节点(40)发送选择的时隙(80)中实际上所有其它存储节点(40)的地址。
38.根据权利要求25的方法,为第二计算装置可操作用来通过以下方法定位选择的时隙(80)中所有存储节点(40)的地址(a)随机地请求该系统(10)中至少一个存储节点(40)向第二计算装置发送其中存储的对应于选择的时隙(80)的其它存储节点(40)的地址;和(b)请求至少一个所述一个或多个其它存储节点(40)发送该选择的时隙(80)中实际上所有其它存储节点(40)的地址。
39.根据权利要求25的方法,其中第一计算装置安排用来通过应用关键字=数值转换迭代接收的数据,其中参数关键字至少对应于要分析词的一部分,参数数值对应于参数关键字的等效数值。
40.根据权利要求39的方法,其中对于参数关键字的一个或多个适合的相应时隙(80)的选择是通过应用数学模数函数得到的,这一函数的最大值对应于该系统(10)中出现的时隙(80)数。
41.根据权利要求39或40的方法,其中安排关键字=数值转换至少采用大小写折叠和词语子部分选择之一。
42.根据权利要求41的方法,其中词语子部分选择涉及选择要分析词语的前部。
43.根据权利要求41或42的方法,其中选择使用的词语子部分的长度根据与该子部分相关的信息内容确定的。
44.根据权利要求25的方法,其中安排第二计算装置将一个或多个关键字=数值转换和一个关键字=<短语>转换应用到所述一个或多个查找询问,用于确定一个或多个合适的对应时隙(80)。
45.根据权利要求43的方法,其中在发现所述一个或多个查找询问包括的信息内容少于预定的门限时,第二计算装置可操作用来向一个或多个随机地选择的存储节点(40)发送一个或多个查找询问。
46.根据权利要求44或45的方法,其中第二计算装置可操作用来以顺序批量的方式向相应的存储节点(40)发送所述一个或多个查找询问。
47.根据权利要求46的方法,其中第二计算装置可操作用来以批量方式发送所述一个或多个查找询问,这样安排每一批由在1到50个存储节点(40)的范围中接收。
48.根据权利要求46的方法,其中每一批由3个存储节点(40)接收。
49.由通信网络传送的和/或存储在数据载体的软件,用于实现根据权利要求1的系统(10)。
50.由通信网络传送的和/或存储在数据载体的软件,用于实现根据权利要求25的方法。
全文摘要
提供包含通过通信网络(50)互连的多个参与节点(30,40)的一种分布式数据库系统(10)。参与节点(30,40)包括第一子集的存储节点(40)和第二子集的接口节点(30)。存储节点(40)分组为多个时隙(80),每个存储节点(40)在其特定的时隙(80)内实际上存储所有其它存储节点(40)的地址。每个时隙(80)的存储节点(40)中还存储该系统(10)的所有其它时隙(80)的存储节点(40)的一个或多个地址。每个接口节点(30)中存储一个或多个存储节点(40)的地址。存储节点(40)可操作用于存储一个或多个数据记录和/或响应从接口节点(30)接收的指令从中检索一个或多个数据记录。该系统(10)可以分散的方式协同运行。
文档编号H04L29/08GK1856786SQ200480020205
公开日2006年11月1日 申请日期2004年7月14日 优先权日2003年7月16日
发明者阿提·海因莱, 普力特·卡斯萨鲁 申请人:乔蒂德有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1