数据管理方法及系统转让专利

申请号 : CN200710090676.4

文献号 : CN100583832C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张登宝

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种数据管理方法,根据数据大小选择存储块的类型,将数据存储在由若干同类型存储块组成的大文件中,通过数据的记录标识与其存储地址信息的关联进行数据的查找定位。本发明还提供相应的数据管理系统。本发明由于可以根据数据大小选择最合适的存储块类型,能够尽量有效利用磁盘空间并提高读写性能;由于采用大文件来进行数据存储,减少了在操作系统中创建的文件数量;由于采用记录标识与存储地址信息关联的定位方式,定位时间是常数级的,性能稳定,不会受数据量增多的影响而大幅度下降。

权利要求 :

1、一种数据管理方法,包括数据存储的步骤,其特征在于,所述数据存 储的步骤包括:根据待存储数据的大小,确定所需存储块的数量和类型,所述存储块的类 型按照大小划分;

将所述数据存入提供所确定类型存储块的大文件,所述大文件由若干同类 型存储块组成;

保存所述数据的记录标识与其存储地址信息的关联关系。

2、根据权利要求1所述的数据管理方法,其特征在于,所述根据待存储数 据的大小确定所需存储块的数量和类型的步骤包括:根据所述数据的大小,按照可提供的存储块类型确定最少所需存储块的数 量;

根据确定的存储块数量,求出所需要的最小存储块类型。

3、根据权利要求1所述的数据管理方法,其特征在于:所述存储块分为4~16 个类型,较大的块类型比相邻较小的块类型大一倍。

4、根据权利要求1所述的数据管理方法,其特征在于,所述保存数据的记 录标识与其存储地址信息的关联关系的步骤是,将所述数据的存储地址信息写 入索引表,以索引表标识加上保存所述存储地址信息的记录在所述索引表中的 偏移量作为所述记录标识。

5、根据权利要求1~4任意一项所述的数据管理方法,其特征在于,所述将 数据存入提供所确定类型存储块的大文件的步骤包括:查找所需存储块类型对应的大文件;

从查到的某个具有足够空闲块数的大文件中分配相应数量的存储块;

将所述数据顺序存入所述分配的存储块中,若分配了一个以上的存储块, 还在存储块中保存下一存储块在所述大文件中的偏移量;

所述数据的存储地址信息包括大文件名及首个存储块在所述大文件中的 偏移量。

6、根据权利要求5所述的数据管理方法,其特征在于:若所需存储块类型 对应的所有大文件都没有足够的空闲块数,则新建一个提供所需存储块类型的 大文件,再从所述新建的大文件中分配相应数量的存储块。

7、根据权利要求1~4任意一项所述的数据管理方法,其特征在于,在所述 数据存储的步骤之后,还包括数据操作的步骤,所述数据操作的步骤包括:解析数据操作会话提供的记录标识,得到该记录标识对应的存储地址信 息;

根据所述存储地址信息查找相应的大文件及存储块,执行所请求的数据操 作。

8、根据权利要求7所述的数据管理方法,其特征在于,在执行所述数据操 作之前还包括:根据所述记录标识,在记录锁资源池中查找对应的记录锁,所述记录锁资 源池包括若干个记录锁;

若找到与所述记录标识对应的记录锁,递增所述记录锁的引用计数,根据 所请求的数据操作对所述记录锁加相应的操作锁,并在该次会话结束后递减所 述记录锁的引用计数;

若没有找到与所述记录标识对应的记录锁,则判断是否有未被其他记录标 识使用的记录锁,若是则取一个未被其他记录标识使用的记录锁,写入当前记 录标识,递增所述记录锁的引用计数,根据所请求的数据操作为所述记录锁加 相应的操作锁,并在该次会话结束后递减所述记录锁的引用计数;

若没有找到与所述记录标识对应的记录锁,且判断无未被其他记录标识使 用的记录锁,则挂起或拒绝所请求的数据操作。

9、一种数据管理系统,其特征在于,包括:

块存储单元,用于提供各种不同类型的大文件,每种类型的大文件由若干 同类型存储块组成,所述存储块的类型按照大小划分;

存储策略单元,用于根据待存储数据的大小,确定所需存储块的数量和类 型;

存储执行单元,用于根据所述存储策略单元确定的存储块数量和类型,将 数据存入所述块存储单元的提供所确定类型存储块的大文件,并保存所述数据 的记录标识与其存储地址信息的关联关系。

10、根据权利要求9所述的数据管理系统,其特征在于,还包括:地址索引单元,用于解析数据操作会话提供的记录标识,根据所述存储执 行单元保存的关联关系得到该记录标识对应的存储地址信息;

操作执行单元,用于根据所述地址索引单元得到的存储地址信息查找相应 的大文件及存储块,执行所请求的数据操作。

11、根据权利要求10所述的数据管理系统,其特征在于,还包括:并发控制单元,用于根据所述记录标识,在记录锁资源池中查找对应的记 录锁,所述记录锁资源池包括若干个记录锁;

若找到与所述记录标识对应的记录锁,递增所述记录锁的引用计数,根据 所请求的数据操作对所述记录锁加相应的操作锁,允许所述操作执行单元执行 所述数据操作,并在该次会话结束后递减所述记录锁的引用计数;

若没有找到与所述记录标识对应的记录锁,则判断是否有未被其他记录标 识使用的记录锁,若是则取一个未被其他记录标识使用的记录锁,写入当前记 录标识,递增所述记录锁的引用计数,根据所请求的数据操作为所述记录锁加 相应的操作锁,允许所述操作执行单元执行所述数据操作,并在该次会话结束 后递减所述记录锁的引用计数;

若没有找到与所述记录标识对应的记录锁,且判断无未被其他记录标识使 用的记录锁,则挂起或拒绝所请求的数据操作。

说明书 :

技术领域

本发明涉及数据管理技术领域,具体涉及数据管理方法及系统,本发明可 用于通讯系统中服务端对大数量的用户多媒体信息数据进行存储和操作。

背景技术

随着宽带网络、第三代(3G:The 3rd Generation)通讯技术的普及,在通 讯网络中传递的信息数据数量越来越大,内容也越来越丰富,不再局限于短信、 文本等简单信息,而是逐渐发展为内容与表现形式都极大丰富的多媒体信息, 包括音频、图像、视频等。多媒体数据的特点之一在于各数据的大小范围差别 较大,从几千字节(KB)到几百万字节(MB)不等。
在通讯系统中,提供业务的服务端常常需要对大量的用户信息数据进行管 理,例如对传输的多媒体信息数据进行暂时存储,或对数据执行读、写等操作。 现有采用的数据管理方式主要有如下两种:
一种是基于关系数据库的方式:将多媒体信息数据以大对象(LOB)或二 进制大对象(BLOB)等形式存储在数据库外部的操作系统文件中,通过关系 数据库对存储的数据进行管理。在此方式下,对进行数据存储的操作系统文件 一般没有特定的结构要求,关系数据库通过关系运算来进行存储数据的定位, 在数据量很大的情况下,关系运算引起的时间损耗往往呈指数级增长,导致不 能满足业务系统对存取多媒体数据的性能要求。此外,关系数据库为了保证数 据完整性等目的,一般还需要执行一些额外的检查工作,降低了数据管理的效 率。
一种是基于小文件存放的方式:此方式多用于电子邮件(Email)的管理。 采用该方式的一个典型例子是Unix系统下广泛应用的Qmail系统。在该系统 中,采用小文件方式存放Email,用发件方加收件方信息构成存储文件的文件 名,用于进行文件的查找定位。限于目前操作系统的特性,一个目录下的文件 数量不可能太多,并且在文件数量过多的时候会影响文件的定位速度,因此该 方案在需要存储的数据数量巨大的情形下就不太适用了。

发明内容

本发明实施例提供一种高性能的数据管理方法,包括:根据待存储数据的 大小,确定所需存储块的数量和类型,所述存储块的类型按照大小划分;将所 述数据存入提供所确定类型存储块的大文件,所述大文件由若干同类型存储块 组成;保存所述数据的记录标识与其存储地址信息的关联关系。
本发明实施例还提供相应的数据管理系统,包括:块存储单元,用于提供 各种不同类型的大文件,每种类型的大文件由若干同类型存储块组成,所述存 储块的类型按照大小划分;存储策略单元,用于根据待存储数据的大小,确定 所需存储块的数量和类型;存储执行单元,用于根据所述存储策略单元确定的 存储块数量和类型,将数据存入所述块存储单元的提供所确定类型存储块的大 文件,并保存所述数据的记录标识与其存储地址信息的关联关系。
本发明实施例采用根据数据大小选择存储块的类型,将数据存储在由若干 同类型存储块组成的大文件中,通过数据的记录标识与其存储地址信息的关联 进行数据的查找定位的方法;由于可以根据数据大小选择适当的存储块类型, 能够尽量有效利用磁盘空间并提高读写性能;由于采用大文件来进行数据存 储,减少了在操作系统中创建的文件数量;由于采用记录标识与存储地址信息 关联的定位方式,定位时间是常数级的,性能稳定,不会受数据量增多的影响 而大幅度下降。

附图说明

图1是本发明实施例一数据管理方法流程示意图;
图2是本发明实施例一方法中大文件结构示意图;
图3是本发明实施例二数据管理方法中数据操作流程示意图;
图4是本发明实施例三数据管理系统结构示意图;
图5是本发明实施例四数据管理系统结构示意图。

具体实施方式

本发明实施例提供了一种数据管理方法,根据数据大小选择存储块的类 型,将数据存储在由若干同类型存储块组成的大文件中,通过数据的记录标识 与其存储地址信息的关联进行数据的查找定位。本发明实施例还提供与此数据 管理方法相应的数据管理系统。以下分别进行详细说明。
实施例一、一种数据管理方法,流程如图1所示,包括数据存储的步骤, 以及对存储的数据进行操作的步骤,其中数据存储的步骤包括:
A1、根据待存储数据的大小,确定所需存储块的数量和类型,所述存储 块的类型按照大小划分;
在实际应用中,存储块可按照需要存储的数据的大小分布特点划分为若干 个类型,一般而言,存储块类型在4~16个之间比较适宜。各种存储块类型对应 的存储块大小可按照较大的块类型比相邻较小的块类型大一倍的策略来设计, 使得块大小的分布能尽可能均匀的覆盖实际数据大小的分布范围。例如,在用 于通讯系统中业务系统的服务端对用户多媒体信息数据的存储中,根据通讯过 程中多媒体信息数据的一般大小特点,可按照2的幂次划分9个存储块类型:4、 8、16、32、64、128、256、512、1024(KB)根据实际业务的需要,块类型 可进行相应的修改、增加或删除。
在根据待存储数据的大小确定所需存储块的数量和类型时,可根据需要设 计各种具体的存储策略,例如,若以尽量减少数据操作中磁盘读写(I/O)次 数为目的,则可在确定存储块的数量和类型时以数量最少为基准,步骤包括:
(1)根据待存储数据的大小,按照可提供的存储块类型确定最少所需存 储块的数量;
(2)根据确定的存储块数量,求出所需要的最小存储块类型。
举例说明:若数据大小为300KB,按照上述举例的存储块类型,最少仅 需1个存储块即可,因此步骤(1)中确定的所需存储块数量为1;在存储块数 量为1时,512KB和1024KB大小的存储块类型均可完成存储,因此步骤(2) 中确定的所需最小存储块类型为512KB的存储块类型。
按照上述存储策略,数据大小在小于最大的存储块类型的大小时能够由一 个存储块存储,若存储块类型划分得当,在大多数情况下数据都可存储在一个 存储块中,因此上述存储策略能减少磁盘I/O次数,使数据的读写尽量在一次 磁盘I/O内完成,在磁盘I/O性能既定的前提下提高数据的读写性能。
当然,存储策略的设计也可以磁盘利用率为重,如果强调节约磁盘,可综 合对块类型的选择来确定存储块的数量,例如,若按上述步骤确定存储块类型、 数量后,未使用的存储块部分占存储块大小超过一定比例,则可选择相邻较小 的存储块类型。当然,兼顾磁盘I/O效率,可规定最终确定的存储块数目不得 超过最少存储块数目的若干倍。实际应用中可以针对不同的目的设计多种存储 策略,由使用者根据需要进行选择。
A2、将数据存入提供所确定类型存储块的大文件,所述大文件由若干同 类型存储块组成;
本实施例中,以大文件的形式进行数据存储。大文件的结构如图2所示, 由相同类型的存储块组成,图2中大文件由64KB的存储块组成,每一个存储 块都可用大文件名+该存储块在大文件中的偏移量代表其唯一物理地址;此外, 每一个存储块还可设置一个对应的整型标志,如果一条数据记录需要多块存 储,该标志可用来表示下一存储块的偏移量,这样,对于每一条数据记录,根 据大文件名+首块偏移量就可代表它的唯一物理地址。基于上述大文件的结构, 将数据存入大文件的步骤可包括:
(1)查找所需存储块类型对应的大文件;
(2)从查到的某个具有足够空闲块数的大文件中分配相应数量的存储块;
(3)若所需存储块类型对应的所有大文件都没有足够的空闲块数,则新 建一个提供所需存储块类型的大文件,再从所述新建的大文件中分配相应数量 的存储块;
(4)将数据顺序存入分配的存储块中,若分配了一个以上的存储块,还 在存储块的整型标志中保存下一存储块在所述大文件中的偏移量。
为便于空间的分配和管理,可规定提供不同类型存储块的各种大文件具有 一致的大小,例如统一为2G。当然,也可根据需要采用其他规定,例如规定 所有大文件具有一致的存储块数量等。
A3、保存数据的记录标识(ID)与其存储地址信息的关联关系;
在上层业务向存储系统存入一条数据记录后,存储系统向其返回记录ID, 之后存储系统与上层业务之间即可通过记录ID进行交互。业务根据记录ID来读 取、修改、更新相应的数据,存储系统通过记录ID进行数据的查找定位。
在最简单的情况下,可以将全部记录ID和相应的存储地址信息对应保存在 一张表中,根据记录ID通过一次定位获得数据的存储信息。
为便于数据的管理,本实施例中提供一种优选的定位方案,即:将数据的 存储地址信息写入索引表,以索引表标识加上保存所述存储地址信息的记录在 所述索引表中的偏移量作为记录ID。可以规定每个索引表存储固定个数的记 录,以索引表序号作为索引表标识,索引表的记录项使用满后可建立新的索引 表,避免长度不定的大数据表在管理上的困难。查找时,由记录ID确定索引表, 再在该索引表中确定相应的记录,通过两次定位即可获得数据的存储信息,搜 索时间损耗少。
索引表可由记录ID作为关键字,对应各个记录ID保存数据的存储地址信 息,存储地址信息可包括确定数据物理地址的信息,例如大文件名、首块偏移 量、块数等;还可包括磁盘I/O需要的信息,例如数据大小、块大小等;以及 数据的其他存储信息,例如存储日期等。此外,索引表中还可对应记录ID保存 该记录ID的使用状态,例如,用0表示已删除,说明该记录ID空闲,可关联新 的数据记录;1表示有效,说明该记录ID当前与某个数据记录关联,当全部索 引表的全部记录ID状态均为1时,若还需要存入新的数据记录,就需要创建新 的索引表了。
在进行数据存储后,本实施例中还提供对数据进行读写操作的步骤,包括:
A4、解析数据操作会话提供的记录ID,得到该记录ID对应的存储地址信 息;
在本实施例提供的优选定位方案下,记录定位过程为:
(1)解析记录ID,得到该记录ID对应的索引表和索引表偏移量;
(2)从索引表的对应偏移处读出记录的存储地址信息。
A5、根据所记录的存储地址信息查找相应的大文件及存储块,执行所请 求的数据操作。
根据存储地址信息,如果块数为1,可从大文件中直接获得对应的块;如 果块数大于1,可首先获得首块,根据首块的整型标志继续获得下一块,直到 获得整个存储的数据。
实施例二、一种数据管理方法,其数据存储的步骤与实施例一相同,区别 之处在于,本实施例在执行数据操作的时候提供对操作会话的并发控制,本实 施例中数据操作的流程如图3所示,包括:
B1、根据数据操作会话提供的记录ID,在记录锁资源池中查找对应的记 录锁,所述记录锁资源池包括若干个记录锁;
每当业务发起一次会话,请求执行数据操作时,存储系统都根据业务输入 的记录ID到记录锁资源池中查找对应的记录锁。基于实施例一中提供的数据记 录的存储特点,可以很方便的实现小粒度的记录锁。本实施例中的记录锁可通 过对操作系统提供的原生锁进行简单包装获得,将原生锁与记录ID关联并设置 相应的引用计数,即可对会话操作请求进行基于记录ID的控制。通过控制记录 锁的总量可控制系统允许的并发会话的最大个数。系统可在启动时初始化记录 锁资源池,将所有记录锁保存的记录ID内容清空,引用计数置0。
B2、判断是否找到与所查找记录ID对应的记录锁,若是则执行步骤B3, 若否则执行步骤B4;
B3、递增记录锁的引用计数,根据所请求的数据操作对该记录锁加相应 的操作锁,例如加读锁或写锁,执行步骤B7;
B4、判断是否有未被其他记录ID使用的记录锁,若是则执行步骤B5,若 否则执行步骤B6;
B5、取一个未被其他记录ID使用的记录锁,写入当前记录ID,递增所述 记录锁的引用计数,根据所请求的数据操作为所述记录锁加相应的操作锁,执 行步骤B7;
B6、挂起或拒绝所请求的数据操作。
B7、解析数据操作会话提供的记录ID,得到该记录ID对应的存储地址信 息;
B8、根据所记录的存储地址信息查找相应的大文件及存储块,执行所请 求的数据操作;
B9、在该次会话结束后递减相应记录锁的引用计数,当记录锁的引用计 数为0时,说明该记录锁空闲,可分配给新的记录ID。
由于每个大文件中可能存储有数万或数十万条数据记录,使用本实施例并 发控制方案可保证同时操作大文件时的线程安全性,并提高系统的并发执行能 力。
下面对本发明实施例的系统进行详细说明。
实施例三、一种数据管理系统10,如图4所示,包括块存储单元11、存储 策略单元12、存储执行单元13和地址索引单元14、操作执行单元15;
块存储单元11,用于提供各种不同类型的大文件,每种类型的大文件由若 干同类型存储块组成,所述存储块的类型按照大小划分;
存储策略单元12,用于根据待存储数据的大小,确定所需存储块的数量和 类型;
存储执行单元13,用于根据所述存储策略单元12确定的存储块数量和类 型,将数据存入所述块存储单元11的提供所确定类型存储块的大文件,并保存 所述数据的记录标识与其存储地址信息的关联关系;
地址索引单元14,用于解析数据操作会话提供的记录标识,根据所述存储 执行单元13保存的关联关系得到该记录标识对应的存储地址信息;
操作执行单元15,用于根据所述地址索引单元14得到的存储地址信息查找 相应的大文件及存储块,执行所请求的数据操作。
本实施例数据管理系统中的块存储单元、存储策略单元和存储执行单元可 应用于执行实施例一数据管理方法中数据存储部分的步骤,地址索引单元和操 作执行单元可用于执行数据操作部分的步骤。
实施例四、一种数据管理系统20,如图5所示,包括块存储单元21、存储 策略单元22、存储执行单元23和地址索引单元24、操作执行单元25、并发控制 单元26;
本实施例数据管理系统中的块存储单元21、存储策略单元22、存储执行单 元23、地址索引单元24和操作执行单元25与实施例三中的同名单元功能相同; 本实施例系统与实施例三的区别之处在于增加了并发控制单元26;
并发控制单元26,用于根据数据操作会话提供的记录标识,在记录锁资源 池中查找对应的记录锁,所述记录锁资源池包括若干个记录锁;
若找到与所述记录标识对应的记录锁,递增所述记录锁的引用计数,根据 所请求的数据操作为所述记录锁加相应的操作锁,允许所述操作执行单元25 执行所述数据操作,并在该次会话结束后递减所述记录锁的引用计数;
若没有找到与所述记录标识对应的记录锁,则取一个未被其他记录标识使 用的记录锁,写入当前记录标识,递增所述记录锁的引用计数,根据所请求的 数据操作为所述记录锁加相应的操作锁,允许所述操作执行单元25执行所述数 据操作,并在该次会话结束后递减所述记录锁的引用计数;
若没有找到与所述记录标识对应的记录锁,且无未被其他记录标识使用的 记录锁,则挂起或拒绝所请求的数据操作。
本实施例数据管理系统可应用于执行实施例三中的数据管理方法。
通过上述实施例可以看出,本发明实施例采用根据数据大小选择存储块的 类型,将数据存储在由若干同类型存储块组成的大文件中,通过数据的记录标 识与其存储地址信息的关联进行数据的查找定位的方法;由于可以根据数据大 小选择适当的存储块类型,能够尽量有效利用磁盘空间并提高读写性能;由于 采用大文件来进行数据存储,减少了在操作系统中创建的文件数量;由于采用 记录标识与存储地址信息关联的定位方式,定位时间是常数级的,性能稳定, 不会受数据量增多的影响而大幅度下降。此外,采用本发明实施例提供的优选 存储策略、定位方案及并发控制方法等,能够更好的提高系统的存储性能,减 少磁盘I/O次数、缩短数据查找时间、提高系统并发执行能力,有效提高数据 管理效率。
以上对本发明实施例所提供的数据管理方法与相应的数据管理系统进行 了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于 本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均 会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。