CN115422135A - 数据处理方法以及装置 - Google Patents
数据处理方法以及装置 Download PDFInfo
- Publication number
- CN115422135A CN115422135A CN202211020847.7A CN202211020847A CN115422135A CN 115422135 A CN115422135 A CN 115422135A CN 202211020847 A CN202211020847 A CN 202211020847A CN 115422135 A CN115422135 A CN 115422135A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- log
- marking
- node
- 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/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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/18—File system types
- G06F16/182—Distributed file systems
Abstract
本说明书实施例提供数据处理方法以及装置,其中所述数据处理方法包括:接收针对数据文件的标记操作指令,并将标记操作指令关联的标记操作信息存储至操作日志;在操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点。根据操作日志更新数据操作表,进而根据数据操作表确定目标数据节点,在目标数据节点处执行标记操作,实现了基于标记操作指令对数据文件的协同处理。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。
背景技术
随着互联网技术的不断发展,为了实现可靠的海量数据存储,目前多采用分布式存储系统。分布式存储系统广泛采用三副本机制,例如键值对(key-value)分布式存储系统,从而在不同位置分别对数据进行存储以提高数据存储的可靠性。当前的分布式存储系统包括三层架构,底层的分布式文件系统、中层的KV存储引擎、上层的计算引擎层,在这种分布式存储系统的结构下,为了保证数据的可靠性,数据的删除、修改等都采用Append-Only(仅追加)方式进行,于是在多层架构的分布式存储系统中,中间KV类存储引擎层和底部单机存储引擎层均采用上述方式处理数据。在后续进行内存释放时,需要每一层各自进行垃圾回收处理,导致带来更大的写放大,垃圾数据增加,从而影响整体系统性能。
因此,如何降低分布式存储系统进行垃圾回收处理过程中产生的写放大、减少垃圾数据、降低存储成本、提高系统性能是目前亟需解决的问题。
发明内容
有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种数据处理系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志;
在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;
基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点。
根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
接收模块,被配置为接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志;
更新模块,被配置为在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;
发送模块,被配置为基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点。
根据本说明书实施例的第三方面,提供了一种数据处理系统,包括:
服务端,用于接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志;在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点;
所述目标数据节点,用于基于所述数据操作请求对本地存储空间中的待操作数据区间进行标记,并根据标记结果生成状态更新信息发送至所述服务端;
所述服务端,还用于接收所述操作状态信息,并记录至更新后的数据操作表。
根据本说明书实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据处理方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
本说明书一个实施例通过接收针对数据文件的标记操作指令,并将标记操作指令关联的标记操作信息存储至操作日志;在操作日志满足日志信息处理条件的情况下,根据操作日志中记录的标记操作信息更新数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将数据操作请求发送至所述目标数据节点。根据操作日志更新数据操作表,进而根据数据操作表确定目标数据节点,在目标数据节点处执行标记操作,实现了基于标记操作指令对数据文件的协同处理。
附图说明
图1是本说明书一个实施例提供的一种数据处理方法的结构示意图;
图2-1是本说明书一个实施例提供的一种数据处理方法的流程图;
图2-2是本说明书一个实施例提供的一种数据处理方法的示意图;
图3是本说明书一个实施例提供的一种数据处理方法的处理过程流程图;
图4是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图5是本说明书一个实施例提供的一种数据处理系统的结构示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
Append-only:仅支持追加写,不支持随机修改的写入模式。
文件:由文件名或文件Id唯一标识的一段连续存储数据。每个文件由一个或多个Chunk组成。
Chunk:Chunk是存储文件中的一段连续区间的数据,每个Chunk可以为多副本Chunk,或者纠删码Chunk。
Replica:Replica是Chunk存储到单机存储引擎的一段连续数据的数据块。多副本Chunk,每个Replica相同;纠删码Chunk,每个Replica存储满足纠删码切片和排布规则的数据分片,每个分片的数据不同。
KV存储引擎:指在分布式文件系统之上构建的以Key-Value方式存储数据,提供以Key方式访问数据的引擎。
ZNS-SSD:(Zoned Namespace,分区命名空间)-(Solid State Disk,固态硬盘)是在SSD基础上发展而来的,实现了把FTL(Flash Translation Layer,闪存转换层)从SSD内部迁移到上层的Host端,把SSD内部开放给了Host端,实现用户可以根据自己需要比较灵活的拥有自己特定的FTL。
在本说明书中,提供了一种信息处理方法,本说明书同时涉及一种信息处理装置,一种计算设备,一种信息处理系统,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
目前,在对象存储,文件存储,表格存储,块存储等各类分布式存储系统,以及分布式分析型数据库,分布式事务型数据库以及分析型事务型混合数据库等数据库系统中,广泛采用一种三层架构。最底层采用Append-Only的分布式文件系统做高可靠,高可用的持久化存储,中间层采用各类KV存储作为行存引擎,或列存引擎,或行列混合引擎,上层是前端接入层或者计算引擎层。而在该类架构中,数据的删除,修改及更新,都采用以Append-Only的方式写Log来实现,以充分利用存储介质的访问特性,以及提升写入吞吐能力,然后在后台GC(垃圾回收)流程,做到被覆盖或已删除数据的物理空间释放。因此,在该类架构中,KV层的GC优化,是该技术架构的关键技术,也是相关技术人员持续优化和突破的方向。
而随着底层分布式文件系统越来越多的支持ZNS-SSD等仅支持Append-only的存储介质,分布式文件系统的单机存储层也采用类似KV的存储结构,数据的删除,修改和更新采用Append-Only写Log的方式来实现,依赖后台GC真正做到被覆盖或已删除数据的物理空间释放;因此,中间KV类存储引擎层及底层分布式文件系统层各自独立做GC的方式,缺乏协同,会带来更大的写放大,垃圾数据增加,从而影响整体系统性能,成本,降低系统的竞争力。
有鉴于此,参见图1所示的结构示意图。在分布式文件系统中,对文件中的数据进行删除时,可以对待删除的数据进行标记,在向数据文件中写入数据时,可以将待写入的数据写入到被标记的待删除数据的存储位置,其中,对待删除的数据进行标记的操作即为trim操作。数据文件中包括chunk1、chunk2、chunk3等多段连续的数据区间,每段连续的数据区间又包括多个数据块(Replica)。在对数据文件中存储的数据进行trim操作时,可以基于trim操作请求在数据文件中确定至少一段连续的数据区间,将trim操作关联的数据区间、seqId等操作信息记录至操作日志中,其中seqId为操作日志中的自增ID,每写入至操作日志中一条日志信息,均为日志信息分配一个seqId。在执行trim操作时,读取操作日志中记录的日志信息,读取出的日志信息转换为数据操作表中的一条标记操作信息,更新数据操作表,即,将chunkId对应的偏移量Offset、长度Length等标记操作信息写入数据操作表。根据数据操作表中存储的一条标记操作信息可以确定分布式文件系统中相应的数据节点,将数据操作请求发送至数据节点,由数据节点执行trim操作。
在Append-Only的分布式文件系统中,还新增了提供支持数据强一致的Trim接口。Trim的接口包含:数据文件的唯一标识fileId,文件内偏移offset,Trim的长度length等关键信息,以及其他接口参数。对不再需要的数据,调用分布式文件系统的Trim接口;如果调用Trim接口,Trim调用返回成功后,业务对Trim后的数据进行读取时,返回0,表示数据已经完成trim操作,不可被读取;如果调用Trim接口,Trim调用返回失败后,表示数据未完成trim操作,对Trim后的数据进行读取时,返回Trim前原数据。此外,对于trim操作,新增了日志文件,将trim操作成功记录到日志文件中之后,返回trim调用成功,未成功记录到日志文件中,则返回trim调用失败。
参见图2-1,图2-1示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,所述方法应用于服务端,具体包括以下步骤。
步骤S202,接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志。
具体的,数据文件是计算机系统中的一种文件类型,可以用于存储多种类型的数据。在分布式文件系统中,数据文件具有文件标识,由一个或多个数据区间组成,每个数据区间又包括多个数据块。标记操作指令是指用于对数据文件中的数据进行标记操作的计算机指令,标记操作指令通常携带标记操作信息,标记操作信息包含需要进行标记操作的数据区间信息,以及操作日志中用于标记日志中存储的标记操作信息的序号,即,ID,其中,操作日志用于记录标记操作信息。
基于此,在分布式文件系统中,对数据文件进行标记处理,可以在接收到针对数据文件的标记操作指令后,根据标记操作指令中携带的数据文件信息,确定标记操作指令关联的标记操作信息,将标记操作信息存储至与数据文件关联的操作日志中,以便于后续基于操作日志中存储的标记操作信息实现对数据文件的标记操作处理。
举例说明,在对分布式文件系统中存储的用户A的订单信息a进行删除的场景下,由于用户A的订单信息a在分布式文件系统包含的数据文件中的存储形式可能为多副本存储,在进行数据标记操作时,能够对多个副本中包含的数据进行标记操作,即,订单信息a会被拆分成数据1,数据2,数据3等三个数据组成部分,分别存储在数据文件的3个不同的连续的数据区间中。因此在接收到针对用户A的订单信息a的删除指令后,可以将用户A的订单信息a相关的数据区间信息存储在操作日志中,等待对用户A的订单信息a进行删除处理。
进一步的,在将标记操作信息存储至操作日志中时,可以将标记操作信息存储至与数据文件具有唯一对应关系的操作日志中,还可以将标记操作信息存储至用于存储多个数据文件对应的标记操作信息的操作日志中,具体实现如下:
将所述标记操作指令关联的标记操作信息存储至所述数据文件关联的操作日志,其中,所述操作日志根据所述数据文件的历史操作指令创建;或者,将所述数据文件关联的目标操作日志作为操作日志,并将所述标记操作指令关联的标记操作信息存储至所述操作日志,其中,所述目标操作日志用于存储至少两个数据文件关联的标记操作信息。
具体的,历史操作指令是指在将标记操作信息存储至操作日志之前,用于向操作日志中存储操作信息的计算机指令;目标操作日志是指与至少两个数据文件具有关联关系的操作日志,即,基于至少两个数据文件中的每个数据文件提交的标记操作指令,均将操作指令对应的标记操作信息存储至目标操作日志中。
基于此,在将标记操作信息存储至操作日志中时,可以将标记操作信息存储至与数据文件具有唯一对应关系的操作日志中,还可以将标记操作信息存储至用于存储多个数据文件对应的标记操作信息的操作日志中。在接收到标记操作指令时,可以将标记操作指令关联的标记操作信息存储至与数据文件存在关联的操作日志中。操作日志可以是根据数据文件的历史操作指令创建的,在不存在与数据文件关联的操作日志的情况下,可以创建与数据文件对应的操作日志,并将标记操作信息存储至操作日志中;还可以将数据文件关联的目标操作日志作为操作日志,并将标记操作指令关联的标记操作信息存储至操作日志。目标操作日志用于存储至少两个数据文件关联的标记操作信息。
具体实施时,在将数据文件对应的标记操作信息存储至操作日志时,可以确定与数据文件唯一对应的一个操作日志,将数据文件存储至确定的操作日志中,在不存在与数据文件对应的操作日志时,可以针对数据文件创建操作日志,将数据文件对应的标记操作信息存储至创建的操作日志中;还可以多个数据文件共用一个操作日志,采用多对一的方式,将多个数据文件对应的标记操作信息存储至一个操作日志中。从而提高操作日志的利用率。
沿用上例,在将用户A的订单信息a相关的数据区间信息存储在操作日志中时,可以根据用户A的订单信息a所对应的数据文件的不同写入不同的操作日志。实际应用中,可以将针对数据文件A提交的删除指令对应的日志信息,存储在与数据文件A唯一对应的操作日志A中,还可以将针对数据文件A提交的删除指令对应的日志信息,存储在操作日志B中,操作日志B用于存储数据文件A、数据文件B、数据文件C等多个数据文件对应的日志信息。
综上所述,在将标记操作信息存储至操作日志时,可以将标记操作信息存储至于数据文件具有唯一对应关系的操作日志中,也可以将标记操作信息存储至用于存储多个数据文件对应的标记操作信息的操作日志中,从而提高了标记操作信息存储的灵活性。
步骤S204,在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表。
具体的,在上述将标记操作指令关联的标记操作信息存储至操作日志中之后,可以在操作日志满足日志信息处理条件的情况下,对操作日志中记录的标记操作信息进行处理,其中,日志信息处理条件是指预先设定的,用于确定是否可以处理操作日志中存储的标记操作信息的处理条件,在本实施例中,日志信息处理条件包括:在操作日志中存储的标记操作信息数量达到设定的数量阈值时,确定操作日志满足日志信息处理条件;预设日志处理周期,在达到预设日志处理周期时,确定操作日志满足日志信息处理条件。数据操作表用于存储与数据文件对应的待处理数据的相关信息,包括但不限于数据区间信息、偏移地址信息、长度信息,处理状态信息等。
基于此,从日志处理周期、日志中的信息量等多个维度对操作日志是否满足日志信息处理条件进行判断,在操作日志满足日志信息处理条件的情况下,读取操作日志中存储的标记操作信息,根据读取到的操作日志中记录的标记操作信息更新数据文件关联的数据操作表,将与标记操作信息关联的数据记录在数据操作表中。
沿用上例,在操作日志中记录的日志信息数量达到预设的数量阈值20时,确定操作日志满足日志信息处理条件,从操作日志中按照日志信息的写入顺序读取:删除用户A的订单信息a对应的日志信息:数据区间1-数据1,根据日志信息中记录的“数据区间1-数据1”生成数据操作表中的一条记录:数据区间1-偏移1-长度1-状态空,并将此记录存储在与数据文件对应的数据操作表中。
进一步的,在将标记操作指令关联的标记操作信息存储至操作日志之后,即可根据操作日志中存储的标记操作信息对于数据文件关联的数据操作表进行更新,具体实现如下:
读取所述操作日志中记录的所述标记操作信息,并根据所述标记操作信息确定与所述数据文件关联的数据区间信息,其中,所述数据区间信息关联所述数据文件包含的数据区间;根据所述数据区间信息确定数据块操作信息,并根据所述数据块操作信息更新所述数据文件关联的数据操作表。
具体的,数据区间信息是指数据文件包含的数据区间对应的区间信息,数据文件中包含至少一段连续的数据区间,操作日志中存储的标记操作信息则包含数据区间信息;一段连续的数据区间对应多个数据块,相应的,数据块操作信息则是指与待删除数据关联的操作信息,包括但不限于数据块对应的偏移地址,长度,数据块操作状态等信息。
基于此,在将标记操作指令关联的标记操作信息存储至操作日志,且操作日志满足日志信息处理条件的情况下,读取操作日志中记录的标记操作信息。根据标记操作信息关联的数据区间确定与数据文件关联的数据区间信息。根据数据区间信息确定与标记操作指令对应的数据块操作信息,并根据数据块操作信息更新数据文件关联的数据操作表。
沿用上例,在确定了操作日志中记录的日志信息:数据区间1-数据1之后,根据数据区间1,数据1确定数据1在数据区间1中的存储位置,确定与日志信息对应的数据块相关信息:数据区间1-偏移1-长度1-状态空,并将此信息记录在数据操作表中。
综上所述,通过读取标记操作信息确定与标记操作信息关联的数据区间信息,进而根据与标记操作信息关联的数据区间信息实现对数据操作表进行更新,从而实现操作日志与数据操作表的协同操作。
进一步的,在将标记操作指令关联的标记操作信息存储至操作日志,实现对操作日志新增标记操作信息之后,即可对新增标记操作信息进行处理;还可以按照预设日志查询周期对操作日志中包含的日志信息进行查询,对查询到的新增标记操作信息进行处理,具体实现如下:
在所述操作日志中新增标记操作信息的情况下,确定所述操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤;或者,按照预设日志查询周期对所述操作日志中包含的日志信息进行查询,根据查询结果确定所述标记操作信息为新增标记操作信息的情况下,确定所述操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤。
具体的,预设日志查询周期是指针对操作日志预先设定的查询周期,按照预设日志查询周期对操作日志进行周期性查询,进而确定操作日志中需要进行处理的标记操作信息,并对标记操作信息进行处理。
基于此,在将标记操作指令关联的标记操作信息存储至操作日志之后,则确定操作日志中新增标记操作信息,此时确定操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤;或者,在将标记操作指令关联的标记操作信息存储至操作日志之后,按照预设日志查询周期对操作日志中包含的日志信息进行周期性查询,根据查询结果确定所述标记操作信息为新增标记操作信息的情况下,确定操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤。
沿用上例,与数据文件A对应的操作日志中记录了待删除的用户A的订单信息a对应的数据区间1-数据1,数据区间2-数据2,数据区间3-数据3等日志信息,此外还会对操作日志中每条日志信息的处理状态进行记录,当日志信息数据区间1-数据1处理完成后,会被标记为“已完成”,因此在对操作日志中的日志信息进行处理时,可以在操作日志中新增了一条日志信息:数据区间3-数据3,就对此日志信息进行处理;还可以针对日志设置查询周期10分钟,每隔十分钟对操作日志进行一次查询,当查询到操作日志中新增了日志信息:数据区间1-数据4时,对此日志信息进行处理。
综上所述,在操作之日志中新增标记操作信息,以及按照预设日志查询周期对操作日志进行周期性查询,获得查询结果时均可确定操作日志满足日志信息处理条件,即可根据操作日志中记录的标记操作信息更新数据文件关联的数据操作表,从而提高了对操作日志进行处理的灵活性。
步骤S206,基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点。
具体的,在上述根据操作日志中记录的标记操作信息完成对数据文件关联的数据操作表的更新后,即可根据数据操作表中记录的信息生成对应目标数据节点的数据操作请求,将数据操作请求发送至目标数据节点,其中,目标数据节点是指用于存储数据文件中的数据的节点,在本实施例中,目标数据节点可以为单机存储引擎,由目标数据节点执行数据标记操作;数据操作请求是指针对目标数据节点提交的请求,用于告知目标数据节点对数据进行标记操作。
基于此,在根据操作日志中记录的标记操作信息完成对数据文件关联的数据操作表的更新后,基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将数据操作请求发送至目标数据节点,由目标数据节点接收数据操作请求后,对数据节点中存储的数据进行标记操作。
沿用上例,在将日志信息对应的数据块相关信息:数据区间1-偏移1-长度1-状态空,记录在数据操作表中完成对数据操作表的更新后,读取数据操作表中存储的记录1:数据区间1-偏移1-长度1-状态空,根据此记录生成数据删除请求,发送至与数据区间1对应的分布式文件系统中的多个数据节点,包含主数据节点和多个副本数据节点,由数据节点对记录1对应的数据块中的数据进行删除操作,需要说明的是,对数据块中的数据进行删除操作,只是对数据进行标记,而不是将数据从数据块中删除,对数据进行标记表示在有其他数据进行存储时,可以存储至被标记的数据对应的存储位置。
进一步的,在数据操作表更新后,即可根据数据操作表中存储的数据块操作信息生成数据操作请求,并将数据操作请求发送至与数据块对应的目标数据节点,由目标数据节点执行标记操作,具体实现如下:
在更新后的数据表中读取所述数据块操作信息;根据所述数据块操作信息中包含的物理地址信息,生成对应所述目标数据节点的数据操作请求,其中,所述数据操作请求关联所述数据文件的数据块,且所述数据块存储于所述目标数据节点。
具体的,数据块操作信息是指数据操作表中记录的用于对待删除数据进行处理的描述信息,包括数据区间信息,以及与数据区间信息关联的偏移地址、偏移长度以及处理状态信息。其中,偏移地址信息以及偏移长度即为物理地址信息,用于在目标数据节点中确定数据块,以及待删除数据。
基于此,根据操作日志中记录的日志信息完成对数据操作表的更新后,即可在更新后的数据表中读取记录的数据块操作信息。根据读取到的数据块操作信息中包含的物理地址信息在分布式文件系统中包含的数据节点中确定目标数据节点,生成对应目标数据节点的数据操作请求,数据操作请求与数据文件中的数据块相关联,数据块存储于目标数据节点。后续将数据操作请求发送至目标数据节点,由目标数据节点对数据块中存储的数据进行标记操作。
沿用上例,读取数据操作表中存储的记录1:数据区间1-偏移1-长度1-状态空。根据物理地址信息偏移1-长度1生成针对数据节点1中的数据块的数据删除请求,将数据删除请求发送至分布式文件系统包含的数据节点中与用户A的订单信息a对应的主数据节点10,和副本数据节点21、副本数据节点22。将数据删除请求分别发送至每个数据节点,由每个数据节点分别执行数据删除操作,完成对数据节点包含的数据块中存储的数据进行标记。
综上所述,通过读取数据块操作信息中包含的物理地址信息,生成对应目标数据节点的数据操作请求,进而将数据操作请求发送至目标数据节点,从而提高了目标数据节点确定的准确性。
进一步的,在将数据操作请求发送至目标数据节点之后,即可由目标数据节点执行数据操作请求,进而获得执行结果,考虑到目标数据节点存在执行数据操作请求失败的情况,为了能够实时记录数据操作情况,可以根据执行结果生成操作状态信息,并记录在数据操作表中,具体实现如下:
基于所述目标数据节点执行所述数据操作请求的执行结果确定操作状态信息,并记录至更新后的数据操作表。
具体的,在上述将数据操作请求发送至目标数据节点之后,即可由目标数据节点执行数据操作请求,进而获得执行结果,根据执行结果对数据操作表进行记录,其中,操作状态信息是指数据操作表中存储的标记操作信息对应的执行状态,包括执行成功以及执行失败,在目标数据节点执行标记操作成功的情况下,将数据操作表中相应的标记操作信息对应的状态信息记录为执行成功;在目标数据节点执行标记操作失败的情况下,将数据操作表中相应的标记操作信息对应的状态信息记录为执行失败。
基于此,在目标数据节点接收到数据操作请求后,由目标数据节点执行数据操作请求,获得与数据操作请求对应的执行结果,根据执行结果确定用于更新数据操作表的操作状态信息,将操作状态信息记录至更新后的数据操作表,实现对数据操作表中,标记操作信息对应的操作状态的更新。
沿用上例,在主数据节点10和副本数据节点21、副本数据节点22均完成了数据标记操作后,且操作成功的情况下,对数据操作表的记录1进行更新,即,将数据操作表中存储的记录1:数据区间1-偏移1-长度1-状态空,更新为“数据区间1-偏移1-长度1-标记成功”;在操作失败的情况下,对数据操作表的记录1进行更新,即,将数据操作表中存储的记录1:数据区间1-偏移1-长度1-状态空,更新为“数据区间1-偏移1-长度1-标记失败”。
综上所述,由目标数据节点执行数据操作请求,进而完成对数据的操作,以操作状态信息的形式将执行结果记录在数据操作表中,以便于在执行数据操作请求失败的情况下,重新基于数据操作表生成数据操作请求,进而通过失败后重试确保了数据能够被操作成功。
进一步的,在目标数据节点执行数据标记操作请求时,或执行数据标记操作完成之后,均可以对数据文件中存储的数据进行读取,在接收到针对数据文件的数据读取请求时,根据数据读取请求查询数据操作表,根据查询结果可以确定与数据读取请求对应的反馈结果,具体实现如下:
接收针对所述数据文件的数据读取请求;基于所述数据读取请求查询所述数据操作表;根据查询结果确定与所述数据读取请求对应的反馈结果。
具体的,数据读取请求是指用于读取数据文件中存储的数据的计算机指令;反馈结果是指与数据读取请求对应的数据读取结果,待读取的数据可能处于不可读取状态或可读取状态,在待读取的数据完成标记操作、正在进行标记操作、标记操作失败的情况下,待读取的数据处于不可读取状态,则无法进行数据读取;在待读取的数据未进行标记操作的情况下,表示操作日志中不存在与待读取的数据关联的日志信息,此时待读取的数据处于可被读取状态,反馈结果即为读取到的数据。
基于此,在对数据文件进行标记操作时,也可以对数据文件进行数据读取,在接收到针对数据文件的数据读取请求时,基于数据读取请求查询数据操作表,根据数据操作表中的操作状态信息确定与数据读取请求对应的反馈结果。
沿用上例,在查询用户B的订单信息b时,针对存储订单信息b的数据文件A提交数据读取请求,查询数据文件A关联的数据操作表A,根据待读取的数据在数据操作表A中的记录信息确定读取结果。
综上所述,在读取数据文件中存储的数据时,根据数据操作表中记录的状态信息确定反馈结果,从而反馈与数据读取请求对应的数据,保证了对数据读取请求进行响应的及时性。
进一步的,在基于数据读取请求读取数据文件存储的数据时,由于数据操作表中记录的标记操作信息的操作状态不同,因此会针对数据读取请求反馈不同的数据读取结果,具体实现如下:
在根据所述查询结果确定所述数据操作表中包含与所述数据读取请求对应的标记操作信息的情况下,生成提示信息并将所述提示信息作为所述反馈结果,其中,所述提示信息表示数据读取请求对应的待读取数据处于不可读取状态;在根据所述查询结果确定所述数据操作表中不包含与所述数据读取请求对应的标记操作信息的情况下,向所述数据读取请求对应的数据节点发送节点数据读取请求,并将所述数据节点针对所述数据读取请求反馈的原数据作为反馈结果。
具体的,提示信息是指基于数据读取请求反馈的信息,用于提示进行数据读取的操作方当前待读取数据处于不可读取状态,提示信息可以是文字提示,也可以反馈数字0表示数据读取失败;节点数据读取请求用于读取数据节点中存储的待读取数据,原数据是指数据节点中未成功执行标记操作的数据。
基于此,根据数据读取请求查询数据操作表,在数据操作表中查询到与数据读取请求对应的标记操作信息的情况下,表示与数据读取请求对应的待读取数据处于正在被标记状态,或者标记完成状态,或者开始被标记状态。在待读取数据处于任意一种状态的情况下,即便待读取数据被标记失败,仍然会对标记失败的待读取数据进行重新标记,直至待读取数据被标记成功,即,处于任意状态下的待读取数据均会被标记成功,因此在接收到数据读取请求时,若与数据读取请求对应的标记操作信息存储在数据操作表中,即可确定待读取数据处于不可读状态,根据处于不可读取状态的待读取数据生成提示信息并将提示信息作为与数据读取请求对应的反馈结果;根据数据读取请求查询数据操作表,未在数据操作表中查询到与数据读取请求对应的标记操作信息的情况下,表示与数据读取请求对应的待读取数据处于可读取状态,向数据读取请求对应的数据节点发送节点数据读取请求,并将数据节点针对数据读取请求反馈的原数据作为与数据读取请求对应的反馈结果。
沿用上例,在查询用户B的订单信息b时,针对存储订单信息b的数据文件A提交数据读取请求,查询数据文件A关联的数据操作表A,在数据操作表A中记录了订单信息b对应的数据的情况下,表示订单信息b对应的数据已被订单信息b对应的数据节点执行完成了删除操作,或正在执行删除操作,或开始执行删除操作,此时数据处于不可读取状态,反馈“读取失败”或“数据不可读取”等提示信息,或反馈数字0表示数据读取失败;在数据操作表A中未记录订单信息b的情况下,表示订单信息b对应的数据未被订单信息b对应的数据节点执行删除操作,此时数据处于可读取状态,由数据对应的数据节点反馈数据节点中存储的与订单信息b对应的原数据。
综上所述,在接收到数据读取请求时,根据数据操作表中标记操作信息对应的不同操作状态确定不同的反馈信息,在待读取数据处于不可读取状态时,反馈提示信息;在数据节点中存储的原数据未成功执行标记操作时反馈原数据,从而提高了数据反馈的及时性。
进一步的,数据文件关联多个数据节点,在确定目标数据节点时,可以根据数据文件的文件标识在分布式文件系统中包含的数据节点中确定第一数据节点,再在分布式文件系统包含的数据节点中确定关联第一数据节点的第二数据节点,具体实现如下:
确定所述数据文件对应的文件标识,并根据所述文件标识在分布式文件系统包含的数据节点中确定第一数据节点,以及在所述分布式文件系统包含的数据节点中确定关联所述第一数据节点的第二数据节点;将所述第一数据节点和所述第二数据节点作为目标数据节点。
具体的,文件标识是指在分布式文件系统中,用于确定唯一的数据文件的数据文件ID等标识信息;第一数据节点是指分布式文件系统包含的数据节点中与数据文件具有关联关系的至少一个数据节点,第一数据节点可以是数据文件关联的主数据节点,相应的,第二数据节点可以为数据文件关联的副数据节点,第二数据节点的数量为至少一个,由第一数据节点和第二数据节点构成了与数据文件对应的目标数据节点。
基于此,在确定与数据操作表中存储的标记操作信息对应的目标数据节点时,确定数据文件对应的文件标识,并根据文件标识在分布式文件系统包含的数据节点中确定第一数据节点,以及在分布式文件系统包含的数据节点中确定关联第一数据节点的第二数据节点;将第一数据节点和第二数据节点作为目标数据节点。
沿用上例,在分布式系统中,数据文件在进行存储时,可以存储至多个数据副本。根据数据文件的文件标识,即可确定与数据文件对应的主数据节点10,以及副本数据节点21和副本数据节点22。主数据节点10,副本数据节点21和副本数据节点22即为与数据文件对应的目标数据节点。
综上所述,根据数据文件对应的文件标识在分布式文件系统包含的数据节点中确定第一数据节点以及第二数据节点,将第一数据节点和第二数据节点作为与数据文件对应的目标数据节点。
进一步的,在接收到针对数据文件的目标数据读取请求时,确定与数据文件关联的第一数据节点,在第一数据节点不可用时,接收第二数据节点反馈的数据,具体实现如下:
接收目标数据读取请求;将所述目标数据读取请求发送至所述第一数据节点;在所述第一数据节点不可用的情况下,接收所述第二数据节点针对所述目标数据读取请求反馈的第二目标数据,其中,所述第二目标数据与所述第一数据节点存储的第一目标数据相同。
具体的,第一目标数据是指与目标数据读取请求对应的第一数据节点存储的目标数据,相应的,第二目标数据是指第二数据节点中存储的目标数据,第一目标数据与第二目标数据相同,为分别存储在第一数据节点和第二数据节点的相同的数据。
基于此,在接收到针对数据文件的目标数据读取请求时,将目标数据读取请求发送至与数据文件对应的第一数据节点。在第一数据节点不可用的情况下,接收第二数据节点针对目标数据读取请求反馈的第二目标数据,第二目标数据与所述第一数据节点存储的第一目标数据相同。
具体实施时,在数据节点出现异常或宕机时,由于数据操作表中能够完整的记录针对每个数据区间的数据标记操作,因此在执行数据复制任务时,可以基于数据操作表执行,过滤掉处于执行失败状态的标记操作信息。对数据操作表中处于执行成功状态的标记操作信息对应的数据进行复制,处于执行失败状态的标记操作信息对应的数据则不进行复制。
沿用上例,在分布式系统中,数据文件在进行存储时,可以存储至多个数据副本。根据数据文件的文件标识,即可确定与数据文件对应的主数据节点20,以及副本数据节点21和副本数据节点22。主数据节点20,副本数据节点21和副本数据节点22即为与数据文件对应的目标数据节点。在接收到针对用户C的订单信息c的查询请求时,将查询请求发送至与订单信息c对应的主数据节点20、副本数据节点21和副本数据节点22,在主数据节点20宕机的情况下,接收副本数据节点21或副本数据节点22反馈的订单信息c对应的数据。
综上所述,在对数据文件中存储的数据进行读取时,优先读取第一数据节点中存储的第一目标数据,在确定第一数据节点处于不可用状态时,接收第二数据节点反馈的第二目标数据,从而提高了数据读取的成功率,避免了由于数据节点不可用造成的数据读取失败的问题。
进一步的,在将标记操作信息存储至数据操作表中之后,由于基于数据操作表中的标记操作信息执行数据标记操作时存在失败的情况,因此可以通过周期性的查询数据操作表确定执行数据标记操作时执行失败的标记操作信息,具体实现如下:
基于预设数据操作表查询周期对所述数据操作表进行查询;根据查询结果确定目标物理地址信息,其中,所述目标物理地址信息为所述数据操作表中,操作状态为操作失败的目标数据块操作信息对应的物理地址信息;基于所述目标物理地址信息生成数据重操作请求发送至所述目标数据块操作信息对应的数据节点;接收所述数据节点执行所述数据重操作请求的执行结果,并基于所述执行结果更新所述数据操作表。
具体的,预设数据操作表查询周期是指基于数据操作表预先设定的查询周期,可以按照查询周期间隔固定的时间对数据操作表继续查询操作,进而确定数据操作表中处于标记失败状态的标记操作信息,进而基于查询到的标记状态信息再次执行数据标记操作。目标物理地址信息是指查询到的标记状态信息对应的物理地址信息。数据重操作请求是指基于查询到的标记操作信息生成的数据操作请求,用于实现基于处于标记失败状态的标记操作信息再次执行数据标记操作。
基于此,在对数据操作表进行查询时,预设数据操作表查询周期,根据预设数据操作表查询周期对数据操作表进行查询获得查询结果,根据查询结果确定目标物理地址信息,目标物理地址信息是数据操作表中,操作状态为操作失败的目标数据块操作信息对应的物理地址信息。根据目标物理地址信息生成数据重操作请求发送至目标数据块操作信息对应的数据节点。接收数据节点执行数据重操作请求的执行结果,并基于执行结果更新数据操作表。
具体实施时,在实际执行数据标记操作时,由于数据文件对应多个数据副本,数据节点存在宕机的可能,因此可能存在部分数据标记操作成功,部分数据标记失败,或全部的数据均标记失败的情况。在此场景下,可以周期性的对数据操作表进行查询,查询标记失败的数据段,并针对标记失败的数据段进行重新标记操作,直至数据操作表对应的全部数据块均完成了标记操作。
沿用上例,在针对数据文件执行数据删除或数据查询操作时,根据预设的查询周期5分钟,对数据操作表进行查询,每隔五分钟对数据操作表进行一次查询,查询数据操作表中操作状态为处于操作失败的一条记录:“数据区间1-偏移1-长度1-标记失败”,确定物理地址信息“偏移1-长度1”,生成重试请求,将重试请求发送至与记录“数据区间1-偏移1-长度1-标记失败”对应的数据节点,进而在数据节点对待处理数据进行操作后,根据操作结果对数据操作表中的记录:“数据区间1-偏移1-长度1-标记失败”进行更新,若执行成功,则将“标记失败”更新为“标记成功”;若执行失败,则不对数据操作表进行更新。
综上所述,基于预设数据操作表查询周期对数据操作表进行查询,进而操作状态为操作失败的目标数据块操作信息对应的物理地址信息,根据目标物理地址信息生成数据重操作请求发送至目标数据块操作信息对应的数据节点,完成对目标数据块的数据标记操作,从而提高了数据标记操作的成功率。
进一步的,在确定操作日志中存储的日志信息对应的数据标记操作执行成功的情况下,考虑到操作日志的存储空间有限,因此可以将操作日志中相应的标记操作执行成功的日志信息删除,具体实现如下:
将所述操作日志中处于执行完成状态的操作日志信息删除;或者,在所述操作日志关联的目标数据操作表完成持久化操作的情况下,将所述操作日志中关联所述目标数据操作表的目标操作日志信息删除。
具体的,目标数据操作表是指已经完成持久化操作的数据操作表,在本实施例中,持久化操作可以是对数据操作表中存储的标记操作信息进行记录,达到数据备份的目标,从而在数据节点宕机时,根据持久化的数据操作表确定数据节点宕机前的执行状态。
基于此,在操作日志中存在处于执行完成状态的操作日志信息时,将操作日志中处于执行完成状态的操作日志信息删除;或者,在操作日志关联的目标数据操作表完成持久化操作的情况下,将操作日志中关联目标数据操作表的目标操作日志信息删除。
具体实施时,操作日志中记录的日志信息按照递增的序号进行排列,在对操作日志记录的日志信息对应的数据操作表完成了持久化操作后,可以将操作日志中与数据操作表对应的日志信息删除;在操作日志中包含的日志信息完成了数据标记操作后,可以将完成标记操作的日志信息删除。
沿用上例,操作日志中记录了日志信息1、日志信息2、日志信息3等日志信息,每个日志信息均有与其对应的日志执行状态,用于表示日志信息是否执行完成。在操作日志中日志信息1处于执行完成状态时,将操作日志中日志信息1删除;还可以对操作日志中记录的日志信息进行持久化操作,生成与日志信息对应的checkpoint,即,以快照的形式记录操作日志中当前存在的日志信息,生成相应的存储文件。在确定操作日志中记录的日志信息1和日志信息2已经完成了持久化操作后,将操作日志中的日志信息1和日志信息2删除。
如图2-2所示,图2-2是本说明书一个实施例提供的一种数据处理方法的示意图,在客户端接收到用户针对文件的标记操作后,将标记操作持久化记录到操作日志中。在需要对操作日志中存储的日志信息进行处理时,从操作日志中读取日志信息,转化为对数据区间对应的数据副本中包含的数据块的标记操作。将对数据副本数据块的标记操作发送到相应的数据节点,由数据节点执行对数据的标记操作,从而完成对文件的标记操作。
综上所述,本说明书实施例提供数据处理方法,通过接收针对数据文件的标记操作指令,并将标记操作指令关联的标记操作信息存储至操作日志;在操作日志满足日志信息处理条件的情况下,根据操作日志中记录的标记操作信息更新数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将数据操作请求发送至所述目标数据节点。根据操作日志更新数据操作表,进而根据数据操作表确定目标数据节点,在目标数据节点处执行标记操作,实现了基于标记操作指令对数据文件的协同处理。
下述结合附图3,以本说明书提供的数据处理方法在分布式文件系统中的应用为例,对所述数据处理方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种数据处理方法的处理过程流程图,具体包括以下步骤。
步骤S302,接收针对数据文件的标记操作指令。
在对用户个人数据删除的场景下,接收针对存储了用户个人数据的数据文件的数据删除指令。
步骤S304,将标记操作指令关联的标记操作信息存储至操作日志。
根据数据删除指令确定数据删除指令中携带的,与用户个人数据对应的数据区间信息。为了提高数据存储的安全性和可靠性,用户个人数据采用分布式文件存储系统进行存储,因此用户个人数据存在多个存储副本,将用户个人数据存储在数据文件对应的多个数据块中,由数据节点管理数据块,一个数据节点可以管理多个数据块。将与用户个人数据对应的数据区间信息存储在于数据文件对应的操作日志中。
步骤S306,在所述操作日志满足日志信息处理条件的情况下,根据标记操作信息确定与数据文件关联的数据区间信息。
在操作日志中存储的日志信息数量达到设定的阈值时,或者当操作日志中新增日志信息时,均可确认操作日志满足日志信息处理条件,进而根据操作日志中存储的日志信息可以确定用户个人数据存储的数据区间。
步骤S308,根据数据区间信息确定数据块操作信息,并根据数据块操作信息更新数据文件关联的数据操作表。
读取操作日志中存储的日志信息,根据日志信息对应的数据区间信息完成对数据操作表的记录,将数据区间信息包含的数据块ID、偏移量offset、长度length以及处理状态记录在数据操作表中,在未对数据操作表中的数据进行处理时,处理状态为空。
步骤S310,基于更新后的数据操作表生成对应目标数据节点的数据操作请求。
读取数据操作表中存储的数据区间ID、偏移量offset、长度length等标记操作信息,根据标记操作信息生成针对用户个人数据的数据操作请求。
步骤S312,将数据操作请求发送至目标数据节点。
将数据操作请求发送至数据区间中,存储了用户个人数据的数据块对应的数据节点,由数据节点对用户个人数据进行标记操作。
步骤S314,基于目标数据节点执行数据操作请求的执行结果确定操作状态信息。
由确定的数据节点针对数据节点中存储的用户个人数据进行标记操作,在标记操作成功的情况下,确定执行结果为执行成功,在标记操作失败的情况下,确定执行结果为执行失败。
步骤S316,将操作状态信息记录至更新后的数据操作表。
在执行结果为执行成功的情况下,将数据操作表中相应的标记操作信息中的状态信息更新为执行成功;在标记操作失败的情况下,将数据操作表中相应的标记操作信息中的状态信息更新为执行失败。
步骤S318,接收针对数据文件的数据读取请求。
在对用户个人数据进行读取时,接收针对存储了用户个人数据的数据文件的数据读取请求。
步骤S320,根据数据读取请求查询数据操作表。
步骤S322,在数据操作表中包含与数据读取请求对应的标记操作信息的情况下,生成与数据读取请求对应的提示信息,并将提示信息作为数据读取请求对应的反馈结果。
在确定数据操作表中包含与数据读取请求对应的标记操作信息时,表示此标记操作信息对应的,对数据文件中用户个人数据的标记操作已经以日志信息的形式记录在操作日志中,在此基础上,可以认为该数据对应的标记操作已经成功。在接收到数据读取请求时,由于数据操作表中包含与数据读取请求对应的标记操作信息,所以可以确定需要读取的用户个人数据处于不可读取的状态,因此反馈“读取失败”、“0”等表示不可读取的提示信息。
步骤S324,在数据操作表中不包含与数据读取请求对应的标记操作信息的情况下,向数据读取请求对应的数据节点发送节点数据读取请求,并将数据节点针对数据读取请求反馈的原数据作为反馈结果。
在确定数据操作表中不包含与数据读取请求对应的标记操作信息的情况下,表示操作日志中并未记录与该标记操作信息对应的日志信息,即,与数据读取请求对应的待读取的用户个人数据未被标记成功,处于可读取状态,因此可以向存储了待读取的用户个人数据的数据节点发送数据读取请求,由数据节点反馈数据节点中存储的用户个人数据。
步骤S326,基于预设数据操作表查询周期对数据操作表进行查询。
由于数据操作表中存在处于操作失败状态的标记操作信息,因此还需要针对处于操作失败状态的标记操作信息重新进行标记操作。可以通过查询数据操作表的形式,确定处于操作失败状态的标记操作信息。
步骤S328,根据查询结果生成数据重操作请求发送至目标数据块操作信息对应的数据节点。
在查询到数据操作表中存在处于标记失败状态的标记操作信息时,根据此标记操作信息生成数据重操作请求,并发送到数据节点。
步骤S330,接收数据节点执行数据重操作请求的执行结果,并基于执行结果更新数据操作表。
数据节点在接收到数据重操作请求时,对数据节点中存储的用户个人数据重新进行标记操作,根据获得的标记结果对数据操作表中的标记操作信息进行更新,即,操作成功则将数据操作表中标记操作信息中的状态信息更新为操作成功,操作失败,则不对数据操作表进行处理。直到数据操作表中全部标记操作信息对应的操作状态处于执行成功状态。
综上所述,通过接收针对数据文件的标记操作指令,并将标记操作指令关联的标记操作信息存储至操作日志;在操作日志满足日志信息处理条件的情况下,根据操作日志中记录的标记操作信息更新数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将数据操作请求发送至所述目标数据节点。根据操作日志更新数据操作表,进而根据数据操作表确定目标数据节点,在目标数据节点处执行标记操作,实现了基于标记操作指令对数据文件的协同处理。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图4示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图4所示,该装置包括:
接收模块402,被配置为接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志;
更新模块404,被配置为在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;
发送模块406,被配置为基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点。
一个可选的实施例,所述更新模块404,进一步被配置为:
读取所述操作日志中记录的所述标记操作信息,并根据所述标记操作信息确定与所述数据文件关联的数据区间信息,其中,所述数据区间信息关联所述数据文件包含的数据区间;
根据所述数据区间信息确定数据块操作信息,并根据所述数据块操作信息更新所述数据文件关联的数据操作表。
一个可选的实施例,所述发送模块406,进一步被配置为:
在更新后的数据表中读取所述数据块操作信息;
根据所述数据块操作信息中包含的物理地址信息,生成对应所述目标数据节点的数据操作请求,其中,所述数据操作请求关联所述数据文件的数据块,且所述数据块存储于所述目标数据节点。
一个可选的实施例,所述接收模块402,进一步被配置为:
将所述标记操作指令关联的标记操作信息存储至所述数据文件关联的操作日志,其中,所述操作日志根据所述数据文件的历史操作指令创建;或者,
将所述数据文件关联的目标操作日志作为操作日志,并将所述标记操作指令关联的标记操作信息存储至所述操作日志,其中,所述目标操作日志用于存储至少两个数据文件关联的标记操作信息。
一个可选的实施例,所述更新模块404,进一步被配置为:
在所述操作日志中新增标记操作信息的情况下,确定所述操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤;或者,
按照预设日志查询周期对所述操作日志中包含的日志信息进行查询,根据查询结果确定所述标记操作信息为新增标记操作信息的情况下,确定所述操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤。
一个可选的实施例,所述发送模块406,还被配置为:
基于所述目标数据节点执行所述数据操作请求的执行结果确定操作状态信息,并记录至更新后的数据操作表。
一个可选的实施例,所述记录模块406,还被配置为:
接收针对所述数据文件的数据读取请求;
基于所述数据读取请求查询所述数据操作表;
根据查询结果确定与所述数据读取请求对应的反馈结果。
一个可选的实施例,所述记录模块406,进一步被配置为:
在根据所述查询结果确定所述数据操作表中包含与所述数据读取请求对应的标记操作信息的情况下,生成提示信息并将所述提示信息作为所述反馈结果,其中,所述提示信息表示数据读取请求对应的待读取数据处于不可读取状态;
在根据所述查询结果确定所述数据操作表中不包含与所述数据读取请求对应的标记操作信息的情况下,向所述数据读取请求对应的数据节点发送节点数据读取请求,并将所述数据节点针对所述数据读取请求反馈的原数据作为反馈结果。
一个可选的实施例,所述发送模块406,进一步被配置为:
确定所述数据文件对应的文件标识,并根据所述文件标识在分布式文件系统包含的数据节点中确定第一数据节点,以及在所述分布式文件系统包含的数据节点中确定关联所述第一数据节点的第二数据节点;
将所述第一数据节点和所述第二数据节点作为目标数据节点。
一个可选的实施例,所述记录模块406,还被配置为:
接收目标数据读取请求;
将所述目标数据读取请求发送至所述第一数据节点;
在所述第一数据节点不可用的情况下,接收所述第二数据节点针对所述目标数据读取请求反馈的第二目标数据,其中,所述第二目标数据与所述第一数据节点存储的第一目标数据相同。
一个可选的实施例,所述记录模块406,还被配置为:
基于预设数据操作表查询周期对所述数据操作表进行查询;
根据查询结果确定目标物理地址信息,其中,所述目标物理地址信息为所述数据操作表中,操作状态为操作失败的目标数据块操作信息对应的物理地址信息;
基于所述目标物理地址信息生成数据重操作请求发送至所述目标数据块操作信息对应的数据节点;
接收所述数据节点执行所述数据重操作请求的执行结果,并基于所述执行结果更新所述数据操作表。
一个可选的实施例,所述记录模块406,还被配置为:
将所述操作日志中处于执行完成状态的操作日志信息删除;或者,
在所述操作日志关联的目标数据操作表完成持久化操作的情况下,将所述操作日志中关联所述目标数据操作表的目标操作日志信息删除。
本说明书实施例提供数据处理装置,通过接收针对数据文件的标记操作指令,并将标记操作指令关联的标记操作信息存储至操作日志;在操作日志满足日志信息处理条件的情况下,根据操作日志中记录的标记操作信息更新数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将数据操作请求发送至所述目标数据节点。根据操作日志更新数据操作表,进而根据数据操作表确定目标数据节点,在目标数据节点处执行标记操作,实现了基于标记操作指令对数据文件的协同处理。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了数据处理系统实施例,图5示出了本说明书一个实施例提供的一种数据处理系统的结构示意图。如图5所示,数据处理系统500包括:服务端510,目标数据节点520;
服务端510,用于接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志;在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点520的数据操作请求,并将所述数据操作请求发送至所述目标数据节点520;
所述目标数据节点520,用于基于所述数据操作请求对本地存储空间中的待操作数据区间进行标记,并根据标记结果生成状态更新信息发送至所述服务端510;
所述服务端510,还用于接收所述操作状态信息,并记录至更新后的数据操作表。
基于此,服务端接收针对数据文件的标记操作指令,并将标记操作指令关联的标记操作信息存储至操作日志,在操作日志满足日志信息处理条件的情况下,根据操作日志中记录的标记操作信息更新数据文件关联的数据操作表。基于更新后的数据操作表生成对应目标数据节点520的数据操作请求,并将数据操作请求发送至目标数据节点520。目标数据节点520,用于基于所述数据操作请求对本地存储空间中的待操作数据区间进行标记,并根据标记结果生成状态更新信息发送至所述服务端510;服务端510接收操作状态信息,并记录至更新后的数据操作表,其中,待操作数据区间即为数据节点中待删除的数据区间。
本说明书实施例提供数据处理系统,通过接收针对数据文件的标记操作指令,并将标记操作指令关联的标记操作信息存储至操作日志;在操作日志满足日志信息处理条件的情况下,根据操作日志中记录的标记操作信息更新数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将数据操作请求发送至所述目标数据节点。根据操作日志更新数据操作表,进而根据数据操作表确定目标数据节点,在目标数据节点处执行标记操作,实现了基于标记操作指令对数据文件的协同处理。
上述为本实施例的一种数据处理系统的示意性方案。需要说明的是,该数据处理系统的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理系统的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (14)
1.一种数据处理方法,应用于服务端,包括:
接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志;
在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;
基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点。
2.根据权利要求1所述的方法,所述根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表,包括:
读取所述操作日志中记录的所述标记操作信息,并根据所述标记操作信息确定与所述数据文件关联的数据区间信息,其中,所述数据区间信息关联所述数据文件包含的数据区间;
根据所述数据区间信息确定数据块操作信息,并根据所述数据块操作信息更新所述数据文件关联的数据操作表。
3.根据权利要求2所述的方法,所述基于更新后的数据操作表生成对应目标数据节点的数据操作请求,包括:
在更新后的数据表中读取所述数据块操作信息;
根据所述数据块操作信息中包含的物理地址信息,生成对应所述目标数据节点的数据操作请求,其中,所述数据操作请求关联所述数据文件的数据块,且所述数据块存储于所述目标数据节点。
4.根据权利要求1所述的方法,所述将所述标记操作指令关联的标记操作信息存储至操作日志,包括:
将所述标记操作指令关联的标记操作信息存储至所述数据文件关联的操作日志,其中,所述操作日志根据所述数据文件的历史操作指令创建;或者,
将所述数据文件关联的目标操作日志作为操作日志,并将所述标记操作指令关联的标记操作信息存储至所述操作日志,其中,所述目标操作日志用于存储至少两个数据文件关联的标记操作信息。
5.根据权利要求1所述的方法,所述在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表,包括:
在所述操作日志中新增标记操作信息的情况下,确定所述操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤;或者,
按照预设日志查询周期对所述操作日志中包含的日志信息进行查询,根据查询结果确定所述标记操作信息为新增标记操作信息的情况下,确定所述操作日志满足日志信息处理条件,并执行根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表的步骤。
6.根据权利要求1所述的方法,所述将所述数据操作请求发送至所述目标数据节点步骤执行之后,还包括:
基于所述目标数据节点执行所述数据操作请求的执行结果确定操作状态信息,并记录至更新后的数据操作表。
7.根据权利要求6所述的方法,还包括:
接收针对所述数据文件的数据读取请求;
基于所述数据读取请求查询所述数据操作表;
根据查询结果确定与所述数据读取请求对应的反馈结果。
8.根据权利要求7所述的方法,所述根据查询结果确定与所述数据读取请求对应的反馈结果,包括:
在根据所述查询结果确定所述数据操作表中包含与所述数据读取请求对应的标记操作信息的情况下,生成提示信息并将所述提示信息作为所述反馈结果,其中,所述提示信息表示数据读取请求对应的待读取数据处于不可读取状态;
在根据所述查询结果确定所述数据操作表中不包含与所述数据读取请求对应的标记操作信息的情况下,向所述数据读取请求对应的数据节点发送节点数据读取请求,并将所述数据节点针对所述数据读取请求反馈的原数据作为反馈结果。
9.根据权利要求1所述的方法,所述目标数据节点的确定,包括:
确定所述数据文件对应的文件标识,并根据所述文件标识在分布式文件系统包含的数据节点中确定第一数据节点,以及在所述分布式文件系统包含的数据节点中确定关联所述第一数据节点的第二数据节点;
将所述第一数据节点和所述第二数据节点作为目标数据节点。
10.根据权利要求9所述的方法,还包括:
接收目标数据读取请求;
将所述目标数据读取请求发送至所述第一数据节点;
在所述第一数据节点不可用的情况下,接收所述第二数据节点针对所述目标数据读取请求反馈的第二目标数据,其中,所述第二目标数据与所述第一数据节点存储的第一目标数据相同。
11.根据权利要求6所述的方法,还包括:
基于预设数据操作表查询周期对所述数据操作表进行查询;
根据查询结果确定目标物理地址信息,其中,所述目标物理地址信息为所述数据操作表中,操作状态为操作失败的目标数据块操作信息对应的物理地址信息;
基于所述目标物理地址信息生成数据重操作请求发送至所述目标数据块操作信息对应的数据节点;
接收所述数据节点执行所述数据重操作请求的执行结果,并基于所述执行结果更新所述数据操作表。
12.一种数据处理系统,包括:
服务端,用于接收针对数据文件的标记操作指令,并将所述标记操作指令关联的标记操作信息存储至操作日志;在所述操作日志满足日志信息处理条件的情况下,根据所述操作日志中记录的所述标记操作信息更新所述数据文件关联的数据操作表;基于更新后的数据操作表生成对应目标数据节点的数据操作请求,并将所述数据操作请求发送至所述目标数据节点;
所述目标数据节点,用于基于所述数据操作请求对本地存储空间中的待操作数据区间进行标记,并根据标记结果生成状态更新信息发送至所述服务端;
所述服务端,还用于接收所述操作状态信息,并记录至更新后的数据操作表。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至11任意一项所述数据处理方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至11任意一项所述数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020847.7A CN115422135A (zh) | 2022-08-24 | 2022-08-24 | 数据处理方法以及装置 |
PCT/CN2023/113372 WO2024041433A1 (zh) | 2022-08-24 | 2023-08-16 | 数据处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020847.7A CN115422135A (zh) | 2022-08-24 | 2022-08-24 | 数据处理方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115422135A true CN115422135A (zh) | 2022-12-02 |
Family
ID=84197684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211020847.7A Pending CN115422135A (zh) | 2022-08-24 | 2022-08-24 | 数据处理方法以及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115422135A (zh) |
WO (1) | WO2024041433A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024041433A1 (zh) * | 2022-08-24 | 2024-02-29 | 阿里云计算有限公司 | 数据处理方法以及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3394270B2 (ja) * | 1992-04-16 | 2003-04-07 | 日本電気株式会社 | リカバリ用ジャーナル管理方式 |
US11003545B2 (en) * | 2019-06-16 | 2021-05-11 | Datto, Inc | User space incremental tracking apparatuses, methods and systems |
CN111400267B (zh) * | 2019-11-19 | 2023-09-01 | 杭州海康威视系统技术有限公司 | 记录日志的方法和装置 |
CN114610532A (zh) * | 2022-01-26 | 2022-06-10 | 阿里云计算有限公司 | 数据库处理方法以及装置 |
CN115422135A (zh) * | 2022-08-24 | 2022-12-02 | 阿里巴巴(中国)有限公司 | 数据处理方法以及装置 |
-
2022
- 2022-08-24 CN CN202211020847.7A patent/CN115422135A/zh active Pending
-
2023
- 2023-08-16 WO PCT/CN2023/113372 patent/WO2024041433A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024041433A1 (zh) * | 2022-08-24 | 2024-02-29 | 阿里云计算有限公司 | 数据处理方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2024041433A1 (zh) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11537659B2 (en) | Method for reading and writing data and distributed storage system | |
US9792306B1 (en) | Data transfer between dissimilar deduplication systems | |
EP2821925B1 (en) | Distributed data processing method and apparatus | |
CN109144416B (zh) | 查询数据的方法和装置 | |
CN110998537B (zh) | 一种过期备份处理方法及备份服务器 | |
CN108415986B (zh) | 一种数据处理方法、装置、系统、介质和计算设备 | |
US11461140B2 (en) | Systems and methods for controller-worker architecture for searching a storage system | |
CN106528338B (zh) | 一种远程数据复制方法、存储设备及存储系统 | |
WO2024041433A1 (zh) | 数据处理方法以及装置 | |
CN111831475A (zh) | 数据备份方法、装置、节点设备及可读存储介质 | |
CN103197987A (zh) | 一种数据备份的方法、数据恢复的方法及系统 | |
CN104965835A (zh) | 一种分布式文件系统的文件读写方法及装置 | |
JP2012008854A (ja) | ストレージ仮想化装置 | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
WO2024041434A1 (zh) | 存储系统及数据处理方法 | |
WO2023241528A1 (zh) | 数据处理方法以及装置 | |
US11256434B2 (en) | Data de-duplication | |
CN108121504B (zh) | 数据删除方法及装置 | |
CN109254870B (zh) | 数据备份的方法和装置 | |
CN113886350A (zh) | 数据处理方法及系统 | |
CN114675776A (zh) | 资源存储方法和装置、存储介质和电子设备 | |
CN111522883A (zh) | 对象数据的备份方法、装置、设备及存储介质 | |
CN114063935B (zh) | 处理数据的方法以及装置 | |
CN117149724B (zh) | 一种云环境系统重复数据删除的方法及系统 | |
CN111400302B (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 |