CN114237507A - 管理数据的方法及装置 - Google Patents
管理数据的方法及装置 Download PDFInfo
- Publication number
- CN114237507A CN114237507A CN202111527352.9A CN202111527352A CN114237507A CN 114237507 A CN114237507 A CN 114237507A CN 202111527352 A CN202111527352 A CN 202111527352A CN 114237507 A CN114237507 A CN 114237507A
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- manual
- merging
- request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/284—Relational databases
-
- 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/0643—Management of files
-
- 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
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种管理数据的方法及装置。该方法应用于基于日志结构合并LSM树的数据库,所述LSM树包括用于存储数据的多层结构,所述多层结构的存储容量从首层至最后一层逐渐增大,所述方法包括:接收第一请求,所述第一请求用于请求执行手动合并;如果所述LSM树的第K层和第N层均存储有数据,且所述第K层与所述第N层之间的中间层均为未存储数据的空白层,则控制所述手动合并的过程,使得所述手动合并的过程在执行至所述第N层之前停止,其中所述第N层为所述多层结构的最后一层,且K小于N。
Description
本申请为申请号202111289490.8、申请日2021年11月02日、发明名称“管理数据的方法及装置”案件的分案申请。
技术领域
本公开涉及数据存储技术领域,并且更为具体地,涉及一种管理数据的方法及装置。
背景技术
日志结构合并(Log Structured Merge,LSM)树经常被应用于非关系型数据库。在基于LSM树的存储***中,一般需要通过合并(Compaction)机制对一些数据进行压缩或删除,以提高***的吞吐量。
在一些特殊情况,会出现LSM树的第K层和最后一层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层的现象。此时,如果收到手动合并(ManualCompaction)请求,则手动合并过程通常会执行至最后一层。在将第K层中的数据与最后一层中的数据合并前,需要将最后一层中的需要参与合并的数据临时新拷贝一份,等与新拷贝的数据合并完成之后,再将与新拷贝数据对应的老旧数据删除。但是,第K层中的数据通常会与最后一层中的几乎所有数据合并,而最后一层的数据存储量非常大,几乎占整个LSM树的存储空间的约90%。当存储***的存储空间不足以支持上述临时拷贝时,就会出现拷贝失败的问题。
发明内容
本公开提供一种管理数据的方法及装置,以降低手动合并过程中出现拷贝失败的问题的可能性。
第一方面,提供一种管理数据的方法,所述方法应用于基于日志结构合并LSM树的数据库,所述LSM树包括用于存储数据的多层结构,所述多层结构的存储容量从首层至最后一层逐渐增大,所述方法包括:接收第一请求,所述第一请求用于请求执行手动合并;如果所述LSM树的第K层和第N层均存储有数据,且所述第K层与所述第N层之间的中间层均为未存储数据的空白层,则控制所述手动合并的过程,使得所述手动合并的过程在执行至所述第N层之前停止,其中所述第N层为所述多层结构的最后一层,且K小于N。
第二方面,提供一种管理数据的装置,所述装置应用于基于LSM树的数据库,所述LSM树包括用于存储数据的多层结构,所述多层结构的存储容量从首层至最后一层逐渐增大,所述装置包括:接收模块,用于接收第一请求,所述第一请求用于请求执行手动合并;控制模块,如果所述LSM树的第K层和第N层均存储有数据,且所述第K层与所述第N层之间的中间层均为未存储数据的空白层,则用于控制所述手动合并的过程,使得所述手动合并的过程在执行至所述第N层之前停止,其中所述第N层为所述多层结构的最后一层,且K小于N。
第三方面,提供一种管理数据的设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的方法。
第四方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
第五方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
前文提到,当LSM树的第K层和最后一层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层,如果收到手动合并的请求,则很可能出现数据拷贝失败的问题。本公开在出现这种场景时,对手动合并过程进行干预,使得该手动合并的过程在执行至最后一层之前停止。由于手动合并的过程在执行至最后一层之前就停止,因此最后一层中的数据不会参与到手动合并的过程中,也就不需要对最后一层的数据进行拷贝,从而避免了上述数据拷贝失败的问题。
附图说明
图1是本公开实施例提供的一种LSM树的架构示例图。
图2是本公开实施例提供的一种LSM树的合并结构示意图。
图3是本公开实施例提供的另一种LSM树的合并结构示意图。
图4是本公开实施例提供的一种管理数据的方法的示意性流程图。
图5是本公开实施例提供的另一种管理数据的方法的示意性流程图。
图6是本公开实施例提供的管理数据的装置的示意性结构图。
图7是本公开实施例提供的管理数据的设备的示意性结构图。
具体实施方式
下面将结合本公开实施例的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。
关系型数据库是支持关系模型的数据库***,一般采用二维表结构的存储方式,数据以行和列的方式进行存储。关系型数据库按照结构化的方法存储数据,每个数据表都必须对各个字段定义好(也就是先定义好表的结构),再根据表的结构存入数据,这样做的好处就是由于数据的形式和内容在存入数据之前就已经定义好了,所以整个数据表就可以变得很清晰、一目了然,要读取和查询都十分方便,且可靠性和稳定性也比较高。但是,在写入新的数据后,修改数据表的结构就会十分困难,从而造成写效率比较低。由于关系型数据库中的数据表之间也有复杂的连接关系,因此数据表越多写效率越低。随着信息技术的高速发展和互联网的普及,数据量出现了飞跃式的增长,应用服务的数据存储规模和数据的访问量也随之增大,传统的关系型数据库已经无法满足需求,非关系型数据库(Not OnlySQL,NoSQL)应运而生。
NoSQL是非关系型数据存储的广义定义,NoSQL中的数据存储不需要固定的表结构,通常也不存在连接操作。NoSQL不使用传统的关系数据库模型,而是使用例如键值(key-value)存储、文档型的、列存储、图型数据库、xml等方式存储数据模型。其中,用的最多的是key-value存储。NoSQL数据库中的数据之间无关系,在架构的层面上带来了可扩展的能力。同样由于数据之间无关系,数据库的结构简单,在大数据量下,NoSQL表现出非常高的读写性能。
LSM树常被应用于key-value存储***的设计。因此,LSM树在NoSQL***里也非常常见,基本已经成为必选方案了。目前很多产品都使用了LSM树,GeaBase图数据库的底层key-value数据引擎使用的就是LSM树结构。直接或间接应用LSM树的产品例如还可以包括LevelDB,RocksDB,MongoDB,TiDB等。
LSM树可以包括两个或以上的独立的存储结构,每个结构都针对其各自的底层存储介质进行了优化,以使得数据可以在两个结构之间进行高效、批量的同步。为了便于理解,下面结合图1,对本公开实施例提及的LSM树的整体架构进行介绍。
比如在本公开中为了方便说明使用了最简单的两个存储结构。如图1所示,一个存储结构常驻内存中,保存了所有最近写入的键值对,并且可以随时原地更新,同时支持随时查询。另外一个存储结构常驻在非易失性存储设备中,该非易失性存储设备例如可以是硬盘或磁盘等。LSM树包括用于存储数据的多层结构,该多层结构例如可以表现为Level 0至Level N多个层级,其中Level N即为上述多层结构中的最后一个层级。LSM树的存储容量从Level 0至Level N逐渐增大,一般每一层的容量是上一层的10倍。每层可以包括一个或多个排序队列表(Sorted Sequence Table,SST),SST是一种拥有持久化,有序且不可变的键值存储结构,它的key和value都是任意的字节数组。每个SST文件内部的数据在key上是有序的,且每一层的数据都是在key上全局有序的。但是,Level 0层是可以有重叠的。也就是说,Level 0只保证每个SST文件内部有序,同层多个SST文件之间可能会重叠,这是LSM树的构建机制决定的,本公开在此不做详细阐述。
在基于LSM树的存储***中,随着内存中的数据不断的顺序追加写入,数据范围互相交叠的层越来越多,相同key的数据不断积累,从而引起读性能下降和空间膨胀。因此,合并(Compaction)机制被引入,通过不断的合并或删除数据,将多层进行合并的方式来优化读性能和空间问题。
合并机制包括自动合并(Auto Compaction)和手动合并(Manual Compaction)。正常情况下,当某一层数据的总大小(或文件数量)超过阈值了,LSM树就会根据既定合并策略选择一个或多个SST文件与下一层的SST文件进行自动合并操作。另一种情况,为了尽可能的合并或删除旧版本数据以提高***的吞吐量,用户也会主动对***数据进行手动合并或删除操作。当收到删除请求时,删除操作并不会立即被执行,而是会先对待指定删除的数据增加删除标记,接着,进行合并操作,当合并完成时才会执行删除指令,将待指定数据删除,可以理解的是,当前,在LSM树***中删除操作时耦合于合并操作的。当收到手动合并请求时,则手动合并过程会尽可能的执行至最后一层。也就是说,当前LSM树中如果有可以合并的SST文件均会一层一层的往下合并,直到合并至最后一层,这样可以最大可能的合并或删除旧版本数据。在经过上述手动合并过程后,可能会出现一种特殊现象:LSM树的第K层和最后一层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层。
示例性地,假设LSM树具有四层,若前三层文件大小分别是:9,90,900。又写了个1,这时候就会不断合并,1+9=10,10+90=100,100+900=1000。经过上述“满进一”的方式不断合并,最终会将所有数据合并入最后一层。同时,内存中的数据会不断的顺序追加写入LSM树中,从而会造成LSM树的第K层和最后一层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层,在该示例中,K例如可以为1或2。
合并是LSM树中非常重要的一个模块,下面结合图2和图3,对本公开实施例提及的LSM树的合并过程进行介绍。
如图2所示,假设Level 0层有一个SST文件,Level 1层有三个SST文件。随着内存中数据不断顺序追加写入到Level 0层后,触发Level 0和Level 1的合并。每次合并会有一个中间过程,该中间过程会先将下一层被合并影响到的SST文件临时新拷贝一份,接着在新拷贝的SST文件里更新合并Level 0的SST文件。当中间过程全部完成后,再删除掉老旧的合并前的Level 1中的SST文件。LSM树会使用中间过程新产生的SST文件。
LSM树的另一种可能的手动合并结构示意图,如图3所示,Level 1和Level N均存储有SST文件,且Level 1和Level N之间的中间层均为未存储SST文件空白层,假设Level 1层的SST文件有2个,该两个SST文件里面存储有稀疏的1到10000的数据,例如该稀疏数据可以是5,105,205,…,9905。经过多次合并,Level N层中的SST文件里存放的数据一般来说都是很紧凑的有序数据。假如Level N有100个SST文件,依次存放的是1-100,101-200,201-300,…,9901-10000。此时在收到手动合并请求后,手动合并过程控制Level 1层中的SST文件和Level N层中的SST文件做合并。这样一来,第1层中的数据通常会与最后一层中的几乎所有数据合并,而最后一层的数据存储量非常大,几乎占整个LSM树的存储空间的约90%。当存储***的存储空间不足以支持临时拷贝时,就会出现拷贝失败的问题,进而也会导致合并失败。
由上文可知,在一些特殊情况下,当LSM树的第K层(其中K小于N)和最后一层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层,如果收到手动合并的请求,则很可能出现数据拷贝失败的问题。本公开在出现这种场景时,对手动合并过程进行干预,使得该手动合并的过程在执行至最后一层之前停止。由于手动合并的过程在执行至最后一层之前就停止,因此最后一层中的数据不会参与到手动合并的过程中,也就不需要对最后一层的数据进行拷贝,从而避免了上述数据拷贝失败的问题。
图4为本公开提出的一种管理数据的方法,以降低手动合并过程中出现拷贝失败的问题的可能性。下面结合图4对管理数据方法40的步骤进行详细描述。应理解,图4所述的方法可以由存储***中一个或多个控制服务器执行,当然,上述方法还可以由存储***中其他具有控制功能的设备执行。
管理数据的方法40可以应用于基于LSM树的数据库,LSM树可以包括用于存储数据的多层结构,该多层结构的存储容量从首层至最后一层逐渐增大。该多层结构例如可以是以SST文件的形式存储数据,本公开对此不作具体限制。
S41,接收第一请求,所述第一请求用于请求执行手动合并。
第一请求例如可以由数据库的用户向数据库发送。该第一请求可以称为manual_compaction请求。该第一请求例如可以是SQL命令。
S43,如果LSM树的第K层和第N层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层,则控制手动合并的过程,使得手动合并的过程在执行至最后一层之前停止,其中第N层为所述多层结构的最后一层,且K小于N。
为了便于描述,本公开实施例将“LSM树的第K层和最后一层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层”的场景称为特殊场景。在按照步骤S43的控制方式对手动合并过程进行控制之前,可以先识别该特殊场景。例如,可以查找LSM树的各个层中的SST文件的数量。如果只有第K层和最后一层存在SST文件,而第K层和最后一层之间的中间层不存在SST文件,则可以认为出现该特殊场景。或者,在一些实施例中,还可以查询存储SST文件的磁盘空间,如果发现磁盘空间不足以支持最后一层中的数据的全部拷贝,再执行步骤S43。
在一些实施例中,在控制手动合并的过程,使得手动合并的过程在执行至最后一层之前停止的方式可以有多种。作为一个示例,控制手动合并过程,可以使得第K层中的数据仅合并至该第K层的下一层。
作为另一个示例,当接收到第一请求后,还可以控制手动合并的过程,使得手动合并的过程不对第K层数据进行合并处理。
在一些实施例中,上述多层结构的相邻两层中的下一层的存储容量例如可以为相邻两层中的上一层的存储容量的10倍,也就是说,每一层的容量是上一层的10倍。
在一些实施例中,继续参见图3,LSM树可以包括用于存储数据的多层结构,LSM树的最后一层例如可以为Level N层,第K层例如可以为该多层结构中的第二层,即,Level 1层,本公开对比不做具体限制。
在图4的基础上,关于管理数据的方法,本公开实施例还提供了一种可能的实现方式,如图5所示,下面对管理数据的方法50进行详细介绍。
S51,接收第一请求,所述第一请求用于请求执行手动合并;
S53,如果LSM树的第K层和第N层均存储有数据,且第K层与最后一层之间的中间层均为未存储数据的空白层,则控制手动合并的过程,使得手动合并的过程在执行至最后一层之前停止,其中第N层为所述多层结构的最后一层,且K小于N。
S55,第一请求还用于请求将指定数据从多层结构存储的数据文件中删除。
S57,将指定数据从多层结构存储的数据中删除。
需要说明的是,本公开中的删除请求和删除指令并不受合并的约束,即,当收到删除请求时,本公开可以将指定数据从多层结构存储的数据中立即删除,也可以在上文所提及的合并过程完成删除,也就是说,该删除操作与上文提及的合并操作可以是解耦的。
由于LSM树中的多层结构中的存储数据是不可更改的可读文件,因此在进行数据删除操作时,也会将待删除数据先临时新拷贝一份。等与新拷贝数据对应的老旧数据删除完成之后,再对新拷贝数据进行删除。在按照步骤S57的控制方式将指定数据从多层结构存储的数据中删除之前,可以先查询存储SST文件的磁盘空间,在一些实施例中,如果发现磁盘空间足以支持对待删除数据的全部拷贝,再执行步骤S57。在另一些实施例中,如果发现磁盘空间不足以支持对待删除数据的全部拷贝,则可以执行步骤S57仅对第K层或第N层的数据进行删除,也可以仅对第K层或第N层中的部分数据进行删除,本公开对此不做具体限制。
上文结合图1至图5,详细描述了本公开的方法实施例,下面结合图6和图7,详细描述本公开的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图6是本公开实施例提供的管理数据的装置的示意性结构图。该装置60可以应用于基于LSM树的数据库,LSM树可以包括用于存储数据的多层结构,该多层结构的存储容量从首层至最后一层逐渐增大,该装置60可以包括:接收模块61以及控制模块62。
接收模块61,可以用于接收第一请求,所述第一请求用于请求执行手动合并;
控制模块62,如果所述LSM树的第K层和第N层均存储有数据,且所述第K层与所述最后一层之间的中间层均为未存储数据的空白层,则用于控制所述手动合并的过程,使得所述手动合并的过程在执行至所述最后一层之前停止,其中所述第N层为所述多层结构的最后一层,且K小于N。
可选地,所述控制模块62用于:控制所述手动合并的过程,使得所述第K层中的数据不合并至所述第K层的下一层。
可选地,所述控制模块62用于:控制所述手动合并的过程,使得所述第K层中的数据仅合并至所述第K层的下一层。
可选地,所述第一请求还用于请求将指定数据从所述多层结构存储的数据文件中删除,所述装置60还包括:删除模块63,用于将所述指定数据从所述多层结构存储的数据中删除。
可选地,所述多层结构以SST文件的形式存储数据。
可选地,所述第K层为所述多层结构中的第二层。
可选地,所述多层结构的相邻两层中的下一层的存储容量为所述相邻两层中的上一层的存储容量的10倍。
本公开实施例还提供了一种管理数据的设备,例如可以是计算机、服务器等。图7为本公开实施例中管理数据的设备70的结构示意图。管理数据的设备70可以包括处理器71、存储器72、总线73。处理器71和存储器72通过总线73连接,处理器71用于执行存储器72中存储的可执行模块,例如计算机程序。
处理器71例如可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,管理数据的方法的各步骤可以通过处理器71中的硬件的集成逻辑电路或者软件形式的指令完成。处理器71也可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。处理器71还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器72例如可以包含高速随机存取存储器(Random Access Memory,RAM),也可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
总线73可以是ISA(Industry Standard Architecture)总线、PCI(PeripheralComponent Interconnect)总线或EISA(Extended Industry Standard Architecture)总线等。图7中仅用一个双向箭头表示,但并不表示仅有一根总线130或一种类型的总线73。
存储器72用于存储程序,例如管理数据的装置对应的程序。管理数据的装置可以包括至少一个软件或固件(firmware)的形式存储于存储器72中或固化在管理数据的设备70的操作***(operating system,OS)中的软件功能模块。处理器71在接收到执行指令后,执行所述程序以实现上述管理数据的方法。
在一些实施例中,本公开提供的管理数据的设备还可以包括通信接口74。通信接口74通过总线与处理器71连接。
应当理解的是,图7所示的结构仅为管理数据的设备70的部分的结构示意图,管理数据的设备70还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
本公开实施例提供的管理数据方法可以但不限于应用于图7所示的管理数据的设备。
应理解,在本公开的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种管理数据的方法,所述方法应用于基于日志结构合并LSM树的数据库,所述LSM树包括用于存储排序队列表SST文件的多层结构,所述多层结构的存储容量从首层至最后一层逐渐增大,
所述方法包括:
接收第一请求,所述第一请求用于请求执行手动合并;
查找所述LSM树的各个层中的SST文件的数量,以确定是否出现特殊场景,所述特殊场景用于表示所述LSM树的第二层和第N层均存储有SST文件,且所述第二层与所述第N层之间的中间层均为未存储SST文件的空白层,其中,N为大于3的正整数;
如果出现所述特殊场景,则控制所述手动合并的过程,使得所述手动合并的过程在执行至所述第N层之前停止,其中所述第N层为所述多层结构的最后一层。
2.根据权利要求1所述的方法,所述控制所述手动合并的过程,使得所述手动合并的过程在执行至所述第N层之前停止,包括:
控制所述手动合并的过程,使得所述第二层中的数据不合并至所述第二层的下一层。
3.根据权利要求1所述的方法,所述控制所述手动合并的过程,使得所述手动合并的过程在执行至所述第N层之前停止,包括:
控制所述手动合并的过程,使得所述第二层中的数据仅合并至所述第二层的下一层。
4.根据权利要求2或3所述的方法,所述第一请求还用于请求将指定数据从所述多层结构存储的SST文件中删除,
所述方法还包括:
将所述指定数据从所述多层结构存储的数据中删除。
5.根据权利要求1所述的方法,所述多层结构的相邻两层中的下一层的存储容量为所述相邻两层中的上一层的存储容量的10倍。
6.一种管理数据的装置,所述装置应用于基于日志结构合并LSM树的数据库,所述LSM树包括用于存储排序队列表SST文件的多层结构,所述多层结构的存储容量从首层至最后一层逐渐增大,
所述装置包括:
接收模块,用于接收第一请求,所述第一请求用于请求执行手动合并;
查找模块,用于查找所述LSM树的各个层中的SST文件的数量,以确定是否出现特殊场景,所述特殊场景用于表示所述LSM树的第二层和第N层均存储有SST文件,且所述第二层与所述第N层之间的中间层均为未存储SST文件的空白层,其中,N为大于3的正整数;
控制模块,如果出现所述特殊场景,则用于控制所述手动合并的过程,使得所述手动合并的过程在执行至所述第N层之前停止,其中所述第N层为所述多层结构的最后一层。
7.根据权利要求6所述的装置,所述控制模块用于:
控制所述手动合并的过程,使得所述第二层中的数据不合并至所述第二层的下一层。
8.根据权利要求6所述的装置,所述控制模块用于:
控制所述手动合并的过程,使得所述第二层中的数据仅合并至所述第二层的下一层。
9.根据权利要求7或8所述的装置,所述第一请求还用于请求将指定数据从所述多层结构存储的SST文件中删除,
所述装置还包括:
删除模块,用于将所述指定数据从所述多层结构存储的数据中删除。
10.根据权利要求6所述的装置,所述多层结构的相邻两层中的下一层的存储容量为所述相邻两层中的上一层的存储容量的10倍。
11.一种管理数据的设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111527352.9A CN114237507B (zh) | 2021-11-02 | 2021-11-02 | 管理数据的方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111289490.8A CN113721863B (zh) | 2021-11-02 | 2021-11-02 | 管理数据的方法及装置 |
CN202111527352.9A CN114237507B (zh) | 2021-11-02 | 2021-11-02 | 管理数据的方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111289490.8A Division CN113721863B (zh) | 2021-11-02 | 2021-11-02 | 管理数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114237507A true CN114237507A (zh) | 2022-03-25 |
CN114237507B CN114237507B (zh) | 2024-04-12 |
Family
ID=78686480
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111527352.9A Active CN114237507B (zh) | 2021-11-02 | 2021-11-02 | 管理数据的方法及装置 |
CN202111289490.8A Active CN113721863B (zh) | 2021-11-02 | 2021-11-02 | 管理数据的方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111289490.8A Active CN113721863B (zh) | 2021-11-02 | 2021-11-02 | 管理数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114237507B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290282A1 (en) * | 2012-04-30 | 2013-10-31 | Franz Faerber | Logless Atomic Data Movement |
CN109716279A (zh) * | 2016-09-15 | 2019-05-03 | 净睿存储股份有限公司 | 用于写入持久性的自适应并发 |
CN110851434A (zh) * | 2018-07-27 | 2020-02-28 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及设备 |
CN112236759A (zh) * | 2018-09-14 | 2021-01-15 | 谷歌有限责任公司 | 日志结构合并森林中的交错合并 |
CN113297136A (zh) * | 2021-05-25 | 2021-08-24 | 南京大学 | 一种面向lsm树的键值存储方法和存储*** |
CN113536047A (zh) * | 2021-06-28 | 2021-10-22 | 北京明略软件***有限公司 | 一种图数据库数据删除方法、***、电子设备及存储介质 |
-
2021
- 2021-11-02 CN CN202111527352.9A patent/CN114237507B/zh active Active
- 2021-11-02 CN CN202111289490.8A patent/CN113721863B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290282A1 (en) * | 2012-04-30 | 2013-10-31 | Franz Faerber | Logless Atomic Data Movement |
CN109716279A (zh) * | 2016-09-15 | 2019-05-03 | 净睿存储股份有限公司 | 用于写入持久性的自适应并发 |
CN110851434A (zh) * | 2018-07-27 | 2020-02-28 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及设备 |
CN112236759A (zh) * | 2018-09-14 | 2021-01-15 | 谷歌有限责任公司 | 日志结构合并森林中的交错合并 |
US20210216517A1 (en) * | 2018-09-14 | 2021-07-15 | Google Llc | Staggered merging in log-structured merge forests |
CN113297136A (zh) * | 2021-05-25 | 2021-08-24 | 南京大学 | 一种面向lsm树的键值存储方法和存储*** |
CN113536047A (zh) * | 2021-06-28 | 2021-10-22 | 北京明略软件***有限公司 | 一种图数据库数据删除方法、***、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
骆克云;叶保留;唐斌;梅峰;卢文达;: "基于增量学习的RocksDB键值***主动缓存机制", 计算机应用, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN113721863A (zh) | 2021-11-30 |
CN113721863B (zh) | 2021-12-31 |
CN114237507B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152513B2 (en) | Managing record location lookup caching in a relational database | |
US8392382B2 (en) | On-line transaction processing (OLTP) compression and re-compression of database data | |
US20180018354A1 (en) | High-efficiency deduplication module of a database-management system | |
US8595248B2 (en) | Querying a cascading index that avoids disk accesses | |
CN105556520A (zh) | 在存储器中镜像盘中的数据以提高查询性能 | |
US20070174325A1 (en) | Method and system for building a database from backup data images | |
US10642837B2 (en) | Relocating derived cache during data rebalance to maintain application performance | |
US20210240585A1 (en) | Database-level automatic storage management | |
US11526465B2 (en) | Generating hash trees for database schemas | |
US11314719B2 (en) | Method for implementing change data capture in database management system | |
CN109213432B (zh) | 利用日志结构合并树将数据写入的存储设备及其方法 | |
WO2018205151A1 (zh) | 数据更新方法和存储装置 | |
CN109726264A (zh) | 用于索引信息更新的方法、装置、设备和介质 | |
US8452730B2 (en) | Archiving method and system | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
CN113721863B (zh) | 管理数据的方法及装置 | |
US20070299890A1 (en) | System and method for archiving relational database data | |
US9367573B1 (en) | Methods and apparatus for archiving system having enhanced processing efficiency | |
CN115878625A (zh) | 数据处理方法和装置及电子设备 | |
EP3944094A1 (en) | Parallel processing of changes in a distributed system | |
US7949632B2 (en) | Database-rearranging program, database-rearranging method, and database-rearranging apparatus | |
CN115469810A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
WO2021154516A1 (en) | Reducing requests using probabilistic data structures | |
TWI796943B (zh) | 利用緩存鏡射資料實現高效運算之處理系統 | |
TWI812510B (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 |