CN116827354A - 一种文件数据分布式存储管理系统 - Google Patents
一种文件数据分布式存储管理系统 Download PDFInfo
- Publication number
- CN116827354A CN116827354A CN202311091108.1A CN202311091108A CN116827354A CN 116827354 A CN116827354 A CN 116827354A CN 202311091108 A CN202311091108 A CN 202311091108A CN 116827354 A CN116827354 A CN 116827354A
- Authority
- CN
- China
- Prior art keywords
- sequence
- arithmetic
- data
- sequences
- run
- 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.)
- Granted
Links
- 238000006243 chemical reaction Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 10
- 238000009825 accumulation Methods 0.000 claims abstract description 3
- 108091026890 Coding region Proteins 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 35
- 230000006835 compression Effects 0.000 abstract description 18
- 238000007906 compression Methods 0.000 abstract description 18
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006837 decompression Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/18—File system types
- G06F16/182—Distributed 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3077—Sorting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
- H03M7/707—Structured documents, e.g. XML
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- 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
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据存储技术领域,具体涉及一种文件数据分布式存储管理系统,包括:对文件数据进行编码,获得二进制数据序列;通过二进制数据的累加和对二进制数据序列进行转换,获得转换序列;将转换序列划分为若干个等差序列;根据等差序列获得游程长度序列;在游程长度序列中增加标识符,获得压缩序列;对压缩序列进行编码获得编码序列,将压缩序列的编码序列存储在分布式存储系统的响应节点上,实现对文件数据的分布式存储。本发明提高游程编码对二进制数据的压缩效率,减少文件数据的数据量,降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及一种文件数据分布式存储管理系统。
背景技术
为了降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能,需要分布式存储管理系统能够存储更多的文件、数据传输效率更高、数据访问速度更快;而想要存储更多的文件、提高数据传输效率和数据访问速度,就要求文件数据的数据量较小,因此,需要对文件数据进行数据压缩。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以二进制数据的形式存储的,因此,需要先将文件数据转换为二进制数据形式,再将文件数据分散存储到分布式存储管理系统的多个存储服务器上。
由于二进制数据是有0和1组成的数据,因此,常规基于信息熵进行压缩的方法不适用于二进制数据;另外,考虑到二进制数据的本质是由连续重复出现的1或0组成的,因此,可以利用游程编码对二进制数据进行压缩;但游程编码的压缩效率受到字符连续出现次数为1的情况影响,字符连续出现次数为1的情况越多,则游程长度序列越长,游程编码的压缩效率越小。
因此,在字符连续出现次数为1的情况较多时,对二进制数据进行数据处理,是提高游程编码的压缩效率,减少文件数据的数据量,使分布式存储管理系统能够存储更多的文件、数据传输效率更高、数据访问速度更快,进而降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能的关键。
发明内容
本发明提供一种文件数据分布式存储管理系统,以解决现有的问题。
本发明的一种文件数据分布式存储管理系统采用如下技术方案:
本发明提供了一种文件数据分布式存储管理系统,所述系统包括:
文件数据编码模块,对文件数据进行编码,获得二进制数据序列;
压缩序列获取模块,通过二进制数据的累加和对二进制数据序列进行转换,获得转换序列;将转换序列划分为若干个等差序列;根据等差序列获得游程长度序列;在游程长度序列中增加标识符,获得压缩序列;
压缩序列编码模块,对压缩序列进行编码获得编码序列。
进一步地,所述获得转换序列,包括的具体步骤如下:
将二进制数据序列中前i个数据的累加和作为转换序列中的第i个数据,获得转换序列。
进一步地,所述将转换序列划分为若干个等差序列,包括的具体步骤如下:
按照从左往右的顺序,将转换序列划分为若干个等差序列,等差序列包括差值为0的等差序列和差值为1的等差序列,将差值为0的等差序列记为第一等差序列,将差值为1的等差序列记为第二等差序列。
进一步地,所述根据等差序列获得游程长度序列,包括的具体步骤如下:
将每个等差序列的长度作为游程长度,将所有游程长度按照顺序组成的序列记为游程长度序列。
进一步地,所述在游程长度序列中增加标识符,获得压缩序列,包括的具体步骤如下:
按照等差序列的顺序,判断每个等差序列与前一个等差序列是否为相同类型的等差序列;根据同类型的等差序列的数量与不同类型的等差序列的数量的大小关系,确定如何添加标识符,具体为:如果相同类型的等差序列的数量小于不同类型的等差序列的数量,则对与前一个等差序列为相同类型的等差序列进行标记,在与前一个等差序列为相同类型的等差序列在游程长度序列中对应的游程长度前面添加标识符,否则,对与前一个等差序列为不同类型的等差序列进行标记,在与前一个等差序列为不同类型的等差序列在游程长度序列中对应的游程长度前面添加标识符;
将添加标识符的游程长度序列记为压缩序列。
进一步地,所述对压缩序列进行编码获得编码序列,包括的具体步骤如下:
将三个标记设置在压缩序列的编码结果的最前面,获得压缩序列的编码序列。
进一步地,所述压缩序列的编码结果的获取方法具体如下:
根据霍夫曼编码表对压缩序列进行编码,获得压缩序列的编码结果。
进一步地,所述三个标记的获取方法具体如下:
根据首个数据设置第一标记,如果首个数据为“0”,则第一标记为0,如果首个数据为“1”,则第一标记为1;
根据第一个等差序列的类型设置第二标记,如果第一个等差序列为第一等差序列,则第二标记为0,如果第一个等差序列为第二等差序列,则第二标记为1;
根据同类型的等差序列的数量与不同类型的等差序列的数量的大小关系设置第三标记,如果相同类型的等差序列的数量大于不同类型的等差序列的数量,则第三标记为0,如果相同类型的等差序列的数量不大于不同类型的等差序列的数量,则第三标记为1。
进一步地,所述霍夫曼编码表的获取方法具体如下:
根据压缩序列中所有种游程长度的频数和标识符的频数构建霍夫曼树,根据霍夫曼树获得霍夫曼编码表。
进一步地,所述获得二进制数据序列,包括的具体步骤如下:
对于需要进行分布式存储的文件,通过文本编码方式对文件中的所有文件数据进行编码,将文件中所有文件数据的编码结果按照顺序组成的序列,记为二进制数据序列。
本发明的技术方案的有益效果是:本发明利用二进制数据的特点,通过累加值将二进制数据序列转换为由差值为0的等差序列和差值为1的等差序列组成的序列,将等差序列的长度作为游程,相较于没有转换之前,游程长度的数量减少,压缩后的数据量减少,提高游程编码对二进制数据的压缩效率,减少文件数据的数据量,使分布式存储管理系统能够存储更多的文件、数据传输效率更高、数据访问速度更快,进而降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种文件数据分布式存储管理系统的系统框图;
图2为霍夫曼树示意图。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种文件数据分布式存储管理系统,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的一种文件数据分布式存储管理系统的具体方案。
请参阅图1,其示出了本发明一个实施例提供的一种文件数据分布式存储管理系统,该系统包括以下模块:
为了降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能,需要分布式存储管理系统能够存储更多的文件、数据传输效率更高、数据访问速度更快;而想要存储更多的文件、提高数据传输效率和数据访问速度,就要求文件数据的数据量较小,因此,需要对文件数据进行数据压缩。由于二进制数据是有0和1组成的数据,因此,常规基于信息熵进行压缩的方法不适用于二进制数据;考虑到二进制数据的本质是由连续重复出现的1或0组成的,因此,可以利用游程编码对二进制数据进行压缩;但游程编码的压缩效率受到字符连续出现次数为1的情况影响,字符连续出现次数为1的情况越多,则游程长度序列越长,游程编码的压缩效率越小。
常规的游程编码是将重复且连续出现多次的字符用游程长度(即连续出现次数)+字符来表示,但是对于二进制数据,由于二进制是有0和1组成的数据,因此,只需要记录首个数据(即二进制数据的第一个数据)是1还是0,以及游程长度就可以;对于二进制数据序列{1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0},用首个数据“1”以及游程长度组成的序列{1,3,3,1,5,3,1,1,2,6}来表示;观察发现,由于字符连续出现次数为1的情况较多,导致游程长度的数量较多,因此,压缩后的数据量较大;如果将每个数据之前的所有数据的累加值作为该数据,则将二进制数据序列转换为{1,1,1,1,2,3,4,4,5,6,7,8,9,9,9,9,10,10,11,12,12,12,12,12,12,12},由于二进制是有0和1组成的数据,因此,观察发现转换后的序列由若干个差值为0的等差序列和若干个差值为1的等差序列组成,其中,差值为0的等差序列包括{1,1,1,1},{9,9,9},{10,10},{12,12,12,12,12,12},差值为1的等差序列包括{2,3,4},{4,5,6,7,8,9},{11,12};如果将等差序列的长度作为游程,游程长度组成的序列为{4,3,6,3,2,2,6};相较于没有转换之前,游程长度的数量减少,因此,压缩后的数据量较小。
因此,本实施例利用二进制数据的特点,通过累加值将二进制数据序列转换为由差值为0的等差序列和差值为1的等差序列组成的序列,将等差序列的长度作为游程,相较于没有转换之前,游程长度的数量减少,压缩后的数据量减少,提高游程编码的压缩效率,减少文件数据的数据量,使分布式存储管理系统能够存储更多的文件、数据传输效率更高、数据访问速度更快,进而降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能。
文件数据编码模块101,用于对文件数据进行编码,获得二进制数据序列。
需要说明的是,当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以二进制数据的形式存储的,因此,需要先将文件数据转换为二进制数据形式,再将文件数据分散存储到分布式存储管理系统的多个存储服务器上。
具体的,对于需要进行分布式存储的文件,文件数据包含汉字、英文字母、阿拉伯数字以及各种符号,可以通过文本编码方式对文件中的所有文件数据进行编码,将文件中所有文件数据的编码结果按照顺序组成的序列,记为二进制数据序列。
常见文本编码方式包括:UTF8编码方式、UTF16编码方式、GB2312编码方式、ASCII编码方式、UNICODE编码方式、UCS-2编码方式和ANSI编码方式等,本实施例中使用的文本编码方式为GB2312编码方式。
压缩序列获取模块102,用于对二进制数据序列进行转换,获得转换序列,将转换序列划分为若干个等差序列,根据等差序列获得游程长度序列,在游程长度序列中增加标识符。
需要说明的是,由于二进制数据是有0和1组成的数据,因此,常规基于信息熵进行压缩的方法不适用于二进制数据;考虑到二进制数据的本质是由连续重复出现的1或0组成的,因此,可以利用游程编码对二进制数据进行压缩;但游程编码的压缩效率受到字符连续出现次数为1的情况影响,字符连续出现次数为1的情况越多,则游程长度序列越长,游程编码的压缩效率越小。常规的游程编码是将重复且连续出现多次的字符用游程长度(即连续出现次数)+字符来表示,但是对于二进制数据,由于二进制是有0和1组成的数据,因此,只需要记录首个数据(即二进制数据的第一个数据)是1还是0,以及游程长度就可以;对于二进制数据序列{1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0},用首个数据“1”以及游程长度组成的序列{1,3,3,1,5,3,1,1,2,6}来表示;观察发现,由于字符连续出现次数为1的情况较多,导致游程长度的数量较多,因此,压缩后的数据量较大。
进一步需要说明的是,如果将每个数据之前的所有数据的累加值作为该数据,则将二进制数据序列转换为{1,1,1,1,2,3,4,4,5,6,7,8,9,9,9,9,10,10,11,12,12,12,12,12,12,12},由于二进制是有0和1组成的数据,因此,观察发现转换后的序列由若干个差值为0的等差序列和若干个差值为1的等差序列组成,其中,差值为0的等差序列包括{1,1,1,1},{9,9,9},{10,10},{12,12,12,12,12,12},差值为1的等差序列包括{2,3,4},{4,5,6,7,8,9},{11,12};如果将等差序列的长度作为游程,游程长度组成的序列为{4,3,6,3,2,2,6};相较于没有转换之前,游程长度的数量减少,因此,压缩后的数据量较小。因此,本实施例利用二进制数据的特点,通过累加值将二进制数据序列转换为由差值为0的等差序列和差值为1的等差序列组成的序列,将等差序列的长度作为游程,相较于没有转换之前,游程长度的数量减少,压缩后的数据量减少,提高游程编码的压缩效率,减少文件数据的数据量,使分布式存储管理系统能够存储更多的文件、数据传输效率更高、数据访问速度更快,进而降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能。
1、对二进制数据序列进行转换,获得转换序列。
具体的,将二进制数据序列中前i个数据的累加和作为转换序列中的第i个数据,获得转换序列。
例如,对于二进制数据序列{1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0},将每个数据之前的所有数据的累加值作为该数据,对二进制数据序列进行转换,获得转换序列{1,1,1,1,2,3,4,4,5,6,7,8,9,9,9,9,10,10,11,12,12,12,12,12,12,12}。
2、将转换序列划分为若干个等差序列。
具体的,按照从左往右的顺序,将转换序列划分为若干个等差序列,等差序列包括差值为0的等差序列和差值为1的等差序列,将差值为0的等差序列记为第一等差序列,将差值为1的等差序列记为第二等差序列。
例如,对于转换序列{1,1,1,1,2,3,4,4,5,6,7,8,9,9,9,9,10,10,11,12,12,12,12,12},将其转换为{1,1,1,1},{2,3,4},{4,5,6,7,8,9},{9,9,9},{10,10},{11,12},{12,12,12,12,12,12},其中,{1,1,1,1},{9,9,9},{10,10},{12,12,12,12,12,12}为差值为0的等差序列,即第一等差序列,{2,3,4},{4,5,6,7,8,9},{11,12}为差值为1的等差序列,即第二等差序列。
3、根据等差序列获得游程长度序列。
具体的,将每个等差序列的长度作为游程长度,将所有游程长度按照顺序组成的序列记为游程长度序列。
例如,对于二进制数据序列{1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,1,1,0,0},游程长度组成的序列为{1,3,3,1,5,3,1,1,2,6};对于转换序列{1,1,1,1,2,3,4,4,5,6,7,8,9,9,9,9,10,10,11,12,12,12,12,12,12,12},将等差序列的长度作为游程,游程长度组成的序列为{4,3,6,3,2,2,6};相较于没有转换之前,游程长度的数量减少,因此,压缩后的数据量较小。
4、在游程长度序列中增加标识符。
需要说明的是,在进行解码时,根据首个数据“1”和游程长度序列{4,3,6,3,2,2,6}中的第一个游程长度“4”获得第一个等差序列:由于第一个游程长度“4”是第一等差序列的长度,即差值为0的等差序列,因此,第一个等差序列中所有数据都和首个数据“1”相同,则获得第一个等差序列{1,1,1,1};根据游程长度序列{4,3,6,3,2,2,6}中的第二个游程长度“3”获得第二个等差序列:由于等差序列中的数据都是通过二进制数据的累加和获得的,二进制数据只能是0或1,因此,相邻两个累加和的差值只能是0或1,因此,第二个等差序列的第一个数据只能是第一个等差序列的最后一个数据“1”或者第一个等差序列的最后一个数据加1的结果“2”,如果第二个等差序列的第一个数据是“1”,则第一个数据应该属于第一个等差序列,因此,第二个等差序列的第一个数据是“2”,由于第二个游程长度“3”是第二等差序列的长度,即差值为1的等差序列,因此,第二个等差序列中所有数据都和前一个数据相差1,则获得第二个等差序列{2,3,4};同理,根据游程长度序列获得剩余所有等差序列{4,5,6,7,8,9},{9,9,9},{10,10},{11,12},{12,12,12,12,12,12},所有等差序列按照顺序组成转换序列{1,1,1,1,2,3,4,4,5,6,7,8,9,9,9,9,10,10,11,12,12,12,12,12,12,12},转换序列中每个数据与前一个数据的差值按照顺序组成的序列{1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0}即为二进制数据序列,实现对压缩结果进行解压。
进一步需要说明的是,根据解码过程可以发现,除了需要记录首个数据和游程长度序列外,由于游程长度是等差序列的长度,而等差序列包括差值为0的等差序列和差值为1的等差序列,为了保证可解码性,需要区分差值为0的等差序列和差值为1的等差序列,因此,需要添加标识符;而标识符的添加意味着数据量的增加,为了保证压缩效率,需要尽可能少的添加标识符。
具体的,按照等差序列的顺序,判断每个等差序列与前一个等差序列是否为相同类型的等差序列,即是否都为第一等差序列或者是否都为第二等差序列;本着尽可能少的添加标识符的原则,根据同类型的等差序列的数量与不同类型的等差序列的数量的大小关系,确定如何添加标识符:如果相同类型的等差序列的数量小于不同类型的等差序列的数量,则对与前一个等差序列为相同类型的等差序列进行标记,即在与前一个等差序列为相同类型的等差序列在游程长度序列中对应的游程长度前面添加标识符,否则,对与前一个等差序列为不同类型的等差序列进行标记,即在与前一个等差序列为不同类型的等差序列在游程长度序列中对应的游程长度前面添加标识符。
将需要添加标识符的等差序列的数量记为标识符的频数。
将添加标识符的游程长度序列记为压缩序列。
例如,对于转换序列{1,1,1,1,2,3,4,4,5,6,7,8,9,9,9,9,10,10,11,12,12,12,12,12,12,12},将其转换为等差序列{1,1,1,1},{2,3,4},{4,5,6,7,8,9},{9,9,9},{10,10},{11,12},{12,12,12,12,12,12},其中,与前一个等差序列为相同类型的等差序列的数量为2,与前一个等差序列为不同类型的等差序列的数量为4,因此,对与前一个等差序列为相同类型的等差序列进行标记,即在与前一个等差序列为相同类型的等差序列在游程长度序列中对应的游程长度前面添加标识符,标识符的频数为2,添加标识符后获得的压缩序列为{4,3,B,6,3,B,2,2,6},其中,B为标识符。
压缩序列编码模块103,用于对压缩序列进行编码获得编码序列。
具体的,根据压缩序列中所有种游程长度的频数和标识符的频数构建霍夫曼树,根据霍夫曼树获得霍夫曼编码表,根据霍夫曼编码表对压缩序列进行编码,获得压缩序列的编码结果。
例如,压缩序列为{4,3,B,6,3,B,2,2,6}中,游程长度有2、3、4、6,频数分别为2、2、1、2,标识符B的频数为2,根据所有种游程长度的频数和标识符的频数构建霍夫曼树,请参阅图2,其示出了霍夫曼树示意图,则游程长度有2、3、4、6以及标识符B的编码分别为001、11、000、10、01;压缩序列的编码结果为{000,11,01,10,11,01,001,001,10}。
进一步,考虑到想要解压,还需要记录首个数据、第一个等差序列的类型以及标识符标记的是相同类型的等差序列还是不同类型的等差序列,因此,本实施增加三个标记用来记录首个数据、第一个等差序列的类型以及标识符标记的是相同类型的等差序列还是不同类型的等差序列,具体如下:
(1)根据首个数据设置第一标记,如果首个数据为“0”,则第一标记为0,如果首个数据为“1”,则第一标记为1;因此,后续在解压时,能够根据第一标记获得首个数据;
(2)根据第一个等差序列的类型设置第二标记,如果第一个等差序列为第一等差序列,则第二标记为0,如果第一个等差序列为第二等差序列,则第二标记为1;因此,后续在解压时,能够根据第二标记获得第一个等差序列的类型;
(3)根据同类型的等差序列的数量与不同类型的等差序列的数量的大小关系设置第三标记,如果相同类型的等差序列的数量大于不同类型的等差序列的数量,则第三标记为0,如果相同类型的等差序列的数量不大于不同类型的等差序列的数量,则第三标记为1;因此,后续在解压时,能够根据第三标记获得同类型的等差序列的数量与不同类型的等差序列的数量的大小关系。
进一步,将三个标记设置在压缩序列的编码结果的最前面,获得压缩序列的编码序列;将压缩序列的编码序列存储在分布式存储系统的响应节点上,实现对文件数据的分布式存储。
例如:首个数据为1,则第一标记为1,第一个等差序列为第一等差序列,第一标记为0,相同类型的等差序列的数量不大于不同类型的等差序列的数量,第三标记为1,将三个标记设置在压缩序列的编码结果的最前面,则获得的压缩序列的编码序列为{101000110110110100100110}。
本发明的系统包括文件数据编码模块、压缩序列获取模块和压缩序列编码模块。本发明利用二进制数据的特点,通过累加值将二进制数据序列转换为由差值为0的等差序列和差值为1的等差序列组成的序列,将等差序列的长度作为游程,相较于没有转换之前,游程长度的数量减少,压缩后的数据量减少,提高游程编码对二进制数据的压缩效率,减少文件数据的数据量,使分布式存储管理系统能够存储更多的文件、数据传输效率更高、数据访问速度更快,进而降低分布式存储管理系统的存储成本,提高分布式存储管理系统的存储效率、用户体验和系统性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种文件数据分布式存储管理系统,其特征在于,所述系统包括:
文件数据编码模块,对文件数据进行编码,获得二进制数据序列;
压缩序列获取模块,通过二进制数据的累加和对二进制数据序列进行转换,获得转换序列;将转换序列划分为若干个等差序列;根据等差序列获得游程长度序列;在游程长度序列中增加标识符,获得压缩序列;
压缩序列编码模块,对压缩序列进行编码获得编码序列;将压缩序列的编码序列存储在分布式存储系统的响应节点上,实现对文件数据的分布式存储。
2.根据权利要求1所述的一种文件数据分布式存储管理系统,其特征在于,所述获得转换序列,包括的具体步骤如下:
将二进制数据序列中前i个数据的累加和作为转换序列中的第i个数据,获得转换序列。
3.根据权利要求1所述的一种文件数据分布式存储管理系统,其特征在于,所述将转换序列划分为若干个等差序列,包括的具体步骤如下:
按照从左往右的顺序,将转换序列划分为若干个等差序列,等差序列包括差值为0的等差序列和差值为1的等差序列,将差值为0的等差序列记为第一等差序列,将差值为1的等差序列记为第二等差序列。
4.根据权利要求1所述的一种文件数据分布式存储管理系统,其特征在于,所述根据等差序列获得游程长度序列,包括的具体步骤如下:
将每个等差序列的长度作为游程长度,将所有游程长度按照顺序组成的序列记为游程长度序列。
5.根据权利要求1所述的一种文件数据分布式存储管理系统,其特征在于,所述在游程长度序列中增加标识符,获得压缩序列,包括的具体步骤如下:
按照等差序列的顺序,判断每个等差序列与前一个等差序列是否为相同类型的等差序列;根据同类型的等差序列的数量与不同类型的等差序列的数量的大小关系,确定如何添加标识符,具体为:如果相同类型的等差序列的数量小于不同类型的等差序列的数量,则对与前一个等差序列为相同类型的等差序列进行标记,在与前一个等差序列为相同类型的等差序列在游程长度序列中对应的游程长度前面添加标识符,否则,对与前一个等差序列为不同类型的等差序列进行标记,在与前一个等差序列为不同类型的等差序列在游程长度序列中对应的游程长度前面添加标识符;
将添加标识符的游程长度序列记为压缩序列。
6.根据权利要求1所述的一种文件数据分布式存储管理系统,其特征在于,所述对压缩序列进行编码获得编码序列,包括的具体步骤如下:
将三个标记设置在压缩序列的编码结果的最前面,获得压缩序列的编码序列。
7.根据权利要求6所述的一种文件数据分布式存储管理系统,其特征在于,所述压缩序列的编码结果的获取方法具体如下:
根据霍夫曼编码表对压缩序列进行编码,获得压缩序列的编码结果。
8.根据权利要求6所述的一种文件数据分布式存储管理系统,其特征在于,所述三个标记的获取方法具体如下:
根据首个数据设置第一标记,如果首个数据为“0”,则第一标记为0,如果首个数据为“1”,则第一标记为1;
根据第一个等差序列的类型设置第二标记,如果第一个等差序列为第一等差序列,则第二标记为0,如果第一个等差序列为第二等差序列,则第二标记为1;
根据同类型的等差序列的数量与不同类型的等差序列的数量的大小关系设置第三标记,如果相同类型的等差序列的数量大于不同类型的等差序列的数量,则第三标记为0,如果相同类型的等差序列的数量不大于不同类型的等差序列的数量,则第三标记为1。
9.根据权利要求7所述的一种文件数据分布式存储管理系统,其特征在于,所述霍夫曼编码表的获取方法具体如下:
根据压缩序列中所有种游程长度的频数和标识符的频数构建霍夫曼树,根据霍夫曼树获得霍夫曼编码表。
10.根据权利要求1所述的一种文件数据分布式存储管理系统,其特征在于,所述获得二进制数据序列,包括的具体步骤如下:
对于需要进行分布式存储的文件,通过文本编码方式对文件中的所有文件数据进行编码,将文件中所有文件数据的编码结果按照顺序组成的序列,记为二进制数据序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311091108.1A CN116827354B (zh) | 2023-08-29 | 2023-08-29 | 一种文件数据分布式存储管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311091108.1A CN116827354B (zh) | 2023-08-29 | 2023-08-29 | 一种文件数据分布式存储管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116827354A true CN116827354A (zh) | 2023-09-29 |
CN116827354B CN116827354B (zh) | 2023-11-14 |
Family
ID=88122464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311091108.1A Active CN116827354B (zh) | 2023-08-29 | 2023-08-29 | 一种文件数据分布式存储管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116827354B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117375630A (zh) * | 2023-12-07 | 2024-01-09 | 国网山东省电力公司莱芜供电公司 | 一种针对带电作业预警系统的监控数据压缩方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394143A (en) * | 1993-06-30 | 1995-02-28 | Digital Equipment Corporation | Run-length compression of index keys |
US5872529A (en) * | 1996-07-18 | 1999-02-16 | Altera Corporation | Dynamic datastream compression/decompression |
US5966467A (en) * | 1997-09-12 | 1999-10-12 | Xerox Corporation | System for compressing and decompressing binary representations of dithered images |
US20050015249A1 (en) * | 2002-09-04 | 2005-01-20 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
JP2005275706A (ja) * | 2004-03-24 | 2005-10-06 | Canon Inc | 情報処理装置及びその方法、プログラム |
US7492290B1 (en) * | 2007-08-15 | 2009-02-17 | Red Hat, Inc. | Alternative encoding for LZSS output |
CN114567332A (zh) * | 2022-03-01 | 2022-05-31 | 深圳市领存技术有限公司 | 一种文本二次压缩方法、装置、设备及计算机可读存储介质 |
CN114866657A (zh) * | 2022-03-09 | 2022-08-05 | 西南交通大学 | 选择明文安全且密文图像文件大小减小的jpeg图像加密方法 |
CN116437019A (zh) * | 2023-04-18 | 2023-07-14 | 广西师范大学 | 一种全0行和全0列编码的密文域可逆信息隐藏方法 |
-
2023
- 2023-08-29 CN CN202311091108.1A patent/CN116827354B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394143A (en) * | 1993-06-30 | 1995-02-28 | Digital Equipment Corporation | Run-length compression of index keys |
US5872529A (en) * | 1996-07-18 | 1999-02-16 | Altera Corporation | Dynamic datastream compression/decompression |
US5966467A (en) * | 1997-09-12 | 1999-10-12 | Xerox Corporation | System for compressing and decompressing binary representations of dithered images |
US20050015249A1 (en) * | 2002-09-04 | 2005-01-20 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
JP2005275706A (ja) * | 2004-03-24 | 2005-10-06 | Canon Inc | 情報処理装置及びその方法、プログラム |
US7492290B1 (en) * | 2007-08-15 | 2009-02-17 | Red Hat, Inc. | Alternative encoding for LZSS output |
CN114567332A (zh) * | 2022-03-01 | 2022-05-31 | 深圳市领存技术有限公司 | 一种文本二次压缩方法、装置、设备及计算机可读存储介质 |
CN114866657A (zh) * | 2022-03-09 | 2022-08-05 | 西南交通大学 | 选择明文安全且密文图像文件大小减小的jpeg图像加密方法 |
CN116437019A (zh) * | 2023-04-18 | 2023-07-14 | 广西师范大学 | 一种全0行和全0列编码的密文域可逆信息隐藏方法 |
Non-Patent Citations (2)
Title |
---|
OLEG F. KURMAEV: "Constant-Weight and Constant-Charge Binary Run-Length Limited Codes", 《IEEE TRANSACTIONS ON INFORMATION THEORY ( VOLUME: 57, ISSUE: 7, JULY 2011)》, pages 4497 * |
张朝伟: "一种雷达视频信号压缩编码的算法及实现", 《空军雷达学院学报》, pages 28 - 30 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117375630A (zh) * | 2023-12-07 | 2024-01-09 | 国网山东省电力公司莱芜供电公司 | 一种针对带电作业预警系统的监控数据压缩方法 |
CN117375630B (zh) * | 2023-12-07 | 2024-03-05 | 国网山东省电力公司莱芜供电公司 | 一种针对带电作业预警系统的监控数据压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116827354B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8497788B1 (en) | Efficient techniques for aligned fixed-length compression | |
KR101049699B1 (ko) | 데이터의 압축방법 | |
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
CN116827354B (zh) | 一种文件数据分布式存储管理系统 | |
CN116303374B (zh) | 基于sql数据库的多维度报表数据优化压缩方法 | |
CN104125475B (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
CN107565970B (zh) | 一种基于特征识别的混合无损压缩方法及装置 | |
CN112152634B (zh) | 分块压缩编码方法、装置、计算机设备及可读存储介质 | |
CN116016606B (zh) | 一种基于智慧云的污水处理运维数据高效管理系统 | |
JP5656593B2 (ja) | 符号化データを復号する装置及び方法 | |
CN108810553A (zh) | 一种基于稀疏化处理的移动节点监测数据序列压缩方法 | |
JPS6356726B2 (zh) | ||
CN113965207B (zh) | 一种基于deflate霍夫曼编码的动态码表生成装置和方法 | |
CN114492322A (zh) | 文本压缩方法、模块、芯片、电子设备和存储介质 | |
JP4000266B2 (ja) | データ符号化装置、データ符号化方法、及びそのプログラム | |
JPH03204234A (ja) | 圧縮データ復元方法 | |
JPH03204235A (ja) | 圧縮データの復号方法 | |
Jacob et al. | Comparative analysis of lossless text compression techniques | |
CN112506876B (zh) | 一种支持sql查询的无损压缩查询方法 | |
CN102891730A (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
Rajput et al. | Comparative Study of Data Compression Techniques | |
Klein et al. | Searching in compressed dictionaries | |
Rani et al. | An Enhanced Text Compression System Based on ASCII Values and Huffman Coding | |
CN117082154B (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 |