CN110609807B - 用于删除快照数据的方法、设备和计算机可读存储介质 - Google Patents

用于删除快照数据的方法、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN110609807B
CN110609807B CN201810623396.3A CN201810623396A CN110609807B CN 110609807 B CN110609807 B CN 110609807B CN 201810623396 A CN201810623396 A CN 201810623396A CN 110609807 B CN110609807 B CN 110609807B
Authority
CN
China
Prior art keywords
thread
sub
data block
data
snapshot
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
CN201810623396.3A
Other languages
English (en)
Other versions
CN110609807A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co 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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810623396.3A priority Critical patent/CN110609807B/zh
Priority to US16/356,206 priority patent/US11366788B2/en
Publication of CN110609807A publication Critical patent/CN110609807A/zh
Application granted granted Critical
Publication of CN110609807B publication Critical patent/CN110609807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例提供了用于删除快照数据的方法、设备和计算机可读存储介质。在一个实施例中,使用第一线程,针对快照数据的第一数据块执行快照删除过程的第一子过程。快照删除过程至少包括顺序执行的第一子过程和第二子过程。响应于使用第一线程执行的第一子过程结束,使用第一线程来针对第一数据块执行第二子过程。与使用第一线程来针对第一数据块执行第二子过程并发地,使用不同于第一线程的第二线程来针对快照数据的第二数据块执行第一子过程,第二数据块不同于第一数据块。以此方式,可以大大减少IO锁争用,提高系统资源利用率并且提高并行性,同时减少了读写响应时间,降低了系统开销。

Description

用于删除快照数据的方法、设备和计算机可读存储介质
技术领域
本公开的实施例总体上涉及计算机技术,更具体地,涉及用于删除快照数据的方法、设备和计算机可读存储介质。
背景技术
快照技术是一种常用的数据保护技术。在此使用的术语“快照”是指关于指定数据集合的一个完全可用复制,该复制包括相应数据在某个时间点(例如,复制开始的时间点)的映像。利用快照技术,可以在数据损坏或丢失时恢复数据。
针对要备份的数据所创建的快照可以存储在磁盘中。考虑到快照的存储会占用大量的存储空间,通常需要定期删除不必要的快照以回收相应的空间。在传统的快照删除过程中,线程是动态分配的。例如,针对每个快照数据块的删除,分配一个线程。这些线程通常并发执行,因而有可能会在线程之间产生输入输出(IO)锁争用,从而增加读写响应时间以及系统开销。
发明内容
总体上,本公开的实施例提出了用于删除快照数据的方法、设备和计算机可读存储介质。
在第一方面,本公开的实施例提供了一种删除快照数据的方法。在方法中,使用第一线程,针对快照数据的第一数据块执行快照删除过程的第一子过程。快照删除过程至少包括顺序执行的第一子过程和第二子过程。响应于使用第一线程执行的第一子过程结束,使用第一线程来针对第一数据块执行第二子过程。与使用第一线程来针对第一数据块执行第二子过程并发地,使用不同于第一线程的第二线程来针对快照数据的第二数据块执行第一子过程,第二数据块不同于第一数据块。
在第二方面,本公开的实施例提供了一种用于删除快照数据的设备。该设备包括处理器以及存储有计算机可执行指令的存储器。计算机可执行指令在被处理器执行时使得设备执行动作,动作包括:使用第一线程,针对快照数据的第一数据块执行快照删除过程的第一子过程,快照删除过程至少包括顺序执行的第一子过程和第二子过程;响应于使用第一线程执行的第一子过程结束,使用第一线程来针对第一数据块执行第二子过程;以及与使用第一线程来针对第一数据块执行第二子过程并发地,使用不同于第一线程的第二线程来针对快照数据的第二数据块执行第一子过程,第二数据块不同于第一数据块。
在第三方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机可执行指令。该计算机可执行指令在处理器中被执行时,使得处理器执行根据第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本公开的某些实施例的用于快照删除的示例系统结构;
图2示出了在快照删除过程中的读取元数据阶段的示例操作;
图3示出了在快照删除过程中的计算权值阶段的示例操作;
图4示出了在快照删除过程中的写入日志阶段的示例操作;
图5示出了采用了根据本公开的流水线处理机制与传统方式的IO响应时间比较;
图6示出了采用了根据本公开的流水线处理机制与传统方式的中央处理单元(CPU)利用率比较;
图7示出了根据本公开的某些实施例的方法的流程图;以及
图8示出了适合实现本公开的实施例的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在此使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
为了提高存储系统的利用率,通常需要定期删除不必要的快照以回收相应的存储空间。传统上,可以针对每个快照数据的间接块(IB)分配一个线程。用于多个IB处理的多个线程可以并发执行。例如,快照删除过程可以包括一系列的处理,诸如读取中间块(IB)数据,计算每个偏移的每个快照状态、更新权值、写入日志、写入脏的元数据、等等。用于每个IB的线程可以并发地执行这一系列处理。
然而,多个线程的这种并发执行很可能会导致竞争性的资源锁定,而且会降低IO资源和中央处理单元(CPU)资源利用率并且会增加系统开销。另外,为每个IB单独创建一个线程,会导致线程的反复启动和销毁。当LUN容量达到太字节(TB)级别时,会导致大量的线程开销。
本公开的实施例提出了一种基于流水线调度的并行快照删除机制。根据该机制,快照删除过程按照执行顺序被分为多个子过程。这些子过程之间具有一定依赖关系。针对某段数据的某个子过程的处理,需要在前一个子过程结束之后才能执行后。这样,每个子过程可以视为流水线的一个阶段。为快照删除过程分配多个线程,每个线程都执行流水线的不同阶段。以此方式,可以大大减少IO锁争用,提高系统资源利用率并且提高并行性,同时减少了读写响应时间,降低了系统开销。
图1示出了根据本公开的某些实施例的用于快照删除的示例系统结构100。如图1所示,快照删除过程105被分成顺序执行的多个子过程,包括子过程110-1、110-2、110-3和110-4(统称为子过程110)。所示的四个子过程110-1、110-2、110-3和110-4可以是快照删除处理的四个不同阶段,诸如读取元数据的阶段,计算权值的阶段,更新块元数据(BMD)的阶段和写入日志的阶段。
应当理解,快照删除过程105被划分成其他子过程的实现方式也是可行的。还应当理解,图1中所示的子过程的数目仅仅出于示范之目而无意于提出任何限制。根据实际需要,快照删除过程105可以被分为任意适当数目的子过程。
在本公开的各个实施例中,为快照删除过程105分配多个线程。这些线程115并发地执行快照数据的删除。在某些实施例中,不同线程可以由处理单元(例如,CPU)的不同核来执行。以此方式,可以减少日志记录所导致的锁争用,并且可以增加元数据读写的并发性。在某些实施例中,可以分配预定数目的线程来处理截断的数据,而不是频繁动态分配线程,从而可以进一步减少冲突,提高资源利用率。
图1中示出了7个线程115-1到115-7,统称为线程115。每个线程115都可以执行快照删除过程105的多个子过程110。例如,在待删除的快照数据包括多个数据块的情况下,每个线程115可以在一个时刻针对一个数据块执行一个子过程110。
快照数据的数据块可以按照任意粒度来划分。在某些实施例中,可以按照快照逻辑单元号(LUN)的数据块大小来划分。在某些其他实施例中,由线程处理的数据块可以按照更细粒度进一步被细分,以进一步提到处理效率。
细分的数据块的数目可以根据LUN的数据块大小和细分粒度按照如下公式(1)来计算:
N=S/G (1)
其中,S表示LUN的数据块的大小,G表示细分粒度,N表示所细分的数据块的数目。
在某些实施例中,以8Mbit大小的数据块作为流水线处理的基本单位。一个数据块可以包括多个IB。
如图1所示,各个线程115可以被处理单元(例如,CPU)调度为例如按照时钟周期来顺序地执行子过程110-1到110-4。处理单元为线程115分派处理任务的时间(例如,时钟周期的时间)与并行处理的IB的数目有关。例如,可以按照如下公式(2)来确定分派任务的时间间隔:
T=平均时间(IB)/SEGNUM (2)
其中,T表示分派任务的时间间隔,平均时间(IB)表示针对一个数据块(例如,包括多个IB)的平均处理时间,并且SEGNUM表示并行处理的IB的数目。能够并行处理的最大IB数据可以等于子过程的数目。
在图1中,线程115-1在时钟周期#0执行子过程110-1,诸如读取元数据的相关操作。下面参考图2来描述在子过程110-1期间所执行的示例操作。
如图2所示,在框205,确定已处理的IB是否达到了最大IB数目。如果否,则在框210获得源IB条目,在框215读取源IB缓冲器,在框220读取源BMD,并且在框225获得下一个IB。继而,返回到框205,并且重复框210到225,直到在框205处确定已处理的IB达到了最大IB数目为止。此时,操作200前进到框225,在此读取目的地条目。在框235,读取目的地缓冲器。
再次参考图1,在子过程110-1结束之后,线程115-1在时钟周期#1执行子过程110-2,诸如计算权值的相关操作。下面参考图3来描述在子过程110-2期间所执行的示例操作。
如图3所示,在框305,确定偏移是否小于最大偏移“1024”。如果是,则在框310确定数据块是否被共享。如果数据块未被共享,则在框315释放数据块,并且在框320获得下一个数据块。继而,返回到框310。
如果在框310确定数据块被共享,则在框325确定是否计算合并权值。如果是,则返回到框325,获得下一个数据块。如果不计算合并权值,则在框330确定将数据块是否已有。如果是,则在框335执行多值返回,并且返回到框325。如果数据块并非已有数据块,则在框340确定数据块是否被共享。如果否,在框345释放数据块,并且返回到框320。如果数据块被共享,则在框350计算返回权值,并且返回到框320。
接下来,重复执行如上所述框310到框320中的数据块的相关处理。直到被分配了同一偏移的数据块都被处理之后,在框355获得下一个偏移,并且重复执行如上所述针对前一个偏移执行的过程,直到偏移达到最大偏移“1024”为止。
下面继续参考图1,在子过程110-2结束之后,线程115-1在时钟周期#2执行子过程110-3,诸如更新BMD的相关操作。子过程110-3结束之后,线程115-1在时钟周期#3执行子过程110-4,诸如写入日志的相关操作。下面参考图4来描述在子过程110-4期间所执行的示例操作。
如图4所示,在框405,确定偏移是否小于最大偏移1024。如果是,则在框410确定是否已经处理了最大数目的IB。如果没有处理最大数目的IB,则在框415执行类型判断,在框420根据所确定的类型将数据复制到日志区,并且在框425获得下一个IB。继而,返回到框410,重复执行IB的相关处理。
如果在框410确定已处理的IB达到了最大IB数目,则在框430获得下一个偏移,并且返回到框405,重复执行如上所述针对前一个偏移执行的过程。直到处理了1024个偏移之后,在框435将日志同步到磁盘。
应当理解,仅仅出于说明之目的而无意于对本公开的范围提出任何限制,在上文描述了各子过程中的操作处理。在实现中,可以根据需要定义用于描述快照删除过程以及其各个子过程的操作的函数。例如,可以定义如下函数arrarymultiBulkDeallocLeafIB_Pipeline来表示流水线过程的所有阶段:
multiBulkDeallocLeafIB_Pipeline[]={
NULL
multiBulkReadMetadata
calMergeOrReturnweigh
multiBulkUpdateBMD
multiBulkWriteLog
}
函数arrarymultiBulkDeallocLeafIB_Pipeline中的各变量的定义如下面的表1所示:
表1
函数定义 阶段
multiBulkReadMetadata 读取IB元数据
CalMergeOrReturnweigh 计算合并权值或者返回权值
multiBulkUpdateBMD 更新BMD
multiBulkWriteLog 写入日志
还可以定义如下函数MultiBulkDeallocStage来表示流水线过程的每个阶段。
enumMultiBulkDeallocStage{
STAGE_READMETEDATA
STAGE_CALMRWEIGH
STAGE_UPDATEBMD
STAGE_WRITELOG
}
其中,STAGE_READMETEDATA表示读取IB元数据的阶段,STAGE_CALMRWEIGH表示计算合并权值或者返回权值的阶段,STAGE_UPDATEBMD表示更新BMD的阶段,并且STAGE_WRITELOG表示写入日志的阶段。
以此方式,可以通过独立的函数来定义了流水线机制中使用的策略,从而实现了策略与机制的分离。另外,使用函数来定义策略一方面更易于理解,另一方面增强了策略的可扩展性,例如可以通过添加变量和定义来以实现特定功能。
接下来,再次参考图1,在线程110-1执行子过程110-2时,线程115-2并发地执行子过程110-1。在线程110-1执行子过程110-3时,115-2并发地执行子过程110-2,并且线程115-3并发地执行子过程110-1,以此类推。这种基于流水线的多线程处理,可以减少锁的争用,提高系统资源利用率,并且提高快照删除性能。
在某些实施例中,考虑到每个阶段的时间间隔的划分可能并不完全相同,可以在多线程处理完成后,例如每分钟将上述流水线处理重新启动一次,以便进行定时校准。
采用根据公开的流水线处理机制,明显提高了快照删除的性能。图5和图6分别示出了在表2所示的测试环境下根据本公开的实施例的流水线处理机制与传统方式的IO响应时间和CPU利用率比较。
表2
Figure BDA0001698564130000081
Figure BDA0001698564130000091
在图5中,曲线505表示流水线处理机制的IO响应时间,曲线510表示传统方式的IO响应时间。如图5所示,流水线处理机制的IO响应时间曲线更平滑。而且,在响应时间相同的情况下,流水线处理机制的总截断时间较短。
在图6中,曲线605表示流水线处理机制的CPU利用率,曲线610表示传统方式的CPU利用率。如图6所示,在CPU利用率相同的情况下,流水线处理机制的总截断时间较短。
在此测试中,根据本公开的实施例的流水线处理机制使快照删除性能提高了8-10%。
图7示出了根据本公开的某些实施例的示例方法700的流程图。方法700可以在如图1所示的系统结构100中实施。
如图所示,在框705,使用一个线程(称为“第一线程”),针对快照数据的一个数据块(称为“第一数据块”)执行快照删除过程的一个子过程(称为“第一子过程”)。快照删除过程至少包括顺序执行的第一子过程和另一子过程(称为“第二子过程”)。在框710,响应于使用第一线程执行的第一子过程结束,使用第一线程来针对第一数据块执行第二子过程。在框715,与使用第一线程针对第一数据块执行第二子过程并发地,使用不同于第一线程的另一线程(称为“第二线程”)来针对快照数据的不同于第一数据块的另一数据块(称为“第二数据块”)执行第一子过程。
在某些实施例中,方法700还可以包括响应于使用第二线程执行的第一子过程结束,使用第二线程来针对第二数据块执行第二子过程。而且,与使用第二线程针对第二数据块执行第二子过程并发地,使用不同于第二线程的又一线程(称为“第三线程”)来针对快照数据的又一数据块(称为“第三数据块“)执行第一子过程。第三数据块不同于第一数据块和第二数据块。第三线程可以或者可以不与第一线程相同。
在某些实施例中,方法700还可以包括:分配预定数目的线程,以用于删除快照数据。预定数目的线程至少包括第一线程和第二线程。
在某些实施例中,第一线程由处理单元的一个核(称为“第一核”)来执行,并且第二线程由处理单元的不同于第一核的另一核(称为“第二核”)来执行。
应理解,上文结合图1到图6描述的操作和相关的特征同样适用于方法700,并且具有同样的效果,具体细节不再赘述。
图8示出了一个可以用来实施本公开的实施例的设备800的示意性框图。如图8所示,设备800包括控制器或处理器,或者称中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802和/或随机访问存储器(RAM)803的程序而执行各种适当的动作和处理。ROM802和/或RAM 803可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802和RAM 803通过总线804彼此相连。特别地,设备800还包括一个或多个专用处理单元(未示出),这些专用处理单元也可以连接至总线804。
输入/输出(I/O)接口805也连接至总线804。设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。特别地,在本公开的实施例中,通信单元809支持与客户端或者其他设备的通信。
在某些实施例中,CPU 801可被配置为执行上文所描述的各个过程和处理,例如方法700。例如,在一些实施例中,方法700可被实现为计算机软件程序,其被有形地包含于计算机可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM803并由CPU 801执行时,可以执行上文描述的方法700的一个或多个步骤。备选地,在其他实施例中,CPU 801也可以以其他任何适当的方式被配置以实现上述过程/方法。
特别地,根据本公开的实施例,上文参考图1至图6描述的过程可以被实现为计算机程序产品,其可以被有形地存储在非瞬态计算机可读存储介质上,并且包括计算机可执行指令,该指令在被执行时使得设备实现根据本公开的各个方面。
计算机可读存储介质可以是可以存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的、非穷举的例子包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的设备、方法和计算机程序产品的框图和/或流程图描述了本公开的各个方面。应当理解,框图和/或流程图的每个方框以及框图和/或流程图中各方框的组合,都可以由计算机可读程序指令实现。
已经出于示例的目的描述了本公开的各个实施例,但是本公开并不意图限于所公开的这些实施例。在不脱离本公开实质的前提下,所有修改和变型均落入由权利要求所限定的本公开的保护范围之内。

Claims (15)

1.一种使用包括针对流水线中的执行而被布置的多个子过程的快照删除过程来删除快照数据的方法,包括:
使用第一线程,针对所述快照数据的第一数据块执行所述快照删除过程的第一子过程,所述快照删除过程至少包括顺序执行的所述第一子过程和第二子过程;
响应于使用所述第一线程执行的所述第一子过程结束,使用所述第一线程来针对所述第一数据块执行所述第二子过程;以及
与使用所述第一线程针对所述第一数据块执行所述第二子过程并发地,使用不同于所述第一线程的第二线程来针对所述快照数据的第二数据块执行所述第一子过程,所述第二数据块不同于所述第一数据块,
所述快照删除过程中,多个线程并发地操作相应的块,并且所述线程中的不同线程同时执行不同的子过程,从而避免输入/输出I/O锁争用,
其中所述多个子过程包括计算在删除所述数据块时要被合并或返回的权值的阶段和更新所述数据块的块元数据BMD的阶段,其中跟踪块之间的共享的所述权值响应于对计算合并权值的确定而被合并,并且响应于所述块被共享并且不存在已有块而被返回。
2.根据权利要求1所述的方法,还包括:
响应于使用所述第二线程执行的所述第一子过程结束,使用所述第二线程来针对所述第二数据块执行所述第二子过程;以及
与使用所述第二线程针对所述第二数据块执行所述第二子过程并发地,使用不同于所述第二线程的第三线程来针对所述快照数据的第三数据块执行所述第一子过程,所述第三数据块不同于所述第一数据块和所述第二数据块。
3.根据权利要求2所述的方法,其中所述第三线程与所述第一线程不同。
4.根据权利要求1所述的方法,还包括:
分配预定数目的线程,以用于删除所述快照数据,所述预定数目的线程至少包括所述第一线程和所述第二线程。
5.根据权利要求1所述的方法,其中所述第一线程由处理单元的第一核来执行,并且所述第二线程由所述处理单元的第二核来执行,所述第一核不同于所述第二核。
6.一种用于删除快照数据的设备,包括:
处理器,以及
存储有计算机可执行指令的存储器,所述计算机可执行指令在被所述处理器执行时使得所述设备执行使用包括针对流水线中的执行而被布置的多个子过程的快照删除过程来删除快照数据的方法,所述方法包括:
使用第一线程,针对所述快照数据的第一数据块执行所述快照删除过程的第一子过程,所述快照删除过程至少包括顺序执行的所述第一子过程和第二子过程;
响应于使用所述第一线程执行的所述第一子过程结束,使用所述第一线程来针对所述第一数据块执行所述第二子过程;以及
与使用所述第一线程针对所述第一数据块执行所述第二子过程并发地,使用不同于所述第一线程的第二线程来针对所述快照数据的第二数据块执行所述第一子过程,所述第二数据块不同于所述第一数据块,
所述快照删除过程中,多个线程并发地操作相应的块,并且所述线程中的不同线程同时执行不同的子过程,从而避免输入/输出I/O锁争用,
其中所述多个子过程包括计算在删除所述数据块时要被合并或返回的权值的阶段和更新所述数据块的块元数据BMD的阶段,其中跟踪块之间的共享的所述权值响应于对计算合并权值的确定而被合并。
7.根据权利要求6所述的设备,其中所述方法还包括:
响应于使用所述第二线程执行的所述第一子过程结束,使用所述第二线程来针对所述第二数据块执行所述第二子过程;以及
与使用所述第二线程针对所述第二数据块执行所述第二子过程并发地,使用不同于所述第二线程的第三线程来针对所述快照数据的第三数据块执行所述第一子过程,所述第三数据块不同于所述第一数据块和所述第二数据块。
8.根据权利要求7所述的设备,其中所述第三线程与所述第一线程不同。
9.根据权利要求6所述的设备,其中所述方法还包括:
分配预定数目的线程,以用于删除所述快照数据,所述预定数目的线程至少包括所述第一线程和所述第二线程。
10.根据权利要求6所述的设备,其中所述第一线程由处理单元的第一核来执行,并且所述第二线程由所述处理单元的第二核来执行,所述第一核不同于所述第二核。
11.一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在被处理器执行时使得所述处理器执行使用包括针对流水线中的执行而被布置的多个子过程的快照删除过程来删除快照数据的方法,所述方法包括:
使用第一线程,针对所述快照数据的第一数据块执行快照删除过程的第一子过程,所述快照删除过程至少包括顺序执行的所述第一子过程和第二子过程;
响应于使用所述第一线程执行的所述第一子过程结束,使用所述第一线程来针对所述第一数据块执行所述第二子过程;以及
与使用所述第一线程来针对所述第一数据块执行所述第二子过程并发地,使用不同于所述第一线程的第二线程来针对所述快照数据的第二数据块执行所述第一子过程,所述第二数据块不同于所述第一数据块,
所述快照删除过程中,多个线程并发地操作相应的块,并且所述线程中的不同线程同时执行不同的子过程,从而避免输入/输出I/O锁争用,
其中所述多个子过程包括计算在删除所述数据块时要被合并或返回的权值的阶段和更新所述数据块的块元数据BMD的阶段,其中跟踪块之间的共享的所述权值响应于对计算合并权值的确定而被合并。
12.根据权利要求11所述的计算机可读存储介质,其中所述方法还包括:
响应于使用所述第二线程执行的所述第一子过程结束,使用所述第二线程来针对所述第二数据块执行所述第二子过程;以及
与使用所述第二线程来针对所述第二数据块执行所述第二子过程并发地,使用不同于所述第二线程的第三线程来针对所述快照数据的第三数据块执行所述第一子过程,所述第三数据块不同于所述第一数据块和所述第二数据块。
13.根据权利要求12所述的计算机可读存储介质,其中所述第三线程与所述第一线程不同。
14.根据权利要求11所述的计算机可读存储介质,其中所述方法还包括:
分配预定数目的线程,以用于删除所述快照数据,所述预定数目的线程至少包括所述第一线程和所述第二线程。
15.根据权利要求11所述的计算机可读存储介质,其中所述第一线程由处理单元的第一核来执行,并且所述第二线程由所述处理单元的第二核来执行,所述第一核不同于所述第二核。
CN201810623396.3A 2018-06-15 2018-06-15 用于删除快照数据的方法、设备和计算机可读存储介质 Active CN110609807B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810623396.3A CN110609807B (zh) 2018-06-15 2018-06-15 用于删除快照数据的方法、设备和计算机可读存储介质
US16/356,206 US11366788B2 (en) 2018-06-15 2019-03-18 Parallel pipelined processing for snapshot data deletion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810623396.3A CN110609807B (zh) 2018-06-15 2018-06-15 用于删除快照数据的方法、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110609807A CN110609807A (zh) 2019-12-24
CN110609807B true CN110609807B (zh) 2023-06-23

Family

ID=68839816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810623396.3A Active CN110609807B (zh) 2018-06-15 2018-06-15 用于删除快照数据的方法、设备和计算机可读存储介质

Country Status (2)

Country Link
US (1) US11366788B2 (zh)
CN (1) CN110609807B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726006B (zh) 2017-10-27 2023-06-06 伊姆西Ip控股有限责任公司 用于控制存储系统的方法、装置和计算机存储介质
CN112650647B (zh) * 2020-12-29 2023-10-31 北京字节跳动网络技术有限公司 一种信息获取方法、装置、设备及介质
CN113760823A (zh) * 2021-08-13 2021-12-07 济南浪潮数据技术有限公司 一种基于位图合并快照的方法、系统、设备和存储介质
US11809319B2 (en) 2022-01-20 2023-11-07 Nvidia Corporation Contention tracking for processor cache management
US11789869B2 (en) * 2022-01-20 2023-10-17 Nvidia Corporation Contention tracking for latency reduction of exclusive operations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345451A (zh) * 2013-07-18 2013-10-09 四川九成信息技术有限公司 一种在多核处理器中缓冲数据的方法
CN103488734A (zh) * 2013-09-17 2014-01-01 华为技术有限公司 一种数据处理方法及重删引擎
CN104182184A (zh) * 2014-08-27 2014-12-03 浪潮电子信息产业股份有限公司 一种分布式块存储克隆方法
US8943282B1 (en) * 2012-03-29 2015-01-27 Emc Corporation Managing snapshots in cache-based storage systems
CN107249035A (zh) * 2017-06-28 2017-10-13 重庆大学 一种等级化动态可变的共享重复数据存储和读取机制

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478096B2 (en) * 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
US20060206677A1 (en) * 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US7836029B2 (en) * 2003-07-08 2010-11-16 Pillar Data Systems, Inc. Systems and methods of searching for and determining modified blocks in a file system
US7831565B2 (en) * 2007-01-18 2010-11-09 Dot Hill Systems Corporation Deletion of rollback snapshot partition
US8001345B2 (en) * 2007-05-10 2011-08-16 Dot Hill Systems Corporation Automatic triggering of backing store re-initialization
US7921081B2 (en) * 2007-05-30 2011-04-05 International Business Machines Corporation Managing a snapshot stored within a file system space for efficient detection of in-use blocks
US8356017B2 (en) * 2009-08-11 2013-01-15 International Business Machines Corporation Replication of deduplicated data
US8370593B2 (en) * 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication
WO2013035295A1 (en) * 2011-09-07 2013-03-14 Nec Corporation Storage system
US9342537B2 (en) * 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US10318495B2 (en) * 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9311014B2 (en) * 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
US8750365B1 (en) * 2013-11-27 2014-06-10 Redline Communications, Inc. System and method for multi-threaded OFDM channel equalizer with coprocessor
US10691636B2 (en) * 2014-01-24 2020-06-23 Hitachi Vantara Llc Method, system and computer program product for replicating file system objects from a source file system to a target file system and for de-cloning snapshot-files in a file system
US9940331B1 (en) 2014-06-30 2018-04-10 EMC IP Holding Company LLC Proactive scavenging of file system snaps
US9400741B1 (en) 2014-06-30 2016-07-26 Emc Corporation Reclaiming space from file system hosting many primary storage objects and their snapshots
US9778990B2 (en) * 2014-10-08 2017-10-03 Hewlett Packard Enterprise Development Lp Methods and systems for concurrently taking snapshots of a plurality of virtual machines
CN106557263B (zh) 2015-09-25 2019-08-16 伊姆西公司 用于在数据块删除中检查伪共享的方法及设备
US10140307B1 (en) 2016-03-31 2018-11-27 EMC IP Holding Company LLC Efficiently managing reference weights for write splits
US10248336B1 (en) * 2016-09-30 2019-04-02 Tintri By Ddn, Inc. Efficient deletion of shared snapshots
US10162528B2 (en) * 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
CN108460045B (zh) * 2017-02-21 2022-11-18 中兴通讯股份有限公司 一种快照的处理方法及分布式块存储系统
KR101826176B1 (ko) * 2017-06-20 2018-02-14 주식회사 비츠코리아 스냅샷 방식의 이미지 테이블을 이용한 백업데이터 제어방법
US10721141B1 (en) * 2017-11-29 2020-07-21 Amazon Technologies, Inc. Resource lifecycle automation
US10503602B2 (en) * 2018-01-12 2019-12-10 Vmware Inc. Deletion and restoration of archived data in cloud/object storage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943282B1 (en) * 2012-03-29 2015-01-27 Emc Corporation Managing snapshots in cache-based storage systems
CN103345451A (zh) * 2013-07-18 2013-10-09 四川九成信息技术有限公司 一种在多核处理器中缓冲数据的方法
CN103488734A (zh) * 2013-09-17 2014-01-01 华为技术有限公司 一种数据处理方法及重删引擎
CN104182184A (zh) * 2014-08-27 2014-12-03 浪潮电子信息产业股份有限公司 一种分布式块存储克隆方法
CN107249035A (zh) * 2017-06-28 2017-10-13 重庆大学 一种等级化动态可变的共享重复数据存储和读取机制

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Andrea Cerone 等.Analysing Snapshot Isolation.《Journal of the ACM (JACM)》.2018,1-41. *
晏志超.事务内存的并行优化研究.《中国博士学位论文全文数据库 信息科技辑》.2013,I138-10. *

Also Published As

Publication number Publication date
CN110609807A (zh) 2019-12-24
US11366788B2 (en) 2022-06-21
US20190384743A1 (en) 2019-12-19

Similar Documents

Publication Publication Date Title
CN110609807B (zh) 用于删除快照数据的方法、设备和计算机可读存储介质
CN107391628B (zh) 数据同步方法及装置
US9619430B2 (en) Active non-volatile memory post-processing
US8595732B2 (en) Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme
US20120166498A1 (en) Garbage collection in a multiple virtual machine environment
US9652492B2 (en) Out-of-order execution of strictly-ordered transactional workloads
US10394819B2 (en) Controlling mirroring of tables based on access prediction
EP2945072A1 (en) Method and apparatus for processing redo data of database
US20180232153A1 (en) Adaptive caching and dynamic delay scheduling for in-memory data analytics
US20210132987A1 (en) Computer program for asynchronous data processing in a database management system
US20200379646A1 (en) System and method for on-demand recovery points
US9069621B2 (en) Submitting operations to a shared resource based on busy-to-success ratios
CN114297196B (zh) 元数据存储方法、装置、电子设备及存储介质
KR20150117522A (ko) 그래픽스 상태 관리 장치 및 방법
US8438355B2 (en) Temporary VTOC locking during defragmentation
CN109240941B (zh) 一种存储系统的垃圾回收方法及相关装置
US10261718B1 (en) Adaptively controlling data copy operations that copy data in an electronic environment
CN113127438B (zh) 用于存储数据的方法、装置、服务器和介质
US20110302377A1 (en) Automatic Reallocation of Structured External Storage Structures
JP2018132948A (ja) 読込プログラム、読込方法および情報処理装置
US10409651B2 (en) Incremental workflow execution
US20220300322A1 (en) Cascading of Graph Streaming Processors
Kumar et al. On the latency of heterogeneous MDS queue
CN109241027B (zh) 数据迁移的方法、装置、电子设备及计算机可读存储介质
CN109165208B (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