CN114936010A - 数据处理方法、装置、设备及介质 - Google Patents
数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114936010A CN114936010A CN202210855247.6A CN202210855247A CN114936010A CN 114936010 A CN114936010 A CN 114936010A CN 202210855247 A CN202210855247 A CN 202210855247A CN 114936010 A CN114936010 A CN 114936010A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- storage
- written
- target
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、装置、设备及介质。通过接收用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改,根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,在数据处理量大于或等于第一设定阈值时,将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。上述过程基于通过数据处理过程所生成的待写入数据的数据量来进行存储方式的选择,以便在文件大小发生变化时,可以基于文件当前的大小来选择更为高效的存储方式,从而可以提高存储空间的利用效率。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及介质。
背景技术
网络附属存储(Network Attached Storage,NAS)作为一种连接在网络上、具备数据存储功能的专用数据存储设备,可以实现存储设备与服务器的分离,以便集中管理数据,从而可以释放带宽、提高设备性能、提高数据处理效率。相关技术中,在通过NAS对数据进行存储时,可以将数据存储在固定大小的存储块(Block)中,并为所存储的数据维护一个数据布局(Layout)索引,以便通过Layout索引来描述数据的存储信息,如存储地址等。
然而,当今各行各业每天都有海量的数据产生,这些数据中有很大一部分是大小在4千字节(KB)以下的小文件,因而,海量小文件逐渐成为NAS的一个重要应用场景。为了提高海量小文件场景下NAS的存储效率,可以将小文件嵌入到元数据中,以实现对小文件的存储。
但是,NAS中所存储的文件大小是动态变化的,原先的小文件随着数据的写入可能会变成大文件,而原先的大文件也可能由于删除数据,也即是截断(Truncate)变成小文件,因此,亟需一种数据处理方法,以便在文件大小发生变化时,基于文件当前的大小来选择更为高效的存储方式。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据处理方法、装置、设备及介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种数据处理方法,应用于网络存储设备,网络存储设备包括前端机、元数据服务器和存储服务器;
该方法包括:
通过前端机接收数据处理请求,数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在数据处理量大于或等于第一设定阈值时,将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,数据处理请求为数据写入请求或数据删除请求,其中,数据写入请求用于在位于元数据服务器的目标数据文件中进行数据写入,在数据处理请求为数据写入请求的情况下,数据处理请求携带待处理数据,数据删除请求用于在位于存储服务器的目标数据文件中进行数据删除;
根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,包括下述任一项:
根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置;
根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置。
在本说明书的一些实施例中,目标数据文件的数据量小于第一设定阈值;
根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置,包括下述任一项:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件;
在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据,基于待写入数据的数据量,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,包括:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息,索引信息用于指示数据的存储位置;
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息。
在本说明书的一些实施例中,将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息,包括:
将目标数据存储至位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件之后,该方法还包括下述至少一项:
将目标数据、第一索引信息和第一存储文件的属性信息存储至位于存储服务器中的日志文件;
将第一索引信息、第二索引信息和第一存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据,包括:
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
基于待处理数据和目标数据,生成待写入数据。
在本说明书的一些实施例中,基于待写入数据的数据量,将待写入数据存储至目标存储位置,包括:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息;
在待写入数据的数据量小于第一设定阈值的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息,包括:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据写入位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息之后,该方法还包括下述至少一项:
将待写入数据、待写入数据的写入地址信息和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
将第二索引信息和第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,在待写入数据的数据量小于第一设定阈值的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件之后,该方法还包括下述至少一项:
将待写入数据和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
将第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,目标数据文件的数据量大于或等于第一设定阈值;
根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置,包括:
基于数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据;
在待写入数据的数据量小于第一设定阈值的情况下,基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置,包括下述任一项:
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号不同的情况下,将待写入数据存储至位于存储服务器中的第一存储文件;
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号相同的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,基于数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据之后,该方法还包括:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件。
根据本说明书一个或多个实施例的第二方面,提出了一种数据处理装置,应用于网络存储设备,网络存储设备包括前端机、元数据服务器和存储服务器;
该装置包括:
接收模块,用于通过前端机接收数据处理请求,数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
存储模块,用于根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在数据处理量大于或等于第一设定阈值时,将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,数据处理请求为数据写入请求或数据删除请求,其中,数据写入请求用于在位于元数据服务器的目标数据文件中进行数据写入,在数据处理请求为数据写入请求的情况下,数据处理请求携带待处理数据,数据删除请求用于在位于存储服务器的目标数据文件中进行数据删除;
存储模块,在用于根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置时,用于下述任一项:
根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置;
根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置。
在本说明书的一些实施例中,目标数据文件的数据量小于第一设定阈值;
存储模块,在用于根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置时,用于下述任一项:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件;
在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据,基于待写入数据的数据量,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,存储模块,在用于在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件时,用于:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息,索引信息用于指示数据的存储位置;
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息。
在本说明书的一些实施例中,存储模块,在用于将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息时,用于:
将目标数据存储至位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,存储模块,还用于将目标数据、第一索引信息和第一存储文件的属性信息存储至位于存储服务器中的日志文件;
存储模块,还用于将第一索引信息、第二索引信息和第一存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,存储模块,在用于在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据时,用于:
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
基于待处理数据和目标数据,生成待写入数据。
在本说明书的一些实施例中,存储模块,在用于基于待写入数据的数据量,将待写入数据存储至目标存储位置时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息;
在待写入数据的数据量小于第一设定阈值的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,存储模块,在用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据写入位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,存储模块,还用于将待写入数据、待写入数据的写入地址信息和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
存储模块,还用于将第二索引信息和第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,存储模块,还用于将待写入数据和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
存储模块,还用于将第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,目标数据文件的数据量大于或等于第一设定阈值;
存储模块,在用于根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置时,用于:
基于数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据;
在待写入数据的数据量小于第一设定阈值的情况下,基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,存储模块,在用于基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置时,用于下述任一项:
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号不同的情况下,将待写入数据存储至位于存储服务器中的第一存储文件;
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号相同的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,存储模块,还用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件。
根据本说明书一个或多个实施例的第三方面,提出了一种数据处理系统,应用于网络存储设备,数据处理系统包括前端机、元数据服务器、垃圾回收服务器和存储服务器;
前端机,用于接收数据处理请求,数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
前端机、元数据服务器和垃圾回收服务器,用于根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在数据处理量大于或等于第一设定阈值时,将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件;
存储服务器,用于通过第一存储文件对待写入数据进行存储;
元数据服务器,还用于通过第二存储文件对待写入数据进行存储。
在本说明书的一些实施例中,数据处理请求为数据写入请求或数据删除请求,其中,数据写入请求用于在位于元数据服务器的目标数据文件中进行数据写入,在数据处理请求为数据写入请求的情况下,数据处理请求携带待处理数据,数据删除请求用于在位于存储服务器的目标数据文件中进行数据删除;
前端机和元数据服务器,用于在数据处理请求为数据写入请求的情况下,根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置;
垃圾回收服务器,用于根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置。
在本说明书的一些实施例中,前端机,用于在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件;
元数据服务器,用于在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据,基于待写入数据的数据量,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,前端机,在用于在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件时,用于:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息,索引信息用于指示数据的存储位置;
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息。
在本说明书的一些实施例中,前端机,在用于将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息时,用于:
将目标数据存储至位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,元数据服务器,还用于将目标数据、第一索引信息和第一存储文件的属性信息存储至位于存储服务器中的日志文件;
元数据服务器,还用于将第一索引信息、第二索引信息和第一存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,元数据服务器,在用于在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据时,用于:
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
基于待处理数据和目标数据,生成待写入数据。
在本说明书的一些实施例中,元数据服务器,在用于基于待写入数据的数据量,将待写入数据存储至目标存储位置时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息;
在待写入数据的数据量小于第一设定阈值的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,元数据服务器,在用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据写入位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,元数据服务器,还用于将待写入数据、待写入数据的写入地址信息和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
元数据服务器,还用于将第二索引信息和第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,元数据服务器,还用于将待写入数据和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
元数据服务器,还用于将第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,目标数据文件的数据量大于或等于第一设定阈值;
垃圾回收服务器,在用于根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置时,用于:
基于数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据;
在待写入数据的数据量小于第一设定阈值的情况下,基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,垃圾回收服务器,在用于基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置时,用于下述任一项:
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号不同的情况下,将待写入数据存储至位于存储服务器中的第一存储文件;
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号相同的情况下,将待写入数据将待写入数据发送给元数据服务器,元数据服务器用于将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,垃圾回收服务器,还用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件。
根据本说明书一个或多个实施例的第三方面,提出了一种网络存储设备,该网络存储设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器通过运行可执行指令以实现上述第一方面以及第一方面中任一实施例所提供的数据处理方法所执行的操作。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,指令被处理器执行时实现上述第一方面以及第一方面中任一实施例所提供的数据处理方法所执行的操作。
根据本说明书一个或多个实施例的第五方面,提出了一种计算机程序产品,包括计算机程序,程序被处理器执行时实现上述第一方面以及第一方面中任一实施例所提供的数据处理方法所执行的操作。
本申请通过在接收到用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改的情况下,根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,可选地,在数据处理量大于或等于第一设定阈值时,可以将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,可以将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。上述过程基于通过数据处理过程所生成的待写入数据的数据量来进行存储方式的选择,以便在文件大小发生变化时,可以基于文件当前的大小来选择更为高效的存储方式,从而可以提高存储空间的利用效率。
附图说明
图1是一示例性实施例提供的一种数据处理方法的系统架构图。
图2是一示例性实施例示出的另一种数据处理方法的系统架构图。
图3是一示例性实施例示出的一种数据处理方法的流程图。
图4是一示例性实施例示出的一种数据处理方法的流程图。
图5是一示例性实施例示出的一种数据写入过程的流程图。
图6是一示例性实施例示出的一种数据写入过程的流程图。
图7是一示例性实施例示出的一种数据写入过程的流程图。
图8是一示例性实施例示出的一种数据删除过程的流程图。
图9是一示例性实施例提供的一种数据处理装置的框图。
图10是一示例性实施例提供的一种网络存储设备的示意结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本申请提供了一种数据处理方法,用于在网络存储设备中某个文件由大文件变为小文件,或者,由小文件变为大文件的情况下,来对文件进行转储,以便可以通过更加符合当前文件大小的存储方式来对数据进行存储,以提高存储空间的利用效率。
本申请所提供的数据处理方法可以由网络存储设备执行,网络存储设备可以为NAS。下面以网络存储设备为NAS为例,来对本申请的系统架构进行介绍。
参见图1,图1是一示例性实施例提供的一种数据处理方法的系统架构图,如图1所示,该数据处理系统可以包括网络存储设备100,网络存储设备100可以包括前端机101、元数据服务器102、垃圾回收(Garbage Collection,GC)服务器103和存储服务器104,以便网络存储设备100可以通过前端机接收来自用户端的数据处理请求,进而通过前端机101、元数据服务器102和GC服务器103来基于数据处理请求进行数据处理,实现对待处理数据的存储,如将待处理数据存储至元数据服务器102或存储服务器104。
在一种可能的实现方式中,前端机可以用于接收数据处理请求,数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
前端机、元数据服务器和垃圾回收服务器,可以用于根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在数据处理量大于或等于第一设定阈值时,将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件;
存储服务器,可以用于通过第一存储文件对待写入数据进行存储;
元数据服务器,还可以用于通过第二存储文件对待写入数据进行存储。
可选地,数据处理请求可以为数据写入请求或数据删除请求,其中,数据写入请求用于在位于元数据服务器的目标数据文件中进行数据写入,在数据处理请求为数据写入请求的情况下,数据处理请求携带待处理数据,数据删除请求用于在位于存储服务器的目标数据文件中进行数据删除;
前端机和元数据服务器,可以用于在数据处理请求为数据写入请求的情况下,根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置;
垃圾回收服务器,可以用于根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置。
可选地,前端机,可以用于在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件;
元数据服务器,用于在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据,基于待写入数据的数据量,将待写入数据存储至目标存储位置。
可选地,前端机,在用于在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件时,用于:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息,索引信息用于指示数据的存储位置;
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息。
可选地,前端机,在用于将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息时,用于:
将目标数据存储至位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
可选地,元数据服务器,还可以用于将目标数据、第一索引信息和第一存储文件的属性信息存储至位于存储服务器中的日志文件;
元数据服务器,还可以用于将第一索引信息、第二索引信息和第一存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
可选地,元数据服务器,在用于在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据时,用于:
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
基于待处理数据和目标数据,生成待写入数据。
可选地,元数据服务器,在用于基于待写入数据的数据量,将待写入数据存储至目标存储位置时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息;
在待写入数据的数据量小于第一设定阈值的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
可选地,元数据服务器,在用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据写入位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
可选地,元数据服务器,还可以用于将待写入数据、待写入数据的写入地址信息和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
元数据服务器,还可以用于将第二索引信息和第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
可选地,元数据服务器,还可以用于将待写入数据和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
元数据服务器,还可以用于将第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
可选地,目标数据文件的数据量大于或等于第一设定阈值;
垃圾回收服务器,在用于根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置时,用于:
基于数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据;
在待写入数据的数据量小于第一设定阈值的情况下,基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置。
可选地,垃圾回收服务器,在用于基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置时,用于下述任一项:
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号不同的情况下,将待写入数据存储至位于存储服务器中的第一存储文件;
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号相同的情况下,将待写入数据将待写入数据发送给元数据服务器,元数据服务器用于将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
可选地,垃圾回收服务器,还可以用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件。
上述仅为一种示例性的系统架构方式,在更多可能的实现方式中,本申请所提供的数据处理方法还可以应用于其他系统架构中。参见图2,图2是一示例性实施例示出的另一种数据处理方法的系统架构图,如图2所示,该数据处理系统可以包括前端机210和网络存储设备220。其中,前端机210可以为设置有用户端的设备,如台式计算机、便携式计算机、笔记本电脑、智能手机、平板电脑等,本申请对前端机210的设备类型不加以限定。用户可以通过前端机210触发数据处理请求,前端机210可以向网络存储设备220发送数据处理请求,以便网络存储设备220可以通过元数据服务器221和GC服务器222来基于数据处理请求进行数据处理,实现对待处理数据的存储,如将待处理数据存储至元数据服务器221或存储服务器223。关于前端机、元数据服务器、GC服务器、存储服务器的功能介绍可以参见上述实施例,此处不再赘述。
在介绍了本申请的可选系统架构方式之后,下面对本申请所涉及的技术术语进行介绍:
日志结构合并树(Log Struct Merge Tree,LSM):是现在很多存储产品所使用的一种存储结构。
LSM键值(Key-Value,KV)数据库:用于存储文件的数据和索引信息。
文件属性:文件的创建时间、大小、所有者(Owner)、权限等描述数据特征的信息。
索引信息:或称数据布局(Layout)信息,用于描述文件或数据的物理存储位置信息。
GC服务器:通过重写数据文件(DataFile)和删除DataFile,实现被覆盖和删除数据的存储空间回收功能。
DataFile:存储服务器内部的系统文件,用于存储用户写入的数据,修改文件时仅需追加写即可,因此需要GC服务器把之前已经被覆盖掉的、删除的无效存储空间释放掉,以便后续可以对已释放的空间进行写操作。
直写:前端机先把用户数据写到DataFile中,再把索引信息和对文件属性进行修改的信息一起提交到元数据服务器。由于索引信息的数据量要远小于实际数据的数据量,因此可以达到减少系统内部带宽的目的。
内联函数(Inline)写:将用户写入的数据和对文件属性进行修改的信息一起提交到元数据服务器。和直写相比,Inline写可以减少一次输入输出(Input/Output,),降低请求延时,同时,元数据服务器可以通过内存聚合多次小IO,以降低对 DataFile的写IO压力。
嵌入(Embedded)存储:用户的数据和文件属性存储在一起,因此不需要索引信息,也不需要分配一个存储块来提高存储空间利用率,并且可以更好地执行预读优化。
在介绍了本申请所涉及的技术术语之后,下面介绍本申请的所提供的数据处理方法。
参见图3,图3是一示例性实施例示出的一种数据处理方法的流程图,该方法可以应用于网络存储设备的处理器,网络存储设备可以包括元数据服务器和存储服务器,该数据处理方法可以包括如下步骤:
步骤301、通过前端机接收数据处理请求,数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改。
步骤302、根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在数据处理量大于或等于第一设定阈值时,将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
需要说明的是,基于数据处理请求对应的数据处理过程所生成的待写入数据可以包括:基于数据处理过程进行数据处理后得到的数据、以及网络存储设备中原来所存储的数据。
其中,第一设定阈值可以为任意取值,本申请对第一设定阈值的具体取值不加以限定。
本申请通过在接收到用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改的情况下,根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,可选地,在数据处理量大于或等于第一设定阈值时,可以将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,可以将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。上述过程基于通过数据处理过程所生成的待写入数据的数据量来进行存储方式的选择,以便在文件大小发生变化时,可以基于文件当前的大小来选择更为高效的存储方式,从而可以提高存储空间的利用效率。
在一些实施例中,在通过步骤301接收到数据处理请求后,网络存储设备即可对接收到的数据处理请求进行处理。可选地,网络存储设备可以通过其所包括的前端机、元数据服务器、GC服务器和存储服务器来进行数据处理。
其中,数据处理请求可以为数据写入请求或数据删除请求,其中,数据写入请求用于在位于元数据服务器的目标数据文件中进行数据写入,在数据处理请求为数据写入请求的情况下,数据处理请求携带待处理数据,数据删除请求用于在位于存储服务器的目标数据文件中进行数据删除。
在数据处理请求为数据写入请求或数据删除请求的情况下,对于步骤302,在根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置时,可以包括下述任一种实现方式:
在一种可能的实现方式中,在数据处理请求为数据写入请求的情况下,根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置。
在另一种可能的实现方式中,在数据处理请求为数据删除请求的情况下,根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置。
参见图4,图4是一示例性实施例示出的一种数据处理方法的流程图,如图4所示,网络存储设备可以通过前端机接收数据处理请求(包括数据写入请求和数据删除请求),在数据处理请求为数据写入请求的情况下,数据处理请求可以为大I/O请求或小I/O请求,在接收到的数据处理请求为大I/O请求的情况下,对存储服务器中的第一存储文件(也即是DataFile)进行直读/直写操作,并对元数据服务器中的KV数据库和缓存文件(也即是MenDataFile)进行相应的处理,进而对存储服务器中的日志文件(也即是RedoLogFile)进行处理;在接收到的数据处理请求为小I/O请求的情况下,对元数据服务器中的KV数据库和缓存文件(也即是MenDataFile)进行相应的处理,并对存储服务器中的日志文件(也即是RedoLogFile)进行处理。而在接收到的数据处理请求为数据删除请求的情况下,网络存储设备可以通过GC服务器来对存储服务器中的第一存储文件进行处理。
上述图4所示仅为一种流程性的说明,下面对各种情况下的具体处理过程进行说明。
在一些实施例中,由于数据处理请求可以为数据写入请求或数据删除请求,为便于理解,下面分别对数据处理请求为数据写入请求和数据处理请求为数据删除请求的处理过程进行介绍。
首先,对数据处理请求为数据写入请求的情况进行介绍。在数据处理请求为数据写入请求的情况下,如果待写入的目标数据文件的数据量本身就大于或等于第一设定阈值,也就是说,待写入的目标数据文件本身就是大文件,则进行数据写入后该目标数据文件肯定仍为大文件,不会出现文件大小变化的情况,因而,下面主要介绍目标数据文件的数据量小于第一设定阈值,也即是,目标数据文件本身为小文件时的情况。
在目标数据文件的数据量小于第一设定阈值的情况下,可能会出现待处理数据的数据量大于或等于第一设定阈值、待处理数据的数据量小于第一设定阈值两种情况,下面分别对这两种情况进行介绍:
一、待处理数据的数据量大于或等于第一设定阈值
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件(DataFile)。
在一些实施例中,在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件时,可以包括如下步骤:
步骤A、在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息,索引信息用于指示数据的存储位置。
需要说明的是,数据处理请求可以携带待处理数据,也即是,待存储至网络存储设备的数据。第一索引信息可以为Layout索引,可选地,第一索引信息还可以为其他类型,本申请对第一索引信息的具体类型不加以限定。
此外,需要说明的是,该步骤302-1-1可以由网络存储设备通过前端机完成,也即是,可以在通过前端机接收到数据处理请求后,在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,由前端机将待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息。另外,在生成第一索引信息后,前端机可以将第一索引信息发送给元数据服务器。
其中,前端机在将待处理数据存储至位于存储服务器的第一存储文件时,可以通过直写的方式实现待处理数据持久化存储。
步骤B、基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据。
可选地,数据处理请求还可以携带待处理数据的写入地址信息,用于指示待处理数据要存储至网络存储设备中的哪个文件,以及要存储到该文件中的哪个位置。例如,写入地址信息可以包括文件标识和文件偏移量(或文件长度),文件标识可以用于指示待处理数据要存储至网络存储设备中的哪个文件,文件偏移量(或文件长度)可以用于指示待处理数据要存储到文件中的哪个位置。
需要说明的是,由于本实施例所介绍的是目标数据文件为小文件的情况,而小文件通常是以嵌入元数据的方式存储在元数据服务器中的,例如,可以以嵌入元数据的方式存储在元数据服务器的KV数据库中,而且,由于数据处理请求可以携带文件标识,因而,网络存储设备在接收到数据处理请求后,可以基于数据处理请求所携带的文件标识,从元数据服务器中获取到文件标识所指示的文件,作为目标数据文件。
此外,在进行数据存储时可能会涉及到数据覆盖的情况,然而,由于数据处理请求还可以携带文件偏移量(或文件长度),因而,网络存储设备可以基于文件偏移量(或文件长度),确定出目标数据文件中的未覆盖部分,从而可以将未覆盖部分的数据作为目标数据。
需要说明的是,该步骤302-1-2可以由网络存储设备通过元数据服务器完成,也即是,元数据服务器在接收到前端机发送的第一索引信息后,可以基于数据处理请求所携带的文件标识确定出目标数据文件,并从元数据服务器的KV数据库中获取到目标数据文件,进而基于数据处理请求所携带的文件偏移量(或文件长度),从目标时间文件中确定出未被覆盖的目标数据。
步骤C、将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息。
在一种可能的实现方式中,可以将目标数据存储至位于元数据服务器中的缓存文件(MemDataFile),并生成第二索引信息;在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
其中,第二设定阈值为任意取值,本申请对第二设定阈值的具体取值不加以限定。
通过上述过程,可以减少降缓存文件中所存储的数据存储至第一存储文件的次数,从而可以减少网络存储设备的处理压力。
需要说明的是,虽然缓存文件是位于元数据服务器中的,第一存储文件是位于存储服务器中的,但是由于第一存储文件和缓存文件中的存储位置都是一一对应的,后续在将缓存文件中的数据写入第一存储文件时,也是按照数据在缓存文件中的存储位置,来在第一存储文件中的对应位置处对应进行写入的,因而基于缓存文件生成的第二索引信息对于第一存储文件来说是同样适用的。
可选地,在通过上述过程将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件之后,该数据处理方法还可以包括下述至少一项:
在一种可能的实现方式中,将目标数据、第一索引信息和第一存储文件的属性信息存储至位于存储服务器中的日志文件(也即是RedoLogFile)。
通过将目标数据、第一索引信息和第一存储文件的属性信息都存储至日志文件,从而使得网络存储设备可以通过日志文件中所记录的内容,获取到完整的数据,包括本次写入的数据和原来写入的数据,使得后续读数据操作更加简便。
在另一种可能的实现方式中,将第一索引信息、第二索引信息和第一存储文件的属性信息存储至位于元数据服务器中的目标数据库中。其中,目标数据库可以为KV数据库。
由于元数据服务器的目标数据库读取速度更快,且读取更加快速,因而,在将第一索引信息、第二索引信息和第一存储文件的属性信息存储至目标数据库后,后续可以更加快速地读取到相应的数据,从而可以提高后续的数据读取速度和数据读取效率。
上述实施例所提供的数据处理过程可以参见图5,图5是一示例性实施例示出的一种数据写入过程的流程图,如图5所示,在数据处理请求对应的待处理数据的数据量大于或等于第一设定阈值,也即是,数据处理请求为大IO写请求的情况下,前端机可以直接写DataFile,以将待处理数据存储至存储服务器中的DataFile,并生成Layout信息,从而将Layout信息提交给元数据服务器,元数据服务器可以获取原小文件数据,从而将原小文件数据中的未覆盖部分的数据写入MemDataFile,并将未覆盖部分数据和前端机生成的Layout信息写入RedoLogFile,进而更新KV数据库。需要说明的是,各个步骤的具体实现方式可以参见上述实施例中的介绍,此处不再赘述。
二、待处理数据的数据量小于第一设定阈值
在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,可以基于待处理数据和目标数据文件中的数据生成待写入数据,从而基于待写入数据的数据量,将待写入数据存储至目标存储位置。
其中,在基于待处理数据和目标数据文件中的数据生成待写入数据时,可以通过如下方式实现:
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;基于待处理数据和目标数据,生成待写入数据。
可选地,数据处理请求还可以携带待处理数据的写入地址信息,用于指示待处理数据要存储至网络存储设备中的哪个文件,以及要存储到该文件中的哪个位置。例如,写入地址信息可以包括文件标识和文件偏移量(或文件长度),文件标识可以用于指示待处理数据要存储至网络存储设备中的哪个文件,文件偏移量(或文件长度)可以用于指示待处理数据要存储到文件中的哪个位置。
需要说明的是,由于本实施例所介绍的是目标数据文件为小文件的情况,而小文件通常是以嵌入元数据的方式存储在元数据服务器中的,例如,可以以嵌入元数据的方式存储在元数据服务器的KV数据库中,而且,由于数据处理请求可以携带文件标识,因而,网络存储设备在接收到数据处理请求后,可以基于数据处理请求所携带的文件标识,从元数据服务器中获取到文件标识所指示的文件,作为目标数据文件。
此外,在进行数据存储时可能会涉及到数据覆盖的情况,然而,由于数据处理请求还可以携带文件偏移量(或文件长度),因而,网络存储设备可以基于文件偏移量(或文件长度),确定出目标数据文件中的未覆盖部分,从而可以将未覆盖部分的数据作为目标数据。
在从目标数据文件中确定出目标数据之后,可以将目标数据与待处理数据进行合并,得到待写入数据。
需要说明的是,由于待写入数据的数据量有可能大于或等于第一设定阈值,还有可能小于第一设定阈值,因而,在基于待写入数据的数据量,将待写入数据存储至目标存储位置时,在待写入数据的数据量大于或等于第一设定阈值、待写入数据的数据量小于第一设定阈值这两种情况下,将待写入数据存储至目标存储位置的方式也有所不同,下面分别对待写入数据的数据量大于或等于第一设定阈值、待写入数据的数据量小于第一设定阈值这两种情况下,将待写入数据存储至目标存储位置的过程进行介绍。
1、待写入数据的数据量大于或等于第一设定阈值
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息。
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息时,可以包括如下步骤:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据写入位于元数据服务器中的缓存文件,并生成第二索引信息;在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
通过上述过程,可以减少降缓存文件中所存储的数据存储至第一存储文件的次数,从而可以减少网络存储设备的处理压力。
需要说明的是,虽然缓存文件是位于元数据服务器中的,第一存储文件是位于存储服务器中的,但是由于第一存储文件和缓存文件中的存储位置都是一一对应的,后续在将缓存文件中的数据写入第一存储文件时,也是按照数据在缓存文件中的存储位置,来在第一存储文件中的对应位置处对应进行写入的,因而基于缓存文件生成的第二索引信息对于第一存储文件来说是同样适用的。
可选地,在通过上述过程将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件之后,该数据处理方法还可以包括下述至少一项:
将待写入数据、待写入数据的写入地址信息和第二存储文件的属性信息存储至位于存储服务器中的日志文件(也即是RedoLogFile)。
通过将待写入数据、待写入数据的写入地址信息和第二存储文件的属性信息都存储至日志文件,从而使得网络存储设备可以通过日志文件中所记录的内容,获取到完整的数据,包括本次写入的数据和原来写入的数据,使得后续读数据操作更加简便。
在另一种可能的实现方式中,将第二索引信息和第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
由于元数据服务器的目标数据库读取速度更快,且读取更加快速,因而,在将第二索引信息和第二存储文件的属性信息存储至目标数据库后,后续可以更加快速地读取到相应的数据,从而可以提高后续的数据读取速度和数据读取效率。
上述实施例所提供的数据处理过程可以参见图6,图6是一示例性实施例示出的一种数据写入过程的流程图,如图6所示,在数据处理请求对应的待处理数据的数据量小于第一设定阈值,也即是,数据处理请求为小IO写请求的情况下,前端机直接将数据处理请求转发给元数据服务器,以便元数据服务器可以基于数据处理请求获取原小文件数据,从而基于原小文件数据和待处理数据生成待写入数据,并在生成待写入数据后在RedoLogFile进行相应的写操作,在待写入数据大于或等于第一设定阈值的情况下,将待写入数据写入MemDataFile,进而更新KV数据库。需要说明的是,各个步骤的具体实现方式可以参见上述实施例中的介绍,此处不再赘述。
2、待写入数据的数据量小于第一设定阈值
在待写入数据的数据量小于第一设定阈值的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
可选地,在通过上述过程将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件之后,该数据处理方法还可以包括下述至少一项:
将待写入数据和第二存储文件的属性信息存储至位于存储服务器中的日志文件(也即是RedoLogFile)。
通过将待写入数据和第二存储文件的属性信息都存储至日志文件,从而使得网络存储设备可以通过日志文件中所记录的内容,获取到完整的数据,包括本次写入的数据和原来写入的数据,使得后续读数据操作更加简便。
在另一种可能的实现方式中,将第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
由于元数据服务器的目标数据库读取速度更快,且读取更加快速,因而,在将第二存储文件的属性信息存储至目标数据库后,后续可以更加快速地读取到相应的数据,从而可以提高后续的数据读取速度和数据读取效率。
上述实施例所提供的数据处理过程可以参见图7,图7是一示例性实施例示出的一种数据写入过程的流程图,如图7所示,在数据处理请求对应的待处理数据的数据量小于第一设定阈值,也即是,数据处理请求为小IO写请求的情况下,前端机直接将数据处理请求转发给元数据服务器,以便元数据服务器可以基于数据处理请求获取原小文件数据,从而基于原小文件数据和待处理数据生成待写入数据,并在生成待写入数据后在RedoLogFile进行相应的写操作,在待写入数据小于第一设定阈值的情况下,更新KV数据库。需要说明的是,各个步骤的具体实现方式可以参见上述实施例中的介绍,此处不再赘述。
在介绍了数据处理请求为数据写入请求时的数据处理过程之后,下面对数据处理请求为数据删除请求的情况进行介绍。在数据处理请求为数据删除请求的情况下,如果待进行数据删除的目标数据文件的数据量本身就小于第一设定阈值,也就是说,待进行数据删除的目标数据文件本身就是小文件,则进行数据删除后该目标数据文件肯定仍为小文件,不会出现文件大小变化的情况,因而,下面主要介绍目标数据文件的数据量大于或等于第一设定阈值,也即是,目标数据文件本身为大文件时的情况。
需要说明的是,前端机在接收到数据删除请求后,可以将数据删除请求发送给GC服务器,以便GC服务器可以基于数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据。
其中,数据删除请求可以携带文件标识和指示信息,文件标识可以用于指示要删除的是网络存储设备的哪个文件中的数据,指示信息可以用于指示要删除的是文件中的哪部分数据。
需要说明的是,由于本实施例所介绍的是目标数据文件为大文件的情况,而大文件通常是直接存储在存储服务器中的,而且,由于数据处理请求(在本实施例中也即是数据删除请求)可以携带文件标识,因而,网络存储设备在接收到数据处理请求后,可以基于数据处理请求所携带的文件标识,从存储服务器中获取到文件标识所指示的文件,作为目标数据文件,进而根据指示信息,对目标数据文件中待删除的部分进行删除。
需要说明的是,通过上述数据删除过程所获取到的待写入数据的数据量有可能大于或等于第一设定阈值,还有可能小于第一设定阈值,因而,在对待接入数据进行存储时,可以有如下两种情况。
一、待写入数据的数据量小于第一设定阈值
在待写入数据的数据量小于第一设定阈值的情况下,基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置。
需要说明的是,在网络存储设备中,每次用户请求写入数据均会伴随着对数据版本号的更新,然而,数据删除过程并不会出现数据版本号更新的过程,因而,可以基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号是否相同,来确定在对数据进行删除的过程中,用户是否进行了数据写入,如果用户进行了数据写入,则放弃本次转储过程,仅在用户未进行数据写入的情况下才可继续进行转储过程。
在一种可能的实现方式中,在基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置,可以包括下述任一项:
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号不同的情况下,将待写入数据存储至位于存储服务器中的第一存储文件。
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号相同的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
可选地,在将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件,可以先将待处理数据写入一个数据文件(也即是DataFile)中,并为该数据文件设置一个标记,以便在后续LayoutKeyValue数据执行压缩(Compaction)的时候将带标记的数据文件合入到文件的元数据中。
上述实施例所提供的数据处理过程可以参见图8,图8是一示例性实施例示出的一种数据删除过程的流程图,如图8所示,GC服务器在接收到数据删除请求的情况下,在相应的DataFile中进行数据删除,得到待写入数据,从而在待写入数据的数据量小于第一设定阈值的情况下,采用将待写入数据嵌入元数据来进行存储的方式,来对待写入数据进行存储。需要说明的是,各个步骤的具体实现方式可以参见上述实施例中的介绍,此处不再赘述。
二、待写入数据的数据量大于或等于第一设定阈值
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件。
在待写入数据的数据量大于或等于第一设定阈值的情况下,表明待写入数据仍为大文件数据,因而,无需进行转储即可。
本申请所提供的方案涵盖了小文件变大、以及大文件变小等多种情况,从而可以实现多种情况下文件大小变化后的数据转储,以充分利用网络存储设备的存储空间,提高存储空间利用率。
与前述方法的实施例相对应,本说明书还提供了装置及其所应用的网络存储设备的实施例。
参见图9,图9是一示例性实施例提供的一种数据处理装置的框图,应用于网络存储设备,网络存储设备包括前端机、元数据服务器和存储服务器;
该装置包括:
接收模块901,用于通过前端机接收数据处理请求,数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
存储模块902,用于根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在数据处理量大于或等于第一设定阈值时,将待写入数据存储至位于存储服务器中的第一存储文件,在数据处理量小于第一设定阈值时,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,数据处理请求为数据写入请求或数据删除请求,其中,数据写入请求用于在位于元数据服务器的目标数据文件中进行数据写入,在数据处理请求为数据写入请求的情况下,数据处理请求携带待处理数据,数据删除请求用于在位于存储服务器的目标数据文件中进行数据删除;
存储模块902,在用于根据数据处理请求对应的数据处理量,将基于数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置时,用于下述任一项:
根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置;
根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置。
在本说明书的一些实施例中,目标数据文件的数据量小于第一设定阈值;
存储模块902,在用于根据数据写入请求所携带的待处理数据的数据量以及目标数据文件中的数据量,将待处理数据和目标数据文件中的数据存储至目标存储位置时,用于下述任一项:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件,第一存储文件为数据文件;
在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据,基于待写入数据的数据量,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,存储模块902,在用于在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据和目标数据文件中的数据存储至位于存储服务器中的第一存储文件时,用于:
在数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息,索引信息用于指示数据的存储位置;
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息。
在本说明书的一些实施例中,存储模块902,在用于将目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息时,用于:
将目标数据存储至位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,存储模块902,还用于将目标数据、第一索引信息和第一存储文件的属性信息存储至位于存储服务器中的日志文件;
存储模块902,还用于将第一索引信息、第二索引信息和第一存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,存储模块902,在用于在数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于待处理数据和目标数据文件中的数据生成待写入数据时,用于:
基于待处理数据对应的写入地址信息,从元数据服务器中获取目标数据文件,并从目标数据文件中确定目标数据;
基于待处理数据和目标数据,生成待写入数据。
在本说明书的一些实施例中,存储模块902,在用于基于待写入数据的数据量,将待写入数据存储至目标存储位置时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息;
在待写入数据的数据量小于第一设定阈值的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,存储模块902,在用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息时,用于:
在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据写入位于元数据服务器中的缓存文件,并生成第二索引信息;
在缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,第一存储文件和缓存文件中的存储位置一一对应。
在本说明书的一些实施例中,存储模块902,还用于将待写入数据、待写入数据的写入地址信息和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
存储模块902,还用于将第二索引信息和第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,存储模块902,还用于将待写入数据和第二存储文件的属性信息存储至位于存储服务器中的日志文件;
存储模块902,还用于将第二存储文件的属性信息存储至位于元数据服务器中的目标数据库中。
在本说明书的一些实施例中,目标数据文件的数据量大于或等于第一设定阈值;
存储模块902,在用于根据数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置时,用于:
基于数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据;
在待写入数据的数据量小于第一设定阈值的情况下,基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置。
在本说明书的一些实施例中,存储模块902,在用于基于待写入数据的数据版本号以及网络存储设备中所存储的数据版本号,将待写入数据存储至目标存储位置时,用于下述任一项:
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号不同的情况下,将待写入数据存储至位于存储服务器中的第一存储文件;
在待写入数据的数据版本号与网络存储设备中所存储的数据版本号相同的情况下,将待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
在本说明书的一些实施例中,存储模块902,还用于在待写入数据的数据量大于或等于第一设定阈值的情况下,将待写入数据存储至位于存储服务器中的第一存储文件。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请还提供了一种网络存储设备,参见图10,图10是一示例性实施例提供的一种网络存储设备的示意结构图。请参考图10,在硬件层面,该网络存储设备包括处理器1002、内部总线1004、网络接口1006、内存1008以及非易失性存储器1010,当然还可能包括实现其他功能所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器1002从非易失性存储器1010中读取对应的计算机程序到内存1008中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本申请任一实施例所提供的数据处理方法。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(Central ProcessingUnit,CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read-Only Memory ,ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-change Random AccessMemory,PRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead Only Memory,EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CompactDisc Read Only Memory,CD-ROM)、数字多功能光盘(Digital Video Disc,DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被服务器访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (14)
1.一种数据处理方法,其特征在于,应用于网络存储设备,所述网络存储设备包括前端机、元数据服务器和存储服务器;
所述方法包括:
通过所述前端机接收数据处理请求,所述数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
根据所述数据处理请求对应的数据处理量,将基于所述数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在所述数据处理量大于或等于第一设定阈值时,将所述待写入数据存储至位于存储服务器中的第一存储文件,在所述数据处理量小于第一设定阈值时,将所述待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
2.根据权利要求1所述的方法,其特征在于,所述数据处理请求为数据写入请求或数据删除请求,其中,所述数据写入请求用于在位于元数据服务器的目标数据文件中进行数据写入,在所述数据处理请求为数据写入请求的情况下,所述数据处理请求携带待处理数据,所述数据删除请求用于在位于存储服务器的目标数据文件中进行数据删除;
所述根据所述数据处理请求对应的数据处理量,将基于所述数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,包括下述任一项:
根据所述数据写入请求所携带的待处理数据的数据量以及所述目标数据文件中的数据量,将所述待处理数据和所述目标数据文件中的数据存储至目标存储位置;
根据所述数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置。
3.根据权利要求2所述的方法,其特征在于,所述目标数据文件的数据量小于第一设定阈值;
所述根据所述数据写入请求所携带的待处理数据的数据量以及所述目标数据文件中的数据量,将所述待处理数据和所述目标数据文件中的数据存储至目标存储位置,包括下述任一项:
在所述数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将所述待处理数据和所述目标数据文件中的数据存储至位于存储服务器中的第一存储文件,所述第一存储文件为数据文件;
在所述数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于所述待处理数据和所述目标数据文件中的数据生成待写入数据,基于所述待写入数据的数据量,将所述待写入数据存储至目标存储位置。
4.根据权利要求3所述的方法,其特征在于,所述在所述数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将所述待处理数据和所述目标数据文件中的数据存储至位于存储服务器中的第一存储文件,包括:
在所述数据处理请求所携带的待处理数据的数据量大于或等于第一设定阈值的情况下,将所述待处理数据存储至位于存储服务器的第一存储文件,并生成第一索引信息,所述索引信息用于指示数据的存储位置;
基于所述待处理数据对应的写入地址信息,从所述元数据服务器中获取所述目标数据文件,并从所述目标数据文件中确定目标数据;
将所述目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标数据存储至位于存储服务器的第一存储文件,并生成第二索引信息,包括:
将所述目标数据存储至位于元数据服务器中的缓存文件,并生成第二索引信息;
在所述缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将所述缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,所述第一存储文件和所述缓存文件中的存储位置一一对应。
6.根据权利要求3所述的方法,其特征在于,所述在所述数据处理请求所携带的待处理数据的数据量小于第一设定阈值的情况下,基于所述待处理数据和所述目标数据文件中的数据生成待写入数据,包括:
基于所述待处理数据对应的写入地址信息,从所述元数据服务器中获取所述目标数据文件,并从所述目标数据文件中确定目标数据;
基于所述待处理数据和所述目标数据,生成所述待写入数据。
7.根据权利要求6所述的方法,其特征在于,所述基于所述待写入数据的数据量,将所述待写入数据存储至目标存储位置,包括:
在所述待写入数据的数据量大于或等于第一设定阈值的情况下,将所述待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息;
在所述待写入数据的数据量小于第一设定阈值的情况下,将所述待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
8.根据权利要求6所述的方法,其特征在于,所述在所述待写入数据的数据量大于或等于第一设定阈值的情况下,将所述待写入数据存储至位于存储服务器中的第一存储文件,并生成第二索引信息,包括:
在所述待写入数据的数据量大于或等于第一设定阈值的情况下,将所述待写入数据写入位于元数据服务器中的缓存文件,并生成第二索引信息;
在所述缓存文件中所存储数据的数据量达到第二设定阈值的情况下,将所述缓存文件中所存储的数据存储至位于存储服务器中的第一存储文件,所述第一存储文件和所述缓存文件中的存储位置一一对应。
9.根据权利要求2所述的方法,其特征在于,所述目标数据文件的数据量大于或等于第一设定阈值;
所述根据所述数据删除请求对目标数据文件中的数据进行删除后所得到的数据文件的数据量,将经过数据删除后所得到的数据文件所包括的数据存储至目标存储位置,包括:
基于所述数据删除请求对位于存储服务器中的目标数据文件中所存储的数据进行删除,得到待写入数据;
在所述待写入数据的数据量小于第一设定阈值的情况下,基于所述待写入数据的数据版本号以及所述网络存储设备中所存储的数据版本号,将所述待写入数据存储至目标存储位置。
10.根据权利要求9所述的方法,其特征在于,所述基于所述待写入数据的数据版本号以及所述网络存储设备中所存储的数据版本号,将所述待写入数据存储至目标存储位置,包括下述任一项:
在所述待写入数据的数据版本号与所述网络存储设备中所存储的数据版本号不同的情况下,将所述待写入数据存储至位于存储服务器中的第一存储文件;
在所述待写入数据的数据版本号与所述网络存储设备中所存储的数据版本号相同的情况下,将所述待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
11.一种数据处理装置,其特征在于,应用于网络存储设备,所述网络存储设备包括前端机、元数据服务器和存储服务器;
所述装置包括:
接收模块,用于通过所述前端机接收数据处理请求,所述数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
存储模块,用于根据所述数据处理请求对应的数据处理量,将基于所述数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在所述数据处理量大于或等于第一设定阈值时,将所述待写入数据存储至位于存储服务器中的第一存储文件,在所述数据处理量小于第一设定阈值时,将所述待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件。
12.一种数据处理系统,其特征在于,应用于网络存储设备,所述数据处理系统包括前端机、元数据服务器、垃圾回收服务器和存储服务器;
所述前端机,用于接收数据处理请求,所述数据处理请求用于对位于元数据服务器或存储服务器中的目标数据文件的数据量进行更改;
所述前端机、所述元数据服务器和所述垃圾回收服务器,用于根据所述数据处理请求对应的数据处理量,将基于所述数据处理请求对应的数据处理过程所生成的待写入数据存储至目标存储位置,其中,在所述数据处理量大于或等于第一设定阈值时,将所述待写入数据存储至位于存储服务器中的第一存储文件,在所述数据处理量小于第一设定阈值时,将所述待写入数据嵌入元数据后存储至位于元数据服务器中的第二存储文件;
所述存储服务器,用于通过第一存储文件对所述待写入数据进行存储;
所述元数据服务器,还用于通过第二存储文件对所述待写入数据进行存储。
13.一种网络存储设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1至10中任一项所述的数据处理方法。
14.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时实现如权利要求1至10中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210855247.6A CN114936010B (zh) | 2022-07-20 | 2022-07-20 | 数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210855247.6A CN114936010B (zh) | 2022-07-20 | 2022-07-20 | 数据处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114936010A true CN114936010A (zh) | 2022-08-23 |
CN114936010B CN114936010B (zh) | 2022-12-27 |
Family
ID=82869304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210855247.6A Active CN114936010B (zh) | 2022-07-20 | 2022-07-20 | 数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114936010B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493284A (zh) * | 2023-10-30 | 2024-02-02 | 安徽鼎甲计算机科技有限公司 | 文件存储方法、文件读取方法、文件存储和读取系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200470A1 (en) * | 2005-03-03 | 2006-09-07 | Z-Force Communications, Inc. | System and method for managing small-size files in an aggregated file system |
WO2011140991A1 (zh) * | 2010-10-27 | 2011-11-17 | 华为技术有限公司 | 分布式文件系统的文件处理方法及装置 |
CN102801784A (zh) * | 2012-07-03 | 2012-11-28 | 华为技术有限公司 | 一种分布式数据存储方法及设备 |
CN103294167A (zh) * | 2013-05-21 | 2013-09-11 | 暨南大学 | 一种基于数据行为的低能耗集群存储复制装置和方法 |
CN105100149A (zh) * | 2014-05-13 | 2015-11-25 | 中国电信股份有限公司 | 用于管理文件的方法和系统 |
CN105095511A (zh) * | 2015-09-08 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 一种基于分布式系统的文件处理方法、装置及系统 |
CN106775446A (zh) * | 2016-11-11 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 基于固态硬盘加速的分布式文件系统小文件访问方法 |
CN107436725A (zh) * | 2016-05-25 | 2017-12-05 | 杭州海康威视数字技术股份有限公司 | 一种数据写、读方法、装置及分布式对象存储集群 |
WO2018108158A1 (zh) * | 2016-12-16 | 2018-06-21 | 贵州白山云科技有限公司 | 一种基于多数派的数据存储方法、装置、存储介质及设备 |
WO2022036927A1 (zh) * | 2020-08-19 | 2022-02-24 | 安徽鸿程光电有限公司 | 文件存储方法、装置、设备和介质 |
-
2022
- 2022-07-20 CN CN202210855247.6A patent/CN114936010B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200470A1 (en) * | 2005-03-03 | 2006-09-07 | Z-Force Communications, Inc. | System and method for managing small-size files in an aggregated file system |
WO2011140991A1 (zh) * | 2010-10-27 | 2011-11-17 | 华为技术有限公司 | 分布式文件系统的文件处理方法及装置 |
CN102801784A (zh) * | 2012-07-03 | 2012-11-28 | 华为技术有限公司 | 一种分布式数据存储方法及设备 |
CN103294167A (zh) * | 2013-05-21 | 2013-09-11 | 暨南大学 | 一种基于数据行为的低能耗集群存储复制装置和方法 |
CN105100149A (zh) * | 2014-05-13 | 2015-11-25 | 中国电信股份有限公司 | 用于管理文件的方法和系统 |
CN105095511A (zh) * | 2015-09-08 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 一种基于分布式系统的文件处理方法、装置及系统 |
CN107436725A (zh) * | 2016-05-25 | 2017-12-05 | 杭州海康威视数字技术股份有限公司 | 一种数据写、读方法、装置及分布式对象存储集群 |
CN106775446A (zh) * | 2016-11-11 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 基于固态硬盘加速的分布式文件系统小文件访问方法 |
WO2018108158A1 (zh) * | 2016-12-16 | 2018-06-21 | 贵州白山云科技有限公司 | 一种基于多数派的数据存储方法、装置、存储介质及设备 |
WO2022036927A1 (zh) * | 2020-08-19 | 2022-02-24 | 安徽鸿程光电有限公司 | 文件存储方法、装置、设备和介质 |
Non-Patent Citations (3)
Title |
---|
KRISTAL T. POLLACK: "Quota enforcement for high-performance distributed storage systems", 《IEEE XPLORE》 * |
吴婵明: "基于数据分类的混合存储研究与实现", 《万方数据库》 * |
罗益辉等: "对象存储系统的合作缓存方案", 《华中科技大学学报(自然科学版)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493284A (zh) * | 2023-10-30 | 2024-02-02 | 安徽鼎甲计算机科技有限公司 | 文件存储方法、文件读取方法、文件存储和读取系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114936010B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533551B (zh) | 数据块级别的大数据统计 | |
US9582511B2 (en) | Maintaining versions of data in solid state memory | |
KR102002830B1 (ko) | 세그먼트 클리닝 장치 및 방법 | |
CN108268219B (zh) | 一种处理io请求的方法及装置 | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
US9122582B2 (en) | File system for maintaining data versions in solid state memory | |
CN106610790B (zh) | 一种重复数据删除方法及装置 | |
CN108121813B (zh) | 数据管理方法、装置、系统、存储介质及电子设备 | |
KR20200122994A (ko) | 키 값 첨부 | |
US20190087130A1 (en) | Key-value storage device supporting snapshot function and operating method thereof | |
CN107817946B (zh) | 用于混合存储设备读写数据的方法以及装置 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN110597762A (zh) | 文件处理方法、装置、设备及存储介质 | |
CN109213450B (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN114936010B (zh) | 数据处理方法、装置、设备及介质 | |
CN109416621B (zh) | 利用支持共享对象的计算机存储系统来恢复非易失性存储中的空闲空间 | |
CN110187834B (zh) | 重删副本的数据处理方法、装置、电子设备 | |
CN112817962B (zh) | 基于对象存储的数据存储方法、装置和计算机设备 | |
US11513701B2 (en) | Storage management system and method | |
CN111008233B (zh) | 一种kv数据库的访问方法、装置及设备 | |
US11340999B2 (en) | Fast restoration method from inode based backup to path based structure | |
CN111143236A (zh) | 一种内存映射实现队列及其数据读取和写入方法 | |
CN110837338A (zh) | 一种存储索引处理方法及装置 | |
CN115421856A (zh) | 一种数据恢复方法及装置 | |
US11789908B2 (en) | Offloading memory maintenance for a log-structured file system |
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 |