CN108415986B - 一种数据处理方法、装置、系统、介质和计算设备 - Google Patents

一种数据处理方法、装置、系统、介质和计算设备 Download PDF

Info

Publication number
CN108415986B
CN108415986B CN201810142664.XA CN201810142664A CN108415986B CN 108415986 B CN108415986 B CN 108415986B CN 201810142664 A CN201810142664 A CN 201810142664A CN 108415986 B CN108415986 B CN 108415986B
Authority
CN
China
Prior art keywords
data
storage node
file
data block
data file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810142664.XA
Other languages
English (en)
Other versions
CN108415986A (zh
Inventor
李明
王玮
邱似峰
余利华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Hangzhou Langhe Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN201810142664.XA priority Critical patent/CN108415986B/zh
Publication of CN108415986A publication Critical patent/CN108415986A/zh
Application granted granted Critical
Publication of CN108415986B publication Critical patent/CN108415986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施方式提供了一种数据处理方法。该方法包括:若主存储节点的当前数据块满足第一数据处理条件,提取确定的当前数据块的有效数据文件;利用预设数据一致性协议,将提取的有效数据文件重写入主存储节点以及至少一个从存储节点的最后一个数据块中,最后一个数据块为生成时间距离当前时间最近的数据块;利用预设数据一致性协议,将当前数据块从主存储节点以及至少一个从存储节点中删除。此外,本发明实施方式提供了一种数据处理装置、介质、系统和计算设备。根据本发明的实施方式,可避免各个存储节点独立进行垃圾回收,并且在对存储节点中的垃圾进行回收的基础上保证了各个存储节点的数据块中存储的数据的一致性。

Description

一种数据处理方法、装置、系统、介质和计算设备
技术领域
本发明的实施方式涉及数据处理技术领域,更具体地,本发明的实施方式涉及一种数据处理方法、装置、系统、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
传统单机文件系统(Linux ext4xfs)存储文件时,需要存储文件的元数据信息如inode、文件名等。如果存储海量的小文件,由于文件个数太多导致元数据信息无法全部缓存在内存里,在进行文件读写时会多次随机访问磁盘读取/写入元数据信息,由于磁盘的随机读写的性能远低于顺序读写性能,这样会导致读写性能的急剧下降。
为了优化小文件的写入性能,一般采用追加写的存储方式,将小文件追加到一个大文件的后面,然后在索引数据库中记录小文件的索引信息,索引信息可包括该小文件在大文件中的偏移和长度。这种追加写的方式优化了小文件的写入性能;而且由于索引数据库中记录的索引信息远小于文件系统所记录的元信息,因此可以完全缓存在内存里,这样仅需要一次磁盘IO(输入输出)便可以读取到相应的数据。
这种存储方式通过在大文件的末尾追加一个逻辑删除命令文件,以标记该小文件被删除,从而达到删除小文件的目的。但实际上,仅是对该小文件进行了逻辑删除,即小文件中的数据依然在内存中,没有做实际的物理删除,因此这种存储方式需要进行垃圾回收,即将大文件中的有效数据文件(有效的小文件)读出并重新写入,之后对该大文件进行物理删除,从而达到节省内存的目的。
在分布式系统中,数据(可以理解为上述的小文件)需要存储在多个存储节点上,针对同一份数据,存储该份数据的多个存储节点组成一个复制组,即同一复制组中各个存储节点中存储的数据均相同。复制组中的每个存储节点为一个副本(存储节点),其中一个副本称为主副本或主存储节点,其他副本叫做从副本或从存储节点。在分布式存储系统中进行垃圾回收时,需要在各个存储节点上独立进行垃圾回收,从而节省存储节点内存空间。
但是,在各个存储节点独立进行垃圾回收时,由于各存储节点进行垃圾回收的时间可能会不一致,这样在垃圾回收后,会导致各存储节点上存储的数据的不一致的问题。
发明内容
现有技术中,需要在各个存储节点独立进行垃圾回收,由于各存储节点进行垃圾回收的时间可能会不一致,这样在垃圾回收后,会导致各存储节点上存储的数据的不一致的问题。为此,非常需要一种改进的数据处理方案。
在本上下文中,本发明的实施方式期望提供一种数据处理方法、装置、介质和计算设备。
在本发明实施方式的第一方面中,提供了一种数据处理方法,包括:
若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除。
在本发明实施方式的第二方面中,提供了一种数据处理装置,包括:
提取模块,用于若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;
重写入模块,用于利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;
删除模块,用于利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除。
在本发明实施方式的第三方面中,提供了一种数据处理系统,包括主存储节点以及至少一个从存储节点,其中:
主存储节点,用于若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点的最后一个数据块中以及指示所述至少一个从存储节点将提取的有效数据文件重写入对应从存储节点的最后一个数据块中;利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点中删除以及指示所述至少一个从存储节点将所述当前数据块从对应从存储节点中删除;所述最后一个数据块为生成时间距离当前时间最近的数据块;
从存储节点,用于根据所述主存储节点的指示,将提取的有效数据文件重写入该从存储节点的最后一个数据块中,并将所述当前数据块从该从存储节点中删除。
在本发明实施方式的第四方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行实现上述数据处理方法的步骤。
在本发明实施方式的第五方面中,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据处理方法的步骤。
利用本发明实施例提供的数据处理方法、装置、介质和计算设备,在主存储节点的当前数据块满足第一数据处理条件时,提取该当前数据块的有效数据文件,并利用数据一致性协议将提取的有效数据文件重写入主存储节点以及各个从存储节点,之后,利用数据一致性协议将当前数据块从主存储节点和各个从存储节点中删除,通过扫描主存储节点中的数据块是否满足第一数据处理条件,在满足第一数据处理条件的情况下,利用数据一致性协议将有效数据文件写入各个存储节点并删除相应的数据块,可避免各个存储节点独立进行垃圾回收,并且在对存储节点中的垃圾进行回收的基础上保证了各个存储节点的数据块中存储的数据的一致性。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的应用场景示意图;
图2示意性地示出了根据本发明实施方式的数据处理方法的流程示意图;
图3示意性地示出了根据本发明实施方式的数据一致性协议的示例示意图;
图4示意性地示出了根据本发明实施方式的确定当前数据块满足第一数据处理条件的方法流程示意图;
图5示意性地示出了根据本发明实施方式的重写入有效数据文件的方法流程示意图;
图6示意性地示出了根据本发明实施方式的确定当前数据块的有效数据文件的方法流程示意图;
图7示意性地示出了根据本发明实施方式的数据处理方法的具体实施过程的流程示意图;
图8示意性地示出了根据本发明实施方式的数据块结构示意图;
图9示意性地示出了根据本发明实施方式的数据处理装置的结构示意图;
图10示意性地示出了根据本发明实施方式的用于实现数据处理方法的计算机设备的硬件结构示意图;
图11示意性地示出了根据本发明实施例的用于实现数据处理方法的程序产品示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种数据处理方法、装置、系统、介质和计算设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有技术中在各个存储节点独立进行垃圾回收时,由于各存储节点进行垃圾回收的时间可能会不一致,这样在垃圾回收后,会导致各存储节点上存储的数据的不一致的问题。
为此,本发明提供了一种数据处理方法、装置、系统、介质和计算设备,其中,数据处理方法可以包括:若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除。
本发明提供的数据处理方法中,在主存储节点的当前数据块满足第一数据处理条件时,提取该当前数据块的有效数据文件,并利用数据一致性协议将提取的有效数据文件重写入主存储节点以及各个从存储节点,之后,利用数据一致性协议将当前数据块从主存储节点和各个从存储节点中删除,通过扫描主存储节点中的数据块是否满足第一数据处理条件,在满足第一数据处理条件的情况下,利用数据一致性协议将有效数据文件写入各个存储节点并删除相应的数据块,可避免各个存储节点独立进行垃圾回收,并且在对存储节点中的垃圾进行回收的基础上保证了各个存储节点的数据块中存储的数据的一致性。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,如图1所示,为本发明实施例提供的数据处理方案的应用场景示意图,包括主存储节点101和至少一个从存储节点102,其中,主存储节点101若确定其当前数据块满足第一数据处理条件,提取确定的当前数据块的有效数据文件;利用预设数据一致性协议,将提取的有效数据文件重写入主存储节点101以及至少一个从存储节点102的最后一个数据块中,最后一个数据块为生成时间距离当前时间最近的数据块;利用预设数据一致性协议,将当前数据块从主存储节点101以及至少一个从存储节点102中删除。其中,主存储节点101和从存储节点102通过可以通过局域网、广域网等通信网络进行通信;主存储节点101和从存储节点102可以为便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer)。
示例性方法
下面结合图1的应用场景,参考图2~图8来描述根据本发明示例性实施方式的数据处理方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2为本发明提供的一种数据处理方法的一实施例的流程示意图,执行主体可以为应用场景总览中的主存储节点101,也可以为其它计算设备,如图2所示,本发明实施例提供的数据处理方法,包括如下步骤:
步骤201,若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块中的有效数据文件。
具体实施时,确定处于当前扫描顺序的数据块,作为当前数据块,判断该当前数据块是否满足第一数据处理条件,若该当前数据块满足第一数据处理条件,则提取确定的该当前数据块中的有效数据文件。扫描顺序具体为数据块生成时间的先后顺序,可从生成时间最早的一个数据块开始,逐个扫描主存储节点中的数据块。
其中,若当前数据块中的有效数据文件的数据量小于特定值,则确定当前数据块满足第一处理条件。也可采用其他方式确定当前数据块满足第一数据处理条件,这里不做限定。本发明实施例将已逻辑删除的数据文件作为无效数据文件。
可选地,有效数据文件包括未逻辑删除的数据文件,和/或,逻辑删除命令文件,不包括已逻辑删除的数据文件和已物理删除的数据文件。其中,确定已逻辑删除的数据文件已物理删除的情况下,该已逻辑删除的数据文件对应的逻辑删除命令文件为无效数据文件;确定已逻辑删除的数据文件未物理删除的情况下,该已逻辑删除的数据文件对应的逻辑删除命令文件为有效数据文件。其中,已逻辑删除的数据文件为逻辑删除命令文件指示进行逻辑删除的数据文件。
需要说明的是,物理删除是指文件存储所用到的存储区域被真正的擦除或清零,物理删除的数据文件一般是不可以恢复的。逻辑删除是指通过一些手段将数据文件标记为操作系统无法识别的数据文件,已逻辑删除的数据文件实际还存在于相应的存储介质中,若使用适当的工具或软件可以把已逻辑删除的文件恢复出来。
需要强调的是,主存储节点中的数据块以及数据块中存储的数据文件在各个从存储节点均有备份。主存储节点和各个从存储节点中,仅最后一个数据块可写入数据,其它数据块为只读状态不可写入数据,其中,最后一个数据块为主存储节点或从存储节点中的各个数据块中,生成时间距离当前时间最近的一个数据块。
步骤202,利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块。
具体实施时,按照有效数据文件在当前数据块中存储的顺序,将提取的有效数据文件重写入主存储节点的最后一个数据块,并将提取的有效数据文件重写入至少一个从存储节点的最后一个数据块。最后一个数据块具体为生成时间距离当前时间最近的数据块。
其中,利用预设数据一致性协议,可保证重写入主存储节点以及各个从存储节点的最后一个数据块中的有效数据文件的数据一致性,比如,可保证主从存储节点中重写入的有效数据文件的数据在字节上的一致性。
其中,预设数据一致性协议可以为pacificA协议,pacificA协议是一种数据复制协议为Paxos算法的变体,可以实现主从存储节点之间数据的强一致性。本发明实施例提供的数据块可用于存储pacificA协议的日志文件和数据文件。
预设数据一致性协议为pacificA协议的情况下,数据块由头部(Header)和记录(Record)组成,其中Record可以理解为数据文件,数据块的格式如图3所示,包括一个Header和多个Record,其中,Record包括sn字段、commit_pt字段、cmd_type字段、fid字段、data_len字段以及data字段,当然,Record包括的上述各个字段不是Record包括的全部字段,这里仅举例说明上述各个字段。其中,sn字段为pacificA协议的日志号,从1开始递增,该字段可为64位的整型数据;commit_pt字段为pacificA协议的提交点,日志号小于提交点的record都已经提交,该字段可为64位的整型数据;cmd_type字段为pacificA协议命令类型字段,不同类型的命令需要执行相应的回调函数;fid字段用于记录record的标识、data_len字段为record中的数据长度,该字段可以为32位的整型数据;data字段为record的数据承载字段。
其中,pacificA协议命令类型可以包括写入数据文件命令类型、删除数据文件命令类型、删除数据块命令类型、重写入数据文件命令类型以及对逻辑删除命令文件进行删除的命令类型。
其中,利用pacificA协议实现数据一致性的原理如下:主存储节点接收到重写入有效数据的请求后,将该请求封装为一个record;主存储节点将本地的prepare_point加1,并将该record追加到最后一个数据块中,以及向各个从存储节点发送该record;从存储节点接收到该record后,将本地的prepare_point加1,并将接收到的该record追加到最后一个数据块中;从存储节点向主存储节点返回其当前的prepare_point;主存储节点接收到所有从存储节点返回的prepare_point后,增大commit_point(commit_point为三个副本中最小的prepare_point,即三个副本都要写成功),同时根据Record的cmd_type调用对应的回调函数,向客户端返回成功。之后主存储节点会在和从存储节点的心跳或者后续的数据写入中将commit_point传给从存储节点,从存储节点收到提交消息后将本地数据提交更新commit_point,同时调用对应的回调函数。
pacificA协议实现数据一致性的过程中,主从存储节点满足以下条件:各个从存储节点的commit_point小于或等于主存储节点的commit_point,主存储节点的commit_point小于或等于各个从存储节点的prepare_point中最小的prepare_point,主从存储节点满足该条件时,可以保证任一存储节点宕机丢失数据的情况下,其它存储节点中保存的数据的一致性。
如图3所示,其中假设包括两个从存储节点,主存储节点的commit_point为7,prepare_point为9,从存储节点1的commit_point为4,prepare_point为8,从存储节点2的commit_point为5,prepare_point为7,在此假设的基础上,如果从存储节点1宕机并且数据丢失了,由于主存储节点的commit_point等于从存储节点2的prepare_point;因此,从存储节点2中包括主存储节点所有提交的数据文件;如果主存储节点宕机并且数据丢失了,且此时主存储节点上commit_point为7,从存储节点1和从存储节点2的prepare_point分别是8和7,由于主存储节点的commit_point小于或等于从存储节点的prepare_point,因此,从存储节点1和2中包括主存储节点所有提交的数据文件。
在实际应用中,在执行主体为主存储节点和从存储节点之外的计算机设备时,则该计算机设备可向主存储节点以及所有从存储节点发送重写入提取的有效数据文件的指示;在执行主体为主存储节点时,则主存储节点向所有从存储节点发送重写入提取的有效数据文件的指示。
步骤203,利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除。
具体实施时,由于主存储节点中存储的数据块在各个从存储节点块中具有备份,因此,从存储节点也存在主存储节点中的当前数据块,此时,在将有效数据文件重写入主存储节点和从存储节点后,将主存储节点和从存储节点中的当前数据块物理删除,即将当前数据块从主从存储节点中彻底删除。这样可以避免在将提取的有效数据重写入之后,在存储节点中存储重复性数据的问题,节省了存储节点的存储空间,也达到了存储节点中垃圾回收的目的。
本发明提供的数据处理方法中,在主存储节点的当前数据块满足第一数据处理条件时,提取该当前数据块的有效数据文件,并利用数据一致性协议将提取的有效数据文件重写入主存储节点以及各个从存储节点,之后,利用数据一致性协议将当前数据块从主存储节点和各个从存储节点中删除,通过扫描主存储节点中的数据块是否满足第一数据处理条件,在满足第一数据处理条件的情况下,利用数据一致性协议将有效数据文件写入各个存储节点并删除相应的数据块,可避免各个存储节点独立进行垃圾回收,并且在对存储节点中的垃圾进行回收的基础上保证了各个存储节点的数据块中存储的数据的一致性。
可选地,按照图4提供的内容,确定当前数据块满足第一数据处理条件:
步骤401,确定当前数据块的有效数据文件。
步骤402,判断当前数据块的有效数据文件占比是否小于设定阈值。
具体实施时,在当前数据块的有效数据文件占比小于设定阈值的情况下,执行步骤403,在当前数据块的有效数据文件占比不小于设定阈值的情况下,执行步骤404。
步骤403,确定当前数据块满足第一数据处理条件。
步骤404,确定当前数据块不满足第一数据处理条件。
具体实施时,确定当前数据块不满足第一数据处理条件的情况下,将与当前数据块的扫描顺序相邻的下一数据块作为当前数据块,并转入步骤401。
其中,当前数据块的有效数据文件占比等于当前数据块中有效数据文件的数据量与当前数据块对应的存储容量的比值,即数据块中有效数据文件的数据量与该数据块所能承载的最大存储容量的比值。设定阈值的大小可根据实际应用场景设定,这里不做限定,比如设定阈值为0.6或者0.8。
该可选实施例中,在当前数据块中有效数据文件占比小于一定阈值的情况下,提取该当前数据块中的有效数据文件进行重写入,并在重写入完成之后将该当前数据块从主从存储节点删除,从而可以节省主从存储节点的存储空间。
可选地,按照图5提供的内容,实现利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中:
步骤501,将提取的有效数据文件追加到所述主存储节点的最后一个数据块中。
具体实施时,在主存储节点最后一个数据块中已存储数据的情况下,则从与已存储数据相邻的位置开始,将提取的有效数据文件追加写入主存储节点的最后一个数据块中。在主存储节点最后一个数据块未存储数据的情况下,则从该数据块的起始位置开始,将提取的有效数据文件追加写入主存储节点的最后一个数据块中。
步骤502,向所述至少一个从存储节点发送重写入所述有效数据文件的第一指令,所述第一指令中携带所述有效数据文件的索引信息,所述索引信息用于所述至少一个从存储节点根据所述索引信息,提取所述有效数据文件并将所述有效数据文件追加到所述至少一个从存储节点的最后一个数据块中。
具体实施时,将提取的有效数据文件追加写入主存储节点的最后一个数据块之后,向各个从存储节点发送重写入提取的有效文件的指令,本发明实施例将该执行称为第一指令,该第一指令中携带了提取的有效数据文件的索引信息。针对每个从存储节点,该从存储节点可根据第一指令中携带的索引信息,在该从存储节点本地查找到该索引信息指向的有效数据文件,并将查找到的有效数据文件追加到该从存储节点的最后一个数据块中。
相应地,在从存储节点最后一个数据块中已存储数据的情况下,则从与已存储数据相邻的位置开始,将有效数据文件追加写入该从存储节点的最后一个数据块中。在该从存储节点最后一个数据块未存储数据的情况下,则从该数据块的起始位置开始,将有效数据文件追加写入该从存储节点的最后一个数据块中。
步骤503,若接收到所有从存储节点发送的第一响应,将所述有效数据文件在所述主存储节点中的索引信息修改为追加位置对应的索引信息。
具体实施时,从存储节点将有效数据文件写入最后一个数据块之后,会发出第一响应,本步骤中,判断是否接收到所有从存储节点发送的第一响应,若是,则将提取的有效数据在所述主存储节点中的索引信息修改为追加位置对应的索引信息,即,修改为将有效数据追加到主存储节点的最后一个数据块后,该有效数据文件对应的索引信息。举例说明,提取的有效数据文件在当前数据块中对应的索引信息为A,则本步骤将提取的有效数据文件的索引信息修改为在主存储节点的最后一个数据块中对应的索引信息B。在索引信息修改完成后,将提取的有效数据文件重写入主存储节点的操作完成。
其中,索引信息包括有效数据文件的标识fid、该有效数据文件所在的数据块标识blockid、该有效数据文件在数据块中的位置off以及该有效数据文件数据块中所占的长度len,比如,fid为1,blockid为2,off为140字节,len为1440字节,则从数据块2中的第140个字节开始,长度为1440字节对应的有效数据文件为有效数据文件1。
具体实施时,可将索引信息存储于索引数据库中,该索引数据库的主键(key)为fid,根据主键可查找到对应的值(value),value等于(blockid,off,len)。
步骤504,向所述至少一个从存储节点发送第二响应,所述第二响应用于标识将所述有效数据文件重写入主存储节点的操作完成,以使所述至少一个从存储节点根据所述第二响应,将所述有效数据文件在所述至少一个从存储节点中的索引信息修改为追加位置对应的索引信息。
具体实施时,向各个从存储节点发送第二响应,以通知各个从存储节点主存储节点已重写入提取的有效数据文件。从存储节点根据接收到的第二响应,将有效数据文件在从存储节点中的索引信息修改为追加至从存储节点的最后一个数据块对应的索引信息。其中,从存储节点修改索引信息的方式与在主存储节点修改索引信息的方式类似,这里不做赘述,关于索引信息的解释说明可参见上文,这里不做赘述。
确定从存储节点修改索引信息后,确定从存储节点重写入有效数据文件的操作完成。
本可选实施例中,将提取的有效数据文件重写入从存储节点的最后一个数据块时,仅需向从存储节点发送需要重写的有效数据文件的索引信息,无需发送重写的有效数据文件的数据内容,这样可以节省网络流量。
在一些情况下,需要对数据块中的数据文件进行逻辑删除,此时,数据块中还包括逻辑删除命令文件,逻辑删除命令文件为用于指示对某一数据文件执行逻辑删除。比如逻辑删除命令文件2X用于指示对数据文件2进行逻辑删除,该逻辑删除命令文件2X存储于存储节点的数据块中,即数据文件2以及数据文件2的逻辑删除命令文件2X均存储于存储节点的数据块中。
在一种可能的实施方式中,可预先确定当前数据块的有效数据文件,具体可在步骤101之前确定当前数据块的有效数据文件,可选地,按照图6提供的内容,确定所述当前数据块的有效数据文件:
步骤601,针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则确定该第一类数据文件为该当前数据块的有效数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件。
具体实施时,可在索引数据库中存储数据文件的文件标识,其中,数据文件与文件标识一一对应,索引数据库中包括逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识,和/或,未逻辑删除的数据文件的文件标识。可根据该第一类数据文件的文件标识,从索引数据库查找该第一类数据文件的索引信息,若查找到的索引信息非空,确定该第一类数据文件为该当前数据块的有效数据文件,否则,确定为无效数据文件。需要说明的是,若索引信息中的数据块标识blockid、位置off以及长度len均为非空时,确定索引信息非空。
其中,第一类数据文件包括带有写入标记(PutCmd)的数据文件以及带有重写入标记(GcPutCmd)的数据文件;带有写入标记的数据文件具体为执行上述写入数据文件命令类型对应的命令的数据文件,带有重写入标记的数据文件为执行上述重写入数据文件命令类型对应的命令的数据文件。
需要说明的是,本发明实施例中涉及的未逻辑删除的数据文件默认为未逻辑删除且未物理删除的数据文件。
步骤602,将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合。
具体实施时,在满足第二数据处理条件的情况下,扫描主存储节点的各个数据块,并将扫描到的数据块中的第一类数据文件的文件标识存储至标识集合。
可选地,采用如下方式确定满足第二数据处理条件:判断是否到达预设扫描周期,若是,确定满足第二数据处理条件,否则,继续判断是否到达预设扫描周期。其中,预设扫描周期的大小的根据实际应用场景设定,这里不做限定。也可采用其他方式确定满足第二数据处理条件,这里不做限定,比如:监听到来自客户端的数据写入指令时,确定满足第二数据处理条件。
需要说明的是,步骤601与步骤602的执行顺序可不做限定,也可先执行步骤602后执行步骤601,或者步骤601和步骤602同时执行。
步骤603,针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识。
步骤604,若查询到,则确定该逻辑删除命令文件为该当前数据块的有效数据文件。
具体实施时,在从标识集合中查询到当前数据块的逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识时,确定该该逻辑删除命令文件为当前数据块的有效数据文件。若从标识集合中未查询到当前数据块的逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识,确定该逻辑删除命令文件为无效数据文件。
具体实施时,可按照以下方式提取确定的所述当前数据块的有效数据文件:记录基于图6提供的实施方式确定的有效数据文件的文件标识;从索引数据库中查找记录的各个文件标识对应的索引信息;根据查找到的索引信息提取相应的有效数据文件。
下面结合具体实施过程,详细介绍本发明实施例提供的数据处理方法,如图7所示,包括:
步骤701,主存储节点将主存储节点的各个数据块的第一类数据文件的文件标识存储至标识集合,其中,数据块的数据文件包括逻辑删除命令文件。
其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件。主存储节点可通过扫描各个数据块,确定其中的第一类数据文件的文件标识。主存储节点的各个数据块中,不包括已经从主存储节点物理删除的数据块。逻辑删除命令文件为带有GcDelCmd标记的数据文件。
步骤702,主存储节点确定处于当前扫描顺序的数据块为当前数据块,其中,当前数据块为扫描顺序与最近已扫描的数据块相邻且晚于最近已扫描的数据块。
具体实施时,主存储节点逐个扫描主存储节点的各个数据块,确定其处于当前扫描顺序的数据块为当前数据块,当前数据块为扫描顺序位于最近已扫描的一个数据块之后且与最近已扫描的一个数据块相邻的数据块,作为当前数据块,其中,最近已扫描的数据块为扫描时间距离当前时间最近的一个数据块。可选地,主存储节点按照数据块生成时间的先后顺序,逐个扫描主存储节点的各个数据块。
步骤703,针对当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则确定该第一类数据文件为该当前数据块的有效数据文件。
步骤704,针对当前数据块中每个逻辑删除命令文件,从标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识。
其中,进行逻辑删除的数据文件为带有DelCmd标记的数据文件。
其中,不对步骤703和步骤704的执行顺序进行限定,也可先执行步骤703后执行步骤704,或者二者同时执行。
步骤705,若查询到,则确定该逻辑删除命令文件为该当前数据块的有效数据文件。
具体的,若未查询到,则确定该逻辑删除命令文件为该当前数据块的无效数据文件。
步骤706,主存储节点判断确定出的当前数据块的有效数据文件占比是否小于设定阈值,若是,执行步骤707,否则,执行步骤714。
其中,当前数据块的有效数据文件占比等于前数据块中有效数据文件的数据量与当前数据块对应的存储容量的比值。
步骤707,主存储节点提取当前数据块中的有效数据文件。
具体实施时,按照以下方式执行步骤707:
方式一:主存储节点记录步骤703和步骤705确定出当前数据块的每个有效数据文件的文件标识;从索引数据库中查找记录的各个文件标识对应的索引信息;根据查找到的索引信息提取相应的有效数据文件。
方式二:主存储节点扫描当前数据块,若数据文件为按照步骤703确定出的有效数据文件,则提取该有效数据文件;若数据文件为按照步骤705确定出的有效数据文件,则提取该逻辑删除命令文件。方式二的具体实施过程中:扫描当前数据块;针对当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则提取该第一类数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;针对当前数据块中每个逻辑删除命令文件,从标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;若查询到,则提取该逻辑删除命令文件。
步骤708,主存储节点将提取的有效数据文件追加到主存储节点的最后一个数据块中,并向至少一个从存储节点发送重写入有效数据文件的第一指令,第一指令中携带所述有效数据文件的索引信息。
步骤709,从存储节点接收第一指令,并根据第一指令中的索引信息,提取相应的有效数据文件并将提取有效数据文件追加到该从存储节点的最后一个数据块中。
其中,从存储节点提取的有效数据文件与主存储节点从当前数据块中提取的有效文件相同。
步骤710,从存储节点发送第一响应。
步骤711,主存储节点若接收到所有从存储节点发送的第一响应,将提取的有效数据文件在主存储节点中的索引信息修改为追加位置对应的索引信息,并对当前数据块进行物理删除。
其中,可使用DelBlkCmd命令,对数据块进行物理删除,该命令中的data字段为要删除的数据块标识(blockid)。
步骤712,主存储节点向至少一个从存储节点发送第二响应,第二响应用于标识将提取的有效数据文件重写入主存储节点的操作完成。
步骤713,从存储节点接收第二响应,并根据第二响应,将提取的有效数据文件在该从存储节点中的索引信息修改为追加位置对应的索引信息并对当前数据块在该存储出节点对应的数据块进行物理删除。
步骤714,将下一数据块作为当前数据块,并执行步骤701。
下面举例说明本发明实施例提供的数据处理方法。
假设主存储节点的数据块包括block1、block2以及block3,block1存储的数据文件的标识集合为[1 2 3 4 5 6 7 8 2X],block2存储的数据文件的标识集合为[9 10 1112 13 6X 14 15 1X 3X],block3存储的数据文件的标识集合为[16 17],其中,1X为数据文件1对应的逻辑删除命令文件的标识,2X为数据文件2对应的逻辑删除命令文件的标识,3X为数据文件3对应的逻辑删除命令文件的标识,6X为数据文件6对应的逻辑删除命令文件的标识。
主存储节点扫描block1、block2以及block3,将block1、block2以及block3中的第一类数据文件的文件标识[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17]保存至标识集合。
主存储节点扫描block1,确定block1中各个数据文件为[1 2 3 4 5 6 7 8 2X]。
主存储节点确定block1中的第一类数据文件[1 2 3 4 5 6 7 8]中,对应的索引信息为非空的文件标识[4 5 7 8],并确定[4 5 7 8]对应的数据文件为block1的有效数据文件。
主存储节点从得到的标识集合中可查询到2X指示进行逻辑删除的数据文件2,则确定2X为block1的有效数据文件。
若确定出的block1的有效数据文件占比小于设定阈值,则提取block1中的[4 5 78 2X],并利用预设数据一致性协议,将提取的[4 5 7 8 2X]重写入block3,以及利用该预设数据一致性协议,将Block1从主存储节点中删除,得到主存储节点的数据块block2和block3,此时,block2存储的数据文件的标识集合为[9 10 11 12 13 6X 14 15 1X 3X],block3存储的数据文件的标识集合为[16 17 4 5 7 8 2X]。
将block2作为当前数据块,扫描block2以及block3,将block2以及block3中的第一类数据文件的文件标识[9 10 11 12 13 14 15 16 17 4 5 7 8]保存至标识集合,此时,由于block2中的1X、3X以及6X指示进行逻辑删除的数据文件已物理删除,因此确定出的标识集合为[9 10 11 12 13 14 15 16 17 4 5 7 8],不包括已物理删除的数据文件[1 36]。
主存储节点扫描block2,确定block2中各个数据文件为[9 10 11 12 13 6X 1415 1X 3X]。
主存储节点确定block2中的第一类数据文件[9 10 11 12 13 14 15]在索引数据库中对应的索引信息均为非空,则确定[9 10 11 12 13 14 15]对应的数据文件为block2的有效数据文件。
主存储节点针对block2的逻辑删除命令文件1X、3X以及6X,从得到的标识集合中均未查询到1X、3X以及6X指示进行逻辑删除的数据文件1、3以及6,则确定1X、3X以及6X为block2的无效数据文件。
若确定出的block2的有效数据文件占比小于设定阈值,则提取block2中的[9 1011 12 13 14 15],并利用预设数据一致性协议,将提取的[9 10 11 12 13 14 15]重写入block3,以及利用该预设数据一致性协议,将block2从主存储节点中删除,得到主存储节点的数据块block3。
若block3的剩余存储容量不足以容纳[9 10 11 12 13 14 15],则生成一个新的数据块block4,并将[9 10 11 12 13 14 15]中未能写入block3的数据文件写入block4。
采用同样的方式对block3以及block4进行相同的数据处理过程,这里不做详述。
可选地,本发明实施例提供的数据处理方法,还包括:
若所述主存储节点的最后一个数据块的剩余存储容量小于所述有效数据文件对应的数据量,生成一个新的数据块;将剩余的有效数据文件重写入所述新的数据块中;其中,剩余的有效数据文件为未重写入所述主存储节点的最后一个数据块中的有效数据文件。
具体实施时,主存储节点的最后一个数据块的剩余空间可能不足以容纳所有提取出的有效数据文件,此时,在主存储节点中生成一个新的数据块,将最后一个数据块不足以容纳的剩余的有效数据文件写入该新的数据块中。这样可以避免有效数据文件的丢失。
上述各个实施例中,主存储节点中各个数据块的大小相同,各个从存储节点中各个数据块的大小均相同,并且,主存储节点和从存储节点中数据块的大小相同,比如,每个数据块的大小均为1GB。如图8所示,数据块由文件头(heard)和数据文件(record)组成,每个record的主键(key)即为上文提及的fid。
相应地,从存储节点的最后一个数据块的剩余空间可能不足以容纳所有提取出的有效数据文件,此时,在从存储节点中生成一个新的数据块,将最后一个数据块不足以容纳的剩余的有效数据文件写入该新的数据块中。
基于与上述实施例提供的数据处理方法同样的本发明构思,本发明实施例还提供一种数据处理系统,包括主存储节点以及至少一个从存储节点,其中:
主存储节点,用于若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点的最后一个数据块中以及指示所述至少一个从存储节点将提取的有效数据文件重写入对应从存储节点的最后一个数据块中;利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点中删除以及指示所述至少一个从存储节点将所述当前数据块从对应从存储节点中删除;所述最后一个数据块为生成时间距离当前时间最近的数据块;
从存储节点,用于根据所述主存储节点的指示,将提取的有效数据文件重写入该从存储节点的最后一个数据块中,并将所述当前数据块从该从存储节点中删除。
可选地,所述主存储节点,具体用于:
将提取的有效数据文件追加到所述主存储节点的最后一个数据块中,并向所述至少一个从存储节点发送重写入所述有效数据文件的第一指令,所述第一指令中携带所述有效数据文件的索引信息;若接收到所有从存储节点发送的第一响应,将所述有效数据文件在所述主存储节点中的索引信息修改为追加位置对应的索引信息;向所述至少一个从存储节点发送第二响应,所述第二响应用于标识将所述有效数据文件重写入主存储节点的操作完成;
所述从存储节点具体用于:接收所述主存储节点发送的第一指令;根据所述第一指令中携带的所述有效数据文件的索引信息,提取所述有效数据文件并将提取的有效数据文件追加到该从存储节点的最后一个数据块中;接收所述主存储节点发送的第二响应;根据所述第二响应,将所述有效数据文件在该从存储节点中的索引信息修改为追加位置对应的索引信息。
可选地,上述主存储节点具体用于采用以下方式确定所述当前数据块满足第一数据处理条件:
确定所述当前数据块的有效数据文件;
判断所述当前数据块的有效数据文件占比是否小于设定阈值;
若是,确定所述当前数据块满足第一数据处理条件;
其中,当前数据块的有效数据文件占比等于所述当前数据块中有效数据文件的数据量与所述当前数据块对应的存储容量的比值。
可选地,上述主存储节点具体用于采用如下方式确定所述当前数据块的有效数据文件:
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则确定该第一类数据文件为该当前数据块的有效数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则确定该逻辑删除命令文件为该当前数据块的有效数据文件。
可选地,所述主存储节点,还用于:
若所述主存储节点的最后一个数据块的剩余存储容量小于所述有效数据文件对应的数据量,生成一个新的数据块;
将剩余的有效数据文件重写入所述新的数据块中;
其中,剩余的有效数据文件为未重写入所述主存储节点的最后一个数据块的有效数据文件。
可选地,所述主存储节点具体用于采用如下方式提取确定的所述当前数据块的有效数据文件:
扫描所述当前数据块;
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则提取该第一类数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则提取该逻辑删除命令文件。
示例性设备
在介绍了本发明示例性实施方式的数据处理方法和系统之后,接下来,参考图9描述本发明示例性实施方式的数据处理装置。
图9为本发明实施例提供的一种数据处理装置的结构示意图,如图9所示,可以包括如下模块:
提取模块901,用于若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;
重写入模块902,用于利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;
删除模块903,用于利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除。
可选地,本发明实施例提供的数据处理装置,还包括:
第一确定模块904,具体用于采用以下方式确定所述当前数据块满足第一数据处理条件:
确定所述当前数据块的有效数据文件;
判断所述当前数据块的有效数据文件占比是否小于设定阈值;
若是,确定所述当前数据块满足第一数据处理条件;
其中,当前数据块的有效数据文件占比等于所述当前数据块中有效数据文件的数据量与所述当前数据块对应的存储容量的比值。
可选地,所述重写入模块902,具体用于:
将提取的有效数据文件追加到所述主存储节点的最后一个数据块中,并向所述至少一个从存储节点发送重写入所述有效数据文件的第一指令,所述第一指令中携带所述有效数据文件的索引信息,所述索引信息用于所述至少一个从存储节点根据所述索引信息,提取所述有效数据文件并将所述有效数据文件追加到所述至少一个从存储节点的最后一个数据块中;
若接收到所有从存储节点发送的第一响应,将所述有效数据文件在所述主存储节点中的索引信息修改为追加位置对应的索引信息;
向所述至少一个从存储节点发送第二响应,所述第二响应用于标识将所述有效数据文件重写入主存储节点的操作完成,以使所述至少一个从存储节点根据所述第二响应,将所述有效数据文件在所述至少一个从存储节点中的索引信息修改为追加位置对应的索引信息。
可选地,本发明实施例提供的数据处理装置,还包括:
第二确定模块905,用于采用如下方式确定所述当前数据块的有效数据文件:
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则确定该第一类数据文件为该当前数据块的有效数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则确定该逻辑删除命令文件为该当前数据块的有效数据文件。
可选地,本发明实施例提供的数据处理装置,还包括:
生成模块906,若所述主存储节点的最后一个数据块的剩余存储容量小于所述有效数据文件对应的数据量,生成一个新的数据块;
所述重写入模块902,还用于将剩余的有效数据文件重写入所述新的数据块中;其中,剩余的有效数据文件为未重写入所述主存储节点的最后一个数据块的有效数据文件。
可选地,所述提取模块901,具体用于:
扫描所述当前数据块;
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则提取该第一类数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则提取该逻辑删除命令文件。
示例性设备
在介绍了本发明示例性实施方式的数据处理方法、装置和系统之后,接下来,介绍根据本发明的示例性实施方式的用于数据处理的计算设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的用于数据处理的计算设备可以至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据处理方法中的步骤。例如,所述处理器执行所述程序时实现如图2中所示的步骤201,若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;步骤202,利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;步骤203,利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除。
下面参照图10来描述根据本发明的这种实施方式的计算设备100。图10显示的计算设备100仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算设备100以通用计算设备的形式表现。计算设备100的组件可以包括但不限于:上述至少处理器1001、上述存储器1002、连接不同系统组件(包括处理器1001和存储器1002)的总线1003。
总线1003包括地址总线、控制总线和数据总线。
存储器1002可以包括易失性存储器,例如随机存取存储器(RAM)10021和/或高速缓存存储器10022,还可以进一步包括只读存储器(ROM)10023。
存储器1002还可以包括具有一组(至少一个)程序模块10024的程序/实用工具10025,这样的程序模块10024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备100也可以与一个或多个外部设备1004(例如键盘、指向设备等)通信,这种通信可以通过输入/输出(I/O)接口1005进行。并且,计算设备100还可以通过网络适配器1006与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1006通过总线1003与计算设备100的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性介质
在介绍了本发明示例性实施方式的数据方法、装置、系统和计算设备之后,接下来,对本发明示例性实施方式的用于数据处理的计算机可读介质进行介绍。本发明实施例提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据处理方法中的步骤,比如实现如图2中所示的步骤201,若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;步骤202,利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;步骤203,利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除。
可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图11所示,描述了根据本发明的实施方式的用于数据处理的程序产品110,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户设备上执行、部分在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户设备,或者,可以连接到外部计算设备。
应当注意,尽管在上文详细描述中提及了数据处理装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (17)

1.一种数据处理方法,包括:
若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;
利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;
利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除;
若所述主存储节点的最后一个数据块的剩余存储容量小于所述有效数据文件对应的数据量,生成一个新的数据块;
将剩余的有效数据文件重写入所述新的数据块中;
其中,剩余的有效数据文件为未重写入所述主存储节点的最后一个数据块的有效数据文件。
2.根据权利要求1所述的方法,其中,采用以下方式确定所述当前数据块满足第一数据处理条件:
确定所述当前数据块的有效数据文件;
判断所述当前数据块的有效数据文件占比是否小于设定阈值;
若是,确定所述当前数据块满足第一数据处理条件;
其中,当前数据块的有效数据文件占比等于所述当前数据块中有效数据文件的数据量与所述当前数据块对应的存储容量的比值。
3.根据权利要求1所述的方法,其中,利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,包括:
将提取的有效数据文件追加到所述主存储节点的最后一个数据块中,并向所述至少一个从存储节点发送重写入所述有效数据文件的第一指令,所述第一指令中携带所述有效数据文件的索引信息,所述索引信息用于所述至少一个从存储节点根据所述索引信息,提取所述有效数据文件并将所述有效数据文件追加到所述至少一个从存储节点的最后一个数据块中;
若接收到所有从存储节点发送的第一响应,将所述有效数据文件在所述主存储节点中的索引信息修改为追加位置对应的索引信息;
向所述至少一个从存储节点发送第二响应,所述第二响应用于标识将所述有效数据文件重写入主存储节点的操作完成,以使所述至少一个从存储节点根据所述第二响应,将所述有效数据文件在所述至少一个从存储节点中的索引信息修改为追加位置对应的索引信息。
4.根据权利要求2所述的方法,其中,采用如下方式确定所述当前数据块的有效数据文件:
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则确定该第一类数据文件为该当前数据块的有效数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则确定该逻辑删除命令文件为该当前数据块的有效数据文件。
5.根据权利要求1所述的方法,其中,提取确定的所述当前数据块的有效数据文件,包括:
扫描所述当前数据块;
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则提取该第一类数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则提取该逻辑删除命令文件。
6.一种数据处理装置,包括:
提取模块,用于若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;
重写入模块,用于利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点以及至少一个从存储节点的最后一个数据块中,所述最后一个数据块为生成时间距离当前时间最近的数据块;
删除模块,用于利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点以及所述至少一个从存储节点中删除;
生成模块,用于若所述主存储节点的最后一个数据块的剩余存储容量小于所述有效数据文件对应的数据量,生成一个新的数据块;
所述重写入模块,还用于将剩余的有效数据文件重写入所述新的数据块中;其中,剩余的有效数据文件为未重写入所述主存储节点的最后一个数据块的有效数据文件。
7.如权利要求6所述的装置,其特征在于,还包括:
第一确定模块,具体用于采用以下方式确定所述当前数据块满足第一数据处理条件:
确定所述当前数据块的有效数据文件;
判断所述当前数据块的有效数据文件占比是否小于设定阈值;
若是,确定所述当前数据块满足第一数据处理条件;
其中,当前数据块的有效数据文件占比等于所述当前数据块中有效数据文件的数据量与所述当前数据块对应的存储容量的比值。
8.如权利要求6所述的装置,其特征在于,所述重写入模块,具体用于:
将提取的有效数据文件追加到所述主存储节点的最后一个数据块中,并向所述至少一个从存储节点发送重写入所述有效数据文件的第一指令,所述第一指令中携带所述有效数据文件的索引信息,所述索引信息用于所述至少一个从存储节点根据所述索引信息,提取所述有效数据文件并将所述有效数据文件追加到所述至少一个从存储节点的最后一个数据块中;
若接收到所有从存储节点发送的第一响应,将所述有效数据文件在所述主存储节点中的索引信息修改为追加位置对应的索引信息;
向所述至少一个从存储节点发送第二响应,所述第二响应用于标识将所述有效数据文件重写入主存储节点的操作完成,以使所述至少一个从存储节点根据所述第二响应,将所述有效数据文件在所述至少一个从存储节点中的索引信息修改为追加位置对应的索引信息。
9.如权利要求7所述的装置,其特征在于,还包括:
第二确定模块,用于采用如下方式确定所述当前数据块的有效数据文件:
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则确定该第一类数据文件为该当前数据块的有效数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则确定该逻辑删除命令文件为该当前数据块的有效数据文件。
10.如权利要求6所述的装置,其特征在于,所述提取模块,具体用于:
扫描所述当前数据块;
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则提取该第一类数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则提取该逻辑删除命令文件。
11.一种数据处理系统,包括主存储节点以及至少一个从存储节点,其中:
主存储节点,用于若主存储节点的当前数据块满足第一数据处理条件,提取确定的所述当前数据块的有效数据文件;利用预设数据一致性协议,将提取的有效数据文件重写入所述主存储节点的最后一个数据块中以及指示所述至少一个从存储节点将提取的有效数据文件重写入对应从存储节点的最后一个数据块中;利用所述预设数据一致性协议,将所述当前数据块从所述主存储节点中删除以及指示所述至少一个从存储节点将所述当前数据块从对应从存储节点中删除;所述最后一个数据块为生成时间距离当前时间最近的数据块;
所述主存储节点,还用于:若所述主存储节点的最后一个数据块的剩余存储容量小于所述有效数据文件对应的数据量,生成一个新的数据块;将剩余的有效数据文件重写入所述新的数据块中;其中,剩余的有效数据文件为未重写入所述主存储节点的最后一个数据块的有效数据文件;
从存储节点,用于根据所述主存储节点的指示,将提取的有效数据文件重写入该从存储节点的最后一个数据块中,并将所述当前数据块从该从存储节点中删除。
12.如权利要求11所述的系统,其特征在于,所述主存储节点,具体用于:
将提取的有效数据文件追加到所述主存储节点的最后一个数据块中,并向所述至少一个从存储节点发送重写入所述有效数据文件的第一指令,所述第一指令中携带所述有效数据文件的索引信息;若接收到所有从存储节点发送的第一响应,将所述有效数据文件在所述主存储节点中的索引信息修改为追加位置对应的索引信息;向所述至少一个从存储节点发送第二响应,所述第二响应用于标识将所述有效数据文件重写入主存储节点的操作完成;
所述从存储节点具体用于:接收所述主存储节点发送的第一指令;根据所述第一指令中携带的所述有效数据文件的索引信息,提取所述有效数据文件并将提取的有效数据文件追加到该从存储节点的最后一个数据块中;接收所述主存储节点发送的第二响应;根据所述第二响应,将所述有效数据文件在该从存储节点中的索引信息修改为追加位置对应的索引信息。
13.如权利要求11所述的系统,其特征在于,
所述主存储节点具体用于采用以下方式确定所述当前数据块满足第一数据处理条件:
确定所述当前数据块的有效数据文件;
判断所述当前数据块的有效数据文件占比是否小于设定阈值;
若是,确定所述当前数据块满足第一数据处理条件;
其中,当前数据块的有效数据文件占比等于所述当前数据块中有效数据文件的数据量与所述当前数据块对应的存储容量的比值。
14.如权利要求13所述的系统,其特征在于,
所述主存储节点具体用于采用如下方式确定所述当前数据块的有效数据文件:
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则确定该第一类数据文件为该当前数据块的有效数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则确定该逻辑删除命令文件为该当前数据块的有效数据文件。
15.如权利要求11所述的系统,其特征在于,
所述主存储节点具体用于采用如下方式提取确定的所述当前数据块的有效数据文件:
扫描所述当前数据块;
针对所述当前数据块的每个第一类数据文件,若该第一类数据文件的索引信息为非空,则提取该第一类数据文件;其中,第一类数据文件包括带有写入标记的数据文件以及带有重写入标记的数据文件;
将主存储节点的各个数据块中的第一类数据文件的文件标识存储至标识集合;
针对当前数据块中每个逻辑删除命令文件,从所述标识集合中查询该逻辑删除命令文件指示进行逻辑删除的数据文件的文件标识;
若查询到,则提取该逻辑删除命令文件。
16.一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行实现权利要求1-5任一所述方法的步骤。
17.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序、连接所述存储器与所述处理器的总线,和/或连接外部设备的接口,所述处理器执行所述程序时实现权利要求1-5任一所述方法的步骤。
CN201810142664.XA 2018-02-11 2018-02-11 一种数据处理方法、装置、系统、介质和计算设备 Active CN108415986B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810142664.XA CN108415986B (zh) 2018-02-11 2018-02-11 一种数据处理方法、装置、系统、介质和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810142664.XA CN108415986B (zh) 2018-02-11 2018-02-11 一种数据处理方法、装置、系统、介质和计算设备

Publications (2)

Publication Number Publication Date
CN108415986A CN108415986A (zh) 2018-08-17
CN108415986B true CN108415986B (zh) 2020-10-30

Family

ID=63128646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810142664.XA Active CN108415986B (zh) 2018-02-11 2018-02-11 一种数据处理方法、装置、系统、介质和计算设备

Country Status (1)

Country Link
CN (1) CN108415986B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325034B (zh) * 2018-10-12 2023-10-20 平安科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质
CN109933566B (zh) * 2019-03-06 2023-05-12 深信服科技股份有限公司 文件读写方法、装置、设备及计算机可读存储介质
CN109977074B (zh) * 2019-03-11 2021-04-27 北京东方国信科技股份有限公司 一种基于hdfs的lob数据处理方法及装置
CN110096237B (zh) * 2019-04-30 2022-02-08 北京百度网讯科技有限公司 副本处理方法及节点、存储系统、服务器、可读介质
CN112764662B (zh) * 2019-10-21 2024-04-19 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
CN111177075B (zh) * 2019-12-26 2022-04-22 浪潮电子信息产业股份有限公司 一种垃圾数据的识别方法、系统、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670726A (zh) * 2004-03-17 2005-09-21 联想(北京)有限公司 一种检查机群文件系统中垃圾文件的方法
CN102317939A (zh) * 2008-12-22 2012-01-11 谷歌公司 用于复制的存储集群的异步分布式垃圾收集
CN103064843A (zh) * 2011-10-20 2013-04-24 北京中搜网络技术股份有限公司 数据处理装置和数据处理方法
CN103077166A (zh) * 2011-10-25 2013-05-01 深圳市快播科技有限公司 小文件存储的空间复用方法和装置
CN105095489A (zh) * 2015-08-18 2015-11-25 浪潮(北京)电子信息产业有限公司 一种分布式文件删除方法、装置和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101251843B (zh) * 2007-11-23 2010-06-30 华中科技大学 一种用于数据网格的全分布式副本定位方法
DE102008012979A1 (de) * 2008-03-06 2009-09-10 Gip Ag Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken
US9292373B2 (en) * 2013-03-15 2016-03-22 International Business Machines Corporation Query rewrites for data-intensive applications in presence of run-time errors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670726A (zh) * 2004-03-17 2005-09-21 联想(北京)有限公司 一种检查机群文件系统中垃圾文件的方法
CN102317939A (zh) * 2008-12-22 2012-01-11 谷歌公司 用于复制的存储集群的异步分布式垃圾收集
CN103064843A (zh) * 2011-10-20 2013-04-24 北京中搜网络技术股份有限公司 数据处理装置和数据处理方法
CN103077166A (zh) * 2011-10-25 2013-05-01 深圳市快播科技有限公司 小文件存储的空间复用方法和装置
CN105095489A (zh) * 2015-08-18 2015-11-25 浪潮(北京)电子信息产业有限公司 一种分布式文件删除方法、装置和系统

Also Published As

Publication number Publication date
CN108415986A (zh) 2018-08-17

Similar Documents

Publication Publication Date Title
CN108415986B (zh) 一种数据处理方法、装置、系统、介质和计算设备
US11550675B2 (en) Remote data replication method and system
US10599337B2 (en) Method and device for writing data and acquiring data in a distributed storage system
US10303363B2 (en) System and method for data storage using log-structured merge trees
CN108460045B (zh) 一种快照的处理方法及分布式块存储系统
EP3206128B1 (en) Data storage method, data storage apparatus, and storage device
US10430292B2 (en) Snapshot deletion in a distributed storage system
WO2019062572A1 (zh) 一种数据处理方法、装置及系统
JP2021522577A (ja) ホスト認識更新書き込みの方法、システム、およびコンピュータ・プログラム
WO2017113211A1 (zh) 访问请求处理方法、装置及计算机系统
CN112817962B (zh) 基于对象存储的数据存储方法、装置和计算机设备
US10430110B2 (en) Implementing a hybrid storage node in a distributed storage system
CN111309799A (zh) 数据合并的实现方法、装置、系统及存储介质
CN115509440A (zh) 存储系统及数据处理方法
JP6376626B2 (ja) データ格納方法、データストレージ装置、及びストレージデバイス
CN115729463A (zh) 数据迁移的方法、系统及相关装置
US10452308B2 (en) Encoding tags for metadata entries in a storage system
CN108271420A (zh) 管理文件的方法、文件系统和服务器系统
CN113806316B (zh) 一种文件同步方法、设备及存储介质
CN114063935B (zh) 处理数据的方法以及装置
CN112162950B (zh) 基于文件系统的数据处理方法、装置和计算机设备
CN112597074B (zh) 数据处理方法及装置
CN117951094A (zh) 存储空间的回收方法、文件系统、介质和计算设备
CN117591523A (zh) 基于共享存储架构的数据处理方法、装置和计算设备
CN115793982A (zh) 数据处理方法、介质、装置和计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.