logo好方法网

空间回收方法、装置、存储介质以及处理器


技术摘要:
本发明公开了一种空间回收方法、装置、存储介质以及处理器。其中,该方法包括:基于回收扫描遍历预定索引池的统计计数对象,确定统计计数对象中归并大对象的空间使用数据;依据空间使用数据,确定预定索引池关联的数据池的可回收空间;按照预设的空间回收规则对数据池  全部
背景技术:
现有的对象存储系统,采用设置默认的空洞率,一般为50%,系统会定期的扫描索 引池中的计数对象,获取数据池中每个归并大对象的空间使用情况。当已经被归并的小文 件被删除后,系统会根据默认配置的空洞率来选择是否将归并大对象加入到空间回收列 表,如果当前扫描到的归并大对象上产生的空洞率大于或者等于设定的阈值,就会将归并 大对象加入回收列表,否则跳过并处理下一个归并大对象。然后系统后台的空间回收整理 服务模块,从回收列表中提取归并大对象的数据进行空间回收。多个归并线程同时占用每 个空间服务模块运行时的进程地址空间和资源进行回收任务的处理。 当前的空间回收机制有以下几个缺点: 1、归并线程一直运行中,会消耗系统资源,对业务造成影响。例如,多个线程共享 对象存储后台网关进程的地址空间和资源,完成不同的任务执行,每个线程都会占用CPU资 源;当线程切换的时候,CPU需要将此线程的所有执行状态保存起来,如线程编号,执行到的 位置等,然后再去执行其它线程;当两个或者两个以上的线程在执行的过程中,可能会存在 因争夺资源而造成一种互相死锁的现象,导致任务执行失败。 2、归并空间回收处理时间相对固定,不能动态调整。 3、只有小文件被删除且归并大对象达到指定的空洞率以后,才会执行空间回收, 不够灵活。 针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种空间回收方法、装置、存储介质以及处理器,以至少解决 相关技术中的对象存储系统多线程模型进行空间回收导致线程在切换中占用资源的技术 问题。 根据本发明实施例的一个方面,提供了一种空间回收方法,包括:基于回收扫描遍 历预定索引池的统计计数对象,确定所述统计计数对象中归并大对象关联的数据池的空间 使用数据;依据所述空间使用数据,确定所述数据池的可回收空间;按照预设的空间回收规 则对所述预定索引池的可回收空间进行空间回收。 可选地,在基于回收扫描遍历所述预定索引池的统计计数对象,确定所述统计计 数对象中归并大对象的空间使用数据之前,所述方法包括:基于预估扫描遍历所述预定索 引池的统计计数对象,确定所述统计计数对象中归并大对象的空间使用数据。 可选地,基于回收扫描遍历所述预定索引池的统计计数对象,确定所述统计计数 对象中归并大对象的空间使用数据包括:获取所述统计计数对象中归并大对象的无效空间 4 CN 111597147 A 说 明 书 2/12 页 和总空间;依据所述无效空间和所述总空间,确定所述归并大对象的空洞率;在所述空洞率 符合预定空洞率阈值的情况下,将所述归并大对象添加到归并空间回收列表,并确定所述 归并大对象的占用空间以及可回收空间。 可选地,在所述空洞率符合预定空洞率阈值的情况下,将所述归并大对象添加到 归并空间回收列表包括:判断所述归并大对象的空洞率是否大于或者等于所述预定空洞率 阈值;在所述空洞率大于或者等于所述预定空洞率阈值的情况下,将所述归并大对象添加 到归并空间回收列表。 可选地,在将所述归并大对象添加到归并空间回收列表之后,所述方法还包括:确 定所述归并空间回收列表中已经完成添加的归并大对象的数量和已经统计到的无效总空 间容量;依据所述数量和所述无效总空间容量,更新所述统计计数对象的元数据。 可选地,所述统计计数对象的元数据为树形结构的键值对,其中,所述统计计数对 象的元数据包括:归并大对象名字以及所述归并大对象名字对应的信息,其中,所述归并大 对象名字对应的信息包括以下至少之一:小对象数量、占用空间、无效空间、被删除的小对 象数量、数据池ID。 可选地,在获取所述统计计数对象中归并大对象的无效空间和总空间之前,所述 方法还包括:建立所述预定索引池的统计计数对象与管理对象之间的关联关系;依据所述 关联关系,获取所述管理对象的元数据。 可选地,在更新所述统计计数对象的元数据之后,所述方法还包括:更新所述管理 对象的元数据。 可选地,所述管理对象的元数据为树形结构的键值对,其中,所述管理对象的元数 据包括:统计计数对象名字以及所述统计计数对象名字对应的信息,其中,所述统计计数对 象名字对应的信息包括以下至少之一:任务类型、计数统计对象的总个数、索引池ID、预定 空洞率阈值、空间回收统计数据。 可选地,基于预估扫描遍历所述预定索引池的统计计数对象,确定所述统计计数 对象中归并大对象的空间使用数据包括:获取所述统计计数对象中归并大对象的无效空间 和总空间;依据所述无效空间和所述总空间,确定所述归并大对象的空洞率;在所述空洞率 符合预定空洞率阈值的情况下,确定所述归并大对象的占用空间以及可回收空间。 可选地,在基于回收扫描遍历所述预定索引池的统计计数对象,确定所述统计计 数对象中归并大对象的空间使用数据之前,所述方法还包括:确定预定索引池以及预定空 洞率阈值。 根据本发明实施例的另一方面,还提供了一种空间回收装置,包括:第一确定模 块,用于基于回收扫描遍历预定索引池的统计计数对象,确定所述统计计数对象中归并大 对象的空间使用数据;第二确定模块,用于依据所述空间使用数据,确定所述预定索引池关 联的数据池的可回收空间;回收模块,用于按照预设的空间回收规则对所述数据池的可回 收空间进行空间回收。 根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储 的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的 空间回收方法。 根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序, 5 CN 111597147 A 说 明 书 3/12 页 其中,所述程序运行时执行上述中任意一项所述的空间回收方法。 在本发明实施例中,采用基于回收扫描遍历预定索引池的统计计数对象,确定所 述统计计数对象中归并大对象的空间使用数据;依据所述空间使用数据,确定所述预定索 引池关联的数据池的可回收空间;按照预设的空间回收规则对所述数据池的可回收空间进 行空间回收的方式,通过根据回收扫描确定的预定索引池中归并大对象的空间使用数据, 得到该预定索引池关联的数据池的可回收空间,并对按照预设的空间回收规则对该数据池 的可回收空间进行空间回收,达到了根据实际需要灵活实现空间回收的目的,从而实现了 减少系统空间浪费,提高空间利用率的技术效果,进而解决了相关技术中的对象存储系统 多线程模型进行空间回收导致线程在切换中占用资源的技术问题。 附图说明 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中: 图1是根据本发明实施例的管理对象的元数据结构的示意图; 图2是根据本发明实施例的统计计数对象的元数据结构的示意图; 图3是根据本发明实施例的空间回收方法的流程图; 图4是根据本发明可选实施例的空间回收方法中预估扫描的流程图; 图5是根据本发明可选实施例的空间回收方法中回收扫描的流程图; 图6是根据本发明可选实施例的空间回收方法中扫描状态的逻辑转换方式的示意 图; 图7是根据本发明可选实施例的空间回收方法中回收流程的示意图; 图8是根据本发明实施例的空间回收装置的示意图。
下载此资料需消耗2积分,
分享到:
收藏