CN111400267B - 记录日志的方法和装置 - Google Patents

记录日志的方法和装置 Download PDF

Info

Publication number
CN111400267B
CN111400267B CN201911135445.XA CN201911135445A CN111400267B CN 111400267 B CN111400267 B CN 111400267B CN 201911135445 A CN201911135445 A CN 201911135445A CN 111400267 B CN111400267 B CN 111400267B
Authority
CN
China
Prior art keywords
data block
log file
target data
log
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911135445.XA
Other languages
English (en)
Other versions
CN111400267A (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 Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System 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 Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN201911135445.XA priority Critical patent/CN111400267B/zh
Publication of CN111400267A publication Critical patent/CN111400267A/zh
Application granted granted Critical
Publication of CN111400267B publication Critical patent/CN111400267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开提供了一种记录日志的方法和装置,属于存储技术领域。所述方法包括:存储节点中的存储对象包括文件系统,文件系统将存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,文件系统对应有数据库和日志文件,数据库用于记录每个数据块所存储数据的索引信息,日志文件包括每个数据块的状态信息,状态信息包括最后一次的操作时间和操作类型。在存储节点接收到目标数据的写入请求时,可以确定目标数据待写入的目标数据块,将目标数据写入目标数据块,并在开始写入时在日志文件中更新目标数据块对应的操作时间,将目标数据块对应的操作类型更新为第一类型。采用本公开,可以节约存储空间。

Description

记录日志的方法和装置
技术领域
本公开涉及存储技术领域,特别涉及一种记录日志的方法和装置。
背景技术
随着计算机技术和网络技术的发展,云存储越来越重要,云存储是通过集群应用、网络技术和分布式自有存储文件系统等,将网络中大量的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。云存储中,每一个存储服务器可以称为是一个存储节点,每个存储节点中一个或多个存储对象,存储对象可以是存储设备,也可以是虚拟的存储区,存储设备为存储数据的载体,如磁盘、固态硬盘等。每个存储对象对应有一个文件系统,文件系统是操作系统用于明确存储对象的文件的方法和数据结构,文件系统对应一个数据库,数据库中用于存储数据的索引信息,基于数据的索引信息,就可以在获取到数据。
相关技术中,在记录存储对象中的操作日志时,会按照时间顺序记录所有操作日志,这样,通过流水账的方式记录日志,会占用大量的存储空间。
发明内容
为了解决占用大量的存储空间的问题,本公开实施例提供了一种记录日志的方法和装置。所述技术方案如下:
第一方面,提供了一种记录日志的方法,应用于存储节点中的存储对象,所述存储对象包括文件系统,所述文件系统将所述存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,所述文件系统对应有数据库和日志文件,所述数据库用于记录每个数据块所存储数据的索引信息,所述日志文件包括每个数据块的状态信息,所述状态信息包括最后一次的操作时间和操作类型,所述方法包括:
接收目标数据的写入请求,确定所述目标数据待写入的目标数据块;
将所述目标数据写入所述目标数据块,并在开始写入时在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型更新为第一类型。
可选的,所述方法还包括:
在所述目标数据写入所述目标数据块写入完成时,在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型从所述第一类型更新为第二类型。
可选的,所述日志文件还包括文件头信息;
所述方法还包括:
在对所述日志文件进行校验时,如果获取到所述文件系统对应的日志文件,则读取所述文件头信息;
在读取到所述文件头信息后,如果所述日志文件的数据量正确,则读取所述日志文件包括的每个数据块的日志信息;
确定所述每个数据块的日志信息的正确性;
如果所述每个数据块的日志信息均正确,则确定所述日志文件校验完成。
可选的,所述方法还包括:
如果获取不到所述文件系统对应的日志文件,则重新创建日志文件;或者,
如果所述日志文件的数据量不正确,则删除所述日志文件,重新创建日志文件;或者,
如果所述日志文件中至少一个数据块的日志信息不正确,则删除所述日志文件,重新创建日志文件。
可选的,所述方法还包括:
在将所述目标数据写入所述目标数据块时,生成所述目标数据在所述目标数据块中的索引信息;
根据所述目标数据在所述目标数据块中的索引信息,确定在所述数据库中所述目标数据对应的目标索引信息;
确定所述目标索引信息写入至所述数据库时出现错误;
在所述日志文件中更新所述目标数据块对应的操作时间,并记录所述目标数据块对应错误标记。
可选的,所述方法还包括:
在所述存储对象上线时,检测所述存储对象中的日志文件;
如果所述存储对象中存在日志文件,且所述日志文件正确,则在所述日志文件中获取处于第一类型和对应错误标记的数据块;
将所述处于第一类型和对应错误标记的数据块,确定为待恢复的数据块;
从所述文件系统中,获取所述待恢复的数据块的索引信息;
基于所述待恢复的数据块的索引信息,恢复所述待恢复的数据块在所述数据库中的索引信息。
可选的,所述方法还包括:
在所述日志文件中各个数据块的操作时间,获取时间最晚的目标操作时间;
在所述日志文件中,获取操作时间属于所述目标操作时间之前最近的目标时长内的数据块;
所述将处于第一类型和对应错误标记的数据块,确定为待恢复的数据块,包括:
将操作时间属于所述目标操作时间之前最近的目标时长内的数据块、处于第一类型和对应错误标记的数据块,确定为待恢复的数据块。
可选的,所述方法还包括:
如果所述存储对象存在日志文件,且所述日志文件不正确,则将所述存储对象中所有数据块,确定为待恢复的数据块。
可选的,所述操作时间是所述文件系统运行的累加时间。
第二方面,提供了一种记录日志的装置,应用于存储节点中的存储对象,所述存储对象包括文件系统,所述文件系统将所述存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,所述文件系统对应有数据库和日志文件,所述数据库用于记录每个数据块所存储数据的索引信息,所述日志文件包括每个数据块的状态信息,所述状态信息包括最后一次的操作时间和操作类型,所述装置包括:
接收模块,用于接收目标数据的写入请求;
确定模块,用于确定所述目标数据待写入的目标数据块;
写入模块,用于将所述目标数据写入所述目标数据块,并在开始写入时在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型更新为第一类型。
可选的,所述写入模块,还用于:
在所述目标数据写入所述目标数据块写入完成时,在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型从所述第一类型更新为第二类型。
可选的,所述日志文件还包括文件头信息;
所述装置还包括:
读取模块,用于在对所述日志文件进行校验时,如果获取到所述文件系统对应的日志文件,则读取所述文件头信息;
在读取到所述文件头信息后,如果所述日志文件的数据量正确,则读取所述日志文件包括的每个数据块的日志信息;
所述确定模块,还用于:
确定所述每个数据块的日志信息的正确性;
如果所述每个数据块的日志信息均正确,则确定所述日志文件校验完成。
可选的,所述写入模块,还用于:
如果获取不到所述文件系统对应的日志文件,则重新创建日志文件;或者,
如果所述日志文件的数据量不正确,则删除所述日志文件,重新创建日志文件;或者,
如果所述日志文件中至少一个数据块的日志信息不正确,则删除所述日志文件,重新创建日志文件。
可选的,所述确定模块,还用于:
在将所述目标数据写入所述目标数据块时,生成所述目标数据在所述目标数据块中的索引信息;
根据所述目标数据在所述目标数据块中的索引信息,确定在所述数据库中所述目标数据对应的目标索引信息;
确定所述目标索引信息写入至所述数据库时出现错误;
所述写入模块,还用于在所述日志文件中更新所述目标数据块对应的操作时间,并记录所述目标数据块对应错误标记。
可选的,所述确定模块,还用于:
在所述存储对象上线时,检测所述存储对象中的日志文件;
如果所述存储对象中存在日志文件,且所述日志文件正确,则在所述日志文件中获取处于第一类型和对应错误标记的数据块;
将所述处于第一类型和对应错误标记的数据块,确定为待恢复的数据块;
从所述文件系统中,获取所述待恢复的数据块的索引信息;
基于所述待恢复的数据块的索引信息,恢复所述待恢复的数据块在所述数据库中的索引信息。
可选的,所述确定模块,还用于:
在所述日志文件中各个数据块的操作时间,获取时间最晚的目标操作时间;
在所述日志文件中,获取操作时间属于所述目标操作时间之前最近的目标时长内的数据块;
所述将处于第一类型和对应错误标记的数据块,确定为待恢复的数据块,包括:
将操作时间属于所述目标操作时间之前最近的目标时长内的数据块、处于第一类型和对应错误标记的数据块,确定为待恢复的数据块。
可选的,所述确定模块,还用于:
如果所述存储对象存在日志文件,且所述日志文件不正确,则将所述存储对象中所有数据块,确定为待恢复的数据块。
可选的,所述操作时间是所述文件系统运行的累加时间。
第三方面,提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面所述的记录日志的方法。
第四方面,提供了一种存储节点,该存储节点包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现第一方面所述的记录日志的方法。
本公开实施例提供的技术方案带来的有益效果至少包括:
本公开实施例中,存储节点中的存储对象包括文件系统,文件系统将存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,文件系统对应有数据库和日志文件,数据库用于记录每个数据块所存储数据的索引信息,日志文件包括每个数据块的状态信息,状态信息包括最后一次的操作时间和操作类型。在存储节点接收到目标数据的写入请求时,可以确定目标数据待写入的目标数据块,将目标数据写入目标数据块,并在开始写入时在日志文件中更新目标数据块对应的操作时间,将目标数据块对应的操作类型更新为第一类型。这样,由于是在日志文件中,对操作时间和操作类型的更新,而不是添加日志文件,所以记录的日志信息比较少,可以节约存储空间。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种文件系统的格式示意图;
图2是本公开实施例提供的一种日志文件的格式示意图;
图3是本公开实施例提供的一种记录日志的方法流程图;
图4是本公开实施例提供的一种进行检验的过程的流程示意图;
图5是本公开实施例提供的一种进行错误标记的流程示意图;
图6是本公开实施例提供的一种恢复数据库中的信息的流程示意图;
图7是本公开实施例提供的一种记录日志的装置的结构示意图;
图8是本公开实施例提供的一种记录日志的装置的结构示意图;
图9是本公开实施例提供的一种存储节点的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
为了便于对本公开实施例的理解,下面首先介绍本公开实施例涉及的系统架构、以及所涉及到名词的概念。
本公开实施例涉及云存储系统,云存储系统中可以包括多个存储节点(也可以称为是存储服务器,后续可以简称为服务器),每个服务器可以包括至少一个存储对象,该存储对象可以是物理上的存储空间,也可以是逻辑上的存储空间,在该存储对象为物理上的存储空间时,该存储对象可以是磁盘、固态硬盘和fc(fibre channel,光纤通道)设备等。
每个存储对象中设置有文件系统,文件系统对应有数据库和日志文件,通过文件系统将存储对象中的存储空间划分为N个小的数据块,每个数据块的大小可以相等也可以不相等,每个数据块均有独立的索引信息区和数据区,数据区用于存储数据,索引信息区用于存储数据块中的数据的存储位置信息。每个数据块的索引信息区可以包括一个或两个索引信息,在包括两个索引信息时,两个索引信息相同,一个是主索引信息,另一个备索引信息。数据块的索引信息区可以设置在数据块的开始位置或者结束位置,也或者是其它位置,在包括两个索引信息时,主索引信息可以设置在数据块的开始位置,备索引信息可以设置在数据块的结束位置。
另外,文件系统中还可以在存储空间中划分出启动块,对应上述存储对象是物理存储空间或者逻辑上的存储空间,启动块可以是物理上的存储空间或者逻辑上的存储空间,启动块用于存储文件系统的数据量、数据块的数目等。启动块的位置可以位于数据块的开始位置或者结束位置,或者其它位置,启动块可以是一个或多个。在启动块为两个时,一个是主启动块,另一个可以是备启动块,在启动块为多个时,启动块的大小可以相同,也可以不相同。
如图1所示,给出了文件系统的格式示意图,划分了两个启动块(主启动块和备启动块)、数据块区,数据块区中包括N个数据块,每个数据块包括主索引信息和备索引信息。
在存储对象中文件系统对应有存储对象的数据库,数据库中包括数据块存储的数据的索引信息。
存储对象中文件系统还对应有存储对象的日志文件,日志文件在存储对象的数据库创建时,随数据库一起生成,在数据库删除时,随数据库一起删除,生成的日志文件的数据量为:文件头信息的数据量+(单个数据块的日志信息的数据量)*(数据块的数目)。
日志文件可以包括文件头信息和日志数据区,文件头信息中可以包括存储对象的标识、存储对象的数据块的数目、存储对象的状态和日志文件的时间,存储对象的标识可以占用64个字节,存储对象的数据块的数目可以占用4个字节,存储对象的状态可以占用4个字节,日志文件的时间可以占用8个字节,另外文件头信息中还可以包括保留字段,可以占用176个字节。日志数据区可以用于存储数据块的日志信息,每个数据块的日志信息可以占用20个字节。每个数据块的日志信息可以包括数据块的标识、数据块的操作类型、数据块的错误标记、数据块的操作时间和数据块的校验码,数据块的标识可以占用4个字节,数据块的操作类型可以占用2个字节,数据块的错误标记可以占用2个字节,数据块的操作时间可以占用6个字节,数据块的校验码可以占用6个字节。数据块的校验码可以是crc(cyclicredundancy check,循环冗余校验)码。
如图2所示,给出了日志文件的结构示意图,划分了文件头信息和日志数据区,由于图1中数据块为N个,所以此处日志数据区包括N个数据块的日志信息,文件头信息中包括存储对象的标识、存储对象的数据块的数目、存储对象的状态和日志文件的时间,数据块的日志信息中包括数据块的标识、数据块的操作类型、数据块的错误标记、数据块的操作时间和数据块的校验码。
另外,为了更好的理解文件头信息中的内容,提供了如表一所示的内容:
表一
另外,为了更好的理解每个数据块的日志信息中的内容,提供了如表二所示的内容:
表二
云存储,通过集群应用、网格技术和分布式自有存储文件系统等,将网络中大量的存储对象通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。
存储节点,云存储中的每一个存储服务器称为一个存储节点。
启动块:存储对象中用来存储对象的关键信息的块,如存储对象的存储容量、数据块的数目等。
数据块:文件系统中用来存储真实数据的块。
文件系统:操作系统用于明确存储对象上的文件的方法和数据结构,即在存储对象上组织文件的方法。
另外,本公开实施例中,还提供了在数据块中写入数据的处理过程:
接收数据的写入请求,确定待写入的数据块,在数据块中写入数据,并在数据块中写入索引信息,在将数据写入数据块后,可以在数据库中记录该数据在数据块中的索引信息,该索引信息可以基于数据块中的索引信息得到,可以使用数据库中的索引信息,查找到该数据所存储的数据块中的位置。
本公开实施例中,还提供了从数据块中读取数据的处理过程:
接收数据的读取请求,确定该数据对应在数据库的索引信息,使用该索引信息,从存储对象的数据块中读取数据。这样,由于可以直接数据库中的索引信息,读取数据,而不需要在数据块中查找,所以提高访问速度。
本公开实施例提供了一种记录日志的方法,该方法的执行主体可以是云存储中的存储节点,存储节点可以是服务器。
服务器中可以包括处理器、存储器和收发器等,处理器可以用于记录日志的过程的处理,存储器可以用于存储记录日志的过程中需要的数据以及产生的数据,收发器可以用于接收以及发送数据。
本公开实施例中,提供了一种记录日志的方法,如图3所示,该方法的执行流程可以如下:
步骤301,接收目标数据的写入请求,确定目标数据待写入的目标数据块。
其中,目标数据是任何要写入服务器的存储对象的数据。
在实施中,终端有数据(后续可以称为是目标数据)要发往服务器进行存储,服务器接收到目标数据的写入请求时,可以在存储对象中选择数据块(后续可以称为是目标数据块),用于写入目标数据。
需要说明的是,选择数据块的处理可以是选择当前存储数据量最少的数据块,也可以是随机选择数据块,确定为用于存储目标数据的目标数据块。
步骤302,将目标数据写入目标数据块,并在开始写入时在日志文件中更新目标数据块对应的操作时间,将目标数据块对应的操作类型更新为第一类型。
在实施中,服务器在确定目标数据块之后,可以将目标数据写入到目标数据块,可以确定是以写的方式打开数据块,在开始将目标数据写入目标数据块时,可以确定当前的时间,然后在日志文件中,将当前存储的目标数据块对应的操作时间更新为该当前的时间。并且可以在日志文件中,将目标数据对应的操作类型更新为第一类型,第一类型为打开状态,意思是打开目标数据块,在目标数据块中开始写入目标数据。
需要说明的是,当前的时间是文件系统从开始运行到当前的时间,例如,文件系统在2019年5月30日零点上线,当前时间点为2019年6月2日零点,那么上述当前的时间为4天。再例如,文件系统在2019年5月30日零点上线,在2019年5月31日零点下线,又在2019年6月1日零点下线,当前时间点为2019年6月2日零点,那么上述当前的时间为2天。
还需要说明的是,上述操作时间每次是进行更新,而不是进行添加,也即是使用新的操作时间更新旧的操作时间,而且操作类型也是进行更新,而不是进行添加,也即是使用新的操作类型更新旧的操作类型。这样,仅存储了最后一次的操作时间和最后一次的操作类型,所以可以减少日志信息的存储,并且可以降低记录日志对存储对象的性能的损耗。
可选的,在目标数据写入目标数据块之后,可以更新操作时间和操作类型,相应的处理可以如下:
在目标数据写入目标数据块之前,在目标数据块中写入目标数据在目标数据库中的索引信息,在目标数据写入目标数据块写入完成时,在日志文件中更新目标数据块对应的操作时间,将目标数据块对应的操作类型从第一类型更新为第二类型,在目标数据写入目标数据块写入完成后,在数据库中写入目标数据在目标数据块中的索引信息。
在实施中,在目标数据写入目标数据块之前,可以将目标数据在目标数据块中的索引信息写入目标数据块中,服务器在将目标数据写入目标数据块写入完成时,服务器可以确定当前的时间,然后使用当前的时间替换目标数据块对应的操作时间,以将目标数据块的操作时间替换为当前的时间。这样,日志文件中,关于目标数据块还是仅存储有一个操作时间。在目标数据写入目标数据块写入完成后,在数据库中写入目标数据在目标数据块中的索引信息,该索引信息可以是在目标数据块中存储的目标数据的索引信息中提取的关键信息。
并且,服务器在将目标数据写入目标数据块写入完成时,服务器可以确定是以写的方式关闭目标数据块,服务器可以在日志文件中,将目标数据块对应的操作类型从第一类型替换为第二类型。这样,日志文件中,关于目标数据块还是仅存储有一个操作类型。
这样,通过记录操作类型,可以标记出需要恢复数据库中索引信息的数据块,同时也可以降低断电等异常导致的日志信息记录错误,而导致的数据库中的索引信息不能正常恢复的概率(后续通过操作类型选择需要恢复的数据块,在后面进行说明)。
另外,如果服务器在开始将目标数据写入目标数据块时,在日志文件,目标数据块对应的操作类型为第二类型,则可以使用第一类型替换第二类型。
另外,需要说明的是,上述操作时间是文件系统从开始运行的累加时间,可以保证日志文件中记录的操作时间是线性增加的,而不是实际的时间(如3点10分),这样,可以避免存储对象迁移和系统校时带来的影响,保证了日志文件能正确的恢复出,需要恢复的数据块中的数据在数据库中存储的索引信息(后续有基于操作时间,确定待恢复的数据块的处理)。
可选的,日志文件中还包括文件头信息,也即日志文件中包括日志数据区和文件头信息的存储区。存储对象在上线时,还可以对日志文件进行校验,相应的处理可以如下:
在对日志文件进行校验时,如果获取到文件系统对应的日志文件,则读取文件头信息,在读取到文件头信息后,如果日志文件的数据量正确,则读取日志文件包括的每个数据块的日志信息,确定每个数据块的日志信息的正确性,如果每个数据块的日志信息均正确,则确定日志文件校验完成。
在实施中,在存储对象上线时,可以对日志文件进行校验,在对日志文件进行校验时,可以尝试获取文件系统对应的日志文件,如果存储有日志文件,则可以获取到文件系统对应的日志文件。在获取到文件系统对应的日志文件后,可以读取文件头信息。在获取到文件头信息后,可以在文件头信息中读取日志文件的大小(即数据量),日志文件的大小可以等于文件头信息的数据量与所有数据块的日志信息的数据量之和。例如,日志文件的文件头信息占用256字节,日志数据区占用20*20字节(第一个20表示存储对象中包括的数据块的数目,第二个20表示存储对象中每个数据块的日志信息占用20字节),那么日志文件的数据量为656字节。
如果日志文件的数据量等于预先规定的日志文件的数据量,则可以在日志数据区逐个读取每个数据块的日志信息,然后确定每个数据块的日志信息的正确性,对于每个数据块,可以是使用其中包括的校验码对日志信息进行校验,如果校验正确,则可以确定该数据块的日志信息正确。每个数据块的日志信息都可以使用此方法进行校验,如果每个数据块的日志信息均正确,可以确定日志文件校验完成,日志文件没有错误。
这样,还提供了对各数据块的日志信息通过校验码进行校验的过程,可以防止日志文件被篡改而导致的数据库中的索引信息恢复异常的问题的出现。
另外,在以下几种情况下,可以判定日志文件错误,并执行错误时的处理,相应的处理可以如下:
情况一,如果获取不到文件系统对应的日志文件,则重新创建日志文件。
在实施中,在获取文件系统对应的日志文件时,如果存储对象中未存储有日志文件,或者存储有日志文件,但是不能进行读取,可以确定获取不到文件系统对应的日志文件。然后可以重新创建一个日志文件,创建的日志文件中,也是包括文件头信息和日志数据区,新创建的日志文件与后续使用的日志文件的数据量一样。也即新创建的日志文件中,即使日志数据区中某个数据块还未存储有该数据块的日志信息,也存储有初始化信息,初始化信息与后续存储的日志信息占用的字节数相同。
情况二,如果日志文件的数据量不正确,则删除日志文件,重新创建日志文件。
在实施中,在获取到日志文件的数据量时,如果与日志文件预先规定的数据量不相同时,说明日志文件有可能已经被篡改,该日志文件不正确,可以删除该日志文件,重新创建一个日志文件,重新创建的日志文件的描述与情况一种重新创建的日志文件相同,此处不再赘述。
情况三,如果日志文件中至少一个数据块的日志信息不正确,则删除日志文件,重新创建日志文件。
在实施中,如果日志文件的数据量等于预先规定的日志文件的数据量,则可以在日志数据区逐个读取每个数据块的日志信息,然后确定每个数据块的日志信息的正确性,对于每个数据块,可以是使用其中包括的校验码对日志信息进行校验,如果校验正确,则可以确定该数据块的日志信息正确。如果校验不正确,则可以确定该数据块的日志信息不正确,说明该数据块的日志信息有可能不正确。在日志文件中存在至少一个数据块的日志信息不正确时,可以删除该日志文件,重新创建一个日志文件,重新创建的日志文件的描述与情况一种重新创建的日志文件相同,此处不再赘述。
另外,如图4所示,还提供了检验日志文件的流程图,相应的处理可以如下:
步骤401,开始,判断是否能获取到文件系统对应的日志文件,在获取不到日志文件时,转至执行步骤406。
步骤402,在获取到日志文件时,读取日志文件中的文件头信息。
步骤403,检测日志文件的数据量是否正确,在日志文件的数据量错误时,转至执行步骤405。
步骤404,在日志文件的数据量正确时,读取日志文件中各个数据块的日志信息,通过检验码进行校验,判断是否有数据块的日志信息校验错误,在至少一个数据块校验错误时,转至执行步骤405,在所有数据块校验正确时,结束。
步骤405,删除日志文件。
步骤406,创建日志文件。
可选的,本公开实施例中,还提供了在数据库中写入索引信息出错时的处理:
在将目标数据写入目标数据块时,生成目标数据在目标数据块中的索引信息,根据目标数据在目标数据块中的索引信息,确定在数据库中目标数据对应的目标索引信息,确定目标索引信息写入至数据库时出现错误,在日志文件中更新目标数据块对应的操作时间,并记录目标数据块对应错误标记。
在实施中,服务器在确定目标数据写入目标数据块时,可以生成目标数据在目标数据块中的索引信息,然后在该索引信息中提取出关键部分,得到目标数据在数据库中的目标索引信息。
服务器在将目标索引信息写入数据库的过程中,在不能将目标索引信息写入数据库时,可以确定目标索引信息写入至目标数据块时发生错误,可以确定当前的时间,将日志文件中的操作时间更新为当前的时间,并且可以记录目标数据块对应错误标记,可以是更新日志文件中目标数据块的错误状态,将错误状态更改为错误标记。
需要说明的是,上述确定目标数据在数据库中的索引信息时,还可以直接将目标数据在目标数据块中的索引信息,设置为在数据库中的索引信息,还可以使用一定的算法对目标数据在目标数据块中的索引信息进行转换,得到数据库中的索引信息,本公开实施例不做限定。
还需要说明的是,通过记录错误状态,记录数据库操作出错的记录,可以帮助后续恢复出出错的数据块在数据库中的索引信息。
如图5所示,对应记录错误标记,本公开实施例中,还提供了如下流程:
步骤501,开始,在不能将目标索引信息写入数据库时,在日志文件中记录目标数据块对应错误标记。
步骤502,在日志文件中更新操作时间,结束。
可选的,本公开实施例中,还提供了在在存储对象上线时,恢复数据库中的索引信息的处理:
在存储对象上线时,检测存储对象中的日志文件,如果存储对象中存在日志文件,且日志文件正确,则在日志文件中获取处于第一类型和对应错误标记的数据块,将处于第一类型和对应错误标记的数据块,确定为待恢复的数据块,从文件系统中,获取待恢复的数据块的索引信息,基于待恢复的数据块的索引信息,恢复待恢复的数据块在数据库中的索引信息。
在实施中,在存储对象上线时,可以检测存储对象中的日志文件,如果存储对象中存在日志文件,则可以判断日志文件是否正确,可以是判断日志文件的数据量是否与预先规定的数据量相同,还可以判断各个数据块的日志信息是否校验正确。在日志文件的数据量与预先规定的数据量相同,且各个数据块的日志信息均校正正确时,可以判定日志文件正确。
在判定日志文件正确时,可以在日志文件中读取各数据块的日志信息,通过读取日志信息,确定处于第一类型的数据块,并确定对应错误标记的数据块,然后将处于第一类型的数据块与对应错误标记的数据块求并集,将并集中的数据块,确定为待恢复的数据块,也即是需要进行恢复数据库的索引信息的数据块。
然后在文件系统中,使用待恢复的数据块的标识,获取待恢复的数据块中的索引信息,然后使用这些数据块中的索引信息,确定出数据对应在数据库中的索引信息(确定过程在前面已经有描述,此处不再赘述),将这些索引信息写入到数据库中。
这样,由于对应有错误标记,说明索引信息在写入数据库中时发生错误,所以应对这些数据块中的索引信息进行恢复。另外,由于对应第一类型的数据块,说明这些数据块在写入时仅打开,还未关闭,也就是说没有将全部数据写入数据块中,既然没有全部将数据写入数据块中,那么也就不可能在数据库写入索引信息,那么数据库中也就缺少这些数据块中的索引信息。
需要说明的是,数据写入的一般流程是,确定数据写入的数据块,将数据的索引信息存储在数据块中,待数据全部写入数据块后,基于数据块中存储的索引信息,确定数据库中的索引信息,然后将确定出的索引信息写入到数据库中。所以在数据没有全部写入数据块时,数据块也不会关闭,那么索引信息也不会写入数据库中。
可选的,为了更准确的确定出所有需要恢复索引信息的数据块,可以进行如下处理:
在日志文件中各个数据块的操作时间,获取时间最晚的目标操作时间,在日志文件中,获取操作时间属于目标操作时间之前最近的目标时长内的数据块,将操作时间属于目标操作时间之前最近的目标时长内的数据块、处于第一类型和对应错误标记的数据块,确定为待恢复的数据块。
其中,目标时长可以预设,并且存储在服务器中。例如,目标时长可以为30秒。
在实施中,在判定日志文件正确时,可以在日志文件中读取各数据块的日志信息,通过读取日志信息,可以读取到日志文件中各个数据块的操作时间,确定时间最晚的目标操作时间。例如,有3个数据块,数据块A的日志信息中记录的操作时间为2天,数据块B的日志信息中记录的操作时间为3天,数据块B的日志信息中记录的操作时间为1天,那么时间最晚的操作时间为3天。
然后使用目标时长,确定目标操作时间之前最近的目标时长的时间点。在日志文件中各个数据块的操作时间中,确定该时间点与目标操作时间之间的操作时间(包括目标操作时间和该时间点),确定这些操作时间所属的数据块,将这些数据块、处于第一类型和对应错误标记的数据块,一并确定为待恢复的数据块。
需要说明的是,将操作时间属于目标操作时间之前最近的目标时长内的数据块,也确定为待恢复的数据块的原因为:
由于在数据库中写入索引信息发生错误的时机,一般是在存储设备的系统崩溃时,那么最晚的操作时间之前一段时间的索引信息有可能都没有写入到数据库中,所以可以将最晚的操作时间之前一段时间中的操作时间所属的数据块,确定为待恢复的数据块。
可选的,在存储对象的日志文件不正确时,可以按照如下方式,确定待恢复的数据块:
如果存储对象存在日志文件,且日志文件不正确,则将存储对象中所有数据块,确定为待恢复的数据块。
在实施中,在存储对象上线后,检测到存储对象存在日志文件,可以检测存储对象中的日志文件,如果存储对象中存在日志文件,则可以判断日志文件是否正确,可以是判断日志文件的数据量是否与预先规定的数据量相同,还可以判断各个数据块的日志信息是否校验正确。在日志文件的数据量与预先规定的数据量相同,且至少一个数据块的日志信息均校正不正确时,可以判定日志文件不正确,或者,日志文件的数据量与预先规定的数据量不相同,也可以判定日志文件不正确。这样,可以确认日志文件不正确。
在日志文件不正确时,可以将存储对象中所有数据块,确定为待恢复的数据块,后续可以进行恢复处理。
需要说明的是,上述恢复待恢复的数据块在数据库中的索引信息时,对于某个待恢复的数据块,若文件系统下不存在该数据块的索引信息,说明该数据块在数据库中的索引信息无法恢复。
另外,本公开实施例中,如图6所示,还提供了存储对象上线后,恢复数据库中的索引信息的处理流程:
步骤601,开始,存储对象上线。
步骤602,判断存储对象的日志文件是否存在,且校验是否正确。
步骤603,在存储对象的日志文件存在且校验正确时,获取日志文件中处于第一类型和对应错误标记的数据块,确定为待恢复的数据块。
步骤604,在存储对象的日志文件存在且校验正确时,获取操作时间属于目标操作时间之前最近的目标时长内的数据块,也确定为待恢复的数据块。
步骤605,在存储对象的日志文件存在且校验不正确时,将日志文件中所有数据块,确定为待恢复的数据块。
步骤606,对待恢复的数据块在数据库中索引信息,进行恢复处理,结束。
另外,在上述确定待恢复的数据块后,可以将待恢复的数据块加入到待扫描链表中,恢复数据块中的数据在数据库中索引信息时,可以在该待扫描链表中获取。
这样,通过适当的策略选择待恢复的数据块,而不需要对所有数据块在数据库中的索引信息的恢复,提高了数据库中索引信息的恢复效率。
需要说明的是,在本公开实施例中,校验码为crc码时,使用校验码进行校验的原理可以是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个校验码的生成多项式。校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*x的R次方,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*X的R次方除以生成多项式G(x)得到的余数就是校验码。
本公开实施例中,存储节点中的存储对象包括文件系统,文件系统将存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,文件系统对应有数据库和日志文件,数据库用于记录每个数据块所存储数据的索引信息,日志文件包括每个数据块的状态信息,状态信息包括最后一次的操作时间和操作类型。在存储节点接收到目标数据的写入请求时,可以确定目标数据待写入的目标数据块,将目标数据写入目标数据块,并在开始写入时在日志文件中更新目标数据块对应的操作时间,将目标数据块对应的操作类型更新为第一类型。这样,由于是在日志文件中,对操作时间和操作类型的更新,而不是添加,所以记录的日志信息比较少,可以节约存储空间。
基于相同的技术构思,本公开实施例还提供了一种记录日志的装置,应用于存储节点中的存储对象,所述存储对象包括文件系统,所述文件系统将所述存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,所述文件系统对应有数据库和日志文件,所述数据库用于记录每个数据块所存储数据的索引信息,所述日志文件包括每个数据块的状态信息,所述状态信息包括最后一次的操作时间和操作类型,如图7所示,该装置包括:
接收模块710,用于接收目标数据的写入请求;
确定模块720,用于确定所述目标数据待写入的目标数据块;
写入模块730,用于将所述目标数据写入所述目标数据块,并在开始写入时在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型更新为第一类型。
可选的,所述写入模块730,还用于:
在所述目标数据写入所述目标数据块写入完成时,在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型从所述第一类型更新为第二类型。
可选的,所述日志文件还包括文件头信息;
如图8所示,所述装置还包括:
读取模块740,用于在对所述日志文件进行校验时,如果获取到所述文件系统对应的日志文件,则读取所述文件头信息;
在读取到所述文件头信息后,如果所述日志文件的数据量正确,则读取所述日志文件包括的每个数据块的日志信息;
所述确定模块720,还用于:
确定所述每个数据块的日志信息的正确性;
如果所述每个数据块的日志信息均正确,则确定所述日志文件校验完成。
可选的,所述写入模块730,还用于:
如果获取不到所述文件系统对应的日志文件,则重新创建日志文件;或者,
如果所述日志文件的数据量不正确,则删除所述日志文件,重新创建日志文件;或者,
如果所述日志文件中至少一个数据块的日志信息不正确,则删除所述日志文件,重新创建日志文件。
可选的,所述确定模块720,还用于:
在将所述目标数据写入所述目标数据块时,生成所述目标数据在所述目标数据块中的索引信息;
根据所述目标数据在所述目标数据块中的索引信息,确定在所述数据库中所述目标数据对应的目标索引信息;
确定所述目标索引信息写入至所述数据库时出现错误;
所述写入模块730,还用于在所述日志文件中更新所述目标数据块对应的操作时间,并记录所述目标数据块对应错误标记。
可选的,所述确定模块720,还用于:
在所述存储对象上线时,检测所述存储对象中的日志文件;
如果所述存储对象中存在日志文件,且所述日志文件正确,则在所述日志文件中获取处于第一类型和对应错误标记的数据块;
将所述处于第一类型和对应错误标记的数据块,确定为待恢复的数据块;
从所述文件系统中,获取所述待恢复的数据块的索引信息;
基于所述待恢复的数据块的索引信息,恢复所述待恢复的数据块在所述数据库中的索引信息。
可选的,所述确定模块720,还用于:
在所述日志文件中各个数据块的操作时间,获取时间最晚的目标操作时间;
在所述日志文件中,获取操作时间属于所述目标操作时间之前最近的目标时长内的数据块;
所述将处于第一类型和对应错误标记的数据块,确定为待恢复的数据块,包括:
将操作时间属于所述目标操作时间之前最近的目标时长内的数据块、处于第一类型和对应错误标记的数据块,确定为待恢复的数据块。
可选的,所述确定模块720,还用于:
如果所述存储对象存在日志文件,且所述日志文件不正确,则将所述存储对象中所有数据块,确定为待恢复的数据块。
可选的,所述操作时间是所述文件系统运行的累加时间。
本公开实施例中,存储节点中的存储对象包括文件系统,文件系统将存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,文件系统对应有数据库和日志文件,数据库用于记录每个数据块所存储数据的索引信息,日志文件包括每个数据块的状态信息,状态信息包括最后一次的操作时间和操作类型。在存储节点接收到目标数据的写入请求时,可以确定目标数据待写入的目标数据块,将目标数据写入目标数据块,并在开始写入时在日志文件中更新目标数据块对应的操作时间,将目标数据块对应的操作类型更新为第一类型。这样,由于是在日志文件中,对操作时间和操作类型的更新,而不是添加,所以记录的日志信息比较少,可以节约存储空间。
需要说明的是:上述实施例提供的记录日志的装置在记录日志时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的记录日志的装置与记录日志的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9是本发明实施例提供的一种存储节点的结构示意图,该存储节点900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器901和一个或一个以上的存储器902,其中,所述存储器902中存储有至少一条指令,所述至少一条指令由所述处理器901加载并执行以实现上述记录日志的方法中的各个步骤。
本公开实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述记录日志的方法。
本公开实施例中,还提供了一种存储节点,该存储节点包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述记录日志的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (11)

1.一种记录日志的方法,其特征在于,应用于存储节点中的存储对象,所述存储对象包括文件系统,所述文件系统将所述存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,所述文件系统对应有数据库和日志文件,所述数据库用于记录每个数据块所存储数据的索引信息,所述日志文件包括文件头信息和每个数据块的状态信息,所述状态信息包括最后一次的操作时间和操作类型,所述方法包括:
接收目标数据的写入请求,确定所述目标数据待写入的目标数据块;
将所述目标数据写入所述目标数据块,并在开始写入时在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型更新为第一类型;
所述方法还包括:
在对所述日志文件进行校验时,如果获取到所述文件系统对应的日志文件,则读取所述文件头信息;
在读取到所述文件头信息后,如果所述日志文件的数据量正确,则读取所述日志文件包括的每个数据块的日志信息;
确定所述每个数据块的日志信息的正确性;
如果所述每个数据块的日志信息均正确,则确定所述日志文件校验完成。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标数据写入所述目标数据块写入完成时,在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型从所述第一类型更新为第二类型。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果获取不到所述文件系统对应的日志文件,则重新创建日志文件;或者,
如果所述日志文件的数据量不正确,则删除所述日志文件,重新创建日志文件;或者,
如果所述日志文件中至少一个数据块的日志信息不正确,则删除所述日志文件,重新创建日志文件。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在将所述目标数据写入所述目标数据块时,生成所述目标数据在所述目标数据块中的索引信息;
根据所述目标数据在所述目标数据块中的索引信息,确定在所述数据库中所述目标数据对应的目标索引信息;
确定所述目标索引信息写入至所述数据库时出现错误;
在所述日志文件中更新所述目标数据块对应的操作时间,并记录所述目标数据块对应错误标记。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述存储对象上线时,检测所述存储对象中的日志文件;
如果所述存储对象中存在日志文件,且所述日志文件正确,则在所述日志文件中获取处于第一类型和对应错误标记的数据块;
将所述处于第一类型和对应错误标记的数据块,确定为待恢复的数据块;
从所述文件系统中,获取所述待恢复的数据块的索引信息;
基于所述待恢复的数据块的索引信息,恢复所述待恢复的数据块在所述数据库中的索引信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述日志文件中各个数据块的操作时间,获取时间最晚的目标操作时间;
在所述日志文件中,获取操作时间属于所述目标操作时间之前最近的目标时长内的数据块;
所述将处于第一类型和对应错误标记的数据块,确定为待恢复的数据块,包括:
将操作时间属于所述目标操作时间之前最近的目标时长内的数据块、处于第一类型和对应错误标记的数据块,确定为待恢复的数据块。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
如果所述存储对象存在日志文件,且所述日志文件不正确,则将所述存储对象中所有数据块,确定为待恢复的数据块。
8.根据权利要求1至3任一所述的方法,其特征在于,所述操作时间是所述文件系统运行的累加时间。
9.一种记录日志的装置,其特征在于,应用于存储节点中的存储对象,所述存储对象包括文件系统,所述文件系统将所述存储对象的存储空间划分为多个数据块,每个数据块包括数据区和至少一个索引信息,所述文件系统对应有数据库和日志文件,所述数据库用于记录每个数据块所存储数据的索引信息,所述日志文件包括文件头信息和每个数据块的状态信息,所述状态信息包括最后一次的操作时间和操作类型,所述装置包括:
接收模块,用于接收目标数据的写入请求;
确定模块,用于确定所述目标数据待写入的目标数据块;
写入模块,用于将所述目标数据写入所述目标数据块,并在开始写入时在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型更新为第一类型;
读取模块,用于在对所述日志文件进行校验时,如果获取到所述文件系统对应的日志文件,则读取所述文件头信息;在读取到所述文件头信息后,如果所述日志文件的数据量正确,则读取所述日志文件包括的每个数据块的日志信息;
所述确定模块,还用于确定所述每个数据块的日志信息的正确性;如果所述每个数据块的日志信息均正确,则确定所述日志文件校验完成。
10.根据权利要求9所述的装置,其特征在于,所述写入模块,还用于:
在所述目标数据写入所述目标数据块写入完成时,在所述日志文件中更新所述目标数据块对应的操作时间,将所述目标数据块对应的操作类型从所述第一类型更新为第二类型。
11.根据权利要求9或10所述的装置,其特征在于,所述确定模块,还用于:
如果获取不到所述文件系统对应的日志文件,则重新创建日志文件;或者,
如果所述日志文件的数据量不正确,则删除所述日志文件,重新创建日志文件;或者,
如果所述日志文件中至少一个数据块的日志信息不正确,则删除所述日志文件,重新创建日志文件。
CN201911135445.XA 2019-11-19 2019-11-19 记录日志的方法和装置 Active CN111400267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911135445.XA CN111400267B (zh) 2019-11-19 2019-11-19 记录日志的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911135445.XA CN111400267B (zh) 2019-11-19 2019-11-19 记录日志的方法和装置

Publications (2)

Publication Number Publication Date
CN111400267A CN111400267A (zh) 2020-07-10
CN111400267B true CN111400267B (zh) 2023-09-01

Family

ID=71433938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911135445.XA Active CN111400267B (zh) 2019-11-19 2019-11-19 记录日志的方法和装置

Country Status (1)

Country Link
CN (1) CN111400267B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297234B (zh) * 2020-09-30 2023-03-14 阿里云计算有限公司 一种数据处理方法、装置、设备及计算机可读存储介质
CN112667161B (zh) * 2020-12-25 2023-11-10 北京科银京成技术有限公司 文件系统的数据处理方法、装置、设备及介质
CN115422135A (zh) * 2022-08-24 2022-12-02 阿里巴巴(中国)有限公司 数据处理方法以及装置
CN115454958B (zh) * 2022-09-15 2024-03-05 北京百度网讯科技有限公司 基于人工智能的数据处理方法、装置、设备、系统及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288250A (ja) * 2002-03-28 2003-10-10 Sanyo Electric Co Ltd ファイル管理方法
CN102158546A (zh) * 2011-02-28 2011-08-17 中国科学院计算技术研究所 一种集群文件系统及其文件服务方法
CN105138592A (zh) * 2015-07-31 2015-12-09 武汉虹信技术服务有限责任公司 一种基于分布式架构的日志数据存储和检索方法
CN105677876A (zh) * 2016-01-12 2016-06-15 国家电网公司 一种基于物理级的数据库日志挖掘方法
US9442955B1 (en) * 2012-12-28 2016-09-13 Emc Corporation Managing delete operations in files of file systems
CN106372153A (zh) * 2016-08-30 2017-02-01 陕西千山航空电子有限责任公司 一种基于日志文件系统的记录设备故障诊断方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077590A1 (en) * 2006-09-22 2008-03-27 Honeywell International Inc. Efficient journaling and recovery mechanism for embedded flash file systems
US10949415B2 (en) * 2011-03-31 2021-03-16 International Business Machines Corporation Logging system using persistent memory
CN105550345B (zh) * 2015-12-25 2019-03-26 百度在线网络技术(北京)有限公司 文件操作方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288250A (ja) * 2002-03-28 2003-10-10 Sanyo Electric Co Ltd ファイル管理方法
CN102158546A (zh) * 2011-02-28 2011-08-17 中国科学院计算技术研究所 一种集群文件系统及其文件服务方法
US9442955B1 (en) * 2012-12-28 2016-09-13 Emc Corporation Managing delete operations in files of file systems
CN105138592A (zh) * 2015-07-31 2015-12-09 武汉虹信技术服务有限责任公司 一种基于分布式架构的日志数据存储和检索方法
CN105677876A (zh) * 2016-01-12 2016-06-15 国家电网公司 一种基于物理级的数据库日志挖掘方法
CN106372153A (zh) * 2016-08-30 2017-02-01 陕西千山航空电子有限责任公司 一种基于日志文件系统的记录设备故障诊断方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
林晓东 ; 刘心松.文件系统中日志技术的研究.计算机应用.1998,第18卷(第1期),全文. *

Also Published As

Publication number Publication date
CN111400267A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN111400267B (zh) 记录日志的方法和装置
CN101706802B (zh) 一种数据写入、修改及恢复的方法、装置及服务器
CN111078662B (zh) 一种区块链数据存储方法与装置
CN101308471B (zh) 一种恢复数据的方法及装置
CN110602239A (zh) 一种区块链信息存储方法及相关设备
CN110008129B (zh) 一种存储定时快照的可靠性测试方法、装置及设备
CN111176885A (zh) 一种分布式存储系统的数据校验方法及相关装置
CN112380383B (zh) 一种实时视频流数据的容错索引方法
CN112084066A (zh) 一种数据处理方法、设备及存储介质
CN110874239A (zh) 一种电子设备的空中固件差分升级方法及装置
CN112579354A (zh) 一种边云协同软件备份恢复的方法
CN113608692A (zh) 一种存储系统数据一致性验证方法、系统、设备以及介质
CN105892954A (zh) 基于多副本的数据存储方法和装置
CN114138192A (zh) 存储节点在线升级方法、装置、系统及存储介质
CN113312205A (zh) 数据校验方法、装置、存储介质和计算机设备
CN114491145B (zh) 一种基于流存储的元数据设计方法
CN114442944B (zh) 一种数据复制方法、系统及设备
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN115878381A (zh) 基于srm盘的数据恢复方法及装置、存储介质、电子装置
CN114625697A (zh) 文件系统恢复方法、装置、电子设备及存储介质
CN112925676B (zh) 一种基于wal实现分布式数据库集群任意时间点恢复的方法
CN111400243B (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
CN110866068B (zh) 一种基于hdfs的公告数据存储方法及其装置
CN113535482A (zh) 云备份链数据备份、管理方法及装置、设备、可读介质
CN111221672A (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