CN104182508B - 一种数据处理方法和数据处理装置 - Google Patents
一种数据处理方法和数据处理装置 Download PDFInfo
- Publication number
- CN104182508B CN104182508B CN201410410610.9A CN201410410610A CN104182508B CN 104182508 B CN104182508 B CN 104182508B CN 201410410610 A CN201410410610 A CN 201410410610A CN 104182508 B CN104182508 B CN 104182508B
- Authority
- CN
- China
- Prior art keywords
- key
- data
- target index
- index
- index area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computational Linguistics (AREA)
Abstract
本申请提供了一种数据处理方法和数据处理装置,用以提高数据处理效率,降低对系统资源的消耗。所述方法应用于存储介质,所述存储介质存储有多个键以及各个键Key对应的值Value,所述方法包括:获得目标键;确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;通过查询所述目标索引区,获取所述目标键的目标索引项;根据所述目标索引项,获得数据区中与所述目标键对应的数据。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种数据处理方法和数据处理装置。
背景技术
网络之间互连的协议(英文:Internet Protocol;简称:IP)硬盘为通过IP协议提供物理通信的硬盘。它摈弃了传统的串行连接(英文:Serial Attached SCSI;简称:SAS)/串行高级技术附件(英文:Serial Advanced Technology Attachment;简称:SATA)接口,使得主机和硬盘之间的连接更加简单,几乎没有距离的限制。
目前的一些存储介质,例如IP硬盘是以Key-Value,即键值对的结构进行数据存储的。其中Key为键,通常是一个字符串,而Value为键对应的值,也称为数据或数据内容,Key-Value数据简称KV数据。通常Value存储地址的偏移量以及键Key一起存放在索引区中,而Key对应的值Value则存放在数据区。在需要数据时,应用层使用Key进行访问,遍历索引区,根据Key索引到偏移量,从而访问到Key对应的Value。
然而,现有技术中获取数据的方法降低了数据处理的效率,同时也耗费了系统资源。
发明内容
本申请提供了一种数据处理方法和数据处理装置,用以提高数据处理效率,降低系统资源的消耗。
本申请第一方面提供了一种数据处理方法,应用于存储介质,所述存储介质存储有多个键以及各个键Key对应的值Value,包括:
获得目标键;
确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;
通过查询所述目标索引区,获取所述目标键的目标索引项;
根据所述目标索引项,获得数据区中与所述目标键对应的数据。
本申请第二方面提供了一种数据处理装置,包括:
获得单元,用于获得目标键;
确定单元,用于确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;
获取单元,用于通过查询所述目标索引区,获取所述目标键的目标索引项;
数据获得单元,用于根据所述目标索引项,获得数据区中与所述目标键对应的数据。
本申请第三方面提供了一种存储设备,包括:
接口,用于获得目标键;
处理器,用于确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;通过查询所述目标索引区,获取所述目标键的目标索引项;根据所述目标索引项,获得数据区中与所述目标键对应的数据。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
首先获得目标键;接着确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;然后通过查询所述目标索引区,获取所述目标键的目标索引项;最后根据所述目标索引项,获得数据区中与所述目标键对应的数据。因此,在本申请的实施例中,在获得了目标键后,根据目标键的键类型,在对应的目标索引区中查询获得目标索引项,最后根据目标索引项在数据区中获得需要的数据。所以,在本申请提供的技术方案中,将遍历范围缩小至一个键类型的目标索引区,避免了遍历整个索引区寻找目标索引项,有利于提高数据处理的效率和降低系统资源的耗费。
附图说明
图1为本申请实施例中的数据处理方法流程图;
图2为本申请实施例中一目标索引区分配示意图;
图3为本申请实施例中另一目标索引区分配示意图;
图4为本申请实施例中一数据项和索引项写入方式示意图;
图5为本申请实施例中另一数据项和索引项写入方式示意图;
图6a-图6c为本申请实施例中几种数据处理的具体实施步骤图;
图7为本申请实施例中的数据处理装置结构示意图;
图8为本申请实施例中的存储设备硬件实现的实例概念图。
具体实施方式
本申请提供了一种数据处理方法和数据处理装置,用以提高数据处理效率,降低对系统资源的消耗。
本发明实施例中的技术方案为解决上述的技术问题,本发明中的数据处理方法包括如下内容:
首先获得目标键;接着确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;然后通过查询所述目标索引区,获取所述目标键的目标索引项;最后根据所述目标索引项,获得数据区中与所述目标键对应的数据。因此,在本申请的实施例中,在获得了目标键后,根据目标键的键类型,在对应的目标索引区中查询获得目标索引项,最后根据目标索引项在数据区中获得需要的数据。所以,在本申请提供的技术方案中,将遍历范围缩小至一个键类型的目标索引区,避免了遍历整个索引区寻找目标索引项,有利于提高数据处理的效率和降低系统资源的耗费。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图对本发明的实施方式进行详细说明。
实施例一:
首先,请参考图1,本申请实施例中的数据处理方法包括以下内容:
S101:获得目标键。
S102:确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区。
S103:通过查询所述目标索引区,获取所述目标键的目标索引项。
S104:根据所述目标索引项,获得数据区中与所述目标键对应的数据。
在本申请实施例中,存储介质中以形式为Key-Value的形式存储,换言之,存储介质中存储有多个键,并且存储有多个键对应的多个值,其中,每个值都有一个对应的键。
在本申请所属的技术领域中,Key,称为键,也称为主键;Value为键对应的值,同时也可称为数据、数据内容。在下述描述中,值,数据和数据内容均指Value,数据项中包括Value。
进一步,本申请实施例中的存储介质可以是网络之间互连的协议(英文:InternetProtocol;简称:IP)硬盘,智能硬盘等,对此本申请不做限制。
其中,IP硬盘为通过IP协议提供物理通信的硬盘,应用层之间通过KV接口来传输数据。
可选的,在S101之前,该方法还包括:
为与所述键类型相同的至少一个键分配所述目标索引区。
目前的存储介质在存储键值对的时候,并不保存KV数据类型关系,也就是键的类型,所以当上层应用仅需要获得某一类型,或较少数据时,IP硬盘仍然不得不通过遍历整个索引区来查找目标索引。
然而,遍历存储介质查找数据时,能够找到应用层指定类型的数据,那么说明键值对的键类型信息,其实已经被持久化到存储介质中了。同时,应用层中的数据类型确定后并不会随意更改,所以,在本申请实施例中,为了方便快速获得所需要的数据,可以在分配索引区的时候,就为键类型相同的至少一个键分配便于连续查找的目标索引区。
在具体实现过程中,若使用IP硬盘作为存储介质,由于IP硬盘中包括磁盘区域和内存区域,因此目标索引区可以在IP硬盘中的内存区域,也可以在IP硬盘中的磁盘区域中分配一段区域作为索引区。本申请所属技术人员可以根据实际需要来进行设置,本申请不作具体的限制。
在本申请实施例中,目标索引区中包括多个单元,且在具体实现过程中,为避免遗漏索引项,目标索引区中单元的数量应大于或等于至少一个键的数量,例如至少一个键具体为50个键,那么目标索引区中单元的数量可以为50个,51个,139个等。
其中,键类型为逻辑上划分的类型,由用户定义,用户根据自己的需要和喜好来划分数据类型。例如用户通过人机交互界面配置50个键分别为共享和私有两个类型。或者可以根据应用的类型来划分键类型。例如:在100个KV数据中,第2、4、89、73、29、56个数据为应用A运行所需的数据,第45、94、14、49个数据为应用B所需的数据,其余的90个数据均为应用C运行所需的数据,那么该100个KV数据的键就被划分为3个键类型。
下面,为了清楚说明如何为键类型相同的至少一个键分配目标索引区,将列举两种方法来详细说明,在具体实现过程中,包括但不限于以下两种。
第一种:
为每种KV数据预分配索引区,且为每种键类型相同的KV数据分配的索引区大小是固定的。
以键类型有2种为例来进行介绍,假设键类型有type1和type2两种,那么为type1类型的KV数据分配大小固定的type1索引区,以及为type2的KV数据分配大小固定的type2索引区。在具体实现过程中,为每种类型分配的索引区,大小可以相同也可以不相同。并且所分配的各个索引区可以连续也可以不连续,如type1目标索引区的终止地址0000:0010,那么当type2目标索引区的起始地址为0000:0011时,type1索引区和type2索引区连续,当type2索引区的起始地址不为0000:0011时,则两个索引区就不连续。本申请所属技术人员可以根据实际需要来进行设置,本申请不作具体的限制。
举例来说,假设type1的索引区和type2的索引区连续,且大小相同,均包括5个单元,如图2所示。
可见,在第一种分配方式下,逻辑上将相同类型的KV数据的索引存放单元组织到可以连续遍历的区域内,在需要获取数据,也就需要获取值时,只需要确定目标键的类型,在对应连续的目标索引区中遍历获取目标键的索引项,就能够获取值,避免了遍历整个KV数据的索引区,因此提高了数据处理的能力。
第二种:
写入一种类型的KV数据,分配一个索引块,当分配的索引块无法继续存入索引时,再次分配新的索引块,最后用索引的元数据来记录写有相同键类型的索引块。
为了方便说明,同样以键类型有type1和type2为例来进行介绍。如图3所示,假设首先存入的是键类型为type1的KV数据,那么为type1的数据分配一索引的元数据为0的索引块。当将要写入的KV数据的键类型为type2时,即使元数据为0的索引块尚未写满,此时也不再往元数据为0的索引块中存入索引项,而是重新为键类型为type2的KV数据分配元数据为1的索引块。当元数据为1的索引块写满,即无法再继续写入索引项时,再次为键类型为type2的KV数据分配元数据为2的索引块,以便继续写入后续数据的索引项。接下来,当存入的数据变为type1类型的数据时,不再往元数据为2的索引块中写入索引项。此时可以重新为键类型为type1的KV数据分配元数据为3的索引块来写入新的type1的KV数据的索引项。当然为了节约存储空间,也可以继续写入元数据为0的索引块中,直到写满索元数据为0的索引块后,分配元数据为3的索引块接着写入后续type1的KV数据的索引项。
在完成索引项写入后,记录下存储有键类型为type1的KV数据的索引项的元数据为0和4,而存储有键类型为type2的KV数据的索引项的元数据为2和3。
在具体实现过程中,索引的元数据可以使用指针、地址等,本申请所属技术人员可以根据实际需要来进行设置,本申请不做限制。
在第二种分配方式中,键类型相同的KV数据的索引项存储的索引块,物理地址并不一定连续的,但是通过索引的元数据,仍然可以通过逻辑地址或逻辑关系连续遍历键类型相同的索引项,所以在获取数据时避免了遍历整个KV数据的索引区,因此提高了数据处理的能力。
进一步,在本申请实施例中,在S101获得目标键之前,还包括:
在所述数据区中写入N个数据项。
具体来讲,N为正整数,如4、8、390等,对N个取值本申请不做限制。在获得目标键之前,需要先在数据区中写入N个数据项。N个数据项在数据区中可以写入地址不连续的区域,也可以写入地址连续的区域,本申请对此不做限制,本申请所属技术人员可以根据实际需要来进行设置。
进一步,若使用的存储介质有内存区域和磁盘区域,当索引区在内存区域中时,由于内存区域中的数据掉电后会丢失,所以为了在上电后能够重新建立索引区,数据区中N个数据项中的每一个数据项,均包括键以及对应的数据,也就是说,在数据区内,均以Key-Value的结构形式写入数据;而当索引区在磁盘区域中时,磁盘中的数据掉电后不会丢失,那么数据区中N个数据项中的每一个数据项可以仅包括与键对应的数据,当然,也可以同时包括键,对此本申请不做限制。
接下来,在写入N个数据项之后,还需要将N个数据项的索引项写入索引区,因此,在本申请实施例中,还包括:
将所述N个数据项中,键类型相同的M个数据项的M个索引项写入所述目标索引区,其中,所述M个数据项中的每个数据项对应所述M个索引项中的一个索引项,所述M个索引项包括所述目标索引项。
首先,2≤M≤N,且M为整数,例如当N为100时,M可以为2到100间的任一整数,2、50或100都可以,对于M个取值,本申请同样不做限制。
进一步,为了提高数据处理的效率,避免遍历整个索引区,在本申请实施例中,将键类型相同的M个数据项的M个索引项写入目标索引区,其中,M个数据项中的每个数据项对应M个索引项中的一个索引项。换言之,键类型相同的M个KV数据对应的M个索引项写入能够连续遍历的目标索引区,那么,如果确认了目标键的键类型后,就可以直接在对应的目标索引区内进行遍历,而不再需要遍历整个索引区。
具体来讲,每一个索引项均包括键Key和对应数据项在数据区中的偏移量。其中,键Key用于标识通过该索引项索引到的数据具体为哪个键的数据,而偏移量则用于表示对应数据在数据区中的偏移地址,根据偏移量可以找到键Key对应的数据位置。
举例来说明,假设以第一种分配索引区的方式为即将存入的键类型为type1和type2的KV数据分配索引区,且索引区在内存区域中。如图4所示,首先为键类型为type1的数据分配索引区1,索引区1中包括5个单元。在连续的区域内,为键类型为type2的数据分配索引区2,索引区2中包括3个单元。接着,在数据区中存入两种类型的数据项,由于索引区在内存区域中,因此存入的数据项需包括键和对应的数据。其中,图4中的索引项Key1+offset1(type1)表示第一个键和第一个键对应的数据在数据区中的偏移量,且Key1的键类型为type1,而对应的数据项Key1-Value1则表示第一个键以及对应的数据,其他数据项和索引项表示的含义也类似,在此就不一一赘述了。
以存储介质为IP硬盘为例,假设写入的数据项一共为7个,其中,键类型为type1的包括4个,键类型为type2的包括3个。写入数据后,再将键类型相同的索引项,即键和偏移量写入对应的索引区1或索引区2中。
再举另一个例子来说明,假设以第二种分配索引区的方式分配索引区,且索引区在磁盘区域中。如图5所示,写入的第1个键Key1的键类型为type1,对应的数据为Value1,那么在索引区中分配索引的元数据为0的索引块,并将索引项Key1+offset1写入索引块0中的第一个单元,写入的第2个键Key2的键类型为type2,对应的数据为Value2,那么在索引区中分配索引的元数据为1的索引块,并将索引项Key2+offset2写入索引块1中的第一个单元,写入的第3个键Key3的键类型为type1,对应的数据为Value3,为了节约空间资源,将索引项Key3+offset3写入索引块0中的第二个单元即可。后续数据中,键Key4和Key7的键类型为type1,对应的数据为Value4和Value7,Key5和Key6的键类型为type2,对应的数据为Value5和Value6,以同样的方式将索引项写入索引区。每个索引块能够写入3个索引项。最后,记录type1的索引项在索引块0和索引块2中,而type2的索引项在索引块1。
在本申请实施例中,分配目标索引区以及写入N个数据项均在S101之前执行,但在具体实现过程中,可以先分配目标索引区,再写入N个数据项,如第一种分配目标索引区的方法,也可以先写入N个数据项,再分配目标索引区,本申请不做限制。但是无论是哪种实施方式,在实施前,均需要初始化存储设备。
由以上描述可以看出,在本申请实施例中,由于将键类型相同的至少一个键的索引项写入连续的区域,从而使得在遍历相同类型的KV数据时,不再需要遍历整个索引区,有利于提高数据处理能力。
下面对S101到S104进行介绍。
首先,执行S101,获得目标键。
在本申请实施例中,用户通过对应用层的操作来选择或输入目标键,接着应用层将目标键传入存储介质。
接着执行S102:确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区。
由于在本申请实施例中,已经将与目标键的键类型相同的KV数据的索引项写入了连续的索引区,因此,为了快速获得目标键对应的数据,需要确定出目标键的键类型所对应的目标索引区。
接下来执行S103:通过查询所述目标索引区,获取所述目标键的目标索引项,就可以获得需要的数据。
在上述描述中,与现在技术相比,不再需要遍历整个索引区来获取目标索引项,而仅需要在目标索引区的相同键类型的多个索引项中遍历即可获取目标索引项。
最后,执行S104:根据所述目标索引项,获得数据区中与所述目标键对应的数据。
目标索引项中包括目标键和对应数据在数据区内的偏移量,因此,当获取到目标索引项后,根据目标索引项中的偏移量,就可以确定对应数据在数据区内的位置,从而获取对应的数据。
下面通过几个具体实施例描述本申请数据处理的完整步骤。
例1,请参考图6a,假设用户需要查找存储介质中关于Jobs Steven的资料,那么具体执行步骤如下:
S201:获得应用层传入的目标键“Steven Jobs”。
S202:确定目标键“Steven Jobs”的键类型对应的目标索引区为内存索引区中的索引的元数据为12、13、16的索引块。
S203:通过查询目标索引区,获取目标键的目标索引项“Steven Jobs:offset(673E)”。
S203中获取“Steven Jobs:offset(673E)”表示键为Steven Jobs,对应的数据项的偏移量为673E。
S204:根据目标索引项中的偏移量673E读取目标键“Steven Jobs”对应的数据“You can search http://zh.wikipedia.org/wiki/Steven Jobs”。
接下来存储介质可以将数据项传入应用层提供给用户,以便用户通过链接网页http://zh.wikipedia.org/wiki/Steven Jobs搜索到需要的资料。存储介质也可以直接通知连接的电子设备链接网页http://zh.wikipedia.org/wiki/Steven Jobs,然后由连接的电子设备将网页呈现给用户。
例2,请参考图6b,假设用户需要查找存储介质中同事组成员的手机号,那么具体执行步骤如下:
S301:获得应用层传入的键类型“colleagues”。
S302:确定键类型“colleagues”对应的目标索引区。
S303:遍历键类型“colleagues”对应的目标索引区,并根据目标索引区中的索引项依次读取对应的每一个数据项。
S304:将依次读取到的数据项传入应用层。
具体来说,在向应用层传入数据时,根据用户的需求来传输数据,例如用户仅需要手机号,那么仅将遍历读取到的手机号传入应用层,如用户需要浏览查看同事组的成员以及手机号,那么就需要将键,即成员名称一起传入应用层。
例3,请参考图6c,假设用户需要删除存储设备中同事组成员“张三”的手机号,那么具体执行步骤如下:
S401:获得应用层传入的目标键“张三”。
S402:确定目标键“张三”的键类型“colleagues”对应的目标索引区。
S403:查询键类型“colleagues”对应的目标索引区,获取目标键“张三”对应的目标索引项。
S404:根据目标索引项中的偏移量读取目标键“张三”对应的数据“180********”。
S405:删除数据“180********”。
S406:删除目标键“张三”对应的目标索引项。
实施例二:
请参考图7,本申请实施例提供了一种数据处理装置,包括:
获得单元101,用于获得目标键;
确定单元102,用于确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;
获取单元103,用于通过查询所述目标索引区,获取所述目标键的目标索引项;
数据获得单元104,用于根据所述目标索引项,获得数据区中与所述目标键对应的数据。
进一步,本申请实施例中的数据处理装置还可以包括:
分配单元,用于在所述获得单元获得目标键之前,为与所述键类型相同的至少一个键分配包含所述目标索引区。
数据写入单元,用于在获得单元获得目标键之前,在所述数据区中写入N个数据项,N为正整数。
索引写入单元,用于在所述数据写入单元在所述数据区中写入N个数据项之后,将所述N个数据项中,键类型相同的M个数据项的M个索引项写入所述目标索引区,其中,所述M个数据项中的每个数据项对应所述M个索引项中的一个索引项,所述M个索引项包括所述目标索引项,2≤M≤N,且M为整数。
在具体实现过程中,由于IP硬盘中包括磁盘区域和内存区域,因此目标索引区可以在IP硬盘中的内存区域,也可以在IP硬盘中的磁盘区域中分配一段区域作为索引区,本申请所属技术人员可以根据实际需要来进行设置,本申请不作具体的限制。
由于本实施例二与实施例一基于同一发明构思,因此重复之处就不再一一赘述了。
实施例三:
本申请实施例提供一种存储设备。图8所示的存储设备涉及到的术语的含义以及具体实现,可以参考前述图1至图7以及实施例的相关描述。
请参考图8所示,该存储设备包括:
接口201,用于获得目标键;
处理器202,用于确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;通过查询所述目标索引区,获取所述目标键的目标索引项;根据所述目标索引项,获得数据区中与所述目标键对应的数据。
可选的,处理器202还用于:
在所述获得目标键之前,为与所述键类型相同的至少一个键分配所述目标索引区。
可选的,处理器202还用于:
在所述获得目标键之前,在所述数据区中写入N个数据项,N为正整数。
可选的,处理器202还用于:
在所述数据区中写入N个数据项之后,将所述N个数据项中键类型相同的M个数据项的M个索引项写入所述目标索引区,其中,所述M个数据项中的每个数据项对应所述M个索引项中的一个索引项,所述M个索引项包括所述目标索引项,2≤M≤N,且M为整数。
进一步,本申请实施例中的存储设备还包括磁盘203,用于存储数据。存储设备还包括内存204,用于暂时存放处理器202的运算数据,以及与磁盘203或外部存储器的交换数据。
在具体实现过程中,目标索引区可以在存储设备中的内存204,也可以在磁盘203中分配的区域中。本申请所属技术人员可以根据实际需要来进行设置,本申请不作具体的限制。
其中,在图8中,总线架构(用总线200来代表),总线200可以包括任意数量的互联的总线和桥,总线200将包括由处理器202代表的一个或多个处理器、接口201代表的一个或多个接口、磁盘203以及内存204链接在一起。总线200还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
在具体实现过程中,接口201可以SAS接口,SATA接口或以太网接口等。当存储设备具体为IP硬盘时,接口201具体为以太网接口,通过以太网协议实现存储设备与其他外部设备、网络或应用交互数据。
处理器202负责管理总线200和通常的处理,而内存204可以被用于存储处理器202在执行操作时所使用的数据。
前述实施例中描述的数据处理执行过程的各种变化方式和具体实例同样适用于本实施例的存储设备,通过前述对数据处理方法和数据处理装置执行过程的详细描述,本领域技术人员可以清楚的知道本实施例中存储设备的实施方法,所以为了说明书的简洁,在此不再详述。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
首先获得目标键;接着确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;然后通过查询所述目标索引区,获取所述目标键的目标索引项;最后根据所述目标索引项,获得数据区中与所述目标键对应的数据。因此,在本申请的实施例中,在获得了目标键后,根据目标键的键类型,在对应的目标索引区中查询获得目标索引项,最后根据目标索引项在数据区中获得需要的数据。所以,在本申请提供的技术方案中,将遍历范围缩小至一个键类型的目标索引区,避免了遍历整个索引区寻找目标索引项,有利于提高数据处理的效率和降低系统资源的耗费。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种数据处理方法,应用于存储介质,所述存储介质存储有多个键以及各个键Key对应的值Value,其特征在于,包括:
获得目标键;
确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;
通过查询所述目标索引区,获取所述目标键的目标索引项;
根据所述目标索引项,获得数据区中与所述目标键对应的数据;
其中,在所述获得目标键之前,所述方法还包括:
为与所述键类型相同的至少一个键分配所述目标索引区,且在所述目标索引区无法存储新的索引时,为所述目标索引区分配新的索引块。
2.如权利要求1所述的方法,其特征在于,在所述获得目标键之前,所述方法还包括:
在所述数据区中写入N个数据项,N为正整数。
3.如权利要求2所述的方法,其特征在于,在所述数据区中写入N个数据项之后,所述方法还包括:
将所述N个数据项中,键类型相同的M个数据项的M个索引项写入所述目标索引区,其中,所述M个数据项中的每个数据项对应所述M个索引项中的一个索引项,所述M个索引项包括所述目标索引项,2≤M≤N,且M为整数。
4.如权利要求1-3任一项所述的方法,其特征在于,所述目标索引区在IP硬盘的内存区域中,或在IP硬盘的磁盘区域中。
5.一种数据处理装置,其特征在于,包括:
获得单元,用于获得目标键;
确定单元,用于确定所述目标键所属于的键类型,并确定所述目标键的键类型对应的目标索引区;
获取单元,用于通过查询所述目标索引区,获取所述目标键的目标索引项;
数据获得单元,用于根据所述目标索引项,获得数据区中与所述目标键对应的数据;
分配单元,用于在所述获得单元获得目标键之前,为与所述键类型相同的至少一个键分配包含所述目标索引区,且在所述目标索引区无法存储新的索引时,为所述目标索引区分配新的索引块。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
数据写入单元,用于在获得单元获得目标键之前,在所述数据区中写入N个数据项,N为正整数。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
索引写入单元,用于在所述数据写入单元在所述数据区中写入N个数据项之后,将所述N个数据项中,键类型相同的M个数据项的M个索引项写入所述目标索引区,其中,所述M个数据项中的每个数据项对应所述M个索引项中的一个索引项,所述M个索引项包括所述目标索引项,2≤M≤N,且M为整数。
8.如权利要求5-7任一项所述的装置,其特征在于,所述目标索引区在IP硬盘的内存区域中,或在IP硬盘的磁盘区域中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410410610.9A CN104182508B (zh) | 2014-08-19 | 2014-08-19 | 一种数据处理方法和数据处理装置 |
PCT/CN2015/087380 WO2016026433A1 (zh) | 2014-08-19 | 2015-08-18 | 一种数据处理方法和数据处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410410610.9A CN104182508B (zh) | 2014-08-19 | 2014-08-19 | 一种数据处理方法和数据处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104182508A CN104182508A (zh) | 2014-12-03 |
CN104182508B true CN104182508B (zh) | 2018-10-30 |
Family
ID=51963547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410410610.9A Active CN104182508B (zh) | 2014-08-19 | 2014-08-19 | 一种数据处理方法和数据处理装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104182508B (zh) |
WO (1) | WO2016026433A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182508B (zh) * | 2014-08-19 | 2018-10-30 | 华为技术有限公司 | 一种数据处理方法和数据处理装置 |
CN105389190B (zh) * | 2015-12-08 | 2019-05-24 | 华为技术有限公司 | 一种操作系统启动的方法、装置及系统 |
CN107003816B (zh) * | 2016-06-14 | 2020-06-26 | 华为技术有限公司 | 数据访问方法和相关装置及系统 |
CN108052290A (zh) * | 2017-12-13 | 2018-05-18 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN108255958B (zh) * | 2017-12-21 | 2022-05-03 | 百度在线网络技术(北京)有限公司 | 数据查询方法、装置和存储介质 |
CN110083416B (zh) * | 2019-03-25 | 2021-10-15 | 华为技术有限公司 | 一种资源加载的方法和装置 |
CN109947709B (zh) * | 2019-04-02 | 2021-10-08 | 北京百度网讯科技有限公司 | 数据存储方法和装置 |
CN110069452B (zh) * | 2019-04-26 | 2020-04-03 | 北京字节跳动网络技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
CN110262755A (zh) * | 2019-06-20 | 2019-09-20 | 福建北峰通信科技股份有限公司 | 一种嵌入式系统的文件存储方法 |
CN111782732B (zh) * | 2020-07-21 | 2024-09-10 | 深圳市腾讯网域计算机网络有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN113268200B (zh) * | 2021-04-27 | 2023-07-14 | 北京控制工程研究所 | 一种基于流机制的航天器安全关键数据高效存储方法 |
CN114489494A (zh) * | 2022-01-13 | 2022-05-13 | 深圳欣锐科技股份有限公司 | 一种外部存储器存储配置参数的存储方法及相关设备 |
CN117149777B (zh) * | 2023-10-27 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122285A (zh) * | 2010-01-11 | 2011-07-13 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN103140840A (zh) * | 2011-09-30 | 2013-06-05 | 华为技术有限公司 | 数据管理的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294710B (zh) * | 2012-02-28 | 2016-08-31 | 北京新媒传信科技有限公司 | 一种数据存取方法和装置 |
CN103049390B (zh) * | 2012-12-14 | 2016-03-09 | 华为技术有限公司 | 应用元数据的数据处理方法及存储系统 |
CN103593477A (zh) * | 2013-11-29 | 2014-02-19 | 华为技术有限公司 | 一种哈希数据库的配置方法和装置 |
CN104182508B (zh) * | 2014-08-19 | 2018-10-30 | 华为技术有限公司 | 一种数据处理方法和数据处理装置 |
-
2014
- 2014-08-19 CN CN201410410610.9A patent/CN104182508B/zh active Active
-
2015
- 2015-08-18 WO PCT/CN2015/087380 patent/WO2016026433A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122285A (zh) * | 2010-01-11 | 2011-07-13 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN103140840A (zh) * | 2011-09-30 | 2013-06-05 | 华为技术有限公司 | 数据管理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104182508A (zh) | 2014-12-03 |
WO2016026433A1 (zh) | 2016-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104182508B (zh) | 一种数据处理方法和数据处理装置 | |
US10545781B2 (en) | Dynamically deployed virtual machine | |
WO2017107414A1 (zh) | 文件操作方法和装置 | |
US9152325B2 (en) | Logical and physical block addressing for efficiently storing data | |
CN108733309B (zh) | 存储管理方法、设备和计算机可读介质 | |
CN108733507A (zh) | 文件备份和恢复的方法和设备 | |
US20180364948A1 (en) | Data Processing Method, Related Device, and Storage System | |
WO2016188280A1 (zh) | 数据库分表的写入方法及装置 | |
US11662907B2 (en) | Data migration of storage system | |
CN112346647B (zh) | 数据存储方法、装置、设备和介质 | |
US9679014B2 (en) | Generating and accessing a data table | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
CN110147203A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
JP2018513454A (ja) | カラム・ストアにおける挿入およびポイント・クエリ・オペレーションの効率的パフォーマンス | |
US10713228B2 (en) | Generating and accessing a data table | |
CN111857557B (zh) | Raid类型转换的方法、设备和计算机程序产品 | |
CN114879907A (zh) | 一种数据分布确定方法、装置、设备及存储介质 | |
CN112748849A (zh) | 用于存储数据的方法、设备和计算机程序产品 | |
US11048417B2 (en) | Method, device and computer program product for storage management | |
CN107463638A (zh) | 离线虚拟机间文件共享方法和设备 | |
CN103970671B (zh) | 用于在存储器中分配管理数据集的系统和方法 | |
US9244630B2 (en) | Identifying and accessing reference data in an in-memory data grid | |
CN115617802A (zh) | 一种全量快照快速生成方法、装置、电子设备及存储介质 | |
US10606822B2 (en) | Dynamically updating metadata | |
CN105516274A (zh) | 基于云平台实现对san通用管理的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |