CN114416676A - 数据处理方法、装置、设备和存储介质 - Google Patents
数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114416676A CN114416676A CN202111564808.9A CN202111564808A CN114416676A CN 114416676 A CN114416676 A CN 114416676A CN 202111564808 A CN202111564808 A CN 202111564808A CN 114416676 A CN114416676 A CN 114416676A
- Authority
- CN
- China
- Prior art keywords
- data
- fingerprint
- file
- name
- link
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据处理方法、装置、设备和存储介质,该方法包括:接收用户触发的第一数据写入请求,第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容;确定与数据内容对应的数据指纹;若未在存储***内设置的设定路径下查找到以数据指纹命名的文件,则在设定路径下创建以数据指纹命名的文件并将数据内容存储到与数据指纹命名的文件对应的物理地址中;生成指向数据指纹命名的文件的第一链接,第一链接对应的文件名根据第一数据写入路径和第一数据名确定。通过直接利用底层平台自带的树形索引架构对元数据进行管理,简化了元数据的结构,避免了额外的元数据管理开销。同时,简化了整个重删处理逻辑。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。
背景技术
随着计算机技术和互联网技术的快速发展,用户对高性能存储有着越来越大的需求,存储的成本也越来越高。在数据存储***中,元数据是信息存储的基础,是描述数据的数据,比一般意义上的数据范畴更加广泛的数据,存储有指纹哈希值、物理地址、逻辑地址、数据的引用计数等信息。
通过重复数据删除技术,可以自动去除较粗粒度的重复数据,达到降低数据存储数量,节省存储空间的目标。而在重复数据删除的过程中,如何有效地管理元数据成为一个突出问题。传统数据重删技术方案中,访问数据时需要多次读取指纹索引,并且元数据的指纹信息和指纹索引都存储在磁盘中,数据量难以完整放入内存,从而需要多次访问磁盘。同时,传统重删技术往往在应用层中管理元数据的索引和缓存,需要在应用层构建数据库***或在磁盘中管理索引结构来进行重删元数据的管理。
虽然传统方案可以实现去除重复数据,但是由于在应用层实现对元数据的管理,增加了处理逻辑的复杂性,并且在检索和更新元数据的过程中需要多次访问磁盘,也会增加元数据管理的开销。
发明内容
本发明实施例提供一种数据处理方法、装置、设备和存储介质,实现了简化的重删元数据管理逻辑,从而简化了数据重删过程。
第一方面,本发明实施例提供一种数据处理方法,应用于存储***,所述方法包括:
接收用户触发的第一数据写入请求,所述第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容;
确定与所述数据内容对应的数据指纹;
若未在所述存储***内设置的设定路径下查找到以所述数据指纹命名的文件,则在所述设定路径下创建以所述数据指纹命名的文件;
将所述数据内容存储到与所述数据指纹命名的文件对应的物理地址中;
生成指向所述数据指纹命名的文件的第一链接,所述第一链接对应的文件名根据所述第一数据写入路径和所述第一数据名确定。
第二方面,本发明实施例提供一种数据处理装置,所述装置包括:
接收模块,用于接收用户触发的第一数据写入请求,所述第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容;
确定模块,用于确定与所述数据内容对应的数据指纹;
创建模块,用于若未在所述存储***内设置的设定路径下查找到以所述数据指纹命名的文件,则在所述设定路径下创建以所述数据指纹命名的文件;
存储模块,用于将所述数据内容存储到与所述数据指纹命名的文件对应的物理地址中;
生成模块,用于生成指向所述数据指纹命名的文件的第一链接,所述第一链接对应的文件名根据所述第一数据写入路径和所述第一数据名确定。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的数据处理方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的数据处理方法。
在本发明实施例提供的数据处理方案中,应用于存储***内,首先接收用户触发的第一数据写入请求,其中第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容,然后,计算数据内容对应的指纹信息,从而确定出与数据内容对应的数据指纹,接着判断是否有以数据指纹命名的文件存在存储***内设置的设定路径中,若未在存储***内设置的设定路径下查找到以数据指纹命名的文件,则在设定路径下创建以数据指纹命名的文件,并将数据内容存储到与数据指纹命名的文件对应的物理地址中,最后生成指向数据指纹命名的文件的第一链接,其中第一链接对应的文件名根据第一数据写入路径和第一数据名确定。
在本发明实施例中,将数据内容存储在指纹命名文件对应的物理地址中,生成指向数据指纹命名的文件的链接,用户可以通过自己生成的链接对同一数据内容进行访问等处理,这样就无需额外地重复存储元数据,就可以利用存储***本身的链接功能来实现对元数据的管理,从而避免额外的元数据管理开销。并且,生成的以数据指纹命名的文件都保存在存储***内的设定路径下,这样读取数据时不再需要多次检索元数据,从而简化了元数据的结构。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种操作***的组成示意图;
图2为本发明实施例提供的一种数据处理方法的流程图;
图3为本方明实施例提供的一种数据处理方法的应用示意图;
图4为本发明实施例提供的数据查询处理方法的流程图;
图5为本发明实施例提供的数据删除处理方法的流程图;
图6为本发明实施例提供的一种数据处理装置的结构示意图;
图7为与图6所示实施例提供的数据处理装置对应的的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
随着信息技术的发展,产生了海量的数据,而这些海量数据中又会有大量的数据都是重复数据,若在存储的过程中对这些海量数据一一进行存储,将会占据很大的存储空间,造成存储资源的浪费。同时在数据全量备份的过程中,也会出现大量重复数据重复保存在磁盘中,占据大量的存储空间的现象。针对以上情形,通常采用重删技术,自动去除较粗粒度的重复数据,解决内容完全相同的多段数据重复存储的情况。但是,重删技术是以计算能力为代价换取存储空间的技术,那么在利用重删技术节省存储空间的同时,要尽可能使之付出的算力代价越小越好,而如何高效地管理元数据成为突破瓶颈的关键。本发明实施例提供了解决方案。
图1为本发明实施例提供的一种存储***的组成示意图,如图1所示,该***包括设定路径、若干数据块。其中设定路径包括用户命名路径和指纹索引路径,其中用户命名路径中的文件用户是可见的,指纹索引路径中的文件用户不可见;数据块可以部署在磁盘中,用于存放数据内容的,其中若干数据块比如包括图1中示意的数据块1、数据块2、…、数据块N。
指纹索引路径下的文件以数据指纹命名的形式进行保存,以数据指纹命名的文件的形式进行访问,其中,数据指纹命名的文件用于存放文件属性以及数据内容存储信息。该路径可以用于判断数据是否已经在存储***中存储过。用户命名路径是指用户可以通过自己命名的文件来进行数据的访问。其真实的数据内容存储在数据块中。
存储***中包含了很多路径,比如本地文件地址,可以提前在存储***中设置一个或一组特定的路径,该设定路径只用于存放以数据指纹命名的文件。当需要限制每个目录下的文件数量时,可以按照文件大小划分子目录,或按文件名起始的几个字母对子目录分级,形成一个树型层次结构,可参考Linux下的大型目录组织方式,例如/usr/share/terminfo/目录结构。其设定目录是对用户不可见的。查找某一数据内容是否存在时,可以通过在设定路径中查找是否存在有文件名为该数据内容对应的数据指纹。也就是说,可以通过在设定目录中查找是否存在某一文件名的方式来判断某一数据内容是否已经存在。由此可知,在存储***内设置的设定路径可以清晰快速地查询数据内容是否存在。
在设定目录下创建的文件都是以数据指纹命名的实际的数据内容存储在该数据指纹命名的文件对应的物理地址中。
在实际应用中,当用户触发一个数据写入请求时,该请求中包括数据写入路径、数据名以及数据内容,当存储***接收到该数据写入请求后,首先在存储***内部根据接收到的数据内容计算出该数据内容对应的数据指纹,确定数据内容对应的数据指纹的方法可以按照现有技术的方法实施即可,此处不做限定。然后在设定路径下查找是否有该数据指纹命名的文件,若在设定路径下未找到以该数据指纹命名的文件,则在该设定路径下创建一个新的文件,该文件名为接收到的数据内容对应的数据指纹,并将数据内容存储在该指纹命名的文件对应的物理地址中。最后,生成一个指向指纹命名文件的链接,该链接对应的文件名是根据数据名和数据写入路径确定的,也可以由用户进行设置,链接的形式根据存储***的具体架构确定,可以是硬链接(hardlink)、软链接(symlink)或网络链接(URL)等,还可以针对特定领域自定义链接。
在这样的存储***架构下,对于用户来说,并不需要感知存储***的内部组成以及数据存储的工作过程,对于用户请求的存储路径下存储的是真实数据内容还是指向到真实数据内容的链接是不关心的,只知道数据内容存储在用户设置的路径下。也就是说,本实施例中的数据处理方法是在存储***内完成的,对于用户来说,只关心该数据内容是否准确存储,对于存储***内的数据内容的具体储存方式是不需要关心的。
以上对实现数据处理所基于的操作***进行了简单介绍,下面对基于该存储***执行的数据处理过程进行示例性说明。
图2为本发明实施例提供的一种数据处理方法的流程图,该方法应用于存储***,如图2所示,该方法可以包括如下步骤:
201、接收用户触发的第一数据写入请求,第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容。
202、确定与数据内容对应的数据指纹。
203、在存储***内设置的设定路径下查找以数据指纹命名的文件,若未查找到,则执行步骤204-206,若查找到,则直接执行步骤206。
204、在设定路径下创建以数据指纹命名的文件。
205、将数据内容存储到与数据指纹命名的文件对应的物理地址中。
206、生成指向数据指纹命名的文件的第一链接,第一链接对应的文件名根据第一数据写入路径和第一数据名确定。
对数据进行处理的目的,比如可以是对某一数据内容进行存储、读取数据内容、删除数据内容等。本发明实施例中,第一数据可以是数据块、文件、图片、视频等数据内容,那么对应的第一数据写入请求可以保存一个数据块,保存一份文件、保存一张图片或者保存一段视频内容。
对于第一数据要保存在磁盘哪个位置以及要上传的具体内容,对于用户端来说是已知的,并且用户向操作***触发第一数据写入请求前关于第一数据的相关信息是已确定的。因此第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容。
比如当用户想要存储一份文件,对于用户端来说,用户可以直接在想要把文件保存在存储***的具体路径上建立一个新的文件,将需要保存的文件内容保存在该文件内,并按照用户实际需求命名文件名,就完成了一份文件的保存。这个过程只是用户看到和进行的操作,其实具体的操作是在存储***内完成的。那么用户想要将文件保存在存储***哪个位置以及文件的命名都是由用户进行设置的,用户只需要将这份文件、文件命名,以及需要保存到的位置上传到存储***中即可。当用户想要保存一份文件,对于存储***来说,需要知道用户需要保存的文件的具体路径即文件内容具体保存在存储***的哪个具体路径上,以及文件的具体内容等信息,因此用户进行存储的操作时,会自动向存储***触发一个文件写入请求,并且文件写入请求中会携带有文件写入路径、文件名以及文件内容。
在实际应用中,用户不能感知到存储***内的具体工作过程,那么在用户保存数据内容时,可能会出现该数据内容多次已经在存储***内进行了存储,如果多次存储相同的数据内容,不仅会占有大量的存储空间,也会造成存储空间的浪费。为了避免这种现象的出现,引入了重删技术,重删技术的本质是消除内容完全相同的多段数据重复出现。
那么为了避免在操作***内多次存储相同的数据内容的情况,在用户进行数据存储时,操作***会对该数据内容是否已存在进行检索。而如何比较两块数据内容相同,通常采用对比两块数据对应的数据指纹,因为每一个数据块都有与其一一对应的数据指纹,可以将数据指纹作为一个数据块的唯一标识,那么对比两块数据内容是否相同可以通过对应数据对应的数据指纹是否一样来进行判断。
根据接收到的数据内容计算数据内容对应的数据指纹,确定数据内容对应的数据指纹的方法可以按照现有技术的方法即可,此处不做限定。然后,在数据指纹索引中查找该指纹,若该数据指纹不存在,说明该数据内容未保存过,即可保存该数据内容,并将保存地址和该指纹的对应关系存放在数据指纹索引中;若在索引中查到该数据指纹,就无需再存一次,而是取出数据指纹索引中该指纹对应的记录,把当前数据内容存放的地址指向已经存在的原始数据存放地址。采用在数据指纹索引中查找指纹的方法,其数据指纹索引结构很复杂,管理开销也很大,对存储***的性能也有很大的影响。为了解决这个问题,本发明实施例给出了解决方案,不再查找该数据指纹,而是查找该数据指纹命名的文件,也就不再需要管理复杂的数据指纹索引结构。
在本发明实施例中,数据内容存储在以数据指纹命名的文件中,通过在设定的路径下判断是否包含以数据指纹命名的文件来判断该数据内容是否已存在。
具体地,当用户触发一个数据写入请求时,存储***接收数据写入请求,数据写入请求中包括第一数据写入路径、第一数据名和数据内容。根据接收到的数据内容,计算数据内容对应的数据指纹,根据确定的数据指纹在存储***内设置的设定路径下查找是否存在以该数据指纹命名的文件,若在存储***内设定路径下查找到以该数据指纹命名的文件,则直接生成指向数据指纹命名的文件的链接,链接对应的文件名根据第一数据写入路径和第一数据名确定,链接的形式根据存储***的具体架构确定,可以是硬链接、软链接或网络链接等,还可以针对特定领域自定义链接。
在本实施例中,当在设定路径下存在以数据指纹命名的文件时,直接生成指向该指纹命名文件中的链接,不再需要再一次保存数据内容。通过链接的方式简化了元数据的管理。对每一个数据指纹命名文件生成一个链接,其引用计数值就会进行加一处理。
根据确定出的数据指纹在存储***内设置的设定路径下查找是否已存在以数据指纹命名的文件,还存在未在存储***内设置的设定路径下查找到以数据指纹命名的文件的情况。若未查找到以数据指纹命名的文件,则在设定路径下创建以数据指纹命名的文件,将数据内容存储到与数据指纹命名的文件对应的物理地址中,最后生成指向数据指纹命名文件的第一链接,第一链接对应的文件名是根据第一数据写入路径和第一数据名确定的,并且在存储***内对指纹命名文件每生成一个链接,其引用计数值要进行加一处理。
正如上文所述,存储***内可以有多种路径,专门在存储***内设置一个或一组特定的路径即设定路径,该设定路径用于存放以数据指纹命名的文件。这样设置的设定路径可以起到索引的作用,在设定路径中通过查找是否存在数据指纹命名的文件就可以确定是否已经存储过此数据内容。
另外,生成指向数据指纹命名文件的第一链接,第一链接对于用户是可见的,用户可以直接通过第一链接对数据内容进行访问、删除等操作。相当于通过第一链接简化了元数据的结构以及元数据的管理。在本发明实施例中,第一链接的形式根据存储***的具体架构确定,可以是硬链接、软链接或网络链接等,还可以针对特定领域自定义链接。采用生成指向数据指纹命名的文件的链接,可以实现一个数据内容对应多个文件名,也就是说同一数据内容可以生成多个链接,生成的多个链接指向同一个数据指纹命名文件。不同的用户可以通过自己生成的链接对同一数据内容进行访问等处理,这样就无需额外地重复存储元数据,就可以利用存储***本身的链接功能来实现对元数据的管理,从而避免额外的元数据管理开销。
综上,由于用户无法得知磁盘中存在有哪些数据内容,当用户想要对一数据内容进行存储时,很可能会造成大量重复数据多次重复存储的情况发生,为了避免这种现象的发生,在对数据内容存储前,首先存储***需要计算出该数据内容对应的数据指纹,再在存储***内设置的设定路径下查找是否有数据指纹命名的文件,从而判断存储***中是否已存在该数据内容。将数据内容存储在指纹命名文件对应的物理地址中,生成指向数据指纹命名的文件的链接,这样可以通过存储***本身的链接功能对元数据进行管理,避免了额外的元数据管理模块,简化了元数据结构,从而简化了重删逻辑。
本实施例中未详细介绍的其他步骤的执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
以上实施例中在对数据内容进行存储时,通过在存储***内设置的设定路径下查找是否存在以数据指纹命名的文件,并且在该存储***内的设定路径下未发现该数据指纹命名的文件,然后进行存储的情形。但是实际上,有可能存在该数据内容已经存在,在存储***内设定的路径下查找到该数据指纹命名的文件的情形。针对该情形,可以采用如下图3所示实施例提供的方案。
为便于理解,结合图3中的一种存储照片的场景进行示例性说明。假设用户A想要在磁盘中将全家福照片保存下来,用户A首先会向存储***提交一个上传照片保存的请求,上传的照片保存请求中包括全家福照片、照片名“全家福”以及要保存在存储***的某个路径中,当存储***收到用户A提交的照片保存请求时,首先根据该全家福照片内的数据计算出其对应的指纹信息,假设其指纹为abc,则检查在存储***中设定路径(如/***/指纹/)是否有abc命名的文件,若未发现/***/指纹/abc命名的文件,则在设定路径下创建一个新的文件,新的文件名为abc,并在/***/指纹/abc文件中保存全家福照片的信息,最后生成指向文件/***/指纹/abc的链接,用户通过链接可以直接访问文件/***/指纹/abc对应的物理地址中保存的全家福照片,并且该链接的命名根据照片存储路径和照片名来确定出为“用户A/全家福”。若用户B也为家庭中的一员,也想要将这张全家福保存下来,用户B首先会向存储***上传一个照片保存请求,上传的照片保存请求中包括全家福照片、照片名“我的全家福”以及要保存在存储***的某个路径中,当存储***收到用户B提交的照片保存请求时,首先根据该全家福照片计算出其对应的指纹信息,假设其指纹为abc,则在存储***中设定路径/***/指纹/下是否有abc命名的文件,若在设定路径/***/指纹/下发现abc命名的文件,则直接生成指向文件/***/指纹/abc的链接即可。用户B通过链接可以直接访问文件/***/指纹/abc对应的物理地址中保存的全家福照片,并且该链接的命名根据照片存储路径和照片名来确定出为“用户B/我的全家福”。
上述举例的实施例中描述的都是数据存储场景,除了上述举例的场景外,本发明实施例提供的数据处理方法还可以适用于数据查询场景中,以实现数据的查询。为了更好的理解,结合图4进行示例性说明。
图4为本发明实施例提供的数据查询处理方法的流程图,该方法应用于存储***,如图4所示,该方法可以包括如下步骤:
401、接收用户触发的数据查询请求,数据查询请求中包括第一数据名。
402、确定与第一数据名对应的第一链接。
403、从与第一链接指向的数据指纹命名的文件对应的物理地址中获取的数据内容。
404、输出数据内容。
对用户的数据内容存储后,当用户想要读取存储后的数据内容是,可以直接通过存储数据生成的链接直接读取数据内容。
具体地,当用户有读取存储的第一数据内容的需求时,会向存储***发出数据查询请求,数据查询请求中包括要查询的第一数据名,存储***接收到用户触发的数据查询请求后,根据要查询的第一数据名确定出与第一数据名对应的第一链接,根据确定出的第一链接中可以确定出第一链接指向的数据指纹命名的文件,然后从与第一链接指向的数据指纹命名的文件对应的物理地址中获取的数据内容,最后将获取的数据内容进行输出。
综上,在进行数据查询处理时,直接读取第一数据名对应的第一链接就可以获得对应的数据内容,不再需要在索引表中查找逻辑地址与数据指纹以及逻辑地址与物理地址的对应关系的记录,根据索引表中的对应关系的记录情况,查找到要读取的数据内容,简化了整个数据读取查询的过程。
本实施例中未详细介绍的其他步骤的执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
上述实施例对数据查询进行了详细的描述,用户除了有数据存储需求、数据查询需求外,当用户发现保存的数据内容没有用的时候将其删除,对于进行重删存储后的数据删除,可以通过直接对用户可见的文件或对象进行删除,不需要再查询删除的数据文件为真实存储数据内容文件还是指向数据内容的文件,结合图5进行说明数据删除的过程。
如图5为本发明实施例提供的数据删除处理方法的流程图,该方法应用于存储***,如图5所示,该方法可以包括如下步骤:
501、接收用户触发的数据删除请求,数据删除请求中包括第一数据名。
502、确定与第一数据名对应的第一链接。
503、删除第一链接。
当用户对于已经存储的数据内容有删除需求时,首先会触发一个数据删除请求,数据请求中包括想要进行删除的数据内容对应的第一数据名,存储***接收到用户触发的数据删除请求后,根据数据删除请求中的第一数据名确定出与第一数据名对应的第一链接,直接将第一链接删除,并对此链接指向的指纹命名文件对应的引用计数值进行减一处理,当一个链接指向的指纹命名文件对应的引用计数值为1时,此时用户端不再有引用该文件对应的数据内容,就可以将指纹命名文件下保存的原数据内容进行彻底删除。
在本发明实施例中,对于一个已经存储的数据内容,只需要直接将其对应的链接以及该链接下的文件删除就可以了,不再需要从指纹索引中查找引用地址,这样使得整个删除过程得到了明显的简化。
综上,在本发明中不管是数据查询请求的处理还是数据删除请求的处理过程,都可以直接根据数据内容存储的过程中生成的第一链接直接查询数据或者直接删除数据,采用链接的方式简化了数据查询和数据删除的过程。
本实施例中未详细介绍的其他步骤的执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
以下将详细描述本发明的一个或多个实施例的数据处理装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的一种数据处理装置的结构示意图,该装置位于存储***中,如图7所示,该装置包括:接收模块11、确定模块12、创建模块13、存储模块14、生成模块15。
接收模块11,用于接收用户触发的第一数据写入请求,所述第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容。
确定模块12,用于确定与所述数据内容对应的数据指纹。
创建模块13,用于若未在所述存储***内设置的设定路径下查找到以所述数据指纹命名的文件,则在所述设定路径下创建以所述数据指纹命名的文件。
存储模块14,用于将所述数据内容存储到与所述指纹命名文件对应的物理地址中。
生成模块15,用于生成指向所述指纹命名文件的第一链接,所述第一链接对应的文件名根据所述第一数据写入路径和所述第一数据名确定。
数据处理装置还包括第二生成模块,用于接收用户触发的第二数据写入请求,所述第二数据写入请求中包括第二数据写入路径、第二数据名和所述数据内容。若在所述设定目录下查找到以所述数据内容对应的所述数据指纹命名的文件,则生成指向所述指纹命名文件的第二链接,所述第二链接对应的文件名根据所述第二数据写入路径和所述第二数据名确定。
该数据处理装置还包括还包括计数模块,用于对所述指纹命名文件对应的引用计数值进行加一处理。
该数据处理装置还包括还包括数据查询模块,用于接收用户触发的数据查询请求,所述数据查询请求中包括所述第一数据名;确定与所述第一数据名对应的所述第一链接;从与所述第一链接指向的所述指纹命名文件对应的所述物理地址中获取的所述数据内容;输出所述数据内容。
该数据处理装置还包括还包括数据删除模块,用于接收用户触发的数据删除请求,所述数据删除请求中包括所述第一数据名;确定与所述第一数据名对应的所述第一链接;删除所述第一链接。
可选地,所述数据删除模块还用于,对所述指纹命名文件对应的引用计数值进行减一处理。
图6所示装置可以执行前述实施例中数据处理执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图6所示数据处理装置的结构可实现为一电子设备,如图7所示,该电子设备可以包括:处理器21、存储器22、通信接口23。其中,存储器22上存储有可执行代码,当所述可执行代码被处理器21执行时,使处理器21至少可以实现如前述实施例中数据处理方法。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的数据处理方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据处理方法,其特征在于,应用于存储***,包括:
接收用户触发的第一数据写入请求,所述第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容;
确定与所述数据内容对应的数据指纹;
若未在所述存储***内设置的设定路径下查找到以所述数据指纹命名的文件,则在所述设定路径下创建以所述数据指纹命名的文件;
将所述数据内容存储到与所述数据指纹命名的文件对应的物理地址中;
生成指向所述数据指纹命名的文件的第一链接,所述第一链接对应的文件名根据所述第一数据写入路径和所述第一数据名确定。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户触发的第二数据写入请求,所述第二数据写入请求中包括第二数据写入路径、第二数据名和数据内容;
确定与所述数据内容对应的数据指纹;
若在所述设定路径下查找到以所述数据内容对应的所述数据指纹命名的文件,则生成指向所述数据指纹命名文件的第二链接,所述第二链接对应的文件名根据所述第二数据写入路径和所述第二数据名确定。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述数据指纹命名文件对应的引用计数值进行加一处理。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户触发的数据查询请求,所述数据查询请求中包括所述第一数据名;
确定与所述第一数据名对应的所述第一链接;
从与所述第一链接指向的所述数据指纹命名的文件对应的所述物理地址中获取的所述数据内容;
输出所述数据内容。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户触发的数据删除请求,所述数据删除请求中包括所述第一数据名;
确定与所述第一数据名对应的所述第一链接;
删除所述第一链接。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
对所述数据指纹命名文件对应的引用计数值进行减一处理。
7.一种数据处理装置,其特征在于,包括:
接收模块,用于接收用户触发的第一数据写入请求,所述第一数据写入请求中包括第一数据写入路径、第一数据名和数据内容;
确定模块,用于确定与所述数据内容对应的数据指纹;
创建模块,用于若未在存储***内设置的设定路径下查找到以所述数据指纹命名的文件,则在所述设定路径下创建以所述数据指纹命名的文件;
存储模块,用于将所述数据内容存储到与所述数据指纹命名的文件对应的物理地址中;
生成模块,用于生成指向所述数据指纹命名的文件的第一链接,所述第一链接对应的文件名根据所述第一数据写入路径和所述第一数据名确定。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二生成模块,用于接收用户触发的第二数据写入请求,所述第二数据写入请求中包括第二数据写入路径、第二数据名和数据内容;确定与所述数据内容对应的数据指纹;若在所述设定路径下查找到以所述数据内容对应的所述数据指纹命名的文件,则生成指向所述数据指纹命名文件的第二链接,所述第二链接对应的文件名根据所述第二数据写入路径和所述第二数据名确定。
9.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至6中任一项所述的数据处理方法。
10.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器执行如权利要求1至6中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111564808.9A CN114416676A (zh) | 2021-12-20 | 2021-12-20 | 数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111564808.9A CN114416676A (zh) | 2021-12-20 | 2021-12-20 | 数据处理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416676A true CN114416676A (zh) | 2022-04-29 |
Family
ID=81267591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111564808.9A Pending CN114416676A (zh) | 2021-12-20 | 2021-12-20 | 数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416676A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115988002A (zh) * | 2023-02-16 | 2023-04-18 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
-
2021
- 2021-12-20 CN CN202111564808.9A patent/CN114416676A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115988002A (zh) * | 2023-02-16 | 2023-04-18 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
CN115988002B (zh) * | 2023-02-16 | 2023-08-15 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8843454B2 (en) | Elimination of duplicate objects in storage clusters | |
US8683112B2 (en) | Asynchronous distributed object uploading for replicated content addressable storage clusters | |
US8706710B2 (en) | Methods for storing data streams in a distributed environment | |
CN106484906B (zh) | 一种分布式对象存储***闪回方法及装置 | |
US20120330909A1 (en) | System and Method for Storing Data Streams in a Distributed Environment | |
CN110647497A (zh) | 一种基于hdfs的高性能文件存储与管理*** | |
GB2439578A (en) | Virtual file system with links between data streams | |
US8095678B2 (en) | Data processing | |
CN106484820B (zh) | 一种重命名方法、访问方法及装置 | |
KR101078287B1 (ko) | 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN113535670B (zh) | 一种虚拟化资源镜像存储***及其实现方法 | |
US20080005524A1 (en) | Data processing | |
CN112416880A (zh) | 一种基于实时归并的海量小文件存储性能优化方法及装置 | |
Zhai et al. | Hadoop perfect file: A fast and memory-efficient metadata access archive file to face small files problem in hdfs | |
CN112306957A (zh) | 获取索引节点号的方法、装置、计算设备和存储介质 | |
CN110633261A (zh) | 一种图片存储方法、图片查询方法及装置 | |
CN114610680A (zh) | 分布式文件***元数据管理方法、装置、设备及存储介质 | |
CN114416676A (zh) | 数据处理方法、装置、设备和存储介质 | |
WO2024022330A1 (zh) | 一种基于文件***的元数据管理方法及其相关设备 | |
CN112860628A (zh) | 一种文件***规模管理方法及*** | |
CN113127717A (zh) | 一种密钥检索方法和*** | |
CN112131194A (zh) | 一种只读文件***的文件存储控制方法及装置、存储介质 | |
GB2439575A (en) | Replacing data with references when freezing data | |
CN117873967B (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 |