CN106991021A - 从现有数据文件构建新数据文件的方法及系统 - Google Patents

从现有数据文件构建新数据文件的方法及系统 Download PDF

Info

Publication number
CN106991021A
CN106991021A CN201710211811.XA CN201710211811A CN106991021A CN 106991021 A CN106991021 A CN 106991021A CN 201710211811 A CN201710211811 A CN 201710211811A CN 106991021 A CN106991021 A CN 106991021A
Authority
CN
China
Prior art keywords
data file
block
retained
data block
file
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.)
Granted
Application number
CN201710211811.XA
Other languages
English (en)
Other versions
CN106991021B (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201710211811.XA priority Critical patent/CN106991021B/zh
Publication of CN106991021A publication Critical patent/CN106991021A/zh
Application granted granted Critical
Publication of CN106991021B publication Critical patent/CN106991021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种从现有数据文件构建新数据文件的方法,所述现有数据文件包括一个或多个数据块,所述方法包括:获取现有数据文件中要保留的数据块的描述信息和所述新数据文件的描述信息;根据所述要保留的数据块的描述信息确定要保留的数据块的块地址;以及根据所述要保留的数据块的块地址和所述新数据文件的描述信息构建新数据文件的元数据,所述新数据文件包括所述要保留的数据块。本公开还提供了从现有数据文件构建新数据文件的系统和计算机可读存储介质。

Description

从现有数据文件构建新数据文件的方法及系统
技术领域
本公开涉及一种从现有数据文件构建新数据文件的方法、系统及计算机可读存储介质。
背景技术
在计算机系统中,上层用户文件可以在底层以数据文件的形式存储。每个用户文件可以包括一个或多个数据块,同一用户文件和/或不同用户文件中的相同数据块可以对应于数据文件中的同一个数据块。存储数据块的底层数据文件在上层可能被多个用户文件交叉引用。因此,当对用户文件进行读、写、创建、或删除操作时,需要对该用户文件所引用的数据文件进行访问。例如,当删除用户文件时,可能涉及数据文件的重新构建。
发明内容
本公开的一个方面提供了一种从现有数据文件构建新数据文件的方法,上述现有数据文件包括一个或多个数据块,上述方法包括:获取现有数据文件中要保留的数据块的描述信息和上述新数据文件的描述信息;根据上述要保留的数据块的描述信息确定要保留的数据块的块地址;以及根据上述要保留的数据块的块地址和上述新数据文件的描述信息构建新数据文件的元数据,上述新数据文件包括上述要保留的数据块。
可选地,上述要保留的数据块的描述信息包括:上述要保留的数据块的长度和在上述现有文件中的地址偏移量;以及/或者上述要保留的数据块的块地址。
可选地,上述新数据文件的描述信息包括上述新数据文件的inode和全路径名称;以及上述构建新数据文件的元数据包括将上述新数据文件的inode和全路径名称与上述要保留的数据块的块地址相关联。
可选地,上述新数据文件的描述信息包括上述新数据文件的inode和全路径名称;以及将上述要保留的数据块的块地址与上述新数据文件的inode和文件名相关联包括:根据上述要保留的数据块的块地址确定上述要保留的数据块的长度和在新数据文件中的地址偏移量;以及将上述新数据文件的inode和全路径名称与上述要保留的数据块的长度和在新数据文件中的地址偏移量相关联。
可选地,在构建上述新数据文件的元数据之后:删除上述现有数据文件的元数据;并且/或者删除上述现有数据文件中不需要保留的数据块内容;并且/或者将上述现有数据文件中不需要保留的数据块标记为可删除。
可选地,上述方法由内核态文件系统执行。
可选地,还包括接收扩展接口调用请求,上述扩展接口调用请求中包含上述要保留的数据块的描述信息和上述新数据文件的描述信息。
本公开的另一方面提供了一种从现有数据文件构建新数据文件的系统,上述现有数据文件包括一个或多个数据块,上述系统包括:获取模块,获取现有数据文件中要保留的数据块的描述信息和上述新数据文件的描述信息;确定模块,根据上述要保留的数据块的描述信息确定要保留的数据块的块地址;以及构建模块,根据上述要保留的数据块的块地址和上述新数据文件的描述信息构建新数据文件的元数据,上述新数据文件包括上述要保留的数据块。
本公开的另一方面还提供了另一种从现有数据文件构建新数据文件的系统,上述现有数据文件包括一个或多个数据块,上述系统包括:存储器,存储有可执行指令;以及处理器,运行上述可执行指令,以执行上述从现有数据文件构建新数据文件的方法。
本公开的另一方面提供了一种计算机可读存储介质,包含用于执行上述从现有数据文件构建新数据文件的方法的可执行指令。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了从数据文件中删除数据块的过程示意图;
图2A示意性示出了根据本公开实施例从数据文件中删除数据块的过程示意图;
图2B示意性示出了根据本公开实施例的从现有数据文件构建新数据文件的方法的流程图;
图2C示意性示出了根据本公开另一实施例的从现有数据文件构建新数据文件的方法的流程图;
图3示意性示出了根据本公开实施例的块地址信息表;
图4示意性示出了根据本公开实施例的从现有数据文件构建新数据文件的系统的框图;以及
图5示意性示出了根据本公开实施例的另一种从现有数据文件构建新数据文件的系统的框图。
具体实施方式
为解决上述在内的问题,提高用户的使用体验,根据结合附图对本公开示例性实施例的以下详细描述,本公开的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。
本公开实施例提供了一种从现有数据文件构建新数据文件的方法,上述现有数据文件包括一个或多个数据块。上述方法包括获取现有数据文件中要保留的数据块的描述信息和上述新数据文件的描述信息,根据上述要保留的数据块的描述信息确定要保留的数据块的块地址,根据上述要保留的数据块的块地址和上述新数据文件的描述信息构建新数据文件的元数据,上述新数据文件包括上述要保留的数据块。图1示意性示出了在删除用户文件时构建新的数据文件的示意图。
图1示意性示出了从数据文件中删除数据块的过程示意图。
如图1所示,用户文件A、用户文件B和用户文件C是三个上层用户文件。其中,用户文件A包括数据块BLK1、数据块BLK2、和数据块BLK3,用户文件B包括数据块BLK4、数据块BLK1、和数据块BLK3,用户文件C包括数据块BLK5、数据块BLK2、和数据块BLK6。
在底层的数据文件1中,相同的用户文件数据块可以对应于同一个数据文件数据块。例如,如图1所示,数据文件1包括数据块DBLK1~数据块DBLK6,其中,数据块DBLK1对应于用户文件A的数据块BLK1和用户文件B的数据块BLK1,数据块DBLK2对应于用户文件A的数据块BLK2和用户文件C的数据块BLK2,数据块DBLK3对应于用户文件A的数据块BLK3和用户文件B的数据块BLK3。
另外,如图1所示,数据块DBLK4对应于用户文件B的数据块BLK4,数据块DBLK5对应于用户文件C的数据块BLK5,数据块DBLK6对应于用户文件C的数据块BLK6。
对于数据文件1中的每个数据块,可以根据其被用户文件的引用情况而维护一个引用计数。例如,数据块DBLK1被用户文件A和用户文件B各引用一次,则其引用计数为2。类似地,数据块DBLK2的引用计数为2,数据块DBLK3的引用计数为2,数据块DBLK4的引用计数为1,数据块DBLK5的引用计数为1,数据块DBLK6的引用计数为1。
当删除用户文件时,数据文件1中的相应数据块的引用计数减少。例如,当删除用户文件A和用户文件B时,数据文件1中的数据块DBLK1的引用计数变为2-1-1=0,数据块DBLK2的引用计数变为2-1=1,数据块DBLK3的引用计数变为2-1-1=0,数据块DBLK4的引用计数变为1-1=0,数据块DBLK5和数据块DBLK6的引用计数不变,仍为1。
对于引用计数为0的数据块,系统可以将其存储空间回收,并基于其余数据块形成一个新的数据文件2。如图1所示,数据文件2中包括引用计数不为0的数据块DBLK2、数据块DBLK5、和数据块DBLK6。
可以通过将引用计数不为0的数据块读取出来并写入到一个新的数据文件中,来形成数据文件2。然而,这种做法会产生大量的数掘块读写操作,导致数据读写过程慢,数据处理效率低下。
图2A示意性示出了根据本公开实施例从数据文件中删除数据块的过程示意图。
如图2A所示,可以形成包括引用计数不为0的数据块DBLK2、数据块DBLK5、和数据块DBLK6的新的数据文件3,但数据块DBLK2、数据块DBLK5、和数据块DBLK6的实际存储位置并不改变,而是将数据块DBLK2、数据块DBLK5、和数据块DBLK6的块地址与数据文件3相关联,例如基于数据块DBLK2、数据块DBLK5、和数据块DBLK6的块地址和数据文件3的描述信息形成数据文件3的元数据。数据文件3的描述信息例如可以包括数据文件3的全路径名称和inode等等,但不限于此。如图2A所示,黑色背景的方框对应于被删除的数据块DBLK1、DBLK3和DBLK4。
图2B示意性示出了根据本公开实施例的从现有数据文件构建新数据文件的方法的流程图。
如图2B所示,从现有数据文件构建新数据文件的方法包括操作S201~S203,其中,现有数据文件包括一个或多个数据块。
在操作S201,获取现有数据文件中要保留的数据块的描述信息和新数据文件的描述信息。
在操作S202,根据上述要保留的数据块的描述信息确定要保留的数据块的块地址。
在操作S203,根据上述要保留的数据块的块地址和上述新数据文件的描述信息构建新数据文件的元数据,上述新数据文件包括上述要保留的数据块。
根据本公开的实施例,当要从现有数据文件删除部分数据块(例如,引用计数为0的数据块)时,可以通过使用要保留的数据块的块地址和新数据文件的描述信息构建新数据文件的元数据,来把要保留的数据块关联到新数据文件,来创建新数据文件。根据本公开的实施例,元数据可以包括数据文件的各种描述性信息,可以用于识别数掘文件、评价数据文件、和/或追踪数据文件在使用过程中的变化,等等。根据本公开的实施例,数据文件的描述信息可以包括能够用于识别和/或对新数据文件寻址的任何信息,例如新数据文件的inode和全路径名称等等,但不限于此。
以此方式构建的新数据文件的元数据中不包括那些要删除的数据块的块地址,即新数据文件中不包括那些要删除的数据块,从而实现了对数据块的删除。这个过程并不改变数据文件中数据块的存储位置,而是将其存储位置与新数据文件相关联,可以避免大量数据块读写操作,显著节约了系统资源,提高了数据处理效率。
例如,参考图2A所示,可以通过基于引用计数不为0的数据块DBLK2、数据块DBLK5、和数据块DBLK6的块地址和新的数据文件3的描述信息,来构建数据文件3的元数据。这样构建数据文件3,可以不必将数据块DBLK2、数据块DBLK5、和数据块DBLK6读取出来,再写入数据文件3,而只需要在数据文件3的元数据中记录数据块DBLK2、数据块DBLK5、和数据块DBLK6的存储位置与数据文件3的关联关系。
根据本公开的实施例,要保留的数据块的描述信息可以包括要保留的数据块的长度和在所述现有文件中的地址偏移量,以及/或者所述要保留的数据块的块地址。
根据本公开的实施例,要保留的数据块的描述信息可以包括要保留的数据块的长度和在现有数据文件中的地址偏移量。通过要保留的数据块的长度和在现有数据文件中的地址偏移量,可以确定要保留的数据块的块地址。
表1示意性示出了根据本公开实施例的数据块描述信息,其中提供了图2A所示示例中各数据块的数据块长度和在现有数据文件中的地址偏移量。
表1
数据块 数据块长度 地址偏移量
DBLK1 length 1 offset 1
DBLK2 length 2 offset 2
DBLK3 length 3 offset 3
DBLK4 length 4 offset 4
DBLK5 length 5 offset 5
DBLK6 length 6 offset 6
根据本公开的实施例,每个数据块的描述信息可以包括该数据块的长度。每个数据块可以具有相同或不同的长度。例如,每个数据块可以具有一个或多个固定长度的数据子块,该数据块的长度可以由其包含的数据子块的个数来描述。或者,每个数据块的长度也可以由其包含的字节数或比特数来描述。
根据本公开的实施例,每个数据块的描述信息还可以包括该数据块在其数据文件中的地址偏移量。例如,每个数据文件可以具有一个对应的参考地址,每个数据块的地址偏移量描述了该数据块的存储地址相对于该参考地址的偏移量。例如,如果每个数据块的长度是已知的,则可以通过一个地址来寻址整个数据块,则该地址偏移量可以是这一个地址相对于参考地址的偏移量。
根据数据块的长度和地址偏移量,可以确定该数据块的块地址。块地址是该数据块的实际物理存储地址,根据块地址就可以直接访问数据块的存储地址。
或者,根据本公开的实施例,要保留的数据块的描述信息还可以包括所要保留的数据块的块地址。
根据本公开的实施例,通过要保留的数据块的长度和在现有文件中的地址偏移量可以确定要保留的数据块的块地址,或者,也可以直接获取要保留的数据块的块地址作为保留的数据块的描述信息。当然,要保留的数据块的描述信息也可以包括要保留的数据块的长度和在所述现有文件中的地址偏移量,以及要保留的数据块的块地址。
在本公开的实施例中,新数据文件的描述信息包括能够用于识别和/或对新数据文件寻址的任何信息,例如新数据文件的inode和全路径名称等等,但不限于此。其中,inode可以包括与文件相关的重要信息,例如存放目录的基本信息,包括时间、文件名、使用者、和/或群组等。数据文件的全路径名称描述了可以寻址到该数据文件的全部路径。
根据本公开的实施例,构建新数据文件的元数据包括将所述新数据文件的inode和全路径名称与所述要保留的数据块的块地址相关联。例如,可以在新数据文件的元数据中记录要保留的数据块的块地址、以及新数据文件的inode和全路径名称。或者,可以在新数据文件的元数据中记录要保留的数据块的地址偏移量、数据块长度、以及新数据文件的inode和全路径名称。根据本公开的实施例,可以根据数据块的块地址及新数据文件的参考地址确定其地址偏移量。根据本公开的实施例,还可以根据数据块的块地址确定数据块的长度。
通过将要保留的数据块的块地址与新数据文件的描述信息关联起来,不需改变数据文件中数据块的存储位置,而是将其存储位置与新数据文件相关联,可以避免大量数据块读写操作,显著节约了系统资源,提高了数据处理效率。
根据本公开的实施例,在构建上述新数据文件的元数据之后,可以删除现有数据文件的元数据。根据本公开的实施例,还可以删除现有数据文件中不需要保留的数据块内容或者将现有数据文件中不需要保留的数据块标记为可删除。这样,原本存储不需要保留的数据块内容的存储空间可以用于存储其他数据。
图2C示意性示出了根据本公开另一实施例的从现有数据文件构建新数据文件的方法的流程图。
如图2C所示,根据本公开另一实施例从现有数据文件构建新数据文件的方法包括操作S301~S307。
在操作S301,获取需要整理的数据文件,该数据文件中可以包括一个或多个数据块。
在操作S302,获取数据块描述信息和新数掘文件的描述信息。数据块描述信息例如可以是数据块索引。从数据块索引中可以获得要保留的数据块的地址偏移量及长度,或者可以获得要保留的数据块的块地址。新数据文件的描述信息可以包括新数据文件的Inode和全路径名称等信息。
在操作S303,将保留的数据块描述信息及新数据文件的描述信息通过扩展接口调用请求发送给内核文件系统。例如,可以根据保留的数据块描述信息及新数据文件的描述信息构建块地址信息表,以便于通过扩展接口调用请求发送。
在操作S304,内核文件系统根据收到的扩展属性命令解析保留的数据块地址偏移量和长度。
在操作S305,根据地址偏移量和长度获取保留的数据块的块地址。
在操作S306,根据保留的数据块的块地址和新数据文件的描述信息,重新排列构造新的元数据地址信息。
在操作S307,删除不需要保留的数据块,以释放存储空间。根据本公开的实施例,可以对setxattr(key,value)接口(数据接口)进行扩展,设置一个通用的协议命令:SET_DATAFILE_GC,当内核态文件系统收到setxattr调用请求时,对key命令进行解析,如果发现是SET_DATAFILE_GC命令,则对地址信息表对value进行解析,地址信息表格式及内存如图3所示。
图3示意性示出了根据本公开实施例的块地址信息表。
如图3所示,根据本公开的实施例,该块地址信息表中包括头信息、块地址信息和全路径名称。头信息例如可以包括intsegmentCount、ino、和FileNameLength等信息,块地址信息例如可以包括offset、length等信息,全路径名称例如可以包括File Name等信息。
具体地,扩展接口调用请求的实现程序如下:
通过在内核态文件系统中执行本公开实施例中从现有数据文件构建新数据文件的方法,由于回收空间时要保留的数据块实际上已经在磁盘上了,可以理解为在内核态文件系统中,数据文件元数据的数据块地址的重新排列过程。
图4示意性示出了根据本公开实施例的从现有数据文件构建新数据文件的系统400的框图,上述现有数据文件包括一个或多个数据块。
如图4所示,系统400包括获取模块410、确定模块420、和构建模块430。
获取模块410用于获取现有数据文件中要保留的数据块的描述信息和上述新数据文件的描述信息。根据本公开的实施例,获取模块410例如可以执行参考图2B的操作S201描述的操作。
确定模块420根据上述要保留的数据块的描述信息确定要保留的数据块的块地址。根据本公开的实施例,确定模块420例如可以执行参考图2B的操作S202描述的操作。
构建模块430根据上述要保留的数据块的块地址和上述新数据文件的描述信息构建新数据文件的元数据,上述新数据文件包括上述要保留的数据块。根据本公开的实施例,构建模块430例如可以执行参考图2B的操作S203描述的操作。
根据本公开的实施例,由于新数据文件的元数据中不包括那些要删除的数据块的块地址,即新数据文件中不包括那些要删除的数据块,从而实现了对数据块的删除。这个过程并不改变数据文件中数据块的存储位置,而是将其存储位置与新数掘文件相关联,可以避免大量数据块读写操作,显著节约了系统资源,提高了数据处理效率。
需要说明的是,本公开提供的一种从现有数据文件构建新数据文件的系统与一种从现有数据文件构建新数据文件的方法是相对应的,具体细节可参考上述对从现有数据文件构建新数据文件的方法的描述,在此不再赘述。
并且,可以理解的是,获取模块410、确定模块420以及构建模块430可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块410、确定模块420以及构建模块430中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,获取模块410、确定模块420以及构建模块430中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图5示意性示出了根据本公开实施例的另一种从现有数据文件构建新数据文件的系统的框图。
如图5所示,系统500包括存储器520和处理器510。存储器520存储有可执行指令。处理器510运行上述可执行指令,以执行上述从现有数据文件构建新数据文件的方法。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行参考图2B或图2C描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
存储器520,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,存储器可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。存储器的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
存储器520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行例如上面结合图2B或图2C所描述的方法流程及其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行例如上面结合图2B或图2C所描述的方法流程及其任何变形。
本公开的另一方面提供了一种计算机可读存储介质,包含用于执行上述从现有数据文件构建新数据文件的方法的可执行指令。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (9)

1.一种从现有数据文件构建新数据文件的方法,所述现有数据文件包括一个或多个数据块,所述方法包括:
获取现有数据文件中要保留的数据块的描述信息和所述新数据文件的描述信息;
根据所述要保留的数据块的描述信息确定要保留的数据块的块地址;以及
根据所述要保留的数据块的块地址和所述新数据文件的描述信息构建新数据文件的元数据,所述新数据文件包括所述要保留的数据块。
2.根据权利要求1所述的方法,其中,所述要保留的数据块的描述信息包括:
所述要保留的数据块的长度和在所述现有文件中的地址偏移量;以及/或者
所述要保留的数据块的块地址。
3.根据权利要求1所述的方法,其中:
所述新数据文件的描述信息包括所述新数据文件的inode和全路径名称;以及
所述构建新数据文件的元数据包括将所述新数据文件的inode和全路径名称与所述要保留的数据块的块地址相关联。
4.根据权利要求3所述的方法,其中:
所述新数据文件的描述信息包括所述新数据文件的inode和全路径名称;以及
将所述要保留的数据块的块地址与所述新数据文件的inode和文件名相关联包括:
根据所述要保留的数据块的块地址确定所述要保留的数据块的长度和在新数据文件中的地址偏移量;以及
将所述新数据文件的inode和全路径名称与所述要保留的数据块的长度和在新数据文件中的地址偏移量相关联。
5.根据权利要求1所述的方法,还包括,在构建所述新数据文件的元数据之后:
删除所述现有数据文件的元数据;并且/或者
删除所述现有数据文件中不需要保留的数据块内容;并且/或者
将所述现有数据文件中不需要保留的数据块标记为可删除。
6.根据权利要求1所述的方法,其中,所述方法由内核态文件系统执行。
7.根据权利要求6所述的方法,还包括接收扩展接口调用请求,所述扩展接口调用请求中包含所述要保留的数据块的描述信息和所述新数据文件的描述信息。
8.一种从现有数据文件构建新数据文件的系统,所述现有数据文件包括一个或多个数据块,所述系统包括:
获取模块,获取现有数据文件中要保留的数据块的描述信息和所述新数据文件的描述信息;
确定模块,根据所述要保留的数据块的描述信息确定要保留的数据块的块地址;以及
构建模块,根据所述要保留的数据块的块地址和所述新数据文件的描述信息构建新数据文件的元数据,所述新数据文件包括所述要保留的数据块。
9.一种从现有数据文件构建新数据文件的系统,所述现有数据文件包括一个或多个数据块,所述系统包括:
存储器,存储有可执行指令;以及
处理器,运行所述可执行指令,以执行根据权利要求1~7中任一项所述的方法。
CN201710211811.XA 2017-03-31 2017-03-31 从现有数据文件构建新数据文件的方法及系统 Active CN106991021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710211811.XA CN106991021B (zh) 2017-03-31 2017-03-31 从现有数据文件构建新数据文件的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710211811.XA CN106991021B (zh) 2017-03-31 2017-03-31 从现有数据文件构建新数据文件的方法及系统

Publications (2)

Publication Number Publication Date
CN106991021A true CN106991021A (zh) 2017-07-28
CN106991021B CN106991021B (zh) 2021-02-19

Family

ID=59414730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710211811.XA Active CN106991021B (zh) 2017-03-31 2017-03-31 从现有数据文件构建新数据文件的方法及系统

Country Status (1)

Country Link
CN (1) CN106991021B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032340A (zh) * 2019-12-24 2021-06-25 阿里巴巴集团控股有限公司 数据文件的合并方法、装置、存储介质及处理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629247A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 一种数据处理方法、装置和系统
CN104077409A (zh) * 2014-07-14 2014-10-01 北京龙存科技有限责任公司 一种基于重组文件元数据实现快速文件切割和合并的方法
US20150205815A1 (en) * 2010-12-14 2015-07-23 Commvault Systems, Inc. Distributed deduplicated storage system
CN105988891A (zh) * 2015-02-05 2016-10-05 浙江大华技术股份有限公司 一种磁盘数据修复方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150205815A1 (en) * 2010-12-14 2015-07-23 Commvault Systems, Inc. Distributed deduplicated storage system
CN102629247A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 一种数据处理方法、装置和系统
CN104077409A (zh) * 2014-07-14 2014-10-01 北京龙存科技有限责任公司 一种基于重组文件元数据实现快速文件切割和合并的方法
CN105988891A (zh) * 2015-02-05 2016-10-05 浙江大华技术股份有限公司 一种磁盘数据修复方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032340A (zh) * 2019-12-24 2021-06-25 阿里巴巴集团控股有限公司 数据文件的合并方法、装置、存储介质及处理器
CN113032340B (zh) * 2019-12-24 2024-05-14 阿里巴巴集团控股有限公司 数据文件的合并方法、装置、存储介质及处理器

Also Published As

Publication number Publication date
CN106991021B (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
US10303596B2 (en) Read-write control method for memory, and corresponding memory and server
CN109085997B (zh) 用于非易失性存储器的存储器高效持续键值储存
JP6362316B2 (ja) バッファ・プールをメモリ常駐型データのための常在インメモリ・ストレージとして用いた、ハイブリッド・テーブル実装のための方法、システム、およびコンピュータ・プログラム製品
US11874815B2 (en) Key-value storage device and method of operating the same
CN104699417B (zh) 数据储存装置以及其数据存取方法
US10877898B2 (en) Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
CN103279532B (zh) 多集合元素去重并标识所属集合的过滤系统及其方法
CN109416666A (zh) 具有压缩数据和标签的缓存
CN104461390A (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
US10296250B2 (en) Method and apparatus for improving performance of sequential logging in a storage device
CN103514210B (zh) 小文件处理方法及装置
WO2015145647A1 (ja) ストレージ装置とデータ処理方法及びストレージシステム
US20170124077A1 (en) Flash module provided with database operation unit, and storage device
WO2013152678A1 (zh) 元数据查询方法和装置
US10922234B2 (en) Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
CN104765575A (zh) 信息存储处理方法
CN105117351A (zh) 向缓存写入数据的方法及装置
US20210141721A1 (en) System and method for facilitating efficient utilization of nand flash memory
CN103955433A (zh) 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置
CN103399823A (zh) 业务数据的存储方法、设备和系统
CN104331453A (zh) 一种分布式文件系统及分布式文件系统的构建方法
CN104765574A (zh) 数据云端存储方法
CN103914483A (zh) 文件存储方法、装置及文件读取方法、装置
CN109407985B (zh) 一种数据管理的方法以及相关装置
CN104050057B (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