基于RocksDB的存储系统中的数据处理方法、装置、设备和介质制造方法及图纸

技术编号:39035450 阅读:15 留言:0更新日期:2023-10-10 11:48
本申请了提供一种基于RocksDB的存储系统中的数据处理方法、装置、设备及计算机可读存储介质。其中,所述存储系统包括目标存储组,目标存储组包括TTL相同的第一RocksDB和第二RocksDB所述方法包括:响应于写请求,将目标数据写到目标存储组中的第二RocksDB中;其中,所述第二RocksDB的写入属性为可写,对应地所述第一RocksDB的写入属性为不可写;响应于读请求,通过所述目标存储组中的第一RocksDB和第二RocksDB反馈读取结果;在第一RocksDB的TTL到期的情况下,清理并重载该第一RocksDB;在第一RocksDB被重载的情形下,切换所述第一RocksDB和第二RocksDB的写入属性。本申请通过以RocksDB为粒度回收过期RocksDB的存储资源,可以减缓频繁大量删除数据而导致性能抖动的问题,从而有效地降低了Compaction的开销,保障了存储和读取性能。障了存储和读取性能。障了存储和读取性能。

【技术实现步骤摘要】
基于RocksDB的存储系统中的数据处理方法、装置、设备和介质


[0001]本申请实施例涉及数据存储
,尤其涉及一种基于RocksDB的存储系统中的数据处理方法、装置、电子设备、计算机可读存储介质。

技术介绍

[0002]随着计算机技术的发展,针对各类数据的海量存储、读写成为了当前的热点问题。以KV存储系统为例,其是分布式存储系统,以键值对的形式存储数据。这种存储方式简单且易于扩展,被应用于大规模数据存储场景。KV存储系统具有高可用性、可扩展性和容错性等特点,能够满足海量数据存储的需求。KV存储系统单存储节点底层数据存储基于RocksDB实现,对于需要频繁大量删除的应用场景(即TTL较短),会增加RocksDB Compaction的开销,可能会造成性能抖动。

技术实现思路

[0003]本申请实施例提供一种基于RocksDB的存储系统中的数据处理方法、装置、电子设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
[0004]第一方面,本申请实施例提供了一种基于RocksDB的存储系统中的数据处理方法,所述存储系统包括目标存储组,目标存储组包括TTL相同的第一Roc ksDB和第二RocksDB;所述方法包括:
[0005]响应于写请求,将目标数据写到目标存储组中的第二RocksDB中;其中,所述第二RocksDB的写入属性为可写,对应地所述第一RocksDB的写入属性为不可写;
[0006]响应于读请求,通过所述目标存储组中的第一RocksDB和第二RocksDB反馈读取结果;
[0007]在第一RocksDB的TTL到期的情况下,清理并重载该第一RocksDB;
[0008]在第一RocksDB被重载的情形下,切换所述第一RocksDB和第二RocksD B的写入属性。
[0009]第二方面,本申请实施例提供了一种基于RocksDB的存储系统中的数据处理装置,所述存储系统包括目标存储组,目标存储组包括TTL相同的第一Roc ksDB和第二RocksDB;所述装置包括:
[0010]写入模块,用于响应于写请求,将目标数据写到目标存储组中的第二Roc ksDB中;其中,所述第二RocksDB的写入属性为可写,对应地所述第一Rock sDB的写入属性为不可写;
[0011]读取模块,用于响应于读请求,通过所述目标存储组中的第一RocksDB和第二RocksDB反馈读取结果;
[0012]清理模块,用于在第一RocksDB的TTL到期的情况下,清理并重载该第一RocksDB;
[0013]切换模块,用于在第一RocksDB被重载的情形下,切换所述第一RocksD B和第二
RocksDB的写入属性。
[0014]第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,以使至少一个处理器能够执行上述数据修复的方法。
[0015]第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当计算机指令在计算机上运行时,上述各方面任一种实施方式中的方法被执行。
[0016]本申请实施例通过在同一个存储组中设置TTL相同的两个RocksDB(第一RocksDB和第二RocksDB),不断循环设置这两个RocksDB的写入属性和以RocksDB为粒度回收过期RocksDB的存储资源,可以减缓频繁大量删除数据而导致性能抖动的问题,从而有效地降低了RocksDB Compaction的开销,从而保障了存储和读取性能。
[0017]上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
[0018]在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
[0019]图1示意性示出了RocksDB的Compaction过程;
[0020]图2示意性示出了根据本申请一实施例的基于RocksDB的存储系统中的数据处理方法的系统架构示意图;
[0021]图3示意性示出了根据本申请一实施例的基于RocksDB的存储系统中的数据处理方法的流程图;
[0022]图4示意性示出了写请求的过程;
[0023]图5示意性示出了读请求的过程;
[0024]图6示意性示出了根据本申请一实施例的基于RocksDB的存储系统中的数据处理装置的框图;及
[0025]图7是用来实现本申请实施例的数据存储方法的电子设备的框图。
具体实施方式
[0026]在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
[0027]KV存储系统单存储节点底层数据存储基于RocksDB实现,对于需要频繁大量删除的应用场景(即TTL较短),会增加RocksDB Compaction的开销,可能会造成性能抖动。具体地:1.数据到期无法直接删除回收,而是先写入一条带删除标签的数据,依赖Compaction进行删除回收;2.对于已删除的数据,Compaction需要到最后一层才能真正释放存储资源(如图1所示);3.Compaction可能影响系统读写性能。
[0028]基于上述技术缺陷,本申请实施例提供一种基于RocksDB的存储系统的数据回收方法。
[0029]以下为本申请实施例中可能涉及到的名词术语解释:
[0030]生命周期(TTL,Time To Live):一个对象从创建到回收删除的全过程。
[0031]RocksDB:是基于日志结构合并(Log

Structured Merge,LSM)树数据结构的,可嵌入的持久化键值存储库,将数据存储在内存和磁盘上的不同层级中,以实现高吞吐量和低延迟。RocksDB是通过标记和Compaction过程来进行实际的清理和释放存储空间。
[0032]键值存储系统(Key

Value存储系统),是一种数据存储模型,以键值对的形式进行数据存储。每个键(Key)在KV存储系统中唯一,并且与之关联的是一个值(Value)。
[0033]LSM树(Log

Structured

Merge

Tree):是一种数据结构,适用于Key

Value数据的高效索引和持久化存储,可用于BigTable、LevelDB、Ro本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于RocksDB的存储系统中的数据处理方法,其特征在于,所述存储系统包括目标存储组,目标存储组包括TTL相同的第一RocksDB和第二RocksDB;所述方法包括:响应于写请求,将目标数据写到目标存储组中的第二RocksDB中;其中,所述第二RocksDB的写入属性为可写,对应地所述第一RocksDB的写入属性为不可写;响应于读请求,通过所述目标存储组中的第一RocksDB和第二RocksDB反馈读取结果;在第一RocksDB的TTL到期的情况下,清理并重载该第一RocksDB;在第一RocksDB被重载的情形下,切换所述第一RocksDB和第二RocksD B的写入属性。2.根据权利要求1所述的方法,其特征在于,通过所述目标存储组中的第一RocksDB和第二RocksDB反馈读取结果,包括:根据第一RocksDB的响应结果和所述第二RocksDB的响应结果,确定所述读取结果。3.根据权利要求2所述的方法,其特征在于,根据第一RocksDB的响应结果和所述第二RocksDB的响应结果,确定所述读取结果,包括:在第二RocksDB存在响应数据,且所述响应数据是过期数据的情况下,确定读取结果为数据不存在;在第二RocksDB存在响应数据,且所述响应数据不是过期数据的情况下,确定读取结果为所述响应数据;在第二RocksDB响应超时或失败的情况下,确定读取结果为超时或失败。4.根据权利要求2所述的方法,其特征在于,根据第一RocksDB的响应结果和所述第二RocksDB的响应结果,确定所述读取结果,包括:在第二RocksDB不存在响应数据,第一RocksDB存在响应数据,且所述响应数据是过期数据的情况下,确定读取结果为数据不存在;在第二RocksDB不存在响应数据,第一RocksDB存在响应数据,且所述响应数据不是过期数据的情况下,确定读取结果为所述响应数据;在第二RocksDB不存在响应数据,第一RocksDB响应超时或失败的情况下,确定读取结果为超时或失败;在第一RocksDB和第二RocksDB均不存在响应数据的情况下,确定读取结果为数据不存在。5.根据权利要求1至4任意一项所述的方法,其特征在于,所述存储系统包括多个存储组,不同的存储组对应不同的TTL,所述目标存...

【专利技术属性】
技术研发人员:刘易
申请(专利权)人:上海哔哩哔哩科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1