数据处理方法、设备及可读存储介质与流程

文档序号:34013839发布日期:2023-04-29 23:31阅读:58来源:国知局
本技术涉及信息存储,具体而言,本技术涉及一种数据处理方法、设备及可读存储介质。
背景技术
::1、在大数据时代,各类用户在数字化过程中对存储需求呈现出显著的差异,产生了大量非结构化的数据,而传统的关系型存储难以有效地应对非结构化数据。而键值存储系统直接通过键来查找值,很好地适应了非结构化数据的存储需求,得到了越来越广泛的应用。2、日志结构合并树(log-structured-merge-tree,简称lsm-tree)作为键值存储的代表性结构之一,其写性能表现十分优异,而读性能表现较差。3、云存储由于相较于传统存储方式而言管理更为方便、具有更好的拓展性、可靠性、更低的使用成本而越来越受到欢迎。然而,云存储卷的时延在不同的访问负载下存在明显的差异。当访问负载不超过购买的iops(input/output operations per second,每秒io操作数)时,则每个请求的处理时延都在适当的阈值内。当访问负载超过购买的iops时,每个请求的访问延迟会急剧增加。这一时延特性严重影响了基于日志结构合并树的键值存储系统的性能和尾部时延。4、基于日志结构合并树的键值存储系统在处理读请求时可能会访问多次磁盘,产生多次io操作,具有读放大的问题,其内部的压缩操作同样会产生较多的io操作而和用户的读请求争夺云存储有限的iops资源。由于云存储有限的iops,基于日志结构合并树的键值存储系统的数据处理性能受到了极大的限制,尤其是读写请求的平均延迟和尾部延迟比较高。技术实现思路1、本技术提供了一种数据处理方法、设备及可读存储介质,用于解决现有技术中的技术问题。2、第一方面,提供了一种数据处理方法,该方法包括:3、接收针对数据的io操作;4、根据所述io操作的类型为所述io操作确定优先级;5、根据确定的优先级将所述io操作添加至相应的优先级请求队列中,等待分配令牌;6、在所述io操作获取令牌后,执行所述io操作。7、在一个可能的实现方式中,所述根据所述io操作的类型为所述io操作确定优先级,包括:8、若所述io操作为针对数据的预取操作,确定所述io操作为第一优先级;9、所述执行所述io操作,包括:10、在所述io操作得到令牌后向存储设备发送对应的数据读取请求,以读取第一数据块并缓存至第一缓存中,所述io操作被添加至所述第一优先级对应的第一优先级请求队列中,等待分配令牌,所述第一数据块基于热度确定。11、在另一个可能的实现方式中,确定所述第一数据块的过程包括:12、获取统计周期内读取的至少两个数据块的访问次数;13、根据所述至少两个数据块的访问次数,更新相应数据块的热度;14、选择所述统计周期内所述至少两个数据块中热度最高且未被缓存到第一缓存中的数据块作为所述第一数据块。15、在又一个可能的实现方式中,所述根据所述io操作的类型为所述io操作确定优先级,包括:16、若所述io操作为针对数据的读取请求,确定所述io操作为第二优先级;17、所述执行所述io操作,包括:18、在所述io操作得到令牌后向存储设备发送对应的数据读取请求,以读取第二数据块,并在第二缓存开启的情况下,将所述第二数据块缓存至所述第二缓存中;19、将所述io操作被添加至第二优先级对应的第二请求队列中,等待分配令牌,所述第二优先级高于第一优先级。20、在又一个可能的实现方式中,若接收到的所述io操作为针对第二数据块的读取请求,所述方法还包括:21、依次在所述第二缓存和第一缓存中查找所述第二数据块,若找到则返回,若未查找到,则在所述存储设备中查找所述第二数据块;22、其中,所述第一缓存以第一粒度的数据块为单位管理缓存空间,所述第二缓存以小于所述第一粒度的第二粒度的数据块为单位管理缓存空间;23、若访问存储设备的io数量超过存储设备iops的第一阈值,所述第二缓存开启,否则,所述第一缓存开启。24、在又一个可能的实现方式中,所述第一缓存和所述第二缓存的缓存空间总和保持不变,且各自的缓存空间大小能够动态变化。25、在又一个可能的实现方式中,所述方法还包括:26、若所述第二缓存中的第三数据块所属的第四数据块的热度高于所述第一缓存中热度最冷的数据块,则移除所述第一缓存中的热度最冷的数据块并将释放的缓存空间添加到所述第二缓存中。27、在又一个可能的实现方式中,若接收到的所述io操作为针对目标数据的写入请求,所述方法还包括:28、根据所述io操作的来源确定所述io操作为下刷的写入请求或压缩的写入请求;29、其中,下刷的写入请求为将所述目标数据生成的排序字符串表sstable写入到日志结构合并树lsm-tree的l0层的下刷操作;30、压缩的写入请求为针对lsm-tree的li层的sstable,以及所述lsm-tree的l(i+1)层中与所述li层的sstable存在键值范围重叠的sstable之间的压缩操作。31、在又一个可能的实现方式中,所述根据所述io操作的类型为所述io操作确定优先级,包括:32、若所述io操作为下刷的写入请求,确定所述io操作为第二优先级;33、所述执行所述io操作,包括:34、在所述io操作得到令牌后,将所述目标数据生成的sstable写入到所述l0层,将所述io操作被添加至第二优先级对应的第二请求队列中,等待分配令牌,所述第二优先级高于第一优先级。35、在又一个可能的实现方式中,所述根据所述io操作的类型为所述io操作确定优先级,包括:36、若所述io操作为压缩的写入请求,且l(i+1)层为所述lsm-tree的最底层,确定所述io操作为第一优先级;37、若所述io操作为压缩的写入请求,且l(i+1)层不为所述lsm-tree的最底层,确定所述io操作为第三优先级;38、所述执行所述io操作,包括:39、在所述io操作得到令牌后,将压缩生成的sstable写入到所述l(i+1)层,所述io操作被添加至所述第一优先级对应的第一优先级请求队列中,或者,所述第三优先级对应的第三优先级请求队列中,等待分配令牌;40、其中,所述第三优先级高于所述第一优先级且低于第二优先级。41、在又一个可能的实现方式中,所述方法还包括:42、删除所述li层的sstable,以及所述l(i+1)层中与所述li层的sstable存在键值范围重叠的sstable。43、在又一个可能的实现方式中,所述第二优先级、所述第三优先级和所述第一优先级对应的优先级请求队列的用于分配令牌的时间窗口依次减小。44、第二方面,提供了一种电子设备,该电子设备包括:45、一个或多个处理器;46、存储器;47、一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述第一方面所示的数据处理方法。48、例如,本技术的第二方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;49、存储器用于存放至少一可执行指令,可执行指令使处理器执行如本技术的第一方面所示的数据处理方法对应的操作。50、第三方面,提供了一种计算机可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行上述第一方面所示的数据处理方法。51、本技术提供的技术方案带来的有益效果是:52、通过将针对数据的不同类型的io操作赋予不同的优先级,并将io操作添加至确定的优先级所对应的优先级队列中等待分配令牌,在获取令牌后执行该io操作,从而避免因不同类型的io请求间产生竞争或拥塞导致读写请求的时延升高,能够更高效地利用云储存有限的性能,并显著降低读写请求的平均延迟和尾部延迟。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1