CN112286725A - 数据处理方法、装置及电子设备 - Google Patents
数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112286725A CN112286725A CN202011175058.1A CN202011175058A CN112286725A CN 112286725 A CN112286725 A CN 112286725A CN 202011175058 A CN202011175058 A CN 202011175058A CN 112286725 A CN112286725 A CN 112286725A
- Authority
- CN
- China
- Prior art keywords
- data
- storage area
- written
- target
- identifier
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims description 37
- 230000015654 memory Effects 0.000 claims description 17
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/065—Replication mechanisms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种数据处理方法、装置及电子设备,在对待写入数据进行写入时,确定是否存在于待写入数据的第一数据,若存在确定第一数据的第一数据标识以及对应的第一存储区域;生成待写入的第二数据标识,并写入与之对应的第二数据区域。这样在接收到数据回滚指令,可以基于目标数据标识确定对应的目标存储区域,获得回滚数据。实现了相关数据可以基于数据标识写入,不需要经过读写写入的低效率备份方式来支持回滚,可以基于数据标识回滚到对应的数据,提升了数据处理效率。
Description
技术领域
本申请涉及信息处理技术领域,更具体的说是涉及一种数据处理方法、装置及电子设备。
背景技术
随着软件定义存储的广泛应用,对外提供了丰富的接口,业务应用支持非常广泛,系统中存储的数据量也越来越大,基于常用的副本机制,成本压力也会随着数据量指数级增长而增长。因此,越来越多的用户开始采用纠错码(EC,Erasure Coding)作为数据冗余的方式,基于纠错码技术为了能够修改写能在需要的时候跳转到对应的数据状态,这就需要对原有数据进行备份。
对于在基于文件系统进行纠删码支持的系统,修改写数据备份的方法只能是将数据拷贝出一份后再写入新的数据,这样纠删码修改写会使得写放大现象非常严重,导致修改写性能较低。
发明内容
有鉴于此,本申请提供如下技术方案:
一种数据处理方法,包括:
若存在与接收到的待写入数据对应的第一数据,确定所述第一数据的第一数据标识,使得通过所述第一数据标识能够获得所述第一数据对应的第一存储区域;
生成所述待写入数据的第二数据标识,所述第二数据标识与所述第一数据标识不同,所述第二数据标识对应与所述第一存储区域不同的第二存储区域;
将所述待写入数据写入所述第二存储区域;
响应于接收到数据回滚指令,获取与所述数据回滚指令对应的目标数据标识;
基于所述目标数据标识确定目标存储区域,使得通过所述目标存储区域获得回滚数据。
可选地,所述方法还包括:
生成存储区域的存储数据的索引,所述索引表征所述存储区域的存储数据的位置信息和数据标识的映射关系;
将所述索引存储在索引存储区域;
其中,所述基于所述目标数据标识确定目标存储区域,包括:
调用所述索引存储区域的索引,并基于所述索引获取与所述目标数据标识对应的目标存储区域;
获取所述目标存储区域的回滚数据。
可选地,所述方法还包括:
若不存在与所述待写入数据对应的第一数据,将所述待写入数据写入空闲存储区域。
可选地,所述将所述待写入数据写入所述第二存储区域,包括:
基于所述索引,获取所述第二存储区域的数据待写入地址;
根据所述待写入地址,确定所述第二存储区域的数据可写入长度;
若所述数据可写入长度大于等于所述待写入数据的数据长度,将所述待写入数据写入所述第二存储区域;
若所述数据可写入长度小于所述待写入数据的数据长度,确定数据扩展区域,将所述待写入数据写入所述数据扩展区域。
可选地,所述方法还包括:
基于所述待写入数据对应的数据扩展区域的写入地址和所述待写入数据的第二数据标识,更新所述索引。
可选地,所述通过所述目标存储区域获得回滚数据,包括:
基于所述目标数据标识对应的存储数据的位置信息,确定是否包括数据扩展区域;
如果否,在所述目标存储区域获取目标数据;
如果是,在所述数据扩展区域获取目标数据。
可选地,所述数据回滚指令包括纠删码回滚请求,所述方法还包括:
响应于对所述回滚数据完成数据回滚,在所述回滚数据对应的数据标识中添加回滚状态信息。
可选地,所述方法还包括:
如果所述目标存储区域存储有多个不同数据标识的数据,检测是否有数据满足删除条件,若是,将满足删除条件的数据在所述目标存储区域删除;
根据删除后的数据更新所述索引存储区域的索引。
一种数据处理装置,包括:
第一确定单元,用于若存在与接收到的待写入数据对应的第一数据,确定所述第一数据的第一数据标识,使得通过所述第一数据标识能够获得所述第一数据对应的第一存储区域;
生成单元,用于生成所述待写入数据的第二数据标识,所述第二数据标识与所述第一数据标识不同,所述第二数据标识对应与所述第一存储区域不同的第二存储区域;
写入单元,用于将所述待写入数据写入所述第二存储区域;
获取单元,用于响应于接收到数据回滚指令,获取与所述数据回滚指令对应的目标数据标识;
第二确定单元,用于基于所述目标数据标识确定目标存储区域,使得通过所述目标存储区域获得回滚数据。
一种电子设备,包括:
存储器、处理器和用于存储在在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时用于实现如上述任一项所述的数据处理方法。
经由上述的技术方案可知,本申请公开了一种数据处理方法、装置及电子设备,在对待写入数据进行写入时,确定是否存在于待写入数据的第一数据,若存在确定第一数据的第一数据标识以及对应的第一存储区域;生成待写入的第二数据标识,并写入与之对应的第二数据区域。这样在接收到数据回滚指令,可以基于目标数据标识确定对应的目标存储区域,获得回滚数据。实现了相关数据可以基于数据标识写入,不需要经过读写写入的低效率备份方式来支持回滚,可以基于数据标识回滚到对应的数据,提升了数据处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种待写入数据写入方法的流程示意图;
图3为本申请实施例提供的一种元数据整体结构及原理示意图;
图4为本申请实施例提供的一种数据写入的流程示意图;
图5为本申请实施例提供的一种数据回滚的流程示意图;
图6为本申请实施例提供的一种数据处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例提供了一种数据处理方法,该方法应用于纠删码领域。面对数据量越来越大的情况,越来越多的用户开始采用纠删码作为数据冗余的方式,为了保证修改写能在需要的回滚到上一次一致的状态,这时就需要对原有的数据进行备份。对于在基于文件进行纠删码支持的系统,修改写数据备份的方法只能是将数据拷贝一份出来然后再写入新的数据,使得纠删码修改写时写放大现象非常严重,导致修改写性能降低。为了解决上述问题,本申请通过内核态文件系统元数据存储结构扩展,实现同一位置对应的数据支持多个数据标识,实现了覆盖写的数据通过数据标识进行区分,不再需要经过读写写入的低效率备份方式来支持回滚,实现了不额外增加读写的情况下可以回滚到任意一个版本对应的数据。其中,纠删码(erasure coding,EC)是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。
参见图1,其示出了本申请实施例提供的一种数据处理方法的流程示意图,该方法可以包括以下步骤:
S101、若存在与接收到的待写入数据对应的第一数据,确定第一数据的第一数据标识。
待写入的数据是需要写入存储区域的数据,但是存储区域中会有不同的分区即对应不同的存储区域,每个存储区域可能会已经存储有数据,也可能是空闲的存储区域。不同的存储区域中存储的数据是有关联的,例如,某两个相邻的存储区域的数据,在数据组成后可以是表示相邻时间段产生的数据。也可以是同一类型、或者同一属性的数据分配在特定的存储区域。
与待写入数据对应的第一数据,是与待写入数据具有相同属性的数据,如均是针对目标设备在目标状态的采集数据,可以是采集时间不同、采集版本不同。每一个数据标识对应的数据存储在其对应的存储区域,但是具有相同属性的数据的存储区域可以属于同一个存储区域集合。因此,可以通过所述第一数据标识能够获得所述第一数据对应的第一存储区域。其中,第一数据标识可以包括数据的版本号等全局唯一信息。
S102、生成所述待写入数据的第二数据标识。
S103、将待写入数据写入第二存储区域。
在确定了第一数据的第一数据标识后,根据第一数据标识生成待写入数据的第二数据标识,即第二数据标识与第一数据标识不同,由于第二数据标识也有与之对应的第二存储区域,因此第二存储区域与第一存储区域不同。
因此,通过第二数据标识分配了与之对应的第二存储区域,将待写入数据写入第二存储区域。
在本申请实施例中通过增加数据标识来区分写入的数据,不同的数据标识对应不同的存储区域,关联的数据之间的存储区域可以属于同一个数据存储集合。当数据标识为数据的版本信息时,这就实现同一个数据存储集合对应的数据支持多个版本,实现了覆盖写的数据有了版本管理。
S104、响应于接收到数据回滚指令,获取与所述数据回滚指令对应的目标数据标识。
S105、基于所述目标数据标识确定目标存储区域,使得通过所述目标存储区域获得回滚数据。
其中,数据回滚是指当数据处理错误时,将数据恢复到之前的正确状态。对应于本申请的实施例中,数据回滚指令是指数据恢复指令,由于本申请中同一位置(即同一数据存储集合)中的数据具有标识信息,因此在接收到数据回滚指令时,可以将数据恢复到对应的标识的数据状态,得到的回滚数据即该数据状态的数据。具体的,根据数据回滚指令得到对应的目标数据标识。然后可以基于该数据标识确定目标存储区域,通过该目标存储区域得到回滚数据,即需要恢复到对应版本的数据。
因此,在本申请实施例中不再需要经过读写写入的低效率备份方式来回滚,实现了不额外增加读写的情况下可以回滚到任意一个数据标识对应的数据。
为了便于对存储数据的数据标识的利用,在本申请实施例中的一种可能的实施方式中,可以生存储区域的存储数据的索引,所述索引表征所述存储区域的存储数据的位置信息和数据标识的映射关系。即将存储数据的位置信息与数据标识一一对应,如,第一存储区域对应第一数据的第一数据标识,第二存储区域对应第二数据的第二数据标识,即可以根据数据标识查找对应的数据存储区域。为了便于索引的调用,将索引存储在索引存储区域,即通过通过一个特定区域来存储索引,便于索引的利用和更新,而不影响其他数据的调用和处理。
在基于目标标识确定目标存储区域,包括:调用索引存储区域的索引,并基于所述索引获取与目标数据标识对应的目标存储区域;获取目标存储区域的回滚数据。实现了通过索引查找数据标识对应的存储区域。
在本申请的上述实施例中,待写入数据的写入是指数据覆盖写,如存在与待写入数据对应的之前版本的数据。若待写入数据没有其对应的之前版本的数据,则对待写入数据的写入处理相当于普通数据的写入,即写入其对应的存储区域,即空闲存储区域。
参见图2,其示出了申请实施例提供的一种待写入数据写入方法的流程示意图,该方法包括:
S201、基于索引,获取第二存储区域的数据待写入地址;
S202、根据待写入地址,确定第二存储区域的数据可写入长度;
S203、若数据数据可写入长度大于等于待写入数据的数据长度,将所述待写入数据写入第二存储区域;
S204、若数据可写入长度小于待写入数据的数据长度,确定数据扩展区域,将待写入数据写入数据扩展区域。
因为索引中记录了存储数据的位置信息和数据标识的映射关系,因此可以通过索引以及待写入数据的数据长度来确定其真实写入的区域。具体的可以根据当前写偏移及长度、数据长度实现,会在后续实施例中进行具体说明,在此处不进行赘述。
由于索引中记录了存储数据的位置,当待写入数据写入对应的数据扩展区域后,会基于待写入数据对应的数据扩展区域的写入地址和待写入数据的第二数据标识,更新索引,使得后续在利用索引查找数据能够获得数据准确的位置信息。
在上述实施例的基础上,通过所述目标存储区域获得回滚数据,包括:
基于目标数据标识对应的存储数据的位置信息,确定是否包括数据扩展区域;
如果否,在目标存储区域获取目标数据;
如果是,在数据扩展区域获取目标数据。
在该实施方式中,可以基于存储数据的准确位置信息获取目标数据,使得数据回滚到准确状态。
当数据回滚指令包括纠删码回滚请求,所述方法还包括:
响应于对所述回滚数据完成数据回滚,在所述回滚数据对应的数据标识中添加回滚状态信息。该回滚状态信息可以包括回滚时间、回滚版本信息等。便于获取数据的详细信息。
在本申请的实施例中的一种可能的实施方式中,如果目标存储区域存储有多个不同数据标识的数据,检测是否有数据满足删除条件,如果是,将满足删除条件的数据在所述目标存储区域删除;根据删除后的数据更新索引存储区域的索引。
这里的删除条件可以根据实际的应用场景确定,如根据数据的状态信息、数据的写入时间等。例如,当数据完全落盘后,将数据在其对应的存储区域即目标存储区域删除,以释放存储区域的容量。并根据删除后的数据更新索引,使得索引能够实时对应数据的实际状态。
下面以数据标识为数据版本对上述数据处理方法进行说明。可以通过以下方法实现纠删码写操作区分。
一种可能的实现方法是,增加Posix(Portable Operating System Interface,可移植操作系统接口)用于区分纠删码的写操作,其中,POSIX标准定义了操作系统应该为应用程序提供的接口标准,其执行函数可以是“ssize_t ecwrite(int fd,uint64_t tid,const void*buf,size_t count)”可以进行如下信息的定义:
fd:文件句柄;
tid:当前写操作事务号,例如,可以是版本号,全局唯一;
buf:当前写数据内容;
count:当前写数据长度。
另一种可能的实现方式是,扩展Posix提供的writev(其表征的是将多个数据存储在一起,将驻留在两个或更多的不连接的缓冲区中的数据一次写出去的接口)用于区分纠删码的写操作,其函数可以是“Ssize_t writev(int fd,iovec iov,size_t count)”。可以进行如下信息的定义:
fd:文件句柄;
iov:buffer数组,用户数据;
count:数据个数。
通过将iov数组最后一个征用为类型区分定义,在数据写入是将这部分占用的空间去除掉进而做到特殊含义,如数组的标识信息。
例如:
Struct ecinfo{
Uint64_t tid;//当前写事务
Int magic;//魔法数字,校验码
}。
在本发明实施例中还包括了元数据结构扩展,其中,元数据是描述数据的数据。在元数据索引节点(inode)中扩展4字节存储对应的标识信息(nat page id),其中数据存储区域(page)以双向链表的形式存储ec node page(纠删码节点存储区域)信息。该page记录了修改写内容可以如下:
Struct tidinfo{
Uint64 tid;//修改写事务
Int offset;//修改写对应的文件偏移
Int length;//修改写对应数据块长度
Int nid;//nid扩展块地址,超过32个块地址存储的page
struct f2fs_blkaddr addr[32]//内敛块地址
}。
参见图3,其示出了本申请实施例提供的一种元数据整体结构及原理示意图。在图3示出的实施例中元数据是针对NAT结构描述的,也可以针对其他结构,元数据整体结构及原理与该实施例类似,本申请不做一一赘述。NodeAddress Table,简称NAT,是F2FS用于管理node(节点)的结构,记录了每一个node分配了一个nodeID(简称nid,节点标识),系统可以根据nid从NAT查找到该node在flash设备上的物理地址,然后从flash设备读取出来。
通常F2FS会将整个卷分为以下区域:SB(super block)具有基本分区信息和F2FS的默认参数,在格式化是生成且不可更改;CB(检查点)保存文件系统状态;SIT(段信息表)包含段信息,如有效块的数量以及主要区域中所有有效性的位图;NAT(节点地址表)是找到主区域中存储的所有“节点块”的块地址表;SSA(段摘要区域)存储代表主区域中所有块所有者信息的摘要条目。需要说明的是,由于本申请的实施例为了便于实现纠删码的覆盖写,因此,还增加了节点块进入区域(Nat entry),其包括ino(inode,索引节点)可以通过其获得索引信息表中的相关信息,还包括blockaddress(块地址)表示数据块的位置信息。
在本申请的索引列表中包括inode(索引节点)其用来存储索引信息,ec nid(纠删码块地址标识),通过该索引列表可以获得在纠删码数据写入时对应的版本信息和写入位置信息。
在图3的中间部分,示出了纠删码节点(ec node)的结构,其包括页眉(header)、页脚(footer)和纠删码入口区域(ec entry),其中,ec entry包括了有效位置和无效位置(或者是未使用区域),有效位置用于记录写操作事务号(tid),该事务号可以是版本号,是一个全局唯一的标识。无效区域是记录的信息无效,未使用区域可以是未写入任何内容的区域。其中,有效位置可以记录的信息为地址信息(address)、扩展块地址标识(extent nid)、写操作事务号(tid)、块数量信息(blockcount)以及补偿信息(offset)等。对应的,页眉、页脚内容可以根据实际应用需求进行自定义。例如,页眉部分可以包括:填充信息(padding)、最后的块地址标识(last nid)、下一个块地址标识(next nid)、上一个块地址标识(prenid)、版本信息(version)、写操作事务计数(tid count)、启动位置信息(start pos)等信息。具体的,可以通过下一个块地址标识访问下一个ec node,通过上一个块地址标识访问上一个ec node。
当在进行纠删码写操作时,若当前数据区域的可写入数据长度小于待写入数据的长度,可以通过扩展块地址标识获得对应的扩展纠删码节点(extent ec node),得到数据可写入的扩展区域。然后通过有效区域的块地址将数据写入其对应的数据页(data page),通过扩展纠删码写入地址将数据写入对应的数据页。
本申请实施例通过图3示出的元数据结构扩展,实现了同一个位置对应的数据支持多个版本,即图3中不同的有效区域对应不同的tid可以是不同的版本,可以实现纠删码覆盖写的数据块可以通过版本进行管理,从而实现了不增加额外读写的情况下可以回滚到任意一个版本。
参见图4,其示出了本申请提供的一种数据写入流程示意图,包括以下步骤:
S301、判断纠删码块地址标识是否存在,如果是执行步骤S302,否则执行步骤S303。
该步骤是用来确定纠删码是否被写满。
S302、查看当前纠删码数据块是否已满,如果是则执行S303,否则执行步骤S304。
S303、申请新的纠删码块地址标识。
S304、当前修改写长度是否大于128K,如果是则执行S305,否则执行步骤S306。
S305、申请扩展块地址。
S306、读取当前写偏移及长度对应的块地址记录到内联块地址中。
S307、读取当前写偏移及长度对应的块地址记录到大容量块地址中。
S308、置空原始块地址,更新数据块地址逆向描述信息。
参见图5,其示出了本申请实施例提供的一种数据回滚的流程示意图。
S401、判断当前文件索引节点中纠删码块地址是否存在,如果存在执行步骤S402,否则结束;
S402、判断回滚的版本号是否在列表中,如果存在执行S403,否则结束;
S403、根据版本信息匹配到存储区域里涵盖的块地址信息。
S404、释放原始位置对于的块地址。
S405、判断是否申请了扩展数据块,如果是执行步骤S406,否则执行步骤S407。
S406、获取扩展数据块,执行步骤S408。
S407、获取内联纠删码数据块中记录的块地址还原到原始文件。
S408、读取扩展块地址中记录的数据块地址,还原到原始文件对应的位置。
S409、更新当前版本对应的数据状态,为已回滚状态,更新逆向信息,关联数据文件及位置信息。
本申请实施例提供了一种数据处理方法,在对待写入数据进行写入时,确定是否存在于待写入数据的第一数据,若存在确定第一数据的第一数据标识以及对应的第一存储区域;生成待写入的第二数据标识,并写入与之对应的第二数据区域。这样在接收到数据回滚指令,可以基于目标数据标识确定对应的目标存储区域,获得回滚数据。实现了相关数据可以基于数据标识写入,不需要经过读写写入的低效率备份方式来支持回滚,可以基于数据标识回滚到对应的数据,提升了数据处理效率。
参见图6,在本申请实施例中还提供了一种数据处理装置,包括:
第一确定单元10,用于若存在与接收到的待写入数据对应的第一数据,确定所述第一数据的第一数据标识,使得通过所述第一数据标识能够获得所述第一数据对应的第一存储区域;
生成单元20,用于生成所述待写入数据的第二数据标识,所述第二数据标识与所述第一数据标识不同,所述第二数据标识对应与所述第一存储区域不同的第二存储区域;
写入单元30,用于将所述待写入数据写入所述第二存储区域;
获取单元40,用于响应于接收到数据回滚指令,获取与所述数据回滚指令对应的目标数据标识;
第二确定单元50,用于基于所述目标数据标识确定目标存储区域,使得通过所述目标存储区域获得回滚数据。
在上述实施例中,所述装置还包括:
索引生成单元,用于生成存储区域的存储数据的索引,所述索引表征所述存储区域的存储数据的位置信息和数据标识的映射关系;
索引存储单元,用于将所述索引存储在索引存储区域;
其中,所第二确定单元具体用于:
调用所述索引存储区域的索引,并基于所述索引获取与所述目标数据标识对应的目标存储区域;
获取所述目标存储区域的回滚数据。
在上述实施例的基础上,所述写入单元还用于:
若不存在与所述待写入数据对应的第一数据,将所述待写入数据写入空闲存储区域。
在上述实施例的基础上,所述写入单元具体用于:
基于所述索引,获取所述第二存储区域的数据待写入地址;
根据所述待写入地址,确定所述第二存储区域的数据可写入长度;
若所述数据可写入长度大于等于所述待写入数据的数据长度,将所述待写入数据写入所述第二存储区域;
若所述数据可写入长度小于所述待写入数据的数据长度,确定数据扩展区域,将所述待写入数据写入所述数据扩展区域。
在上述实施例的基础上,所述装置还包括:
索引更新单元,用于基于所述待写入数据对应的数据扩展区域的写入地址和所述待写入数据的第二数据标识,更新所述索引。
在上述实施例的基础上,所述第二确定单元还用于:
基于所述目标数据标识对应的存储数据的位置信息,确定是否包括数据扩展区域;
如果否,在所述目标存储区域获取目标数据;
如果是,在所述数据扩展区域获取目标数据。
在上述实施例的基础上,所述数据回滚指令包括纠删码回滚请求,所述装置还包括:
信息添加单元,用于响应于对所述回滚数据完成数据回滚,在所述回滚数据对应的数据标识中添加回滚状态信息。
在上述实施例的基础上,所述装置还包括:
删除单元,用于如果所述目标存储区域存储有多个不同数据标识的数据,检测是否有数据满足删除条件,若是,将满足删除条件的数据在所述目标存储区域删除;
所述索引更新单元,还用于根据删除后的数据更新所述索引存储区域的索引。
基于前述实施例,本申请的实施例提供了一种电子设备,包括:存储器、处理器和用于存储在在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时用于实现如上所述的任一项所述的数据处理方法以及与所述数据处理方法相关的子步骤或者关联步骤。
基于前述实施例,本申请的实施例提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如上任一项的数据处理方法的步骤。
需要说明的是,上述处理器或CPU可以为特定用途集成电路(ApplicationSpecific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable GateArray,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
需要说明的是,上述计算机存储介质/存储器可以是只读存储器(Read OnlyMemory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,包括:
若存在与接收到的待写入数据对应的第一数据,确定所述第一数据的第一数据标识,使得通过所述第一数据标识能够获得所述第一数据对应的第一存储区域;
生成所述待写入数据的第二数据标识,所述第二数据标识与所述第一数据标识不同,所述第二数据标识对应与所述第一存储区域不同的第二存储区域;
将所述待写入数据写入所述第二存储区域;
响应于接收到数据回滚指令,获取与所述数据回滚指令对应的目标数据标识;
基于所述目标数据标识确定目标存储区域,使得通过所述目标存储区域获得回滚数据。
2.根据权利要求1所述的方法,所述方法还包括:
生成存储区域的存储数据的索引,所述索引表征所述存储区域的存储数据的位置信息和数据标识的映射关系;
将所述索引存储在索引存储区域;
其中,所述基于所述目标数据标识确定目标存储区域,包括:
调用所述索引存储区域的索引,并基于所述索引获取与所述目标数据标识对应的目标存储区域;
获取所述目标存储区域的回滚数据。
3.根据权利要求1所述的方法,所述方法还包括:
若不存在与所述待写入数据对应的第一数据,将所述待写入数据写入空闲存储区域。
4.根据权利要求2所述的方法,所述将所述待写入数据写入所述第二存储区域,包括:
基于所述索引,获取所述第二存储区域的数据待写入地址;
根据所述待写入地址,确定所述第二存储区域的数据可写入长度;
若所述数据可写入长度大于等于所述待写入数据的数据长度,将所述待写入数据写入所述第二存储区域;
若所述数据可写入长度小于所述待写入数据的数据长度,确定数据扩展区域,将所述待写入数据写入所述数据扩展区域。
5.根据权利要求4所述的方法,所述方法还包括:
基于所述待写入数据对应的数据扩展区域的写入地址和所述待写入数据的第二数据标识,更新所述索引。
6.根据权利要求4所述的方法,所述通过所述目标存储区域获得回滚数据,包括:
基于所述目标数据标识对应的存储数据的位置信息,确定是否包括数据扩展区域;
如果否,在所述目标存储区域获取目标数据;
如果是,在所述数据扩展区域获取目标数据。
7.根据权利要求1所述的方法,所述数据回滚指令包括纠删码回滚请求,所述方法还包括:
响应于对所述回滚数据完成数据回滚,在所述回滚数据对应的数据标识中添加回滚状态信息。
8.根据权利要求2所述的方法,所述方法还包括:
如果所述目标存储区域存储有多个不同数据标识的数据,检测是否有数据满足删除条件,若是,将满足删除条件的数据在所述目标存储区域删除;
根据删除后的数据更新所述索引存储区域的索引。
9.一种数据处理装置,包括:
第一确定单元,用于若存在与接收到的待写入数据对应的第一数据,确定所述第一数据的第一数据标识,使得通过所述第一数据标识能够获得所述第一数据对应的第一存储区域;
生成单元,用于生成所述待写入数据的第二数据标识,所述第二数据标识与所述第一数据标识不同,所述第二数据标识对应与所述第一存储区域不同的第二存储区域;
写入单元,用于将所述待写入数据写入所述第二存储区域;
获取单元,用于响应于接收到数据回滚指令,获取与所述数据回滚指令对应的目标数据标识;
第二确定单元,用于基于所述目标数据标识确定目标存储区域,使得通过所述目标存储区域获得回滚数据。
10.一种电子设备,包括:
存储器、处理器和用于存储在在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时用于实现权利要求1-7中任一项所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011175058.1A CN112286725A (zh) | 2020-10-28 | 2020-10-28 | 数据处理方法、装置及电子设备 |
US17/474,620 US11782629B2 (en) | 2020-10-28 | 2021-09-14 | Data processing method, device, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011175058.1A CN112286725A (zh) | 2020-10-28 | 2020-10-28 | 数据处理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286725A true CN112286725A (zh) | 2021-01-29 |
Family
ID=74372432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011175058.1A Pending CN112286725A (zh) | 2020-10-28 | 2020-10-28 | 数据处理方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11782629B2 (zh) |
CN (1) | CN112286725A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031869A (zh) * | 2021-03-25 | 2021-06-25 | 联想凌拓科技有限公司 | 一种数据处理方法、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226515A (zh) * | 2013-03-20 | 2013-07-31 | 成都瑞科电气有限公司 | 一种数字仪表电度分区存储方法 |
CN105095025A (zh) * | 2015-08-28 | 2015-11-25 | 小米科技有限责任公司 | 恢复ext文件系统中已删除文件的方法及装置 |
CN109445692A (zh) * | 2018-10-18 | 2019-03-08 | 深圳市硅格半导体有限公司 | 基于网络的数据存储方法、终端、服务器和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10067831B2 (en) * | 2009-12-29 | 2018-09-04 | International Business Machines Corporation | Slice migration in a dispersed storage network |
US9116793B2 (en) * | 2012-06-12 | 2015-08-25 | International Business Machines Corporation | Maintaining versions of data in solid state memory |
WO2014162586A1 (ja) * | 2013-04-05 | 2014-10-09 | 株式会社日立製作所 | ストレージシステムおよびストレージシステム制御方法 |
CN109684307B (zh) * | 2018-12-26 | 2021-06-22 | 百度在线网络技术(北京)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
-
2020
- 2020-10-28 CN CN202011175058.1A patent/CN112286725A/zh active Pending
-
2021
- 2021-09-14 US US17/474,620 patent/US11782629B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226515A (zh) * | 2013-03-20 | 2013-07-31 | 成都瑞科电气有限公司 | 一种数字仪表电度分区存储方法 |
CN105095025A (zh) * | 2015-08-28 | 2015-11-25 | 小米科技有限责任公司 | 恢复ext文件系统中已删除文件的方法及装置 |
CN109445692A (zh) * | 2018-10-18 | 2019-03-08 | 深圳市硅格半导体有限公司 | 基于网络的数据存储方法、终端、服务器和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031869A (zh) * | 2021-03-25 | 2021-06-25 | 联想凌拓科技有限公司 | 一种数据处理方法、设备及计算机可读存储介质 |
CN113031869B (zh) * | 2021-03-25 | 2023-02-03 | 联想凌拓科技有限公司 | 一种数据处理方法、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11782629B2 (en) | 2023-10-10 |
US20220129160A1 (en) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110531940B (zh) | 视频文件处理方法及装置 | |
US8024507B2 (en) | Transaction-safe FAT file system improvements | |
US8156165B2 (en) | Transaction-safe FAT files system | |
US7694087B2 (en) | Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
US7587562B2 (en) | Data duplication system, data duplication method and program | |
CN106951375B (zh) | 在存储系统中删除快照卷的方法及装置 | |
CN106326229B (zh) | 一种嵌入式系统的文件存储方法和装置 | |
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN101515276A (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
US11030092B2 (en) | Access request processing method and apparatus, and computer system | |
KR20010037155A (ko) | 플래시 파일 시스템 | |
CN108664482B (zh) | Flash存储器及存储文件管理方法 | |
CN110187834B (zh) | 重删副本的数据处理方法、装置、电子设备 | |
US11487428B2 (en) | Storage control apparatus and storage control method | |
CN112286725A (zh) | 数据处理方法、装置及电子设备 | |
CN114217741A (zh) | 存储装置的存储方法及存储装置 | |
CN114924911A (zh) | Windows操作系统有效数据备份方法、装置、设备和存储介质 | |
CN109284270B (zh) | 一种分布式文件系统存储模块的部署优化方法及装置 | |
CN115480692A (zh) | 一种数据压缩方法及装置 | |
JPH0816881B2 (ja) | データベース更新方法 | |
CN117519612B (zh) | 基于索引在线拼接的海量小文件存储系统与方法 | |
CN116126591B (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 |