【技术实现步骤摘要】
数据处理方法、装置、设备及存储介质
[0001]本申请实施例涉及计算机
,特别涉及一种数据处理方法、装置、设备及存储介质。
技术介绍
[0002]键值(key value)存储是一种非关系型数据库模型,它使用简单的键值对来组织、索引和存储数据。它具有高性能、灵活性和可扩展性的特点。
[0003]相关技术中,在通过树组件处理键值对存储请求的过程中,仅以树组件中的各个多层存储树对键值处理范围进行划分,得到各个多层存储树对应的第一存储范围,从而根据键值,将数据存入对应的第一存储范围内的内存表中,并且只有在第一存储范围内的所有内存表均无剩余存储空间的情况下,才会对整个第一存储范围内的全部内存表中的键值数据进行压缩处理,导致出现键值数据写入停顿的问题,并且存储范围划分尺度较粗,不利于对键值数据进行管理。
技术实现思路
[0004]本申请实施例提供了一种数据处理方法、装置、设备及存储介质,能够提高键值对的存储效率。所述技术方案如下。
[0005]一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
[0006]在接收到键值对存储请求的情况下,从所述键值对存储请求中获取待存储键值对的第一键值;
[0007]基于所述第一键值以及组件配置信息,确定用于处理所述键值对存储请求的第一树组件,所述组件配置信息表征各个树组件与各个键值处理范围之间的分配关系,不同树组件负责处理不同键值范围对应的键值对存储请求;
[0008]基于所述第一键值,确定所述第一树组件中用于存储所述待存 ...
【技术保护点】
【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:在接收到键值对存储请求的情况下,从所述键值对存储请求中获取待存储键值对的第一键值;基于所述第一键值以及组件配置信息,确定用于处理所述键值对存储请求的第一树组件,所述组件配置信息表征各个树组件与各个键值处理范围之间的分配关系,不同树组件负责处理不同键值范围对应的键值对存储请求;基于所述第一键值,确定所述第一树组件中用于存储所述待存储键值对的第一存储范围,所述第一树组件维护多个多层存储树,所述多层存储树与所述第一存储范围一一对应,所述第一存储范围中还包括多个第一级子存储范围,不同第一级子存储范围用于存储不同键值范围的键值对,且各个第一级子存储范围对应的键值范围基于各个第一级子存储范围的写入负载动态变化;基于所述第一键值,确定所述待存储键值对对应的第一级子存储范围,并将所述待存储键值对存储至所述第一级子存储范围内的内存表中。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一键值,确定所述待存储键值对对应的第一级子存储范围,并将所述待存储键值对存储至所述第一级子存储范围内的内存表中,包括:基于所述第一键值,确定所述第一存储范围中用于存储所述待存储键值对的所述第一级子存储范围;在所述第一级子存储范围中存在第一可用内存表,且所述第一可用内存表的剩余存储空间不小于所述待存储键值对所需存储空间的情况下,将所述待存储键值对存储至所述第一可用内存表内。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述第一级子存储范围中不存在所述第一可用内存表,或所述第一可用内存表的剩余存储空间小于所述待存储键值对所需存储空间的情况下,刷新所述第一级子存储范围中的多个不可用内存表,以删除所述不可用内存表中存储的各个键值对应的重复数据值并保留最新数据值,所述不可用内存表为存储空间已满的内存表;利用刷新后的多个不可用内存表中的空余存储空间构建第二可用内存表;将所述待存储键值对存储至所述第二可用内存表内。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述第一级子存储范围中不存在所述第一可用内存表,或所述第一可用内存表的剩余存储空间小于所述待存储键值对所需存储空间的情况下,对所述第一级子存储范围中的多个不可用内存表进行压缩处理,得到第一压缩处理结果,所述不可用内存表为存储空间已满的内存表;将所述第一压缩处理结果存储至所述第一级子存储范围对应的排序字符串表中,并将所述不可用内存表转换为所述第一可用内存表;将所述待存储键值对存储至所述第一可用内存表内。5.根据权利要求4所述的方法,其特征在于,所述第一级子存储范围对应的排序字符串表由多级字符串表构成;所述将所述第一压缩处理结果存储至所述第一级子存储范围对应的排序字符串表中,
包括:在所述排序字符串表的第0级字符串表存在剩余存储空间的情况下,将所述第一压缩处理结果存储至所述第0级字符串表中;在第i级字符串表的存储空间达到存储阈值的情况下,对所述第i级字符串表进行压缩处理得到第二压缩处理结果,并将所述第二压缩处理结果存储至第i+1级字符串表中,其中,i≥0,且i为整数。6.根据权利要求5所述的方法,其特征在于,所述第一树组件对应有多个存储组件,所述方法还包括:基于所述第一树组件对应的多个存储组件的组件数量,以及各级字符串表内的数据写入范围分布情况,确定各级字符串表对应的数据分区方式;基于各级字符串表对应的数据分区方式,对各级字符串表进行数据分区,得到各级字符串表对应的多个数据片段;基于所述数据片段的片段数以及各个存储组件的剩余存储空间,从多个存储组件中筛选出与所述片段数相同数量的存储组件;将各个数据片段并行写入对应的存储组件中。7.根据权利要求6所述的方法,其特征在于,所述将各个数据片段并行写入对应的存储组件中,包括:向第一存储组件发送数据写入请求,以使得所述第一存储组件基于所述数据写入请求分配内存区域;在接收到所述第一存储组件返回的内存区域地址以及内存偏移量的情况下,将所述数据片段写入所述第一存储组件中;在接收到所述第一存储组件发送的数据写入确认消息的情况下,将所述数据片段对应的元数据片段写入第二存储组件中,所述元数据片段与所述数据片段对应,所述元数据片段中存储有所述数据片段对应的字符串表地址信息。8.根据权利要求2所述的方法,其特征在于,所述方法还包括:通过所述第一树组件对应的日志组件,为所述第一级子存储范围中的各个内存表配置对应的日志文件;在所述第一级子存储范围中的目标内存表存在数据写入更新的情况下,在所述目标内存表...
【专利技术属性】
技术研发人员:石志林,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。