CN109902092B - 一种数据存储系统的操作方法、装置和移动终端 - Google Patents
一种数据存储系统的操作方法、装置和移动终端 Download PDFInfo
- Publication number
- CN109902092B CN109902092B CN201910133655.9A CN201910133655A CN109902092B CN 109902092 B CN109902092 B CN 109902092B CN 201910133655 A CN201910133655 A CN 201910133655A CN 109902092 B CN109902092 B CN 109902092B
- Authority
- CN
- China
- Prior art keywords
- data
- hash table
- target data
- target
- instruction
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据存储系统的操作方法、装置和移动终端。所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;所述方法包括:接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;对主键进行哈希计算得到关键值;基于所述关键值执行与所述操作指令对应的操作处理。通过本发明实施例,可以实现高效地操作热点数据,在高并发场景下查询数据等。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据存储系统的操作方法、装置和移动终端。
背景技术
在互联网行业中,在整个系统里面,频繁操作的数据往往只占整体数据的一小部分,这一小部分数据,我们称之为热点数据。而这一小部分数据的操作效率,却往往影响整个系统的吞吐量、稳定性以及用户体验。
如何高效地操作(增删改查)这些热点数据,一直是数据存储技术领域的追求。并且,对于传统的数据库,因为在设计上需要提供各种复杂的查询功能,所以单台数据库的并发查询性能并不高,不是很适合直接用在高并发场景。
发明内容
本发明公开了一种数据存储系统的操作方法、装置和移动终端,以解决现有技术中数据操作效率低,不适合高并发场景的问题。
第一方面,本发明提供了一种数据存储系统的操作方法,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;
所述方法包括:
接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;
对主键进行哈希计算得到关键值;
基于所述关键值执行与所述操作指令对应的操作处理。
优选地,所述基于所述关键值执行与所述操作指令对应的操作处理,包括:
根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表;
根据所述关键值从所述多个索引哈希表中确定目标索引哈希表;
基于所述目标数据哈希表执行与所述操作指令对应的操作处理;
反馈操作处理结果;
更新所述热点统计哈希表中的统计信息。
优选地,在所述操作指令为所述数据插入指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述数据插入指令将待插入数据生成符合预设数据结构的第一目标数据;
将所述第一目标数据插入所述目标数据哈希表中;
在所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理之后,还包括:
更新所述目标索引哈希表中的索引信息。
优选地,在所述操作指令为所述数据更新指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述数据更新指令将待更新数据生成符合预设数据结构的第二目标数据;
根据所述第二目标数据更新所述目标数据哈希表。
优选地,在所述操作指令为所述数据删除指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述数据删除指令在所述目标数据哈希表中删除第三目标数据;
在所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理之后,还包括:
更新所述目标索引哈希表中的索引信息。
优选地,在所述操作指令为所述数据查询指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述查询指令从所述目标数据哈希表中查询第四目标数据。
优选地,所述方法还包括:
在从所述目标数据哈希表中未查询到所述第四目标数据且内存中存在只读数据哈希表的情况下,从所述只读数据哈希表中查询所述第四目标数据;
在从所述只读数据哈希表中查询到所述第四目标数据的情况下,将所述第四目标数据存储至所述目标数据哈希表中。
优选地,所述方法还包括:
在从所述只读数据哈希表中未查询到所述第四目标数据,或内存中不存在所述只读数据哈希表的情况下,从所述数据文件中查询所述第四目标数据;
在从所述数据文件中查询到所述第四目标数据的情况下,将所述第四目标数据存储到所述目标数据哈希表中;
修改所述第四目标数据的记录状态。
优选地,所述从所述数据文件中查询所述第四目标数据,包括:
获取所述目标索引哈希表的读锁;
在获取到所述读锁的情况下,从所述目标索引哈希表中查找所述第四目标数据对应的索引信息;
根据查找到的所述索引信息从所述多个数据文件中确定目标数据文件;
从所述目标数据文件中查找所述第四目标数据。
第二方面,本发明提供了一种数据存储系统的操作装置,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;
所述装置包括:
操作指令接收模块,用于接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;
关键值计算模块,用于对主键进行哈希计算得到关键值;
操作处理执行模块,用于基于所述关键值执行与所述操作指令对应的操作处理。
优选地,所述操作处理执行模块包括:
目标数据哈希表确定子模块,用于根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表;
目标索引哈希表确定子模块,用于根据所述关键值从所述多个索引哈希表中确定目标索引哈希表;
操作处理子模块,用于基于所述目标数据哈希表执行与所述操作指令对应的操作处理;
结果反馈子模块,用于反馈操作处理结果;
热点统计哈希表更新子模块,用于更新所述热点统计哈希表中的统计信息。
优选地,在所述操作指令为所述数据插入指令的情况下,所述操作处理子模块包括:
第一目标数据生成单元,用于根据所述数据插入指令将待插入数据生成符合预设数据结构的第一目标数据;
插入单元,用于将所述第一目标数据插入所述目标数据哈希表中;
在所述操作处理子模块之后,还包括:
目标索引哈希表更新子模块,用于更新所述目标索引哈希表中的索引信息。
优选地,在所述操作指令为所述数据更新指令的情况下,所述操作处理子模块包括:
第二目标数据生成单元,用于根据所述数据更新指令将待更新数据生成符合预设数据结构的第二目标数据;
更新单元,用于根据所述第二目标数据更新所述目标数据哈希表。
优选地,在所述操作指令为所述数据删除指令的情况下,所述操作处理子模块包括:
删除单元,用于根据所述数据删除指令在所述目标数据哈希表中删除第三目标数据;
在所述操作处理子模块之后,还包括:
目标索引哈希表更新子模块,用于更新所述目标索引哈希表中的索引信息。
优选地,在所述操作指令为所述数据查询指令的情况下,所述操作处理子模块包括:
第一查询单元,用于根据所述查询指令从所述目标数据哈希表中查询第四目标数据。
优选地,所述装置还包括:
第二查询单元,用于在从所述目标数据哈希表中未查询到所述第四目标数据且内存中存在只读数据哈希表的情况下,从所述只读数据哈希表中查询所述第四目标数据;
第一存储单元,用于在从所述只读数据哈希表中查询到所述第四目标数据的情况下,将所述第四目标数据存储至所述目标数据哈希表中。
优选地,所述装置还包括:
第三查询单元,用于在从所述只读数据哈希表中未查询到所述第四目标数据,或不存在所述只读数据哈希表的情况下,从所述数据文件中查询所述第四目标数据;
第二存储单元,用于在从所述数据文件中查询到所述第四目标数据的情况下,将所述第四目标数据存储到所述目标数据哈希表中;
记录状态修改单元,用于修改所述第四目标数据的记录状态。
优选地,所述第三查询单元包括:
读锁获取子单元,用于获取所述目标索引哈希表的读锁;
索引信息查找子单元,用于在获取到所述读锁的情况下,从所述目标索引哈希表中查找所述第四目标数据对应的索引信息;
目标数据文件确定子单元,用于根据查找到的所述索引信息从所述多个数据文件中确定目标数据文件;
查询子单元,用于从所述目标数据文件中查找所述第四目标数据。
第三方面,本发明提供了一种移动终端,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述的数据存储系统的操作方法的步骤。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现所述的数据存储系统的操作方法的步骤。
相对于现有技术,本发明实施例包括以下优点:
数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;接收针对数据存储系统的操作指令;其中操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;对主键进行哈希计算得到关键值;基于关键值执行与操作指令对应的操作处理。由于采用数据哈希表存储近期写入数据和热点数据,可以使热点数据大概率地在内存中被查询到,即提高了查询效率。采用多个数据哈希表和多个索引哈希表可以使数据存储更分散,减少哈希冲突的发生。采用热点统计哈希表记录数据对应的操作次数,从而可以根据热点统计哈希表确定热点数据,并淘汰热点统计哈希表中变冷的数据,防止冷却的数据占用内存资源。通过本发明实施例,可以实现高效地操作热点数据,在高并发场景下查询数据等。
附图说明
图1a是本发明的一种数据存储系统的操作方法的步骤流程图;
图1b是本发明的一种数据存储系统的结构示意图;
图1c是本发明的内存数据结构的结构示意图;
图1d是本发明的磁盘数据结构的结构示意图;
图2是本发明的数据插入的步骤流程图;
图3是本发明的数据更新的步骤流程图;
图4是本发明的数据删除的步骤流程图;
图5是本发明的数据查询的步骤流程图;
图6是本发明的一种数据存储系统的操作装置的结构框图;
图7是本发明的一种移动终端的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1a,示出了本发明的一种数据存储系统的操作方法的步骤流程图。所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件。
本实施例中,参照图1b所示的数据存储系统,数据存储系统可以分为内存和磁盘;其中内存中设置有数据哈希表、索引哈希表和热点统计哈希表,磁盘中设置有数据文件和索引文件。
参照图1c所示的内存数据结构,内存中可以设置有热点统计哈希表、数据哈希表集和索引哈希表集,其中数据哈希表集包括多个数据哈希表,索引哈希表集包括多个索引哈希表。数据哈希表中存储近期写入数据和热点数据。近期写入数据和热点数据的数据结构可以是key=hash(主键),value={data,record_status}。其中,hash(主键)是采用murmur哈希算法对主键做哈希计算得到关键值;data是数据内容;record_status是记录状态。记录状态可以如default(默认),reload(重载入)等。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
索引哈希表中存储全量的索引信息。索引信息的结构可以是key=hash(主键),value={data_file_name,offset,length}。其中,data_file_name为数据文件名,表示数据内容被存储在哪个数据文件中;offset表示数据内容在文件中的偏移量;length表示数据内容的长度。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
热点统计哈希表中存储的是访问量高的数据的统计信息。统计信息的结构可以是key=hash(主键),value={ops_count}。其中,ops_count是记录被操作次数,数值越大表示被查询或修改的频率越高,可以作为衡量热点数据的一个指标。
可以对数据哈希表和索引哈希表进行命名并编号。具体地,数据哈希表命名为数据哈希表_表编号,索引哈希表命名为索引哈希表_表编号。其中,表编号为正整数。例如,数据哈希表_1、数据哈希表_2,索引哈希表_1、索引哈希表_2。
采用多个数据哈希表,可以减少单个数据哈希表存储的数据量,并且可以降低哈希碰撞的概率,提高读写性能。采用多个索引哈希表,可以减少单个索引哈希表存储的索引信息,并且可以降低哈希碰撞的概率。
参照图1d所示的磁盘数据结构,磁盘中可以设置有索引文件组和多个数据文件组,其中索引文件组中包括多个索引文件,每个数据文件组中均包括多个数据文件。可以对数据文件和索引文件进行命名并编号。具体地,数据文件可以命名为数据文件_表编号_文件序号,索引文件可以命名为索引文件_表编号。其中,表编号为正整数。例如,数据文件_1_1、数据文件_1_2,索引文件_1、索引文件_2。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
索引文件存储的是索引哈希表中的索引信息;数据文件存储的是数据哈希表中的数据。例如,数据文件组1里的数据文件_1_1存储的是数据哈希表_1的部分数据;索引文件_1存储的是索引哈希表_1的索引信息。数据哈希表可以设置为16个,数据文件组可以对应设置为16组。索引哈希表可以设置为16个,索引文件可以对应设置为16个。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
采用多个数据文件和多个索引文件,可以控制单个文件的大小,提高数据整理速度,以及根据索引哈希表读取数据的性能。
所述方法包括:
步骤101,接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种。
本实施例中,接收针对数据存储系统的操作指令。具体地,接收针对数据存储系统的数据插入指令;接收针对数据存储系统的数据更新指令;接收针对数据存储系统的数据删除指令;接收针对数据存储系统的数据查询指令。本发明实施例对操作指令不作详细限定,可以根据实际情况进行设置。
步骤102,对主键进行哈希计算得到关键值。
本实施例中,基于数据存储系统的结构,采用murmur哈希算法对主键进行哈希计算,得到关键值key。murmur哈希算法可以使计算出的关键值key更离散,发生哈希冲突的情况更少。
对于哈希冲突,在内存中采用红黑树数据结构存储冲突的数据(包括哈希值、key值、value值、指向下一个节点的引用等)。在发生哈希冲突时,红黑树在最坏情况下的查询时间复杂度是O(log N),性能比B树或B+树要高。
步骤103,基于所述关键值执行与所述操作指令对应的操作处理。
本实施例中,得到关键值key后,根据关键值key执行对应的数据插入、数据更新、数据删除、数据查询等操作处理。具体可以包括如下:
步骤1031,根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表。
本实施例中,多个数据哈希表中每个数据哈希表的关键值不同,得到关键值后,可以根据关键值key和数据哈希表的数量得到表编号,根据表编号确定目标数据哈希表。例如,数据哈希表为16个,用关键值key对16取模得到表编号1,则确定数据哈希表_1为目标数据哈希表。
步骤1032,根据所述关键值从所述多个索引哈希表中确定目标索引哈希表。
本实施例中,与数据哈希表类似,多个索引哈希表中每个索引哈希表的关键值不同,得到关键值后,可以根据关键值key和索引哈希表的数量得到表编号,根据表编号确定目标索引哈希表。例如,索引哈希表为16个,用关键值key对16取模得到表编号1,则确定索引哈希表_1为目标索引哈希表。
步骤1033,基于所述目标数据哈希表执行与所述操作指令对应的操作处理。
本实施例中,在目标数据哈希表中进行数据插入、数据更新、数据删除、数据查询等操作处理。
步骤1034,反馈操作处理结果。
本实施例中,反馈数据插入结果、数据更新结果、数据删除结果、数据查询结果等。
步骤1035,更新所述热点统计哈希表中的统计信息。
本实施例中,在执行与操作指令对应的操作处理后,数据哈希表中的数据可能发生了变化,根据数据变化更新热点统计哈希表中的统计信息。例如,在数据哈希表中进行了数据插入操作,在热点统计哈希表中增加插入数据的统计信息;在数据哈希表中进行了数据更新操作,在热点统计哈希表中修改更新数据的统计信息;在数据哈希表中进行了数据删除操作,在热点统计哈希表中删除该数据的统计信息;在数据哈希表中进行了数据查询操作,在热点统计哈希表中修改被查询数据的统计信息,如查询次数。本发明实施例对统计信息不作详细限定,可以根据实际情况进行设置。
本发明实施例对步骤1031、1032的顺序不作详细限定,对步骤1034、1035的顺序不作详细限定,可以根据实际情况进行设置。
通过本发明实施例,可以实现高效地操作热点数据,在高并发场景下查询数据等。
参照图2,示出了本发明的数据插入的步骤流程图,具体包括如下步骤:
步骤201,接收针对所述数据存储系统的数据插入指令。
步骤202,对主键进行哈希计算得到关键值。
步骤203,根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表。
例如,根据关键值key确定目标数据哈希表为数据哈希表_1。
步骤204,根据所述关键值从所述多个索引哈希表中确定目标索引哈希表。
例如,根据关键值key确定目标索引哈希表为索引哈希表_1。
步骤205,根据所述数据插入指令将待插入数据生成符合预设数据结构的第一目标数据。
例如,将插入数据data1根据预设数据结构value={data,record_status}生成第一目标数据value1。
步骤206,将所述第一目标数据插入所述目标数据哈希表中。
例如,将第一目标数据value1插入数据哈希表_1中。
步骤207,反馈数据插入结果。
步骤208,更新所述热点统计哈希表中的统计信息。
例如,在热点统计哈希表中添加第一目标数据value1的统计信息。由于第一目标数据为新插入数据,也可以不在热点统计哈希表中添加第一目标数据的统计信息,待第一目标数据为热点数据后,再在热点统计哈希表中添加第一目标数据的统计信息。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
步骤209,更新所述目标索引哈希表中的索引信息。
例如,在索引哈希表_1中添加第一目标数据value1的索引信息。
本实施例对步骤207-209的顺序不作详细限定,可以根据实际情况进行设置。
通过本发明实施例,可以实现快速插入数据的操作,提高了数据操作的效率。
参照图3,示出了本发明的数据更新的步骤流程图,具体包括如下步骤:
步骤301,接收针对所述数据存储系统的数据更新指令。
步骤302,对主键进行哈希计算得到关键值。
步骤303,根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表。
例如,根据关键值key确定目标数据哈希表为数据哈希表_2。
步骤304,根据所述关键值从所述多个索引哈希表中确定目标索引哈希表。
例如,根据关键值key确定目标索引哈希表为数据哈希表_2。
步骤305,根据所述数据更新指令将待更新数据生成符合预设数据结构的第二目标数据。
例如,将待更新数据data2根据预设数据结构value={data,record_status}生成第二目标数据value2。
步骤306,根据所述第二目标数据更新所述目标数据哈希表。
例如,采用value2替换数据哈希表_2中的旧数据,即将旧数据覆盖掉。
步骤307,反馈数据更新结果。
步骤308,更新所述热点统计哈希表中的统计信息。
例如,在热点统计哈希表中,将value2对应的ops_count加1。
本实施例对步骤307、308的顺序不作详细限定,可以根据实际情况进行设置。
通过本发明实施例,可以实现快速更新数据的操作,提高了数据操作的效率。
参照图4,示出了本发明的数据删除的步骤流程图,具体包括如下步骤:
步骤401,接收针对所述数据存储系统的数据删除指令。
步骤402,对主键进行哈希计算得到关键值。
步骤403,根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表。
例如,根据关键值key确定目标数据哈希表为数据哈希表_3。
步骤404,根据所述关键值从所述多个索引哈希表中确定目标索引哈希表。
例如,根据关键值key确定目标索引哈希表为索引哈希表_3。
步骤405,根据所述数据删除指令在所述目标数据哈希表中删除第三目标数据。
例如,在数据哈希表_3中删除第三目标数据value3。
步骤406,反馈删除处理结果。
步骤407,更新所述热点统计哈希表中的统计信息。
例如,在热点统计哈希表中,删除第三目标数据value3对应的统计信息。
步骤408,更新所述目标索引哈希表中的索引信息。
例如,在索引哈希表_3中,删除第三目标数据value3对应的索引信息。
本实施例对步骤406-408的顺序不作详细限定,可以根据实际情况进行设置。
通过本发明实施例,可以实现快速删除数据的操作,提高了数据操作的效率。
参照图5,示出了本发明的数据查询的步骤流程图,具体包括如下步骤:
步骤501,接收针对所述数据存储系统的数据查询指令。
步骤502,对主键进行哈希计算得到关键值。
步骤503,根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表。
例如,根据关键值key确定目标数据哈希表为数据哈希表_4。
步骤504,根据所述关键值从所述多个索引哈希表中确定目标索引哈希表。
例如,根据关键值key确定目标索引哈希表为索引哈希表_4。
步骤505,根据所述查询指令从所述目标数据哈希表中查询第四目标数据。
例如,从数据哈希表_4中查询第四目标数据value4。数据哈希表_4中可能存在第四目标数据,也可能不存在第四目标数据。在从目标数据哈希表中查询到第四目标数据的情况下,执行步骤506。在从所述目标数据哈希表中未查询到所述第四目标数据且内存中存在只读数据哈希表的情况下,执行步骤5051。
步骤5051,从所述只读数据哈希表中查询所述第四目标数据。
本实施例中,数据存储系统在数据持久化处理时,在内存中会生成只读数据哈希表。如果从目标数据哈希表中未查询到第四目标数据,内存中还存在只读数据哈希表,则从只读数据哈希表中查询第四目标数据。
例如,从数据哈希表_4中未查询到第四目标数据value4,从只读数据哈希表中查询第四目标数据value4。
步骤5052,在从所述只读数据哈希表中查询到所述第四目标数据的情况下,将所述第四目标数据存储至所述目标数据哈希表中。
例如,从只读数据哈希表中查询到第四目标数据value4,将第四目标数据value4存储到数据哈希表_4中。
步骤5053,在从所述只读数据哈希表中未查询到所述第四目标数据,或内存中不存在所述只读数据哈希表的情况下,从所述数据文件中查询所述第四目标数据。
具体地,如果内存中不存在只读数据哈希表,或者从只读数据哈希表中未查询到第四目标数据,则查询从内存转入磁盘,从磁盘的数据文件中查询第四目标数据。具体可以包括如下步骤:
子步骤一,获取所述目标索引哈希表的读锁。
例如,获取索引哈希表_4的读锁。
本实施例中采用锁机制,读锁也称共享锁,多条线程可以同时获得同一资源(比如同一索引哈希表)的读锁,拥有读锁的线程可以同时操作该资源。如果某资源的读锁在已经被某线程获取的情况下,其他线程想获取该资源的写锁,则必须阻塞等待,直到获得读锁的线程释放锁。读锁带有表编号后缀,例如,读锁_4表示索引哈希表_4的读锁。
在查询索引哈希表时加读锁,可以支持多条线程并发查询索引哈希表,提高查询性能。
子步骤二,在获取到所述读锁的情况下,从所述目标索引哈希表中查找所述第四目标数据对应的索引信息。
例如,在索引哈希表_4中查找第四目标数据value对应的索引信息,如果未查找到则执行步骤506。如果查找到第四目标数据value对应的索引信息,则执行下面的子步骤三。
子步骤三,根据查找到的所述索引信息从所述多个数据文件中确定目标数据文件。
例如,根据第四目标数据value对应的索引信息,从多个数据文件中确定目标数据文件为数据文件_4_1。
子步骤四,从所述目标数据文件中查找所述第四目标数据。
例如,从数据文件_4_1中查找第四目标数据value4。
可见,本实施例有效地利用了内存和磁盘的存储空间,并且采用了高效地锁机制,支持高并发场景。
步骤5054,在从所述数据文件中查询到所述第四目标数据的情况下,将所述第四目标数据存储到所述目标数据哈希表中。
例如,从数据文件_4_1中查找到第四目标数据value4,将第四目标数据value4存储到数据哈希表_4中。也就是说,本实施例在数据查询过程中,如果在内存中查询不到,则会采用“预读”策略,即则从磁盘中读取数据,并缓存到内存中,供后续读取。可以保证热点数据长期驻留在内存中,保证数据操作的高效性。
步骤5055,修改所述第四目标数据的记录状态。
例如,将第四目标数据value4的记录状态修改为重载入reload。
步骤506,反馈数据查询结果。
例如,在查找到第四目标数据value4时,反馈value4;在未查找到value4或者value4的索引信息时,反馈value4不存在。
步骤507,更新所述热点统计哈希表中的统计信息。
例如,在热点统计哈希表中,将value4对应的ops_count加1。
本实施例对步骤506、507的顺序不作详细限定,可以根据实际情况进行设置。
通过本发明实施例,可以提高数据查询效率,支持高并发场景。
综上所述,本发明实施例中,由于采用数据哈希表存储近期写入数据和热点数据,可以在查询使热点数据大概率地在内存中被查询到,即提高了查询效率。采用多个数据哈希表和多个索引哈希表可以使数据存储更分散,减少哈希冲突的发生。采用热点统计哈希表记录数据对应的操作次数,从而可以根据热点统计哈希表确定热点数据,并淘汰热点统计哈希表中变冷的数据,防止冷却的数据占用内存资源。采用锁机制,可以支持高并发场景,提高数据存储系统的操作性能。通过本发明实施例,可以高效地操作热点数据,在高并发场景下查询数据,节省内存资源等。
参照图6,示出了本发明的一种数据存储系统的操作装置的结构框图。
所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;
所述装置包括:
操作指令接收模块601,用于接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;
关键值计算模块602,用于对主键进行哈希计算得到关键值;
操作处理执行模块603,用于基于所述关键值执行与所述操作指令对应的操作处理。
优选地,所述操作处理执行模块包括:
目标数据哈希表确定子模块,用于根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表;
目标索引哈希表确定子模块,用于根据所述关键值从所述多个索引哈希表中确定目标索引哈希表;
操作处理子模块,用于基于所述目标数据哈希表执行与所述操作指令对应的操作处理;
结果反馈子模块,用于反馈操作处理结果;
热点统计哈希表更新子模块,用于更新所述热点统计哈希表中的统计信息。
优选地,在所述操作指令为所述数据插入指令的情况下,所述操作处理子模块包括:
第一目标数据生成单元,用于根据所述数据插入指令将待插入数据生成符合预设数据结构的第一目标数据;
插入单元,用于将所述第一目标数据插入所述目标数据哈希表中;
在所述操作处理子模块之后,还包括:
目标索引哈希表更新子模块,用于更新所述目标索引哈希表中的索引信息。
优选地,在所述操作指令为所述数据更新指令的情况下,所述操作处理子模块包括:
第二目标数据生成单元,用于根据所述数据更新指令将待更新数据生成符合预设数据结构的第二目标数据;
更新单元,用于根据所述第二目标数据更新所述目标数据哈希表。
优选地,在所述操作指令为所述数据删除指令的情况下,所述操作处理子模块包括:
删除单元,用于根据所述数据删除指令在所述目标数据哈希表中删除第三目标数据;
在所述操作处理子模块之后,还包括:
目标索引哈希表更新子模块,用于更新所述目标索引哈希表中的索引信息。
优选地,在所述操作指令为所述数据查询指令的情况下,所述操作处理子模块包括:
第一查询单元,用于根据所述查询指令从所述目标数据哈希表中查询第四目标数据。
优选地,所述装置还包括:
第二查询单元,用于在从所述目标数据哈希表中未查询到所述第四目标数据且内存中存在只读数据哈希表的情况下,从所述只读数据哈希表中查询所述第四目标数据;
第一存储单元,用于在从所述只读数据哈希表中查询到所述第四目标数据的情况下,将所述第四目标数据存储至所述目标数据哈希表中。
优选地,所述装置还包括:
第三查询单元,用于在从所述只读数据哈希表中未查询到所述第四目标数据,或不存在所述只读数据哈希表的情况下,从所述数据文件中查询所述第四目标数据;
第二存储单元,用于在从所述数据文件中查询到所述第四目标数据的情况下,将所述第四目标数据存储到所述目标数据哈希表中;
记录状态修改单元,用于修改所述第四目标数据的记录状态。
优选地,所述第三查询单元包括:
读锁获取子单元,用于获取所述目标索引哈希表的读锁;
索引信息查找子单元,用于在获取到所述读锁的情况下,从所述目标索引哈希表中查找所述第四目标数据对应的索引信息;
目标数据文件确定子单元,用于根据查找到的所述索引信息从所述多个数据文件中确定目标数据文件;
查询子单元,用于从所述目标数据文件中查找所述第四目标数据
本发明实施例提供的装置能够实现图1-5的方法实施例中的各个过程,为避免重复,这里不再赘述。
在本发明实施例中,操作指令接收模块接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;关键值计算模块对主键进行哈希计算得到关键值;操作处理执行模块基于所述关键值执行与所述操作指令对应的操作处理。本发明实施例提供的数据存储系统,可以实现高效地操作热点数据,在高并发场景下查询数据等功能。
图7为实现本发明各个实施例的一种移动终端的硬件结构示意图。
该移动终端700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、处理器710、以及电源711等部件。本领域技术人员可以理解,图7中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,移动终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,处理器710,接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;对主键进行哈希计算得到关键值;基于所述关键值执行与所述操作指令对应的操作处理。
通过本发明实施例,可以实现高效地操作热点数据,在高并发场景下查询数据等。
应理解的是,本发明实施例中,射频单元701可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器710处理;另外,将上行的数据发送给基站。通常,射频单元701包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元701还可以通过无线通信系统与网络和其他设备通信。
移动终端通过网络模块702为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元703可以将射频单元701或网络模块702接收的或者在存储器709中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元703还可以提供与移动终端700执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元703包括扬声器、蜂鸣器以及受话器等。
输入单元704用于接收音频或视频信号。输入单元704可以包括图形处理器(Graphics Processing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元706上。经图形处理器7041处理后的图像帧可以存储在存储器709(或其它存储介质)中或者经由射频单元701或网络模块702进行发送。麦克风7042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元701发送到移动通信基站的格式输出。
移动终端700还包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板7061的亮度,接近传感器可在移动终端700移动到耳边时,关闭显示面板7061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器705还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元706用于显示由用户输入的信息或提供给用户的信息。显示单元706可包括显示面板7061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板7061。
用户输入单元707可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板7071上或在触控面板7071附近的操作)。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器710,接收处理器710发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7071。除了触控面板7071,用户输入单元707还可以包括其他输入设备7072。具体地,其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板7071可覆盖在显示面板7061上,当触控面板7071检测到在其上或附近的触摸操作后,传送给处理器710以确定触摸事件的类型,随后处理器710根据触摸事件的类型在显示面板7061上提供相应的视觉输出。虽然在图7中,触控面板7071与显示面板7061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板7071与显示面板7061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元708为外部装置与移动终端700连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元708可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端700内的一个或多个元件或者可以用于在移动终端700和外部装置之间传输数据。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器709可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器710是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器709内的软件程序和/或模块,以及调用存储在存储器709内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器710可包括一个或多个处理单元;优选的,处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
移动终端700还可以包括给各个部件供电的电源711(比如电池),优选的,电源711可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,移动终端700包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供一种移动终端,包括处理器710,存储器709,存储在存储器709上并可在所述处理器710上运行的计算机程序,该计算机程序被处理器710执行时实现上述数据存储系统的操作方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据存储系统的操作方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (18)
1.一种数据存储系统的操作方法,其特征在于,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;其中,所述数据哈希表中存储近期写入数据和热点数据;所述索引哈希表中存储全量的索引信息;所述热点统计哈希表中存储访问量高的数据的统计信息;
所述方法包括:
接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;
对主键进行哈希计算得到关键值;
基于所述关键值执行与所述操作指令对应的操作处理;
其中,所述基于所述关键值执行与所述操作指令对应的操作处理,包括:
根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表;
根据所述关键值从所述多个索引哈希表中确定目标索引哈希表;
基于所述目标数据哈希表执行与所述操作指令对应的操作处理;
反馈操作处理结果;
更新所述热点统计哈希表中的统计信息。
2.根据权利要求1所述的方法,其特征在于,在所述操作指令为所述数据插入指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述数据插入指令将待插入数据生成符合预设数据结构的第一目标数据;
将所述第一目标数据插入所述目标数据哈希表中;
在所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理之后,还包括:
更新所述目标索引哈希表中的索引信息。
3.根据权利要求1所述的方法,其特征在于,在所述操作指令为所述数据更新指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述数据更新指令将待更新数据生成符合预设数据结构的第二目标数据;
根据所述第二目标数据更新所述目标数据哈希表。
4.根据权利要求1所述的方法,其特征在于,在所述操作指令为所述数据删除指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述数据删除指令在所述目标数据哈希表中删除第三目标数据;
在所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理之后,还包括:
更新所述目标索引哈希表中的索引信息。
5.根据权利要求1所述的方法,其特征在于,在所述操作指令为所述数据查询指令的情况下,所述基于所述目标数据哈希表执行与所述操作指令对应的操作处理,包括:
根据所述查询指令从所述目标数据哈希表中查询第四目标数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在从所述目标数据哈希表中未查询到所述第四目标数据且内存中存在只读数据哈希表的情况下,从所述只读数据哈希表中查询所述第四目标数据;
在从所述只读数据哈希表中查询到所述第四目标数据的情况下,将所述第四目标数据存储至所述目标数据哈希表中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在从所述只读数据哈希表中未查询到所述第四目标数据,或内存中不存在所述只读数据哈希表的情况下,从所述数据文件中查询所述第四目标数据;
在从所述数据文件中查询到所述第四目标数据的情况下,将所述第四目标数据存储到所述目标数据哈希表中;
修改所述第四目标数据的记录状态。
8.根据权利要求7所述的方法,其特征在于,所述从所述数据文件中查询所述第四目标数据,包括:
获取所述目标索引哈希表的读锁;
在获取到所述读锁的情况下,从所述目标索引哈希表中查找所述第四目标数据对应的索引信息;
根据查找到的所述索引信息从所述多个数据文件中确定目标数据文件;
从所述目标数据文件中查找所述第四目标数据。
9.一种数据存储系统的操作装置,其特征在于,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;其中,所述数据哈希表中存储近期写入数据和热点数据;所述索引哈希表中存储全量的索引信息;所述热点统计哈希表中存储访问量高的数据的统计信息;
所述装置包括:
操作指令接收模块,用于接收针对所述数据存储系统的操作指令;其中所述操作指令包括数据插入指令、数据更新指令、数据删除指令和数据查询指令中的至少一种;
关键值计算模块,用于对主键进行哈希计算得到关键值;
操作处理执行模块,用于基于所述关键值执行与所述操作指令对应的操作处理;
其中,所述操作处理执行模块包括:
目标数据哈希表确定子模块,用于根据所述关键值从所述多个数据哈希表中确定待操作的目标数据哈希表;
目标索引哈希表确定子模块,用于根据所述关键值从所述多个索引哈希表中确定目标索引哈希表;
操作处理子模块,用于基于所述目标数据哈希表执行与所述操作指令对应的操作处理;
结果反馈子模块,用于反馈操作处理结果;
热点统计哈希表更新子模块,用于更新所述热点统计哈希表中的统计信息。
10.根据权利要求9所述的装置,其特征在于,在所述操作指令为所述数据插入指令的情况下,所述操作处理子模块包括:
第一目标数据生成单元,用于根据所述数据插入指令将待插入数据生成符合预设数据结构的第一目标数据;
插入单元,用于将所述第一目标数据插入所述目标数据哈希表中;
在所述操作处理子模块之后,还包括:
目标索引哈希表更新子模块,用于更新所述目标索引哈希表中的索引信息。
11.根据权利要求9所述的装置,其特征在于,在所述操作指令为所述数据更新指令的情况下,所述操作处理子模块包括:
第二目标数据生成单元,用于根据所述数据更新指令将待更新数据生成符合预设数据结构的第二目标数据;
更新单元,用于根据所述第二目标数据更新所述目标数据哈希表。
12.根据权利要求9所述的装置,其特征在于,在所述操作指令为所述数据删除指令的情况下,所述操作处理子模块包括:
删除单元,用于根据所述数据删除指令在所述目标数据哈希表中删除第三目标数据;
在所述操作处理子模块之后,还包括:
目标索引哈希表更新子模块,用于更新所述目标索引哈希表中的索引信息。
13.根据权利要求9所述的装置,其特征在于,在所述操作指令为所述数据查询指令的情况下,所述操作处理子模块包括:
第一查询单元,用于根据所述查询指令从所述目标数据哈希表中查询第四目标数据。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第二查询单元,用于在从所述目标数据哈希表中未查询到所述第四目标数据且内存中存在只读数据哈希表的情况下,从所述只读数据哈希表中查询所述第四目标数据;
第一存储单元,用于在从所述只读数据哈希表中查询到所述第四目标数据的情况下,将所述第四目标数据存储至所述目标数据哈希表中。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第三查询单元,用于在从所述只读数据哈希表中未查询到所述第四目标数据,或内存中不存在所述只读数据哈希表的情况下,从所述数据文件中查询所述第四目标数据;
第二存储单元,用于在从所述数据文件中查询到所述第四目标数据的情况下,将所述第四目标数据存储到所述目标数据哈希表中;
记录状态修改单元,用于修改所述第四目标数据的记录状态。
16.根据权利要求15所述的装置,其特征在于,所述第三查询单元包括:
读锁获取子单元,用于获取所述目标索引哈希表的读锁;
索引信息查找子单元,用于在获取到所述读锁的情况下,从所述目标索引哈希表中查找所述第四目标数据对应的索引信息;
目标数据文件确定子单元,用于根据查找到的所述索引信息从所述多个数据文件中确定目标数据文件;
查询子单元,用于从所述目标数据文件中查找所述第四目标数据。
17.一种移动终端,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的数据存储系统的操作方法的步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的数据存储系统的操作方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910133655.9A CN109902092B (zh) | 2019-02-22 | 2019-02-22 | 一种数据存储系统的操作方法、装置和移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910133655.9A CN109902092B (zh) | 2019-02-22 | 2019-02-22 | 一种数据存储系统的操作方法、装置和移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902092A CN109902092A (zh) | 2019-06-18 |
CN109902092B true CN109902092B (zh) | 2020-05-05 |
Family
ID=66945418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910133655.9A Active CN109902092B (zh) | 2019-02-22 | 2019-02-22 | 一种数据存储系统的操作方法、装置和移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902092B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858586B (zh) * | 2020-07-06 | 2024-04-09 | 北京天空卫士网络安全技术有限公司 | 一种数据处理的方法和装置 |
CN111858607A (zh) * | 2020-07-24 | 2020-10-30 | 北京金山云网络技术有限公司 | 数据处理方法、装置、电子设备和计算机可读介质 |
CN111984649A (zh) * | 2020-08-20 | 2020-11-24 | 北京金山云网络技术有限公司 | 数据索引的查找方法、装置和相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449613B1 (en) * | 1999-12-23 | 2002-09-10 | Bull Hn Information Systems Inc. | Method and data processing system for hashing database record keys in a discontinuous hash table |
WO2010016840A1 (en) * | 2008-08-07 | 2010-02-11 | Hewlett-Packard Development Company, L.P. | Providing data structures for determining whether keys of an index are present in a storage system |
CN103336849A (zh) * | 2013-07-24 | 2013-10-02 | 昆明理工大学 | 一种数据库检索系统中提高检索速度的方法及装置 |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN106096023A (zh) * | 2016-06-24 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 数据读取方法、数据写入方法及数据服务器 |
CN109284351A (zh) * | 2018-08-14 | 2019-01-29 | 青海大学 | 一种基于HBase数据库的数据查询方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908236B2 (en) * | 2006-07-20 | 2011-03-15 | International Business Machines Corporation | Using multiple data structures to manage data in cache |
CN103399713B (zh) * | 2013-08-02 | 2016-01-20 | 浙江大学 | 平衡多级存储性能与固态硬盘寿命的数据缓冲方法 |
US20190034427A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Data management system employing a hash-based and tree-based key-value data structure |
CN108280229B (zh) * | 2018-02-26 | 2022-01-25 | 腾讯科技(深圳)有限公司 | 内存数据读写方法和装置 |
-
2019
- 2019-02-22 CN CN201910133655.9A patent/CN109902092B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449613B1 (en) * | 1999-12-23 | 2002-09-10 | Bull Hn Information Systems Inc. | Method and data processing system for hashing database record keys in a discontinuous hash table |
WO2010016840A1 (en) * | 2008-08-07 | 2010-02-11 | Hewlett-Packard Development Company, L.P. | Providing data structures for determining whether keys of an index are present in a storage system |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN103336849A (zh) * | 2013-07-24 | 2013-10-02 | 昆明理工大学 | 一种数据库检索系统中提高检索速度的方法及装置 |
CN106096023A (zh) * | 2016-06-24 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 数据读取方法、数据写入方法及数据服务器 |
CN109284351A (zh) * | 2018-08-14 | 2019-01-29 | 青海大学 | 一种基于HBase数据库的数据查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109902092A (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885574B (zh) | 一种数据查询方法及装置 | |
US12113925B2 (en) | Unread message management method and terminal device | |
CN109885573B (zh) | 一种数据存储系统的维护方法、装置和移动终端 | |
CN107368518B (zh) | 一种通知消息的管理方法及终端、计算机可读存储介质 | |
CN109902092B (zh) | 一种数据存储系统的操作方法、装置和移动终端 | |
CN112084747B (zh) | 一种资源管理方法、装置、电子设备及存储介质 | |
CN112262556B (zh) | 模型文件的管理方法和终端设备 | |
CN108241703B (zh) | 网页数据传输方法和装置 | |
CN111309205B (zh) | 一种应用分享方法、第一电子设备及计算机可读存储介质 | |
CN109189576B (zh) | 基于Redis的请求处理方法、服务器及计算机可读存储介质 | |
CN110688347A (zh) | 文件存储方法、文件存储装置及终端设备 | |
CN111163449B (zh) | 一种应用分享方法、第一电子设备及计算机可读存储介质 | |
CN111026674A (zh) | 一种数据存储方法及电子设备 | |
WO2019137470A1 (en) | Data processing method, electronic device, and computer-readable storage medium | |
CN111163227B (zh) | 一种分享方法及电子设备 | |
CN115167764B (zh) | 数据的读写处理方法、装置、电子设备及存储介质 | |
CN110941398A (zh) | 一种数据存储方法及电子设备 | |
CN108319665B (zh) | Hbase列值查找方法、终端及存储介质 | |
CN111666421B (zh) | 数据处理方法、装置及电子设备 | |
CN111241436A (zh) | 一种数据请求处理方法、装置、终端设备及存储介质 | |
CN111142998A (zh) | 后台应用的分享方法及电子设备 | |
CN111192027B (zh) | 榜单处理方法、装置及计算机可读存储介质 | |
CN111475141B (zh) | 榜单的生成方法、装置及电子设备 | |
CN108446345B (zh) | 一种数据查找方法及移动终端 | |
WO2017206855A1 (zh) | 一种操作系统内部的通信方法、及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |