基于缓存的键值数据库映射和复制的制作方法

文档序号:6485122阅读:223来源:国知局
基于缓存的键值数据库映射和复制的制作方法
【专利摘要】技术总体上是针对基于缓存的键值数据库映射和复制描述的。在一些示例中,可以通过在数据库中进行迭代并且检验缓存地址的变化以检测地址值的跳变来提取现有键值数据库中的文件断点,从而映射键值数据库以进行数据结构复制。可以执行特别定制的查询,以返回跨越物理存储容量的地址范围内的值,以便恢复在包括记录重复的当前数据中心处物理分组的全键值集合。这种集合可用于复制或告知新位置处或新键值数据库中的键值集合,从而允许用当表随时间流逝被优化时形成的记录重复来完成复制的数据库树结构的构造。
【专利说明】基于缓存的键值数据库映射和复制
【背景技术】
[0001]除非本文另外指出,否则这个部分中描述的内容将不是本申请中的权利要求书的现有技术并且将不因包括在这个部分中而被承认是现有技术。
[0002]云服务提供商通常不支持传统数据库管理系统(DBMS);相反,他们提供用户可以借助应用编程接口(API)命令访问的键值数据库服务。这种方式的原因是,因为DBMS不容易缩放并且无法很好地处理故障或网络不确定性-二者均是面向服务架构(SOA)的重点(keystone)架构假设。一旦用户将他们的数据转移到数据中心,在数据中心之间移动数据之后保持数据库性能涉及复制原始数据中心可能已经使用长期的操作观察而生成的包括复杂树结构和数据再现(重复)的键值数据库。为了在目的数据中心处复制这种结构,可能需要知道用户表的存储划分边界和在哪里使用重复记录。这是从数据中心中的用户访问提取的信息。
[0003]键值数据库通常包括隐藏层。用户数据表可以分担在许多机器上并且在各表之上具有用于查找各键值的位置的多级元数据树。键值数据库通常专属于各数据中心服务提供商并且可以由用户通过API调用进行访问,在API调用中,用户可以提供关键字或匹配项并且检索值。尽管如果要保持数据库性能可能需要在目的数据中心处复制一些细节,但元数据表或用户数据表的实际结构对于用户可能是不可见的。
[0004]在传统系统中,用户无法访问物理存储键值数据库的实际文件。键值文件是数据中心服务结构的一部分,如果希望将客户移动到新的数据中心,不太可能的是,当前的数据中心可以让技术人员专注于检索以专属方式散布在机器之中、包含当前的数据中心进行的优化、使用专属文件格式的这些深度集成的数据库的动作。

【发明内容】

[0005]本公开总体上描述了数据中心中的数据存储结构的键值数据库映射和复制的技术。根据一些示例,一种用于键值数据库映射和复制的方法可以包括:通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置来将物理存储分布映射到目标数据中心内,并且将数据划分和数据重复映射到目标数据中心内。所述方法还可以包括将目标数据中心内的数据复制到新的数据中心中的类似结构。
[0006]根据其它示例,一种适于执行键值数据库映射和复制的计算装置可以包括存储器和与存储器连接的处理器。处理器可以执行数据传递应用,数据传递应用可以通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置来将物理存储分布映射到目标数据中心内,将数据划分和数据重复映射到目标数据中心内,将目标数据中心内的数据复制到新的数据中心中的类似结构。
[0007]根据其它示例,一种计算机可读存储介质可以具有存储在其上用于键值数据库映射和复制的指令。所述指令可以包括:通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置来将物理存储分布映射到目标数据中心内;将数据划分和数据重复映射到目标数据中心内;将目标数据中心内的数据复制到新的数据中心中的类似结构。
[0008]根据其它示例,一种适于执行键值数据库映射和复制的服务器可以包括存储器和与存储器连接的处理器。处理器可以执行数据传递应用,数据传递应用可以被配置成通过迭代地向目标数据中心的现有键值数据库提交请求预定数量结果和位置缓存元素的查询,来提取目标数据中心的键值数据库中的文件断点;接收跨越物理存储容量的地址范围内的返回值;恢复在目标数据中心处物理分组的键值集合和记录重复。
[0009]以上的
【发明内容】
只是示例性的并且不旨在以任何方式进行限制。除了上述的示例性方面、实施方式和特征之外,通过参照附图和下面的【具体实施方式】,另外的方面、实施方式和特征将变得清楚。
【专利附图】

【附图说明】
[0010]根据结合附图的以下描述和随附权利要求书,将更充分地清楚本公开的以上和其它特征。理解这些附图只是示出根据本公开的几个实施方式,因此将不被视为对其范围的限制,将通过使用附图用额外的具体细节描述本公开,其中:
[0011]图1概念性示出将用户数据存储在多个数据库和服务器上的基于云的数据中心;
[0012]图2示出用于将存储的数据位置信息保存在键值数据库中的提取数据表和根表的使用;
[0013]图3示出可以怎样使用数据查询缓存映射物理数据存储分布;
[0014]图4示出可用于基于缓存的键值数据库映射的通用计算装置;
[0015]图5是示出可通过计算装置(诸如图4中的装置)执行的基于缓存的键值数据库映射和复制的示例方法的流程图;以及
[0016]图6示出示例计算机程序产品的框图,所有附图都是根据本文描述的至少一些实施方式布置的。
【具体实施方式】
[0017]在下面的【具体实施方式】中,参照形成其一部分的附图。在附图中,除非上下文另外指出,否则类似的符号通常标识类似的组件。【具体实施方式】、附图和权利要求书中描述的示例性实施方式不意图是限制性的。在不脱离这里呈现的主题的精神或范围的情况下,可以利用其它实施方式,并且可以做出其它改变。应该容易理解,如本文总体描述和附图中示出的本公开的方面可以按各种不同的配置被布置、替换、组合、分开和设计,所有这些在这里被明确料想到。
[0018]本公开总体上尤其涉及与跨数据中心的数据结构的基于缓存的键值数据库映射和复制有关的方法、设备、系统、装置和/或计算机程序产品。
[0019]简言之,可以通过在数据库中进行迭代并且检验缓存地址的变化以检测地址值的跳变来提取现有键值数据库中的文件断点,从而映射键值数据库以进行数据结构复制。可以执行特别定制的查询,以返回跨越物理存储容量的地址范围内的值,以便恢复在包括记录重复的当前数据中心处物理分组的全键值集合。这种集合可用于复制或告知新位置处或新键值数据库中的键值集合,从而允许用当表随时间流逝被优化时形成的记录重复来完成复制的数据库树结构的构造。[0020]图1概念性示出根据本文描述的至少一些实施方式设置的将用户数据存储在多个数据库和服务器上的基于云的数据中心。
[0021]数据中心是用于存储、管理、传播数据和信息的集中存放处。数据中心可以存在于机构的设施内或者可以被保持为专用设施。一些数据中心可以与包含监控服务器活动、网络流量、管理数据和网络性能的自动化系统的网络操作中心(NOC)同义。其它数据中心可以专用于管理收集的数据。虽然数据中心通常与物体实体(例如,服务器机房、服务器群等)关联,但数据中心也可以被配置为虚拟数据中心(VDC),在虚拟数据中心(VDC)中,通过虚拟服务器和数据库基于大小、拥有者或其它方面将被管理的数据分类。
[0022]参照图1的示图100,数据中心104可以存储多个用户(客户)(诸如用户102)的数据。用户102可以通过一个或多个网络106与数据中心104进行交互(例如,基于云的交互)。可以将用户数据以分布方式存储在多个数据库(诸如数据库112和114)中。通过键值数据库108管理用户数据的物理分布。键值数据库108可以包括隐藏层。用户数据表可以分担在许多机器上并且在各表之上具有用于查找各键值的位置的多级元数据树。此外,键值数据库108可以由用户102通过API调用进行访问,在API调用中,用户或用户执行的应用可以提供关键字或匹配项并且检索值。
[0023]元数据树和物理文件扩展不被透露给基于服务的键值数据库的用户,因为这些数据库文件通常复合有重复、分布式文件块和过时数据。重复经常可以是故意的,以便允许服务健壮性和性能,而过时数据是由于延迟的垃圾收集和清除(以进行负载平衡)。云服务可以通过使用户102仅利用API请求值进行访问来去除这些问题。然而,匹配数据库性能可能要求对基于使用随时间流逝已经被优化的树结构和记录副本进行智能复制-这与物理数据分组的复制关联。一旦新的数据中心具有了物理数据分组的副本,它就可以建立它自己的树,这些树包含在之前的数据中心处随时间流逝而形成的形状优化和重复。
[0024]图2示出根据本文描述的至少一些实施方式设置的用于将存储的数据位置信息保存在键值数据库中的提取数据表和根表的使用。
[0025]图2的示图200示出表现出隐藏层的示例键值数据库。用户数据表230、234可以分担在许多机器/数据库228、232上并且在其上具有多级元数据树(元数据表224、226和根表222)。可以使用用户数据表230、234、元数据表224、226和根表222查找各键值的位置。键值数据库通常是专属的并且由用户通过API调用进行访问,在API调用中,用户可以提供关键字或匹配项并且检索值,元数据表224、226或用户数据表230、234的实际结构是用户不可见的,尽管如果要保持数据库性能,则需要在目的数据中心处将其复制-优选地包括重复记录和其它隐藏属性。
[0026]一些实施方式涉及在使用缓存的键值系统中提取真实用户表(通常通过数据中心的接口来抽象)。当调用键值时,由于键值有可能被再次调用,导致系统保持其位置的缓存。这些缓存常常是用户通过API看不到的(它们被保持在抽象的服务内)。然而,如果调用返回比服务一次可以传递的记录更多的记录,则存在两个缓存-一个用于返回的数据,一个提供下一个记录的位置使得可以继续查询更多数据-后一缓存位置是用户能检测到的,使得他们可以从停下的地方继续他们的查询。
[0027]根据实施方式的系统通过将最大返回项列表设置成预定短样本长度(例如,I)的长度并且发起一系列查询同时保存下一项缓存值来利用这种“下一项缓存”,也被称为NextToken0这种值通常是在不进行观察的情况下使用的并且内容不应具有超出继续查询的含义。典型查询可以被设计成返回预定数量的值和下一项缓存(例如,NextToken)。在这种情形下,标志(token)事实上可以随机地出现,因为它们常常越过文件和盘边界。
[0028]作为存储地址的下一项缓存的性质呈现的事实是,使用下一项缓存进行的查询去除了单个查询内而不是使用下一项缓存的多个查询的返回之间的重复-因为每个这种查询都是处于离散存储片段(可以越过物理边界)上并且去除它们之间的重复可能影响性能。
[0029]图3示出根据本文描述的至少一些实施方式设置的可以怎样使用数据查询缓存映射物理数据存储分布。
[0030]可以通过提交具有有限的数据请求连同下一项缓存值(例如,单个值的返回)的接连查询的算法或技术来利用在提供数据位置时下一项缓存的性质。一旦提取了相对数据存储位置,就可以映射目标数据中心内的数据划分和数据重复,使得数据可以被复制到新数据中心中的类似结构。
[0031]参照图3的示图300,示出通过键值数据库340上的数据查询缓存来映射物理存储分布。服务提供商键值数据库340可以包括用户无法直接访问的服务提供商提取数据表342和344以及也未知但需要知道以便用户可以将其复制到新数据中心的物理存储分布346。通过查询来确定物理存储分布的过程可以开始于对数据348发起按照一定数量(N个)结果350设置的查询。N可以小至1,以允许通过记录映射并且提供最多细节进行记录。在其它实施方式中,N可以更大,诸如100或1000,并且可以检验平均地址增量的差异以估计N中的哪些群组在连续物理存储中包含断点,然后可以更详细地检验那些区域。
[0032]无论搜索设计如何,算法可以接收包括位置缓存元素的结果352并且将位置缓存数据添加到数据图354。然后,可以将数据图与复制所需的细节进行比较356。如果需要另外的数据,则可以发起在下一位置开始的接连查询350。如果图足够详细,则可以执行连续块级别查询或者从之前的结果合成连续块级别查询358,以揭示物理存储块之间的重复。
[0033]可以使用多种方法设计查询。越大的查询可以得到越少的特定结果,但在许多情况下,仍然可以检测存储边界在哪。例如,如果搜索数百万条记录,以上千记录为粒度进行分析可能足以在存储器中查找到大约几十个边界,因为跨越这些边界的查询可能在返回的下一项缓存值之间具有更大的地址空间跳跃。然后,均包括存储边界的上千记录的查询可以以越来越精细的粒度进行查询,以缩小用户表存储器中边界的位置。这些不连续处的位置的确定性可以随时间流逝变得更精细(例如,首先在1000条记录的范围内,然后在100条记录的范围内,然后在10条记录的范围内,然后是精确的记录),可以将数据图与预定的精度度量进行比较。
[0034]例如,如果通过使用下一项缓存作为下一个查询的起始点将查询分成多个存储查询,则例如在每个查询内看不到重复,但在查询之间可以检测到再现记录。这是物理存储分布346的分布式性质的相当基本的特性。可以利用这种特性来映射系统已经随时间流逝而重复以进行优化的记录,诸如频繁使用的数据。如果用户只需要知道哪些物理存储元素具有各记录的副本,则可以使用匹配(所有)类型操作的“选择响应”,起始位置被设置成之前已经被映射以开始物理存储块的下一项值,记录计数被设置成匹配已经被映射的物理存储的大小。一旦对各存储块完成了这种选择操作,就可以得到关于各物理存储块的记录列表,所述列表包括当前在多个存储块上出现的记录的多个实例的存在。这允许检测优化,诸如跨越用户值的多个表的频繁使用的记录的重复出现。
[0035]如果运行连续块级别查询没有捕获所有重复记录(例如,在存储块内可能存在重复),则可以使用逐条记录查询返回来收集最详细的数据。如果这种方法是期望的,则可以将N设置成I并且循环进行操作350至356直至通过整个数据库。连续块级别查询可以用在所述循环期间收集的记录合成地构成并且结果可以是包括所有无效区域(有可能来自于在重建之前一直没有清除的无效记录)和多方面副本记录的当前数据存储布置的详细图。
[0036]一旦在现有数据中心处确定了数据存储布置,就可以通过将记录类似地布置在目的数据中心处使用的键值系统内来将数据存储布置复制到目的数据中心。当建立了树(诸如,哈希树、Merkle树、Tiger树、B树等)来映射这些记录时,它们可具有与正被复制的数据中心类似的枝叶和多方面覆盖。这可以增强数据库性能的相似度,包括可能已经在起源数据中心处基于操作观察执行的复杂优化。
[0037]虽然以上已经使用图1至图3中的特定示例、组件和配置讨论了一些实施方式,但它们意图提供用于使得能够进行基于缓存的键值数据库映射和复制的总体指引。这些示例不构成对实施方式的限制,可利用本文描述的原理使用其它组件、模块和配置实现实施方式。例如,任何合适的专用或通用计算装置可以用于向数据中心键值数据库提交查询以映射数据存储结构。此外,以上讨论的动作可以按各种次序执行,尤其是以交错方式执行。
[0038]图4示出根据本文描述的至少一些实施方式设置的可用于基于缓存的键值数据库映射的通用计算装置。在非常基本的配置402中,计算装置400 —般包括一个或多个处理器404和系统存储器406。存储器总线408可以用于处理器404和系统存储器406之间的通信。
[0039]根据所要的配置,处理器404可以是任何类型,包括但不限于微处理器(μ P)、微控制器(μ C)、数字信号处理器(DSP)或其任何组合。处理器404可以包括诸如一级缓存412的一个多级缓存、处理器核414和寄存器416。示例处理器核414可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任何组合。示例存储器控制器418还可以用于处理器404,或者在一些实现方式中,存储器控制器418可以是处理器404的内部部分。
[0040]根据所要的配置,系统存储器406可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪速存储器等)或其任何组合。系统存储器406可以包括操作系统420、一个或多个应用422和程序数据424。应用422可以包括查询模块423和数据映射模块425,其可以使得能够向数据中心键值数据库提交异常查询并且如本文描述的基于返回值映射数据中心处的数据存储结构以将数据复制到另一数据中心。除了其它数据,程序数据424可以包括与限制向数据使用客户传递分析结果相关联的控制参数428。所描述的这个基本配置402在图4中用内部虚线内的那些组件示出。
[0041]计算装置400可以具有另外的特征或功能和另外的接口,以便于基本配置402与任何所需装置和接口之间的通信。例如,可以使用总线/接口控制器430以便于经由存储接口总线434的基本配置402与一个或多个数据存储装置432之间的通信。数据存储装置432可以是可移除存储装置436、不可移除存储装置438或其组合。举例来说,可移除存储装置和不可移除存储装置的例子包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘装置、诸如高密度盘(CD)驱动器或数字通用盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和带驱动器。示例计算机存储介质可以包括按照用于存储信息(诸如,计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。
[0042]系统存储器406、可移除存储装置436和不可移除存储装置438是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储器或其它磁性存储装置、或者可以用于存储所要的信息并且可以被计算装置400访问的任何其它介质。任何这种计算机存储介质可以是计算装置400的一部分。
[0043]计算装置400还可以包括接口总线440,接口总线440便于经由总线/接口控制器430从各种接口装置(例如,输出装置442、外围接口 444和通信装置446)到基本配置402的通信。一些示例输出装置442包括图形处理单元448和音频处理单元450,图形处理单元448和音频处理单元450可以被配置成经由一个或多个A/V端口 452与诸如显示器或扬声器的各种外部装置进行通信。示例外围接口 444包括串行接口控制器454或并行接口控制器456,串行接口控制器454或并行接口控制器456可以被配置成经由一个或多个I/O端口 458与诸如输入装置(例如,键盘、鼠标、笔、语音输入装置、触摸输入装置等)的外部装置或其它外围装置(例如,打印机、扫描仪等)进行通信。示例通信装置446包括网络控制器460,网络控制器460可以被设置成便于经由一个或多个通信端口 464通过网络通信链路与一个或多个其它计算装置462进行通信。
[0044]网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块、或诸如载波或其它传输机制的经调制数据信号中的其它数据来实现,并且可以包括任何信息传送介质。“经调制数据信号”可以是将其特性中的一个或多个以将信息编码在信号中的方式而设置或改变的信号。举例来说,并且没有限制,通信介质可以包括有线介质(诸如,有线网络或直接有线连接)和无线介质(诸如,听觉、射频(RF)、微波、红外(IR)和其它无线介质)。这里使用的术语“计算机可读介质”可以包括存储介质和通信介质这二者。
[0045]计算装置400可以被实现为通用或专用服务器、主机或包括以上任一功能的类似计算机的一部分。计算装置400还可以被实现为包括膝上型计算机和非膝上型计算机配置这二者的个人计算机。
[0046]示例实施方式还可以包括方法。这些方法可以实现为包括本文描述的结构的任何数量的方式。一种这样的方式是通过在本公开所描述的类型的装置的机器操作。另一种可选的方式是:方法的一个或多个单独的操作结合执行某些操作的一个或多个操作人员来执行,而其它操作由机器执行。这些操作人员不需要彼此并置,而是每一个都可以只使用执行一部分程序的机器。在其它示例中,诸如通过预先选择的机器自动操作的标准,人机交互可以是自动的。
[0047]图5是示出根据本文描述的至少一些实施例设置的可通过诸如图4中的装置的计算装置执行的基于缓存的键值数据库映射和复制的示例方法的流程图。示例方法可以包括如框522、524、526和/或528中的一个或多个示出的一个和多个操作、功能或动作。框522至528中描述的操作还可以被存储为计算机可读介质(诸如计算装置510的计算机可读介质520)中的计算机可执行指令。[0048]基于缓存的键值数据库映射和复制的过程可以开始于框522 “利用下一项缓存提交异常查询”。在框522中,客户端装置(诸如图1的针对用户102的计算装置)可以向数据中心键值数据库提交查询,寻求具有位置缓存元素(NextToken)的预定数量的结果。异常的表现形式还可以是对于宽泛查询而言结果的数量异常少、返回整个数据库的查询、或错误产生查询。
[0049]框522之后可以是框524 “接收返回值和下一项缓存”。在框524中,在针对用户102的客户端装置处接收所提交查询的结果连同位置缓存元素。框524之后可以是框526 “监控下一项缓存的跳变”。在框526中,客户端装置的数据映射模块425可以监控并且检验缓存地址的变化,以检测地址值的跳变。
[0050]框526之后可以是框528 “基于下一项缓存值形成数据图”。在框528中,客户端装置的数据映射模块425可以将位置缓存元素添加到数据图,以将数据划分和数据重复映射到目标数据中心内。例如,可以通过基于可指示物理存储分组变化的异常长的下一项缓存步进将条目分组成多列来形成数据图。如果图足够详细,则数据映射模块425可以发起连续块级别查询或者用之前的结果合成连续块级别查询,以揭示物理存储块之间的重复。这个过程可以迭代地重复,直到映射了整个数据存储结构。框528之后可以是框530“为新的数据中心复制数据图”。在框530中,应用422或客户端装置处的另一应用可以将目标数据中心处的数据存储结构复制到数据将被转移到的另一数据中心。
[0051]在上述过程中的框中执行的功能是出于示例目的。基于查询缓存进行的键值数据库映射和数据存储结构复制可以通过具有更少或附加功能的类似过程来实现。在一些示例中,可以按不同次序执行功能。在一些其它示例中,可以去除各种功能。在其它示例中,各种功能可以被划分成附加功能,或者被一起组合成更少的功能。
[0052]图6示出根据本文描述的至少一些实施方式设置的示例计算机程序产品的框图。在一些示例中,如图6中所示,计算机程序产品600可以包括信号承载介质602,信号承载介质602也可以包括机器可读指令604,当例如被处理器执行时,机器可读指令604可以提供以上针对图4所描述的功能。因此,例如,参照处理器404,数据映射模块425可以响应于通过介质602被传达给处理器504的指令604来进行图6中所示的一个或多个任务,以执行与利用下一项缓存提交异常查询、接收结果和下一项缓存值、监控下一项缓存值的跳变、基于下一项缓存值映射数据存储结构关联的动作。
[0053]在一些实现方式中,图6中描绘的信号承载介质602可以包括计算机可读介质606,诸如(但不限于)硬盘驱动器、光盘(⑶)、数字通用盘(DVD)、数字磁带、存储器等。在一些实现方式中,信号承载介质602可以包括可记录介质608,诸如(但不限于)存储器、读/写(R/W)⑶、R/W DVD等。在一些实现方式中,信号承载介质602可以包括通信介质610,诸如(但不限于)数字和/或模拟通信介质(例如,光缆电缆、波导、有线通信链路、无线通信链路等)。因此,例如,可以通过RF信号承载介质将程序产品600传送给处理器604的一个或多个模块,其中,信号承载介质602通过无线通信介质610 (例如,符合IEEE802.11标准的无线通信介质)来进行传送。
[0054]根据一些示例,一种用于键值数据库映射和复制的方法可以包括通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置来将物理存储分布映射到目标数据中心内并且将数据划分和数据重复映射到目标数据中心内。所述方法还可以包括将目标数据中心内的数据复制到新的数据中心中的类似结构。
[0055]键值数据库可以包括用户不能直接访问的提取数据表。根据其它示例,所述方法还可以包括:发起利用预定数量的结果设置的查询,接收包括位置缓存元素的结果,将位置缓存元素添加到数据图,将数据图与复制所需的细节进行比较。如果图足够详细,则可以发起连续块级别查询或者可以用之前的结果合成连续块级别查询,以揭示物理存储块之间的复制。如果图不够详细,则可以发起新的查询。
[0056]所述预定数量可以取决于存储的数据大小。所述预定数量可以是I以允许最高细节。如果顺序的请求地址之间的步进大于大约一个存储块或大约一页中的一个,则可以扫描平均地址增量的差异,以估计哪些群组在连续物理存储中包括断点,并且检验在连续物理存储中包括断点的群组以更详细地确定物理数据存储结构。将数据复制到新的数据中心中的类似结构可以包括将记录类似地布置在新的数据中心处使用的键值系统内。所述方法还可以包括构造一个或多个树结构来映射数据,使得一个或多个树结构具有与正被复制的数据中心类似的枝叶和多方面覆盖。所述树结构可以包括哈希树、Merkle树、Tiger树和B树中的一种或多种。
[0057]根据其它示例,适于执行键值数据库映射和复制的计算装置可以包括存储器和与存储器连接的处理器。处理器可以执行数据传递应用,数据传递应用可以通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置来将物理存储分布映射到目标数据中心内,将数据划分和数据重复映射到目标数据中心内,将目标数据中心内的数据复制到新的数据中心中的类似结构。
[0058]键值数据库可以包括用户不能直接访问的提取数据表。根据其它示例,数据传递应用还可以执行以下中的一个或多个:发起利用预定数量的结果设置的查询、接收包括位置缓存元素的结果、将位置缓存元素添加到数据图、将数据图与复制所需的细节进行比较。如果图足够详细,则可以发起连续块级别查询或者可以用之前的结果合成连续块级别查询,以揭示物理存储块之间的复制。如果图不够详细,则可以发起新的查询。
[0059]所述预定数量可以取决于存储的数据大小。所述预定数量可以是I以允许最高细节。如果顺序的请求地址之间的步进大于大约一个存储块或大约一页中的一个,则可以扫描平均地址增量的差异以估计哪些群组在连续物理存储中包括断点,并且检验在连续物理存储中包括断点的群组以更详细地确定物理数据存储结构。将数据复制到新的数据中心中的类似结构可以包括将记录类似地布置在新数据中心处使用的键值系统内。数据传递应用还可以构造一个或多个树结构来映射数据,使得一个或多个树结构具有与正被复制的数据中心类似的枝叶和多方面覆盖。所述树结构可以包括哈希树、Merkle树、Tiger树和B树中的一种或多种。
[0060]根据其它示例,一种计算机可读存储介质可以具有存储在其上用于键值数据库映射和复制的指令。所述指令可以包括:通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置来将物理存储分布映射到目标数据中心内;将数据划分和数据重复映射到目标数据中心内;将目标数据中心内的数据复制到新的数据中心中的类似结构。
[0061]键值数据库可以包括用户不能直接访问的提取数据表。根据其它示例,所述指令还可以包括:发起利用预定数量的结果设置的查询、接收包括位置缓存元素的结果、将位置缓存元素添加到数据图、将数据图与复制所需的细节进行比较。如果图足够详细,则可以发起连续块级别查询或者可以用之前的结果合成连续块级别查询,以揭示物理存储块之间的重复。如果图不够详细,则可以发起新的查询。
[0062]所述预定数量可以取决于存储的数据大小。所述预定数量可以是I以允许最高细节。如果顺序的请求地址之间的步进大于大约一个存储块或大约一页中的一个,则可以检查平均地址增量的差异以估计哪些群组在连续物理存储中包括断点,并且检验在连续物理存储中包括断点的群组以更详细地确定物理数据存储结构。更详细地检验可以包括改变所述预定数量。将数据复制到新的数据中心中的类似结构可以包括将记录类似地布置在新数据中心处使用的键值系统内。所述指令还可以包括构造一个或多个树结构来映射数据,使得一个或多个树结构具有与正被复制的数据中心类似的枝叶和多方面覆盖。所述树结构可以包括哈希树、Merkle树、Tiger树和B树中的一种或多种。
[0063]根据一些示例,一种适于执行键值数据库映射和复制的服务器可以包括存储器和与存储器连接的处理器。处理器可以执行数据传递应用,数据传递应用可以被配置成通过迭代地向目标数据中心的现有键值数据库提交请求预定数量结果和位置缓存元素的查询,来提取目标数据中心的键值数据库中的文件断点;接收跨越物理存储容量的地址范围内的返回值;恢复在目标数据中心处物理分组的键值集合和记录重复。
[0064]根据其它示例,数据传递应用还可以将键值集合复制到新的数据中心的键值数据库。位置缓存元素可以是NextToken并且所述预定数量是I以允许最高细节。
[0065]系统的多个方面的软件实现和硬件实现之间几乎没有区别;使用硬件或者软件总体上是代表成本相对于效率的权衡的设计选择(但并非总是这样,因为在特定的环境下硬件和软件之间的选择会变得重要)。存在可以实现本文所描述的处理和/或系统和/或其它技术的各种载体(例如,硬件、软件和/或固件),并且优选的载体将随着采用这些处理和/或系统和/或其它技术的环境而改变。例如,如果实施者判定速度和精度是最重要的,则实施者会主要选用硬件和/或固件载体;如果灵活性是最重要的,则实施者会主要选用软件实现方式;或者,再另选地,实施者可以选用硬件、软件和/或固件的某种组合。
[0066]通过使用框图、流程图和/或示例,以上详述已阐述了装置和/或处理的各种实施方式。在这样的框图、流程图和/或示例包含一个或多个功能和/或操作的范围内,本领域技术人员应该理解,可以由各式各样的硬件、软件、固件或实际上其任何组合单独地和/或共同地实现这种框图、流程图或示例内的各功能和/或操作。在一个实施方式中,可以借助专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成形式来实现本文所描述的主题的多个部分。然而,本领域技术人员应该认识到,本文所公开的实施方式的某些方面可以作为在一个或多个计算机上运行的一个或多个计算机程序(例如,作为在一个或多个计算机系统上运行的一个或多个程序)、作为在一个或多个处理器上运行的一个或多个程序(例如,作为在一个或多个微处理器上运行的一个或多个程序)、作为固件、或者作为实际上它们的任何组合全部地或部分地等效地实现在集成电路中,并且应该认识到,根据该公开,针对软件或固件设计电路和/或编写代码将完全属于在本领域技术人员的技能之内。
[0067]本公开不限于在本申请中描述的旨在示出各种方面的特定实施方式。对于本领域中技术人员来说应当明显的是,能够在不偏离其精神和范围的情况下进行许多修改和变形。除了这里所列举的以外,在本公开的范围内的功能等同的方法和设备对于本领域中技术人员来说根据之前的描述应当是明显的。这样的修改和变形旨在落在随附权利要求书的范围内。本公开仅由随附权利要求书的条款以及这些权利要求书的权利等价物的完整范围所限定。应当理解,本公开不限于显然能够变化的特定的方法、试剂、化合物组分或者生物学系统。还应当理解,这里使用的术语仅用于描述特定实施方式的目的,并不旨在进行限制。
[0068]另外,本领域中的技术人员将理解,这里描述的主题的机制能够作为程序产品以各种形式发布,并且这里描述的主题的示意实施方式的应用与用于实际执行发布的信号承载介质的特定种类无关。信号承载介质的示例包括但不限于以下:诸如软盘、硬盘驱动器、高密度盘(CD)驱动器、数字通用盘(DVD)、数字磁带、计算机存储器等的可记录型介质;以及诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)的传输类型介质。
[0069]本领域中的技术人员将认识到,以这里提出的方式描述装置和/或处理并且此后利用工程实践将如此描述的装置和/或处理集成为数据处理系统在本领域中是常见的。即,通过合理数量的试验可以将这里描述的装置和/或处理的至少部分集成为数据处理系统。本领域中的技术人员将认识到,典型的数据处理系统一般包括以下的一个或多个:系统单元壳体、视频显示装置、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统、驱动器、图形用户界面和应用程序的计算实体、诸如触摸板或屏幕的一个或多个交互装置、和/或包括反馈回路和控制电机(例如,感测台架系统的位置和/或速度的反馈;移动和/或调整组件和/或数量的控制电机)的控制系统。
[0070]可以利用任何适合的市售组件(诸如那些通常可以在数据计算/通信和/或网络计算/通信系统中找到的部件)来实现典型的数据处理系统。这里描述的主题有时示出在不同的其它组件中所包含的或者与不同的其它组件相连接的不同组件。应当理解,如此描述的架构只是示例性的,并且实际上可以实施实现相同功能的许多其它架构。从概念上讲,组件用于实现相同功能的任何配置是以使得实现所要的功能的方式有效地“相关联的”。因此,可以将这里结合起来实现特定功能的任何两个组件视为彼此“相关联”以使得实现所要的功能,而不管架构或中间组件。同样,这样相关联的任何两个组件也可以视为彼此“可操作地相连接”或者“可操作地相耦合”以实现所要的功能,并且能够如此相关联的任何两个组件也可以视为彼此“可操作地可耦合”以实现所要的功能。可操作地可耦合的特定例子包括但不限于物理可连接的和/或物理交互的组件和/或无线可交互的和/或无线交互的组件和/或逻辑交互的和/或逻辑可交互的组件。
[0071]关于这里基本上任何复数和/或单数术语的使用,本领域技术人员能够以对于背景和/或应用适当的方式从复数解释成单数和/或从单数解释成复数。为清楚起见,各种单数/复数排列可以清楚地在这里阐述。
[0072]本领域技术人员应该理解,一般地,这里使用的术语并且特别是在随附权利要求书中的术语(例如,随附权利要求书的正文)一般旨在为“开放的”术语(例如,术语“包括”应该解释为“包括但不限于”,术语“具有”应该解释为“至少具有”,术语“包含”应该解释为“包含但不限于”等)。本领域技术人员还应该理解,如果意图特定数量的提出的权利要求详述,则这样的意图将在权利要求中明确地叙述,并且在不存在这样的详述的情况下,不存在这样的意图。例如,为帮助理解,以下随附权利要求书可能包含介绍性短语“至少一个”和“一个或多个”的使用以引入权利要求详述。然而,使用这样的短语不应当被解释为暗示以“一”引入的权利要求详述将包含这样引入的权利要求详述的任何特定的权利要求限制为只包含一个这样的详述的实施方式,即使是在相同的权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”的词(例如,“一”应当被解释为指“至少一个”或“一个或多个”)的情况下;相同道理对于使用定冠词引入权利要求详述的情况也成立。此外,即使在明确地表述了特定数量的引入的权利要求详述的情况下,本领域中的技术人员也将认识至IJ,这样的详述应当解释为是指至少表述的数量(例如,在没有其它修饰语的情况下,仅是“两个详述”的表述是指至少两个详述或者两个或更多详述)。
[0073]此外,在使用类似于“A、B和C等中的至少一个”的惯例的情况下,通常这种构造的目的是本领域技术人员将会理解该惯例的含义(例如,“具有A、B和C中的至少一个的系统”将会包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C和/或具有A、B和C等的系统)。本领域技术人员还应该理解,呈现两个或更多可供选择的术语的几乎任何转折性词语和/或短语,不管是在说明书、权利要求书还是附图中,都应当被理解为料想到包括术语之一、术语的任一个或者两个术语的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。
[0074]此外,在以马库什组的方式描述的本公开的特征或方面,本领域的技术人员应该认识到,本公开由此还以马库什组的任何单独成员或成员的子组的方式描述。
[0075]正如本领域技术人员应该理解的,为了任何及所有目的,诸如就提供书面说明书而言,这里所公开的全部范围还包含任何和全部可能子范围及其子范围的组合。任何列出的范围都能够被容易地认定为充分地描述并且使得同一范围被分解为至少相等的一半、三分之一、四分之一、五分之一、十分之一等。作为非限制性示例,这里讨论的各个范围可以被容易地分解成下三分之一、中三分之一和上三分之一等。正如本领域技术人员应该理解的,诸如“上至”、“至少”、“大于”、“小于”等的全部语言包括所表述的数量并且是指随后能够被分解为如上所讨论的子范围的范围。最后,正如本领域技术人员应该理解的,范围包括各个单独的成员。因此,例如,具有1-3个单元的组是指具有I个、2个或3个单元的组。相似地,具有1-5个单元的组是指具有I个、2个、3个、4个或5个单元的组,等等。
[0076]虽然本文已经公开了各种方面和实施方式,但本领域的技术人员将清楚其它方面和实施方式。本文公开的各种方面和实施方式是出于示例的目的而不意图进行限制,随附权利要求书表不真实的范围和精神。
【权利要求】
1.一种用于键值数据库映射和复制的方法,所述方法包括: 通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置,来将物理存储分布映射到所述目标数据中心内; 将数据划分和数据重复映射到所述目标数据中心内;以及 将所述目标数据中心内的数据复制到新的数据中心中的类似结构。
2.根据权利要求1所述的方法,其中所述键值数据库包括用户不能直接访问的提取数据表。
3.根据权利要求1所述的方法,所述方法还包括: 发起利用预定数量的结果设置的查询; 接收包括位置缓存元素的结果; 将所述位置缓存元素添加到数据图;以及 将所述数据图与所述复制所需的细节进行比较。
4.根据权利要求3所述的方法,所述方法还包括: 如果所述图足够详细,则发起连续块级别查询或者用之前的结果合成连续块级别查询,以揭示物理存储块之间的重复。
5.根据权利要求3所述的方法,所述方法还包括: 如果所述图不够详细,则发起 新的查询。
6.根据权利要求3所述的方法,其中所述预定数量取决于存储的数据大小。
7.根据权利要求3所述的方法,其中所述预定数量是I以允许最高细节。
8.根据权利要求3所述的方法,所述方法还包括: 如果顺序的请求地址之间的步进大于大约一个存储块或大约一页中的一个,则扫描平均地址增量的差异以估计哪些群组在连续物理存储中包括断点,并且检验在连续物理存储中包括断点的群组以更详细地确定物理数据存储结构。
9.根据权利要求1所述的方法,其中将数据复制到新的数据中心中的类似结构包括将记录类似地布置在所述新的数据中心处使用的键值系统内。
10.根据权利要求9所述的方法,所述方法还包括: 构造一个或多个树结构来映射数据,使得所述一个或多个树结构具有与正被复制的数据中心基本上类似的枝叶和多方面覆盖。
11.根据权利要求10所述的方法,其中所述树结构包括哈希树、Merkle树、Tiger树和B树中的一种或多种。
12.一种适于执行键值数据库映射和复制的计算装置,所述计算装置包括: 存储器;以及 与所述存储器连接的处理器,所述处理器执行数据传递应用,其中所述数据传递应用被配置成: 通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置,来将物理存储分布映射到所述目标数据中心内; 将数据划分和数据重复映射到所述目标数据中心内;以及 将所述目标数据中心内的数据复制到新的数据中心中的类似结构。
13.根据权利要求12所述的计算装置,其中所述键值数据库包括用户不能直接访问的提取数据表。
14.根据权利要求12所述的计算装置,其中所述数据传递应用还被配置成: 发起利用预定数量的结果设置的查询; 接收包括位置缓存元素的结果; 将所述位置缓存元素添加到数据图;以及 将所述数据图与所述复制所需的细节进行比较。
15.根据权利要求14所述的计算装置,其中所述数据传递应用还被配置成: 如果所述图足够详细,则发起连续块级别查询或者用之前的结果合成连续块级别查询,以揭示物理存储块之间的重复。
16.根据权利要求14所述的计算装置,其中所述数据传递应用还被配置成: 如果所述图不够详细,则发起新的查询。
17.根据权利要求14所述的计算装置,其中所述预定数量取决于存储的数据大小。
18.根据权利要求14所述的计算装置,其中所述预定数量是I以允许最高细节。
19.根据权利要求14所述的计算装置,其中所述数据传递应用还被配置成: 如果顺序的请求地址之间的步进大于大约一个存储块或大约一页中的一个,则扫描平均地址增量的差异以估计哪些群组在连续物理存储中包括断点,并且检验在连续物理存储中包括断点的群组以更详细地确 定物理数据存储结构。
20.根据权利要求12所述的计算装置,其中所述数据传递应用通过将记录类似地布置在新的数据中心处使用的键值系统内来将数据复制到所述新的数据中心中的类似结构。
21.根据权利要求20所述的计算装置,其中所述数据传递应用还被配置成: 构造一个或多个树结构来映射数据,使得所述一个或多个树结构具有与正被复制的数据中心基本上类似的枝叶和多方面覆盖。
22.根据权利要求21所述的计算装置,其中所述树结构包括哈希树、Merkle树、Tiger树和B树中的一种或多种。
23.一种计算机可读存储介质,所述计算机可读存储介质具有存储在其上用于键值数据库映射和复制的指令,所述指令包括: 通过利用来自目标数据中心的键值数据库的数据查询缓存提取相对数据存储位置,来将物理存储分布映射到所述目标数据中心内; 将数据划分和数据重复映射到所述目标数据中心内;以及 将所述目标数据中心内的数据复制到新的数据中心中的类似结构。
24.根据权利要求23所述的计算机可读存储介质,其中所述键值数据库包括用户不能直接访问的提取数据表。
25.根据权利要求23所述的计算机可读存储介质,其中所述指令还包括: 发起利用预定数量的结果设置的查询; 接收包括位置缓存元素的结果; 将所述位置缓存元素添加到数据图;以及 将所述数据图与所述复制所需的细节进行比较。
26.根据权利要求25所述的计算机可读存储介质,其中所述指令还包括: 如果所述图足够详细,则发起连续块级别查询或者用之前的结果合成连续块级别查询,以揭示物理存储块之间的重复。
27.根据权利要求25所述的计算机可读存储介质,其中所述指令还包括: 如果所述图不够详细,则发起新的查询。
28.根据权利要求25所述的计算机可读存储介质,其中所述预定数量取决于存储的数据大小。
29.根据权利要求25所述的计算机可读存储介质,其中所述预定数量是I以允许最高细节。
30.根据权利要求25所述的计算机可读存储介质,其中所述指令还包括: 如果顺序的请求地址之间的步进大于大约一个存储块或大约一页中的一个,则扫描平均地址增量的差异以估计哪些群组在连续物理存储中包括断点,并且检验在连续物理存储中包括断点的群组以更详细地确定物理数据存储结构。
31.根据权利要求23所述的计算机可读存储介质,其中将数据复制到新的数据中心中的类似结构包括将记录类似地布置在所述新的数据中心处使用的键值系统内。
32.根据权利要求31所述的计算机可读存储介质,其中所述指令还包括: 构造一个或多个树结构来映射数据,使得所述一个或多个树结构具有与正被复制的数据中心基本上类似的枝叶和多方面覆盖。
33.根据权利要求32所述的计算机可读存储介质,其中所述树结构包括哈希树、Merkle树、Tiger树和B树 中的一种或多种。
34.一种适于执行键值数据库映射和复制的服务器,所述服务器包括: 存储器;以及 处理器,其与所述存储器连接,所述处理器执行数据传递应用,其中所述数据传递应用被配置成: 通过迭代地向目标数据中心的现有键值数据库提交请求预定数量的结果和位置缓存元素的查询,来提取所述目标数据中心的所述键值数据库中的文件断点; 接收跨越物理存储容量的地址范围内的返回值; 恢复在所述目标数据中心处物理分组的键值集合和记录重复。
35.根据权利要求34所述的服务器,其中所述数据传递应用还被配置成: 在新的数据中心的键值数据库处复制所述键值集合。
36.根据权利要求34所述的服务器,其中所述位置缓存元素是NextToken。
37.根据权利要求34所述的 服务器,其中所述预定数量是I以允许最高细节。
【文档编号】G06F7/00GK103890709SQ201180074338
【公开日】2014年6月25日 申请日期:2011年11月7日 优先权日:2011年11月7日
【发明者】埃泽齐埃尔·克鲁格里克 申请人:英派尔科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1