CN112925643B - 数据处理方法、装置以及存储引擎装置 - Google Patents
数据处理方法、装置以及存储引擎装置 Download PDFInfo
- Publication number
- CN112925643B CN112925643B CN202110220233.2A CN202110220233A CN112925643B CN 112925643 B CN112925643 B CN 112925643B CN 202110220233 A CN202110220233 A CN 202110220233A CN 112925643 B CN112925643 B CN 112925643B
- Authority
- CN
- China
- Prior art keywords
- current
- data block
- data
- void
- determining
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 239000011800 void material Substances 0.000 claims abstract description 157
- 238000011084 recovery Methods 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000004064 recycling Methods 0.000 claims abstract description 18
- 238000005056 compaction Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 abstract description 16
- 230000003321 amplification Effects 0.000 description 10
- 238000003199 nucleic acid amplification method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013178 mathematical model Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- 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/1727—Details of free space management performed by the file system
-
- 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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据处理方法、装置以及存储引擎装置、电子设备、存储介质以及计算机程序产品。本公开涉及数据库、数据存储领域。本公开提供的数据处理方法包括:确定待回收数据块;确定待回收数据块的当前空洞率;至少基于当前读写负载确定当前回收空洞率;确定所回收数据块的当前空洞率是否低于当前回收空洞率;以及响应于待回收数据块的当前空洞率不低于当前回收空洞率,对待回收数据块进行回收。利用本公开提供的方法,可以基于当前读写负载适应性地对数据块的回收空洞率进行调整,使得能够实现动态的数据回收策略。
Description
技术领域
本公开涉及数据库、数据存储领域,具体涉及一种数据处理方法、装置以及存储引擎装置、电子设备、存储介质以及计算机程序产品。
背景技术
为了充分利用存储介质的顺序写性能,可以通过追加写的方式实现数据存储,从而提高存储引擎的写性能。在写入过程中,可以采用压实(Compaction)机制对存储介质中的无效数据进行回收。
发明内容
本公开提供了一种数据处理方法、装置以及存储引擎装置、电子设备、存储介质以及计算机程序产品。
根据本公开的一方面,提供了一种数据处理方法,包括:确定待回收数据块;确定所述待回收数据块的当前空洞率;至少基于当前读写负载确定当前回收空洞率;确定所述待回收数据块的当前空洞率是否低于所述当前回收空洞率;以及响应于所述待回收数据块的当前空洞率不低于所述当前回收空洞率,对所述待回收数据块进行回收。
根据本公开的另一方面,提供了一种数据处理装置,包括:待回收数据块确定单元,配置成确定待回收数据块;空洞率确定单元,配置成确定所述待回收数据块的当前空洞率;回收空洞率确定单元,配置成至少基于当前读写负载确定当前回收空洞率;比较单元,配置成确定所述待回收数据块的当前空洞率是否低于所述当前回收空洞率;以及回收单元,配置成响应于所述待回收数据块的当前空洞率不低于所述当前回收空洞率,对所述待回收数据块进行回收。
根据本公开的另一方面,提供了一种存储引擎装置,包括:索引层,配置成存储包括数据键和值索引的索引项,所述值索引包括与所述数据键对应的数据值所在的数据块的标识以及所述数据值在数据块中的偏移量;数据层,配置成存储多个数据块;控制单元,配置成:从所述数据层中确定待回收数据块;利用所述待回收数据块对应的空洞率计数器确定所述待回收数据块的当前空洞率;至少基于由流量计数器得到的当前读写负载确定当前回收空洞率;以及响应于所述待回收数据块的当前空洞率不低于所述当前回收空洞率,对所述待回收数据块进行回收。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前所述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如前所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现如前所述的方法。
根据本公开的一个或多个实施例,通过基于当前读写负载调整用于待回收数据块的当前回收空洞率,可以实现动态的数据回收策略。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的实施例的数据处理方法100的示意性的流程图;
图2示出了根据本公开的实施例的数据结构的示意图;
图3示出了根据本公开的实施例的存储引擎的初始化的示例性的过程的流程图;
图4示出了根据本公开的实施例的数据处理装置400的示意性框图;
图5示出了根据本公开的实施例的存储引擎装置的示意性的框图;以及
图6示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
可以基于键值存储的方法在数据库中对数据进行存储。在一些应用中,可以基于日志结构合并树(Log-Structured Merge-Tree,LSM-Tree)结构组织底层数据存储。
由于存储介质的读写带宽是有限的,在对存储的数据进行压实操作(Compaction)的期间内,存储引擎的读写性能会出现下降,从而导致整体性能下降。
在一些应用中,针对非键值分离的存储引擎,可以基于预先确定的业务场景对压实操作的策略进行优化。例如,可以为存储密集型业务选择分层压实(leveledcompaction)策略,通过增加读放大、写放大减少空间放大。可以为写敏感业务选择普遍压实(universal compaction)策略,通过增加空间放大和读放大降低写放大。可以为读写均衡性业务选择混合压实(hybrid compaction)策略以平衡读放大、写放大和空间放大。
还存在针对键值分离的存储引擎(如Wisckey引擎)的压实策略。可以基于日志结构合并树的结构将数据的索引组织成索引文件,并且在索引结构中不存数据,只存有数据在数据块(Value Log)中的引用地址。可以根据业务场景,基于分层压实、普遍压实或混合压实的方式对索引文件中的无效数据索引进行淘汰。此外,针对数据块文件,可以通过定时扫描全量数据块文件的方式得到所存储的数据块文件的空洞率,并对空洞率超过预定阈值的文件进行回收,以节省存储介质的空间。
尽管键值分离的存储引擎能够将压实操作限制在局部范围内并避免全局压实操作,然而,由于需要定时对全量数据块进行扫描,仍然会产生较高的读放大,影响存储性能。如果采用降低全局数据扫描频率的方式减少读放大,则会造成无效数据回收不及时的问题,从而引起空间放大。
然而,针对特定场景业务优化的压实策略属于静态策略,并且针对一种场景优化的策略在另一种场景下很可能会导致存储引擎的性能劣化。例如,针对低吞吐高密度存储场景的压实策略在高吞吐场景中会导致引擎吞吐下降。又例如,针对高吞吐场景的压实策略在高密度存储场景中则会引起不必要的空间放大,导致存储资源消耗增加。
此外,在大规模非关系型(NoSQL)存储集群中,由于数据混布程度高,业务用户多,业务自身迭代频繁,因此集群中的每个节点面对的使用场景是不固定的。因此,静态的压实策略无法满足频繁的业务场景变化需求。
为了解决上述问题,本公开提供了一种新的压实策略,能够根据当前存储引擎的工作情况对压实策略进行动态的调整。
下面将结合附图详细描述本公开的实施例。
图1示出了根据本公开的实施例的数据处理方法100的示意性的流程图。
在一些实施例中,数据处理方法100可以应用于大规模NoSQL存储场景中的每个节点。
如图1所示,在步骤S102中,可以确定待回收数据块。
当用户写请求数据写入引擎时,存储引擎可以将用户写请求拆分为键、值两部分数据。其中数据键可以被写入索引层,数据值可以被写入数据层。在一些实施例中,内存索引可以基于日志结构合并(LSM)树的结构。
在写入数据值时,可以在将数据值写入数据层的数据块文件。在写入前可以检查数据块文件是否已经写满。如果当前数据块文件已经写满,则可以创建新的数据块文件写入。
在写入数据键时,可以检查索引层的LSM树中是否存在满层。如果索引层的LSM树中存在满层,则可以触发索引压实操作,并将满层的结构中的索引进行合并写入下一层。在一些实施例中,可以将数据键写入内存直至内存被写满。当内存写满后,可以将数据键写入L0层的索引文件。
响应于确定索引层触发索引压实操作,可以确定索引压实操作中淘汰的索引。例如,在对结构中满层的索引进行合并时,可以淘汰无效索引。
在确定了被淘汰的索引的情况下,可以将被淘汰的索引对应的数据所在的数据块确定为待回收数据块。
通过采用在触发索引压实操作时时对被淘汰的索引对应的数据块进行处理的方法,能够实现随着无效数据的产生趋势来进行回收的效果。
如前所述,索引中存储有数据键以及对应的数据值所在的数据块的地址。
在一些实施例中,索引层包括基于LSM树结构的多个索引项,其中每个索引项包括数据键和值索引,其中,值索引包括对应的数据值所在的数据块的标识以及数据值在数据块中的偏移量。因此,可以基于索引中存储的内容确定对应的数据值所在的数据块。通过将本公开提供的方法应用于键值分离的存储引擎,可以在避免全局压实的情况下进一步提高存储引擎的性能。
在步骤S104中,可以确定待回收数据块的当前空洞率。
在一些实施例中,当前空洞率可以是待回收数据块的真实空洞率。可以利用用于该待回收数据块的空洞率计数器确定待回收数据块的真实空洞率。
这里所说的真实空洞率指的是基于数据块中当前存储的内容计算的空洞率。也就是说,真实空洞率能够反应当前待回收数据块中存储的内容中包括多少无效数据。
在另一些实施例中,可以利用用于待回收数据块的空洞率计数器确定待回收数据块的真实空洞率,并至少存储引擎的当前读写负载对真实空洞率进行调整,以得到当前空洞率。
利用针对每个数据块设置的空洞率计数器,在对数据块进行回收的过程中,可以无需对全量数据块进行扫描,而仅需要针对当前可能被回收的待回收数据块进行扫描,以得到待回收数据块的空洞率,从而减少了存储引擎的读放大。
此外,通过基于存储引擎的当前读写负载对待回收数据块的真实空洞率进行调整,可以将调整后的空洞率作为待回收数据块的当前空洞率以用于判断是否需要对待回收数据块进行回收。
其中,可以通过将当前空洞率与用于数据块的回收空洞率进行比较来判断是否要对数据块进行回收。如果待回收数据块的当前空洞率低于回收空洞率,则可以认为不满足回收条件,因此不对待回收数据块进行回收。如果待回收数据块的当前回收率高于或等于回收空洞率,则可以认为满足了数据回收条件,因此可以对待回收数据块进行回收以节省存储空间。
在一些示例中,当前读写负载越高,则调整后的真实空洞率越低,即待回收数据块的当前空洞率越低。从而能够降低数据回收频率以避免影响读写性能。
可以通过任何数学模型实现基于存储引擎的当前读写负载对待回收数据块的真实空洞率进行调整。例如,可以基于下式(1)确定基于当前读写负载调整得到的待回收数据块的当前空洞率:
Pcurrent=Pactual+α*γ (1)
其中,Pcurrent是当前空洞率,Pactual是真实空洞率,α是预先确定的系数,γ是基于当前读写负载确定的参数,其中当前读写负载越大则γ的值越小。例如,γ可以是当前读写负载的倒数(即γ=1/IO,IO是当前读写负载值)。
从公式(1)中可以看出,对于相同的真实空洞率Pactual,当前空洞率Pcurrent的值随着当前读写负载的上升而下降。因此,对于同一个回收空洞率来说,存储引擎的读写负载越高,数据块文件被回收的频率越低,从而保证存储引擎的读写性能不受数据回收操作的影响。
在一些实现方式中,可以至少基于当前读写负载以及数据块中存储的数据的生存时间信息对真实空洞率进行调整,以得到当前空洞率,从而可以避免对即将过期的大量数据进行回收,减少开销。
在一些示例中,在读写负载不变的情况下,数据块中存储的数据的生存时间(TTL)信息指示所存储的数据的生存时间越长,数据块的当前空洞率越高,从而可以降低对于即将大量过期的数据所在的数据块的回收频率。
可以基于下式(2)确定待回收数据块的当前空洞率:
Pcurrent=Pactual+β*TTLblock*γ (2)
其中Pcurrent是当前空洞率,Pactual是真实空洞率,TTLblock是生存时间信息,β是预先确定的系数,γ是基于当前读写负载确定的参数,其中当前读写负载越大则γ的值越小。例如,γ可以是当前读写负载的倒数(即γ=1/IO,IO是当前读写负载值)。
在一些示例中,可以基于数据块文件中写入的数据的TTL分布确定生存时间信息TTLblock。例如,可以将数据块中写入的数据的中位数、平均值、70分位数等各种统计参数确定为数据块的生存时间信息TTLblock。
从公式(2)中可以看出,对于相同的真实空洞率Pactual和读写负载,当前空洞率Pcurrent的值随着数据块中数据的生存时间的上升而下降。因此,如果数据块中的数据距离过期仍有较长时间,则可以提高数据块的回收频率。而如果数据块中的数据即将过期,则可以降低数据块的回收频率。也就是说,即使该数据块具有较高的空洞率,也可能先不回收,等大部分数据过期后再回收可以降低数据回收的开销。
在一些实现方式中,可以基于当前读写负载、数据块中存储的数据的生存时间信息以及数据块的存储层级对真实空洞率进行调整,以得到当前空洞率,从而可以提高数据的使用效率。
在读写负载和生存时间信息不变的情况下,数据块的存储层级越高,当前空洞率越高,从而可以提高较低层级的数据块的使用效率。
例如,可以基于下式(3)确定待回收数据块的当前空洞率:
Pcurrent=Pactual+(α*levelblock+β*TTLblock)*γ (3)
其中Pcurrent是当前空洞率,Pactual是真实空洞率,levelblock是指示存储层级,TTLblock是生存时间信息,α、β是预先确定的系数,γ是基于当前读写负载确定的参数,其中当前读写负载越大则γ的值越小。例如,γ可以是当前读写负载的倒数(即γ=1/IO,IO是当前读写负载值)。可以理解的是,γ也可以是关于IO的任何函数,只要满足IO越大γ越小即可。
在一些实施例中,数据块文件可以是基于LSM树的结构。在一些实现方式中,数据块文件可以具有两层结构(L0、L1)。在一些示例中,对于位于L0层的数据块文件,levelblock可以取值为0,对于位于L1层的数据块文件,levelblock可以取值为1。
从公式(2)中可以看出,对于相同的真实空洞率Pactual、读写负载以及生存时间信息,当前空洞率Pcurrent的值随着数据块文件所在的层级的提高而下降。因此,当待回收数据块位于较高层级(如L0层)时,可以降低数据块的当前空洞率以降低数据块的回收频率。当待回收数据块位于较低层级(如L1层)时,可以提高数据块的当前空洞率以提高数据块的回收频率,从而提高数据块文件的使用效率。
可以理解的是,上述公式(1)-(3)不构成对于本公开的限制。在不脱离本公开原理的情况下,本领域技术人员可以根据实际情况对公式(1)进行各种变型,或根据其它数学模型构建当前空洞率Pcurrent与真实空洞率Pactual之间的关系。
在步骤S106中,可以至少基于当前读写负载确定当前回收空洞率。
其中,当前回收空洞率可以用作是判断是否要对待回收数据块进行回收的阈值。如果待回收数据块的当前空洞率低于当前回收空洞率,则可以认为不满足回收条件,因此不对待回收数据块进行回收。如果待回收数据块的当前回收率高于或等于当前回收空洞率,则可以认为满足了数据回收条件,因此可以对待回收数据块进行回收以节省存储空间。
在一些实施例中,可以利用当前读写负载对预先确定的初始回收空洞率θ0进行调整以得到当前回收空洞率。其中θ0可以是预先确定的参数。例如,可以基于实际应用情况确定θ0的值。
在一些实现方式中,当前读写负载越高,当前回收空洞率越高,从而使得在读写负载较高的时候降低数据回收频率以保证读写性能。
可以通过任何数学模型实现基于存储引擎的当前读写负载对初始回收空洞率进行调整。例如,可以基于下式(4)确定当前回收空洞率:
Pth=θ0+(1-e-IO)*δ (4)
其中,Pth是当前回收空洞率,θ0是初始回收空洞率,IO是当前读写负载值,e是自然对数,δ是预先确定的系数。
从公式(1)中可以看出,当前回收空洞率Pth的值随着当前读写负载的上升而上升。因此,存储引擎的读写负载越高,则对存储引擎中存储的数据块文件进行回收的阈值也越高,因此降低了对于数据块文件进行回收的频率,以保证存储引擎的读写性能不受影响。
相应的,当前回收空洞率Pth的值可以随着当前读写负载的下降而下降。因此,存储引擎的读写负载越低,则对存储引擎中存储的数据块文件进行回收的阈值也越低,因此提高了对于数据块文件进行回收的频率。在这种情况下,在存储引擎的读写负载不高时,可以加快对存储空间的回收以提高存储空间的利用率。
在一些示例中,可以基于当前读写负载以及当前剩余存储空间对预先确定的初始回收空洞率进行调整,以得到当前回收空洞率,从而实现基于剩余存储空间的动态策略。其中,在当前读写负载不变的情况下,当前剩余存储空间越小,当前回收空洞率越低。因此,当存储空间不足时,可以提高数据回收频率以保证存储安全。
例如,可以基于下式(5)确定当前回收空洞率:
Pth=θ0+(1-e-IO)*δ-e-left*λ (5)
其中,Pth是当前回收空洞率,θ0是初始回收空洞率,IO是当前读写负载值,e是自然对数,left是当前剩余存储空间,δ、λ是预先确定的系数。
从公式(5)中可以看出,当前回收空洞率Pth的值随着当前剩余存储空间的上升而上升。因此,当前剩余存储空间越高,则对存储引擎中存储的数据块文件进行回收的阈值越高。由于在剩余存储空间较多的情况下,高频的数据回收不能有效提高存储引擎的性能,反而会由于回收操作二影响存储引擎的读写性能,因此,可以提高数据块文件的回收阈值以降低数据块文件的回收频率。
相应的,当前回收空洞率Pth的值可以随着当前剩余存储空间的下降而下降。因此,存储引擎的当前剩余存储空间越低,则对存储引擎中存储的数据块文件进行回收的阈值也越低,因此提高了对于数据块文件进行回收的频率,以保证存储引擎有足够的存储空间,提高了存储安全。
在公式(5)中,可以基于当前读写负载值IO和当前剩余存储空间left两个参数分别对初始回收空洞率进行调整以得到当前回收空洞率。利用上述方法,在读写负载高但存储介质剩余空间富裕时,降低数据回收频率保证读写负载,反之则提高数据回收频率保证存储安全。利用公式(5),在每次进行是否要进行数据回收的判断时,可以根据当前的读写负载值和剩余存储空间的值动态地确定当前回收空洞率,从而能够根据存储引擎的当前工作状态实现动态的数据压实策略。
可以理解的是,上述公式不构成对于本公开的限制,本领域技术人员可以根据实际情况对公式(4)、(5)进行各种变型,或根据其它数学模型构建当前回收空洞率Pth与初始回收空洞率θ0以及当前读写负载值IO和/或当前剩余存储空间left之间的关系。
在步骤S108中,可以确定所述待回收数据块的当前空洞率是否低于所述当前回收空洞率。
在步骤S110中,响应于所述待回收数据块的当前空洞率不低于所述当前回收空洞率,对所述待回收数据块进行回收。否则,则方法流程结束。在一些实施例中,可以利用压实操作实现对待回收数据块的回收。通过回收可以释放待回收数据块中的无效数据占据的存储空间,从而可以提高存储引擎的性能。
利用本公开的实施例提供的数据处理方法,可以基于存储引擎的当前读写负载确定当前回收空洞率,从而可以基于存储引擎的当前工作状态动态地确定数据的回收策略。当在大规模存储场景中应用本公开提供的方法时,大规模存储场景的每个节点都可以根据自身的业务场景和工作状态动态调整数据回收策略,从而能够发回存储引擎的最佳性能。
利用本公开提供的方法,可以无需根据业务场景的性质预先设置静态的数据回收策略,解决了静态策略无法随着业务场景的改变而适应性调整的问题。
此外,通过为各个数据块设置空洞率计数器,解决了对全量数据块进行扫描占用存储引擎的吞吐量的问题。
进一步地,通过相应于索引层的索引压实操作触发数据回收,可以基于无效数据的产生趋势实现回收,从而可以降低数据回收的开销。
图2示出了根据本公开的实施例的数据结构的示意图。
如图2所示,数据结构200可以包括索引结构210、数据块220以及空洞率统计表230。
其中,索引结构210可以是由索引项211完整的LSM树结构(在图2中仅示出了一个索引项211)。其中,每个索引项211可以包括数据键2111和数据值索引项2112。其中,数据值索引项可以包括数据值所在的数据块文件的文件编号21121和数据值在数据块文件中的偏移量。利用数据值索引项2112可以以0(1)的时间复杂度读取数据值。
数据块220可以是由多个数据块221形成的结构(如LSM树结构)。在读取数据值时,可以基于数据值索引项中的文件编号定位到数据块文件,并基于数据值索引项中的偏移量读取数据值。
空洞率统计表可以包括用于各个数据块的多个数据块文件空洞率计数器231。在一些实施例中,可以为每个数据块文件配置一个空洞率计数器231。在存储引擎初始化时,可以对每个空洞率计数器231进行初始化。当触发索引压实操作时,可以为被淘汰的索引涉及的数据块更新空洞率。
图3示出了根据本公开的实施例的存储引擎的初始化的示例性的过程的流程图。
如图3所示,在步骤S301中,存储引擎启动初始化程序开始。
在步骤S302中,加载所有数据块文件,对数据块文件进行检查并删除其中的无效文件(脏文件)。其中,无效文件包括空文件和未完成合并的临时文件。对于未写完的数据块文件,可以截断数据块文件末尾不完整的数据值。在截断文件末尾不完整的数据之后,如果数据块文件不是空文件,则该数据块文件不属于无效文件。
在完成对于数据块文件的清理和加载后,在步骤S304中,引擎开始加载索引文件,校验索引项有效性并构建索引结构,完成LSM树结构的索引结构的构建。
如果先前存储引擎是非正常退出,则会存在部分未持久化的索引。在步骤S306中,引擎可以加载快照文件并从快照文件中读取数据会放电,从回放点开始按时间轴由旧向新回放数据块文件,并向索引结构回填内存数据,以回填这部分未持久化的索引。
完成索引构建后,在步骤S308中,引擎可以全量扫描数据块文件并确定各个数据块的空洞率统计信息。
在步骤S310中,引擎可以完成初始化,并打开服务端口对外提供读写服务。
图4示出了根据本公开的实施例的数据处理装置400的示意性框图。如图4所示,数据处理装置600可以包括待回收数据块确定单元410、空洞率确定单元420、回收空洞率确定单元430、比较单元440以及回收单元450。
待回收数据块确定单元410可以配置成确定待回收数据块。空洞率确定单元420可以配置成确定待回收数据块的当前空洞率。回收空洞率确定单元430可以配置成至少基于当前读写负载确定当前回收空洞率。比较单元440可以配置成确定所述待回收数据块的当前空洞率是否低于所述当前回收空洞率;回收单元450可以配置成响应于待回收数据块的当前空洞率不低于当前回收空洞率,对待回收数据块进行回收。
这里所说的数据处理装置400的上述各单元410~450的操作分别与前面描述的步骤S102~S110的操作类似,在此不再加以赘述。
利用本公开的实施例提供的数据处理装置,可以基于存储引擎的当前读写负载确定当前回收空洞率,从而可以基于存储引擎的当前工作状态动态地确定数据的回收策略。当在大规模存储场景中应用本公开提供的装置时,大规模存储场景的每个节点都可以根据自身的业务场景和工作状态动态调整数据回收策略,从而能够发回存储引擎的最佳性能。
利用本公开提供的装置,可以无需根据业务场景的性质预先设置静态的数据回收策略,解决了静态策略无法随着业务场景的改变而适应性调整的问题。
此外,通过为各个数据块设置空洞率计数器,解决了对全量数据块进行扫描占用存储引擎的吞吐量的问题。
进一步地,通过相应于索引层的索引压实操作触发数据回收,可以基于无效数据的产生趋势实现回收,从而可以降低数据回收的开销。
图5示出了根据本公开的实施例的存储引擎装置的示意性的框图。
如图5所示,存储引擎装置500可以包括接口层510、索引层520、数据层530以及控制单元540。
接口层510可以配置成为存储引擎提供对外网络服务接口,供上下游服务远程读写引擎。
索引层520可以配置成存储对数据键的混合介质索引。在一些实施例中,索引层520还可以包括缓存层,用于存储读数据时的最近最少使用(Least Recently Used,LRU)缓存。其中对数据间的混合介质索引可以采用LSM树结构组织内存和文件。
数据层530配置成存储多个数据块文件,其中数据块文件中存储对应于索引的数据值。在一些实施例中,数据层可以独立执行对数据块文件的回收操作。
控制单元540可以配置成对索引层和数据层中索引项和数据块进行处理。在一些实施例中,控制单元540可以配置成从数据层中确定待回收数据块,利用待回收数据块对应的空洞率计数器确定待回收数据块的当前空洞率,至少基于由流量计数器得到的当前读写负载确定当前回收空洞率,以及响应于待回收数据块的当前空洞率不低于当前回收空洞率,对待回收数据块进行回收。
在一些实施例中,控制单元540可以包括流量计数器541。流量计数器541可以配置成记录存储引擎的实时读写流量,并得到存储引擎的实时读写负载参数。
控制单元540还可以包括空洞率统计器542。空洞率统计器542可以配置成记录、管理数据块文件的空洞率。在一些实现方式中,仅在对存储引擎进行初始化时对数据块文件进行全量扫描以构建空洞率统计器。之后仅在触发索引压实操作时对统计器中的内容进行更新。相对于反复扫描全量数据块文件以统计空洞率的做法,可以避免反复扫描产生的额外读写消耗。
根据本公开的实施例,还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行结合图1、图3所述的方法。
根据本公开的实施例,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行结合图1、图3所述的方法。
根据本公开的实施例,还提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现结合图1、图3所述的方法。
参考图6,现将描述可以用于实现本公开的实施例的示例性电子设备600的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606、输出单元607、存储单元608以及通信单元609。输入单元606可以是能向设备600输入信息的任何类型的设备,输入单元606可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元607可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元608可以包括但不限于磁盘、光盘。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如根据本公开的实施例的方法。例如,在一些实施例中,本公开的实施例的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开的实施例的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (15)
1.一种数据处理方法,包括:
确定待回收数据块,其中,确定待回收数据块包括:响应于确定索引层触发索引压实操作确定所述索引压实操作中淘汰的索引,以及将所述索引压实操作中淘汰的索引对应的数据所在的数据块确定为所述待回收数据块;
确定所述待回收数据块的当前空洞率,其中,确定所述待回收数据块的当前空洞率包括:利用用于所述待回收数据块的空洞率计数器确定所述待回收数据块的真实空洞率,至少基于当前读写负载对所述真实空洞率进行调整以得到所述当前空洞率,其中所述当前读写负载越高,所述当前空洞率越低;
至少基于当前读写负载确定当前回收空洞率,其中所述当前读写负载越高,所述当前回收空洞率越高;
确定所述待回收数据块的当前空洞率是否低于所述当前回收空洞率;以及
响应于所述待回收数据块的当前空洞率不低于所述当前回收空洞率,对所述待回收数据块进行回收。
2.如权利要求1所述的数据处理方法,其中,所述索引层包括基于LSM树结构的多个索引项,其中每个索引项包括数据键和值索引,所述值索引包括与所述数据键对应的数据值所在的数据块的标识以及所述数据在数据块中的偏移量。
3.如权利要求1所述的数据处理方法,其中,至少基于所述当前读写负载对所述真实空洞率进行调整,以得到所述当前空洞率包括:
至少基于所述当前读写负载以及所述待回收数据块中存储的数据的生存时间信息对所述真实空洞率进行调整,以得到所述当前空洞率。
4.如权利要求3所述的数据处理方法,其中所述待回收数据块中存储的数据的生存时间信息指示所存储的数据的生存时间越长,所述当前空洞率越高。
5.如权利要求3所述的数据处理方法,其中,至少基于所述当前读写负载以及所述待回收数据块中存储的数据的生存时间信息对所述真实空洞率进行调整,以得到所述当前空洞率包括:
基于所述当前读写负载、所述待回收数据块中存储的数据的生存时间信息以及所述待回收数据块的存储层级对所述真实空洞率进行调整,以得到所述当前空洞率。
6.如权利要求5所述的数据处理方法,其中,所述待回收数据块的存储层级越高,所述当前空洞率越高。
7.如权利要求6所述的数据处理方法,其中,所述当前空洞率是基于下式确定的:
,
其中Pcurrent是所述当前空洞率,Pactual是所述真实空洞率,levelblock是指示所述存储层级,TTLblock是所述生存时间信息,α、β是预先确定的系数,γ是基于当前读写负载确定的参数。
8.如权利要求7所述的数据处理方法,其中,γ=1/IO,IO是当前读写负载值。
9.如权利要求1所述的数据处理方法,其中,至少基于当前读写负载确定当前回收空洞率包括:
基于所述当前读写负载以及当前剩余存储空间对预先确定的初始回收空洞率进行调整,以得到所述当前回收空洞率。
10.如权利要求9所述的数据处理方法,其中,所述当前剩余存储空间越小,所述当前回收空洞率越低。
11.如权利要求10所述的数据处理方法,其中,所述当前回收空洞率是基于下式确定的:
,
其中,Pth是所述当前回收空洞率,θ0是所述初始回收空洞率,IO是当前读写负载值,e是自然对数,left是当前剩余存储空间,δ、λ是预先确定的系数。
12.一种数据处理装置,包括:
待回收数据块确定单元,配置成确定待回收数据块,其中,确定待回收数据块包括:响应于确定索引层触发索引压实操作确定所述索引压实操作中淘汰的索引,以及将所述索引压实操作中淘汰的索引对应的数据所在的数据块确定为所述待回收数据块;
空洞率确定单元,配置成确定所述待回收数据块的当前空洞率,其中,确定所述待回收数据块的当前空洞率包括:利用用于所述待回收数据块的空洞率计数器确定所述待回收数据块的真实空洞率,至少基于当前读写负载对所述真实空洞率进行调整以得到所述当前空洞率,其中所述当前读写负载越高,所述当前空洞率越低;
回收空洞率确定单元,配置成至少基于当前读写负载确定当前回收空洞率,其中所述当前读写负载越高,所述当前回收空洞率越高;
比较单元,配置成确定所述待回收数据块的当前空洞率是否低于所述当前回收空洞率;以及
回收单元,配置成响应于所述待回收数据块的当前空洞率不低于所述当前回收空洞率,对所述待回收数据块进行回收。
13.一种存储引擎装置,包括:
索引层,配置成存储包括数据键和值索引的索引项,所述值索引包括与所述数据键对应的数据值所在的数据块的标识以及所述数据值在数据块中的偏移量;
数据层,配置成存储多个数据块;
控制单元,配置成:
从所述数据层中确定待回收数据块,其中,确定待回收数据块包括:响应于确定索引层触发索引压实操作确定所述索引压实操作中淘汰的索引,以及将所述索引压实操作中淘汰的索引对应的数据所在的数据块确定为所述待回收数据块;
利用所述待回收数据块对应的空洞率计数器确定所述待回收数据块的当前空洞率,其中,确定所述待回收数据块的当前空洞率包括:利用用于所述待回收数据块的空洞率计数器确定所述待回收数据块的真实空洞率,至少基于当前读写负载对所述真实空洞率进行调整以得到所述当前空洞率,其中所述当前读写负载越高,所述当前空洞率越低;
至少基于由流量计数器得到的当前读写负载确定当前回收空洞率,其中所述当前读写负载越高,所述当前回收空洞率越高;以及
响应于所述待回收数据块的当前空洞率不低于所述当前回收空洞率,对所述待回收数据块进行回收。
14.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
15.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110220233.2A CN112925643B (zh) | 2021-02-26 | 2021-02-26 | 数据处理方法、装置以及存储引擎装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110220233.2A CN112925643B (zh) | 2021-02-26 | 2021-02-26 | 数据处理方法、装置以及存储引擎装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112925643A CN112925643A (zh) | 2021-06-08 |
CN112925643B true CN112925643B (zh) | 2024-01-12 |
Family
ID=76172426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110220233.2A Active CN112925643B (zh) | 2021-02-26 | 2021-02-26 | 数据处理方法、装置以及存储引擎装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112925643B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779074A (zh) * | 2012-06-18 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 基于内存空洞机制的虚拟机内存资源分配方法 |
CN103987101A (zh) * | 2014-04-17 | 2014-08-13 | 南京邮电大学 | 无线传感器网络中移动sink节点的自主移动方法 |
CN104002003A (zh) * | 2014-06-10 | 2014-08-27 | 北京时代民芯科技有限公司 | 一种无需负载低空洞率的真空钎焊装片工艺方法 |
CN110888837A (zh) * | 2019-11-15 | 2020-03-17 | 星辰天合(北京)数据科技有限公司 | 对象存储小文件归并方法及装置 |
CN111597147A (zh) * | 2020-04-30 | 2020-08-28 | 星辰天合(北京)数据科技有限公司 | 空间回收方法、装置、存储介质以及处理器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9846711B2 (en) * | 2012-12-28 | 2017-12-19 | Facebook, Inc. | LSM cache |
WO2017132790A1 (zh) * | 2016-02-01 | 2017-08-10 | 华为技术有限公司 | 数据恢复方法及存储设备 |
-
2021
- 2021-02-26 CN CN202110220233.2A patent/CN112925643B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779074A (zh) * | 2012-06-18 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 基于内存空洞机制的虚拟机内存资源分配方法 |
CN103987101A (zh) * | 2014-04-17 | 2014-08-13 | 南京邮电大学 | 无线传感器网络中移动sink节点的自主移动方法 |
CN104002003A (zh) * | 2014-06-10 | 2014-08-27 | 北京时代民芯科技有限公司 | 一种无需负载低空洞率的真空钎焊装片工艺方法 |
CN110888837A (zh) * | 2019-11-15 | 2020-03-17 | 星辰天合(北京)数据科技有限公司 | 对象存储小文件归并方法及装置 |
CN111597147A (zh) * | 2020-04-30 | 2020-08-28 | 星辰天合(北京)数据科技有限公司 | 空间回收方法、装置、存储介质以及处理器 |
Non-Patent Citations (1)
Title |
---|
内存计算环境下基于索引结构的内存优化策略;英昌甜;王维庆;于炯;卞琛;国冰磊;祁雷;;新疆大学学报(自然科学版)(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112925643A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9166866B2 (en) | Hydration and dehydration with placeholders | |
US7047387B2 (en) | Block cache size management via virtual memory manager feedback | |
US20080140960A1 (en) | System and method for optimizing memory usage during data backup | |
US8935481B2 (en) | Apparatus system and method for providing raw data in a level-two cache | |
CN106649145A (zh) | 一种自适应更新缓存策略的方法及系统 | |
CN113961510B (zh) | 一种文件处理方法、装置、设备及存储介质 | |
CN109918352B (zh) | 存储器系统和存储数据的方法 | |
US11093389B2 (en) | Method, apparatus, and computer program product for managing storage system | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
CN112925643B (zh) | 数据处理方法、装置以及存储引擎装置 | |
WO2021232743A1 (zh) | 缓存管理方法、装置、存储介质和固态非易失存储设备 | |
US9549044B1 (en) | Data processing | |
WO2023082629A1 (zh) | 数据存储方法及装置、电子设备和存储介质 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
CN114253950A (zh) | 管理数据库的方法和装置 | |
US11341007B2 (en) | Storage system and storage control method | |
CN112631517B (zh) | 数据存储方法、装置、电子设备和存储介质 | |
CN115809263A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113297003A (zh) | 管理备份数据的方法、电子设备和计算机程序产品 | |
US11513862B2 (en) | System and method for state management of devices | |
WO2018083857A1 (ja) | 情報処理装置及び情報処理方法 | |
US11816088B2 (en) | Method and system for managing cross data source data access requests | |
US11086556B2 (en) | System and method for overprotection mitigation | |
CN111400247B (zh) | 一种用户行为审计方法及文件存储方法 | |
CN116303298A (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 |