CN116431596B - 一种面向案卷级的、跨平台的分布式文件系统及实现方法 - Google Patents
一种面向案卷级的、跨平台的分布式文件系统及实现方法 Download PDFInfo
- Publication number
- CN116431596B CN116431596B CN202310685117.7A CN202310685117A CN116431596B CN 116431596 B CN116431596 B CN 116431596B CN 202310685117 A CN202310685117 A CN 202310685117A CN 116431596 B CN116431596 B CN 116431596B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- block
- archive
- information
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于数字档案信息处理技术领域,公开了一种面向案卷级的、跨平台的分布式文件系统及实现方法。该系统以案卷为主文件,按照层级关系自顶向下依次为:案卷主文件、案卷文件元数据、卷内文件、文件块清单、文件块、数据块清单、数据块。本发明定义了通用型档案文件的文件格式和元数据结构,以便在不同平台和操作系统上能够正确识别和解析文件,同时这是一个标准,任何实现此标准的数字档案软件都能识别这些档案文件和元数据。本发明实现了自举型档案文件,实现档案文档自描述、自校验、块级自恢复。本发明实现了案卷级原子性保证,以案卷为原子的、基于回滚日志的数字档案软件的案卷文件系统,从而保证案卷级数据的原子性操作。
Description
技术领域
本发明属于数字档案信息处理技术领域,尤其涉及一种面向案卷级的、跨平台的分布式文件系统及实现方法。
背景技术
数字档案是指数字化的、可存储、可访问的档案资料。数字档案具有可靠性高、可访问性强等优点,因此越来越受到各个领域的关注和应用。然而,由于数字档案具有多样性和复杂性,数字档案系统的研发和应用面临着很多挑战。
当前,数字档案在完整性方面存在以下问题:
1)档案存储对存储的环境有强依赖,跨平台能力极弱,不同操作系统使用不同的文件系统,它们可能采用不同的文件格式、文件命名规则、路径表示方式、编码方式等。当在一个操作系统上创建或编辑文件时,它可能使用的是该操作系统的文件系统格式和规则,但在另一个操作系统上打开该文件时,可能无法正确解析;
2)数字档案文件与外部数据存在依赖关系,一般元数据与档案文件数据分开存储,案卷和卷内文件进行合规性检测时,需要从某一存储设备读取元数据,读取元数据的操作一般由某个实现数字档案的档案管理软件实现,不同档案管理软件在合规性检测上不具备通用性,无法实现档案文件数据自描述、自校验、块级自恢复,也就无法保证数字档案的完整性;
3)档案存储依赖硬件和软件,如存储设备(硬件)、操作系统(文件系统)、数字档案业务系统,而硬件和软件都存在失效的可能,档案文件数据一般作为操作系统的文件数据进行存储,对于案卷级的数据无法保证其原子性操作,进而无法保证数字档案的完整性。
发明内容
在数字化时代,数字档案已经成为了不可避免的发展方向。由于数字档案的多样性和复杂性,现有的数字档案系统存在很多不足。本发明提出了一种面向案卷级的、跨平台的分布式文件系统,该系统具备自举型档案文件、案卷级原子性保证和通用型档案文件等特点。该系统能够有效地保证数字档案的完整性,从而提高数字档案的可信度和可用性。为克服相关技术中存在的问题,本发明公开实施例提供了一种面向案卷级的、跨平台的分布式文件系统及实现方法。
所述技术方案如下:一种面向案卷级的、跨平台的分布式文件系统,该系统以案卷为主文件,按照层级关系自顶向下依次为:
案卷主文件:用于提供案卷元数据、归档信息包、移交信息包、卷内文件清单数据信息;
案卷文件元数据:用于提供多个卷内文件的清单数据信息;
卷内文件:用于提供卷内文件元数据以及文件块清单数据;
文件块清单:用于提供多个文件块数据信息;
文件块:用于提供文件块元数据、数据块清单及回滚日志数据信息;
数据块清单:用于提供多个数据块数据信息;
数据块:用于提供数据块元数据、数据块具体承载内容信息。
在一个实施例中,所述案卷主文件包括:包含案卷的基本信息的案卷头信息模块;列举案卷中所有的卷内文件的卷内文件清单模块;包含归档该案卷的元数据和详细信息的归档信息包模块;包含案卷的移交信息的移交信息包模块;
所述卷内文件包括:包含卷内文件的基本信息的卷内文件头信息模块;列举卷内文件中的所有文件块的文件块清单模块;每个卷内文件都会被分割成多个文件块的N个文件块模块;
所述文件块包括:包含文件块基本信息的文件块头信息模块;列举文件块中的所有数据块的数据块清单模块;每个文件块都会被分割成多个数据块得N个数据块模块;
所述数据块包括:包含数据块的基本信息的数据块头信息模块;以及包含数据块承载的文件数据内容模块。
在一个实施例中,所述的面向案卷级的、跨平台的分布式文件系统进一步包括:定义了数字档案的通用文件系统,通过定义统一的文件格式和元数据结构,使档案文件在不同平台和操作系统上被正确识别和解析,同时用于任何数字档案软件都能识别这些档案文件和元数据。
在一个实施例中,定义统一的文件格式包括:
(i)案卷主文件使用统一的后缀,包含案卷归档所需要的完整信息,完整信息包括案卷元数据、卷内文件及元数据;
(ii)案卷内的元数据全部放入归档信息包,归档信息包中的内容包括:归档包元数据、信息包标识、信息包类型数据;档案移交的相关记录全部放入移交信息包,移交信息包内部是链表结构,每个移交信息块都包含上一个移交块的指针;
(iii)所有的卷内文件都存储在案卷主文件内部,案卷内部以文件块为单位,根据文件块清单中声明的文件块阈值属性,将卷内文件切分成1个或多个文件块,文件块清单中记录每个文件块的具体位置,详细切分过程:数字档案软件从配置文件中读取卷内文件的切分阈值,写入到文件块清单的文件切分阈值属性中,在切分卷内文件时,按照此阈值将卷内文件切分为多个文件块,文件块清单上按顺序记录每个文件块的起始地址和结束地址,如果切分的最后一个文件块不满足阈值大小,为一个单独的文件块;
(iv)文件块存储在案卷主文件内部,或存储在其他存储设备上,在文件块清单中声明文件块实际存放的存储路径,一个卷内文件的文件块全部放在案卷主文件内部,或一部分放在案卷主文件内部,未放在案卷主文件内部的文件块需在文件块清单文件中声明文件块存储路径;
(v)每个文件块在存储前,数据块作为整个案卷体系最小的存储单元,当文件块被切分成多个数据块时,每个数据块都附加一个海明码;对于每个数据块,海明码编码计算出所需的冗余位,并将其添加到数据块中;在数据传输时,海明码编码使用冗余信息确定错误的位置,并进行纠正;
(vi)在档案文件进行案卷原子性存储时,采用先写数据块,再写回滚日志的方式,使档案文件的完整性检测及断点续传及断点续传中的异常恢复。
在一个实施例中,使档案文件的完整性检测及断点续传及断点续传中的异常恢复包括:
(a)写入数据块:在档案文件的案卷原子性存储中,每个卷内文件分解为多个数据块,每个数据块在写入时,生成一个唯一的标识符;
(b)写入回滚日志:在写入数据块前,先写入对应数据块的回滚日志,回滚日志记录每个数据块的状态信息,用来回滚到之前的某个状态,在写入回滚日志时,每条回滚日志也有一个唯一的标识符;
(c)数据块和回滚日志的写入顺序:在档案文件进行案卷原子性存储时,采用先写数据块,再写回滚日志的方式;
(d)断点续传和异常恢复:在档案文件进行案卷原子性存储时先写数据块,再写回滚日志的方式,支持断点续传和异常恢复。
在一个实施例中,所述的面向案卷级的、跨平台的分布式文件系统进一步包括:自举型档案文件,用于将档案元数据和档案文件数据合并存储的档案文档,进行档案文档自描述、自校验、块级自恢复。
在一个实施例中,所述自描述通过一些元数据字段和文件结构实现;元数据用于描述文件内容、结构和属性的数据,包含文件名称、创建日期、创建者、文件类型、版本信息、访问权限信息;
案卷内的每个卷内文件,按照一定的切分策略,切分成多个文件块,每个文件块头信息中有对应的MD5校验码,在文件存储和传输过程中,利用MD5算法用于计算和校验数据的完整性;
所述块级自恢复包括:每个文件块切分成更小的数据块,每个数据块中包含海明码,实现部分的自纠错能力;海明码的冗余位用来确定出错的位,然后进行纠正;块级自恢复过程包括:
假设有一个k位的数据块,添加r个冗余位,形成n位的海明码;其中r的值为满足以下公式的最小整数:
;
通过冗余位用来存储数据位的奇偶性,检测错误。
在一个实施例中,所述海明码的生成方法如下:
步骤I,将每个数据位的位置用二进制表示,从右向左依次编号,第一个数据位的位置为1,第二个数据位的位置为2,以此类推;
步骤II,将每个冗余位的位置用二进制表示,从右向左依次编号;
步骤III,对于每个冗余位,将它所控制的数据位位置转换为二进制,并将其中的每个1对应的数据位进行异或运算,得到冗余位的值;
步骤IV,将每个冗余位的值添加到对应的位置上,形成海明码。
本发明的另一目的在于提供一种面向案卷级的、跨平台的分布式文件实现方法,包括:
步骤一,案卷保存请求的接收:当数字档案软件接收到案卷保存请求时,解析请求数据中包含的案卷元数据及卷内文件;
步骤二,组装档案文件:数字档案软件按照通用型档案文件定义的标准档案案卷主文件格式进行组装;
步骤三,存储数据块和记录回滚日志:每个卷内文件分解为多个数据块,每个数据块在写入磁盘的同时,记录一条回滚日志。回滚日志用来标识当前数据块是否写入完成的记录,记录每个数据块的状态、位置和版本信息;这些信息用来回滚到之前的某个状态;
步骤四,写入回滚日志版本号:所有的卷内文件的数据块写入完成后,写入回滚日志版本号,以标识回滚日志写入完成;
步骤五,返回保存结果:档案文件保存完成后,数字档案软件返回保存请求的最终结果。
在一个实施例中,在步骤二中,组装的过程包括:写入文件头、版本、时间戳基本信息,然后写入案卷清单内容,归档信息包内容和移交信息包内容,最后写入数据块的信息;
在写入数据块时,同时使用数字档案软件的回滚日志绘制程序写入回滚日志,每个数据块对应回滚日志中的一条日志数据,当案卷主文件保存发生异常时,通过查询回滚日志;当案卷主文件的回滚日志信息不存在或异常时该案卷主文件不完整;当案卷主文件传输中发生异常,根据回滚日志中最后一个写入的数据块编号,恢复传输。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明出了一种面向案卷级的、跨平台的分布式文件系统,该系统具备自举型档案文件、案卷级原子性保证和通用型档案文件等特点。本发明提出了一种面向案卷级的、跨平台的分布式文件系统的设计方案。本发明定义了通用型档案文件的文件格式和元数据结构,以便在不同平台和操作系统上能够正确识别和解析文件,同时这是一个标准,任何实现此标准的数字档案软件都能识别这些档案文件和元数据。本发明实现了自举型档案文件,实现档案文档自描述、自校验、块级自恢复。本发明实现了案卷级原子性保证,以案卷为原子的、基于回滚日志(回滚日志)的数字档案软件,从而保证案卷级数据的原子性操作。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理;
图1是本发明实施例提供的面向案卷级的、跨平台的分布式文件系统框图;
图2是本发明实施例提供的面向案卷级的、跨平台的分布式文件系统的实体-关系图;
图3是本发明实施例提供的归档信息包结构图;
图4是本发明实施例提供的以案卷为基本存储单位的文件格式图;
图5是本发明实施例提供的详细的文件格式内容图;
图6是本发明实施例提供的案卷清单包含信息图;
图7是本发明实施例提供的案卷级原子性保证实现过程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
与本发明相关的技术词语包括:“档案完整性”:电子档案的内容、结构和背景信息齐全且没有破坏、变异或丢失的性质。
“案卷”:是按照一定的主题等内部特征和外部特征编立的、具有密切联系的若干文件的组合体。它既是案卷的保管单位,也是档案数量统计和一般检索的基本单位之一。
“卷内文件”:一个案卷包含了若干个相互联系的文件,卷内文件是指案卷中包含的文件。
“元数据”:元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。它提供了有关数据的信息,例如数据的类型、格式、大小、来源、创建日期、作者等等。元数据可以帮助人们更好地理解和使用数据,并确保数据的准确性和一致性。元数据还可以用于数据管理和维护,包括数据的备份、恢复、转换和迁移。在数据仓库、数据集成和数据分析等领域,元数据也非常重要,因为它们可以帮助人们更好地理解和利用数据,从而促进数据驱动的决策和创新。
“归档”:是指文书部门将办理完并且有保存价值的文件,经系统整理交档案室或档案馆保存的过程。
“档案移交”:文书或业务部门将处理完毕的文件材料立卷归档后,移交机关档案部门,从而使文件材料从现行处理阶段过渡到档案保管阶段的工作。
实施例1,如图1所示,本发明实施例提供的面向案卷级的、跨平台的分布式文件系统中,案卷作为一个主文件,包含了该案卷归档所需要的全部信息,按照层级关系自顶向下依次是:
案卷主文件:用于提供案卷元数据、归档信息包、移交信息包、卷内文件清单数据信息;
卷内文件清单:用于提供多个卷内文件的清单数据信息;
卷内文件:用于提供卷内文件元数据以及文件块清单数据;
文件块清单:用于提供多个文件块数据信息;
文件块:用于提供文件块元数据、数据块清单及回滚日志数据信息;
数据块清单:用于提供多个数据块数据信息;
数据块:用于提供数据块元数据、数据块具体承载内容信息。
在本发明实施例中,所述案卷主文件包含以下四个部分:案卷头信息:包含案卷的基本信息。卷内文件清单:列出了该案卷中所有的卷内文件。归档信息包:包含归档该案卷的元数据和详细信息。移交信息包:包含该案卷的移交信息。
所述卷内文件包含以下三个组成部分:卷内文件头信息:包含卷内文件的基本信息。文件块清单:列出了该卷内文件中的所有文件块。N个文件块:每个卷内文件都会被分割成多个文件块。
所述文件块包含以下三个组成部分:文件块头信息:包括文件块基本信息。数据块清单:列出了该文件块中的所有数据块。N个数据块:每个文件块都会被分割成多个数据块。
所述数据块是最小的存储单位,包含以下两个部分:数据块头信息:包含数据块的基本信息。数据块承载的数据内容:即卷内文件中所需存储的数据。
本发明实施例提供的面向案卷级的、跨平台的分布式文件系统的实体-关系图如图2所示,图形化的展示了各种实体(案卷主文件、卷内文件、文件块和数据块)之间的关系,以及各个实体所具有的属性合集,图2对应的属性合集内容如表1。
实例性的,面向案卷级的、跨平台的分布式文件系统的实体-关系包括:一个案卷主文件包含案卷头信息模块、卷内文件清单模块、归档信息包模块、移交信息包模块,同时,案卷有自身的属性合集(元数据等基本信息);一个卷内文件模块包含卷内文件头信息模块和多个文件块模块;一个文件块模块包含文件块头信息模块和多个数据块模块;一个数据块模块包含数据块头信息模块和具体承载数据。根据此实体关系图,可以构造出一个有层数结构的数据模块,以便更好地表示案卷的元数据信息。
表1实体对应属性合集内容
。
实施例2,作为本发明一种实施方式,通用型档案文件包括:不同的操作系统使用不同的文件系统格式,例如Windows使用NTFS、FAT32等文件系统,而MacOS使用HFS+或APFS文件系统,Linux使用Ext4或Btrfs文件系统。这些文件系统之间的差异会导致数据在不同平台之间的不兼容性;同时,不同数字档案软件间的文件格式和元数据结构千差万别,档案文件和元数据不具备通用性。
通用型面档案文件定义了统一的文件格式和元数据结构,旨在解决数字档案管理中的互操作性问题。通过定义统一的文件格式和元数据结构,使得档案文件能够在不同平台和操作系统上被正确识别和解析,同时任何实现此标准的数字档案软件都能识别这些档案文件和元数据,这使得数字档案文件的交换和共享变得更加容易和可靠,可以促进数字档案管理的互操作性和可持续性。
数字档案在进行归档时,是以案卷为基本单位进行归档,一个案卷包含的信息有:
1)案卷本身的元数据。
2)该案卷下的多个卷内文件(电子文档),每个卷内文件都有对应的元数据信息。
将以上内容进行归纳梳理,结合归档流程和档案移交流程,进行案卷格式设计:
(i)案卷主文件作为一个完整的文件,使用统一的后缀“.nh”,如一个完整的案卷主文件,文件名称是“xxx项目案卷.nh”,该文件内部包含了案卷归档所需要的完整信息(案卷元数据、卷内文件及元数据)。
(ii)一个案卷内的元数据全部放入归档信息包,归档信息包中的内容包含:归档包元数据、信息包标识、信息包类型等数据;档案移交的相关记录全部放入移交信息包,移交信息包内部是链表结构,每个移交信息块都包含上一个移交块的指针,具体结构如下图3所示;每个移交信息包中的内容详情见表1-No.6。
(iii)所有的卷内文件都存储在案卷主文件内部,案卷内部以文件块为单位,根据文件块清单中声明的文件块阈值属性,将卷内文件切分成1个或多个文件块,文件块清单中记录每个文件块的具体位置,详细切分过程:数字档案软件会从配置文件中读取卷内文件的切分阈值,写入到文件块清单的文件切分阈值属性中(表1-No.9),在切分卷内文件时,会按照此阈值将卷内文件切分为多个文件块,文件块清单上会按顺序记录每个文件块的起始地址和结束地址,如果切分的最后一个文件块不满足阈值大小,也视为一个单独的文件块,也就是说,一个文件块只会包含一个卷内文件的内容。
(iv)文件块可以存储在案卷主文件内部,也可以存储在其他存储设备上,在文件块清单中声明文件块实际存放的存储路径即可,一个卷内文件的文件块可以全部放在案卷主文件内部,也可以一部分放在案卷主文件内部,未放在案卷主文件内部的文件块需在文件块清单文件中声明文件块存储路径,如图5所示,一个卷内文件可以由不同存储位置的数据块组成。
(v)每个文件块在存储之前,会切分成大小为16KB的数据块,数据块作为整个案卷体系最小的存储单元,具有一定的块级自恢复能力。当文件块被切分成多个数据块时,为了保证数据的可靠性,每个数据块都会附加一个海明码。在这个过程中,每个文件块首先被切分成大小为16KB的数据块,会对其应用海明码编码方案,海明码编码方案可以检测和纠正单比特错误,以及检测双比特错误。其基本思想是将数据位排列在某种特殊的方式下,使得在数据传输中发生的任何单比特错误都能被检测到和纠正。这种编码方案利用了冗余位的概念,即在数据位中添加一定数量的额外位,这些位被用于存储冗余信息。通过计算这些冗余位的值,可以检测和纠正数据传输中发生的错误。对于每个数据块,海明码编码方案会计算出所需的冗余位,并将其添加到数据块中。这些冗余位可以用于检测和纠正单比特错误,以及检测双比特错误。在数据传输期间,如果发现了任何错误,海明码编码方案会使用冗余信息来确定错误的位置,并尝试纠正它,以确保数据的完整性和可靠性。
(vi)在档案文件进行案卷原子性存储时,采用先写数据块,再写回滚日志的方式,保证档案文件的完整性检测及断点续传及断点续传中的异常恢复。
具体如下:
(a)写入数据块:在档案文件的案卷原子性存储中,每个卷内文件会分解为多个数据块,每个数据块在写入时,都会生成一个唯一的标识符(如ID)。
(b)写入回滚日志:回滚日志是用来标识当前数据块是否写入完成的记录。在写入数据块之前,需要先写入对应数据块的回滚日志,以确保数据的完整性和可追溯性。回滚日志记录了每个数据块的状态信息,可以用来回滚到之前的某个状态,以保证数据的完整性和一致性。在写入回滚日志时,每条回滚日志也有一个唯一的标识符(如ID)。
(c)数据块和回滚日志的写入顺序:在档案文件进行案卷原子性存储时,采用先写数据块,再写回滚日志的方式。这是因为如果先写回滚日志,再写数据块,在数据块写入完成之前,系统出现异常或中断,就无法保证回滚日志和数据块的一致性,从而导致数据的丢失或损坏。如果先写数据块,再写回滚日志,即使在写回滚日志时出现异常或中断,数据块已经写入磁盘,可以通过数据块的ID来查找和恢复数据块,保证数据的完整性和可追溯性。
(d)断点续传和异常恢复:在档案文件进行案卷原子性存储时,采用先写数据块,再写回滚日志的方式,可以支持断点续传和异常恢复。在数据块写入完成之前,如果系统出现异常或中断,可以通过已经写入的数据块的ID来恢复数据,而不需要重新写入数据块。同时,由于回滚日志已经写入,可以通过回滚日志的信息来恢复数据块的状态和位置,以保证数据的完整性和一致性。这样,即使在存储大量数据时,也可以保证数据的安全和稳定性。
以案卷为基本存储单位的文件格式如图4所示,详细的文件格式内容如图5所示。其中,核心字段含义如表2所示。
表2核心字段含义
。
实施例3,作为本发明另一种实施方式,本发明提供一种自举型档案文件,主要优点是可以自我描述、自我校验和具有一定的块级自恢复能力,从而能够确保文件的完整性和可靠性。
在本发明实施例中,自我描述、自我校验包括:基于标准的案卷格式,在每个案卷主文件中,已经包含了案卷的所有数据(元数据+卷内文件),该案卷主文件可以进行自描述。自描述是指一个数据文件或数据集合可以自行提供描述性信息的能力。在信息管理和数据交换中,自描述具有重要的意义。一个自描述的文件或数据集合可以让使用者不需要额外的文档或信息即可了解文件或数据的内容和结构,从而更加方便和高效地进行使用。
其中,自描述的实现可以通过一些元数据字段和文件结构来实现。元数据是指用于描述文件内容、结构和属性的数据,可以包含文件名称、创建日期、创建者、文件类型、版本信息、访问权限等信息。在案卷主文件中,元数据可以包含案卷的主题、时间、地点、涉及的人员、事件等信息,以及文件的创建日期、文件类型、版本信息、访问权限等信息。另外,文件结构也可以用来进行自描述。案卷主文件中包含了卷内文件,这些卷内文件可以按照一定的结构进行组织和描述,每个文件可以包含名称、大小、创建日期、修改日期、文件类型、所属文件夹等信息。这些信息可以用来描述文件的内容和结构,从而实现自描述。
同时,案卷内的每个卷内文件,按照一定的切分策略,切分成多个文件块,每个文件块头信息中都有对应的MD5校验码,MD5(Message-Digest Algorithm 5)是一种常用的哈希函数,用于将任意长度的消息转换为一个128位的哈希值。在文件存储和传输过程中,MD5算法可以用于计算和校验数据的完整性,从而保证数据的准确性和完整性。每个文件块头信息中都包含了对应的MD5校验码,这个校验码是基于文件块本身计算得出的,可以用于准确识别当前文件块的完整性。
在使用MD5算法计算和校验文件块时,需要按照以下步骤进行操作:
步骤A,将文件块的内容作为输入,计算其MD5值。计算MD5值时,可以使用专门的MD5计算工具或者编程语言中提供的MD5函数进行计算。
步骤B,将计算得到的MD5值与文件块头信息中的MD5校验码进行比较。如果两个值相同,则表明文件块完整性校验通过,否则表明文件块存在损坏或篡改,需要进行处理。MD5校验码可以准确识别当前文件块的完整性,进而保证案卷的完整性。案卷清单包含信息如图6所示。数据块编号逻辑:卷内文件编号(5位,不足补0)+文件块编号(5位,不足补0)+数据块编号(5位,不足补0)。
案卷清单文件包含了文件块和数据块信息,可通过该清单直接检索到文件块及对应数据块,每个文件块有MD5码,可以直接计算文件块的MD5码,和案卷内部之前的MD5码进行比较,相同则表示文件块正常没有损坏。MD5算法具有快速、高效、不可逆等特点,可以在文件传输和存储过程中保证数据的准确性和完整性。同时,由于MD5算法是公认的安全性较高的哈希函数,也可以防止黑客对数据进行篡改或攻击。
所述块级自恢复包括:每个文件块会切分成更小的数据块,每个数据块中包含了海明码,可以实现部分的自纠错能力。数据块在有效信息位中加入几个校验位形成海明码,海明码是一种基于二进制的纠错码,它可以检测和纠正单比特或双比特错误。海明码的冗余位可以用来确定出错的位,然后进行纠正,详细的块级自恢复过程和原理如下:
假设有一个k位的数据块,需要添加r个冗余位,以形成一个n位的海明码。其中r的值为满足以下公式的最小整数:
;
这个公式保证了海明码中的冗余位足以检测和纠正单比特错误。海明码中每个冗余位的位置都是2的幂次方,从1开始计数。例如,第一个冗余位位于位置1,第二个冗余位位于位置2,第三个冗余位位于位置4,以此类推。这些冗余位用来存储数据位的奇偶性,以便检测错误。
所述海明码的生成方法如下:
步骤I,将每个数据位的位置用二进制表示,从右向左依次编号,例如,第一个数据位的位置为1,第二个数据位的位置为2,以此类推。
步骤II,将每个冗余位的位置用二进制表示,从右向左依次编号。
步骤III,对于每个冗余位,将它所控制的数据位位置转换为二进制,并将其中的每个1对应的数据位进行异或运算,得到冗余位的值。
步骤IV,将每个冗余位的值添加到对应的位置上,形成海明码。
实例性的,简单的海明码的生成方法为例,包括:
假设有一个4位的数据块,需要添加3个冗余位,以形成一个7位的海明码。
步骤1,使用上述公式计算r的值,得到r=3。
步骤2,将每个数据位的位置用二进制表示,得到1、2、4、8。
步骤3,将每个冗余位的位置用二进制表示,得到1、2、4。
步骤4,对于第一个冗余位,将它所控制的数据位位置转换为二进制并进行异或运算,得到值为1。
步骤5,对于第二个冗余位,将它所控制的数据位位置转换为二进制并进行异或运算,得到值为1。
步骤6,对于第三个冗余位,将它所控制的数据位位置转换为二进制并进行异或运算,得到值为0。
步骤7,将每个冗余位的值添加到对应的位置上,得到海明码为:1101100。
当数据在传输过程中出现单比特错误时,海明码可以检测并纠正错误。例如,如果海明码的第3位(对应数据块中的第2位)被翻转,导致海明码变成了1100100,海明码可以检测到错误的位置在第3位(即对应数据块中的第2位),并将其纠正为正确的值。
实施例4,作为本发明另一种实施例方式,案卷级原子性保证,即面向案卷级的、跨平台的分布式文件实现方法包括:
案卷是按照一定的主题等内部特征和外部特征编立的、具有密切联系的若干文件的组合体,数字档案在进行归档过程中,对案卷的操作是需要保证其原子性。在对案卷主文件进行存储时,可能发生意外情况,导致案卷主文件未写完或案卷主文件损坏,数据块在磁盘上只写了一部分,这时,可以通过回滚日志来检查数据块,以案卷为单位的档案文件存储的详细步骤如图7案卷级原子性保证实现过程所示。具体包括:
步骤一,案卷保存请求的接收:当数字档案软件接收到案卷保存请求时,会解析请求数据中包含的案卷元数据及卷内文件。案卷元数据是关于案卷的描述性信息,例如案卷号、案卷名称、归档日期、责任人等。卷内文件是指存储在案卷中的电子文档及其对应的元数据,元数据包含了电子文档的一些基本信息,如文档名称、作者、创建日期等。
可以理解,数字档案软件为软件公司开发的数字档案软件,即档案文件系统,是指软件公司开发的档案软件在归档时,如何使用本发明中定义的案卷主数据格式进行归档;
步骤二,组装档案文件:数字档案软件按照通用型档案文件定义的标准档案案卷主文件格式进行组装。组装的过程分为多个步骤,首先写入文件头、版本、时间戳等基本信息,然后写入案卷清单内容,归档信息包内容和移交信息包内容,最后写入数据块的信息。这些信息都是按照标准格式组织的,以确保档案文件的完整性和可读性。
步骤三,存储数据块和记录回滚日志:每个卷内文件会分解为多个数据块,每个数据块在写入磁盘的同时,会记录一条回滚日志。回滚日志是用来标识当前数据块是否写入完成的记录,它记录了每个数据块的状态、位置和版本等信息。这些信息都可以用来回滚到之前的某个状态,以保证数据的完整性和一致性。
步骤四,写入回滚日志版本号:所有的卷内文件的数据块写入完成之后,会写入回滚日志版本号,以标识回滚日志写入完成。这个版本号可以用来验证数据块的完整性和一致性,以便在必要时进行回滚操作。
步骤五,返回保存结果:档案文件保存完成后,数字档案软件会返回保存请求的最终结果。
在写入数据块时,同时使用数字档案软件的回滚日志绘制程序写入回滚日志,每个数据块对应回滚日志中的一条日志数据,回滚日志中的日志是倒序排列,当案卷主文件保存发生异常时,通过查询回滚日志日志,可以实现:当案卷主文件的回滚日志信息不存在或异常时(版本不正确),表明改案卷主文件不是完整的。当案卷主文件传输中发生异常,可根据回滚日志中最后一个写入的数据块编号,恢复传输(数据块写入是有顺序的,是按照数据块编号进行保存的,查询出回滚日志中最大的数据块编号,这个最大编号之前的数据块是可信的,之后的数据块是不可信的,需要删除后,重新进行传输)。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本发明提供一种面向案卷级的、跨平台的分布式文件系统,该系统以保证档案完整性为前提,实现了通用型档案文件、自举型档案文件和案卷级原子性保证等优势。对数字档案管理中的互操作性问题进行了分析,提出了通用型档案文件的概念。在此基础上,结合归档流程和档案移交流程,设计了一种案卷格式,包括案卷主文件、归档信息包、移交信息包和卷内文件等内容。本发明提出的跨平台分布式文件系统和案卷格式设计有助于数字档案管理的互操作性和可持续性。
通过上述技术方案,本发明实现了通用型档案文件:定义统一的文件格式和元数据结构,以便在不同平台和操作系统上能够正确识别和解析文件,同时这是一个标准,任何实现此标准的数字档案软件都能识别这些档案文件和元数据。
本发明实现了自举型档案文件:实现将档案元数据和档案文件数据合并存储的数字档案软件,实现档案文档自描述、自校验、块级自恢复,保障档案的完整性。
本发明实现了案卷级原子性保证:实现以案卷为原子的、基于回滚日志的数字档案软件,从而对案卷级的数据保证其原子性操作。
上述装置/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程。
基于上述本发明实施例记载的技术方案,进一步的可提出以下应用例。
根据本申请的实施例,本发明还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本发明实施例还提供了一种信息数据处理终端,所述信息数据处理终端用于实现于电子装置上执行时,提供用户输入接口以实施如上述各方法实施例中的步骤,所述信息数据处理终端不限于手机、电脑、交换机。
本发明实施例还提供了一种服务器,所述服务器用于实现于电子装置上执行时,提供用户输入接口以实施如上述各方法实施例中的步骤。
本发明实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、模块代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
以上所述,仅为本发明较优的具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种面向案卷级的、跨平台的分布式文件系统,其特征在于,该系统以案卷为主文件,按照层级关系自顶向下依次为:
案卷主文件:用于提供案卷元数据、归档信息包、移交信息包、卷内文件清单数据信息;
案卷文件元数据:用于提供多个卷内文件的清单数据信息;
卷内文件:用于提供卷内文件元数据以及文件块清单数据;
文件块清单:用于提供多个文件块数据信息;
文件块:用于提供文件块元数据、数据块清单及回滚日志数据信息;
数据块清单:用于提供多个数据块数据信息;
数据块:用于提供数据块元数据、数据块具体承载内容信息;
自举型档案文件,用于将档案元数据和档案文件数据合并存储的档案文档,进行档案文档自描述、自校验、块级自恢复;
所述自描述通过一些元数据字段和文件结构实现;元数据用于描述文件内容、结构和属性的数据,包含文件名称、创建日期、创建者、文件类型、版本信息、访问权限信息;
案卷内的每个卷内文件,按照一定的切分策略,切分成多个文件块,每个文件块头信息中有对应的MD5校验码,在文件存储和传输过程中,利用MD5算法用于计算和校验数据的完整性;
所述块级自恢复包括:每个文件块切分成更小的数据块,每个数据块中包含海明码,实现部分的自纠错能力;海明码的冗余位用来确定出错的位,然后进行纠正;块级自恢复过程包括:
假设有一个k位的数据块,添加r个冗余位,形成n位的海明码;其中r的值为满足以下公式的最小整数:
,
通过冗余位用来存储数据位的奇偶性,检测错误。
2.根据权利要求1所述的面向案卷级的、跨平台的分布式文件系统,其特征在于,所述案卷主文件包括:包含案卷的基本信息的案卷头信息模块;列举案卷中所有的案卷文件元数据模块;包含归档该案卷的元数据和详细信息的归档信息包模块;包含案卷的移交信息的移交信息包模块;
所述卷内文件包括:包含卷内文件的基本信息的卷内文件头信息模块;列举卷内文件中的所有文件块的文件块清单模块;每个卷内文件都会被分割成多个文件块的N个文件块模块;
所述文件块包括:包含文件块基本信息的文件块头信息模块;列举文件块中的所有数据块的数据块清单模块;每个文件块都会被分割成多个数据块得N个数据块模块;
所述数据块包括:包含数据块的基本信息的数据块头信息模块;以及包含数据块承载的文件数据内容模块。
3.根据权利要求1所述的面向案卷级的、跨平台的分布式文件系统,其特征在于,该系统还包括:定义了数字档案的通用文件系统,通过定义统一的文件格式和元数据结构,使档案文件在不同平台和操作系统上被正确识别和解析,同时用于任何数字档案软件都能识别这些档案文件和元数据。
4.根据权利要求3所述的面向案卷级的、跨平台的分布式文件系统,其特征在于,定义统一的文件格式包括:
(i)案卷主文件使用统一的后缀,包含案卷归档所需要的完整信息,完整信息包括案卷元数据、卷内文件及元数据;
(ii)案卷内的元数据全部放入归档信息包,归档信息包中的内容包括:归档包元数据、信息包标识、信息包类型数据;档案移交的相关记录全部放入移交信息包,移交信息包内部是链表结构,每个移交信息块都包含上一个移交块的指针;
(iii)所有的卷内文件都存储在案卷主文件内部,案卷内部以文件块为单位,根据文件块清单中声明的文件块阈值属性,将卷内文件切分成1个或多个文件块,文件块清单中记录每个文件块的具体位置,详细切分过程:数字档案软件从配置文件中读取卷内文件的切分阈值,写入到文件块清单的文件切分阈值属性中,在切分卷内文件时,按照此阈值将卷内文件切分为多个文件块,文件块清单上按顺序记录每个文件块的起始地址和结束地址,如果切分的最后一个文件块不满足阈值大小,为一个单独的文件块;
(iv)文件块存储在案卷主文件内部,或存储在其他存储设备上,在文件块清单中声明文件块实际存放的存储路径,一个卷内文件的文件块全部放在案卷主文件内部,或一部分放在案卷主文件内部,未放在案卷主文件内部的文件块需在文件块清单文件中声明文件块存储路径;
(v)每个文件块在存储前,数据块作为整个案卷体系最小的存储单元,当文件块被切分成多个数据块时,每个数据块都附加一个海明码;对于每个数据块,海明码编码计算出所需的冗余位,并将其添加到数据块中;在数据传输时,海明码编码使用冗余信息确定错误的位置,并进行纠正;
(vi)在档案文件进行案卷原子性存储时,采用先写数据块,再写回滚日志的方式,使档案文件的完整性检测及断点续传及断点续传中的异常恢复。
5.根据权利要求4所述的面向案卷级的、跨平台的分布式文件系统,其特征在于,使档案文件的完整性检测及断点续传及断点续传中的异常恢复包括:
(a)写入数据块:在档案文件的案卷原子性存储中,每个卷内文件分解为多个数据块,每个数据块在写入时,生成一个唯一的标识符;
(b)写入回滚日志:在写入数据块前,先写入对应数据块的回滚日志,回滚日志记录每个数据块的状态信息,用来回滚到之前的某个状态,在写入回滚日志时,每条回滚日志也有一个唯一的标识符;
(c)数据块和回滚日志的写入顺序:在档案文件进行案卷原子性存储时,采用先写数据块,再写回滚日志的方式;
(d)断点续传和异常恢复:在档案文件进行案卷原子性存储时先写数据块,再写回滚日志的方式,支持断点续传和异常恢复。
6.根据权利要求1所述的面向案卷级的、跨平台的分布式文件系统,其特征在于,所述海明码的生成方法如下:
步骤I,将每个数据位的位置用二进制表示,从右向左依次编号,第一个数据位的位置为1,第二个数据位的位置为2,以此类推;
步骤II,将每个冗余位的位置用二进制表示,从右向左依次编号;
步骤III,对于每个冗余位,将它所控制的数据位位置转换为二进制,并将其中的每个1对应的数据位进行异或运算,得到冗余位的值;
步骤IV,将每个冗余位的值添加到对应的位置上,形成海明码。
7.一种面向案卷级的、跨平台的分布式文件实现方法,用于运行权利要求1-6任意一项所述的面向案卷级的、跨平台的分布式文件系统,其特征在于,该实现方法包括:
步骤一,案卷保存请求的接收:当数字档案软件接收到案卷保存请求时,解析请求数据中包含的案卷元数据及卷内文件;
步骤二,组装档案文件:数字档案软件按照通用型档案文件定义的标准档案案卷主文件格式进行组装;
步骤三,存储数据块和记录回滚日志:每个卷内文件分解为多个数据块,每个数据块在写入磁盘的同时,记录一条回滚日志;回滚日志用来标识当前数据块是否写入完成的记录,记录每个数据块的状态、位置和版本信息;这些信息用来回滚到之前的某个状态;
步骤四,写入回滚日志版本号:所有的卷内文件的数据块写入完成后,写入回滚日志版本号,以标识回滚日志写入完成;
步骤五,返回保存结果:档案文件保存完成后,数字档案软件返回保存请求的最终结果。
8.根据权利要求7所述的面向案卷级的、跨平台的分布式文件实现方法,其特征在于,在步骤二中,组装档案文件包括:写入文件头、版本、时间戳基本信息,然后写入案卷清单内容,归档信息包内容和移交信息包内容,最后写入数据块的信息;
在写入数据块时,同时使用数字档案软件的回滚日志绘制程序写入回滚日志,每个数据块对应回滚日志中的一条日志数据,当案卷主文件保存发生异常时,通过查询回滚日志;当案卷主文件的回滚日志信息不存在或异常时该案卷主文件不完整;当案卷主文件传输中发生异常,根据回滚日志中最后一个写入的数据块编号,恢复传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310685117.7A CN116431596B (zh) | 2023-06-12 | 2023-06-12 | 一种面向案卷级的、跨平台的分布式文件系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310685117.7A CN116431596B (zh) | 2023-06-12 | 2023-06-12 | 一种面向案卷级的、跨平台的分布式文件系统及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116431596A CN116431596A (zh) | 2023-07-14 |
CN116431596B true CN116431596B (zh) | 2023-09-01 |
Family
ID=87085815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310685117.7A Active CN116431596B (zh) | 2023-06-12 | 2023-06-12 | 一种面向案卷级的、跨平台的分布式文件系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431596B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547714A (zh) * | 2001-08-03 | 2004-11-17 | 易斯龙系统公司 | 提供用于在存储设备的分布式文件系统中进行信息追踪的元数据的系统和方法 |
US8145607B1 (en) * | 2008-12-09 | 2012-03-27 | Acronis Inc. | System and method for online backup and restore of MS exchange server |
CN106170012A (zh) * | 2016-06-29 | 2016-11-30 | 上海上大海润信息系统有限公司 | 一种面向云渲染的分布式文件系统及构建和访问方法 |
CN111897486A (zh) * | 2020-06-08 | 2020-11-06 | 华北电力大学 | 一种基于软件定义的智能统一存储系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020156973A1 (en) * | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Enhanced disk array |
US20110198394A1 (en) * | 2010-02-12 | 2011-08-18 | German Hammerl | System and method for long-term archiving of digital data |
-
2023
- 2023-06-12 CN CN202310685117.7A patent/CN116431596B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547714A (zh) * | 2001-08-03 | 2004-11-17 | 易斯龙系统公司 | 提供用于在存储设备的分布式文件系统中进行信息追踪的元数据的系统和方法 |
US8145607B1 (en) * | 2008-12-09 | 2012-03-27 | Acronis Inc. | System and method for online backup and restore of MS exchange server |
CN106170012A (zh) * | 2016-06-29 | 2016-11-30 | 上海上大海润信息系统有限公司 | 一种面向云渲染的分布式文件系统及构建和访问方法 |
CN111897486A (zh) * | 2020-06-08 | 2020-11-06 | 华北电力大学 | 一种基于软件定义的智能统一存储系统 |
Non-Patent Citations (1)
Title |
---|
"办公自动化系统中档案管理新模式研究";浙江电力OA工作小组等;《OA’2001办公自动化国际学术研讨会论文集》;第444-450页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116431596A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7177995B2 (en) | Long term data protection system and method | |
US20160006461A1 (en) | Method and device for implementation data redundancy | |
US7103811B2 (en) | Mechanisms for detecting silent errors in streaming media devices | |
US7020805B2 (en) | Efficient mechanisms for detecting phantom write errors | |
US10387405B2 (en) | Detecting inconsistencies in hierarchical organization directories | |
US20140181575A1 (en) | Data error detection and correction using hash values | |
EP2976714B1 (en) | Method and system for byzantine fault tolerant data replication | |
US10044801B1 (en) | Backup of user data with validity check | |
US20100138717A1 (en) | Fork codes for erasure coding of data blocks | |
US11656942B2 (en) | Methods for data writing and for data recovery, electronic devices, and program products | |
US11886705B2 (en) | System and method for using free space to improve erasure code locality | |
CN110555770A (zh) | 一种基于增量哈希的区块链世界状态校验和恢复方法 | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
US11321431B2 (en) | Data processing, watermark embedding and watermark extraction | |
US20100205508A1 (en) | Redundant Data in Storage Medium | |
CN110222035A (zh) | 一种基于异或校验与日志恢复的数据库页面高效容错方法 | |
CN117234791B (zh) | 存储芯片的数据丢失检测方法及装置 | |
CN116431596B (zh) | 一种面向案卷级的、跨平台的分布式文件系统及实现方法 | |
CN111857603B (zh) | 数据处理方法及相关装置 | |
CN117178265A (zh) | 基于快照的数据损坏检测 | |
US20070016547A1 (en) | Methods and systems for recovering data from corrupted archives | |
US8316258B2 (en) | System and method for error detection in a data storage system | |
US7870103B1 (en) | Tolerating and reporting collisions in content-derived identifiers of data segments using secondary identifiers | |
US8595271B1 (en) | Systems and methods for performing file system checks | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 |
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 |