【技术实现步骤摘要】
数据处理方法、装置、电子设备及存储介质
[0001]本申请属于计算机
,具体涉及一种数据处理方法、装置、电子设备及存储介质。
技术介绍
[0002]在基于日志结构合并树(Log
‑
Structured Merge Tree,LSM树)的存储系统中,一般需要通过Compaction消除过期数据。其中,Compaction指的是根据一定策略消除存储引擎中的过期数据,以释放磁盘空间。
[0003]相关技术通常在Compaction的过程中遇到了关键字(Key)相同并且版本更大的记录时,才能够将该记录认为是过期数据并被删除。然而两条相同记录能在Compaction过程中遇到的时机是不可控的,一条已经过期的记录可能被Compaction多次(写放大)而继续存在于系统中,浪费了系统的计算资源和磁盘的输入/输出(I/O)资源。其次,一个扫描查询也会将该过期的数据从磁盘上读到内存然后又丢掉,造成读的延迟偏高(读放大)。最后,过期数据长时间存在于数据库系统中,导致磁盘空间不能够得到有效利用(空间放大)。
[0004]可见,相关技术中的过期数据回收方式是一种被动回收机制,在回收时间、空间放大、读写放大等方面都存在很多不可控的因素,使得系统资源无法得到有效利用。
技术实现思路
[0005]为了解决上述技术问题,本申请提供一种数据处理方法、装置、电子设备及存储介质。
[0006]一方面,本申请提出了一种数据处理方法,所述方法包括:获取针对日志结构合并树中的目标数据的写操作所产生 ...
【技术保护点】
【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:获取针对日志结构合并树中的目标数据的写操作所产生的过期数据;所述日志结构合并树包括至少两层数据层,每层所述数据层包括预设数量个磁盘文件,且每层所述数据层对应有一个缓存结构,每层所述数据层对应的缓存结构用于存储每层所述数据层中的过期数据的元信息;确定所述目标数据的关键字为所述过期数据的目标关键字,并基于所述目标关键字从每层所述数据层所包括的预设数量个磁盘文件中,查找所述过期数据所在的目标磁盘文件;将所述目标关键字写入所述目标磁盘文件所在的数据层所对应的缓存结构中;所述目标关键字用于标识所述目标磁盘文件中的过期数据的元信息;根据每层所述数据层所对应的缓存结构中的关键字的数量,对每层所述数据层所包括的磁盘文件中的过期数据进行回收处理。2.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述目标关键字从每层所述数据层所包括的预设数量个磁盘文件中,查找所述过期数据所在的目标磁盘文件,包括:基于所述目标关键字和每层所述数据层所包括的预设数量个磁盘文件在每层所述数据层中的排序位置信息,确定所述过期数据对应的初始磁盘文件;在基于所述初始磁盘文件的布隆过滤器信息确定所述过期数据存在于所述初始磁盘文件中的情况下,确定所述初始磁盘文件为所述目标磁盘文件。3.根据权利要求2所述的数据处理方法,其特征在于,每层候选数据层中的预设数量个磁盘文件按序排列,所述候选数据层为所述至少两层数据层中除第一层数据层之外的数据层;所述基于所述目标关键字和每层所述数据层所包括的预设数量个磁盘文件在每层所述数据层中的排序位置信息,确定所述过期数据对应的初始磁盘文件,包括:比较所述目标关键字和每层所述候选数据层中处于中间位置的磁盘文件的第一候选关键字;在所述目标关键字等于所述第一候选关键字的情况下,确定所述初始磁盘文件为每层所述候选数据层中处于中间位置的磁盘文件;在所述目标关键字小于所述第一候选关键字的情况下,从位于所述处于中间位置的磁盘文件之前的磁盘文件中,查找关键字与所述目标关键字相同的磁盘文件,得到所述初始磁盘文件;在所述目标关键字大于所述第一候选关键字的情况下,从位于所述处于中间位置的磁盘文件之后的磁盘文件中,查找关键字与所述目标关键字相同的磁盘文件,得到所述初始磁盘文件。4.根据权利要求2所述的数据处理方法,其特征在于,所述初始磁盘文件的布隆过滤器信息为长度为预设比特的位数组与预设数量个哈希函数组成的数据结构;所述在基于所述初始磁盘文件的布隆过滤器信息确定所述过期数据存在于所述初始磁盘文件中的情况下,确定所述初始磁盘文件为所述目标磁盘文件,包括:通过所述预设数量个哈希函数对所述目标关键字进行哈希处理,得到预设数量个哈希值;
将所述目标关键字通过所述预设数量个哈希值映射至所述位数组,得到预设数量个映射结果;在所述预设数量个映射结果均为1的情况下,确定所述过期数据存在于所述初始磁盘文件中,并确定所述初始磁盘文件为所述目标磁盘文件。5.根据权利要求4所述的数据处理方法,其特征在于,所述方法还包括:在所述预设数量个映射结果中的任意一个映射结果为0的情况下,确定所述过期数据不存在于所述初始磁盘文件中,并确定所述初始磁盘文件不为所述目标磁盘文件。6.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述目标关键字从每层所述数据层所包括的预设数量个磁盘文件中,查找所述过期数据所在的目标磁盘文件,包括:确定所述日志结构合并树的最后一层为当前数据层;所述当前数据层中的预设数量个磁盘文件按序排列;基于所述目标关键字和所述当前数据层中的预设数量个磁盘文件在所述当前数据层的排序位置信息,确定所述过期数据在所述当前数据层中所对应的初始磁盘文件;在基于所述对应的初始磁盘文件的布隆过滤器信息,确定所述过期数据不存在于所述对应的初始磁盘文件的情况下,重新确定当前数据层的上一层数据层为所述当前数据层;重复所述基于所述目标关键字和所述当前数据层中的预设数量个磁盘文件在所述当前数据层的排序位置信息,至所述重新确定当前数据层的上一层数据层为所述当前数据层的操作,直至当前数据层为所述日志结构合并树的第一层数据层;确...
【专利技术属性】
技术研发人员:贺小龙,潘安群,雷海林,朱翀,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。