CN103927124A - 以Hash方式组织的磁盘访问控制装置及方法 - Google Patents
以Hash方式组织的磁盘访问控制装置及方法 Download PDFInfo
- Publication number
- CN103927124A CN103927124A CN201310014430.4A CN201310014430A CN103927124A CN 103927124 A CN103927124 A CN 103927124A CN 201310014430 A CN201310014430 A CN 201310014430A CN 103927124 A CN103927124 A CN 103927124A
- Authority
- CN
- China
- Prior art keywords
- disk
- storage object
- access
- bloom filter
- organizing
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种以Hash方式组织的磁盘访问控制方法,所述方法包括以下步骤:在所述磁盘中构建布隆过滤器;读取存储对象中的记录集合;利用所述布隆过滤器对与所述存储对象相关的访问请求进行过滤;所述磁盘包括至少一个所述存储对象。本发明还公开了一种以Hash方式组织的磁盘访问控制装置。本发明能防止空查询的现象的发生,减少磁盘访问资源的消耗。
Description
【技术领域】
本发明涉及计算机领域,特别涉及一种以Hash方式组织的磁盘访问控制装置及方法。
【背景技术】
分布式数据存储需要对TB(Terabyte,太字节)级别、甚至PB(Petabyte,拍字节)级别的海量数据进行存储。在记录的平均大小仅有几十个字节的情况下,记录的个数将会非常的多。在设计存储引擎的时候,有以下两种方式可供选择:其一是无需内存索引,磁盘完全按哈希(Hash)的方式进行组织,同时将若干条记录混合存储在一起;再者是全内存索引,索引的条目与标识(Key)的个数相同,但是考虑到标识太多会导致内存不够的情形,往往需要压缩索引的开销,将长度较小的记录通过哈希的方式混合存储在一起,在内存中仅存储一条索引。在上述方案中,基于哈希的组织方式将若干条记录合并存储的方式在存储引擎的设计中使用得非常广泛。
在实践中,发明人发现现有技术至少存在以下问题:
对于合并存储在一起的记录集{K1、K2、K3 ……Kn},由于内存中不存在标识的索引,所以需要消耗磁盘输入/输出(I/O,Input/Output)资源将合并存储的记录集读取出来,再来判断标识是否属于该记录集合。对于大量记录不存在的业务场景来说,会出现空查询(记录不存在的查询)的情况,这将会浪费较多无效的磁盘访问资源。
故,有必要提出一种新的技术方案,以解决上述技术问题。
【发明内容】
本发明的一个目的在于提供一种以Hash方式组织的磁盘访问控制方法,其能减少磁盘访问资源的消耗。
为解决上述问题,本发明提供了一种以Hash方式组织的磁盘访问控制方法,所述方法包括以下步骤:在所述磁盘中构建布隆过滤器;读取存储对象中的记录集合;利用所述布隆过滤器对与所述存储对象相关的访问请求进行过滤;所述磁盘包括至少一个所述存储对象。
本发明的另一个目的在于提供一种以Hash方式组织的磁盘访问控制装置,其能减少磁盘访问资源的消耗。
为解决上述问题,本发明提供了一种以Hash方式组织的磁盘访问控制装置,所述装置包括:构建模块,用于在所述磁盘中构建布隆过滤器;初始化模块,用于读取存储对象中的记录集合;访问控制模块,用于利用所述布隆过滤器对与所述存储对象相关的访问请求进行过滤;所述磁盘包括至少一个所述存储对象。
相对现有技术,本发明由于在所述磁盘执行针对存储对象的访问时利用布隆过滤器来对相关的访问请求进行过滤,因此可以防止空查询的现象的发生,减少磁盘访问资源的消耗。
为让本发明的上述内容能更明显易懂,下文特举优选实施例,并配合所附图式,作详细说明如下:
【附图说明】
图1为本发明的以Hash方式组织的磁盘访问控制方法的第一实施例的流程图;
图2为本发明实施例中基于哈希方式的磁盘组织结构的示意图;
图3为本发明实施例中存储单元的布隆过滤器空间的示意图;
图4A为本发明的以Hash方式组织的磁盘访问控制方法的第二实施例的流程图;
图4B为本发明实施例中初始化布隆过滤器位内存的方式的示意图;
图5为本发明的以Hash方式组织的磁盘访问控制方法的第三实施例的流程图;
图6A和图6B为本发明的以Hash方式组织的磁盘访问控制方法的第四实施例的流程图;
图7A和图7B为本发明的以Hash方式组织的磁盘访问控制方法的第五实施例的流程图;
图8A和图8B为本发明的以Hash方式组织的磁盘访问控制方法的第六实施例的流程图;
图9A和图9B为本发明的以Hash方式组织的磁盘访问控制方法的第七实施例的流程图;
图10为本发明的以Hash方式组织的磁盘访问控制装置的第一实施例的框图;
图11为本发明的以Hash方式组织的磁盘访问控制装置的第三实施例的框图;
图12为本发明的以Hash方式组织的磁盘访问控制装置的第四实施例的框图;
图13为本发明的以Hash方式组织的磁盘访问控制装置的第五实施例的框图;
图14为本发明的以Hash方式组织的磁盘访问控制装置的第七实施例的框图。
【具体实施方式】
以下各实施例的说明是参考附加的图式,用以例示本发明可用以实施的特定实施例。
参考图1,图1为本发明的以Hash方式组织的磁盘访问控制方法的第一实施例的流程图。
在步骤101,在该磁盘中构建布隆过滤器(Bloom Filter)。
在步骤102,读取存储对象中的记录集合。
在步骤103,在该磁盘执行针对存储对象的访问时,利用该布隆过滤器对与该存储对象相关的访问请求进行过滤。
在本实施例中,该磁盘包括至少一个该存储对象。
在本实施例中,如图2所示,磁盘中数据的存储模型定义如下:磁盘的组织是基于哈希(Hash)的方式,磁盘被划分成若干个固定大小的存储单元,每个存储单元内可以看作是由若干个哈希桶构成的一张哈希表,哈希值相同的若干条记录合并混合存储在哈希桶中。其中,Si表示固定大小的存储单元,Bi表示存储单元内的哈希桶,Ki表示哈希桶中的一条记录。其中,{K1、K2、K3 …… Kn}∈Bi,{B1、B2、B3…… Bn}∈Si,i=1,2,3,……n。在分布式存储系统中,标识首先通过分布式路由的方式定位到一个存储单元,再通过计算哈希的方式定位到一个哈希桶,读取哈希桶中的记录集合,遍历查找或将更新后的记录集合重新写入到哈希桶中。
在本实施例中,存储对象可以视作上述哈希桶。
在应用布隆过滤器的过程中,有几个关键性的参数需要考虑:(1) 哈希函数的个数K;(2) 误判率F;(3) 有限集合中标识的个数N;(4)布隆过滤器位数组的大小M;其中M/N、F、K满足一定的关系:F=Function(M/N,K),Function的关系可参照表1。
M/N | K = 1 | K = 2 | K = 3 | K = 4 | K = 5 |
2 | 0.393 | 0.400 | |||
3 | 0.283 | 0.237 | 0.253 | ||
4 | 0.221 | 0.155 | 0.147 | 0.160 | |
5 | 0.181 | 0.109 | 0.092 | 0.092 | 0.101 |
6 | 0.154 | 0.0804 | 0.0609 | 0.0561 | 0.0578 |
表1 Function(F、M/N、K)的关系参照表
在基于哈希的方式的数据存储模型中,哈希桶中标识的个数是个有限的集合{K1、K2、K3 …… Kn},在一个有限的集合中来利用布隆过滤器实现防止空查询。
在本实施例中,所构建的布隆过滤器具有布隆过滤器空间,如图3所示,该布隆过滤器空间由初始化标志位和布隆过滤器位组成,该布隆过滤器位可以用于防止空查询。该初始化标志位占用一位内存,初始设置可以为0,用于标识该存储对象没有进行过访问操作。
在本实施例中,由于在该磁盘执行针对存储对象的访问时利用布隆过滤器来对相关的访问请求进行过滤,因此可以防止空查询的现象的发生,减少磁盘访问(输入/输出)资源的消耗。
参考图4A,图4A为本发明的以Hash方式组织的磁盘访问控制方法的第二实施例的流程图。本实施例与上述第一实施例相似,不同之处在于:
在步骤101和步骤102之间还包括步骤401和步骤402。
在步骤401,判断该磁盘针对该存储对象的访问是否是第一次,若是,则进入步骤402,否则,进入步骤102。
在步骤402,在该磁盘执行第一次针对存储对象的访问时,初始化该布隆过滤器。
在本实施例中,当磁盘第一次针对存储对象(哈希桶)进行访问时,由于会读取哈希桶中所有的记录集合,可用有限集合中的所有记录来初始化布隆过滤器,并将初始化标志位设置为1,初始化布隆过滤器的方式如图4B所示。
参考图5,图5为本发明的以Hash方式组织的磁盘访问控制方法的第三实施例的流程图。本实施例与上述第一或第二实施例相似,不同之处在于:
在本实施例中,该访问为输出访问,该输出访问可以与读操作、查询操作相似。
在本实施例中,步骤103还可以包括步骤1031、步骤1032、步骤1033和步骤1034。
在步骤1031,利用布隆过滤器来作用于与存储对象相关的访问请求。
在步骤1032,在该磁盘执行针对该存储对象的输出访问时,利用该布隆过滤器进行过滤,判断该存储对象中是否存在第一标识(Key)并生成判断结果,若该判断结果为该存储对象中存在该第一标识时,进入步骤1033,否则,进入步骤1034。
在步骤1033,在该判断结果为该存储对象中存在该第一标识时,允许该磁盘执行针对该存储对象的输出访问。
在步骤1034,在该判断结果为该存储对象中不存在该第一标识时,退出针对该存储对象的输出访问并返回,此步骤也可以看做是利用该布隆过滤器过滤相关的输出访问请求。
在本实施例中,由于利用了布隆过滤器来判断该存储对象中是否存在该第一标识,以此判断磁盘针对该存储对象的访问是否是空的访问,即,空查询,因此可以识别出空查询的情况。由于在该磁盘针对该存储对象的输出访问不是空查询的情况下,允许该磁盘的输出访问,并且,在该磁盘针对该存储对象的输出访问为空查询的情况下,利用布隆过滤器过滤相关的访问请求,因此可以减少不必要的、无效的磁盘输出访问资源的消耗。
参考图6A和图6B,图6A和图6B为本发明的以Hash方式组织的磁盘访问控制方法的第四实施例的流程图。本实施例与上述第一、第二、第三实施例中的任意一个实施例相似,不同之处在于:
本实施例的方法还可以包括步骤601、步骤602、步骤603、步骤604和步骤605。
在内存受限的磁盘(存储系统)中,布隆过滤器资源是非常有限的,为此,将有限的布隆过滤器资源利用到空查询度较高的存储对象中,将可以在较少的内存下达到更好的防止空查询的效果。
这里所讲的存储对象可以是存储单元内的哈希桶;这里所讲的布隆过滤器资源可以是所构建的布隆过滤器完成过滤访问请求的能力,或者可以是所能够构建的布隆过滤器的数量,或者可以是哈希桶的布隆过滤器内存空间。
为了合理地调度布隆过滤器资源,使得在布隆过滤器资源有限的情况下能够更好地防止空查询,从而减少磁盘访问(输入/输出)资源的消耗。为此,在本实施例中,该磁盘包括与该存储对象相关的第一集合和第二集合。
在步骤1033之后或者之前执行步骤601、步骤602、步骤603、步骤604、步骤605。
在步骤601中,选择该第一集合,使得该布隆过滤器对与该第一集合相关的访问请求进行过滤。
在步骤602中,统计空查询次数和总输出访问次数,该空查询次数为该布隆过滤器所过滤的访问请求的次数,该总输出访问次数为与该第一集合相关的访问请求的所有的次数。
在步骤603中,根据该空查询次数和该总输出访问次数计算该第一集合中所有存储对象的空查询度。具体地,根据空查询度计算公式计算该第一集合中所有存储对象的空查询度,该空查询度计算公式为:空查询度=空查询次数/总输出访问次数。
在步骤604中,根据该空查询度选择第一存储对象,该第一存储对象属于该第一集合,该第一存储对象的空查询度位于一阈值范围内。在这里,我们可以将空查询度位于一阈值范围内的情况定义为空查询度较低的情况,而数值空查询度位于该阈值范围外的情况定义为空查询度较高的情况。例如,该阈值范围可以为0至90%,相应地,该阈值范围外的范围为90%至100%;该阈值范围还可以是0至60%,相应地,该阈值范围外的范围为60%至100%;该阈值范围还可以是0至30%,相应地,该阈值范围外的范围为30%至100%。
在步骤605中,将作用于第一存储对象的布隆过滤器分配给第二存储对象。该第二存储对象属于该第二集合。
具体地,在本实施例中,在初始状态时,依据可用内存的大小,选取一部分的存储对象分配布隆过滤器资源,另外一部分的存储对象则等待布隆过滤器资源的调度,两种集合表示如下:
{R11,R12,R13,......,Rij}∈R,{W11,W12,W13,......,Wij}∈W,其中,Rij和Wij分别表示一个存储对象,R表示已分配(调度)布隆过滤器资源的存储对象的集合,W表示等待分配(调度)布隆过滤器资源的存储对象的集合。
在计算出集合R中所有的存储对象的空查询度之后,释放空查询度较低或者最低的若干个存储对象的布隆过滤器资源,并将该所释放的布隆过滤器资源分配(调度)给集合W中的若干个存储对象。
通过上述针对布隆过滤器资源的调度,可以达到更好的防止空查询的效果,从而可以更好地减少磁盘访问资源的消耗。
参考图7A和7B,图7A和图7B为本发明的以Hash方式组织的磁盘访问控制方法的第五实施例的流程图。本实施例与上述第一、第二、第三、第四实施例中任意一项实施例相似,不同之处在于:
在执行步骤603之前执行步骤701,即,生成时钟信号。
对于步骤603,根据该时钟信号定时地计算该空查询度。
在本实施例中,由于根据时钟信号定时地或周期地计算该空查询度,以定时地或周期地选择第一存储对象,并定时地或周期地将作用于第一存储对象的布隆过滤器资源分配给第二存储对象,因此可以实现针对布隆过滤器资源的动态调整,使得防止空查询的效果能够得到优化,更好地减少磁盘访问资源的消耗。
参考图8A和8B,图8A和图8B为本发明的以Hash方式组织的磁盘访问控制方法的第六实施例的流程图。本实施例与上述第一、第二、第三、第四、第五实施例中任意一项实施例相似,不同之处在于:
在本实施例中,该访问为输入访问。本实施例的方法还可以包括步骤801和步骤802。
步骤801和步骤802的执行可以贯穿于步骤103、601、602、603、604、605、701中任意一者的执行过程中。
在步骤801,判断该磁盘是否执行完针对该存储对象的输入访问,若是,则进入步骤802,否则等待。
在步骤802,修改与该布隆过滤器相关的位。
在本实施例中,在该磁盘执行针对该存储对象的输入访问后修改与该布隆过滤器相关的位可以为布隆过滤器对访问请求进行过滤做准备,有利于更好地实现防止空查询,减少磁盘访问资源的消耗。
参考图9A和9B,图9A和图9B为本发明的以Hash方式组织的磁盘访问控制方法的第七实施例的流程图。本实施例与上述第一、第二、第三、第四、第五、第六实施例中任意一项实施例相似,不同之处在于:
本实施例的方法还可以包括步骤901、步骤902和步骤903。
步骤901、步骤902和步骤903的执行可以贯穿于步骤103、601、602、603、604、605、701、801、802中的任意一者的过程中。
在步骤901,获取与删除该磁盘中的第二标识相关的指令。
在步骤902,根据该指令删除该第二标识。
在步骤903,在删除该第二标识后初始化该磁盘中与该布隆过滤器相关的空间。
在本实施例中,由于在需要删除磁盘中的第二标识时删除该第二标识,避免了与该第二标识相关的存储对象出现空查询,因此可以减少出现空查询的可能性,减少磁盘访问资源的消耗;此外,由于在删除该第二标识后初始化与布隆过滤器相关的空间,因此可以更好地释放布隆过滤器资源,从而可以更好地对布隆过滤器资源进行分配(调度),有利于减少磁盘访问资源的消耗。
参考图10,图10为本发明的以Hash方式组织的磁盘访问控制装置的第一实施例的框图。
本实施例的以Hash方式组织的磁盘访问控制装置包括构建模块1001、初始化模块1002和访问控制模块1003。
构建模块1001用于在该磁盘中构建布隆过滤器(Bloom Filter)。
初始化模块1002用于读取存储对象中的记录集合。
访问控制模块1003用于在该磁盘执行针对存储对象的访问时,利用该布隆过滤器对与该存储对象相关的访问请求进行过滤。
该磁盘包括至少一个该存储对象。
在本实施例中,如图2所示,磁盘中数据的存储模型定义如下:磁盘的组织是基于哈希(Hash)的方式,磁盘被划分成若干个固定大小的存储单元,每个存储单元内可以看作是由若干个哈希桶构成的一张哈希表,哈希值相同的若干条记录合并混合存储在哈希桶中。其中,Si表示固定大小的存储单元,Bi表示存储单元内的哈希桶,Ki表示哈希桶中的一条记录。其中,{K1、K2、K3 …… Kn}∈Bi,{B1、B2、B3…… Bn}∈Si,i=1,2,3,……n。在分布式存储系统中,标识首先通过分布式路由的方式定位到一个存储单元,再通过计算哈希的方式定位到一个哈希桶,读取哈希桶中的记录集合,遍历查找或将更新后的记录集合重新写入到哈希桶中。
在本实施例中,存储对象可以视作上述哈希桶。
在应用布隆过滤器的过程中,有几个关键性的参数需要考虑:(1) 哈希函数的个数K;(2) 误判率F;(3) 有限集合中标识的个数N;(4)布隆过滤器位数组的大小M;其中M/N、F、K满足一定的关系:F=Function(M/N,K),Function的关系可参照表1所示。
在基于哈希的方式的数据存储模型中,哈希桶中标识的个数是个有限的集合{K1、K2、K3 …… Kn},在一个有限的集合中来利用布隆过滤器实现防止空查询。
在本实施例中,构建模块1001所构建的布隆过滤器具有布隆过滤器空间,如图3所示,该布隆过滤器空间由初始化标志位和布隆过滤器位组成,该布隆过滤器位可以用于防止空查询。该初始化标志位占用一位内存,初始设置可以为0,用于标识该存储对象没有进行过访问操作。
在本实施例中,由于在该磁盘执行针对存储对象的访问时利用布隆过滤器来对相关的访问请求进行过滤,因此可以防止空查询的现象的发生,减少磁盘访问(输入/输出)资源的消耗。
本发明的以Hash方式组织的磁盘访问控制装置的第三实施例与上述第一实施例相似,不同之处在于:
该初始化模块还用于在该磁盘执行第一次针对存储对象的访问时初始化该布隆过滤器。
在本实施例中,当磁盘第一次针对存储对象(哈希桶)进行访问时,由于会读取哈希桶中所有的记录集合,可用有限集合中的所有记录来初始化布隆过滤器,并将初始化标志位设置为1,初始化布隆过滤器的方式如图4B所示。
参考图11,图11为本发明的以Hash方式组织的磁盘访问控制装置的第三实施例的框图。本实施例与上述第一或第二实施例相似,不同之处在于:
在本实施例中,该访问为输出访问,该输出访问可以与读操作、查询操作相似;
本实施例的以Hash方式组织的磁盘访问控制装置还包括判断模块1004。
判断模块1004用于在该磁盘执行针对该存储对象的输出访问时,利用该布隆过滤器进行过滤,判断该存储对象中是否存在第一标识(Key)并生成判断结果。
该访问控制模块1003还用于在该判断结果为该存储对象中存在该第一标识时,允许该磁盘执行针对该存储对象的输出访问。
该访问控制模块1003还用于在该判断结果为该存储对象中不存在该第一标识时,退出针对该存储对象的输出访问并返回,这也可以理解为利用该布隆过滤器过滤相关的输出访问请求。
在本实施例中,由于利用了布隆过滤器来判断该存储对象中是否存在该第一标识,以此判断磁盘针对该存储对象的访问是否是空的访问,即,空查询,因此可以识别出空查询的情况。由于在该磁盘针对该存储对象的输出访问不是空查询的情况下,允许该磁盘的输出访问,并且,在该磁盘针对该存储对象的输出访问为空查询的情况下,利用布隆过滤器过滤相关的访问请求,因此可以减少不必要的、无效的磁盘输出访问资源的消耗。
参考图12,图12为本发明的以Hash方式组织的磁盘访问控制装置的第四实施例的框图。本实施例与上述第一、第二、第三实施例中的任意一个实施例相似,不同之处在于:
在内存受限的磁盘(存储系统)中,布隆过滤器资源是非常有限的,为此,将有限的布隆过滤器资源利用到空查询度较高的存储对象中,将可以在较少的内存下达到更好的防止空查询的效果。
这里所讲的存储对象可以是存储单元内的哈希桶;这里所讲的布隆过滤器资源可以是所构建的布隆过滤器完成过滤访问请求的能力,或者可以是所能够构建的布隆过滤器的数量,或者可以是哈希桶的布隆过滤器内存空间。
为了合理地调度布隆过滤器资源,使得在布隆过滤器资源有限的情况下能够更好地防止空查询,从而减少磁盘访问(输入/输出)资源的消耗。为此,在本实施例中,该磁盘包括与该存储对象相关的第一集合和第二集合。
本实施例的以Hash方式组织的磁盘访问控制装置还包括选择模块1006、统计模块1007、计算模块1008和分配模块1005。
选择模块1006用于选择该第一集合,使得该布隆过滤器对与该第一集合相关的访问请求进行过滤。
统计模块1007用于统计空查询次数和总输出访问次数,该空查询次数为该布隆过滤器所过滤的访问请求的次数,该总输出访问次数为与该第一集合相关的访问请求的所有的次数。
计算模块1008用于根据该空查询次数和该总输出访问次数计算该第一集合中所有存储对象的空查询度。具体地,计算模块1008根据空查询度计算公式计算该第一集合中所有存储对象的空查询度。
该空查询度计算公式为:
空查询度=空查询次数/总输出访问次数。
该选择模块1006还用于根据该空查询度选择第一存储对象,该第一存储对象属于该第一集合,该第一存储对象的空查询度位于一阈值范围内。在这里,我们可以将空查询度位于该阈值范围内的情况定义为空查询度较低的情况,而数值空查询度位于该阈值范围外的情况定义为空查询度较高的情况。例如,该阈值范围可以为0至90%,相应地,该阈值范围外的范围为90%至100%;该阈值范围还可以是0至60%,相应地,该阈值范围外的范围为60%至100%;该阈值范围还可以是0至30%,相应地,该阈值范围外的范围为30%至100%。
分配模块1005用于将作用于第一存储对象的布隆过滤器分配给第二存储对象。
该第二存储对象属于该第二集合。
具体地,在本实施例中,在初始状态时,依据可用内存的大小,选取一部分的存储对象分配布隆过滤器资源,另外一部分的存储对象则等待布隆过滤器资源的调度,两种集合表示如下:
{R11,R12,R13,......,Rij}∈R,{W11,W12,W13,......,Wij}∈W,其中,Rij和Wij分别表示一个存储对象,R表示已分配(调度)布隆过滤器资源的存储对象的集合,W表示等待分配(调度)布隆过滤器资源的存储对象的集合。
在计算出集合R中所有的存储对象的空查询度之后,释放空查询度较低或者最低的若干个存储对象的布隆过滤器资源,并将该所释放的布隆过滤器资源分配(调度)给集合W中的若干个存储对象。
通过上述针对布隆过滤器资源的调度,可以达到更好的防止空查询的效果,从而可以更好地减少磁盘访问资源的消耗。
参考图13,图13为本发明的以Hash方式组织的磁盘访问控制装置的第五实施例的框图。本实施例与上述第一、第二、第三、第四实施例中任意一项实施例相似,不同之处在于:
本实施例的以Hash方式组织的磁盘访问控制装置还包括时钟信号生成模块1009。
时钟信号生成模块1009用于生成时钟信号。
该计算模块1008还用于根据该时钟信号定时地计算该空查询度。
在本实施例中,由于根据时钟信号定时地或周期地计算该空查询度,使得该选择模块1006定时地或周期地选择第一存储对象,该分配模块1005定时地或周期地将作用于第一存储对象的布隆过滤器资源分配给第二存储对象,因此可以实现针对布隆过滤器资源的动态调整,使得防止空查询的效果能够得到优化,更好地减少磁盘访问资源的消耗。
在本发明的以Hash方式组织的磁盘访问控制装置的第六实施例中,该访问为输入访问。
该访问控制模块1003还用于在该磁盘执行针对该存储对象的输入访问之后,修改与该布隆过滤器相关的位。
在本实施例中,在该磁盘执行针对该存储对象的输入访问后修改与该布隆过滤器相关的位可以为布隆过滤器对访问请求进行过滤做准备,有利于更好地实现防止空查询,减少磁盘访问资源的消耗。
参考图14,图14为本发明的以Hash方式组织的磁盘访问控制装置的第七实施例的框图。本实施例与上述第一、第二、第三、第四、第五、第六实施例中任意一项实施例相似,不同之处在于:
本实施例的以Hash方式组织的磁盘访问控制装置还包括指令获取模块1010和删除模块1011。
指令获取模块1010用于获取与删除该磁盘中的第二标识相关的指令。
删除模块1011用于根据该指令删除该第二标识。
该初始化模块1002还用于在该删除模块1011删除该第二标识后初始化该磁盘中与该布隆过滤器相关的空间。
在本实施例中,由于在需要删除磁盘中的第二标识时删除该第二标识,避免了与该第二标识相关的存储对象出现空查询,因此可以减少出现空查询的可能性,减少磁盘访问资源的消耗;此外,由于在删除该第二标识后初始化与布隆过滤器相关的空间,因此可以更好地释放布隆过滤器资源,从而可以更好地对布隆过滤器资源进行分配(调度),有利于减少磁盘访问资源的消耗。
该存储对象为存储单元内的哈希桶,该布隆过滤器资源为哈希桶内的布隆过滤器内存空间。
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。
Claims (18)
1.一种以Hash方式组织的磁盘访问控制方法,其特征在于,所述方法包括以下步骤:
在所述磁盘中构建布隆过滤器;
读取存储对象中的记录集合;
利用所述布隆过滤器对与所述存储对象相关的访问请求进行过滤;
所述磁盘包括至少一个所述存储对象。
2.根据权利要求1所述的以Hash方式组织的磁盘访问控制方法,其特征在于,在所述磁盘执行第一次针对存储对象的访问时初始化所述布隆过滤器。
3.根据权利要求1或2所述的以Hash方式组织的磁盘访问控制方法,其特征在于,所述访问为输出访问;
所述方法还包括以下步骤:
在所述磁盘执行针对所述存储对象的输出访问时,利用所述布隆过滤器进行过滤,判断所述存储对象中是否存在第一标识并生成判断结果;
在所述判断结果为所述存储对象中存在所述第一标识时,允许所述磁盘执行针对所述存储对象的输出访问。
4.根据权利要求1或2所述的以Hash方式组织的磁盘访问控制方法,其特征在于,所述磁盘包括与所述存储对象相关的第一集合和第二集合;
所述方法还包括以下步骤:
选择所述第一集合,使得所述布隆过滤器对与所述第一集合相关的访问请求进行过滤。
5.根据权利要求4所述的以Hash方式组织的磁盘访问控制方法,其特征在于,所述方法还包括以下步骤:
统计空查询次数和总输出访问次数,所述空查询次数为所述布隆过滤器所过滤的访问请求的次数,所述总输出访问次数为与所述第一集合相关的访问请求的所有的次数;
根据所述空查询次数和所述总输出访问次数计算所述第一集合中所有存储对象的空查询度。
6.根据权利要求5所述的以Hash方式组织的磁盘访问控制方法,其特征在于,所述方法还包括以下步骤:
根据所述空查询度选择第一存储对象,所述第一存储对象属于所述第一集合,所述第一存储对象的空查询度位于一阈值范围内;
将作用于第一存储对象的布隆过滤器分配给第二存储对象;
所述第二存储对象属于所述第二集合。
7.根据权利要求6所述的以Hash方式组织的磁盘访问控制方法,其特征在于,所述方法还包括以下步骤:
生成时钟信号;
根据所述时钟信号定时地计算所述空查询度。
8.根据权利要求1至7任意一项所述的以Hash方式组织的磁盘访问控制方法,其特征在于,所述访问为输入访问;
所述方法还包括以下步骤:
在所述磁盘执行针对所述存储对象的输入访问之后,修改与所述布隆过滤器相关的位。
9.根据权利要求1至7任意一项所述的以Hash方式组织的磁盘访问控制方法,其特征在于,所述方法还包括以下步骤:
获取与删除所述磁盘中的第二标识相关的指令;
根据所述指令删除所述第二标识;
在删除所述第二标识后初始化所述磁盘中与所述布隆过滤器相关的空间。
10.一种以Hash方式组织的磁盘访问控制装置,其特征在于,所述装置包括:
构建模块,用于在所述磁盘中构建布隆过滤器;
初始化模块,用于读取存储对象中的记录集合;
访问控制模块,用于利用所述布隆过滤器对与所述存储对象相关的访问请求进行过滤;
所述磁盘包括至少一个所述存储对象。
11.根据权利要求10所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述初始化模块还用于在所述磁盘执行第一次针对存储对象的访问时初始化所述布隆过滤器。
12.根据权利要求10或11所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述访问为输出访问;
所述装置还包括:
判断模块,用于在所述磁盘执行针对所述存储对象的输出访问时,利用所述布隆过滤器进行过滤,判断所述存储对象中是否存在第一标识并生成判断结果;
所述访问控制模块还用于在所述判断结果为所述存储对象中存在所述第一标识时,允许所述磁盘执行针对所述存储对象的输出访问。
13.根据权利要求10或11所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述磁盘包括与所述存储对象相关的第一集合和第二集合;
所述装置还包括:
选择模块,用于选择所述第一集合,使得所述布隆过滤器对与所述第一集合相关的访问请求进行过滤。
14.根据权利要求13所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述装置还包括:
统计模块,用于统计空查询次数和总输出访问次数,所述空查询次数为所述布隆过滤器所过滤的访问请求的次数,所述总输出访问次数为与所述第一集合相关的访问请求的所有的次数;
计算模块,用于根据所述空查询次数和所述总输出访问次数计算所述第一集合中所有存储对象的空查询度。
15.根据权利要求14所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述选择模块还用于根据所述空查询度选择第一存储对象,所述第一存储对象属于所述第一集合,所述第一存储对象的空查询度位于一阈值范围内;
所述装置还包括:
分配模块,用于将作用于第一存储对象的布隆过滤器分配给第二存储对象;
所述第二存储对象属于所述第二集合。
16.根据权利要求15所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述装置还包括:
时钟信号生成模块,用于生成时钟信号;
所述计算模块还用于根据所述时钟信号定时地计算所述空查询度。
17.根据权利要求9至16任意一项所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述访问为输入访问;
所述访问控制模块还用于在所述磁盘执行针对所述存储对象的输入访问之后,修改与所述布隆过滤器相关的位。
18.根据权利要求9至16任意一项所述的以Hash方式组织的磁盘访问控制装置,其特征在于,所述装置还包括:
指令获取模块,用于获取与删除所述磁盘中的第二标识相关的指令;
删除模块,用于根据所述指令删除所述第二标识;
所述初始化模块还用于在所述删除模块删除所述第二标识后初始化所述磁盘中与所述布隆过滤器相关的空间。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310014430.4A CN103927124B (zh) | 2013-01-15 | 2013-01-15 | 以Hash方式组织的磁盘访问控制装置及方法 |
PCT/CN2014/070572 WO2014111005A1 (en) | 2013-01-15 | 2014-01-14 | Method and apparatus method and apparatus for controlling access to a hash-based disk |
US14/734,798 US10169250B2 (en) | 2013-01-15 | 2015-06-09 | Method and apparatus method and apparatus for controlling access to a hash-based disk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310014430.4A CN103927124B (zh) | 2013-01-15 | 2013-01-15 | 以Hash方式组织的磁盘访问控制装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927124A true CN103927124A (zh) | 2014-07-16 |
CN103927124B CN103927124B (zh) | 2018-03-13 |
Family
ID=51145361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310014430.4A Active CN103927124B (zh) | 2013-01-15 | 2013-01-15 | 以Hash方式组织的磁盘访问控制装置及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10169250B2 (zh) |
CN (1) | CN103927124B (zh) |
WO (1) | WO2014111005A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298934B1 (en) * | 2015-06-30 | 2016-03-29 | Linkedin Corporation | Managing presentation of online content |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276744A1 (en) * | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US20120102003A1 (en) * | 2010-10-20 | 2012-04-26 | International Business Machines Corporation | Parallel data redundancy removal |
CN102609446A (zh) * | 2012-01-05 | 2012-07-25 | 厦门市美亚柏科信息股份有限公司 | 一种分布式Bloom过滤系统及其使用方法 |
CN102663090A (zh) * | 2012-04-10 | 2012-09-12 | 华为技术有限公司 | 元数据查询方法和装置 |
CN102782643A (zh) * | 2010-03-10 | 2012-11-14 | Emc公司 | 使用布隆过滤器的索引搜索 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5813000A (en) * | 1994-02-15 | 1998-09-22 | Sun Micro Systems | B tree structure and method |
US8028133B2 (en) * | 2006-02-22 | 2011-09-27 | Oracle America, Inc. | Globally incremented variable or clock based methods and apparatus to implement parallel transactions |
US7937428B2 (en) * | 2006-12-21 | 2011-05-03 | International Business Machines Corporation | System and method for generating and using a dynamic bloom filter |
EP2306322A1 (en) * | 2009-09-30 | 2011-04-06 | Alcatel Lucent | Method for processing data packets in flow-aware network nodes |
US9047243B2 (en) * | 2011-12-14 | 2015-06-02 | Ip Reservoir, Llc | Method and apparatus for low latency data distribution |
CN103870492B (zh) * | 2012-12-14 | 2017-08-04 | 腾讯科技(深圳)有限公司 | 一种基于键排序的数据存储方法和装置 |
-
2013
- 2013-01-15 CN CN201310014430.4A patent/CN103927124B/zh active Active
-
2014
- 2014-01-14 WO PCT/CN2014/070572 patent/WO2014111005A1/en active Application Filing
-
2015
- 2015-06-09 US US14/734,798 patent/US10169250B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102782643A (zh) * | 2010-03-10 | 2012-11-14 | Emc公司 | 使用布隆过滤器的索引搜索 |
US20110276744A1 (en) * | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US20120102003A1 (en) * | 2010-10-20 | 2012-04-26 | International Business Machines Corporation | Parallel data redundancy removal |
CN102609446A (zh) * | 2012-01-05 | 2012-07-25 | 厦门市美亚柏科信息股份有限公司 | 一种分布式Bloom过滤系统及其使用方法 |
CN102663090A (zh) * | 2012-04-10 | 2012-09-12 | 华为技术有限公司 | 元数据查询方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US10169250B2 (en) | 2019-01-01 |
US20150278117A1 (en) | 2015-10-01 |
CN103927124B (zh) | 2018-03-13 |
WO2014111005A1 (en) | 2014-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
US10984020B2 (en) | System and method for supporting large queries in a multidimensional database environment | |
CN101315628B (zh) | 内存数据库系统及实现内存数据库的方法和装置 | |
CN101996067B (zh) | 一种数据导出的方法和装置 | |
CN101241476B (zh) | 一种虚拟存储系统和方法 | |
CN103440208B (zh) | 一种数据存储的方法及装置 | |
CN103678520A (zh) | 一种基于云计算的多维区间查询方法及其系统 | |
CN101620609A (zh) | 多租户数据存储和访问方法和装置 | |
CN107256196A (zh) | 基于闪存阵列的支持零拷贝的缓存系统及方法 | |
CN104133661A (zh) | 基于列存储的多核并行哈希分区优化方法 | |
CN103678160A (zh) | 一种存储数据的方法和装置 | |
CN103365971A (zh) | 基于云计算的海量数据访问处理系统 | |
CN103218305B (zh) | 存储空间的分配方法 | |
CN103886109A (zh) | 一种实现数据库行锁的方法及装置 | |
CN103885887A (zh) | 用户数据存储方法、读取方法及系统 | |
CN104778077A (zh) | 基于随机和连续磁盘访问的高速核外图处理方法及系统 | |
CN110362566A (zh) | 分层htap数据库的混合数据布局中的数据布置 | |
CN104270412A (zh) | 一种基于Hadoop分布式文件系统的三级缓存方法 | |
CN103246549A (zh) | 一种数据转存的方法及系统 | |
CN107943542A (zh) | 一种配置信息管理方法、装置、可读介质及存储控制器 | |
CN104869140A (zh) | 多集群系统和控制多集群系统的数据存储的方法 | |
CN102542041A (zh) | 栅格数据处理方法及系统 | |
CN102932416A (zh) | 一种信息流任务的中间数据存储方法、处理方法及装置 | |
CN104050193A (zh) | 生成报文的方法和实现该方法的数据处理系统 | |
JP4673299B2 (ja) | 情報処理方法及び情報処理システム |
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 |