CN112286460B - 基于生存者寿命预测来优化垃圾收集 - Google Patents

基于生存者寿命预测来优化垃圾收集 Download PDF

Info

Publication number
CN112286460B
CN112286460B CN202011185172.2A CN202011185172A CN112286460B CN 112286460 B CN112286460 B CN 112286460B CN 202011185172 A CN202011185172 A CN 202011185172A CN 112286460 B CN112286460 B CN 112286460B
Authority
CN
China
Prior art keywords
container
garbage collection
period
time
deletion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011185172.2A
Other languages
English (en)
Other versions
CN112286460A (zh
Inventor
阿里夫·麦钱特
路易斯·帕米埃斯-华雷斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN112286460A publication Critical patent/CN112286460A/zh
Application granted granted Critical
Publication of CN112286460B publication Critical patent/CN112286460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • G06F16/125File system administration, e.g. details of archiving or snapshots using management policies characterised by the use of retention policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1008Graphical user interface [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Memory System (AREA)

Abstract

本公开涉及基于生存者寿命预测来优化垃圾收集。描述了一种用于调度操作的预测方法。该预测方法利用通过计算容器内的单独的文件或对象的预期寿命而生成的数据。可以基于机器学习技术来生成单独的文件或对象的预期寿命。在实现了计算效率的时期调度诸如垃圾收集等操作以便执行操作。

Description

基于生存者寿命预测来优化垃圾收集
技术领域
本公开涉及基于生存者(survivor)寿命预测来优化垃圾收集。
背景技术
存在许多用于存储电子数据的存储系统,其中,大小相对较小的对象被聚集到较大的数据类集中。例如,一些文件系统可以配置为对较大的数据类集而不是组成较大的数据类集的单独的对象进行操作。这种文件格式或文件系统的一些示例包括存档,诸如,“.zip”文件或者“.rar”文件。
在其它情况下,存储数据的物理格式或者介质使得将对象或者文件或者要对文件执行的操作被视为类集而不是单独的。例如,在叠瓦式磁记录(SMR)磁盘中,可以将信息存储到“区域(zone)”中。虽然这种技术可以增加在物理介质上的存储密度,但是当需要更改数据时——诸如,当去除或者更改单独的对象或者文件时——必须完全重写整个区域。因此,在不修改整个轨道的情况下,无法更改存储在SMR的区域上的单独的文件。这导致在这些介质上执行的某些操作与在其它存储介质上执行的相同操作相比较在财务上和计算上更加昂贵。
垃圾收集(garbage collection)是“垃圾收集器”或者“收集器”尝试回收“垃圾”的进程。“收集器”或者“垃圾收集器”可以是可以去除不想要的或者不需要的文件、数据或者对象的操作或者软件。“垃圾”可以是指不再需要并且可以从类集中去除的文件、数据或者对象。一些垃圾收集器可能能够在需要时删除单独的文件或者数据。在其它示例中,垃圾收集器,垃圾收集,可以读取、编写整个类集的一部分或者与之进行交互。然而,在一些示例中,当收集器正在处理诸如上面描述的那些文件和存储介质的文件和存储介质时,垃圾收集器将需要读取、编写其中存储了要收集的文件的整个数据类集或者与之进行交互。进一步地,可能不知道在执行垃圾收集之前需要分析或者删除数据类集中的哪些文件、数据或者对象。这样做需要读取和处理整个数据类集,这是相对昂贵的操作。进一步地,即使在这种处理或者分析之后,存储在类集中的仅一些或者相对小百分比的文件或者数据量可能是垃圾。
上面描述的文件系统和存储介质在商业数据中心中很流行。例如,使用SMR磁盘正变得更普遍,并且在这些磁盘上的轨道的大小在增加。由于在删除作为垃圾的文件时必须对SMR磁盘的整个区域进行操作,因此,执行垃圾收集的计算成本和操作成本更高。因此,与维护数据相关联的总成本随着数据中心切换为诸如SMR磁盘的密度更高的介质而增加。
发明内容
本公开提供了用于基于生存者寿命预测来优化垃圾收集的方法、系统和设备。
本公开的一个方面提供了确定是否执行垃圾收集操作,其包括:识别容器,其中,容器包括一个或多个离散对象;确定在第一时期的与容器相关的删除预测子;计算在第一时期的对容器的垃圾收集的成本;估计在第一时期执行垃圾收集的效益;基于计算出的成本和估计的效益来确定在第一时期对容器执行垃圾收集的净效益。
本公开的其它方面提供了确定是否执行垃圾收集操作,其包括:识别容器,其中,容器包括一个或多个离散对象;确定在第一时期的与容器相关的删除预测子;计算在第一时期的对容器的垃圾收集的成本;估计在第一时期执行垃圾收集的效益;基于计算出的成本和估计的效益来确定在第一时期对容器执行垃圾收集的净效益。可以使用生成二进制删除预测子的机器学习分类算法来确定删除预测子。机器学习算法可以是神经网络。可以生成与垃圾收集相关的用户通知。该通知可以包括批准垃圾收集的用户请求。该通知可以包括与垃圾收集的时间表相关的信息。该通知可以包括指示垃圾收集的预期效益的信息。调度垃圾收集可以在净效益为正的第一时期发生。可以确定在第一时期之后的预定数量的时期内的与容器相关的删除预测子。可以计算在第一时期之后的预定数量的时期中的每个时期的对容器的净效益。可以识别净效益最大的时期,并且可以将垃圾收集调度在净效益最大的时期。可以将垃圾收集调度在所述预定数量的接下来的时期中净效益高于预定阈值的最早时期。当另一个时期接近第一时期之后的最早时期的预定范围时,对该另一个时期生成另外的净效益。可以在发生触发事件时重新对与容器相关的度量进行评估。触发事件可以是在所选择的容器中添加数据。触发事件可以是用于对所选择的容器执行垃圾收集的用户命令。可以在于时间上跟随第一时期或者在第一时期之后的任何时期开始时重新对与容器相关的度量进行评估。
本公开的其它方面提供了一种系统,该系统被配置为调度垃圾收集,其包括:一个或多个非易失性存储介质,其中,每个非易失性存储介质包括一个或多个数据容器,每个扇区包括一个或多个离散对象;非暂时性计算机可读介质,该非暂时性计算机可读介质包括指令,这些指令在被执行时被配置为执行以下步骤:识别容器;确定在第一时期的与容器相关的删除预测子;计算在第一时期的对容器的垃圾收集的成本;至少基于确定的与容器相关的删除预测子来估计在第一时期执行垃圾收集的效益;以及基于计算出的成本和估计的效益来确定在第一时期对容器执行垃圾收集的净效益。
本公开的其它方面提供了一种包括指令的非暂时性计算机可读介质,这些指令在被执行时被配置为执行以下步骤:识别容器;确定在第一时期的与容器相关的删除预测子;计算在第一时期的对容器的垃圾收集的成本;至少基于确定的与容器相关的删除预测子来估计在第一时期执行垃圾收集的效益;基于计算出的成本和估计的效益来确定在第一时期对容器执行垃圾收集的净效益。
附图说明
不旨在按比例绘制附图。各个附图中的相同附图标记和标号指示相同的元件。为了清楚起见,并未在每个附图中标记每个组件。在附图中:
图1是根据本公开的方面的计算机系统的示意图;
图2是根据本公开的方面的非易失性存储介质的示意图;
图3A至图3C是图示了根据本公开的方面的在一系列时期内的计算出的净效益的示例图;
图4是根据本公开的方面的示例方法的流程图;
图5是根据本公开的方面的示例存储介质的示意图;
图6是根据本公开的方面的显示有关容器的信息的示例通信界面的示意图。
具体实施方式
本公开大体上涉及用于基于生存者寿命预测来优化垃圾收集的方法、系统和设备。
如在本公开内使用的,数据的“容器”可以是指数据类集的物理或文件系统视角,该数据类集可以由对象、文件、位、非结构化数据或者其它容器中的不止一个或者其类集组成。某些类型的文件格式、文件系统和存储介质将数据视为单元而不是组成特定类集的单独的文件或者对象。在一些示例中,容器可以是其中包括另外的文件或者对象的“.zip”文件、“.rar”文件、“.iso”或者其它“文件”。容器还可以包括可以引用容器内所包括的各种文件的元数据。在一些示例中,还可以将该元数据独立地存储在第二位置中以在存储在容器内的元数据丢失、被损坏或者被删除的情况下进行交叉引用,提供检查或者提供稳健的备份。在其它示例中,整个操作系统映像(image)可以是容器,如上面解释的,该容器可以包括另外的容器。在一些示例中,虚拟机映像(VMI)或者虚拟机的存储部分可以是容器,该容器包括多余一种类型的容器,诸如,另外的虚拟机映像、.rar、.iso或者其它文件或对象类集。在一些示例中,容器可以是文件或者文件集合。在一些示例中,容器可以存储在一个位置中或者分布在多个位置上。在一些示例中,容器的一部分可以分布在多个位置上,其中,在任何位置处,可以将容器的部分存储在任何存储介质上,诸如但不限于,磁带、光学存储、易失性存储器或者某一其它存储介质。
在一些示例中,容器可以是存储介质的物理扇区。例如,叠瓦式磁记录(SMR)是一种使用区域的磁存储技术,这些区域是连续的磁道的组。每个区域可以是容器。在又其他示例中,硬盘驱动器或者非易失性存储器的整个部分可以是容器。
垃圾收集的过程可以被认为是按照离散的固定时间间隔执行。如下面进一步解释的,在一些示例中,可以按照动态时间间隔来执行垃圾收集。这些时间段可以被认为是可以发生垃圾收集的时期。时期可以是时间点、具有使时期分开的非时期时间的间隔或者不具有使时期分开的时间的间隔。
图1图示了计算装置100的方面。计算装置100可以是任何类型的计算装置,诸如,服务器、服务器集群、虚拟机、个人计算装置、分布式存储网络、膝上型计算机、台式机、移动装置或者自定义设计的硬件装置。计算装置100可以包括处理器191、易失性存储器192、非易失性存储器193、用户界面194、显示器195、通信接口196、指令197、垃圾收集器198和数据199。
计算装置100可以包括配置为识别非易失性存储器193中可以被去除的对象的垃圾收集器198。垃圾收集器100可以是单独的程序或者指令的集合。装置100中的垃圾收集器198可以配置为搜索非易失性存储器193,搜索非易失性存储器的一部分,诸如,容器,或者搜索在计算装置100外部或者未物理地存储在计算装置100中的非易失性存储器。垃圾收集器198还可以将何时对一个或多个容器进行垃圾收集的时间表存储在数据199中。
虽然被图示为指令197的一部分,但是垃圾收集器可以是单独的模块或者甚至被存储在计算装置100外部。垃圾收集器198可以是可由处理器191执行的代码模块,或者在一些示例中,其可以是具有专用处理器的单独的单元。垃圾收集器198可以在时期、固定时间的周期或者非固定时间的周期内操作。由于执行垃圾收集是在计算上较复杂并且数据密集型的操作,确定在哪个时期执行垃圾收集对于适当地维护计算装置、服务器或者非易失性存储器193而言很重要。例如,在从当前时间起下一时期或者若干时期执行垃圾收集可能比在即将到来的时期执行垃圾收集更有效率。下面参照下面的图4讨论了另外的细节和示例。
处理器191可以是任何常规处理器,诸如,市场上可买到的微处理器、中央处理单元或者专用集成电路(ASIC)。非易失性存储器193可以存储可由处理器191访问的信息,包括可以由处理器191执行的指令以及数据。虽然被单独地示出,但是易失性存储器192还可以存储或者加载信息以实施由处理器191执行的指令。在一些示例中,如参照下面描述的方法进一步解释的,可以针对特定类型的机器学习算法配置或者设计处理器。在其它示例中,其它类型的计算单元可以组成处理器191。例如,诸如量子计算机或者量子位的其它计算单元可以用作处理器191的一部分。
易失性存储器192可以是在未主动向其供电时其内容不是持久性的或者被擦除的任何类型的存储器。例如,随机存取存储器(“RAM”)是一种易失性存储器。在一些示例中,可以包括易失性存储器作为处理器191的一部分。在其它示例中,易失性存储器192可以分布在计算装置100上。
非易失性存储器193可以是操作以存储可由处理器访问的信息的存储器的类型,包括非暂时性计算机可读介质或者存储可以借助于诸如硬盘驱动器、存储卡、只读存储器(“ROM”)、光盘、叠瓦式磁记录、闪速存储器以及其它具有写功能的只读存储器的电子装置来读取的数据的其它介质。本文公开的主题可以包括前述内容的不同组合,由此,将指令和数据的不同部分存储在不同类型的介质上。非易失性存储器193可以分布在一个或多个服务器上。
如参照图2进一步解释的,非易失性存储器193可以包括各种文件和/或数据容器。非易失性存储器193可以存储数据199。数据199可以由处理器根据指令197检索、存储或者修改。数据199可以由一个或多个容器组成。例如,虽然本公开不受特定数据结构的限制,但是可以将数据199存储在计算机寄存器中、关系数据库中作为具有多个不同字段和记录、XML文档或者平面文件的表。还可以按照诸如但不限于二进制值、ASCII或者Unicode的计算机可读格式来将数据199格式化。此外,数据199可以包括足以识别相关信息的信息,诸如,数字、描述性文本、专有代码、指针、对存储在包括其它网络位置的其它存储器中的数据的引用或者由功能用于计算相关数据的信息。在一些示例中,数据199可以包括由用户存储在存储服务器中的容器。在一些示例中,可以对来自一个用户或者多个用户的多个文件进行排队以进行存储或者将其存储在非易失性存储器193的数据199内的一个容器中。在一些示例中,在被移动和存储到非易失性存储器193内的容器之前,文件可以驻留在易失性存储器中。
用户界面194可以是允许用户与计算装置100进行交互的屏幕,诸如,触摸屏或者按钮。显示器195可以是LCD、LED、移动电话显示器、电子墨水或者用于显示有关装置100的信息的其它显示器。用户界面194可以允许来自用户的输入和对用户的输出两者。通信接口197可以包括硬件和软件以使得能够通过诸如Wi-Fi、蓝牙、红外线、以太网、无线电波和/或其它模拟和数字通信标准的标准来进行数据通信。通信接口197允许更新计算装置100和将由计算装置100生成的信息共享到其它计算装置,诸如,用户装置、服务器或者其它电子装置。在一些示例中,通信接口197可以将存储在非易失性存储器193或者易失性存储器192中的历史信息或者元数据发送至另一用户装置以进行显示、存储或者进一步分析。在其它示例中,通信接口197可以实时从其它装置发送和接收指令。在一些示例中,诸如计算装置100的计算装置还可以接收来自用户的输入,诸如,有关是否执行垃圾收集的确认,或者接收指令以执行未调度的垃圾收集。指令197可以控制装置100的各种组件和功能。例如,可以执行指令197以选择性地确定何时执行垃圾收集。如下面进一步描述的,指令197还可以包括用于确定和/或计算有关数据199的信息的另外的算法。在一些示例中,指令197可以确定要在非易失性存储器193上执行的高级操作,诸如,删除、移动或者复制数据。在一些其它示例中,可以按照确定性和非确定性方式使用人工学习或机器学习算法来提取与何时执行垃圾收集相关的信息。下面参照图6提供了与指令197和/或算法相关的另外的信息。
图2图示了非易失性存储器200的框图。非易失性存储器200可以与上面描述的非易失性存储器193相似。非易失性存储器200可以被包括在计算装置100中。非易失性存储器200可以包括驻留在非易失性存储器193内的容器,诸如,容器220、230和240。在一些示例中,每个容器可以与存储器的物理分区或组件对应。例如,容器220至240可以各自相应地与叠瓦式磁记录中的轨道对应。在其它示例中,每个容器可以与诸如闪存块的闪速存储器的单个部分对应。在这种示例中,在表上读取、修改或者执行数据操作等效于在与容器对应的或者存储容器的整个物理部分上执行操作。
容器220可以由一个或多个对象或诸如文件221至224的文件组成。虽然此处为了简单起见仅图示了四个文件,但是应该理解,一个容器可以具有任何可数有限数量的文件、对象或者数据或者甚至其它容器。容器220还可以包括专用于存储诸如元数据225的元数据的部分。元数据225可以包括与存储在信息容器中的特定文件对应的信息。虽然在图2中未图示,容器230和240可以类似地包括对象、文件或者数据。
诸如文件221至224的每个文件可以是系统中存储和使用的数据的一部分。元数据225或者存储在别处的其它元数据可以追踪如何或何时访问、创建、使用、移动或者更新过容器220内的文件。元数据225还可以包括有关文件的属性、大小、位置或者类型的另外的信息。在其它示例中,可以监测其它位置对文件的引用或者将其存储在元数据225中。元数据225可以包括另外的属性或者信息的任何组合,诸如但不限于,用户所有者、用户位置、用户提供的标签、诸如存储桶名称或者文件夹的用户逻辑名称空间、访问控制列表、权限、加密方法、加密密钥、压缩方法、压缩大小和未压缩大小。在一些示例中,当文件满足一个或多个预定条件时,该特定文件可以被认为是“垃圾”。例如,在固定天数内未访问过并且当前没有进行引用的文件可以被认为是垃圾。然后,例如,当特定容器到达该容器的特定部分是垃圾时,可以执行垃圾收集。然而,该进程基于启发法并且受到限制,因为其(i)可能未准确地确定何时应该进行垃圾收集,(ii)不考虑计算成本、数据传输成本、网络成本或者与进行垃圾收集相关联的其它成本,(iii)也不考虑进行垃圾收集的效益。虽然这些启发法是有用的,但是它们不考虑针对容器中的数据或者如在本公开中描述的容器本身的未来行为可导出的或者与之相关的预测信息。
图3A图示了可以执行垃圾收集的各个时期的示例表示图300。图300在x轴上图示了各个时期,以长划线隔开,并且与表示六个时期的数字1、2、3、4、5和6对应。每个时期还可以与诸如301至306的值对应。每个时期可以是可以执行垃圾收集的时间。在纵轴上指示了计算出的或者是在特定时期执行垃圾收集所获得的效益与关联于执行垃圾收集的成本之间的差值的估计的净效益。在一些时期,诸如,在时期301,净效益可以是负的。虽然在特定时期示出了净效益,但是本领域的技术人员将理解,垃圾收集可以在时期之间的时间发生。例如,可以响应于指示必须在例如,任意时间发生垃圾收集的外部系统或信号来执行垃圾收集。在其它示例中,外部信号可以指示期望需要删除特定文件,并且在最佳时间进行垃圾收集。
图3B图示了可以执行垃圾收集的各个时期的表示—图350,具有值351至356。还以虚线图示了线357。线357可以是图示了时间与在时期之间的净效益之间的关系的拟合函数、外推函数或者连续函数或者密集离散函数。图3B中还图示了与“预定值”对应的未标记的虚线,线358。如下面进一步解释的,预定值可以是设定值,高于该设定值,可以在该时期内自动调度垃圾收集。在一些示例中,一旦达到该值,则垃圾收集可以在不与时期对应的时间发生。在一些示例中,垃圾收集可以按照非固定的时间间隔发生。
图3C图示了可以执行垃圾收集的时期的另一表示,图360。在图360中,图示了时期1至6。图360还图示了值361至366,其表示与时期1至6对应的执行垃圾回收的净效益。与在图3A至图3B中描述的时间点相比较,在图3C中表示的时期是时间范围。在一些示例中,这些时期可以具有不均匀的时间。在一些示例中,时期之间可以具有非时期时间。
图4图示了使用预测子的示例性方法400的流程图,该预测子估计将在下一时期期间删除对象的可能性或者是否应该对容器进行标记以在下一时期内进行垃圾收集。如在本公开中描述的,通过使用有关文件或者容器的预测信息,可以基于历史记录或者其它信息来预测容器中的特定文件将可能在未来的一些特定时间被删除或者变为垃圾。如下面描述的,在确定最有效率的垃圾收集调度时,该信息是有用的。
在框405中,可以识别数据容器。该数据容器可以是由一个或多个离散对象组成的数据扇区,诸如,容器220至240。可以基于预定调度来选择或者识别容器。在其它示例中,可以基于接近占用容器存储在其中的物理区域的一个容器来选择该容器,诸如,SMR磁盘层或者闪存块。由于每个数据容器具有可数有限数量的离散文件或者对象,可以从诸如元数据225的元数据对文件的数量进行计数或者提取文件的数量。
在框410中,可以为数据容器中的每个对象或者文件生成删除预测子或者寿命预测子。在一些示例中,可以为整个所选择的容器或者为容器内的文件的子集生成删除预测子或者寿命预测子。在其它示例中,可以组合多于一个预测子以进行另外的或者鲁棒的预测。删除预测子可以是概率或者表示将删除对象的概率的其它定量度量。删除预测子可以是与将在下一时期内删除容器的对象、对象组或者一部分的概率对应的单个数值。删除预测子还可以生成将在固定数量的即将到来的时期中的每个时期内删除特定对象的概率。例如,可以在接下来的5个时期内为每个对象生成删除预测子。按照这种方式,对于每个对象,可以生成向量。例如,对于文件221,可以生成向量,诸如,{.1,.13,.24,.20,.3},其中,每个数字表示将在特定时期删除文件的概率。在该示例中,.1可以是将在下一时期删除文件的概率,.13可以是将在从当前时间起第二时期内删除文件的概率,.24可以是将在从当前时间起第三时期内删除文件的概率,依此类推。同样,在包括“n”个文件的容器中,可以生成预定长度的n个向量。可以按照这种方式来为容器生成概率矩阵,其中,每一行表示特定文件,并且每一列表示特定时期。例如,用于3个对象和3个时期的样本矩阵可以看起来像:
[0.13.2.11.16.26.29.81.9.94]
虽然在本公开中对向量和矩阵进行引用,但是可以理解,对于这些概率,存在等效的数学技术和表示。另外,可以估计或者生成其它成本或效益矩阵。通过矩阵运算,可以将概率矩阵乘以成本或效益矩阵以生成预期成本或效益矩阵。
进一步地,虽然上面参照为特定对象生成删除预测子或者寿命预测子给出了示例,但是还可以为作为容器的对象的子集的一组对象生成删除预测子或者寿命预测子。可以为整个容器生成删除预测子或者寿命预测子,例如,该删除预测子或者寿命预测子可以指示可能按照特定时间或者时期删除容器中的特定百分比的对象或者特定百分比的信息字节的预测。在一些示例中,可以将为特定对象或者对象组进行的删除预测子或者寿命预测子聚集到针对容器的预测中。在其它示例中,可以为容器内的对象的所选择的子集生成删除预测子并且聚集删除预测子。
参照框410,可以采用各种技术来生成删除预测子或者删除预测子的矩阵。在一些示例中,可以使用贝叶斯推断技术来生成反对删除预测子。可以基于诸如所有者、创建文件的程序、诸如照片、音乐或者特定文件格式的数据类型、对象的使用年限、最近的访问率或时间的基本特征来对对象或者文件进行分类。在创建了种类之后,对于对象的每个种类,人们可以基于种类中的对象的删除率来计算生存函数。通过贝叶斯推断,可以基于针对对象种类的生存函数、先前信息和对象的当前使用年限来计算对象的在接下来的“n”个时期内的删除概率。对象的当前使用年限是一种可以用于不断地更新预测的更新过的信息。除了上面的技术之外,还可以将另外的元数据并入到估计技术中。例如,有关存储数据的位置、历史上包括的数据的类型、与其它数据有关的先前预测及其准确度的信息都可以包括进来,该其它数据具有与当前正分析的文件相似或者匹配的元数据。
在其它示例中,可以使用机器学习(ML)分类算法。是否将在下一时期内删除对象可以被认为是二进制分类问题。此外,可以使用非二进制分类器来预测对象在诸如接下来的2个、3个、4个等时期的接下来的“n”个时期将生存的可能性。是否将在接下来的“n”个时期内删除对象可以被表示为集合或者二进制字符串,诸如,字符串<0,0,1,1,1>,其中,位置表示特定时期,并且1或者0表示是否将删除对象。在其它示例中,是否将在接下来的“n”个时期内删除对象可以产生0或者1。对于特定容器,该算法可能在前三个时期产生0,但是在第4个时期产生1。可以使用的一个示例ML算法是“随机森林”技术,其是用于这种分类问题的定义明确的算法。另外,诸如简单神经网络的其它ML技术可以用于对象的分类或者预测对象的寿命。可以为容器生成0和1的矩阵,其中,每一行表示特定文件,并且每一列表示特定时期。例如,用于3个对象和3个时期的样本矩阵可以类似于:
[0 1 0 1 1 1 0 0 1]
在一些其它示例中,ML回归算法可以用于预测对象的绝对寿命而不是相对于时期的预测。可以生成时间值,该时间值表示对象应该理想地被删除或者变为垃圾的时间。例如,时间值可以与最后一次将使用对象的时间对应。在一些示例中,神经网络可以用于预测或者生成删除预测子。可以使用单个输出神经元来设计神经网络。单个输出神经元可以用于解决特定回归问题,该特定回归问题的解决方案可以用于生成对象寿命预测子。神经网络是鲁棒的,并且可以用于模型不能完美地拟合可用数据的情况,特别是当拟合的或者回归的数据随时间改变时。神经网络可以通过相对较少的建模工作来提供更高程度的预测准确度。这些回归技术的优点在于:它们允许预测绝对寿命-这转而使得能够使用非恒定的或者可变的时期长度。这是因为不按照时期的数量而是作为时间长度来测量对象或者文件的寿命。按照这种方式,当使用ML回归算法时,可以使用可变的时期。
在框415中,可以计算或者估计针对数据容器的垃圾收集的成本。可以为在下一时期或者后一时期执行的数据类集计算针对数据容器的垃圾收集的成本。垃圾收集的成本可以基于在框410中形成的对象删除预测。由于删除预测子指示哪些文件可能成为不想要的或者垃圾,该信息可以用作成本函数或者成本估计的一部分。例如,垃圾收集的成本可以与在垃圾收集中可以处理多少对象容器和在垃圾收集中可以多快地处理对象容器相关。通过执行垃圾收集而在容器中去除的垃圾量或者节省的空间量被称为收缩率。还可以将收缩率理解为是指可以删除或者进行垃圾收集的数据的百分比或者分数。所选择的容器的预测的收缩率是容器内的单独的对象的预测的收缩率的组合,该组合转而是将删除或者不删除单独的对象的概率与该对象的大小的组合。还可以从整个容器的分量预测计算容器的预测的收缩率,可能已经在参照框410讨论的机器学习或者其它预测算法中使用了这些分量预测。
除了垃圾收集的成本之外,另外的成本还与诸如每次的存储成本的维护数据相关联。在大多数系统中,每时间段的存储成本是已知的或者容易估计的。另外,可以包括另外的开销成本、维护成本和人类操作员成本作为数据存储成本的一部分。可能与时间有关、与固定时间或者存储大小有关的这些成本都可以被包括在后一时期进行垃圾收集的成本中。
在一些示例中,在垃圾收集的下一时期内在容器上运行垃圾收集的成本是操作的成本,其可以是固定的,或者可以取决于容器中未删除的数据或者垃圾的量。确切的计算成本可以取决于系统。例如,在特定时期内运行垃圾收集的确切成本可能需要至少包括读取容器中未删除的数据的成本。在其它示例中,该成本可能要求读取整个容器并且写出到将不会从该容器中被删除的另一部分易失性存储器数据。
在具有100个256MB大小的项的示例容器中,可以从删除预测子确定它们中的77个可能按照下一时期成为垃圾。然后,可以从该数据估计成本函数。该成本函数可以取决于容器的大小和容器存储在其中的介质的类型。
例如,该函数可以类似于:
在一些示例中,成本函数可以由两个函数表示或者包括两个函数。例如,函数s(x)可以表示在一个时期内或者在一个单位时间内存储数据量‘x’的成本。S(x)可以是单调函数。S(x)可以随着x增加而增加。另一函数可以是GC(x,y),其是针对大小或者数据‘x’中垃圾量为‘y’的容器的垃圾收集的成本。由于垃圾量不能超过容器的大小,因此,y<x。还可以用下标来表示变量x和y,诸如,xo或者yo,其中,o指示值x或者y针对特定时间或者时期。例如,x2可以指示在从当前时期起2个时期内的数据量,而y2可以指示在从当前时期起2个时期内的垃圾量。在n个时期中,xn和yn将指示容器中的数据的大小或者量以及该容器中的垃圾的量。当值是预测的而不是已知的时,可以用’来表示值,诸如,以y’n。在从当前时期起N个时期内的实际垃圾可以由yn表示,而预测的值可以由y’n代表。函数GC(x,y)和S(x)可以是分别建模、估计、计算或者生成垃圾收集和存储的成本的任何函数。
例如,在当前时期运行垃圾收集并且然后在从现在起N个时期运行垃圾收集的成本可以被表示或者计算为:GC(xo,yo)+Ns(xo-yo)+GC((xo-yo),(y’n.-yo))。如果现在未运行垃圾收集并且从现在起在N个时期运行垃圾收集,则成本可以被表示或者计算为:NS(xo)+GC(xo,y’n)。
除了使用函数来计算成本之外,还可以使用预测机器学习或者生成算法来生成成本,其中,删除预测子是算法的显式或隐式变量。在其它示例中,可以具有乘以参照框410讨论的矩阵的成本矩阵,并且通过矩阵乘法来生成预测成本矩阵。
在框420中,可以计算在所选择的容器上运行垃圾收集器的效益。在容器上运行垃圾收集的效益是通过去除不需要的文件释放的存储空间的量,减少维护元数据的开销和追踪删除的文件的开销,容器的碎片化的减少以及在诸如SMR存储器的一些存储系统中,用于在其中附加新文件的新的“仅附加”空间的可用性。在诸如垃圾收集器的读取的大小或者通过执行垃圾收集节省的信息字节的数量的要删除的数据的量上,运行垃圾收集的效益通常是线性的或者非常接近线性的。但是,在诸如,高度无组织的、随机的或者碎片化的数据的某些类型的数据中,运行垃圾收集的效益可能是非线性的。在一些示例中,在计算资源有限并且一个或多个容器中存在多于可以通过可用计算资源处理的垃圾的情况下,可以创建垃圾收集的时间表或者序列以基于哪个容器从运行垃圾收集具有最大效益来优化针对容器运行垃圾收集。在上述示例的某些子集中,成本可能趋于无穷大,因为没有足够的计算资源用于执行垃圾收集,并且因此,可以选择最效益的容器来进行垃圾收集。在一些示例中,运行垃圾收集的效益还可以以机器学习技术为前提,这些机器学习技术使用在更早的框中或者通过对运行垃圾收集的预期效益和观察到的效益的分析或者更早的估计未发现的元数据、变量或者度量。
与参照框415给出的示例——具有100个256MB大小的项的示例容器——相似,可以从删除预测子确定它们中的77个可能在下一时期成为垃圾。例如,效益函数可以被计算为:除了使用函数来计算效益之外,还可以使用预测机器学习或者生成算法来生成效益,其中,删除预测子是算法的显式或隐式变量。
在一些示例中,可以在下一时期和一系列即将到来的时期内估计、计算或者生成运行垃圾收集的效益。例如,可以计算与某一未来时期相比较在下一时期运行垃圾收集的效益。在其它示例中,可以在未来针对任何任意时间生成效益。例如,可以在框310中基于最多数量的项首先成为“垃圾”的最可能的时间来针对时间生成效益。用于优化或者减少计算所有即将到来的时期的计算成本的其它技术也可以用于使框320中的过程更有效。
在框425中,可以基于如在上面的框405至420中描述的计算得出的或者估计的成本和效益——诸如,例如,在即将到来的或者下一时期内的以及在至少一个以后的时期的成本和效益——来确定收集垃圾的时间。可以将净效益计算为估计的在特定时期执行垃圾收集的效益与估计的在该相同时期执行垃圾收集的成本之间的差值。在一些示例中,当净效益为正时,可以对该容器执行垃圾收集。在一些示例中,当估计的执行垃圾收集的效益比估计的成本高出预定值时,可以发生垃圾收集。由于存在针对容器中的每个对象已知的或者计算出的关于该对象是否将在即将到来的时期生存或者被删除的概率,可以包括该信息以计算未删除的数据的预期大小和整个容器将是垃圾的概率。
在一些示例中,可以使用GC(xo,yo)+N s(xo-yo)+GC((xo-yo),y’n.-yo)-Ns(xo)-GC(xo,y’n)来表示或者使用其来计算现在执行垃圾收集与在从现在起N个时期执行垃圾收集之间的预期效益或者净效益。按照这种方式,通过使‘N’变化,可以为容器生成一系列预期效益或者净效益,并且将其用于确定应该何时发生垃圾收集。
在一些示例中,还可以计算等待另外的时期的净效益值以了解对于下一时期,等待的净效益的差值是否大于等待的净成本。可以针对下一时期并且然后,针对在该下一时期或者即将到来的时期之后的一个或多个时期确定与垃圾收集相关联的成本和效益。例如,下面的表指示在一系列时期执行垃圾收集的净效益,并且表明时期3是期望最大净效益的时期。
按照这种方式,可以实时地动态管理类集中的数据和维护类集中的数据的成本。在其它示例中,可以对净效益执行时间序列分析以计算执行垃圾收集的最佳时期。
在其他示例中,当确定估计的效益超过在未计划的时期执行垃圾收集的另外的成本时,可以在未计划的时期执行垃圾收集。在未计划的时期执行垃圾收集可以是自动的或者响应于接收到来自数据的用户或者管理员的批准而执行。
在框430中,可以向用户提供通知。该通知可以包括与执行垃圾收集的调度和净效益相关的信息。可以通过诸如通信接口196的通信接口来从诸如计算装置100的计算装置发送通知。在一些示例中,通知可以包括针对特定容器的垃圾收集的时间表。在其它示例中,计算装置可以聚集针对一个或多个容器的预测度量和/或垃圾收集时间表。计算装置可以通过诸如显示器195的显示器来向用户显示该信息。在下面的图6中,可以引用示例通知。
在框435中,可以调度或者执行垃圾收集。在一些示例中,可以基于框405至430中的一个或多个中的过程来调度垃圾收集。在一些示例中,可以在预定数量的接下来的时期中净效益高于预定阈值的最早时期调度垃圾收集。在其它示例中,可以在净效益最大的时期执行垃圾收集。在其它示例中,垃圾收集可以在时间上偏移到与时期对应的时间。垃圾收集的过程可以涉及:读取容器的内容,垃圾收集器标记要删除的文件,以及选择性地将未标记的文件复制到新容器,以及删除容器的其余部分。在一些示例中,可以将与容器或者对象相关的历史元数据或者与容器或者对象相关联的预测存储在位于容器外部的数据库中。
在一些示例中,可以将另外的信息包括在上面描述的净成本和净效益中。例如,在某些类型的存储器中,可以附加到容器,但是在未读取、写入或者修改整个容器的情况下不重新排列或者修改已经存在于容器中的信息。在一些示例中,如果已知或者预期另外的对象或者文件将在时期之间被附加到现有容器,则该信息可以被包括在参照图3描述的技术中。
在一些示例中,删除预测子以及与该预测子相关的成本和效益还可以包括该预测的误差裕度。例如,在上面讨论的ML分类示例中,可能出现包括误差预测裕度。还可以将误差包括在有关是否调度或者进行垃圾收集的决策中。在其它示例中,只能调度或者执行删除预测子或者寿命预测子的误差裕度小于或者低于预定置信区间的垃圾收集。
在一些示例中,可以结合或者代替上面描述的技术来使用另外的技术。例如,可以使用其它人工智能或机器学习技术来估计或者生成成本和效益。在一些示例中,可以针对维护容器并且执行垃圾收集的成本和进行垃圾收集的效益生成连续的或者离散的时间序列。在其它示例中,基于寿命预测子或者删除使用机器学习技术来生成净效益时间序列以避免必须针对时间序列的每个点生成效益和成本。在其它示例中,可以随着时间向前移而不断地更新时间序列。例如,可以每天利用更多的当前信息来更新时间序列。在其它示例中,可以按照诸如接近与时期对应的时间或者恰好在与时期对应的时间之前的预定时间间隔来更新时间序列。
在一些示例中,可以在时间到达时期时自动重复上面描述的操作。在这种示例中,垃圾删除的时间表将始终是当前的,并且在一固定时间段或者用户输入之后基于新的概率、成本、效益和数据来对其进行更新。在一些示例中,接近即将到来的时期,可以用更多的当前信息来更新执行垃圾收集的时间或者时间表。在其它示例中,触发事件可以使得重复上面描述的操作或者预测。例如,当响应于用户请求执行垃圾收集时,可以重复框305至330中的过程。在又其他示例中,当存储在一个或多个容器中的数据增加到超过预定阈值时,可以重复在框405至430中描述的过程。垃圾收集器系统的用户或者设计者可以定义其它触发事件。
图5图示了非易失性存储器500中的各种容器,容器501至504的示意图,每个容器包括文件或者对象,这些文件或者对象中的一些是垃圾。容器中的每个文件由矩形表示。在诸如容器501的一些容器中,一些矩形已经被阴影化以指示与该文件相关联的删除预测子较高并且可能在下一时期删除特定对象。在一些示例中,诸如,当使用上面描述的ML回归技术时,文件还可以具有与其相关联的数值以指示将在下一时期删除文件的可能性有多大。在一些示例中,诸如容器503的容器中的每个文件还可以包括二进制值以指示是否期望文件按照下一时期成为垃圾。在其它示例中,诸如,容器502,可能尚未执行分析,或者最近对容器进行了垃圾收集,并且无法获得有关该容器的信息或者可以获得有关该容器的少数信息。
图6图示了各种容器、非易失性存储器600的容器601至603以及与那些容器相关的信息。可以将该信息显示在例如,用户装置100(图1)的显示器195上。在一些示例中,可以显示关于每个单独的文件、对象或者对象集群的信息。例如,将关于容器601中的特定文件的信息作为概率显示在文件上,而另外的框指示关于文件的另外的信息,诸如,其类型、其使用年限以及其进行垃圾收集的概率。还可以显示关于整个容器的另外的信息。例如,在容器602上,诸如信息性“i”的图标可以指示供用户单击或者悬停的通知。可以响应于发生有关容器的事件或者基于上面描述的预测技术仅显示关于容器的一般信息而接收该通知。在容器603上,显示通知“!”以指示发生与容器603有关的重要事件。用户可以点击通知或者悬停在通知之上以接收与通知相关的另外的选项。在示例中,通知可以是对用户的关于他是否希望执行未调度的垃圾收集的请求,用户可以通过用户界面来向未调度的垃圾收集提供输入。垃圾收集可以响应于接收到的输入。应该理解,前述内容仅仅是示例界面,并且界面中的许多变化是可能的。
虽然本公开包括许多具体的实施方式细节,但是不应该将这些细节解释为对可能被要求的内容的范围的限制,而是解释为对针对特定实施方式的特征的描述。在本说明书中在单独的实施方式的背景下描述的某些特征还可以组合地实施在单种实施方式中。相反,在单个实施方式的背景下描述的各种特征也可以单独地或者按照任何合适的子组合实施在多种实施方式中。此外,虽然上面可能将特征描述为以某些组合来起作用并且最初甚至如此对该特征进行了要求,但是在一些情况下,可以从组合中删除来自所要求的组合的一个或多个特征,并且所要求的组合可以指向子组合或者子组合的变化。
同样,虽然在附图中按照特定顺序描绘了操作,但是不应该将其理解为需要按照所示的特定顺序或者按照相继顺序来进行这种操作或者需要执行所有图示的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。
可以将对“或者”的引用解释为包括的,使得使用“或者”描述的任何术语可以指示单个所描述的术语、不止一个所描述的术语和所有所描述的术语中的任何一种。标签“第一”、“第二”、“第三”等不一定旨指顺序,而是通常仅用于区别相同或者相似的项或者元件。
对于本领域的技术人员而言,对本公开中所描述的实施方式的各种修改会是很显而易见的,并且在不脱离本公开的精神或者范围的情况下,本文中所定义的一般原理可以应用于其它实施方式。因此,权利要求书不旨在限于本文中所示出的实施方式,而是符合与本文中所公开的本公开、原理以及新颖特征一致的最广范围。

Claims (20)

1.一种确定是否执行垃圾收集操作的方法,包括:
识别容器,其中,所述容器包括一个或多个离散对象;
确定在第一时期的与所述容器相关的删除预测子;
计算在所述第一时期的针对所述容器的垃圾收集的成本;
估计在所述第一时期执行针对所述容器的垃圾收集的效益,所述效益包括释放存储的量、维护元数据和追踪删除的文件的开销减少以及所述容器的碎片化减少;
基于所计算出的成本和所估计的效益来确定在所述第一时期对所述容器执行垃圾收集的净效益。
2.根据权利要求1所述的方法,其中,确定所述删除预测子包括执行机器学习分类算法以生成二进制删除预测子。
3.根据权利要求1所述的方法,其中,确定所述删除预测子包括执行机器学习回归算法以生成概率。
4.根据权利要求3所述的方法,其中,所述机器学习回归算法是神经网络。
5.根据权利要求1所述的方法,进一步包括:生成与所述垃圾收集相关的用户通知。
6.根据权利要求5所述的方法,其中,所述用户通知包括对用户批准垃圾收集的请求。
7.根据权利要求5所述的方法,其中,所述用户通知包括与垃圾收集的时间表相关的信息。
8.根据权利要求5所述的方法,其中,所述用户通知包括指示所述垃圾收集的预期效益的信息。
9.根据权利要求1所述的方法,进一步包括:将垃圾收集调度在所述净效益为正的所述第一时期。
10.根据权利要求9所述的方法,进一步包括:确定对于在所述第一时期之后的预定数量的时期的与所述容器相关的所述删除预测子。
11.根据权利要求10所述的方法,进一步包括:生成对于在所述第一时期之后的所述预定数量的时期中的每个时期的所述容器的净效益。
12.根据权利要求11所述的方法,进一步包括:
识别所述净效益最大的时期;以及
将垃圾收集调度在所述净效益最大的所述时期。
13.根据权利要求11所述的方法,进一步包括:将垃圾收集调度在所述预定数量的时期中所述净效益高于预定阈值的最早时期。
14.根据权利要求11所述的方法,进一步包括:当另一个时期在所述第一时期之后的最早时期的预定范围内时,对所述另一个时期生成另外的净效益。
15.根据权利要求11所述的方法,进一步包括:在发生触发事件时重新对与所识别的容器相关的度量进行评估。
16.根据权利要求15所述的方法,其中,所述触发事件是用于对所识别的容器执行垃圾收集的用户命令。
17.根据权利要求11所述的方法,进一步包括:在所述第一时期之后的任何时期开始时重新对与所识别的容器相关的度量进行评估。
18.一种被配置为调度垃圾收集的系统,所述系统包括:
一个或多个非易失性存储介质,其中,每个非易失性存储介质包括一个或多个数据容器,每个容器包括一个或多个离散对象;
非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括指令,所述指令在被执行时被配置为执行操作,所述操作包括:
识别容器;
确定在第一时期的与所述容器相关的删除预测子;
计算在所述第一时期的针对所述容器的垃圾收集的成本;
至少基于所确定的删除预测子来估计在所述第一时期执行针对所述容器的垃圾收集的效益,所述效益包括释放存储的量、维护元数据和追踪删除的文件的开销减少以及所述容器的碎片化减少;
基于所计算出的成本和所估计的效益来确定在所述第一时期对所述容器执行垃圾收集的净效益。
19.根据权利要求18所述的系统,其中,所述操作进一步包括生成对用户的通知。
20.一种包括指令的非暂时性计算机可读存储介质,所述指令在被执行时被配置为执行操作,所述操作包括:
识别容器;
确定在第一时期的与所述容器相关的删除预测子;
计算在所述第一时期的针对所述容器的垃圾收集的成本;
至少基于所确定的与所述容器相关的删除预测子来估计在所述第一时期执行针对所述容器的垃圾收集的效益,所述效益包括释放存储的量、维护元数据和追踪删除的文件的开销减少以及所述容器的碎片化减少;以及
基于所计算出的成本和所估计的效益来确定在所述第一时期对所述容器执行垃圾收集的净效益。
CN202011185172.2A 2020-06-11 2020-10-29 基于生存者寿命预测来优化垃圾收集 Active CN112286460B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/899,147 2020-06-11
US16/899,147 US11550712B2 (en) 2020-06-11 2020-06-11 Optimizing garbage collection based on survivor lifetime prediction

Publications (2)

Publication Number Publication Date
CN112286460A CN112286460A (zh) 2021-01-29
CN112286460B true CN112286460B (zh) 2024-03-12

Family

ID=73694716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011185172.2A Active CN112286460B (zh) 2020-06-11 2020-10-29 基于生存者寿命预测来优化垃圾收集

Country Status (4)

Country Link
US (1) US11550712B2 (zh)
EP (1) EP3923130B1 (zh)
CN (1) CN112286460B (zh)
FI (1) FI3923130T3 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11698858B2 (en) * 2021-08-19 2023-07-11 Micron Technology, Inc. Prediction based garbage collection
US11947452B2 (en) * 2022-06-01 2024-04-02 Micron Technology, Inc. Controlling variation of valid data counts in garbage collection source blocks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003012646A1 (en) * 2001-08-01 2003-02-13 Valaran Corporation Method and system for multimode garbage collection
WO2009156556A1 (en) * 2008-06-26 2009-12-30 Tatu Ylönen Oy Garbage collection via multiobjects
CN110546621A (zh) * 2017-05-02 2019-12-06 谷歌有限责任公司 用于数据存储的垃圾收集
CN111104343A (zh) * 2018-10-25 2020-05-05 三星电子株式会社 存储装置、操作存储装置的方法和非易失性存储器装置
US10678436B1 (en) * 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022149A1 (en) 2005-07-22 2007-01-25 International Business Machines Corporation System and method for concurrent garbage collection
CN101046755B (zh) 2006-03-28 2011-06-15 郭明南 一种计算机自动内存管理的系统及方法
US8433845B2 (en) 2009-04-08 2013-04-30 Google Inc. Data storage device which serializes memory device ready/busy signals
KR101867282B1 (ko) * 2011-11-07 2018-06-18 삼성전자주식회사 비휘발성 메모리 장치의 가비지 컬렉션 방법
US9411718B2 (en) * 2012-12-21 2016-08-09 Seagate Technology Llc Method to apply fine grain wear leveling and garbage collection
CA2912394A1 (en) 2013-05-14 2014-11-20 Actifio, Inc. Efficient data replication and garbage collection predictions
US9460389B1 (en) * 2013-05-31 2016-10-04 Emc Corporation Method for prediction of the duration of garbage collection for backup storage systems
US20170139825A1 (en) * 2015-11-17 2017-05-18 HGST Netherlands B.V. Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
US10394706B2 (en) * 2017-11-02 2019-08-27 Western Digital Technologies, Inc. Non-volatile storage with adaptive command prediction
US10572184B2 (en) 2018-01-11 2020-02-25 International Business Machines Corporation Garbage collection in data storage systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003012646A1 (en) * 2001-08-01 2003-02-13 Valaran Corporation Method and system for multimode garbage collection
WO2009156556A1 (en) * 2008-06-26 2009-12-30 Tatu Ylönen Oy Garbage collection via multiobjects
CN110546621A (zh) * 2017-05-02 2019-12-06 谷歌有限责任公司 用于数据存储的垃圾收集
US10678436B1 (en) * 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
CN111104343A (zh) * 2018-10-25 2020-05-05 三星电子株式会社 存储装置、操作存储装置的方法和非易失性存储器装置

Also Published As

Publication number Publication date
EP3923130A1 (en) 2021-12-15
CN112286460A (zh) 2021-01-29
EP3923130B1 (en) 2024-04-17
US11550712B2 (en) 2023-01-10
US20210390045A1 (en) 2021-12-16
FI3923130T3 (fi) 2024-05-30

Similar Documents

Publication Publication Date Title
US10628409B2 (en) Distributed data transformation system
JP6373328B2 (ja) メモリ管理での重複排除のための参照ブロックの参照セットへの集約
US9836541B2 (en) System and method of managing capacity of search index partitions
US7548904B1 (en) Utility-based archiving
CN109313720B (zh) 具有稀疏访问的外部存储器的增强神经网络
CN112286460B (zh) 基于生存者寿命预测来优化垃圾收集
CN112579728B (zh) 基于海量数据全文检索的行为异常识别方法及装置
EP2026184B1 (en) Device, method, and program for selecting data storage destination from a plurality of tape recording devices
CN111538766B (zh) 一种文本分类方法、装置、处理设备和票据分类系统
CN102549578A (zh) 分类装置以及分类方法
WO2020034880A1 (zh) 物流对象信息处理方法、装置及计算机系统
CN102741840A (zh) 用于对个性化场景建模的方法和装置
US20220121823A1 (en) System and method for artificial intelligence driven document analysis, including searching, indexing, comparing or associating datasets based on learned representations
CN111142794A (zh) 一种数据分类存储的方法、装置、设备及存储介质
CN110019017B (zh) 一种基于访问特征的高能物理文件存储方法
CN116861287A (zh) 基于多标签演变高维文本流的在线半监督分类算法
Bolshakov et al. Comparative analysis of machine learning methods to assess the quality of IT services
Karimi et al. A new method of mining data streams using harmony search
JP5491430B2 (ja) クラス分類装置、クラス分類方法、及びクラス分類プログラム
US11782918B2 (en) Selecting access flow path in complex queries
US7672912B2 (en) Classifying knowledge aging in emails using Naïve Bayes Classifier
CN115221307A (zh) 一种文章识别方法、装置、计算机设备及存储介质
JP2021189833A (ja) 特徴量生成方法及び特徴量生成装置
EP3989074B1 (en) Method for optimizing execution of high-performance computing workflows
CN111475641A (zh) 一种数据抽取方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant