CN101416150A - 用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品 - Google Patents
用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品 Download PDFInfo
- Publication number
- CN101416150A CN101416150A CNA2007800120957A CN200780012095A CN101416150A CN 101416150 A CN101416150 A CN 101416150A CN A2007800120957 A CNA2007800120957 A CN A2007800120957A CN 200780012095 A CN200780012095 A CN 200780012095A CN 101416150 A CN101416150 A CN 101416150A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- subclauses
- clauses
- scope
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文公开了用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品。根据一种方法,基于第一数字数据范围内的第一关键字计算至少一个索引。在具有由范围限定数字数据索引的条目的数据库中访问对应于该索引的条目。从该条目中读取位图,该位图具有表示存在或缺少对应于第一数字数据范围中不同关键字的数据的位。使用该位图定位对应于第一关键字的数据。
Description
相关申请
本申请要求2006年2月28日提交的序号为11/364759的美国专利申请以及2006年2月6日提交的序号为60/765644的美国临时专利申请的权益;这些申请公开的内容以引用的方式全文合并于本文中。
技术领域
本文所述主题涉及访问通过数字范围索引的数据。更具体地,本文所述主题涉及用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品。
背景技术
在电信网中,数据库经常由数字范围索引,比如通过电话号码(TN)范围索引。例如:号码可移植数据库(比如本地号码可移植数据库)基于电话号码的前面6位数字(称为编号方案/交换地址)和随后4位数字进行索引。TN的前6位数字通常称为NPA-NXX。因为电话号码的余下四位数字可以从0000到9999,故NPA-NXX为1万个号码共有。如果移植(port)NPA-NXX范围内的号码,号码可移植数据库(number portability database)中的条目将包括定位路由号(location routing number,LRN),其是对应于移植到端局的10位数字号码。
传统电信数据库(比如号码可移植数据库)存在数据库规模不断增大的问题,这导致存储器需求和查找时间均增加。例如,美国和其他国家的号码可移植数据库规模正在不断地增加,以便包括亿万用户的条目。这种数据库通常采用二叉树数据结构实现。为了在二叉树数据结构中定位条目,将搜索关键字(比如被叫方电话号码)与该树中不同分支的数据进行比较。随着移植的电话号码数目的增加,该树中的分支数目增多而且搜索时间增加。使用二叉树的另一个问题在于为了确保该树不会变得不平衡,需要采用复杂的平衡算法。二叉树结构的另一个问题在于与各条目相关联的关键字的高开销。关键字的大小可能大于与关键字相关的数据的大小。由于数据库规模增大,需要最小化与各数据条目相关联的关键字开销。这样导致大型数据库需要更为致密的结构。
与传统电信数据库相关联的另一个问题是,现有的验证方法可能无法指出数据库访问结果是否有效。例如,当访问号码可移植数据库并且取回LRN时,没有办法使用当前数据库来确定获取的LRN实际上是否是对应于搜索关键字的正确的LRN。可采用校验和来表明条目是否受损。然而,校验和仅仅表明数据是否受损,而无法表明该数据是否包括正确的LRN。
与数据验证相关的另一个问题是数据恢复。二叉树结构在较小的数据块中不能被恢复,因为在这种结构中的条目相互关联成分支。这样当数据被识别为无效时,强制重新载入整个数据库。因而存在一种需求来识别受损的小数据块并且恢复更小的数据块,而无需重新载入整个数据库。
与传统电信数据库相关的另一个问题是存在稀疏数据。稀疏数据指仅仅占用为范围内数据保留的存储器块的一部分的数据。例如,保留的存储器块可能用于保存与范围内关键字相对应的LRN。如果范围内仅有少量TN被移植,那么该块中的剩余空间就浪费了。因此,需要一种用于合并稀疏数据的方法。
传统电信数据库的另一个问题是数据库的更新率高。数据库要求一次进行一个更新并且按顺序进行更新。因此就存在对数据块进行累积更新的需求。还存在能够不按顺序进行更新的需求。这样当数据库系统正无效率地进行工作时或者在任何时段不能被更新时,就无需减缓更新。
因此,鉴于通过范围限定数字数据索引的传统数据库的上述问题,需要用于对通过范围限定数字数据索引的数据库进行索引、验证、恢复和合并的改进方法、系统和计算机程序产品。
发明内容
根据一个方面,本文所述主题包括一种用于访问由范围限定数字数据索引的数据库的方法。该方法包括基于第一数字数据范围内的第一关键字计算至少一个索引。访问对应于至少一个索引的条目。从条目中读取一个位图,该位图具有表示存在或缺少对应于第一数字数据范围中不同关键字的数据的位。使用该位图定位对应于第一关键字的数据。
根据另一个方面,本文所述主题包括一种用于验证在由范围限定数字数据索引的数据库中搜索结果的方法。该方法包括在由范围限定数字数据索引的数据库中存储搜索关键字的一部分。基于搜索关键字,通过计算至少一个索引来访问数据库。定位数据库中对应于至少一个索引的条目。将搜索关键字部分与条目中存储的搜索关键字部分进行比较。如果用于访问数据库的搜索关键字部分与存储的搜索关键字部分相匹配,那么数据库访问有效并且返回结果。如果所存储的搜索关键字部分与用于执行访问的搜索关键字部分不匹配,则指出数据库访问结果无效。
根据另一个方面,本文所述主题包括恢复与位图相关的无效数据块。
根据另一个方面,本文所述主题包括一种用于合并在由范围限定数字数据索引的数据库中的稀疏数据的方法。该方法可以包括存储由号码范围索引的数据块。每个数据块可以包括对应于每一范围内关键字的个别条目。对于每个数据块,可以存储计数、指针和位图。计数可以表示每个数据块中的已填充条目的数量。指针可以指向每个数据块。位图可以包括表示每个数据块中已填充和未填充条目的位。使用计数和位图,可以合并具有未填充条目的块。
根据另一个方面,本文所述主题包括一种用于为电信号码可移植数据库访问提供受限访问时间的系统。该系统包括号码可移植数据库,该数据库包括多个范围表和一个数据表。每个范围表包括对应于电话号码中数字范围的条目。数据表包括含有号码可移植信息的条目。数据库访问引擎用于使用已搜索到号码可移植信息的电话号码的不同部分来计算指向范围表的索引,并且用于使用索引和从范围表中读取的数据来对包括电话号码的号码可移植信息的数据表中的条目进行定位。
可采用体现在计算机可读介质中的包括计算机可执行指令的计算机程序产品来实现本文所述主题,本文所述主题用于索引、验证、恢复,合并在由范围限定的数字关键字索引的数据库中的数据。适合于实现本文所述主题的示例性计算机可读介质包括芯片储存装置、磁盘存储装置、可编程逻辑器件、专用集成电路和可下载电信号。另外,实现本文所述主题的计算机程序产品可以位于单个装置或计算平台中,或者可以分布于多个装置或计算平台中。
附图说明
现在参考附图,解释本文所述主题的优选实施例:
图1是方框图,表示用于本文所述主题实施例的示例性操作环境;
图2是流程图,表示根据本文所述主题实施例的用于访问由范围限定数字数据索引的数据库中数据的示例性步骤;
图3是数据结构图,表示根据本文所述主题实施例的用于由范围限定数字数据索引的数据库的示例性结构;
图4A和4B是流程图,表示根据本文所述主题实施例的用于访问图3所示数据库结构中的数据的示例性步骤;
图5是流程图,表示根据本文所述主题实施例的用于验证访问由范围限定数字数据索引的数据库的结果的示例性步骤;以及
图6是流程图,表示根据本文所述主题实施例的用于合并在由范围限定数字数据索引的数据库中的稀疏数据的示例性步骤。
具体实施方式
本文所述主题为用于索引、验证、恢复、合并在通过范围限定的关键字索引的数据库中的数据,其可以在任何包括这种数据库的适当的硬件平台上实现。在电信领域,这种硬件平台的实例包括信令转接点(STP)、业务控制点(SCP)、业务交换点(SSP)、归属位置寄存器(HLR)、访问位置寄存器(VLR)、短消息业务中心(SMSC)、数据库供应平台,或网际协议(IP)电话信令结点(比如媒体网关、基于IP的数据库结点等等)。图1是方框图,表示根据本文所述主题实施例的信令转接点的示例性内部结构,信令转接点包括数据库访问引擎和范围限定数据库。参考图1,STP 100包括经由反转双环总线110相互连接的多个内部处理模块102-108。处理模块102-108中的每个模块可以包括用于实现电信信号信令功能的应用处理器和关联存储器。另外,每个处理模块可以包括用于经由总线110与其他处理模块通信的通信处理器。
在所示示例中,处理模块102包括用于与SS7信号链路连接的链路接口模块(LIM)。链路接口模块包括消息传递部分(MTP)第一级和第二级功能112、网关筛选(screening)功能114、判别功能116、分发功能118和路由功能120。MTP第一级和第二级功能112执行MTP第一级和第二级操作,比如纠错、检错以及SS7信令消息排序。网关筛选功能114基于到来的SS7信令消息中的一个或多个参数筛选该消息。判别功能116确定是否将收到的SS7信令消息分发给STP 100内的另一个处理模块以便进行处理,或者确定是否将该消息路由到出站的信令链路。判别功能116将待分发的用于内部处理的消息转送到分发功能118。分发功能118将该消息转送到适当的内部处理模块。路由功能120基于该消息中MTP第三级信息,对需要路由的消息进行路由。
处理模块104包括用于经由IP信令链路发送和接收信令消息的数据通信模块(DCM)。DCM 104包括网络和物理层功能122、传输层功能124、适配层功能126和相关于LIM 102描述的层112-120。网络和物理层功能122执行网络和物理层功能,以通过IP链路发送和接收消息。例如,功能122可以通过以太网实现网际协议(IP)。传输层功能124实现传输层功能。例如,传输层功能124可以实现传输控制协议(TCP)、用户数据报协议(UDP)或流控制传输协议(SCTP)。适配层功能126适配信令消息(比如SS7信令消息),以便通过IP网络进行传输。适配层功能126可以使用任何IETF适配层协议(比如M3UA、M2PA、SUA、TALI)或其他适当的适配层协议来实现。功能114-120对LIM 102的相应的已编号的元件执行上述操作。
处理模块106和108是数据库服务模块(DSM),用于为接收到的信令消息提供数据库服务。每个DSM 106和108包括服务选择功能128,用于确定对接收到的信令消息采用的数据库服务类型。一旦选中一种服务,数据库访问引擎130在范围限定数据库132中访问对应于所选服务的服务。在已经执行了数据库访问之后,路由功能120可以将接收到的信令消息或对接收到的信令消息的响应路由到其目的地。
数据库访问引擎130可以实现本文所述的索引方法,对数据库132中的数据进行访问。另外,数据库访问引擎130可以基于保存在数据库132中数据,在访问时验证数据库访问结果。数据库管理器134可以与外部数据库供给平台136通信以供给数据库132,并且执行本文所述步骤以合并数据库132中的稀疏数据。如果数据库132包括本地号码可移植数据库,供给系统136可以从本地服务管理系统(LSMS)138接收号码可移植数据。本地服务管理系统138可以从号码可移植管理中心(NPAC)接收它的号码可移植信息,所述号码可移植管理中心以国家级或地区级分发号码可移植信息。供给系统136可以保持其自身的范围限定数据库132的本地副本。供给系统136可以基于从LSMS 138接收到的数据,在其数据库132的副本中进行插入和删除。供给系统136将其数据库132的副本分发给DSM卡106和108。因此,供给系统136可以包括数据库访问引擎130和范围限定数据库132的副本。
在现有实施方式中,使用二叉树实现范围限定数据库132,需要供给系统136顺序地、单独地将号码可移植条目分发给DSM卡106和108上的范围限定数据库132。然而,如下文详细描述的那样,范围限定数据库132采用多级索引结构,而不采用二叉树。因此,供给系统136可以不考虑从LSMS138接收条目的顺序而对大量的号码可移植条目块进行分发。同时将多于一个号码可移植条目的块发送给范围限定数据库132,从而相较于由供给系统136顺序地发送条目的传统的基于二叉树的同步方法,减少了数据库同步所需的时间。当DSM卡106和108重新启动并且必须从头开始重新加载范围限定数据库132时,这种同步特别重要。
数据库132可以是任何其中条目由号码范围索引的适当的数据库。这种数据库的实例包括号码可移植数据库(比如本地号码可移植数据库或者移动号码可移植数据库),以及由移动用户标识符(比如IMSI或MSISDN码)索引的移动电信节点地址数据库。可选地,数据库132可由非数字标识符索引,比如会话启动协议(SIP)统一资源指示符(URI)或统一资源定位符(URL)。在这种实施方式中,数据库访问引擎130可以计算搜索关键字的散列,从而实现本文所述的基于索引的访问方法。
图2是流程图,表示用于索引在范围限定数据库中的数据的示例性全步骤,范围限定数据库比如是图1所示的数据库132。参考图2,在步骤200,数据库访问引擎(比如数据库访问引擎130)基于第一数字数据范围内的第一搜索关键字来计算至少一个索引。例如,搜索关键字可以是一个电话号码,并且至少一个索引可以包括基于关键字一部分(比如NPA-NXX部分)的索引。如下文所详述的,基于搜索关键字的不同部分,可计算出不同的索引。在步骤202,数据库访问引擎130访问对应于数据库中至少一个索引的条目。不再通过执行比较来定位一个数据库条目,而是可以由根据本文所述主题的实施例的数据库访问引擎基于搜索关键字的一部分执行计算,然后直接进行到对应于计算结果的条目。例如,如果搜索关键字的数字是“450”,并且数据库中每个条目由从000开始的100个号码范围索引,那么这种计算可包括将450的百位数字加1,然后进行到数据库中的第5个条目。下文将详细描述索引计算实例。
在步骤204,数据库访问引擎130从条目读取位图,该位图的位对应于与第一数字数据范围内不同关键字相对应的数据存在或不存在。例如,在号码可移植环境中,位图中的每位都可以表示是否移植了在号码范围内的一个号码。如果该位表示没有移植对应于访问关键字的号码,那么不需要进一步的数据库访问。如果该位表示移植了号码,那么控制过程将进行步骤206,其中使用位图定位数据。
图3是方框图,表示根据本文所述主题实施例的用于范围限定数据库(比如数据库132)的示例性数据结构。参考图3,数据库132包括第一级范围表300、第二级子范围表302、第三级子范围表304和第四级TN数据表306。相关于号码可移植数据,解释图3中的表300-306。然而,应当注意到,这些表的结构可用于由号码范围索引的条目的任何数据类型。在所示实例中,第一级范围表300可以包括由NPA-NXX值索引的条目。为了示例的目的,显示单个条目。在所示实例中,条目包括指向第二级子范围表302中的记录的指针。第二级子范围表302中每个条目由从0000到9999的1000个数字的范围索引,所述1000个数字对应于用作搜索关键字的电话号码的最后4位数字。第二级子范围表302中每个条目包括一个指针,该指针指向用于对应范围的第三级子范围表304中一个条目。第三级子范围表304包括从000到999的对应于电话号码最后3位的100个数字范围索引的条目。在第三级子范围表304中的每个条目包括一个位图、移植计数和指向第四级数据表306的指针。用于每个条目的移植计数表示每个移植范围内TN的数目。位图包括表示对应每位的关键字的存在或缺少的位。指针指向第四级TN数据表306中对应于第三级子范围表304中每个范围的数据块。第四级TN数据表306包括希望被访问的数据。例如,对于号码可移植数据,第四级TN数据表306可以包括LRN和MRG数据。另外,第四级数据表306可以包括搜索关键字的一部分(比如NPA-NXX值),以便在访问时可以对数据库访问结果进行验证。
图4A和4B是说明根据本文所述主题实施例的使用图3所示的数据结构由范围限定关键字索引的访问数据的详细步骤的流程图。参考图4A,在步骤400中,基于关键字的第一部分计算第一索引。第一索引是指向数据库中第一级范围表300的索引。例如采用图3所示的数据结构,如果数字关键字是919-380-2450,那么可以基于该号码的NPA-NXX部分或919-380计算出第一索引。第一索引是值919-380,其指向第一级范围表中的行919380。如果移植任何具有919-380的NPA-NXX值的电话号码,那么第一级范围表中的行919380将具有指向第二级范围表中的行的指针。
在步骤402,访问对应于第一索引的第一级范围表中的条目,定位指向第二级子范围表的指针。继续该实例,919-380的NPA-NXX值将在第一级子范围表中形成一个条目,该条目包括指向第二级子范围表302中的记录的指针。该记录可以包括多个条目。为了访问适当的条目,在步骤404,基于关键字的第二部分计算出指向第二级子范围表的第二索引。因为第二级子范围表302中的条目对应于TN的最后4位数字,所以基于搜索关键字中的2450,可以计算出第二索引。因为第二级子范围表302是顺序排列的,所以通过将电话号码的千位数字加上1就可以访问到适当的条目。以2450为例,因为2+1=3,所以可以访问第二级子范围表302中的第三条目。
在步骤406中,访问第二级子范围表中对应于第一指针和第二索引的条目。读取指向第三级子范围表304中一项记录的指针。在步骤408,基于关键字的第三部分计算出第三索引。因为从第三级子范围表304获取的记录中的条目按照100个电话号码递增,所以电话号码的最后3位数字用于计算第三索引。在这个实例中,电话号码的最后三位数字是450。如果给百位数字加1,那么结果为5,然后将访问该表中的第5个条目。
在步骤410中,使用第三索引中的第二指针访问第三级子范围表中的条目。从该条目中读取位图和指向对应于第三级子范围表条目的第四级数据表306中的数据块的第三指针。指针指向第四级TN数据表条目,该条目包括用于每个搜索关键字所属号码范围中的号码可移植数据。位图包括100个位,第三级子范围表304中条目的TN范围内的每个关键字对应一位,其中每个位表示存在或缺少对应于第四级TN数据表306中每个关键字的号码可移植数据。
在图4B的步骤412和414中,判断位图是否表示存在对应于第四级TN数据表306中关键字的数据。在这个实例中,因为分析的TN的最后3位数字为450,并且位图包括用于400-499中每个号码的一位,所以分析位图的第51位。如果第51位表示存在号码可移植数据,那么控制过程进入步骤416,其中使用指针和位图在第四级数据表306中访问号码可移植信息。指针指向第四级数据表中适当的数据块。位图允许数据库访问引擎计算适当的条目。例如,号码可移植数据表条目可以从具有移植号码的第一TN开始顺序地设置,在具有给定范围内的移植号码的最后TN处结束。为了计算适当条目的位置,数据库访问引擎可以对位图中在第51位之前的移植位的数目进行计数。如果在第51位之前存在10个表示移植号码的位,那么对应于号码919-380-2450的条目将成为第四级TN数据表306中的第11个条目。在步骤414中,如果位图表示不存在用于TN的号码可移植数据,那么控制过程进入步骤418,其中访问引擎返回未移植或不存在数据。
基于用于执行查找的TN的不同部分,通过一系列的计算可访问数据库,所以即便在加到数据库中的移植号码的数目增加的情况下,在数据库中访问数据的时间也是受限的。例如,查找时间取决于在搜索关键字时所需要执行的计算量以及访问每个表中的条目的时间,而不取决于遍历二叉树分支所需的时间,其在当移植号码加到数据库时增加了数量。
根据本文所述主题的另一个方面,可以在访问时对数据库访问结果进行验证。图5是表示示例性步骤的流程图,这些步骤用于在访问时对数据库访问结果进行验证。参考图5,在步骤500中,搜索关键字的一部分保存在由范围限定数字数据索引的数据库中。以使用号码可移植为例,NPA-NXX可以保存在图3所示的第四级TN数据表306的条目中,从而验证数据库访问结果。在步骤502,基于搜索关键字,通过计算至少一个索引访问数据库。使用上述图4A和4B的步骤可执行这种访问。在步骤504,使用索引访问数据库中的一个条目。例如:可以访问第四级TN数据表306中的条目。在步骤506,用于执行访问的搜索关键字部分(比如NPA-NXX值)可与存储的搜索关键字部分进行比较。如果匹配,则控制过程继续到步骤510,其中数据库访问结果表示为有效,并且返回该结果。如果不匹配,那么控制过程继续到步骤512,数据库访问结果表示为无效。
根据另一个方面,当无效数据存在于数据库中时,整个数据库需要重新加载到存储器中。本文所述主题识别出上述存储器数据块中的无效数据。可恢复包括无效数据的数据块,从而无需重新加载整个数据库。在上述实例中,如果用于电话号码919-380-2450的可移植数据无效,那么只需要恢复包括无效数据的第四级TN表中的数据块。通过用数据库的本地或远程副本中的有效数据替换第四级TN表中的无效条目的数据,可恢复数据。这种恢复可由数据库访问引擎执行。
根据另一个方面,本文所述主题可以包括一种用于合并稀疏数据的方法。稀疏数据指占有小于整个数据块的保留存储器块内的数据。例如,如果保留的存储器块将存储在一百个TN的范围内的移植号码的数据,并且仅移植该范围内的一个号码,那么该数据被认为是稀疏的。为了避免稀疏数据,本文所述主题可以包括一种用于合并稀疏数据的方法。图6是流程图,表示根据本文所述主题实施例的用于合并稀疏数据的示例性步骤。参考图6,在步骤600,由号码范围索引的数据块存储在数据库中。每个数据块包括对应于各范围内关键字的个别条目。例如,TN数据表306中的每个数据块都可包括TN记录的预定编号。为了示例目的,假定每个数据块包括一百个TN记录,如图3所示第四级数据表306的情况。每个一百TN记录可包括已填充条目(即,存在号码可移植数据的条目)以及未填充条目(即,因为没有移植号码,不存在号码可移植数据的条目)。
在步骤602,对于每个索引范围,存储计数、指针和位图。计数表示每个范围内部已填充条目的数目。指针指向第四级TN数据表306中的每个数据块,并且位图包括表示每个条目已填充或未填充的位。如图3所示,第三级子范围表304存储位图和一个指向第四级TN数据表306中的数据块的指针,如上所述。另外,第三级子范围表304可以包括用于每个数据块的移植计数。在步骤604,使用计数和位图来合并具有未填充条目的块。使用计数和位图合并数据块可包括将表306中的号码可移植数据从一个具有未填充条目的数据块移动到另一个具有未填充条目的数据块。当出现这种情况时,表304中指向源数据块的指针将转为指向目的数据块。可分别在第三级子范围表304中保持用于两个数据块的位图。然而,将保持在表304中用于目的数据块的移植计数改为反映在当前数据块之前的全部数据块的累积移植计数。下表1表示根据本文所述主题实施例的第三级子范围表304中产生的数据结构改变的实例。
第三级TN表中的条目 | 移植计数 | 指针 | 位图 |
000-999 | 0 | 0x5E | 00010000... |
100-199 | 3 | 0x5E | 01010000... |
200-299 | 6 | 0x5E | 01000110... |
300-399 | 6 | 0x5E | 0000000... |
400-499 | 6 | 0x5E | 00000000... |
500-599 | 9 | 0x5E | 01110000... |
600-699 | 10 | 0x5E | 10000000... |
700-799 | 12 | 0x5E | 11000000... |
800-899 | 13 | 0x5E | 10000000... |
900-999 | 13 | 0x5E | 00000000... |
表1:用于合并移植号码数据块的数据结构
在表1中,第一列表示索引第三级子范围表304中条目的范围。第二列存储用于当前块和当前块之前的任何块的累积移植计数。第三列存储指向每个数据块的指针。应当注意,全部指针指向相同数据块表示这些数据块已被合并。位图包括在合并之前的原始数据块内部移植条目的位置中的位。合并后的第四级数据块中移植条目的位置源自于位图和累积的移植计数。例如,如果TN的最后3位数字是201,那么将访问表1第3列。因为TN中的最后2位数字01对应于位图中的第2位(其是1),因此该号码被移植。用于该行的累积移植计数是6,并且指针是0x5E。因此,将访问对应于指针0x5E的第四级数据表306的数据块中的第7条目。
根据另一个方面,本文所述主题提供一种更新位图和包括由位图所指数据的数据块的方法。当接收到更新时,位图和和数据块都更新。在上述表1的实例中,如果接收到表1所示用于位图的5次更新,那么更新上述表1所示用于第三级表的条目和存储位置0x5E所指的数据块。不必顺序发送5次更新。可以单次累积更新发送5次更新。
根据另一个方面,本文所述主题包括一种访问在由范围限定数据索引的数据库中的数据的方法,其中用于执行这种访问的关键字是非数字数据。为了使用非数字数据访问数据库,一种方法包括将非数字关键字转换为范围限定数字关键字并使用数字关键字进行访问。例如,如果由非数字指示符(比如SIP URI)索引的电信数据库,则可通过使用散列算法(比如MD5散列算法)将URI转换为数字关键字。如果SIP URI是rohini@_tekelec.com,“rohini”部分可以被散列(hash),并且可类似作为上述电话号码的最后4位数字进行处理。地址的tekelec.com部分可以被散列,并且结果可当作号码的NPA-NXX部分。这两个部分的散列输出可用于访问如上所述的数据库。
使用散列函数将非数字数据转换为数字数据的一个问题是出现冲突。在散列函数中,对于不同的输入,输出被认为是唯一的。然而,两个不同的输入可以散列成相同的输出,这被称为冲突。为了在冲突发生时访问数据库中的数据,可以保存一个冲突表。下表2表示可以保存在这种表中的示例性数据。
散列输出 | 散列输入 | L2指针 | 散列输入 | L2指针 |
919380 | tekelec.com | 0x02 | vz.com | 0x04 |
表2:冲突表
在表2中,第一列存储散列函数输出,其被例示为919380。第二列存储对应于散列输出的第一散列输入,在这个实例中是tekelec.com。表中的第3列包括用于第2列中散列输入的指向第二级子范围表的指针。在冲突表第三列中存储对应于相同散列输出的第二散列输入。在这个实例中,第二散列输入是域名vz.com。在冲突表最后一列中存储指向对应于第二散列输入的第二级子范围表中的条目的指针。因此,如果发生冲突,则可采用例如表2所示的数据来解决这种冲突。
应当理解,可以对本发明的各种细节进行修改而不脱离本发明的范围。此外,仅出于说明性目的而并非限制性目的进行以上描述。
Claims (33)
1、一种用于对由范围限定数字数据索引的数据库进行索引的方法,所述方法包括:
(a)基于第一数字数据范围内的第一关键字,计算至少一个第一索引;
(b)访问与具有由范围限定数字数据索引的条目的数据库中的所述索引相对应的条目;
(c)从所述条目读取位图,所述位图的位表示在所述第一数字数据范围内存在或不存在与不同关键字对应的数据;以及
(d)使用所述位图对与所述第一关键字相对应的数据进行定位。
2、权利要求1的方法,其中,所述第一关键字包括数字关键字。
3、权利要求2的方法,其中,所述第一关键字包括电话号码,并且所述第一范围包括电话号码的范围。
4、权利要求1的方法,其中,所述数据库包括由电话号码范围索引的号码可移植数据库。
5、权利要求4的方法,其中,所述号码可移植数据库包括由电话号码范围索引的本地号码可移植数据库,并且其中,与所述第一关键字相对应的所述数据包括定位路由号(LRN)。
6、权利要求4的方法,其中,所述号码可移植数据库包括移动号码可移植数据库,并且其中,所述数据包括移动电信节点地址。
7、权利要求1的方法,其中,所述数据库包括由移动用户标识符范围和个别移动用户标识符索引的移动电信节点地址数据库。
8、权利要求1的方法,其中,所述第一关键字包括非数字关键字,并且其中,所述方法进一步包括通过计算所述第一关键字中的至少一部分的散列来将所述非数字关键字转换为数字关键字。
9、权利要求1的方法,其中,计算至少一个索引包括:
(a)基于所述关键字的第一部分,计算指向所述数据库的第一级范围表的第一索引;
(b)访问与所述第一索引相对应的所述第一级范围表中的条目,并且从所述条目中读取指向第二级子范围表的第一指针;
(c)基于所述关键字的第二部分,计算指向所述数据库中的第二级子范围表的第二索引;
(d)访问与所述第二索引相对应的所述第二级子范围表中的条目,并且对指向所述数据库中的第三级子范围表的第二指针进行定位;
(e)基于所述关键字的第三部分,计算指向所述第三级子范围表的第三索引;以及
(f)访问与所述第三索引相对应的所述第三级子范围表中的条目,其中,所述第三级子范围表中的所述条目包括所述位图和第四指针,其中,使用所述位图对与所述第一关键字相对应的数据进行定位包括使用所述位图和所述第四指针对与所述第一关键字相对应的数据进行定位。
10、权利要求1的方法,其包括通过下列步骤验证所述数据库的访问结果:
(a)在所述数据库的条目中存储搜索关键字的一部分;
(b)通过基于搜索关键字计算至少一个索引来访问所述数据库中的条目;
(c)在所述数据库中对与所述至少一个索引相对应的条目进行定位;
(d)读取在所述条目中存储的搜索关键字的一部分;以及
(e)基于在所述条目中存储的所述搜索关键字的一部分和用于执行所述访问的所述搜索关键字,确定所述访问结果是否有效。
11、权利要求10的方法,其包括,响应于确定所述数据库访问结果无效,恢复与所述无效结果相对应的所述条目中的数据。
12、权利要求11的方法,其中,恢复与所述无效结果相对应的所述条目中的数据包括:替换与所述无效结果相对应的所述条目中的数据而无需重新加载整个所述数据库。
13、权利要求1的方法,其包括通过下列步骤合并所述数据库中的稀疏数据:
(a)在所述数据库中存储由号码范围索引的数据块,每个数据块包括与范围内的号码相对应的个别条目;
(b)在所述数据库中为每个号码范围存储计数、指针和位图,所述计数表示每个范围内的已填充条目的数量,所述指针指向每个块,而所述位图包括表示每个范围内已填充和未填充的条目的位;以及
(c)使用所述计数和所述位图来合并所述数据库中具有未填充条目的块。
14、权利要求13的方法,其中,使用所述计数和所述位图来合并具有未填充条目的块包括:
(a)识别具有包括未填充条目的位图的块;
(b)归并具有未填充条目的所述块;以及
(c)更新所述范围的计数,以表示在每个范围中和在每个范围之前的范围中已填充条目的累积计数。
15、一种数据库系统,其提供访问到由范围限定数字数据索引的数据库,所述系统包括:
(a)数据库,其用于存储由范围限定数字数据索引的数据;以及
(b)数据库访问引擎,其基于第一数字数据范围内的第一关键字计算至少一个索引,访问所述数据库中与所述索引相对应的条目,从所述条目中读取位图,并使用所述位图对与所述第一关键字相对应的数据进行定位,其中所述位图的位表示在所述第一数字数据范围内存在或不存在与不同关键字对应的数据。
16、权利要求15的系统,其中,所述第一关键字包括数字关键字。
17、权利要求15的系统,其中,所述第一关键字包括电话号码范围内的电话号码。
18、权利要求15的系统,其中,所述数据库包括号码可移植数据库。
19、权利要求18的系统,其中,所述数据库包括本地号码可移植数据库。
20、权利要求18的系统,其中,所述号码可移植数据库包括移动号码可移植数据库。
21、权利要求15的系统,其中,所述数据库包括由移动用户标识符范围和个别移动用户标识符索引的移动用户节点地址数据库。
22、权利要求15的系统,其中,所述数据库访问引擎用于计算非数字关键字的散列,并使用所述散列关键字访问所述数据库。
23、权利要求15的系统,其中,所述数据库访问引擎用于:
(a)访问与所述第一索引相对应的所述数据库的第一级范围表中的第一条目,并且从所述第一条目中读取指向所述数据库中的第二级子范围表的第一指针;
(b)基于所述关键字的第二部分,计算指向所述第二级子范围表的第二索引;
(c)访问与所述第二索引相对应的所述第二级子范围表中的条目,并且对指向所述数据库中的第三级子范围表的第二指针进行定位;
(d)基于所述关键字的第三部分,计算指向所述第三级子范围表的第三索引;
(e)访问与所述第三索引相对应的所述第三级子范围表中的条目,并且从所述条目中读取位图和第四指针;以及
(f)使用所述位图和所述第四指针对与所述第一关键字相对应的所述数据进行定位。
24、权利要求15的系统,其包括与所述数据库可操作地关联的供给平台,所述供给平台用于接收数据库更新以及用于将包括多个数据库更新的块传送到所述数据库。
25、权利要求24的系统,其中,所述数据库访问引擎用于对所述数据库中的数据块进行累积更新,并且对指向所述块的位图进行累积更新。
26、一种用于对电信号码可移植数据库访问设置受限访问时间的系统,所述系统包括:
(a)包括多个范围表和一个数据表的号码可移植数据库,每个范围表包括与电话号码中的数字范围相对应的条目,所述数据表包括含有号码可移植信息的条目;以及
(b)数据库访问引擎,其用于使用已搜索到号码可移植信息的电话号码的不同部分来计算指向所述范围表的索引,并且用于使用所述索引和从所述范围表中读取的数据来对包括所述电话号码的号码可移植信息的所述数据表中的条目进行定位。
27、权利要求26的系统,其中,所述范围表包括第一级范围表,所述第一级范围表包括由电话号码的NPA-NXX部分索引的条目。
28、权利要求27的系统,其中,所述范围表包括第二级子范围表,所述第二级子范围表包括由电话号码的最后4位数字索引的条目。
29、权利要求28的系统,其中,所述范围表包括第三级子范围表,所述第三级子范围表包括由电话号码的最后3位数字索引的条目。
30、权利要求29的系统,其中,所述数据表包括第四级数据表,所述第四级数据表由从所述第三级范围表中的所述条目获取的信息索引,并且包括所述号码可移植信息。
31、权利要求30的系统,其中,所述第三级子范围表中的每个条目都包括指向所述第四级数据表中的数据块的指针以及表示所述数据块中包括号码可移植信息的条目的位图。
32、权利要求31的系统,其中,所述数据库访问引擎基于所述位图确定用于访问所述数据库的所述电话号码的号码可移植信息的位置。
33、一种包括计算机可执行指令的计算机程序产品,所述计算机可执行指令体现在计算机可读介质中并用于执行下列步骤:
(a)基于第一数字数据范围内的第一关键字,计算至少一个第一索引;
(b)访问与由范围限定数字数据索引条目的数据库中的所述索引相对应的条目;
(c)从所述条目读取位图,所述位图的位表示在所述第一数字数据范围内存在或不存在与不同关键字对应的数据;以及
(d)使用所述位图对与所述第一关键字相对应的数据进行定位。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US76564406P | 2006-02-06 | 2006-02-06 | |
US60/765,644 | 2006-02-06 | ||
US11/364,759 | 2006-02-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101416150A true CN101416150A (zh) | 2009-04-22 |
Family
ID=40595633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800120957A Pending CN101416150A (zh) | 2006-02-06 | 2007-01-31 | 用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101416150A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309958A (zh) * | 2013-05-28 | 2013-09-18 | 中国人民大学 | Gpu和cpu混合架构下的olap星型连接查询优化方法 |
CN104572994A (zh) * | 2015-01-06 | 2015-04-29 | 华为技术有限公司 | 用于搜索数据的方法和装置 |
CN105760404A (zh) * | 2014-12-19 | 2016-07-13 | 富士通株式会社 | 数据集成方法和装置 |
CN107229538A (zh) * | 2017-05-31 | 2017-10-03 | 广州鼎甲计算机科技有限公司 | 一种文件合成备份的方法 |
CN111414359A (zh) * | 2019-01-07 | 2020-07-14 | 奥普塔姆软件股份有限公司 | 稀疏数据索引表 |
-
2007
- 2007-01-31 CN CNA2007800120957A patent/CN101416150A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309958A (zh) * | 2013-05-28 | 2013-09-18 | 中国人民大学 | Gpu和cpu混合架构下的olap星型连接查询优化方法 |
CN103309958B (zh) * | 2013-05-28 | 2016-06-29 | 中国人民大学 | Gpu和cpu混合架构下的olap星型连接查询优化方法 |
CN105760404A (zh) * | 2014-12-19 | 2016-07-13 | 富士通株式会社 | 数据集成方法和装置 |
CN104572994A (zh) * | 2015-01-06 | 2015-04-29 | 华为技术有限公司 | 用于搜索数据的方法和装置 |
CN104572994B (zh) * | 2015-01-06 | 2018-12-14 | 华为技术有限公司 | 用于搜索数据的方法和装置 |
CN107229538A (zh) * | 2017-05-31 | 2017-10-03 | 广州鼎甲计算机科技有限公司 | 一种文件合成备份的方法 |
CN111414359A (zh) * | 2019-01-07 | 2020-07-14 | 奥普塔姆软件股份有限公司 | 稀疏数据索引表 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070203909A1 (en) | Methods, systems, and computer program products for indexing, validating, recovering, and consolidating a database indexed by range-bound numeric data | |
WO2007092205A2 (en) | Methods, systems, and computer program products for indexing, validating, recovering and consolidating a database indexed by range-bound numeric data | |
CN108427684B (zh) | 数据查询方法、装置及计算设备 | |
CN101416150A (zh) | 用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品 | |
CN116415206B (zh) | 运营商多数据融合方法、系统、电子设备及计算机存储介质 | |
CN112905616B (zh) | 一种区块链账本的存储系统 | |
CN102804180A (zh) | 表征未经注册域名 | |
CN108173952A (zh) | 一种内容分发网络cdn的数据访问方法和装置 | |
CN114328566A (zh) | 关系图谱的更新方法、装置、介质、设备及生成方法 | |
CN106130751B (zh) | 一种升级状态数据管理装置、系统和方法 | |
CN108234632A (zh) | 一种内容分发网络cdn的数据分发方法和装置 | |
CN101682676A (zh) | 用于使用基于位置路由号的查询和响应机制来实现用户切换的方法、系统和计算机程序产品 | |
US9398434B2 (en) | Method and system for zone analysis in a charging system | |
US7738640B1 (en) | Methods for reconciling discrepancies in circuit information among various telecommunication network management systems | |
KR100902934B1 (ko) | 전자 지도의 업데이트 방법 및 장치 | |
CN100473041C (zh) | 一种p2p系统中查找种子的方法及系统 | |
CN105389394A (zh) | 基于多个数据库集群的数据请求处理方法及装置 | |
CN104239538A (zh) | 一种快照型日志压缩方法、系统及装置 | |
CN116680278A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112989255B (zh) | 一种标识解析系统 | |
CN106603495A (zh) | 一种radius信令关联方法及系统 | |
CN103609081A (zh) | 通过解析进行路由 | |
JP2012073943A (ja) | 情報生成装置、情報生成方法及び情報生成プログラム | |
CN113901131A (zh) | 基于索引的链上数据查询方法及装置 | |
KR100678310B1 (ko) | 이동단말의 실시간 위치 정보 관리 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090422 |