一种垃圾数据清理方法及设备技术

技术编号:23154452 阅读:42 留言:0更新日期:2020-01-18 15:29
一种垃圾数据清理方法及设备,涉及终端领域,解决了在文件系统事务中下发discard消息影响用户的前台操作的问题。该方法包括:获取当前时刻终端的IO忙闲状态,IO忙闲状态包括忙状态和闲状态(S301);若当前时刻终端的IO忙闲状态为闲状态,向存储器件下发丢弃消息(S302),丢弃消息包括存储器件中待清理物理空间的起始地址和大小,丢弃消息用于解除待清理物理空间的物理地址与对应逻辑地址的映射关系。

A garbage data cleaning method and equipment

【技术实现步骤摘要】
【国外来华专利技术】一种垃圾数据清理方法及设备本申请要求于2017年10月09日提交中国专利局、申请号为201710931551.3、申请名称为“一种移动终端清理垃圾的方法和设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请实施例涉及终端领域,尤其涉及一种垃圾数据清理方法及设备。
技术介绍
近年来,诸如闪存等非易失性存储器件已被广泛应用在手机等终端中,用来进行数据存储。在终端的底层存储器件是闪存的情况下,当用户将终端中安装的应用程序的某个文件删除时,终端的文件系统并不会真正的将被删除文件的数据从闪存中的对应物理空间删除,而只是将被删除文件的数据对应的逻辑地址标记为“已删除”或“空闲”等无效状态。这种删除方式,会导致闪存并不知道被删除文件的数据已经无效,即该被删除文件的数据将继续占据物理空间,产生垃圾数据。在长时间使用后,闪存中保存的垃圾数据将会越来越多,可用物理空间将会越来越少。在闪存中的可用物理空间低于某一阈值时,终端会触发垃圾回收(Garbage collection,GC),而垃圾回收会影响终端的前台写性能。并且,在进行垃圾回收时会由于数据搬移量大,使得垃圾回收效率降低,同时闪存的寿命损耗增大,导致闪存的性能下降。为了保证终端的前台写性能和闪存的性能不下降,可以通过向闪存下发丢弃(discard)消息,以通知闪存清除对应的垃圾数据。现有技术通常是在用户触发文件系统事务,进行全局数据更新的过程中向如内存等存储器件下发discard消息,以便存储器件清除垃圾数据的。但是,在文件系统事务中下发discard消息,会引起事务阻塞,影响用户的前台操作。
技术实现思路
本申请实施例提供一种垃圾数据清理方法及设备,解决了在文件系统事务中下发discard消息影响用户的前台操作的问题。为达到上述目的,本申请实施例采用如下技术方案:本申请实施例的第一方面,提供一种垃圾数据清理方法,应用于终端,该终端包括存储器件,该垃圾数据清理方法包括:获取当前时刻终端的输入输出(input output,IO)忙闲状态,所述IO忙闲状态包括忙状态和闲状态;若当前时刻终端的IO忙闲状态为闲状态,向存储器件下发丢弃消息,所述丢弃消息包括存储器件中待清理物理空间的起始地址和大小,所述丢弃消息用于解除待清理物理空间的物理地址与对应逻辑地址的映射关系。其中,在当前时刻终端的IO忙闲状态为闲状态时,可以通过在后台设置任务(如单独创建的内核线程或工作队列)或利用特定接口可实现Discard消息的下发。本申请实施例提供的垃圾数据清理方法,通过在当前时刻终端的IO忙闲状态为闲状态时,向存储器件下发丢弃消息,在不影响用户正常的前台操作的情况下实现对垃圾数据的及时清理。结合第一方面,在一种可能的实现方式中,所述获取当前时刻终端的IO忙闲状态具体的可以包括:根据块层的调度队列在第一时段内是否有IO指令,确定IO忙闲状态;其中,若块层的调度队列在第一时段内无IO指令,则IO忙闲状态为闲状态,若块层的调度队列在第一时段内有IO指令,则IO忙闲状态为忙状态;第一时段的起始时刻为当前时刻,第一时段的持续时长为第一时间阈值。结合第一方面或上述可能的实现方式,在另一种可能的实现方式中,在所述获取当前时刻终端的IO忙闲状态之前,该垃圾数据清理方法还可以包括:获取块层的忙闲状态,存储器件的忙闲状态,应用层的忙闲状态,以及当前时刻IO忙闲状态为忙状态的概率;所述获取当前时刻终端的输入输出IO忙闲状态具体的可以包括:根据块层的忙闲状态、存储器件的忙闲状态、应用层的忙闲状态和当前时刻IO忙闲状态为忙状态的概率,确定IO忙闲状态。结合第一方面或上述可能的实现方式,在另一种可能的实现方式中,若块层的调度队列在第一时段内无IO指令,则块层的忙闲状态为闲状态,若块层的调度队列在第一时段内有IO指令,则块层的忙闲状态为忙状态;第一时段的起始时刻为当前时刻,第一时段的持续时长为第一时间阈值;若存储器件的调度队列在第二时段内无IO指令,则存储器件的忙闲状态为闲状态,若存储器件的调度队列在第二时段内有IO指令,则存储器件的忙闲状态为忙状态;第二时段的起始时刻为当前时刻,第二时段的持续时长为第二时间阈值;若应用层在第三时段内未调用会产生IO指令的文件系统的接口,则应用层的忙闲状态为闲状态,若应用层在第三时段内调用了会产生IO指令的文件系统的接口,则应用层的忙闲状态为忙状态;第三时段的起始时刻为当前时刻,第三时段的持续时长为第三时间阈值;当前时刻IO忙闲状态为忙状态的概率等于历史IO繁忙程度、平均IO繁忙程度以及当前时刻IO繁忙程度三者的加权和。结合第一方面或上述可能的实现方式,在另一种可能的实现方式中,若块层的忙闲状态为闲状态,且存储器件的忙闲状态的闲状态,且应用层的忙闲状态为闲状态,且当前时刻IO忙闲状态为忙状态的概率大于第一概率阈值,则IO忙闲状态为闲状态;若块层的忙闲状态,存储器件的忙闲状态以及应用层的忙闲状态中存在至少一个为忙状态,和/或当前时刻IO忙闲状态为忙状态的概率小于第一概率阈值,则IO忙闲状态为忙状态。结合第一方面或上述可能的实现方式,在另一种可能的实现方式中,在所述向存储器件下发丢弃消息之前,该垃圾数据清理方法还可以包括:获取策略集,策略集中包括以下子策略中的一个或多个:单次发送丢弃消息的个数,发送的丢弃消息的粒度下限,两次发送丢弃消息的发送间隔,再次发送丢弃消息是否需要等待存储器件将前一次发送的丢弃消息处理完成,发送丢弃消息的优先级;所述向存储器件下发丢弃消息具体的可以包括:根据策略集向存储器件下发丢弃消息。这样,通过并行下发丢弃消息,更大限度地利用了存储器件处理丢弃消息的能力,提高了垃圾数据的清理速度。并通过动态调整下发丢弃消息的速率和粒度,实现了存储器件性能的快速恢复。结合第一方面或上述可能的实现方式,在另一种可能的实现方式中,在所述获取策略集之前,该垃圾数据清理方法还可以包括:获取文件系统的空间状态以及存储器件的空间状态,空间状态包括空闲状态和非空闲状态;所述获取策略集具体的可以包括:根据文件系统的空间状态和存储器件的空间状态获取策略集。这样,通过感知文件系统以及存储器件的空间状态,实现了下发丢弃消息的速率和粒度的动态调整。结合第一方面或上述可能的实现方式,在另一种可能的实现方式中,若文件系统的剩余连续可用物理空间与文件系统的剩余可用物理空间的比值大于第一空闲阈值,则文件系统的空间状态为空闲状态,若文件系统的剩余连续可用物理空间与文件系统的剩余可用物理空间的比值小于第一空闲阈值,则文件系统的空间状态为非空闲状态;若存储器件的实际可用物理空间与存储器件的所有物理空间的比值大于第二空闲阈值,则存储器件的空间状态为空闲状态,若存储器件的实际可用物理空间与存储器件的所有物理空间的比值小于第二空闲阈值,则存储器件的空间状态为非空闲状态,存储器件的实际可用物理空间等于文件系统的剩余可用物理空间减去需进行丢弃的物理空间得到的剩余物理空间。结合第一本文档来自技高网
...

【技术保护点】
一种垃圾数据清理方法,其特征在于,应用于终端,所述终端包括存储器件,所述方法包括:/n获取当前时刻所述终端的输入输出IO忙闲状态,所述IO忙闲状态包括忙状态和闲状态;/n若当前时刻所述终端的IO忙闲状态为闲状态,向所述存储器件下发丢弃消息,所述丢弃消息包括所述存储器件中待清理物理空间的起始地址和大小,所述丢弃消息用于解除所述待清理物理空间的物理地址与对应逻辑地址的映射关系。/n

【技术特征摘要】
【国外来华专利技术】20171009 CN 2017109315513一种垃圾数据清理方法,其特征在于,应用于终端,所述终端包括存储器件,所述方法包括:
获取当前时刻所述终端的输入输出IO忙闲状态,所述IO忙闲状态包括忙状态和闲状态;
若当前时刻所述终端的IO忙闲状态为闲状态,向所述存储器件下发丢弃消息,所述丢弃消息包括所述存储器件中待清理物理空间的起始地址和大小,所述丢弃消息用于解除所述待清理物理空间的物理地址与对应逻辑地址的映射关系。


根据权利要求1所述的方法,其特征在于,所述获取当前时刻所述终端的输入输出IO忙闲状态,包括:
根据块层的调度队列在第一时段内是否有IO指令,确定所述IO忙闲状态,所述第一时段的起始时刻为当前时刻,所述第一时段的持续时长为第一时间阈值。


根据权利要求1所述的方法,其特征在于,在所述获取当前时刻所述终端的输入输出IO忙闲状态之前,还包括:
获取块层的忙闲状态,所述存储器件的忙闲状态,应用层的忙闲状态,以及当前时刻所述IO忙闲状态为忙状态的概率;
所述获取当前时刻所述终端的输入输出IO忙闲状态,包括:
根据所述块层的忙闲状态、所述存储器件的忙闲状态、所述应用层的忙闲状态和当前时刻所述IO忙闲状态为忙状态的概率,确定所述IO忙闲状态。


根据权利要求3所述的方法,其特征在于,
若所述块层的忙闲状态为闲状态,且所述存储器件的忙闲状态的闲状态,且所述应用层的忙闲状态为闲状态,且当前时刻所述IO忙闲状态为忙状态的概率大于第一概率阈值,则所述IO忙闲状态为闲状态;
若所述块层的忙闲状态,所述存储器件的忙闲状态以及所述应用层的忙闲状态中存在至少一个为忙状态,和/或当前时刻所述IO忙闲状态为忙状态的概率小于所述第一概率阈值,则所述IO忙闲状态为忙状态。


根据权利要求1-4中任一项所述的方法,其特征在于,在所述向所述存储器件下发丢弃消息之前,还包括:
获取策略集,所述策略集中包括以下子策略中的一个或多个:单次发送所述丢弃消息的个数,发送的所述丢弃消息的粒度下限,两次发送所述丢弃消息的发送间隔,再次发送所述丢弃消息是否需要等待所述存储器件将前一次发送的所述丢弃消息处理完成,发送所述丢弃消息的优先级;
所述向所述存储器件下发丢弃消息,包括:
根据所述策略集向所述存储器件下发所述丢弃消息。


根据权利要求5所述的方法,其特征在于,在所述获取策略集之前,还包括:
获取文件系统的空间状态以及所述存储器件的空间状态,所述空间状态包括空闲状态和非空闲状态;
所述获取策略集,包括:
根据所述文件系统的空间状态和所述存储器件的空间状态获取所述策略集。



根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
获取可用的粒度中每个粒度下所述存储器件的寿命损耗,所述可用的粒度大于或等于所述粒度下限;
根据每个粒度下所述存储器件的寿命损耗,确定每个粒度的优先级;
所述根据所述策略集向所述存储器件下发所述丢弃消息,包括:
根据所述策略集和每个粒度的优先级发送所述丢弃消息。


根据权利要求1-4中任一项所述的方法,其特征在于,在所述向所述存储器件下发丢弃消息之前,还包括:
获取可用的粒度中每个粒度下所述存储器件的寿命损耗,所述可用的粒度为预先设定的粒度;
根据每个粒度下所述存储器件的寿命损耗,确定每个粒度的优先级;
所述向所述存储器件下发所述丢弃消息,包括:
根据每个粒度的优先级发送所述丢弃消息。


一种终端,其特征在于,包括:一个或...

【专利技术属性】
技术研发人员:俞超陈浩童碧峰郑成亮周喜渝
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1