CN109542339B - 数据分层访问方法、装置、多层存储设备和存储介质 - Google Patents
数据分层访问方法、装置、多层存储设备和存储介质 Download PDFInfo
- Publication number
- CN109542339B CN109542339B CN201811237348.7A CN201811237348A CN109542339B CN 109542339 B CN109542339 B CN 109542339B CN 201811237348 A CN201811237348 A CN 201811237348A CN 109542339 B CN109542339 B CN 109542339B
- Authority
- CN
- China
- Prior art keywords
- filter
- data
- layer
- storage unit
- storage
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及数据存储技术领域,公开了一种数据分层访问方法、装置、多层存储设备和存储介质。多层存储系统包括至少两层存储单元;其包括:按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;其中,在至少一层存储单元的访问中,判断待访问数据的信息是否在存储单元的过滤器中;若在所述过滤器中,则从过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则过滤器对应的存储单元进行查找;所述过滤器的响应速度大于至少一层存储单元的响应速度。本发明可以大幅提高热度较低的数据的访问效率,进而有利于提高机器学习效率,更好地为用户提供推荐服务。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种数据分层访问方法、装置、多层存储设备和存储介质。
背景技术
近年来,在线餐饮业务增长迅速,目前用户数据规模已经十分庞大。为了提高在线叫餐服务质量以及服务精准度,餐饮平台需要使用机器学习技术对用户消费需求进行挖掘,以便可以向用户精准推荐商户以及菜品等。而机器学习需要使用大量的离线和/或在线数据,这就给数据存储管理技术提出了挑战。因为大量数据的存储以及访问管理不仅需要考虑到硬件投入成本,而且也要兼顾到较高的响应效率。
发明人发现相关技术至少存在以下问题:存储系统一般采用多层存储以降低成本,例如将小部分热点数据存储在本地高速内存中,将冷数据存储在响应速度较低的存储介质中。而在访问数据时,则需要按照热度的高低从响应速度最快的上层存储单元逐级降至响应速度较低的下层存储单元进行查找。由于冷数据存储介质响应速度低,故存在冷数据访问效率低的问题,进而会影响到用户推荐的实时性。
发明内容
本发明实施方式的目的在于提供一种数据分层访问方法、装置、多层存储设备和存储介质,可以大幅提高热度较低的数据的访问效率,进而有利于提高机器学习效率,更好地为用户提供推荐服务。
为解决上述技术问题,本发明的实施方式提供了一种数据分层访问方法,应用于多层存储系统,所述多层存储系统包括至少两层存储单元;所述数据分层访问方法包括:按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于至少一层存储单元的响应速度。
本发明的实施方式还提供了一种数据分层访问装置,应用于多层存储系统,所述多层存储系统包括至少两层存储单元;
所述数据分层访问装置包括:
控制模块,用于按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
第一判断模块,用于在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中,若在所述过滤器中,则触发第一查找模块,若不在所述过滤器中,则触发第二查找模块;
第一查找模块,用于从所述过滤器对应的存储单元的下层存储单元继续查找;
第二查找模块,用于从所述过滤器对应的存储单元进行查找;
其中,所述过滤器的响应速度大于至少一层存储单元的响应速度。
本发明的实施方式还提供了一种多层存储设备,具有多层存储系统,所述多层存储系统包括至少两层存储单元;所述多层存储设备还包括存储器和处理器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现:
按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;
若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于至少一层存储单元的响应速度。
本发明的实施方式还提供了一种存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如上所述的数据分层访问方法。
本发明实施方式相对于现有技术而言,为至少一层响应速度较低的存储单元设置过滤器,过滤器的响应速度大于该存储单元的响应速度,在需要访问该层存储单元时,先通过判断待访问数据是否在过滤器中,从而判断待访问数据是否在该层存储单元中,若待访问数据不在该层存储单元中,则直接跳过该层存储单元而至该层存储单元的下层存储单元继续查找或者返回空的查询结果,可见,本发明实施方式在待访问数据实际不在响应速度较低的存储单元中时,是通过过滤器的查找代替直接在该层存储单元进行查找的,由于过滤器查找响应速度可达数十倍于存储单元的响应速度,因而可大幅提升数据访问效率,提高机器学习的实时性。
另外,每层所述存储单元均对应设置有过滤器。
另外,所述数据分层访问方法还包括:判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则将所述待访问数据的信息添加至所述过滤器中。从而可以实时更新过滤器,保证过滤器存储信息能够匹配对应的存储单元的数据存储情况。
另外,所述数据分层访问方法还包括:获取各层存储单元内的数据存储位置更新信息;定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。从而可以在数据在不同层存储单元之间发生置换时,可以实时更新过滤器,保证过滤器存储信息能够匹配对应的存储单元的数据存储情况。
另外,所述过滤器为布隆过滤器。从而可以大幅节约内存资源占用,降低成本。
附图说明
图1是根据本发明第一实施方式中的数据分层访问方法流程图;
图2是根据本发明第二实施方式中的数据分层访问方法流程图;
图3是根据本发明第三实施方式中的数据分层访问装置示意图;
图4是根据本发明第四实施方式中的数据分层访问装置示意图;
图5是根据本发明第五实施方式中的多层存储设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
本发明的第一实施方式涉及一种数据分层访问方法,本实施方式可以应用于多层存储系统,所述多层存储系统包括至少两层存储单元。该方法包括:按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于至少一层存储单元的响应速度。
具体而言,在实际应用中,可以根据需要存储的数据量以及响应速度需求设置三层或者四层存储单元。其中,第一层存储单元可以为本地高速内存,第二层存储单元可以采用固态硬盘作为存储介质,第三层存储单元可以采用机械硬盘作为存储介质。若需四层,还可以增加响应速度介于本地高速内存与固态硬盘之间的分布式内存存储系统。由于响应速度越高,硬件成本越高,为了减少硬件投入成本,可以根据实际响应要求设置各层存储单元的存储规模。作为举例而非限制,第一层存储单元例如可以存储总数据的10%~20%,第二层存储单元例如可以存储40%~50%,第三层存储单元一般兼具数据备份功能,需要保存全部数据。本实施例对存储单元的层级划分以及各层的存储规模均不做具体限制。
以外卖平台机器学习所需数据为例,多层存储系统存储的数据可以是离线数据,也可以是在线数据。在实际应用中,可以以离线数据为主,在线数据作为辅助,通过机器学习实现实时的用户点餐需求挖掘。由于机器学习所需数据量十分庞大,因而可以采用热度识别方法将离线和/或在线挖掘数据进行分类,并对应存储在各层存储单元中。例如可以挖掘出热度等级最高的数据存储在本地高速内存中,热度等级较低的数据存储在第二层存储单元中,而热度等级最低的数据存储在第三层存储单元中。当然,热度等级的级别可以根据存储单元的层数确定。举例而言,可以对一段时间内数据被访问的次数进行统计,并根据统计结果确定数据的热度等级。或者,还可以根据PoI(Point of Interest,兴趣点)确定数据的热度等级。本实施例对于数据热度等级的确定方法以及数据本身均不做具体限制。
在实际应用中,可以为每层存储单元分别对应设置过滤器,每层存储单元对应的过滤器均运行于本地高速内存中,也就是说,过滤器的响应速度大于本地高速内存以外的存储单元的响应速度。在实际应用中,过滤器的响应速度相对采用固态硬盘或者机械硬盘的存储介质的响应速度而言,能够提高十到一百倍。然不限于此,也可以仅针对响应速度较低的存储单元设置过滤器。
作为优选,过滤器可以采用布隆过滤器(Bloom Filter)。布隆过滤器是二进制向量数据结构,具有很好的空间和时间效率,可以用来检测一个元素是否属于集合中的一个成员,如果检测结果为是,该元素不一定在集合中;但如果检测结果为否,该元素一定不在集合中。因此Bloom filter具有100%的召回率。这样通过布隆过滤器每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况。布隆过滤器的检测原理是,当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,只要判断这些点是不是都是1就可以确定集合中有没有该元素,具体地,如果这些点有任何一个为0,则被检元素一定不在该集合内;如果这些点都是1,则被检元素很可能在该集合内。布隆过滤器相比于其它的数据结构在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数(O(k))。而且布隆过滤器不存储元素本身,在某些对保密要求非常严格的场合有优势。并且通过合理设置参数,可以将其由于碰撞造成的识别错误率保证在一个比较小的范围内。
布隆过滤器是由位数组和多个Hash(哈希)函数构成,数据保存到该过滤器中的过程如下描述:
1.初始状态时,Bloom Filter是一个长度为m的位数组,每一位都置为0。
[0,0,0,0,0,0,0,0,0,0,0,0,0],m=13
2.添加元素x(k个独立的hash函数)
添加元素x时,对x使用k个哈希函数得到k个哈希值,对m取余,对应的bit位设置为1,这里假设x=3,三个哈希函数得到的三个哈希值分别为2,7,11,那么
[0,0,1,0,0,0,0,1,0,0,0,1,0]
3.判断元素是否存在集合内
判断y是否属于这个集合,对y使用k个哈希函数得到k个哈希值,对m取余,所有对应的位置都是1,则认为y属于该集合(由于哈希冲突,可能存在误判),否则就认为y不属于该集合。
假设最终位数组所有位的值情况如下,
[0,1,1,0,0,1,0,1,0,1,0,1,0]
且有元素y1通过3个哈希函数得到的三个哈希值分别为1,5,7,对应着位数组上1,5,7三个比特位都是1,故可判定y1是集合中的元素或者是一个false positive(假正,可以称作误报率)。假设有y2通过三个哈希函数得到的三个值分别为1,5,12,对应着位数组上1,5,7三个比特位是1,5,0,那么y2不是集合汇中的元素。
本实施例中,可以将待访问数据的信息(即key)映射在布隆过滤器中。举例而言,当需要通过过滤器过滤100万条数据时,布隆过滤器占用的存储空间例如是1000万个bit位,即12.5MByte(兆字节),如果将100万条数据直接存储在本地高速内存以实现过滤,则其实际可能占用高达数百GByte(千兆字节)的存储空间。因此,布隆过滤器可以大幅降低内存空间占用,从而可以大幅降低成本。
下面以各层均对应设置有布隆过滤器为例,结合图1对本实施方式的数据分层访问方法进行详细说明。该方法包括步骤101至步骤107。
步骤101:判断待访问数据的信息是否在存储单元对应的过滤器中,若待访问数据的信息在存储单元对应的过滤器中,则执行步骤105,若不在,则执行步骤102。
其中,待访问数据的信息指待访问数据的key。结合上文所述的布隆过滤器的检测方法,判断待访问数据的key是否在存储单元对应的过滤器中,即是对该key进行k次哈希计算得到k个哈希值,并判断过滤器中该k个哈希值对应的位置的值是否均为1,若其中一个不为1,则判断待访问的数据不在过滤器中,此时执行步骤102,也就是说,当待访问数据的key未被映射在过滤器中时,说明该待访问数据曾在该过滤器对应的存储单元中被命中,或者该待访问数据为历史上未被请求访问过的数据,因此,当该层存储单元为第一层(即本地高速内存)时,可以将其命中率从较低的10%~20%提高到95%以上。如果判断出过滤器中该k个哈希值对应的位置的值均为1,则判断待访问的数据在过滤器中,此时执行步骤105,也就是判定该待访问数据未曾在该过滤器对应的存储单元中被命中,在布隆过滤器的错误率被控制在较小的范围内的情况下,对多层存储系统的整体响应速度影响较小。需要说明的是,每层过滤器中的数据可以预先设置得到,从而使得各层存储单元中的数据不在其对应的过滤器中,优选地,各层存储单元的上层存储单元的数据的信息也可以排除在过滤器中。本实施例对于过滤器中的数据的设置方式不做具体限制。
步骤102:在过滤器对应的存储单元中查找。
当过滤器对应第一层存储单元时,即在第一层存储单元中查找待访问数据,以此类推,当过滤器对应第N层存储单元时,即在第N层存储单元中查找待访问数据。
步骤103:判断是否查找到待访问数据,若查找到待访问数据,则执行步骤104,若未查找到待访问数据,则执行步骤105。
步骤104:返回查询结果。
即将待访问数据的Value(值)作为查询结果返回请求方。
步骤105:判断过滤器对应的存储单元是否是最后一层存储单元,若是最后一层存储单元,则执行步骤107,若不是最后一层存储单元,则执行步骤106。
步骤106:降至该过滤器对应的存储单元的下一层存储单元,并进入步骤101。
例如,当过滤器对应的存储单元为第一层存储单元时,在步骤106之后,在判断出待访问数据的信息在过滤器中时,认为该待访问数据不在第一层存储单元中,而直接至第二层存储单元继续查找。
步骤107:返回空。
即多层存储系统并未存储待访问数据的值。
其中,步骤101至步骤107在按照存取速度从高到低的方式逐层访问各层存储单元直到查找到待访问数据或者遍历多层存储系统的过程中,在各层存储单元的访问中,均通过判断待访问数据的信息是否在过滤器中,并在当待访问数据的信息在过滤器中时,从过滤器对应的存储单元的下层存储单元继续查找,而跳过了与过滤器对应的存储单元的查找过程,由于对于较底层(第二层及以后)的存储单元而言过滤器的响应速度数十倍于其对应的存储单元的响应速度,因此可以大幅提升数据的访问效率。
举例而言,当待访问数据存在第三层存储单元中时,采用本实施方式的数据分层访问方法,首先判断待访问数据的key是否在第一层存储单元对应的过滤器中,此时,由于第一层存储单元对应的过滤器中记录有该待访问数据的信息,则判断出该待访问数据不在第一层存储单元中,从而跳过第一层存储单元直接至第二层存储单元查找,以此类推,可以通过第二层存储单元对应的过滤器的查找结果跳过第二层存储单元的查找,从而可以直接在该待访问数据的实际存储位置进行查找,相对于现有技术需要依次通过第一层、第二层等的查找而言,相当于通过具有高响应性能的过滤器代替了较低响应性能的第二层查找过程,从而可以提高访问效率。由于出于成本考虑,第二层等的存储单元的实际命中率可能在40%~60%之间,这样,在第二层不能命中,而在更底层才能命中的数据的访问效率均可得到提高。
因此,本实施方式通过响应速度非常高的内存中的过滤器的查找代替该过滤器对应的存储单元的查找,在待访问数据在本层存储单元实际不能命中的情况下,可以跳过该层存储单元至下一层存储单元继续查找,从而可以大幅提高访问效率,针对多层存储系统,且较低层的存储介质的响应速度远低于内存的响应速度以及由于成本的考虑该层的命中率不高的情况下,可以大幅改善数据访问效率。
本发明的第二实施方式涉及一种数据分层访问方法,如图2所示,本实施方式包括步骤201至步骤208。
步骤201至步骤204与第一实施方式中的步骤101至步骤104分别对应相同,步骤206至步骤208与第一实施方式中的步骤105至步骤107分别对应相同,此处不再赘述。
步骤105:将待访问数据的信息添加至对应的过滤器。
即当一数据在某层存储单元未被命中时,就将该数据的key添加至该层存储单元对应的过滤器中。例如,一数据在第一层存储单元未被命中时,则将该数据的key添加至对应的过滤器中。以此类推,在第N层存储单元未被命中时,将该数据的key添加至第N层存储单元对应的过滤器中。这样,当多层存储系统中未存储待访问数据时,通过各层存储单元对应的过滤器即判断出,从而可以快速返回查询结果,避免了在各层存储单元,尤其是响应速度慢的存储单元的查找,从而可以提高响应效率。
在实际应用中,还可以获取各层存储单元内的数据存储位置更新信息,定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。具体地,在实际应用中,各层存储单元中的数据可以随着数据本身热度值的变化相互置换,例如,当第一层存储单元中的某些数据由于热度值降低而转换成冷数据时,则该数据可能会被置换入第二层或者第三层存储单元中,反之,第二层或者第三层中的数据也可能被置换到更上层的存储单元中,即多层存储系统中的数据的存储位置会被更新。本实施方式中,可以获取各层存储单元内的数据存储位置更新信息,并定时根据数据存储位置更新信息对各层存储单元对应的过滤器进行更新。例如,可以在数据存储位置发生置换时,自动记录数据存储位置更新信息,数据存储位置更新信息例如包括数据的key,数据存储位置更新前的数据的存储位置,即第几层以及存储位置更新后的数据的存储位置等。这样,在系统的空闲时段,例如凌晨时段等可对过滤器进行更新,即将置换入某层存储单元的数据的信息从该层存储单元对应的过滤器中删除,将置换出某层存储单元的数据的信息添加至该层存储单元对应的过滤器,从而使得过滤器实际记录不在其对应的存储单元中的数据的信息。
由此,通过不断更新过滤器中的信息,使得过滤器更能准确反映对应的存储单元的数据的实际情况,从而保证各层过滤器的过滤效果。
本发明的第三实施方式涉及一种数据分层访问装置,应用于多层存储系统,本实施方式的多层存储系统可以是独立的服务器,也可以是服务器群。多层存储系统包括至少两层存储单元。请参阅图3,该数据分层访问装置300包括:
控制模块301,用于按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历多层存储系统;
第一判断模块302,用于在至少一层存储单元的访问中,判断待访问数据的信息是否在所述存储单元的过滤器中,若在过滤器中,则触发第一查找模块303,若不在过滤器中,则触发第二查找模块304;
第一查找模块303,用于从过滤器对应的存储单元的下层存储单元继续查找;
第二查找模块304,用于从过滤器对应的存储单元进行查找;
其中,过滤器的响应速度大于至少一层存储单元的响应速度。
因此,本实施方式通过响应速度非常高的内存中的过滤器的查找代替该过滤器对应的存储单元的查找,在待访问数据在本层存储单元实际不能命中的情况下,可以跳过该层存储单元至下一层存储单元继续查找,从而可以大幅提高访问效率,针对多层存储系统,且较低层的存储介质的响应速度远低于内存的响应速度以及由于成本的考虑该层的命中率不高的情况下,可以大幅改善数据访问效率。
本发明的第四实施方式涉及一种数据分层访问装置,第四实施方式在第三实施方式的基础上做出改进,主要改进之处在于,在第四实施方式中,进一步提供了对过滤器进行更新的功能模块。
请参阅图4,本实施方式的数据分层访问装置400包括:
控制模块401,用于按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历多层存储系统;
第一判断模块402,用于在至少一层存储单元的访问中,判断待访问数据的信息是否在所述存储单元的过滤器中,若在过滤器中,则触发第一查找模块403,若不在过滤器中,则触发第二查找模块404;
第一查找模块403,用于从过滤器对应的存储单元的下层存储单元继续查找;
第二查找模块404,用于从过滤器对应的存储单元进行查找;其中,过滤器的响应速度大于至少一层存储单元的响应速度;
第二判断模块405,用于判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则触发添加模块406;
添加模块406,用于将待访问数据的信息添加至过滤器中;
获取模块407,用于获取各层存储单元内的数据存储位置更新信息;
更新模块408,用于定时根据数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
由此,通过不断更新过滤器中的信息,使得过滤器更能准确反映对应的存储单元的数据的实际情况,从而保证各层过滤器的过滤效果。
本发明的第五实施方式涉及一种多层存储设备。本实施方式的多层存储设备可以是独立的服务器,也可以是服务器群。
该多层存储设备具有多层存储系统,所述多层存储系统包括至少两层存储单元。如图5所示,所述多层存储设备还包括存储器502和处理器501;
其中,所述存储器502存储有可被所述至少一个处理器501执行的指令,所述指令被所述至少一个处理器501执行以实现:按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;
若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于至少一层存储单元的响应速度。
一个或多个处理器501以及存储器502,图5中以一个处理器501为例。处理器501、存储器502可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述数据分层访问方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储过滤器等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述任意方法实施方式中的数据分层访问方法。
作为一个实施例,每层所述存储单元均对应设置有过滤器。
作为一个实施例,所述处理器还可以用于:
判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则将所述待访问数据的信息添加至所述过滤器中。
作为一个实施例,所述处理器还可以用于:获取各层存储单元内的数据存储位置更新信息;
定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
作为一个实施例,所述过滤器为布隆过滤器。
上述设备可执行本发明实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的方法。
本实施方式通过响应速度非常高的内存中的过滤器的查找代替该过滤器对应的存储单元的查找,在待访问数据在本层存储单元实际不能命中的情况下,可以跳过该层存储单元至下一层存储单元继续查找,从而可以大幅提高访问效率,针对多层存储系统,且较低层的存储介质的响应速度远低于内存的响应速度以及由于成本的考虑该层的命中率不高的情况下,可以大幅改善数据访问效率。
本发明的第六实施方式涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
本申请实施例公开了A1.一种数据分层访问方法,应用于多层存储系统,所述多层存储系统包括至少两层存储单元;
所述数据分层访问方法包括:
按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;
若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于至少一层存储单元的响应速度。
A2.如A1所述的数据分层访问方法,每层所述存储单元均对应设置有过滤器。
A3.如A1所述的数据分层访问方法,所述数据分层访问方法还包括:
判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则将所述待访问数据的信息添加至所述过滤器中。
A4.如A3所述的数据分层访问方法,所述数据分层访问方法还包括:
获取各层存储单元内的数据存储位置更新信息;
定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
A5.如A1至A4任一项所述的数据分层访问方法,所述过滤器为布隆过滤器。
本申请实施例还公开了B1.一种数据分层访问装置,应用于多层存储系统,所述多层存储系统包括至少两层存储单元;
所述数据分层访问装置包括:
控制模块,用于按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
第一判断模块,用于在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中,若在所述过滤器中,则触发第一查找模块,若不在所述过滤器中,则触发第二查找模块;
第一查找模块,用于从所述过滤器对应的存储单元的下层存储单元继续查找;
第二查找模块,用于从所述过滤器对应的存储单元进行查找;
其中,所述过滤器的响应速度大于至少一层存储单元的响应速度。
B2.如B1所述的数据分层访问装置,每层所述存储单元均对应设置有过滤器。
B3.如B1所述的数据分层访问装置,还包括:
第二判断模块,用于判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则触发添加模块;
添加模块,用于将所述待访问数据的信息添加至所述过滤器中。
B34.如B3所述的数据分层访问装置,还包括:
获取模块,用于获取各层存储单元内的数据存储位置更新信息;
更新模块,用于定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
B5.如B1至B4中任一项所述的数据分层访问装置,所述过滤器为布隆过滤器。
本申请实施例还公开了C1.一种多层存储设备,具有多层存储系统,所述多层存储系统包括至少两层存储单元;所述多层存储设备还包括存储器和处理器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现:
按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;
若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于至少一层存储单元的响应速度。
C2.如C1所述的数据分层访问方法,每层所述存储单元均对应设置有过滤器。
C3.如C1所述的数据分层访问方法,所述处理器还用于:
判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则将所述待访问数据的信息添加至所述过滤器中。
C4.如C3所述的数据分层访问方法,所述处理器还用于:
获取各层存储单元内的数据存储位置更新信息;
定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
C5.如C1至C4任一项所述的数据分层访问方法,所述过滤器为布隆过滤器。
本申请实施例还公开了D1.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行如A1至A5中任一项所述的数据分层访问方法。
Claims (16)
1.一种数据分层访问方法,其特征在于,应用于多层存储系统,所述多层存储系统包括至少两层存储单元;
所述数据分层访问方法包括:
按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;
若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于该过滤器所在层的存储单元的响应速度。
2.根据权利要求1所述的数据分层访问方法,其特征在于,每层所述存储单元均对应设置有过滤器。
3.根据权利要求1所述的数据分层访问方法,其特征在于,所述数据分层访问方法还包括:
判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则将所述待访问数据的信息添加至所述过滤器中。
4.根据权利要求3所述的数据分层访问方法,其特征在于,所述数据分层访问方法还包括:
获取各层存储单元内的数据存储位置更新信息;
定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
5.根据权利要求1至4中任一项所述的数据分层访问方法,其特征在于,所述过滤器为布隆过滤器。
6.一种数据分层访问装置,其特征在于,应用于多层存储系统,所述多层存储系统包括至少两层存储单元;
所述数据分层访问装置包括:
控制模块,用于按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
第一判断模块,用于在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中,若在所述过滤器中,则触发第一查找模块,若不在所述过滤器中,则触发第二查找模块;
第一查找模块,用于从所述过滤器对应的存储单元的下层存储单元继续查找;
第二查找模块,用于从所述过滤器对应的存储单元进行查找;
其中,所述过滤器的响应速度大于该过滤器所在层的存储单元的响应速度。
7.根据权利要求6所述的数据分层访问装置,其特征在于,每层所述存储单元均对应设置有过滤器。
8.根据权利要求6所述的数据分层访问装置,其特征在于,还包括:
第二判断模块,用于判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则触发添加模块;
添加模块,用于将所述待访问数据的信息添加至所述过滤器中。
9.根据权利要求8所述的数据分层访问装置,其特征在于,还包括:
获取模块,用于获取各层存储单元内的数据存储位置更新信息;
更新模块,用于定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
10.根据权利要求6至9中任一项所述的数据分层访问装置,所述过滤器为布隆过滤器。
11.一种多层存储设备,其特征在于,具有多层存储系统,所述多层存储系统包括至少两层存储单元;所述多层存储设备还包括存储器和处理器;
其中,所述存储器存储有可被至少一个所述处理器执行的指令,所述指令被至少一个所述处理器执行以实现:
按照存取速度从高到低的方式逐层访问各层存储单元,直到查找到待访问数据或者遍历所述多层存储系统;
其中,在至少一层存储单元的访问中,判断所述待访问数据的信息是否在所述存储单元的过滤器中;
若在所述过滤器中,则从所述过滤器对应的存储单元的下层存储单元继续查找,若不在所述过滤器中,则从所述过滤器对应的存储单元进行查找;所述过滤器的响应速度大于该过滤器所在层的存储单元的响应速度。
12.根据权利要求11所述的多层存储设备,其特征在于,每层所述存储单元均对应设置有过滤器。
13.根据权利要求11所述的多层存储设备,其特征在于,所述处理器还用于:
判断在所述过滤器对应的存储单元是否查找到所述待访问数据,若未查到,则将所述待访问数据的信息添加至所述过滤器中。
14.根据权利要求11所述的多层存储设备,其特征在于,所述处理器还用于:
获取各层存储单元内的数据存储位置更新信息;
定时根据所述数据存储位置更新信息对各层存储单元对应的过滤器进行更新。
15.根据权利要求11至14中任一项所述的多层存储设备,其特征在于,所述过滤器为布隆过滤器。
16.一种存储介质,用于存储计算机可读程序,其特征在于,所述计算机可读程序用于供计算机执行如权利要求1至5中任一项所述的数据分层访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811237348.7A CN109542339B (zh) | 2018-10-23 | 2018-10-23 | 数据分层访问方法、装置、多层存储设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811237348.7A CN109542339B (zh) | 2018-10-23 | 2018-10-23 | 数据分层访问方法、装置、多层存储设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542339A CN109542339A (zh) | 2019-03-29 |
CN109542339B true CN109542339B (zh) | 2021-09-03 |
Family
ID=65844505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811237348.7A Active CN109542339B (zh) | 2018-10-23 | 2018-10-23 | 数据分层访问方法、装置、多层存储设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542339B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134334A (zh) * | 2019-05-09 | 2019-08-16 | 深圳前海达闼云端智能科技有限公司 | 数据存储方法、数据存储设备、电子设备和可读存储介质 |
CN112181302A (zh) * | 2020-09-28 | 2021-01-05 | 上海简苏网络科技有限公司 | 一种数据多级存储和访问方法及系统 |
CN113051251A (zh) * | 2021-03-29 | 2021-06-29 | 福建星瑞格软件有限公司 | 基于bloom filter的基线数据迁移的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111898A (zh) * | 2014-05-26 | 2014-10-22 | 中国能源建设集团广东省电力设计研究院 | 基于多维数据相似性的混合存储系统及数据管理方法 |
CN104408163A (zh) * | 2014-12-05 | 2015-03-11 | 浪潮(北京)电子信息产业有限公司 | 一种数据分级存储方法和装置 |
CN104881369A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 面向混合存储系统的低内存开销热点数据识别方法 |
CN104915145A (zh) * | 2014-03-11 | 2015-09-16 | 华为技术有限公司 | 一种降低LSM Tree写放大的方法和装置 |
CN105468298A (zh) * | 2015-11-19 | 2016-04-06 | 中国科学院信息工程研究所 | 一种基于日志结构合并树的键值存储方法 |
CN106708442A (zh) * | 2016-12-30 | 2017-05-24 | 武汉安嘉颐科技有限公司 | 同时适应磁盘与固态硬盘读写特性的海量数据存储方法 |
US9798754B1 (en) * | 2014-06-12 | 2017-10-24 | EMC IP Holding Company LLC | Method to efficiently track I/O access history using efficient memory data structures |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565425B2 (en) * | 2003-07-02 | 2009-07-21 | Amazon Technologies, Inc. | Server architecture and methods for persistently storing and serving event data |
US9697247B2 (en) * | 2014-07-16 | 2017-07-04 | Facebook, Inc. | Tiered data storage architecture |
US9575658B2 (en) * | 2015-03-12 | 2017-02-21 | Vmware, Inc. | Collaborative release of a virtual disk |
-
2018
- 2018-10-23 CN CN201811237348.7A patent/CN109542339B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915145A (zh) * | 2014-03-11 | 2015-09-16 | 华为技术有限公司 | 一种降低LSM Tree写放大的方法和装置 |
CN104111898A (zh) * | 2014-05-26 | 2014-10-22 | 中国能源建设集团广东省电力设计研究院 | 基于多维数据相似性的混合存储系统及数据管理方法 |
US9798754B1 (en) * | 2014-06-12 | 2017-10-24 | EMC IP Holding Company LLC | Method to efficiently track I/O access history using efficient memory data structures |
CN104408163A (zh) * | 2014-12-05 | 2015-03-11 | 浪潮(北京)电子信息产业有限公司 | 一种数据分级存储方法和装置 |
CN104881369A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 面向混合存储系统的低内存开销热点数据识别方法 |
CN105468298A (zh) * | 2015-11-19 | 2016-04-06 | 中国科学院信息工程研究所 | 一种基于日志结构合并树的键值存储方法 |
CN106708442A (zh) * | 2016-12-30 | 2017-05-24 | 武汉安嘉颐科技有限公司 | 同时适应磁盘与固态硬盘读写特性的海量数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109542339A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739849B (zh) | 一种数据驱动的网络敏感信息挖掘与预警平台 | |
CN109542339B (zh) | 数据分层访问方法、装置、多层存储设备和存储介质 | |
CN103995855B (zh) | 存储数据的方法和装置 | |
CN105635331A (zh) | 一种分布式环境下的服务寻址方法及装置 | |
CN103345472A (zh) | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 | |
CN110502452A (zh) | 访问电子设备中的混合缓存的方法及装置 | |
CN103106152A (zh) | 基于层次存储介质的数据调度方法 | |
CN112100293A (zh) | 数据处理方法、数据访问方法、装置及计算机设备 | |
CN106502587A (zh) | 磁盘数据管理方法和磁盘控制装置 | |
CN103077197A (zh) | 一种数据存储方法装置 | |
CN110580246B (zh) | 迁徙数据的方法、装置、计算机设备及存储介质 | |
US11249991B2 (en) | System and method for creating storage containers in a data storage system | |
CN106294189B (zh) | 内存碎片整理方法及装置 | |
US11544242B2 (en) | System and method for storing and retrieving data in different data spaces | |
CN105786724B (zh) | 空间管理方法及装置 | |
CN102981964B (zh) | 数据存储空间的管理方法及系统 | |
CN115878625A (zh) | 数据处理方法和装置及电子设备 | |
CN106775450B (zh) | 一种混合存储系统中的数据分布方法 | |
CN115114289A (zh) | 一种数据查询方法、装置及电子设备 | |
Kvet | Database Block Management using Master Index | |
US11330054B2 (en) | System and method for load balancing in a data storage system | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN114968073A (zh) | 数据预取的方法、设备及系统 | |
CN113360551A (zh) | 一种靶场中时序数据的存储与快速统计方法及系统 | |
CN106527960A (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 |