首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

不利用字典管理的通用唯一资源 

申请/专利权人:达索系统美国公司

申请日:2018-12-26

公开(公告)日:2024-05-31

公开(公告)号:CN110046158B

主分类号:G06F16/22

分类号:G06F16/22

优先权:["20171229 US 15/858,306"]

专利状态码:有效-授权

法律状态:2024.05.31#授权;2020.10.30#实质审查的生效;2019.07.23#公开

摘要:本文公开的数据库和方法通过将数据直接存储在索引中例如,存储文字值或利用通用唯一标识符UUID来减少昂贵的字典访问写入和读取,从而节省时间和存储器。一个示例实施例是包括字典和索引的数据库。字典存储键与数据之间的关联。索引中的每个条目包括对应于数据的多个值。索引的值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。

主权项:1.一种数据库,包括:字典,其存储键与数据之间的关联;以及索引,所述索引中的每个条目包括对应于数据的多个值;所述索引的给定条目中的值中的每个值包括基于对应数据的数据类型的所述对应数据的相应表示,其中,i当所述对应数据的数据类型为特定数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的直接表示,以及ii当所述对应数据的数据类型为其他数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的散列,所述散列在所述字典中用作与所述对应数据相关联的键;其中,给定索引值的第一数量的位表示由所述给定索引值表示的数据的类别;如果由所述给定索引值的第一数量的位表示的数据的类别为空白类别,则所述给定索引值中的不属于所述第一数量的位的其余位为空白;如果由所述给定索引值的第一数量的位表示的数据的类别为文字值类别,则所述给定索引值的第二数量的位表示文字值的数据类型,并且所述给定索引值的其余位存储所述数据的文字值,所述其余位为所述给定索引值中的不属于所述第一数量的位或者所述第二数量的位的位;如果由所述给定索引值的第一数量的位表示的数据的类别为通用唯一标识符UUID类别,则所述给定索引值中的不属于所述第一数量的位的其余位将所述数据存储为UUID;以及如果由所述给定索引值的第一数量的位表示的数据的类别为字典查找类别,则所述给定索引值中的不属于所述第一数量的位的其余位存储所述数据的散列,所述数据的散列在所述字典中用作与相对应的数据相关联的键。

全文数据:不利用字典管理的通用唯一资源背景技术最终一致性是在分布式计算中使用的模型,其目标是对项目的所有单独访问最终将返回相同的值。最终一致的语义Web上系统通常称为BASE基本可用,软状态,最终一致性。资源描述框架RDF是用于Web上数据交换的示例标准。RDF使用通用资源标识符URI将事物之间的关系描述为主语、谓语和宾语称为“三元组”。URI是用于标识资源的字符串。URI的一个示例是统一资源定位符URL,通常称为“web地址”。RDF可以表示为有向的标记图,其中节点表示Web资源,而节点之间的边表示资源之间的关系。允许产生非常大量数据的应用可以受益于使用RDF数据集。在这种情况下,必须支持产生非常大量的URI。字典可以用于提供对RDF三元组存储的索引,以帮助优化大量冗余信息的持久性。字典和索引本质上提供三种操作:1插入——将索引归属于RDF节点并将其值存储在字典中,2定位——提供与RDF节点相关联的索引,以及3提取——从字典中提供与索引相关联的值。随着字典增长,定位操作和提取操作可能成本很高,因为它们要求从远程站点作为整体访问对字典的最新更新,以便分发准确的索引。插入操作在分散和分布式字典的上下文中可能是有问题的,因为两个不同的站点可能同时尝试插入相同的资源。发明内容通用唯一标识符UUID可以在几乎没有冲突风险的情况下在RDF数据集中用于归属数据标识符。表示为字符串的UUID可能比许多传统URI更紧凑,为36个字节即,十六进制格式下每字节两个字母数字字符,以及根据标准UUID文本形式的四个破折号,但是将UUID作为字符串来操纵是次优的,因为它的自然二进制表示只有16个字节128位。使用字符串字典处理大量基于UUID的URI会浪费处理器周期和存储器,并且会失去UUID特征的益处:两个不同站点生成相同UUID是极不可能事件。因此不太可能将其认为是在不需要交叉验证的情况下建立分散系统的假设。本文公开的数据库和方法可以利用这一点来减少昂贵的字典访问写入和读取,从而节省时间和存储器。一个示例实施例是一种包括字典和索引的数据库。字典存储键与数据之间的关联。索引中的每个条目包括对应于数据的多个值。索引的值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。另一示例实施例是一种在数据库中存储数据的计算机实现的方法,其中数据库包括索引和字典。示例方法包括在字典中存储键与数据之间的关联。该方法还包括在索引中存储包括对应于数据的多个值的索引。索引的值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。另一示例实施例是一种在计算机存储器中对数据进行存储和取回的方法。示例方法包括根据索引和字典来配置存储器。索引中的每个条目包括对应于数据的多个值。字典存储键与数据之间的关联。索引的每个值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。在一些实施例中,数据库可以是资源描述框架数据库,并且索引的多个值可以包括对应于主语、谓语以及宾语的三个值。在一些实施例中,索引的值可以包括针对以下任何数据类型的对应数据的直接表示:整数、双精度、浮点数、八个字符或更少的字符串或通用唯一标识符。在一些实施例中,索引值的第一数量的位可以表示由该值表示的数据的类别。由索引值的第一数量的位表示的数据的类别可以是文字值类别,在这种情况下,索引值的第二数量的位可以表示文字值的数据类型。索引值的其余位可以存储数据的文字值。索引值可以是128位的,并且第一数量的位表示数据的类别可以是两位。在文字值类别的情况下,第二数量的位表示数据类型可以是62位。在除文字值之外的情况下,索引值的其余位除了第一数量的位之外可以存储数据。在一些情况下,存储在索引值的其余位中的数据可以是通用唯一标识符,并且在其他情况下,索引值的其余位可以存储数据的散列。附图说明根据以下对示例实施例的更具体的描述,前述内容将变得显而易见,如附图中所示,其中相同的附图标记贯穿不同视图指代相同的部分。附图不一定按比例绘制,而是将重点放在说明实施例上。图1是示出根据示例实施例的存储器中的字典和索引的框图。图2A-D是示出根据示例实施例的索引值的示例的框图。图3是示出根据示例实施例的对数据库的示例操作的流程图。图4是示出根据示例实施例的将数据存储在数据库中的计算机实现的方法的流程图。图5是示出根据示例实施例的将数据存储在数据库中的流程图。图6是示出根据示例实施例的从数据库读取数据的流程图。图7是其中可以实现本文呈现的示例实施例的计算机网络环境的示意图。图8是示出图7的网络的示例计算机节点的框图。具体实施方式以下是对示例实施例的描述。需要命名方案来识别数据集中的数据。UUID通常用于在几乎没有冲突风险的情况下归属数据标识符。UUID是128位数字,用于标识计算机系统中的信息。当根据标准方法生成时,UUID是唯一的,而不依赖于对生成UUID的各方之间的集中管理或协调。UUID重复的概率可以忽略不计。图1是示出根据示例实施例的存储器100中的字典110和索引105的框图。字典存储键130a-n与数据135a-n之间的关联。索引105中的每个条目索引105的一行包括对应于数据的多个值115a-m、120a-m和125a-m。索引105的值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的对应数据的散列。散列在字典110中用作与对应数据相关联的键130a-n中的一个。在特定实施例中,字典110可以使用128位散列键作为对任何信息例如,RDF节点的索引。特定数据类型的文字值例如,整数、双精度浮点数、日期和时间或短字符串可以适合64位半键。可以保留128位值的两位用于数据分类,并且其余62位可以用于对数据类型进行编码。类似地,UUID可以使用128位散列键的完全长度编码为128位值,两个保留位使得区分UUID的情况成为可能。图2A-D是示出根据示例实施例的索引值205、225、250和270的示例的框图。图2A示出了表示空白节点的示例索引值205。索引值205的两位可以用于指示空白节点。在图2A的情况下,使用值205的前两位210、215,并且指示空白节点的位值可以是例如“00”,如所示出的。应该理解,可以使用位值的不同组合。图2B示出了表示文字形式的数据的示例索引值225。索引值225的两位可以用于指示数据的文字值存储在索引中。在图2B的情况下,使用值225的前两位230、235,并且指示文字类别的位值可以是例如“01”,如所示出的。应该理解,可以使用位值的不同组合。可以使用多个位240来指示数据的类型例如,整数、双精度浮点数、日期、时间或短字符串。其余位245可以用于存储数据的文字值。例如,在图2B的情况下,62位可以用于指定数据类型,并且64位可以用于存储数据的文字值。图2C示出了将数据表示为UUID的示例索引值250。索引值250的两位可以用于指示数据作为UUID存储在索引中。在图2C的情况下,使用值250的前两位255、260,并且指示UUID类别的位值可以是例如“10”,如所示出的。应该理解,可以使用位值的不同组合。其余位265可以用于以UUID格式存储数据。图2D示出了示例索引值270,其是用于在字典例如,图1的110中查找数据的散列键。索引值270的两位可以用于指示数据存储在字典中。在图2D的情况下,使用值270的前两位275、280,并且指示数据存储在字典中的位值可以是例如“11”,如所示出的。应该理解,可以使用位值的不同组合。其余位285可以用于存储散列键。图3是示出根据示例实施例的对数据库的示例操作的流程图。本文公开的数据库和方法的字典可以被认为是反向散列表,其可以在给定散列键的情况下计算值以执行提取操作。另一方面,插入操作和定位操作以恒定时间操作,并且不要求在远程站点之间进行任何同步。在RDF字典的情况下,字典本质上是仅附加的BASE数据库,具有宽松的事务要求。使用所公开的散列键使得能够通过写入字典而不从字典读取来执行插入操作。根据设计,无需检查要归属的索引是否已在字典中使用。另外,定位操作可以通过“在没有读数的情况下读取”来执行,因为如果已知正确的散列算法,则可以从值本身推断出键。参考图3,可以通过基于资源生成310UUID并将UUID编码315为128位键来创建305RDF资源。可以使用生成的键来存储320RDF三元组。通过基于键搜索330三元组并且对匹配的128位键进行解码335,可以搜索325RDF资源。如果可能的话,优选地通过对键进行解码而不参考字典来获得资源。通过将UUID编码为128位键并使用键匹配350三元组,可以读取340RDF资源。对于完整的分散字典,尽可能避免存储在字典中是有益的,这可以使用这里公开的数据库和方法通过对散列键中的数据进行就地编码来实现。对于大多数文字值,对于所有基于UUID的生成的资源,以及对于匿名节点使用UUID,可以避免字典访问。给定足够大的数据集,几乎所有节点达到几个数量级都不要求字典管理。图4是示出根据示例实施例的将数据存储在数据库中的计算机实现的方法400的流程图。该示例方法包括在字典中存储405键与数据之间的关联。该方法还包括在索引中存储410包括与数据相对应的多个值的索引。索引的值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。图5是示出根据示例实施例的将数据存储在数据库中的方法500的流程图。确定505要存储在数据库中的数据的类别例如,URI。如果类别是“空白”空节点,则可以将数据为空白的指示存储510在索引值中。如果类别是“文字”并且数据类型是例如整数、浮点数、日期或时间,则可以将数据是文字值的指示连同数据类型和数据的文字值的指示一起存储510在索引值中。如果文字的数据类型是字符串,则可以确定525字符串的大小。如果字符串的大小小于或等于8个字符64位,则可以将数据是文字值的指示连同数据类型字符串和数据的文字值的指示一起存储510在索引值中。如果字符串的大小大于8个字符64位,则可以将数据存储在字典中的指示连同数据的散列一起存储530在索引值中;散列用作字典中的键。如果数据的类别不是空白或文字,则可以确定535数据的大小。如果数据的大小小于或等于十六个字节128位,则数据可以表示为UUID,并且可以将数据被表示为UUID的指示连同该UUID一起存储540在索引值中。如果数据的大小大于16个字节128位,则可以将数据被存储在字典中的指示连同数据的散列一起存储545在索引值中;散列用作字典中的键。图6是示出根据示例实施例的从数据库读取数据的方法600的流程图。可以确定605存储在索引值中的数据的类别例如,通过解译索引值的两位,如上面描述的。如果类别是“空白”空节点,则数据是空白的610。如果类别是文字,则可以从索引值解译615数据的类型例如,通过解译索引值的62位,如上面描述的。基于数据类型,可以从索引值例如,从其余64位读取615数据作为文字值。如果类别是UUID,则可以基于数据作为UUID的表示从索引值读取620数据。如果类别是字典查找,则可以从索引值读取625散列键并将其用于访问字典中的数据。图7示出了其中可以实现本实施例的计算机网络或类似的数字处理环境。多个客户端计算机设备处理器50和多个服务器计算机60提供执行应用程序等的处理、存储和输入输出设备。多个客户端计算机设备50还可以通过通信网络70链接到其他计算设备,包括其他客户端设备过程50和多个服务器计算机60。通信网络70可以是远程访问网络、全球网络例如,互联网、云计算服务器或服务、全球计算机集合、局域网或广域网以及当前使用相应协议TCPIP、蓝牙等来彼此通信的网关的一部分。其他电子设备计算机网络架构也是合适的。图8是图7的计算机系统中的计算机例如,客户端处理器设备50或服务器计算机60的内部结构的图。每个计算机50、60包含系统总线79,其中总线是用于计算机或处理系统的组件之间的数据传送的一组硬件线。总线79本质上是连接计算机系统的不同元件例如,处理器、磁盘存储装置、存储器、输入输出端口和网络端口的共享管道,其使得能够在元件之间传送信息。附接到系统总线79的是IO设备接口82,用于将各种输入设备和输出设备例如,键盘、鼠标、显示器、打印机和扬声器连接到计算机50、60。网络接口86允许计算机连接到各种附接到网络例如,图7的网络70的其他设备。存储器90为用于实现许多实施例的计算机软件指令92和数据94例如,上面和图3-6中详述的代码,包括例程300、400、500和600提供易失性存储。磁盘存储装置95为用于实现许多实施例的计算机软件指令92和数据94提供非易失性存储。中央处理器单元84也附接到系统总线79,并且提供计算机指令的执行。在一个实施例中,处理器例程92和数据94是计算机程序产品一般标记为92,包括提供用于系统的软件指令的至少一部分的计算机可读介质例如,诸如一个或多个DVD-ROM、CD-ROM、软盘和磁带之类的可移除存储介质。如本领域中公知的,计算机程序产品92可以通过任何合适的软件安装过程来安装。在另一实施例中,还可以通过电缆、通信和或无线连接来下载软件指令的至少一部分。在其他实施例中,程序是计算机程序传播信号产品75图7,其体现在传播介质例如,通过诸如互联网或多个其他网络之类的全球网络传播的无线电波、红外波、激光波、声波或电波上的传播信号上。这种载波介质或信号提供用于例程程序92的软件指令的至少一部分。在替代实施例中,传播信号是传播介质上承载的模拟载波或数字信号。例如,传播信号可以是通过全球网络例如,互联网、电信网络或其他网络传播的数字化信号。在一个实施例中,传播信号是在一段时间内通过传播介质传输的信号,例如,在毫秒、秒、分钟或更长的时间段内通过网络以分组发送的用于软件应用的指令。在另一实施例中,计算机程序产品92的计算机可读介质是计算机系统50可以接收和读取的传播介质,例如,通过接收传播介质并识别传播介质中体现的传播信号,如上面针对计算机程序传播信号产品描述的。一般而言,术语“载波介质”或瞬态载波涵盖前述瞬态信号、传播信号、传播介质、存储介质等。在其他实施例中,程序产品92可以实现为所谓的软件即服务SaaS,或支持最终用户的其他安装或通信。虽然已经具体示出和描述了示例实施例,但是本领域技术人员将理解,在不脱离所附权利要求涵盖的实施例的范围的情况下,其中可以在形式和细节上进行各种改变。

权利要求:1.一种数据库,包括:字典,其存储键与数据之间的关联;以及索引,所述索引中的每个条目包括对应于数据的多个值;所述索引的值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的所述对应数据的散列,所述散列在所述字典中用作与所述对应数据相关联的键。2.如权利要求1所述的数据库,其中,所述数据库是资源描述框架数据库,并且所述索引的多个值包括对应于主语、谓语以及宾语的三个值。3.如权利要求1所述的数据库,其中,所述索引的值包括针对整数、双精度、浮点数、八个字符或更少的字符串或者通用唯一标识符数据类型中的任何一个的对应数据的直接表示。4.如权利要求1所述的数据库,其中,索引值的第一数量的位表示由所述值表示的数据的类别。5.如权利要求4所述的数据库,其中,由所述索引值的第一数量的位表示的所述数据的类别是文字值,并且其中,所述索引值的第二数量的位表示所述文字值的数据类型。6.如权利要求5所述的数据库,其中,所述索引值的其余位存储所述数据的文字值。7.如权利要求5所述的数据库,其中,所述索引值是128位的,所述第一数量的位是2位,并且所述第二数量的位是62位。8.如权利要求4所述的数据库,其中,所述索引值的其余位存储所述数据。9.如权利要求8所述的数据库,其中,存储在所述索引值的其余位中的所述数据是通用唯一标识符。10.如权利要求4所述的数据库,其中,所述索引值的其余位存储所述数据的散列。11.一种在数据库中存储数据的计算机实现的方法,所述数据库包括索引和字典,所述方法包括:在所述字典中存储键与数据之间的关联;以及在所述索引中存储包括对应于数据的多个值的索引;所述索引的值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的所述对应数据的散列,所述散列在所述字典中用作与所述对应数据相关联的键。12.如权利要求11所述的方法,其中,所述数据库是资源描述框架数据库,并且所述索引的多个值包括对应于主语、谓语以及宾语的三个值。13.如权利要求11所述的方法,其中,在所述索引中存储索引包括将所述索引的值存储为针对整数、双精度、浮点数、八个字符或更少的字符串或者通用唯一标识符数据类型中的任何一个的对应数据的直接表示。14.如权利要求11所述的方法,其中,在所述索引中存储索引包括在索引值的第一数量的位中存储由所述值表示的数据的类别的表示。15.如权利要求14所述的方法,其中,由所述索引值的第一数量的位表示的所述数据的类别是文字值,并且其中,在所述索引中存储索引包括在所述索引值的第二数量的位中存储所述文字值的数据类型的表示。16.如权利要求15所述的方法,其中,在所述索引中存储索引包括在所述索引值的其余位中存储所述数据的文字值。17.如权利要求14所述的方法,其中,在所述索引中存储索引包括在所述索引值的其余位中存储所述数据。18.如权利要求17所述的方法,其中,在所述索引中存储索引包括在所述索引值的其余位中存储通用唯一标识符。19.如权利要求14所述的方法,其中,在所述索引中存储索引包括在所述索引值的其余位中存储所述数据的散列。20.一种在计算机存储器中对数据进行存储和取回的方法,所述方法包括:根据索引和字典来配置所述存储器,所述索引中的每个条目包括对应于数据的多个值,并且所述字典存储键与数据之间的关联;所述索引的每个值包括i针对特定数据类型的对应数据的直接表示,或ii针对其他数据类型的所述对应数据的散列,所述散列在所述字典中用作与所述对应数据相关联的键。

百度查询: 达索系统美国公司 不利用字典管理的通用唯一资源

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。