管理数据的系统和方法

文档序号:8319229阅读:255来源:国知局
管理数据的系统和方法
【技术领域】
[0001]本发明涉及主键-数值存储(Key-Value Store:KVS)的数据管理技术。
【背景技术】
[0002]存在作为适合用于高速访问大容量数据的数据管理系统的主键-数值存储(下文称为KVS)。在KVS中,将任意标记(Key)附在要存储的数据(Value)上,并存储一对(Key,Value)。然后,当获取存储的数据时,指定标记(Key),并获取相应数据(Value)。对于KVS,添加存储数据的服务器是容易的,并且也适合在多个数据服务器中分配和存储数据。
[0003]在KVS中,通常按照键值(key value)的预定固定规则选择一对主键和数据的存储目的地(服务器或分区)。该规则一般是使用散列函数等,根据键值的范围分配存储目的地。在这种情况下,KVS系统包括计算键值的散列值的散列机构,以及在该散列机构内描述选择存储目的地的规则。
[0004]作为涉及KVS的传统技术,下面的专利文献I公开了将数据的访问键输入散列函数中,并从散列函数的输出中获得存储数据的存储节点的位置信息。此外,下面的专利文献2公开了当改变对每个存储节点的散列值的范围的分配时,分配给第一节点的散列值的范围和分配给第二节点的散列值的范围从第一散列值漂移到第二散列值。
[0005][引用列表]
[0006][专利文献]
[0007][专利文献I] JP2013-50836A
[0008][专利文献2]JP2013_45378A

【发明内容】

[0009][技术问题]
[0010]在KVS中,通常使用散列函数等,按照键值的固定规则选择一对主键和数据(下文描述为主键/数据对)的存储(插入)目的地的存储区(分区)。但是,由于每个键群的生成主键的数量以及每个主键的数据的大小和增长程度是不一致的,所以存在分区中的存储区的使用不均衡的情况。
[0011]此外,取决于分区,随着KVS系统继续执行它的操作,造成高度冲突或超过散列桶的尺寸的大数据可能导致数据溢出到溢出区的事件频繁发生,这可能引起处理性能的下降或分区内自由空间的不足。
[0012]作为改善这样的状况的度量,可以考虑进行分区的重新组织处理。分区的重新组织处理往往需要根据键值改变存储目的地分区以及改变散列值的生成逻辑。然后,在这样根据键值改变存储目的地分区以及改变散列值的生成逻辑中,需要改变在KVS系统中提供的散列机构内的规则。该工作一般通过停止在固定时段内受影响的分区群,马上卸载所有数据,然后重新装载它来完成。由于伴随着这样的大规模工作,所以往往以固定时间间隔周期性地进行分区的重新组织处理。
[0013]但是,通过如上所述的周期性分批重新组织处理不能充分应付像每个帐户的交易量突然增大那样KVS的使用在短时段内变化很大的情况。为了应付这样的情况,需要优先从像性能的下降和自由空间不足那样的严重症状出发改善症状的新技术。
[0014]考虑到上述问题,本发明的目的是实现能够在KVS中,根据其实际使用,分别为每个访问目标对象重新组织存储目的地的系统。
[0015][问题的解决方案]
[0016]为了达到该目的,将本发明实现成如下系统。该系统用于管理数据,以及包括:数据管理单元,用于存储和管理一组数据和唯一地与该数据相联系的主键;以及访问管理单元,用于接收访问与该主键相联系的数据的访问请求,该访问请求通过指定该主键作出。该数据管理单元包括:存储一组数据和第一主键的第一存储单元,该第一主键用作唯一地与该数据相联系的主键,该第一主键包括有关要访问的数据的存储地点的信息;存储一组该第一主键和第二主键的第二存储单元,该第一主键用作数据,该第二主键用作唯一地与该第一主键相联系的主键,该第二主键在访问与该第一主键相联系的数据时在访问请求中指定;以及重新安置单元,用于当满足预定执行条件时,将该第一存储单元中的该组数据和第一主键重新安置在该第一存储单元的不同区域中。该第一存储单元包括:存储多组数据和第一主键之一的记录的大小是预定指定大小的第一区域;以及存储多组数据和第一主键之一的记录的大小是按照该组的数据大小设置的大小的第二区域。该重新安置单元将作为重新安置目标对象的该组数据和第一主键重新安置在具有适合该组的数据大小的记录大小的第二区域中。
[0017]更优选的是,当不存在具有适合要重新安置的该组数据和第一主键的数据大小的记录大小的第二区域时,该重新安置单元添加具有上述记录大小的第二区域,并将作为重新安置目标对象的该组存储在所添加第二区域中的记录中。
[0018]此外,更详细地说,当作为执行条件,存储在该第一存储单元的第一区域或第二区域中的多组数据和主键当中的一组的数据大小大于为存储该组的第一区域或第二区域确定的阈值时,该重新安置单元将该组重新安置在其它第二区域中。或者,当作为执行条件,标识该第一存储单元的第一区域中该组数据和主键的存储地点的散列值的冲突程度大于预定阈值时,该重新安置单元将该组重新安置在第二区域中。
[0019]此外,该系统可以进一步包括存储控制单元,用于根据访问请求获取新的数据和第二主键,在该第一存储单元的第一区域中指定数据的存储地点,生成包括有关该存储地点的信息的第一主键,将该组第一主键和数据存储在指定存储地点上,创建该组所获第二主键和所创建第一主键,以及将该组存储在该第二存储单元中。进一步,在该系统中,当重新安置该组数据和第一主键时,该重新安置单元可以通过用有关重新安置之后的存储地点的信息取代包括在第一主键中的有关该组的存储地点的信息更新第一主键,以及用根据重新安置之后的存储地点更新的内容取代存储在该第二存储单元中、与重新安置数据相联系的该组第二主键和第一主键中的第一主键。
[0020]此外,达到该目的的本发明的另一个方面也被实现成如下方法。这是在包括如下的系统中,通过计算机管理数据的方法:数据管理单元,用于存储和管理一组数据和唯一地与该数据相联系的主键;以及访问管理单元,用于接收访问与该主键相联系的数据的访问请求,该访问请求通过指定该主键作出,该数据管理单元包括:存储一组数据和第一主键的第一存储单元,该第一主键用作唯一地与该数据相联系的主键,该第一主键包括有关要访问的数据的存储地点的信息;存储一组该第一主键和第二主键的第二存储单元,该第一主键用作数据,该第二主键用作唯一地与该第一主键相联系的主键,该第二主键在访问与该第一主键相联系的数据时在访问请求中指定;以及重新安置单元,用于当满足预定执行条件时,将该第一存储单元中的该组数据和第一主键重新安置在该第一存储单元的不同区域中,该第一存储单元包括:存储多组数据和第一主键之一的记录的大小是预定指定大小的第一区域;以及存储多组数据和第一主键之一的记录的大小是按照该组的数据大小设置的大小的第二区域,该方法包含如下步骤:作为重新安置的执行条件,确定存储在该第一存储单元的第一区域或第二区域中的多组数据和主键当中的一组的数据大小是否大于为存储该组的第一区域或第二区域确定的阈值;作为重新安置的执行条件,确定指示该第一存储单元的第一区域中该组数据和主键的存储地点的散列值的冲突程度是否大于预定阈值;以及当该组范围任一种执行条件时,由该重新安置单元将该组数据和主键重新安置在第二区域中。
[0021]进一步,本发明被实现成通过控制计算机实现上述设备的各自功能的程序,或使计算机也进行与上述的各自步骤相对应的处理的程序。该程序可以通过存储在像磁盘、光盘、半导体存储器等那样的记录介质中加以分配,或通过网络分配来提供。
[0022][本发明的有利效果]
[0023]本发明使得可以在KVS中根据其实际使用分别为每个访问目标对象重新组织存储目的地。
【附图说明】
[0024]图1是例示本实施例所应用的KVS系统的配置例子的图形;
[0025]图2是例示数据KVS的主键/数据对中的主键部分的配置例子的图形;
[0026]图3是例示数据KVS的结构的图形,图3 (a)是例示从应用的角度来看数据KVS的段分层结构的例子的图形,以及图3(b)是例示主键KVS的主键/数据对与数字KVS的主键/数据对之间的关系的图形;
[0027]图4是例示本实施例中的正常分区和特殊分区的配置例子的图形;
[0028]图5是例示优先分区列表的图形,图5(a)是例示优先分区列表的配置例子的图形,以及图5(b)是例示登记在优先分区列表中的剩余数量计数值的概念的图形;
[0029]图6是例示优先分区列表生成单元生成优先分区列表的生成处理的流程图;
[0030]图7是例示主键/数据对存储控制单元安置主键/数据对的安置处理的流程图;
[0031]图8是例示主键/数据对存储控制单元安置主键/数据对的安置处理的流程图;
[0032]图9是例示重新安置推荐主键列表生成单元生成重新安置推荐主键列表的生成处理的流程图;
[0033]图10是例示数据重新安置单元重新安置主键/数据对的重新安置处理的流程图;
[0034]图11是例示数据KVS定义重新组织单元重新组织数据KVS的数据库定义的重新组织处理中卸载主键/数据对时的处理的流程图;
[0035]图12是例示数据KVS定义重新组织单元重新组织数据KVS的数据库定义的重新组织处理中重新装载主键/数据对时的处理的流程图;以及
[0036]图13是例示适合配置本实施例的KVS系统的硬件配置例子的图形。
【具体实施方式】
[0037]在下文中,将参考附图更详细地描述本发明的实施例。
[0038]<系统配置>
[0039]图1是例示本实施例所应用的KVS系统的配置例子的图形。本实施例所应用的KVS系统包括数据管理单元110、优先分区列表生成单元120、和重新安置推荐主键列表生成单元130。此外,本实施例的KVS系统100还包括主键/数据对存储控制单元140、数据重新安置单元150、主键KVS重新创建单元160、和数据KVS定义重新组织单元170。此外,本实施例的KVS系统100还包括访问管理单元101、作为接口部件的数据访问路径解决单元102和数据编辑单元103、管理数据管理单元110的统计信息的统计信息收集单元104、和自由空间重新组织单元105。
[0040]如图1所例示,本实施例的KVS系统100的访问管理单元101接受外部设备200上的应用软件(下文称为应用)的访问,并进行各种类型的处理。访问管理单元101通过,例如,API (应用编程接口)实现。外部设备200上的应用通过与数据相联系的主键(主键/数据对中的键值)请求访问KVS系统100,进行像存储(插入)数据和搜索所希望数据的执行那样的处理,以便读取,更新和删除数据。
[0041]数据管理单元110包括通过KVS的数据存储部件。在本实施例中,分别提供了管理作为访问KVS系统100的应用的访问目标对象的数据(应用数据)的作为第一存储单元的KVS、和管理应用识别的键值(应用主键)的作为第二存储单元的KVS。在下文中,将管理应用主键的KVS (第二存储单元)定义为主键KVS 111,将管理应用数据的KVS (第一存储单元)定义为数据KVS 112。
[0042]KVS将主键/数据对存储在作为受管理对象的记录中。在本实施例中,对于存储在主键KVS 111中的主键/数据对,主键部分是应用主键,数据部分是包括数据KVS 112的键值的数值。此外,对于存储在数据KVS 112中的主键/数据对,主键部分是根据预定规则设置和对于每个主键/数据对来说是唯一的定长值,数据部分是应用数据。也就是说,本实施例的数据管理单元110通过作为主键KVS 111和数据KVS 112的双重结构的KVS相联系地管理应用主键和应用数据。此外,数据KVS 112的主键/数据对中的数据部分包括应用主键的数值。应用键值用在,例如,更新主键KVS 111的主键/数据对或重新创建主键KVS的时候。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1