数据处理方法、装置、设备及存储介质制造方法及图纸

技术编号:38541023 阅读:18 留言:0更新日期:2023-08-19 17:08
本申请实施例公开了一种数据处理方法、装置、设备及存储介质,属于计算机技术领域。该方法包括:在接收到键值对存储请求的情况下,从所述键值对存储请求中获取待存储键值对的第一键值;基于所述第一键值以及组件配置信息,确定用于处理所述键值对存储请求的第一树组件;基于所述第一键值,确定所述第一树组件中用于存储所述待存储键值对的第一存储范围,所述第一存储范围中还包括多个第一级子存储范围,且各个第一级子存储范围对应的键值范围基于各个第一级子存储范围的写入负载动态变化;基于所述第一键值,确定所述待存储键值对对应的第一级子存储范围,并将所述待存储键值对存储至所述第一级子存储范围内的内存表中;优化了键值对存储效率。了键值对存储效率。了键值对存储效率。

【技术实现步骤摘要】
数据处理方法、装置、设备及存储介质


[0001]本申请实施例涉及计算机
,特别涉及一种数据处理方法、装置、设备及存储介质。

技术介绍

[0002]键值(key value)存储是一种非关系型数据库模型,它使用简单的键值对来组织、索引和存储数据。它具有高性能、灵活性和可扩展性的特点。
[0003]相关技术中,在通过树组件处理键值对存储请求的过程中,仅以树组件中的各个多层存储树对键值处理范围进行划分,得到各个多层存储树对应的第一存储范围,从而根据键值,将数据存入对应的第一存储范围内的内存表中,并且只有在第一存储范围内的所有内存表均无剩余存储空间的情况下,才会对整个第一存储范围内的全部内存表中的键值数据进行压缩处理,导致出现键值数据写入停顿的问题,并且存储范围划分尺度较粗,不利于对键值数据进行管理。

技术实现思路

[0004]本申请实施例提供了一种数据处理方法、装置、设备及存储介质,能够提高键值对的存储效率。所述技术方案如下。
[0005]一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
[0006]在接收到键值对存储请求的情况下,从所述键值对存储请求中获取待存储键值对的第一键值;
[0007]基于所述第一键值以及组件配置信息,确定用于处理所述键值对存储请求的第一树组件,所述组件配置信息表征各个树组件与各个键值处理范围之间的分配关系,不同树组件负责处理不同键值范围对应的键值对存储请求;
[0008]基于所述第一键值,确定所述第一树组件中用于存储所述待存储键值对的第一存储范围,所述第一树组件维护多个多层存储树,所述多层存储树与所述第一存储范围一一对应,所述第一存储范围中还包括多个第一级子存储范围,不同第一级子存储范围用于存储不同键值范围的键值对,且各个第一级子存储范围对应的键值范围基于各个第一级子存储范围的写入负载动态变化;
[0009]基于所述第一键值,确定所述待存储键值对对应的第一级子存储范围,并将所述待存储键值对存储至所述第一级子存储范围内的内存表中。
[0010]另一方面,本申请实施例提供了一种数据处理装置,所述装置包括:
[0011]第一获取模块,用于在接收到键值对存储请求的情况下,从所述键值对存储请求中获取待存储键值对的第一键值;
[0012]第一确定模块,用于基于所述第一键值以及组件配置信息,确定用于处理所述键值对存储请求的第一树组件,所述组件配置信息表征各个树组件与各个键值处理范围之间的分配关系,不同树组件负责处理不同键值范围对应的键值对存储请求;
[0013]第二确定模块,用于基于所述第一键值,确定所述第一树组件中用于存储所述待存储键值对的第一存储范围,所述第一树组件维护多个多层存储树,所述多层存储树与所述第一存储范围一一对应,所述第一存储范围中还包括多个第一级子存储范围,不同第一级子存储范围用于存储不同键值范围的键值对,且各个第一级子存储范围对应的键值范围基于各个第一级子存储范围的写入负载动态变化;
[0014]第一存储模块,用于基于所述第一键值,确定所述待存储键值对对应的第一级子存储范围,并将所述待存储键值对存储至所述第一级子存储范围内的内存表中。
[0015]另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述方面所述的数据处理方法。
[0016]另一方面,本申请实施例提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述方面所述的数据处理方法。
[0017]另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的数据处理方法。
[0018]本申请实施例中,设置有多个树组件用于处理键值对存储请求,且各个树组件中维护有多个多层存储树,每个多层存储树与第一存储范围一一对应,并且为了便于对键值对数据进行压缩存储和管理,在第一存储范围中又细分了多个第一级子存储范围,不同第一级子存储范围用于存储不同键值范围的键值对,且各个第一级子存储范围对应的键值范围基于各个第一级子存储范围的写入负载动态变化,从而在接收到键值对存储请求的情况下,可以根据键值对存储请求中待存储键值对的第一键值,确定处理该键值对存储请求的第一树组件,并根据第一键值,确定第一存储范围以及第一级子存储范围,进而将待存储键值对存储至第一级子存储范围内的内存表中,提高了对键值对的存储效率,优化了数据处理和管理的过程。
附图说明
[0019]图1示出了本申请一个示例性实施例提供的实施环境的示意图;
[0020]图2示出了本申请一个示例性实施例提供的数据处理方法的流程图;
[0021]图3示出了本申请另一个示例性实施例提供的数据处理方法的流程图;
[0022]图4示出了本申请一个示例性实施例提供的对字符串表内的数据进行压缩处理的示意图;
[0023]图5示出了本申请一个示例性实施例提供的划分数据片段以及存储组件的示意图;
[0024]图6示出了本申请一个示例性实施例提供的将数据片段存储至存储组件的流程图;
[0025]图7示出了本申请一个示例性实施例提供的组件结构图;
[0026]图8示出了本申请一个示例性实施例提供的树组件的存储范围划分示意图;
[0027]图9示出了本申请一个示例性实施例提供的查找索引以及范围索引的示意图;
[0028]图10示出了本申请一个示例性实施例提供的数据处理装置的结构框图;
[0029]图11示出了本申请一个示例性实施例提供的计算机设备的结构示意图。
具体实施方式
[0030]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0031]首先,对本申请实施例中涉及的名词进行介绍。
[0032]树(Tree)组件:用于处理应用程序的请求并管理数据的存储,系统将数据范围划分到树组件中。物理上树组件以不同的方式组织范围的内存表和排序字符串表,比如,将范围及其排序字符串表分配给一个存储组件;将范围的排序字符串表分配给不同的存储组件,其中一个排序字符串表分配给一个存储组件;或将范围的排序字符串表分配给不同的存储组件,并将每个排序字符串表的块分散在多个存储组件之间。树组件可以使用复制、基于奇偶性的技术或两者的混合来增强在存储组件故障存在的情况下数据的可用性。
[0033]多层存储树:是一种层级化的日志存储结构,用于实现持久化的多节点键值存储。多层存储树不直接原地更新磁盘中的日志,而是先使用内存中的记忆表暂存写入数据,然后使用顺序磁盘I/O将其刷新到排序字符串表中。
[0034]日志(Log)组件:用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:在接收到键值对存储请求的情况下,从所述键值对存储请求中获取待存储键值对的第一键值;基于所述第一键值以及组件配置信息,确定用于处理所述键值对存储请求的第一树组件,所述组件配置信息表征各个树组件与各个键值处理范围之间的分配关系,不同树组件负责处理不同键值范围对应的键值对存储请求;基于所述第一键值,确定所述第一树组件中用于存储所述待存储键值对的第一存储范围,所述第一树组件维护多个多层存储树,所述多层存储树与所述第一存储范围一一对应,所述第一存储范围中还包括多个第一级子存储范围,不同第一级子存储范围用于存储不同键值范围的键值对,且各个第一级子存储范围对应的键值范围基于各个第一级子存储范围的写入负载动态变化;基于所述第一键值,确定所述待存储键值对对应的第一级子存储范围,并将所述待存储键值对存储至所述第一级子存储范围内的内存表中。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一键值,确定所述待存储键值对对应的第一级子存储范围,并将所述待存储键值对存储至所述第一级子存储范围内的内存表中,包括:基于所述第一键值,确定所述第一存储范围中用于存储所述待存储键值对的所述第一级子存储范围;在所述第一级子存储范围中存在第一可用内存表,且所述第一可用内存表的剩余存储空间不小于所述待存储键值对所需存储空间的情况下,将所述待存储键值对存储至所述第一可用内存表内。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述第一级子存储范围中不存在所述第一可用内存表,或所述第一可用内存表的剩余存储空间小于所述待存储键值对所需存储空间的情况下,刷新所述第一级子存储范围中的多个不可用内存表,以删除所述不可用内存表中存储的各个键值对应的重复数据值并保留最新数据值,所述不可用内存表为存储空间已满的内存表;利用刷新后的多个不可用内存表中的空余存储空间构建第二可用内存表;将所述待存储键值对存储至所述第二可用内存表内。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述第一级子存储范围中不存在所述第一可用内存表,或所述第一可用内存表的剩余存储空间小于所述待存储键值对所需存储空间的情况下,对所述第一级子存储范围中的多个不可用内存表进行压缩处理,得到第一压缩处理结果,所述不可用内存表为存储空间已满的内存表;将所述第一压缩处理结果存储至所述第一级子存储范围对应的排序字符串表中,并将所述不可用内存表转换为所述第一可用内存表;将所述待存储键值对存储至所述第一可用内存表内。5.根据权利要求4所述的方法,其特征在于,所述第一级子存储范围对应的排序字符串表由多级字符串表构成;所述将所述第一压缩处理结果存储至所述第一级子存储范围对应的排序字符串表中,
包括:在所述排序字符串表的第0级字符串表存在剩余存储空间的情况下,将所述第一压缩处理结果存储至所述第0级字符串表中;在第i级字符串表的存储空间达到存储阈值的情况下,对所述第i级字符串表进行压缩处理得到第二压缩处理结果,并将所述第二压缩处理结果存储至第i+1级字符串表中,其中,i≥0,且i为整数。6.根据权利要求5所述的方法,其特征在于,所述第一树组件对应有多个存储组件,所述方法还包括:基于所述第一树组件对应的多个存储组件的组件数量,以及各级字符串表内的数据写入范围分布情况,确定各级字符串表对应的数据分区方式;基于各级字符串表对应的数据分区方式,对各级字符串表进行数据分区,得到各级字符串表对应的多个数据片段;基于所述数据片段的片段数以及各个存储组件的剩余存储空间,从多个存储组件中筛选出与所述片段数相同数量的存储组件;将各个数据片段并行写入对应的存储组件中。7.根据权利要求6所述的方法,其特征在于,所述将各个数据片段并行写入对应的存储组件中,包括:向第一存储组件发送数据写入请求,以使得所述第一存储组件基于所述数据写入请求分配内存区域;在接收到所述第一存储组件返回的内存区域地址以及内存偏移量的情况下,将所述数据片段写入所述第一存储组件中;在接收到所述第一存储组件发送的数据写入确认消息的情况下,将所述数据片段对应的元数据片段写入第二存储组件中,所述元数据片段与所述数据片段对应,所述元数据片段中存储有所述数据片段对应的字符串表地址信息。8.根据权利要求2所述的方法,其特征在于,所述方法还包括:通过所述第一树组件对应的日志组件,为所述第一级子存储范围中的各个内存表配置对应的日志文件;在所述第一级子存储范围中的目标内存表存在数据写入更新的情况下,在所述目标内存表...

【专利技术属性】
技术研发人员:石志林
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1