书签 分享 收藏 举报 版权申诉 / 23

用于管理数据存储系统的方法和装置.pdf

  • 上传人:bo****18
  • 文档编号:6207191
  • 上传时间:2019-05-21
  • 格式:PDF
  • 页数:23
  • 大小:1.42MB
  • 摘要
    申请专利号:

    CN201410305761.8

    申请日:

    2014.06.30

    公开号:

    CN105446982A

    公开日:

    2016.03.30

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 17/30申请日:20140630|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    国际商业机器公司

    发明人:

    曲俊媚; 刘亮; 庄威; 尹文君

    地址:

    美国纽约阿芒克

    优先权:

    专利代理机构:

    北京市金杜律师事务所11256

    代理人:

    酆迅; 李峥宇

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供了用于管理数据存储系统的方法和装置。在一个实施方式中,提供了一种用于管理数据存储系统的方法,包括:响应于接收到数据对象,基于第一查询将数据对象中的数据记录排序以形成第一备份;在数据存储系统中存储第一备份;在数据存储系统的索引中存储第一查询以及第一备份在数据存储系统中的第一地址。在一个实施方式中,提供了一种用于查询数据存储系统的方法,包括:接收针对数据存储系统的查询;响应于数据存储系统的索引中存在与查询相匹配的查询,访问数据存储系统中与相匹配的查询相关联的地址以执行查询;其中数据存储系统是根据本发明的方法管理的数据存储系统。采用本发明的技术方案,可以提高数据查询效率。

    权利要求书

    1.一种用于管理数据存储系统的方法,包括:
    响应于接收到数据对象,基于第一查询将所述数据对象中的数据
    记录排序以形成第一备份;
    在所述数据存储系统中存储所述第一备份;以及
    在所述数据存储系统的索引中存储所述第一查询以及所述第一
    备份在所述数据存储系统中的第一地址。
    2.根据权利要求1所述的方法,其中响应于接收到数据对象,
    基于第一查询将所述数据对象中的数据记录排序以形成第一备份包
    括:
    基于第一查询获取第一标准;以及
    按照所述第一标准,将所述数据对象中的数据记录排序以形成所
    述第一备份。
    3.根据权利要求2所述的方法,其中所述数据对象是多维数据
    库,以及所述基于所述第一查询获取第一标准包括:
    基于所述多维数据库中与所述第一查询相对应的至少一个维度
    获取所述第一标准。
    4.根据权利要求1-3所述的方法,其中响应于接收到数据对象,
    基于第一查询将所述数据对象中的数据记录排序以形成第一备份包
    括:
    按照所述数据存储系统支持的块大小,将排序后的数据记录划分
    为多个数据块;以及
    基于所述多个数据块形成所述第一备份。
    5.根据权利要求4所述的方法,进一步包括:
    基于第二查询将所述数据对象中的所述数据记录排序以形成第
    二备份;
    在所述数据存储系统中存储所述第二备份;以及
    在所述数据存储系统的所述索引中存储所述第二查询以及所述
    第二备份在所述数据存储系统中的第二地址。
    6.根据权利要求5所述的方法,进一步包括:
    获得所述第一备份中的数据块与所述第二备份中的数据块的映
    射关系;以及
    响应于所述第一备份被损坏,基于所述映射关系从所述第二备份
    中恢复所述第一备份。
    7.根据权利要求6所述的方法,其中响应于所述第一备份被损
    坏,基于所述映射文件从所述第二备份中恢复所述第一备份包括:
    基于所述映射关系,在所述第二备份中查找与所述第一备份中被
    损坏的第一备份块相对应的第二备份块;以及
    拷贝所述第二备份块以替换被损坏的所述第一备份块。
    8.根据权利要求5所述的方法,进一步包括:
    获得所述第一备份中的数据块与所述第二备份中的数据块的映
    射关系;以及
    响应于所述第二备份被更新,基于所述映射关系利用已更新的第
    二备份来更新所述第一备份。
    9.一种用于查询数据存储系统的方法,包括:
    接收针对所述数据存储系统的查询;以及
    响应于所述数据存储系统的索引中存在与所述查询相匹配的查
    询,访问所述数据存储系统中与所述相匹配的查询相关联的地址以
    执行所述查询;
    其中所述数据存储系统是根据权利要求1-8中的任一项所述的
    方法管理的数据存储系统。
    10.根据权利要求9所述的方法,进一步包括:
    响应于所述数据存储系统的索引中不存在与所述查询相匹配的
    查询,访问所述数据存储系统中与任一查询相关联的地址以执行所
    述查询。
    11.一种用于管理数据存储系统的装置,包括:
    排序模块,配置用于响应于接收到数据对象,基于第一查询将所
    述数据对象中的数据记录排序以形成第一备份;
    存储模块,配置用于在所述数据存储系统中存储所述第一备份;
    以及
    索引模块,配置用于在所述数据存储系统的索引中存储所述第一
    查询以及所述第一备份在所述数据存储系统中的第一地址。
    12.根据权利要求11所述的装置,其中所述排序模块包括:
    获取模块,配置用于基于第一查询获取第一标准;以及
    第一排序模块,配置用于按照所述第一标准,将所述数据对象中
    的数据记录排序以形成所述第一备份。
    13.根据权利要求12所述的装置,其中所述数据对象是多维数
    据库,以及所述获取模块包括:
    第一获取模块,配置用于基于所述多维数据库中与所述第一查询
    相对应的至少一个维度获取所述第一标准。
    14.根据权利要求11-13所述的装置,其中所述排序模块包括:
    划分模块,配置用于按照所述数据存储系统支持的块大小,将排
    序后的数据记录划分为多个数据块;以及
    形成模块,配置用于基于所述多个数据块形成所述第一备份。
    15.根据权利要求14所述的装置,其中:
    所述排序模块进一步配置用于基于第二查询将所述数据对象中
    的所述数据记录排序以形成第二备份;
    所述存储模块进一步配置用于在所述数据存储系统中存储所述
    第二备份;以及
    所述索引模块进一步配置用于在所述数据存储系统的所述索引
    中存储所述第二查询以及所述第二备份在所述数据存储系统中的第
    二地址。
    16.根据权利要求15所述的装置,进一步包括:
    映射模块,配置用于获得所述第一备份中的数据块与所述第二备
    份中的数据块的映射关系;以及
    恢复模块,配置用于响应于所述第一备份被损坏,基于所述映射
    关系从所述第二备份中恢复所述第一备份。
    17.根据权利要求16所述的装置,其中所述恢复模块包括:
    查找模块,配置用于基于所述映射关系,在所述第二备份中查找
    与所述第一备份中被损坏的第一备份块相对应的第二备份块;以及
    拷贝模块,配置用于拷贝所述第二备份块以替换被损坏的所述第
    一备份块。
    18.根据权利要求15所述的装置,进一步包括:
    映射模块,配置用于获得所述第一备份中的数据块与所述第二备
    份中的数据块的映射关系;以及
    更新模块,配置用于响应于所述第二备份被更新,基于所述映射
    关系利用已更新的第二备份来更新所述第一备份。
    19.一种用于查询数据存储系统的装置,包括:
    接收模块,配置用于接收针对所述数据存储系统的查询;以及
    第一查询模块,配置用于响应于所述数据存储系统的索引中存在
    与所述查询相匹配的查询,访问所述数据存储系统中与所述相匹配
    的查询相关联的地址以执行所述查询;
    其中所述数据存储系统是根据权利要求11-18中的任一项所述
    装置管理的数据存储系统。
    20.根据权利要求19所述的装置,进一步包括:
    第二查询模块,配置用于响应于所述数据存储系统的索引中不存
    在与所述查询相匹配的查询,访问所述数据存储系统中与任一查询
    相关联的地址以执行所述查询。

    说明书

    用于管理数据存储系统的方法和装置

    技术领域

    本发明的各实施方式涉及数据存储(datastorage),更具体地,
    涉及用于管理数据存储系统的方法和装置。

    背景技术

    随着数据存储技术的发展,数据存储系统在存储空间、可靠性
    和响应效率方面都有了显著进步。在技术进步的同时,人们对于存
    储系统的要求也越来越高。例如,人们日常工作和生活涉及到的数
    据类型越来越多,一方面人们期望可以将这些数据存储至大容量数
    据库中,另一方面,人们对于数据查询的准确性和实时性的要求也
    逐渐提高。

    仅以电力行业为例,人们已经不再满足于查询每月的耗电总量,
    而是希望能够实时地查询到各种数据,例如,当前的耗电量、电流
    值、电压值、以及电阻值等等其他信息。电力公司通常以多维数据
    库来存储各种类型的数据,例如,电力公司的数据库可能会涉及如
    下维度:电表ID、时间点、电流、电压、以及电阻等(在此的电流、
    电压和电阻均为在某时间点采集到的数值)。随着多维数据库的维
    度的提高,针对多维数据库的查询可能会涉及多方面的内容。例如,
    可以查询在一定时间范围内的从各个电表采集到的数据、可以查询
    特定电表在全部时间范围内采集到的数据,等等。

    应当注意,随着数据库维度的增加以及数据量的增加,查询效
    率将会受到数据库中的数据记录的存储方式的影响。然而,按照目
    前的数据存储方式,查询效率并不令人满意。尤其是,当需要跨越
    数据库中的多个数据记录来查找满足查询条件的数据记录时,查询
    效率通常并不理想。

    例如,假设数据库中存储了100个电表在10000个时间点采集
    到的数据,并且数据库中依次存储了电表1在时间点t1-t10000采集
    的数据、电表2在时间点t1-t10000采集的数据、…、电表100在时
    间点t1-t10000采集到的数据。当需要查询每个电表在时间点t1采集
    的数据时,则需要依次读取第1行、第10001行、第20001行、…、
    等数据记录。由于在查询时需要在数据库内跨越大的区域读取数据,
    造成了查询效率底下。

    因而,如何提高数据存储系统中的查询效率成为一个亟待解决
    的问题。

    发明内容

    因而,期望可以开发出一种能够有效地管理数据存储系统的技
    术方案,期望该技术方案可以提高在数据存储系统中的查询效率,
    并且期望该技术方案的查询效率可以在数据库中存储了多维数据和/
    或海量数据时仍然保持有效。进一步,期望该技术方案可以与现有
    的数据存储系统(例如,集中式数据存储系统和/或分布式数据存储
    系统)相结合,在尽量不改变现有硬件资源配置的情况下,提高查
    询效率。

    在本发明的一个实施方式中,提供了一种用于管理数据存储系
    统的方法,包括:响应于接收到数据对象(dataobject),基于第一
    查询将数据对象中的数据记录排序以形成第一备份;在数据存储系
    统中存储第一备份;以及在数据存储系统的索引中存储第一查询以
    及第一备份在数据存储系统中的第一地址。

    在本发明的一个实施方式中,提供了一种用于查询数据存储系
    统的方法,包括:接收针对数据存储系统的查询;以及响应于数据
    存储系统的索引中存在与查询相匹配的查询,访问数据存储系统中
    与相匹配的查询相关联的地址以执行查询;其中数据存储系统是根
    据本发明的方法管理的数据存储系统。

    在本发明的一个实施方式中,提供了一种用于管理数据存储系
    统的装置,包括:排序模块,配置用于响应于接收到数据对象,基
    于第一查询将数据对象中的数据记录排序以形成第一备份;存储模
    块,配置用于在数据存储系统中存储第一备份;以及索引模块,配
    置用于在数据存储系统的索引中存储第一查询以及第一备份在数据
    存储系统中的第一地址。

    在本发明的一个实施方式中,提供了一种用于查询数据存储系
    统的装置,包括:接收模块,配置用于接收针对数据存储系统的查
    询;以及第一查询模块,配置用于响应于数据存储系统的索引中存
    在与查询相匹配的查询,访问数据存储系统中与相匹配的查询相关
    联的地址以执行查询;其中数据存储系统是根据本发明的装置管理
    的数据存储系统。

    采用本发明所述的方法和装置,可以有效地管理数据存储系统,
    并且可以提高针对数据存储系统的查询的效率。

    附图说明

    通过结合附图对本公开示例性实施方式进行更详细的描述,本
    公开的上述以及其他目的、特征和优势将变得更加明显,其中,在
    本公开示例性实施方式中,相同的参考标号通常代表相同部件。

    图1示意性示出了适于用来实现本发明实施方式的示例性计算
    机系统/服务器12的框图;

    图2示意性示出了根据一个技术方案的用于管理数据存储系统
    的技术方案的框图;

    图3示意性示出了根据本发明一个实施方式的用于管理数据存
    储系统的技术方案的框图;

    图4示意性示出了根据本发明一个实施方式的用于管理数据存
    储系统的方法的流程图;

    图5示意性示出了根据本发明一个实施方式的用于管理数据存
    储系统的技术方案的框图;

    图6示意性示出了根据本发明一个实施方式的用于恢复数据存
    储系统中的备份的示意图;

    图7示意性示出了根据本发明一个实施方式的用于针对数据存
    储系统进行查询的方法的流程图;以及

    图8A示意性示出了根据本发明一个实施方式的用于管理数据
    存储系统的装置的框图;以及图8B示意性示出了根据本发明一个实
    施方式的用于查询数据存储系统的装置的框图。

    具体实施方式

    下面将参照附图更详细地描述本公开的优选实施方式。虽然附
    图中显示了本公开的优选实施方式,然而应该理解,可以以各种形
    式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这
    些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的
    范围完整地传达给本领域的技术人员。

    图1示出了适于用来实现本发明实施方式的示例性计算机系统/
    服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示
    例,不应对本发明实施方式的功能和使用范围带来任何限制。

    如图1所示,计算机系统/服务器12以通用计算设备的形式表现。
    计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理
    器或者处理单元16,系统存储器28,连接不同系统组件(包括系统
    存储器28和处理单元16)的总线18。

    总线18表示几类总线结构中的一种或多种,包括存储器总线或
    者存储器控制器,外围总线,图形加速端口,处理器或者使用多种
    总线结构中的任意总线结构的局域总线。举例来说,这些体系结构
    包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)
    总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及
    外围组件互连(PCI)总线。

    计算机系统/服务器12典型地包括多种计算机系统可读介质。这
    些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包
    括易失性和非易失性介质,可移动的和不可移动的介质。

    系统存储器28可以包括易失性存储器形式的计算机系统可读介
    质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计
    算机系统/服务器12可以进一步包括其他可移动/不可移动的、易失
    性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用
    于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬
    盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失
    性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失
    性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱
    动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质
    接口与总线18相连。存储器28可以包括至少一个程序产品,该程
    序产品具有一组(例如至少一个)程序模块,这些程序模块被配置
    以执行本发明各实施方式的功能。

    具有一组(至少一个)程序模块42的程序/实用工具40,可以
    存储在例如存储器28中,这样的程序模块42包括——但不限于——
    操作系统、一个或者多个应用程序、其他程序模块以及程序数据,
    这些示例中的每一个或某种组合中可能包括网络环境的实现。程序
    模块42通常执行本发明所描述的实施方式中的功能和/或方法。

    计算机系统/服务器12也可以与一个或多个外部设备14(例如
    键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用
    户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计
    算机系统/服务器12能与一个或多个其他计算设备进行通信的任何
    设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/
    输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过
    网络适配器20与一个或者多个网络(例如局域网(LAN),广域网
    (WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配
    器20通过总线18与计算机系统/服务器12的其他模块通信。应当明
    白,尽管图中未示出,可以结合计算机系统/服务器12使用其他硬件
    和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单
    元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储
    系统等。

    为清楚起见,在本发明的上下文中将结合数据库表的具体示例
    来描述本发明的各个实施方式。例如,电力公司中用于存储从电表
    1-n、在不同时间点采集到的数据的表Record可以如下文表1所示。

    表1数据对象的示例


    在上文表1所示的数据对象中,各个数据记录按照时间戳的顺
    序排序,即,首先存储在时间点“2010-12-0101:00:00.0000”、由电
    表1-n采集到的n行数据记录,接着存储在时间点“2010-12-01
    01:00:10.0000”、由电表采集到的n行数据记录,以此类推。应当注
    意,尽管在本文中以时间序列数据(timeseriesdata)为示例而描述
    了本发明的各个实施方式,本领域技术人员应当理解,本发明的各
    个实施方式并不仅限于被应用于时间序列数据,而是可以被应用于
    各种类型的关系数据库。

    目前的数据库的维度越来越高并且数据量越来越大,为了提供
    更加可靠的数据存储,目前已经提出了分布式数据存储的技术方案。
    在分布式数据存储系统中,可以在多个数据节点中存储数据对象的
    多个备份,从而在当部分数据节点出现故障时,可以基于其他未出
    现故障的数据节点中的数据来恢复故障节点中的备份。

    图2示意性示出了根据一个技术方案的用于管理数据存储系统
    的技术方案的框图200。如图2所示,数据存储系统可以包括管理节
    点210,该管理节点210用于管理多个数据节点(即,数据节点1220、
    数据节点2230、…、以及数据节点N240)。为了提供更高的可靠
    性,每个数据节点中可以包括数据对象的备份,例如,数据节点1220
    中包括备份222,数据节点2230中包括备份232,以及数据节点N
    240中包括备份242。应当注意,在此的“备份”是指数据对象的完
    整拷贝。尽管在图2中以不同的参考数字表示,各个备份的内容是
    完全相同的。

    目前已经发现,对于同一个查询语句,当数据对象中的数据记
    录的排列顺序不同时,查询效率将会有所不同。基于这一现象,本
    发明提出了一种用于管理数据存储系统的技术方案。具体地,可以
    基于针对数据对象执行的历史查询来调整备份中的数据记录的顺
    序,继而可以针对调整后的备份进行查询,以便提高查询效率。进
    一步,还可以基于多个历史查询来生成多个备份,并且将多个备份
    存储至多个数据节点中。

    图3示意性示出了根据本发明一个实施方式的用于管理数据存
    储系统的技术方案的框图300。如图3所示,数据对象310表示原始
    的数据对象,与表1所示相同,此时各个数据记录按照时间戳的顺
    序排序。例如,存在查询语句320“SELECT*FROMRECORD
    WHEREMETER_ID=XXX”,该语句表示需要从数据表RECORD
    中查找由特定电表“XXX”在各个时间点采集到的所有数据。假设
    存在10000个不同的时间点,按照现有数据对象310中数据记录的
    顺序,则需要跨越大量数据记录来获得满足查询条件的语句(即,
    依次读取第1行、第10001行、第20001行等数据记录),因而查
    询效率较低。

    根据本发明的各个实施方式,可以基于查询语句320来将数据
    对象310中的数据记录重新排序(如箭头A所示)以形成备份330,
    并将该备份330存储至数据存储系统340(如箭头B所示)。在备
    份330中,数据记录按照电表ID重新排序,此时原本存储在数据对
    象310中的第1行、第10001行、第20001行等数据记录变为连续
    存储方式(例如,存储在连续的数据块中)。以此方式,不必再跨
    越大量数据记录读取数据,而是可以从备份中读取一段连续的数据
    即可。尽管将数据对象310转换为备份330需要一定的时间,然而
    转换是在查询之前预先完成的,因而这一预处理步骤不会影响查询
    的效率。另外,当存在大量类似于“SELECT*FROMRECORD
    WHEREMETER_ID=XXX”形式的查询时,本发明的技术方案将大
    大提高查询效率。

    在本发明的一个实施方式中,提出了一种用于管理数据存储系
    统的方法,包括:响应于接收到数据对象,基于第一查询将数据对
    象中的数据记录排序以形成第一备份;在数据存储系统中存储第一
    备份;以及在数据存储系统的索引中存储第一查询以及第一备份在
    数据存储系统中的第一地址。

    在下文中,将参见附图详细描述本发明的各个实施方式。图4
    示意性示出了根据本发明一个实施方式的用于管理数据存储系统的
    方法的流程图400。在步骤S402中,响应于接收到数据对象,基于
    第一查询将数据对象中的数据记录排序以形成第一备份。在本发明
    的一个实施方式中,例如可以基于数据存储系统的主要功能来确定
    第一查询,或者还可以基于历史查询中各个查询语句出现的频率而
    确定第一查询。

    例如,当数据存储系统仅能够查询与特定电表相关联的数据时,
    可以按照图3中以附图标记330示出的格式来排序各个数据记录。
    又例如,当针对数据存储系统的历史查询显示:80%的历史查询是查
    询在特定时间点采集的各个电表的数据时,则可以按照图3中以附
    图标记310所示的格式来排序数据记录。基于出现可能性最高的查
    询来排序数据对象中的各个数据记录并生成备份,可以在将来针对
    备份执行查询时获得满意的查询效率。

    接着,在步骤S404中,在数据存储系统中存储第一备份。由于
    数据存储系统可以具有海量数据存储,为了在后续的写入和读取操
    作中能够方便地访问第一备份,在步骤S406中,还需要在数据存储
    系统的索引中存储第一查询以及第一备份在数据存储系统中的第一
    地址。

    在本发明的一个实施方式中,进一步包括:在数据存储系统中
    维护数据对象的备份。在此实施方式中,可以在数据存储系统中维
    护数据对象的备份和第一备份,第一备份中的数据记录的排列顺序
    是针对第一查询而设置的,因而第一备份不但可以提高数据可靠性,
    还可以提高查询效率。

    在本发明的一个实施方式中,响应于接收到数据对象,基于第
    一查询将数据对象中的数据记录排序以形成第一备份包括:基于第
    一查询获取第一标准;以及按照第一标准,将数据对象中的数据记
    录排序以形成第一备份。

    在本发明的实施方式中,可以基于第一查询来获取第一标准。
    例如,查询语句“SELECT*FROMRECORDWHEREMETER_ID=
    XXX”的目的在于查询由特定电表“XXX”采集到的所有数据。此
    时,当以查询语句中指定的“METER_ID”为标准来将数据对象中
    的各个数据记录进行排序并形成备份时,可以获得较高的查询效率。
    又例如,查询语句“SELECT*FROMRECORDWHERETIMESTAMP
    =XXX”的目的在于查询在特定时间点“XXX”采集到的所有数据。
    此时,当以查询语句中指定的“TIMESTAMP”为标准将数据对象中
    的各个数据记录进行排序并形成备份时,可以获得较高的查询效率。

    在本发明的一个实施方式中,第一标准使得在第一备份中执行
    第一查询时的查询效率高于在按照其他标准将数据对象中的数据记
    录排序以形成的其他文件中执行第一查询时的查询效率。

    应当注意,由于第一备份是专门按照第一查询而排序并形成的,
    因而,此时针对该第一备份执行第一查询时的效率最高。换言之,
    采用第一标准来进行排序,可以使得在第一备份中执行第一查询时
    的查询效率高于在按照其他标准将数据对象中的数据记录排序以形
    成的其他文件中执行第一查询时的查询效率。

    具体而言,针对上文中的具体示例,当第一查询为“SELECT*
    FROMRECORDWHEREMETER_ID=XXX”时,第一备份可以如
    图3中的备份330所示,此时针对第一备份进行查询的效率要远高
    于针对如图3中的数据对象310进行查询的效率。这是因为,在针
    对数据对象310进行查询时,需要在跳跃地读取各个数据记录,因
    而效率较低。

    在本发明的一个实施方式中,数据对象是多维数据库,以及基
    于第一查询获取第一标准包括:基于多维数据库中与第一查询相对
    应的至少一个维度获取第一标准。在针对多维数据库进行查询时可
    能会涉及到多个维度,例如,可以查询第1-u个电表在每周之内采集
    到的数据,此时可以将第1-u个电表在每周内采集到的数据排列在一
    起,以便在获得较高的查询效率。根据数据存储系统的功能,可以
    按照查询所涉及的多个维度来将数据对象进行排序。

    在本发明的一个实施方式中,响应于接收到数据对象,基于第
    一查询将数据对象中的数据记录排序以形成第一备份包括:按照数
    据存储系统支持的块大小,将排序后的数据记录划分为多个数据块;
    以及基于多个数据块形成第一备份。

    在存储系统中以数据块为单位来存储数据,因而可以基于数据
    块来组织排序后的数据记录。假设数据库存储系统中的数据块的大
    小为64M,并且如图3中所示的备份330中与每个电表ID相关联
    的数据记录的总容量为64M,则可以在每个数据块中存储关于一个
    电表ID的所有数据。假设共存在10个电表,则10个数据块一起构
    成第一备份。

    尽管在上文中仅示意性示出了关于每个电表的数据记录总容量
    恰好为64M的情况,本领域技术人员还可以理解,当总容量不足或
    者超过64M时,也可以采用本发明的实施方式。例如,假设关于每
    个电表的数据记录的总容量是60M,可以利用一个数据块来存储关
    于一个电表的数据。具体地,可以将剩余的4M空间闲置或者还可
    以将其用于存储用于下一电表的数据。又例如,假设关于每个电表
    的数据记录的总容量为100M,则可以在两个或者更多的数据块中
    存储关于一个电表的数据。

    在本发明的一个实施方式中,还可以在索引中存储每个数据块
    的地址,以便响应于接收到查询而快速地定位满足查询条件的数据
    块。本领域技术人员可以基于具体应用环境的要求来实现。

    在本发明的一个实施方式中,进一步包括:基于第二查询将数
    据对象中的数据记录排序以形成第二备份;在数据存储系统中存储
    第二备份;以及在数据存储系统的索引中存储第二查询以及第二备
    份在数据存储系统中的第二地址。

    为了进一步提高数据查询效率,可以在数据存储系统中存储数
    据对象的多个备份,并且该多个备份中的每个备份都是按照一个查
    询来将数据对象中的数据记录进行排序后形成的。在执行查询时,
    可以与查询相对应的备份,进而提高查询的效率。

    图5示意性示出了根据本发明一个实施方式的用于管理数据存
    储系统的技术方案的框图500。在该数据存储系统中,管理节点210
    可以管理各个数据节点,如数据节点1220、数据节点2230、…、
    数据节点N240,并且还可以维护记录了各个查询与相应的备份之间
    的映射关系的索引510。不同于如图2所示的技术方案,在图5所示
    的实施方式中,各个数据节点中存储的备份(即,第一备份522、第
    二备份532、第N文件542)并不相同,而是分别基于不同的查询来
    将数据对象中的数据记录进行排序后形成的备份。

    如图5所示,可以按照第一数据表524的格式存储第一备份522,
    并且该第一备份522对应于第一查询520。还可以按照第二数据表
    534所示的格式存储第二备份532,并且该第二备份532对应于第二
    查询530。以此方式,可以在接收到不同的查询时将查询引导至相应
    的备份,以便提高查询效率。相对于现有技术中在各个数据节点中
    存储相同备份的技术方案,采用本发明的技术方案,可以在提高数
    据可靠性的同时提高数据查询效率。

    应当注意,尽管在图5中参见分布式数据存储系统的应用环境
    来描述了本发明的各个实施方式,本领域技术人员应当理解,本发
    明的各个实施方式并不仅限于应用于分布式数据存储环境,而是还
    可以应用于其他数据存储环境中。例如,可以在一个数据服务器上
    存储基于多个查询而生成的多个备份,尽管此时多个备份将会占据
    额外的存储空间,然而将不同的查询引导至不同的备份可以大大提
    高查询效率。又例如,本发明还可以在虚拟机的环境中运行,例如,
    如图5中所示的管理节点210和各个数据节点220-240可以是虚拟
    机。

    在上文中已经介绍了在多个数据节点中存储对应于多个查询的
    多个备份,尽管多个备份中的数据记录是相同的,然而数据记录的
    排列顺序有所不同。因而,在一个数据节点中的备份被损坏或者更
    新时,还需要附加处理过程。

    在本发明的一个实施方式中,进一步包括:获得第一备份中的
    数据块与第二备份中的数据块的映射关系;以及响应于第一备份被
    损坏,基于映射文件从第二备份中恢复第一备份。在本发明的一个
    实施方式中,第一备份和第二备份中内容在整体上是相同的,不同
    之处在于数据记录的排序不同,因而导致了第一备份和第二备份中
    的数据块之间可以具有映射关系。例如,第一备份中的数据块A可
    以对应于第二备份中的数据块B。此时,当第一备份中的数据块A
    被损坏时可以利用第二备份中的数据块B来恢复该数据块A。

    在本发明的一个实施方式中,响应于第一备份被损坏,基于映
    射关系从第二备份中恢复第一备份包括:基于映射关系,在第二备
    份中查找与第一备份中被损坏的第一备份块相对应的第二备份块;
    以及拷贝第二备份块以替换被损坏的第一备份块。

    在下文中将参见图6详细描述恢复步骤的具体细节。图6示意
    性示出了根据本发明一个实施方式的用于恢复数据存储系统中的文
    件的示意图600。如图6所示,第一备份610包括多个数据块
    A11-A23,并且第二备份620包括多个数据块B11-B23,第一备份中
    的数据块和第二备份中的数据块的映射关系如表630所示。当第一
    备份中的数据块A22(以阴影示出)被损坏时,基于映射关系630
    可知,第一备份610中的数据块A22对应于第二备份620中的数据
    块B23。因而,可以直接拷贝数据块B23以覆盖损坏的数据块A22。

    在上文中已经参见附图详细示出了恢复操作的具体步骤,在下
    文中将描述当数据存储系统中的一个备份被更新时,如何更新其他
    备份的操作。在本发明的一个实施方式中,进一步包括:获得第一
    备份中的数据块与第二备份中的数据块的映射关系;以及响应于第
    二备份被更新,基于映射关系利用已更新的第二备份来更新第一备
    份。

    更新操作类似于恢复操作,在已经知晓第一备份和第二备份中
    的数据块的映射关系的情况下,在第二备份被更新的情况下可以基
    于该映射关系来查找需要更新第一备份中的哪部分,进而进行更新。
    具体地,参见图6的示例,假设第二备份620中的数据块B23被更
    新,并且第二备份620中的数据块B23对应于第一备份610中的数
    据块A22,则此时可以拷贝数据块B23以覆盖数据块A22。以此方
    式,可以将数据存储系统中的各个备份保持最新。

    在本发明的一个实施方式中,数据存储系统是Hadoop分布式文
    件系统。Hadoop分布式文件系统是目前的一种流行的数据存储系统,
    该系统可以在多个数据节点中保存数据对象的多个备份,因而可以
    提供较高的可靠性。通过在Hadoop分布式文件系统中应用本发明的
    技术方案,可以在各个数据节点中保存基于不同查询而将数据对象
    中的数据记录重新排序后生成的备份。以此方式,可以在确保可靠
    性的前提下提高数据查询效率。

    在上文中已经参见附图描述了如何管理数据存储系统,在下文
    中将详细描述如何在本发明所述的数据存储系统中执行查询。具体
    地,在本发明的一个实施方式中,提供了一种用于查询数据存储系
    统的方法,包括:接收针对数据存储系统的查询;以及响应于数据
    存储系统的索引中存在与查询相匹配的查询,访问数据存储系统中
    与相匹配的查询相关联的地址以执行查询;其中数据存储系统是根
    据本发明的方法管理的数据存储系统。

    在已经在数据存储系统中保存了基于不同查询生成的备份的情
    况下,可以基于索引来搜索在数据存储系统中是否存在与接收到的
    查询相匹配的备份。例如,在数据存储系统中已经存储了如图5中
    的第一备份522和第二备份532,并且在索引中已经记载了分别与两
    个备份相关联的第一查询520和第二查询530。此时,当接收到类似
    于第一查询520的查询时,可以在第一备份522中执行查询,当接
    收到类似于第二查询530的查询时,则可以在第二备份532中执行
    查询,以便提高查询效率。

    在本发明的一个实施方式中,进一步包括:响应于数据存储系
    统的索引中不存在与查询相匹配的查询,访问数据存储系统中与任
    一查询相关联的地址以执行查询。换言之,当在数据存储系统中不
    存在匹配于接收到的查询的备份时,则可以在存储系统中的任一备
    份中执行查询。由于数据存储系统中的各个备份是基于数据存储系
    统的功能和/或历史查询的频率而设置的,在索引中不存在相匹配查
    询的可能性较低。因而,在大多数情况下,采用本发明的实施方式
    可以显著提高查询效率。

    图7示意性示出了根据本发明一个实施方式的用于针对数据存
    储系统进行查询的方法的流程图700。如图7所示,在步骤S702中,
    接收对数据存储系统的查询。继而,在步骤S704中,判断在数据存
    储系统中是否存在与接收到的查询相匹配的查询。如果判断结果为
    “是”,则操作流程前进至步骤S706,访问数据存储系统中与相匹
    配的查询相关联的地址以执行查询;否则,操作流程前进至步骤
    S708,访问数据存储系统中与任一查询相关联的地址以执行查询。

    应当注意,尽管在说明书和附图中以在数据存储系统维护一个
    备份、两个备份为具体示例描述了本发明的细节,本领域技术人员
    应当理解,为了提高数据可靠性和/或进一步提高查询效率,还可以
    在数据存储系统中保持更多的备份。具体而言,在Hadoop分布式文
    件系统中,可以维护三个备份。

    前面已经参考附图描述了实现本发明的方法的各个实施方式。
    本领域技术人员可以理解的是,上述方法既可以以软件方式实现,
    也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。
    并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相
    结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发
    明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,
    由于其中所包含的软件的作用,使得该设备表现出区别于通用处理
    设备的特性,从而形成本发明的各个实施方式的设备。本发明中所
    述设备包括若干装置或模块,所述装置或模块被配置为执行相应步
    骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程
    序实现所述装置或模块执行的动作。由于所述设备与方法基于相同
    的发明构思,因此其中相同或相应的实现细节同样适用于与上述方
    法对应的装置或模块,由于其在上文中已经进行了详细和完整的描
    述,因此在下文中可能不再进行赘述。

    图8A示意性示出了根据本发明一个实施方式的用于管理数据
    存储系统的装置的框图800A。如图8A所示,提供了一种用于管理
    数据存储系统的装置,包括:排序模块810A,配置用于响应于接收
    到数据对象,基于第一查询将数据对象中的数据记录排序以形成第
    一备份;存储模块820A,配置用于在数据存储系统中存储第一备份;
    以及索引模块830A,配置用于在数据存储系统的索引中存储第一查
    询以及第一备份在数据存储系统中的第一地址。

    在本发明的一个实施方式中,排序模块810A包括:获取模块,
    配置用于基于第一查询获取第一标准;以及第一排序模块,配置用
    于按照第一标准,将数据对象中的数据记录排序以形成第一备份。

    在本发明的一个实施方式中,第一标准使得在第一备份中执行
    第一查询时的查询效率高于在按照其他标准将数据对象中的数据记
    录排序以形成的其他文件中执行第一查询时的查询效率。

    在本发明的一个实施方式中,数据对象是多维数据库,以及获
    取模块包括:第一获取模块,配置用于基于多维数据库中与第一查
    询相对应的至少一个维度获取第一标准。

    在本发明的一个实施方式中,排序模块810A包括:划分模块,
    配置用于按照数据存储系统支持的块大小,将排序后的数据记录划
    分为多个数据块;以及形成模块,配置用于基于多个数据块形成第
    一备份。

    在本发明的一个实施方式中,排序模块810A进一步配置用于基
    于第二查询将数据对象中的数据记录排序以形成第二备份;存储模
    块820A进一步配置用于在数据存储系统中存储第二备份;以及索引
    模块830A进一步配置用于在数据存储系统的索引中存储第二查询
    以及第二备份在数据存储系统中的第二地址。

    在本发明的一个实施方式中,进一步包括:映射模块,配置用
    于获得第一备份中的数据块与第二备份中的数据块的映射关系;以
    及恢复模块,配置用于响应于第一备份被损坏,基于映射关系从第
    二备份中恢复第一备份。

    在本发明的一个实施方式中,恢复模块包括:查找模块,配置
    用于基于映射关系,在第二备份中查找与第一备份中被损坏的第一
    备份块相对应的第二备份块;以及拷贝模块,配置用于拷贝第二备
    份块以替换被损坏的第一备份块。

    在本发明的一个实施方式中,进一步包括:映射模块,配置用
    于获得第一备份中的数据块与第二备份中的数据块的映射关系;以
    及更新模块,配置用于响应于第二备份被更新,基于映射关系利用
    更新的第二备份来更新第一备份。

    图8B示意性示出了根据本发明一个实施方式的用于查询数据存
    储系统的装置的框图800B。具体地,提供了一种用于查询数据存储
    系统的装置,包括:接收模块810B,配置用于接收针对数据存储系
    统的查询;以及第一查询模块820B,配置用于响应于数据存储系统
    的索引中存在与查询相匹配的查询,访问数据存储系统中与相匹配
    的查询相关联的地址以执行查询;其中数据存储系统是根据本发明
    的装置管理的数据存储系统。

    在本发明的一个实施方式中,进一步包括:第二查询模块830B,
    配置用于响应于数据存储系统的索引中不存在与查询相匹配的查
    询,访问数据存储系统中与任一查询相关联的地址以执行查询。

    本发明可以是系统、方法和/或计算机程序产品。计算机程序产
    品可以包括计算机可读存储介质,其上载有用于使处理器实现本发
    明的各个方面的计算机可读程序指令。

    计算机可读存储介质可以是可以保持和存储由指令执行设备使
    用的指令的有形设备。计算机可读存储介质例如可以是――但不限
    于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半
    导体存储设备或者上述的任意合适的组合。计算机可读存储介质的
    更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随
    机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读
    存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携
    式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆
    棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内
    凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读
    存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传
    播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过
    光纤电缆的光脉冲)、或者通过电线传输的电信号。

    这里所描述的计算机可读程序指令可以从计算机可读存储介质
    下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、
    广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包
    括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、
    网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或
    者网络接口从网络接收计算机可读程序指令,并转发该计算机可读
    程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质
    中。

    用于执行本发明操作的计算机程序指令可以是汇编指令、指令
    集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、
    状态设置数据、或者以一种或多种编程语言的任意组合编写的源代
    码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、
    Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或
    类似的编程语言。计算机可读程序指令可以完全地在用户计算机上
    执行、部分地在用户计算机上执行、作为一个独立的软件包执行、
    部分在用户计算机上部分在远程计算机上执行、或者完全在远程计
    算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可
    以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—
    连接到用户计算机,或者,可以连接到外部计算机(例如利用因特
    网服务提供商来通过因特网连接)。在一些实施方式中,通过利用
    计算机可读程序指令的状态信息来个性化定制电子电路,例如可编
    程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),
    该电子电路可以执行计算机可读程序指令,从而实现本发明的各个
    方面。

    这里参照根据本发明实施方式的方法、装置(系统)和计算机
    程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,
    流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,
    都可以由计算机可读程序指令实现。

    这些计算机可读程序指令可以提供给通用计算机、专用计算机
    或其他可编程数据处理装置的处理器,从而生产出一种机器,使得
    这些指令在通过计算机或其他可编程数据处理装置的处理器执行
    时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/
    动作的装置。也可以把这些计算机可读程序指令存储在计算机可读
    存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他
    设备以特定方式工作,从而,存储有指令的计算机可读介质则包括
    一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规
    定的功能/动作的各个方面的指令。

    也可以把计算机可读程序指令加载到计算机、其他可编程数据
    处理装置、或其他设备上,使得在计算机、其他可编程数据处理装
    置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,
    从而使得在计算机、其他可编程数据处理装置、或其他设备上执行
    的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动
    作。

    附图中的流程图和框图显示了根据本发明的多个实施方式的系
    统、方法和计算机程序产品的可能实现的体系架构、功能和操作。
    在这点上,流程图或框图中的每个方框可以代表一个模块、程序段
    或指令的一部分,所述模块、程序段或指令的一部分包含一个或多
    个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现
    中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。
    例如,两个连续的方框实际上可以基本并行地执行,它们有时也可
    以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框
    图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组
    合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,
    或者可以用专用硬件与计算机指令的组合来实现。

    以上已经描述了本发明的各实施方式,上述说明是示例性的,
    并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说
    明的各实施方式的范围和精神的情况下,对于本技术领域的普通技
    术人员来说许多修改和变更都是显而易见的。本文中所用术语的选
    择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技
    术的技术改进,或者使本技术领域的其他普通技术人员能理解本文
    披露的各实施方式。

    关 键  词:
    用于 管理 数据 存储系统 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:用于管理数据存储系统的方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6207191.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1