CN110515897B - Lsm存储系统读性能的优化方法及系统 - Google Patents
Lsm存储系统读性能的优化方法及系统 Download PDFInfo
- Publication number
- CN110515897B CN110515897B CN201910647435.8A CN201910647435A CN110515897B CN 110515897 B CN110515897 B CN 110515897B CN 201910647435 A CN201910647435 A CN 201910647435A CN 110515897 B CN110515897 B CN 110515897B
- Authority
- CN
- China
- Prior art keywords
- data
- num
- bfarray
- tree
- hash function
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000006870 function Effects 0.000 claims description 65
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/2246—Trees, e.g. B+trees
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/282—Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种LSM存储系统读性能的优化方法及系统,包括:初始步骤:在存储系统中维护一个预设长度的Int型的数组,作为Bloom Filter的标记存储数组,并设计一个Hash函数组;写数据步骤:在写数据时,根据LSM算法将数据写入树中,同时根据Hash函数组修改标记存储数组中的相应位置的值;读数据步骤:在读取数据时,根据Hash函数组,计算出数据存在的树的编号,搜索指定树结构,获取数据;删除数据步骤:在删除数据时,根据Bloom Filter找到数据所在的位置,执行删除操作,同时标记存储数组中相应位置的值做减一操作。有效的提高LSM存储系统的读效率。
Description
技术领域
本发明涉及分布式存储领域,具体地,涉及LSM存储系统读性能的优化方法及系统。
背景技术
随着科学技术的进步,人类社会正在进入一个数字信息爆炸的时代。互联网的普及为传统行业的发展带来了新的增长点,各行各业纷纷开始向信息化转型,数据的总量正在几何级数增长。面对数据的大爆炸,需要解决的第一个问题就是如何优化文件组织方式,提高存储系统的读写能力,实现高效存储。显然传统的单个树结构的存储方式已经远远满足不了现实的要求。为了满足更加复杂读写场景,基于日志的策略被提出来,代表策略有Hash存储方式,B+树存储方式,搜索树存储方式, LSM等等。
Hash存储是将数据分割为不同的bucket,并采用hash函数将数据映射到相应的位置。在数据量较小的情况下,Hash存储的读写速度为O(1),但是在数据量很大时,会存在大量的冲突,同时会存在数据倾斜的问题,因为很难找到一个hash函数来均衡的分布所有的数据。B+树以页面为组织单位,每个页面对应于B+树的一个节点,非叶子节点保存索引信息,叶子节点保存数据,并有一定缓存机制来提升数据的读性能,但是B+树中数据的写性能不是很理想。搜索树则是依据一定的规则建立树结构,将文件数据有序保存,使用二分查找来完成特定的数据查找,这损失了部分的写性能,同时也存在数据倾斜的问题。LSM即LogStructured Merge Trees,最早是由谷歌公司发表的BigTable论文中提出,并在列式存储构架Hbase中进行了实践。LSM的在写数据的过程中将对数据的修改增量保存在内存中,达到指定的大小后,将这些操作批量写入磁盘,在读取的时候,先看内存中是否可以命中,如果没有命中,在从后往前依次读取磁盘中的数据。LSM可以提供比传统的B+树或者 Hash更好的写吞吐量,在现在的大规模数据存储系统中得到了广泛的应用。但是在数据读取时,由于需要遍历所有的小树,读性能相对较慢,所以如何提升LSM的读性能具有重要的研究和使用价值。
Bloom Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。它是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。
公开号:CNCN108021702A的专利公开了基于LSM-tree的分级存储方法、装置、OLAP数据库系统及介质,利用LSM-tree的性质,提出了一种分级存储的方法,对数据库文件进行组织与合并。对需要合并的文件进行了分类,根据分类结果进行不同的合并,从而提高文件合并的效率。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种LSM存储系统读性能的优化方法及系统。
根据本发明提供的一种LSM存储系统读性能的优化方法,包括:
初始步骤:在存储系统中维护一个预设长度的Int型的数组,作为Bloom Filter的标记存储数组,并设计一个Hash函数组;
写数据步骤:在写数据时,根据LSM算法将数据写入树中,同时根据Hash函数组修改标记存储数组中的相应位置的值;
读数据步骤:在读取数据时,根据Hash函数组,计算出数据存在的树的编号,搜索指定树结构,获取数据;
删除数据步骤:在删除数据时,根据Bloom Filter找到数据所在的位置,执行删除操作,同时标记存储数组中相应位置的值做减一操作。
优选地,所述初始步骤包括:
在存储系统中创建一个长度为N的int型的数组BFArray[N],并将BFArray的各个值设置为0;
设计一个Hash函数组,包含3个Hash函数,分别为:
F1(num,i)=(num%N+i%N)/2;
F2(num,i)=(num2+i2)%N;
F3(num,i)=(num+i)2%N;
其中num代表将要存储的数据,i代表数据所在的日志树的编号。
优选地,所述写数据步骤包括:
将LSM中的日志树进行编号为从1到n,最早建立的树编号最小,内存中现有的树编号最大,按照LSM算法将数据写入指定的日志树i中;
将数据num和所在树的编号i作为参数传到Hash函数组中,分别计算Hash函数的值,计算结果如下
F1(num,i)=(num%N+i%N)/2=write1;
F2(num,i)=(num2+i2)%N=write2;
F3(num,i)=(num+i)2%N=write3;
根据计算结果修改BFArray中各个值的大小为写数据时被Hash函数组命中的次数:
BFArray[write1]++;
BFArray[write2]++;
BFArray[write3]++。
优选地,所述读数据步骤包括:
创建一个列表readList存储数据的日志树的编号,依次将num和日志树的编号1到n带入Hash函数组,得到的结果如下:
F1(num,i)=read1;
F2(num,i)=read2;
F3(num,i)=read3;
如果有BFArray[read1]>0&&BFArray[read2]>0&&BFArray[read3]>0,则将i 存入readList中;
读取readList中的所有值,并依次遍历对应的日志树,查找数据的具体位置,读取数据。
优选地,所述删除数据步骤包括:
通过读数据的步骤找到数据的所在日志树i,并执行删除操作;
根据Hash函数组计算出BFArray中相应的值:
F1(num,i)=delete1;
F2(num,i)=delete2;
F3(num,i)=delete3;
然后BFArray中对应位置的值执行减一操作:
BFArray[delete1]--;
BFArray[delete2]--;
BFArray[delete3]--。
根据本发明提供的一种LSM存储系统读性能的优化系统,包括:
初始模块:在存储系统中维护一个预设长度的Int型的数组,作为Bloom Filter的标记存储数组,并设计一个Hash函数组;
写数据模块:在写数据时,根据LSM算法将数据写入树中,同时根据Hash函数组修改标记存储数组中的相应位置的值;
读数据模块:在读取数据时,根据Hash函数组,计算出数据存在的树的编号,搜索指定树结构,获取数据;
删除数据模块:在删除数据时,根据Bloom Filter找到数据所在的位置,执行删除操作,同时标记存储数组中相应位置的值做减一操作。
优选地,所述初始模块包括:
在存储系统中创建一个长度为N的int型的数组BFArray[N],并将BFArray的各个值设置为0;
设计一个Hash函数组,包含3个Hash函数,分别为:
F1(num,i)=(num%N+i%N)/2;
F2(num,i)=(num2+i2)%N;
F3(num,i)=(num+i)2%N;
其中num代表将要存储的数据,i代表数据所在的日志树的编号。
优选地,所述写数据模块包括:
将LSM中的日志树进行编号为从1到n,最早建立的树编号最小,内存中现有的树编号最大,按照LSM算法将数据写入指定的日志树i中;
将数据num和所在树的编号i作为参数传到Hash函数组中,分别计算Hash函数的值,计算结果如下
F1(num,i)=(num%N+i%N)/2=write1;
F2(num,i)=(num2+i2)%N=write2;
F3(num,i)=(num+i)2%N=write3;
根据计算结果修改BFArray中各个值的大小为写数据时被Hash函数组命中的次数:
BFArray[write1]++;
BFArray[write2]++;
BFArray[write3]++。
优选地,所述读数据模块包括:
创建一个列表readList存储数据的日志树的编号,依次将num和日志树的编号1到n带入Hash函数组,得到的结果如下:
F1(num,i)=read1;
F2(num,i)=read2;
F3(num,i)=read3;
如果有BFArray[read1]>0&&BFArray[read2]>0&&BFArray[read3]>0,则将i 存入readList中;
读取readList中的所有值,并依次遍历对应的日志树,查找数据的具体位置,读取数据。
优选地,所述删除数据模块包括:
通过读数据的模块找到数据的所在日志树i,并执行删除操作;
根据Hash函数组计算出BFArray中相应的值:
F1(num,i)=delete1;
F2(num,i)=delete2;
F3(num,i)=delete3;
然后BFArray中对应位置的值执行减一操作:
BFArray[delete1]--;
BFArray[delete2]--;
BFArray[delete3]--。
与现有技术相比,本发明具有如下的有益效果:
1)实现了LSM存储模型中读性能的优化。
2)通过修改BFArray的值,优化了删除数据的操作。
3)通过Hash函数组的设计减少了冲突的概率,提高了数据的命中率。
4)为海量数据存储提供了解决方案。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为Bloom Filter标记存储数组的结构示意图;
图2为LSM树结构图的结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
针对LSM树读性能方面存在的问题,本申请提出了利用Bloom Filter来减小读数据的查询范围,避免不必要的搜索,以来提升LSM结构在读数据时的速度。本申请维护了一个大小为N的位图,利用m个hash函数组成的Hash函数组。在数据写入时,将树结构和数据信息作为参数,根据hash函数结果修改位图;在数据读取时,计算hash函数组的值,并查看位图中他们的状态信息,当所有的状态信息都满足时,才去搜索相应的树结构。同时,为了更好的支持数据的删除操作,对于Bloom Filter的位图的值采取对应值加一的操作,在删除数据时,对应的位图位置减一。这样来避免位图只采用0 和1来标记时数据删除时造成大量的脏数据的情况。
本方法主要包括Bloom Filter中hash函数组的创建与维护,数据写入时位图状态的改变,数据读取时Bloom Filter的筛选,数据删除时LSM树结构与位图的改变四个模块。下面来详细介绍各个模块的功能。
如图1所示,一种LSM存储系统读性能的优化方法,包括步骤:
1.在存储系统中维护一个长度为N的Int型的数组,作为Bloom Filter的标记存储数组,参考图2所示,并设计3个符合要求的Hash函数。
2.在写数据时,根据原有的LSM算法将数据写入树中,树的结构参考图2所示,同时根据hash函数组修改Bloon Filter数组中的相应位置的值。
3.在读取数据时,根据Hash函数组,计算出数据可能存在的树的编号,搜索指定树结构,获取数据。
4.在删除数据时,首先根据Bloom Filter算法找到数据所在的位置,然后执行删除操作,同时Bloom Filter数组中相应位置的值做减一操作。
其中,步骤1的详细过程如下:
1.1在存储系统中创建一个长度为N的int型的数组BFArray[N],并将BFArray的各个值设置为0。其中,N的大小由所要存储的数据量和整个系统所能容忍的错误率共同决定,在错误率不大于ε的情况下,N至少要等于m log2(1/ε),才能表示任意m个元素的集合。
1.2设计一个Hash函数组,包含3个Hash函数,分别如下:
F1(num,i)=(num%N+i%N)/2;
F2(num,i)=(num2+i2)%N;
F3(num,i)=(num+i)2%N;
其中num代表将要存储的数据,i代表数据所在的日志树的编号。
步骤2的详细过程如下:
2.1将LSM中的日志树进行编号为从1到n,最早建立的树编号最小,内存中现有的树编号最大。按照LSM原有算法将数据写入指定的日志树i中。
2.2将数据num和其所在树的编号i作为参数传到Hash函数组中,分别计算Hash 函数的值。计算结果如下:
F1(num,i)=(num%N+i%N)/2=write1;
F2(num,i)=(num2+i2)%N=write2;
F3(num,i)=(num+i)2%N=write3;
2.3根据2.2计算结果修改BFArray中指定位置的值:
BFArray[write1]++;
BFArray[write2]++;
BFArray[write3]++;
即BFArray中各个值的大小为写数据时被Hash函数组命中的次数。
步骤3的详细过程如下:
3.1数据读取过程中,创建一个列表readList用来存储数据可能存在的日志树的编号。依次将num和日志树的编号1到n带入Hash函数组,得到的结果如下分别为:
F1(num,i)=read1;
F2(num,i)=read2;
F3(num,i)=read3;
如果有BFArray[read1]>0&&BFArray[read2]>0&&BFArray[read3]>0,则将i 存入readList中。
3.2读取readList中的所有值,并依次遍历对应的日志树,查找数据的具体位置,读取数据。
步骤4的详细过程如下:
4.1删除数据时首先通过读数据的步骤找到数据的所在日志树i,并执行删除操作。
4.2根据Hash函数组计算出BFArray中相应的值:
F1(num,i)=delete1;
F2(num,i)=delete2;
F3(num,i)=delete3;
然后执行如下的修改:
BFArray[delete1]--;
BFArray[delete2]--;
BFArray[delete3]--;
即执行数据删除操作时,BFArray中对应位置的值执行减一操作。
在上述一种LSM存储系统读性能的优化方法的基础上,本发明还提供一种LSM存储系统读性能的优化系统,包括:
初始模块:在存储系统中维护一个预设长度的Int型的数组,作为Bloom Filter的标记存储数组,并设计一个Hash函数组;
写数据模块:在写数据时,根据LSM算法将数据写入树中,同时根据Hash函数组修改标记存储数组中的相应位置的值;
读数据模块:在读取数据时,根据Hash函数组,计算出数据存在的树的编号,搜索指定树结构,获取数据;
删除数据模块:在删除数据时,根据Bloom Filter找到数据所在的位置,执行删除操作,同时标记存储数组中相应位置的值做减一操作。
实施举例1:在分布式文件系统中,对于文件的存储可以利用本方法,先利用LSM树本身的优势,将数据进行写入,同时维护一个Bloom Filter的位图,在数据的读取和删除时借助于位图的信息,极大的提高了存储系统的性能。
实施举例2:在海量数据存储中,可以利用本方法构建系统的LSM树。在充分利用LSM树写性能的基础上提高了它的读性能,同时在数据删除时及时的维护了数据和BFArray数组的一致性。为实际的生产提供了有效的解决方案。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (8)
1.一种LSM存储系统读性能的优化方法,其特征在于,包括:
初始步骤:在存储系统中维护一个预设长度的Int型的数组,作为Bloom Filter的标记存储数组,并设计一个Hash函数组;
写数据步骤:在写数据时,根据LSM算法将数据写入树中,同时根据Hash函数组修改标记存储数组中的相应位置的值;
读数据步骤:在读取数据时,根据Hash函数组,计算出数据存在的树的编号,搜索指定树结构,获取数据;
删除数据步骤:在删除数据时,根据Bloom Filter找到数据所在的位置,执行删除操作,同时标记存储数组中相应位置的值做减一操作;
所述初始步骤包括:
在存储系统中创建一个长度为N的int型的数组BFArray[N],并将BFArray的各个值设置为0;
设计一个Hash函数组,包含3个Hash函数,分别为:
F1(num,i)=(num%N+i%N)/2;
F2(num,i)=(num2+i2)%N;
F3(num,i)=(num+i)2%N;
其中num代表将要存储的数据,i代表数据所在的日志树的编号。
2.根据权利要求1所述的LSM存储系统读性能的优化方法,其特征在于,所述写数据步骤包括:
将LSM中的日志树进行编号为从1到n,最早建立的树编号最小,内存中现有的树编号最大,按照LSM算法将数据写入指定的日志树i中;
将数据num和所在树的编号i作为参数传到Hash函数组中,分别计算Hash函数的值,计算结果如下
F1(num,i)=(num%N+i%N)/2=write1;
F2(num,i)=(num2+i2)%N=write2;
F3(num,i)=(num+i)2%N=write3;
根据计算结果修改BFArray中各个值的大小为写数据时被Hash函数组命中的次数:
BFArray[write1]++;
BFArray[write2]++;
BFArray[write3]++。
3.根据权利要求1所述的LSM存储系统读性能的优化方法,其特征在于,所述读数据步骤包括:
创建一个列表readList存储数据的日志树的编号,依次将num和日志树的编号1到n带入Hash函数组,得到的结果如下:
F1(num,i)=read1;
F2(num,i)=read2;
F3(num,i)=read3;
如果有BFArray[read1]>0&&BFArray[read2]>0&&BFArray[read3]>0,则将i存入readList中;
读取readList中的所有值,并依次遍历对应的日志树,查找数据的具体位置,读取数据。
4.根据权利要求1所述的LSM存储系统读性能的优化方法,其特征在于,所述删除数据步骤包括:
通过读数据的步骤找到数据的所在日志树i,并执行删除操作;
根据Hash函数组计算出BFArray中相应的值:
F1(num,i)=delete1;
F2(num,i)=delete2;
F3(num,i)=delete3;
然后BFArray中对应位置的值执行减一操作:
BFArray[delete1]--;
BFArray[delete2]--;
BFArray[delete3]--。
5.一种LSM存储系统读性能的优化系统,其特征在于,包括:
初始模块:在存储系统中维护一个预设长度的Int型的数组,作为Bloom Filter的标记存储数组,并设计一个Hash函数组;
写数据模块:在写数据时,根据LSM算法将数据写入树中,同时根据Hash函数组修改标记存储数组中的相应位置的值;
读数据模块:在读取数据时,根据Hash函数组,计算出数据存在的树的编号,搜索指定树结构,获取数据;
删除数据模块:在删除数据时,根据Bloom Filter找到数据所在的位置,执行删除操作,同时标记存储数组中相应位置的值做减一操作;
所述初始模块包括:
在存储系统中创建一个长度为N的int型的数组BFArray[N],并将BFArray的各个值设置为0;
设计一个Hash函数组,包含3个Hash函数,分别为:
F1(num,i)=(num%N+i%N)/2;
F2(num,i)=(num2+i2)%N;
F3(num,i)=(num+i)2%N;
其中num代表将要存储的数据,i代表数据所在的日志树的编号。
6.根据权利要求5所述的LSM存储系统读性能的优化系统,其特征在于,所述写数据模块包括:
将LSM中的日志树进行编号为从1到n,最早建立的树编号最小,内存中现有的树编号最大,按照LSM算法将数据写入指定的日志树i中;
将数据num和所在树的编号i作为参数传到Hash函数组中,分别计算Hash函数的值,计算结果如下
F1(num,i)=(num%N+i%N)/2=write1;
F2(num,i)=(num2+i2)%N=write2;
F3(num,i)=(num+i)2%N=write3;
根据计算结果修改BFArray中各个值的大小为写数据时被Hash函数组命中的次数:
BFArray[write1]++;
BFArray[write2]++;
BFArray[write3]++。
7.根据权利要求5所述的LSM存储系统读性能的优化系统,其特征在于,所述读数据模块包括:
创建一个列表readList存储数据的日志树的编号,依次将num和日志树的编号1到n带入Hash函数组,得到的结果如下:
F1(num,i)=read1;
F2(num,i)=read2;
F3(num,i)=read3;
如果有BFArray[read1]>0&&BFArray[read2]>0&&BFArray[read3]>0,则将i存入readList中;
读取readList中的所有值,并依次遍历对应的日志树,查找数据的具体位置,读取数据。
8.根据权利要求5所述的LSM存储系统读性能的优化系统,其特征在于,所述删除数据模块包括:
通过读数据的模块找到数据的所在日志树i,并执行删除操作;
根据Hash函数组计算出BFArray中相应的值:
F1(num,i)=delete1;
F2(num,i)=delete2;
F3(num,i)=delete3;
然后BFArray中对应位置的值执行减一操作:
BFArray[delete1]--;
BFArray[delete2]--;
BFArray[delete3]--。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910647435.8A CN110515897B (zh) | 2019-07-17 | 2019-07-17 | Lsm存储系统读性能的优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910647435.8A CN110515897B (zh) | 2019-07-17 | 2019-07-17 | Lsm存储系统读性能的优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110515897A CN110515897A (zh) | 2019-11-29 |
CN110515897B true CN110515897B (zh) | 2021-11-23 |
Family
ID=68623024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910647435.8A Active CN110515897B (zh) | 2019-07-17 | 2019-07-17 | Lsm存储系统读性能的优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515897B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104403B (zh) * | 2019-11-30 | 2022-06-07 | 北京浪潮数据技术有限公司 | 一种lsm树数据处理方法、系统、设备及计算机介质 |
CN111597146B (zh) * | 2020-05-20 | 2023-04-07 | 浙江大华技术股份有限公司 | 视频文件处理方法及装置、存储介质、电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787093A (zh) * | 2016-03-17 | 2016-07-20 | 清华大学 | 一种基于LSM-Tree结构的日志文件系统的构建方法 |
WO2017185210A1 (zh) * | 2016-04-25 | 2017-11-02 | 华为技术有限公司 | 一种使用布隆过滤器过滤文件的方法及装置 |
CN110347660A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411840B2 (en) * | 2014-04-10 | 2016-08-09 | Facebook, Inc. | Scalable data structures |
US10592348B2 (en) * | 2016-06-17 | 2020-03-17 | Acronis International Gmbh | System and method for data deduplication using log-structured merge trees |
US10614055B2 (en) * | 2016-12-29 | 2020-04-07 | Emc Ip Holding Cimpany Llc | Method and system for tree management of trees under multi-version concurrency control |
US10515052B2 (en) * | 2017-07-20 | 2019-12-24 | Vmware, Inc. | File system that supports both case sensitive and case insensitive directory lookup |
-
2019
- 2019-07-17 CN CN201910647435.8A patent/CN110515897B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787093A (zh) * | 2016-03-17 | 2016-07-20 | 清华大学 | 一种基于LSM-Tree结构的日志文件系统的构建方法 |
WO2017185210A1 (zh) * | 2016-04-25 | 2017-11-02 | 华为技术有限公司 | 一种使用布隆过滤器过滤文件的方法及装置 |
CN110347660A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
Non-Patent Citations (2)
Title |
---|
Zing Database: high-performance key-value store for large-scale storage service;Nguyen, T.T.,et al.;《Vietnam J Comput Sci》;20140817(第2期);全文 * |
基于LSM-tree键值系统读性能优化;张月明;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20190115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110515897A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9672235B2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
CN111399777B (zh) | 一种基于数据值分类的差异化键值数据存储方法 | |
US9195657B2 (en) | Columnar storage of a database index | |
CN105912687B (zh) | 海量分布式数据库存储单元 | |
CN105117415B (zh) | 一种优化的ssd数据更新方法 | |
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
EP3362916B1 (en) | Signature-based cache optimization for data preparation | |
CN103229164B (zh) | 数据访问方法和装置 | |
CN105320775A (zh) | 数据的存取方法和装置 | |
WO2018205151A1 (zh) | 数据更新方法和存储装置 | |
CN103176754A (zh) | 一种海量小文件读取存储方法 | |
US10509780B2 (en) | Maintaining I/O transaction metadata in log-with-index structure | |
CN113535670B (zh) | 一种虚拟化资源镜像存储系统及其实现方法 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
US10642815B2 (en) | Step editor for data preparation | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN110515897B (zh) | Lsm存储系统读性能的优化方法及系统 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN113297432B (zh) | 用于分区拆分与合并的方法、处理器可读介质和系统 | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
JP6006740B2 (ja) | インデックス管理装置 | |
Petrov | Algorithms behind modern storage systems | |
CN114461635A (zh) | 一种MySQL数据库数据存储方法、装置和电子设备 | |
US11914587B2 (en) | Systems and methods for key-based indexing in storage devices |
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 |