访问数据存储设备的方法和装置制造方法及图纸

技术编号:16455880 阅读:45 留言:0更新日期:2017-10-25 20:27
本公开提供了一种访问数据存储设备的方法以及相应的装置。其中,所述数据存储设备包括多个存储区域,所述多个存储区域与N*M矩阵中的节点一一对应,其中,N为所述矩阵的行数,M为所述矩阵的列数,N和M均为大于等于1的正整数,所述矩阵的行和列交叉形成所述节点。所述方法包括:通过关键字和与所述矩阵的行对应的第一至少一个哈希函数确定所述矩阵中的一行;通过所述关键字和与所述矩阵的列对应的第二至少一个哈希函数确定所述矩阵中的一列;通过所确定的行和列确定所述矩阵中的一个节点;以及对与所确定的节点相对应的存储区域进行访问。

Method and device for accessing data storage device

The present disclosure provides a method for accessing data storage devices and corresponding devices. Among them, the data storage device includes a plurality of storage areas, the node of the plurality of storage areas and the corresponding N*M matrix, the N matrix for the row number, column number for the M matrix, N and M are positive integers greater than or equal to 1, the matrix rows and columns form the cross node. The method comprises the following steps: using keywords and the rows of the matrix correspond to the first at least one hash function to determine a line of the matrix; through the keyword and the columns of the matrix corresponding to second at least one hash function determines the matrix in a column; determine a node the matrix by the row and column; and the storage area corresponding to the access node.

【技术实现步骤摘要】
访问数据存储设备的方法和装置
本公开涉及计算机
,更具体地,涉及一种访问数据存储设备的方法和装置。
技术介绍
快速高效的数据访问对于计算机系统后台响应速度至关重要。目前对数据存储设备进行数据访问主要是通过红黑树、哈希表或者第三方Key-Value存储工具来实现。其中,哈希表的运算时间复杂度为O(1),理论上耗时是常量,与红黑树相比运算耗时要明显减小;同时,哈希表与第三方Key-Value存储工具相比不需要通过网络套接字进行访问,因而不存在网络耗时以及网络故障风险的问题。但是,在实现本公开构思的过程中,专利技术人发现现有技术中至少存在如下问题:在大数据应用中随着数据量的增加,通过哈希表进行访问时哈希值冲突的概率会随之增长,从而导致数据访问的速度降低。
技术实现思路
有鉴于此,本公开提供了一种能够有效降低通过哈希表进行数据访问时哈希值冲突的概率,同时提高数据访问速度的访问数据存储设备的方法和装置。本公开的一个方面提供了一种访问数据存储设备的方法,所述数据存储设备包括多个存储区域,所述多个存储区域与N*M矩阵中的节点一一对应,其中,N为所述矩阵的行数,M为所述矩阵的列数,N和M均为大于等于1的正整数,所述矩阵的行和列交叉形成所述节点。所述方法包括:通过关键字和与所述矩阵的行对应的第一至少一个哈希函数确定所述矩阵中的一行,通过所述关键字和与所述矩阵的列对应的第二至少一个哈希函数确定所述矩阵中的一列,通过所确定的行和列确定所述矩阵中的一个节点,以及对与所确定的节点相对应的存储区域进行访问。根据本公开的实施例,所述第一至少一个哈希函数与所述第二至少一个哈希函数相同或不同。根据本公开的实施例,所述方法还包括创建所述N*M矩阵;以及将所述多个存储区域的地址映射到N*M矩阵中的节点,以使所述多个存储区域与所述N*M矩阵中的节点一一对应。根据本公开的实施例,所述方法还包括在至少一个存储区域的每个存储区域中,通过红黑树结构存储数据。根据本公开的实施例,所述方法还包括对至少一个存储区域设置读写锁。根据本公开的实施例,所述数据存储设备包括内存或缓存。本公开的另一个方面提供了一种访问数据存储设备的装置,所述数据存储设备包括多个存储区域,所述多个存储区域与N*M矩阵中的节点一一对应,其中,N为所述矩阵的行数,M为所述矩阵的列数,N和M均为大于等于1的正整数,所述矩阵的行和列交叉形成所述节点。所述装置包括行确定模块、列确定模块、节点确定模块以及访问模块。行确定模块,用于通过关键字和与所述矩阵的行对应的第一至少一个哈希函数确定所述矩阵中的一行。列确定模块,用于通过所述关键字和与所述矩阵的列对应的第二至少一个哈希函数确定所述矩阵中的一列。节点确定模块,用于通过所确定的行和列确定所述矩阵中的一个节点。访问模块,用于对与所确定的节点相对应的存储区域进行访问。根据本公开的实施例,所述第一至少一个哈希函数与所述第二至少一个哈希函数相同或不同。根据本公开的实施例,所述装置还包括矩阵创建模块和映射模块。其中,矩阵创建模块,用于创建所述N*M矩阵。映射模块,用于将所述多个存储区域的地址映射到N*M矩阵中的节点,以使所述多个存储区域与所述N*M矩阵中的节点一一对应。根据本公开的实施例,所述装置还包括红黑树存储模块,用于在至少一个存储区域的每个存储区域中通过红黑树结构存储数据。根据本公开的实施例,所述装置还包括读写锁设置模块,用于对至少一个存储区域设置读写锁。根据本公开的实施例,所述装置中的所述数据存储设备包括内存或缓存。本公开的另一方面提供了一种访问数据存储设备的装置,包括一个或多个存储器,存储有可执行指令;以及一个或多个处理器,执行所述可执行指令,以实现本公开实施例的访问数据存储设备的方法。本公开的另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时可实现本公开实施例的访问数据存储设备的方法。根据本公开的实施例,可以至少部分地降低通过哈希表进行数据访问时哈希值冲突的概率,并因此可以实现准确高效地数据访问的技术效果。根据本公开的实施例,因为可以对数据存储设备中的至少一个节点所对应的存储区域设置读写锁,从而极大地降低了不同的读者和/或写者对所述数据存储设备进行访问时在该至少一个节点处发生争夺的概率。根据本公开的实施例,因为可以在至少一个存储区域的每个存储区域中通过红黑树结构存储数据,在通过关键字快速定位到该至少一个存储区域的任一存储区域时,能够保证对该任一存储区域中的数据进行操作的耗时均衡性。附图说明通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:图1示意性示出了根据本公开实施例的可以应用访问数据存储设备的方法和装置的示例性系统架构;图2示意性示出了根据本公开实施例的访问数据存储设备的方法流程图;图3示意性示出了根据本公开另一实施例的访问数据存储设备的方法的流程图;图4示意性示出了根据本公开再一实施例的访问数据存储设备的方法的流程图;图5示意性示出了根据本公开又一实施例的访问数据存储设备的方法的流程图;图6示意性示出了根据本公开实施例的访问数据存储设备的方法的应用情景图;图7示意性示出了根据本公开实施例的访问数据存储设备的装置的框图;以及图8示意性示出了根据本公开实施例的访问数据存储设备的计算机系统的方框图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。本公开的实施例提供了一种访问数据存储设备的方法以及相应的装置。其中,本公开实施例的方法和装置所应用的数据存储设备包括多个存储区域,该多个存储区域与N*M矩阵中的节点一一对应,其中,N为该矩阵的行数,M为该矩阵的列数,N和M均为大于等于1的正整数,该矩阵的行和列交叉形成该节点。根据本公开实施例的访问数据存储设备的方法包括:通过关键字和与该矩阵的行对应的第一至少一个哈希函数确定该矩阵中的一行,通过该关键字和与该矩阵的列对应的第二至少一个哈希函数确定该矩阵中的一列,通过所确定的行和列确定该矩阵中的一个节点,以及对与所确定的节点相对应的存储区域进行访问。根据本公开实施例的访问数据存储设备的方法以及相应的装置在通过关键字确定该数据存储设备中对应的存储区域的过程中,对该关键字在二维空间里的每个维度上进行至少一次哈希运算,并联合两个维度上的计算结果最终确定得到对应存储区域的位置,而且在这个过程中每个维度的哈希运算相互独立,从而极大地降低了哈希表中仅在一个维度通过哈希运算进行关键字映射时哈希值冲本文档来自技高网...
访问数据存储设备的方法和装置

【技术保护点】
一种访问数据存储设备的方法,所述数据存储设备包括多个存储区域,所述多个存储区域与N*M矩阵中的节点一一对应,其中,N为所述矩阵的行数,M为所述矩阵的列数,N和M均为大于等于1的正整数,所述矩阵的行和列交叉形成所述节点,所述方法包括:通过关键字和与所述矩阵的行对应的第一至少一个哈希函数确定所述矩阵中的一行;通过所述关键字和与所述矩阵的列对应的第二至少一个哈希函数确定所述矩阵中的一列;通过所确定的行和列确定所述矩阵中的一个节点;以及对与所确定的节点相对应的存储区域进行访问。

【技术特征摘要】
1.一种访问数据存储设备的方法,所述数据存储设备包括多个存储区域,所述多个存储区域与N*M矩阵中的节点一一对应,其中,N为所述矩阵的行数,M为所述矩阵的列数,N和M均为大于等于1的正整数,所述矩阵的行和列交叉形成所述节点,所述方法包括:通过关键字和与所述矩阵的行对应的第一至少一个哈希函数确定所述矩阵中的一行;通过所述关键字和与所述矩阵的列对应的第二至少一个哈希函数确定所述矩阵中的一列;通过所确定的行和列确定所述矩阵中的一个节点;以及对与所确定的节点相对应的存储区域进行访问。2.如权利要求1所述的方法,其中:所述第一至少一个哈希函数与所述第二至少一个哈希函数相同或不同。3.如权利要求1所述的方法,还包括:创建所述N*M矩阵;以及将所述多个存储区域的地址映射到N*M矩阵中的节点,以使所述多个存储区域与所述N*M矩阵中的节点一一对应。4.如权利要求1所述的方法,还包括:在至少一个存储区域的每个存储区域中,通过红黑树结构存储数据。5.如权利要求1所述的方法,还包括:对至少一个存储区域设置读写锁。6.如权利要求1所述的方法,其中,所述数据存储设备包括内存或缓存。7.一种访问数据存储设备的装置,所述数据存储设备包括多个存储区域,所述多个存储区域与N*M矩阵中的节点一一对应,其中,N为所述矩阵的行数,M为所述矩阵的列数,N和M均为大于等于1的正整数,所述矩阵的行和列交叉...

【专利技术属性】
技术研发人员:陈贱辉邵荣防郝晖李萧萧
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1