CN112148800B - 分布式数据存储系统 - Google Patents
分布式数据存储系统 Download PDFInfo
- Publication number
- CN112148800B CN112148800B CN202011125401.1A CN202011125401A CN112148800B CN 112148800 B CN112148800 B CN 112148800B CN 202011125401 A CN202011125401 A CN 202011125401A CN 112148800 B CN112148800 B CN 112148800B
- Authority
- CN
- China
- Prior art keywords
- file
- fsize0
- storage
- container
- files
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种分布式数据存储系统,包括处理器和存储有计算机程序的存储器,n组容器文件CF={CF1,CF2,......,CFn},当所述计算机程序被处理器执行时,实现以下步骤:步骤S100、获取待存储的文件大小Fsize0。步骤S200、将Fsize0与预设的文件大小阈值Q相比较,若Fsize0<=Q,则根据Fsize0从所述CF中选择目标容器文件组CFxy,将所述待存储的文件存储到CFxy中;步骤S300、获取CFxy的剩余存储空间,若所述CFxy的剩余存储空间为0,则将CFxy作为一个文件进行分布式存储,释放所述CFxy的存储空间。本发明提高了具有低频访问特点的小文件的存储效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式数据存储系统。
背景技术
人工智能、物联网、传感器网络、科学实验等应用中均会产生大量数据,这些数据种类繁多,大小不一,不仅包括海量的大文件(大于预设的文件大小阈值Q),也包括海量的小文件(小于预设的文件大小阈值Q)。特别是小文件的数量将达到千万级、亿级甚至十亿、百亿级。海量小文件体量庞大,但目前的分布式文件系统大都是匹配大文件场景的,对于海量小文件情况下,存储处理性能极差。
文件存储系统用于进行文件的读和写。分布式文件存储系统中,小文件如何进行读和写的优化,一直是研究的热点。但是现有的用于小文件存储的文件存储系统通常是兼顾文件的读和写的性能设计。但是,对于具有低频访问特点的小文件的存储,应该关注写性能,而不需要同时兼顾读性能,若同时兼顾两者,会导致文件存储效率低。因此,如何提高具有低频访问特点的小文件的存储效率成为亟待解决的技术问题。
发明内容
本发明目的在于,提供一种分布式数据存储系统,提高了具有低频访问特点的小文件的存储效率。
本发明提供了一种分布式数据存储系统,包括处理器和存储有计算机程序的存储器,n组容器文件CF={CF1,CF2,......,CFn},其中,CFi为第i组容器文件,i=1,2…n,每组容器文件包括一个或多个容器文件,CFi=(CFi1,CFi2,......),每组容器文件CFi对应的CFij都相同,j=1,2…;所述CFi的存储为顺序存储,所述CFi为易失性文件,当CFij被文件填充满后,将所述CFij中当前存储的数据存储到非易失性存储介质上;所有CFij的存储空间均为固定值S,不同的CFi对应的CFij的存储空间具有不同的原子存储块,所述原子存储块为CFi的最小存储空间,所述CFi的原子存储块的存储空间为Ai,Ai/Ai+1=固定值,i的取值从1到n-1;
当所述计算机程序被处理器执行时,实现以下步骤:
步骤S100、获取待存储的文件大小Fsize0。
步骤S200、将Fsize0与预设的文件大小阈值Q相比较,若Fsize0<=Q,则根据Fsize0从所述CF中选择目标容器文件组CFxy,将所述待存储的文件存储到CFxy中;
步骤S300、获取CFxy的剩余存储空间,若所述CFxy的剩余存储空间为0,则将CFxy作为一个文件进行分布式存储,释放所述CFxy的存储空间。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种分布式数据存储系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
本发明提高了具有低频访问特点的小文件的存储效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本发明一实施例提供的分布式数据存储系统示意图;
图2为本发明一实施例提供的基于web端的分布式数据存储系统示意图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种分布式数据存储系统的具体实施方式及其功效,详细说明如后。
本发明实施例提供了一种分布式数据存储系统,包括处理器和存储有计算机程序的存储器,n组容器文件CF={CF1,CF2,......,CFn},其中,CFi为第i组容器文件,i=1,2…n,每组容器文件包括一个或多个容器文件,CFi=(CFi1,CFi2,......),每组容器文件CFi对应的CFij都相同,j=1,2…;所述CFi的存储为顺序存储,所述CFi为易失性文件(例如,内存文件),当CFij被文件填充满后,将所述CFij中当前存储的数据存储到非易失性存储介质上(例如,硬盘上);所有CFij的存储空间均为固定值S,例如S均为64M,但可以理解的是,也可以是其他容量。不同的CFi对应的CFij的存储空间具有不同的原子存储块,所述原子存储块为CFi的最小存储空间,例如CFi的原子存储块为16K,那么当文件大小为1K时,存储到CFi中也需要占用16K的空间。所述CFi的原子存储块的存储空间为Ai,Ai/Ai+1=固定值,例如Ai/Ai+1=2,i的取值从1到n-1;显然,从A1-An,存储的效率逐渐降低,文件头所需的空间逐渐增加。作为一种实施例,所述CFn中包括一个容器文件。容器文件(container file)是指具有固定大小的,能够聚集小文件的文件,作为一种示例,所述Q为1M,即文件大小高于1M的文件为大文件,文件阈值大于1M的文件为小文件。
当所述计算机程序被处理器执行时,实现以下步骤,如图1所示:
步骤S100、获取待存储的文件大小Fsize0。
步骤S200、将Fsize0与预设的文件大小阈值Q相比较,若Fsize0<=Q,则根据Fsize0从所述CF中选择目标容器文件组CFxy,将所述待存储的文件存储到CFxy中;
步骤S300、获取CFxy的剩余存储空间,若所述CFxy的剩余存储空间为0,则将CFxy作为一个文件进行分布式存储,释放所述CFxy的存储空间。
本发明实施例提高了具有低频访问特点的小文件的存储效率,所述具有低频访问特点是指预设时间段内访问频率低于预设访问阈值,优选的,预设时间段为1个月,预设访问阈值为0,所述访问是指文件更新和文件删除。
在更加详细地讨论示例性实施例之前应当说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
作为一种实施例,所述方法还包括S400、如果Fsize0>Q,则将所述待存储的文件进行分布式存储。即文件为大文件时,直接采用现有的分布式存储技术进行分布式存储,在此不再赘述。
作为一种实施例,所述步骤S200包括:
通过执行步骤S210,可以保证每个CFi都能够执行到S400,向上取整为以An为原子单元的向上取整,例如An为1K,那么不足1K的取整为1K;若An为2K,那么不足2K的取整为2K;若An为512k,那么不足512的取整为512k。
步骤S240、若[Ai-1-mod(Fsize0/Ai-1)]<=[mod(Fsize0/Ai-1)-Ai],则x=i-1,否则x=i。
通过步骤S210-步骤S240可以从CF中确定目标容器文件组CFx,且可以确保ADDi+LENi的长度为定长,而不是变长,例如16个bit,这样任何一个文件都可以使用16bit,就能够确定在CF中的所有块。定长在存储器系统中,比变长的便于处理和管理,从而提高了文件存储效率,从CF中确定目标容器文件组CF后,接下来要在CFx中确定目标容器文件CFxy。
作为一种实施例,所述CFi除了包括存储空间外还包括文件头(file header),所述文件头包括存储在CFi中的小文件的文件ID,对应文件ID在CFi中的地址和长度,从而能够根据地址和长度定位小文件存在在连续的原子存储块中。优选的,所述文件ID经过md5处理,从而具有相同的长度且保密。所述文件头还包括原子存储块状态向量U=(u1,u2,...,uS/Ai),其中,当原子存储块没有存储文件时,uj=0,反之uj=1。可以理解的是,当释放所述CFxy的存储空间时,CFxy变成了空的文件,将U设置为0。
所述步骤S200还包括步骤S250、根据CFx中每个容器文件对应的所述原子存储块状态向量U以及Fsize0,从所述CFx中确定CFxy,将所述待存储的文件存储到CFxy中。
作为一种优选实施例,S/A1=2的整数幂,Q/A1=2的整数幂,Ai/Ai+1=2的整数幂。例如,S=64M=226,A1=32K=215,S/A1=211,Ai/Ai+1=2。显然,地址的位数ADDi=log2(S/Ai)。优选的,长度的位数LENi被设置为不会超过log2(Q/Ai)。,这样设置可以使得S/Ai均为2的整数幂,这样能够使得小文件存储时,存储和查询等相关的处理都以二进制位操作的命令被执行,从而提高处理效率。例如,在分布式数据存储系统中,系统中在运算的时候,除法可以变为减法,例如前述地址位数ADD1=log2(S/A1)=指数S-指数A1=26-15,从而提高运算速度。但可以理解的是,S/A1、Q/A1=2、Ai/Ai+1不是2的整数幂也可以,运算时执行除法即可。
为了便于与用户交互,进一步根据用户的需求提高文件存储的效率,作为上述实施例的一种变形,本发明实施例还提供了一种基于web端的分布式数据存储系统,除了上述分布式数据存储系统的组成以外,还包括web端,所述web端用于接收用户输入的S、Ai和预设的文件大小阈值Q的具体数值来配置所述S、Q和Ai,例如,在web端设置一个配置页面用来接收用户输入的数据。
当所述计算机程序被处理器执行时,实现以下步骤,如图2所示:
步骤S10、获取待存储的文件大小Fsize0;
步骤S20、将Fsize0与Q相比较,若Fsize0<=Q,则根据Fsize0从所述CF中选择目标容器文件组CFx,判断CFx中的所有k个容器文件的剩余连续空间是否都小于Fsize0,若是,则在内存中创建CFx对应的第k+1个容器文件作为目标容器CFxy,此时,y=k+1,否则,从CFx选择目标容器CFxy,此时,y=1,2…k,将所述待存储的文件存储到CFxy中;
步骤S30、获取CFxy的剩余存储空间,若所述CFxy的剩余存储空间为0,则将CFxy作为一个文件进行分布式存储,释放所述CFxy的存储空间。
作为一种实施例,所述web端还用于向用户(尤其是admin用户)可视化呈现CFi的容器文件数量,当所述计算机程序被处理器执行时,还实现下步骤S400、实时监测CFi的容器文件数量,当某个CFi的容器文件数量超过预设的数量阈值D时,说明D个CFij均出现了基本饱和的情况,这时候新的待存储的数据因为过大还无法进入到CFi中,因此向用户报警。
作为一种实施例,所述步骤S20中,所述根据Fsize0从所述CF中选择目标容器文件组CFx,包括:
步骤S204、若[Ai-1-mod(Fsize0/Ai-1)]<=[mod(Fsize0/Ai-1)-Ai],则x=i-1,否则x=i。
作为一种实施例,所述目标容器文件组CFx=(CFx1,CFx2,......,CFxk)中,每个容器文件对应的剩余存储空间分别为B1,B2,...,Bk,所述步骤S20中,所述从CFx选择目标容器CFxy,包括:
通过执行步骤S211能够较为快速的填充满CFxj,从而使得容器文件被存储到非易失性存储器,释放内存空间。
步骤S212、获取B1,B2,...,Bk的最大值max(B1,B2,...,Bk)以及Ax×2LENx并进行对比,若max(B1,B2,...,Bk)>Ax×2LENx,则将max(B1,B2,...,Bk)对应的容器文件确定为目标容器CFxy,否则,执行S213;
通过执行步骤S212使得CFx在存储任何一个小文件时,都不会填充满,所以使之提高下次存储小文件时能够填充满的可能性,从而提高文件存储效率。
通过执行步骤S213,使的填充小文件后的B1,B2,...,Bk,在下次填充小文件时,具有更高的填充满的可能性,从而提高文件存储效率。
作为一种示例,所述步骤S20还包括步骤S21、获取容器文件对应的原子存储块状态向量中连续为0的最大个数作为该容器文件对应的剩余存储空间。
本发明实施例所述系统均提高了具有低频访问特点的小文件的存储效率。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种分布式数据存储系统,其特征在于,包括处理器和存储有计算机程序的存储器,n组容器文件CF={CF1,CF2,......,CFn},其中,CFi为第i组容器文件,i=1,2…n,每组容器文件包括一个或多个容器文件,CFi=(CFi1,CFi2,......),每组容器文件CFi对应的CFij都相同,j=1,2…;所述CFi的存储为顺序存储,所述CFi为易失性文件,当CFij被文件填充满后,将所述CFij中当前存储的数据存储到非易失性存储介质上;所有CFij的存储空间均为固定值S,不同的CFi对应的CFij的存储空间具有不同的原子存储块,所述原子存储块为CFi的最小存储空间,所述CFi的原子存储块的存储空间为Ai,Ai/Ai+1=固定值,i的取值从1到n-1;
当所述计算机程序被处理器执行时,实现以下步骤:
步骤S100、获取待存储的文件大小Fsize0;
步骤S200、将Fsize0与预设的文件大小阈值Q相比较,若Fsize0<=Q,则根据Fsize0从所述CF中选择目标容器文件组CFxy,将所述待存储的文件存储到CFxy中;
步骤S300、获取CFxy的剩余存储空间,若所述CFxy的剩余存储空间为0,则将CFxy作为一个文件进行分布式存储,释放所述CFxy的存储空间。
3.根据权利要求2所述的系统,其特征在于,
所述LENi<=log2(Q/Ai)。
4.根据权利要求2所述的系统,其特征在于,
所述CFi还包括文件头,所述文件头包括存储在CFi中的小文件的文件ID,对应文件ID在CFi中的地址和长度。
5.根据权利要求4所述的系统,其特征在于,
所述文件头还包括原子存储块状态向量U=(u1,u2,...,uS/Ai),其中,当原子存储块没有存储文件时,uj=0,反之uj=1。
6.根据权利要求5所述的系统,其特征在于,
所述步骤S200还包括步骤S250、根据CFx中每个容器文件对应的所述原子存储块状态向量U以及Fsize0,从所述CFx中确定CFxy,将所述待存储的文件存储到CFxy中。
7.根据权利要求4所述的系统,其特征在于,
所述文件ID经过md5处理。
8.根据权利要求1所述的系统,其特征在于,
S/A1=2的整数幂,Q/A1=2的整数幂,Ai/Ai+1=2的整数幂。
9.根据权利要求1所述的系统,其特征在于,
所述CFn中包括一个容器文件。
10.根据权利要求1所述的系统,其特征在于,
所述Q为1M。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011125401.1A CN112148800B (zh) | 2020-10-20 | 2020-10-20 | 分布式数据存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011125401.1A CN112148800B (zh) | 2020-10-20 | 2020-10-20 | 分布式数据存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148800A CN112148800A (zh) | 2020-12-29 |
CN112148800B true CN112148800B (zh) | 2021-04-27 |
Family
ID=73954117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011125401.1A Active CN112148800B (zh) | 2020-10-20 | 2020-10-20 | 分布式数据存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148800B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510267B2 (en) * | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
US9727578B2 (en) * | 2012-09-28 | 2017-08-08 | International Business Machines Corporation | Coordinated access to a file system's shared storage using dynamic creation of file access layout |
CN111090633A (zh) * | 2019-12-13 | 2020-05-01 | 浪潮电子信息产业股份有限公司 | 一种分布式文件系统的小文件聚合方法、装置及设备 |
CN111309702A (zh) * | 2020-02-28 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种文件内、文件间聚合方法及系统 |
CN111625515A (zh) * | 2020-05-28 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种聚合小文件的操作请求的处理方法及装置 |
-
2020
- 2020-10-20 CN CN202011125401.1A patent/CN112148800B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112148800A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9569454B2 (en) | Selective compression of objects in a storage compute device | |
CN103516369A (zh) | 一种自适应数据压缩和解压缩的方法和系统及存储装置 | |
CN103136243A (zh) | 基于云存储的文件系统去重方法及装置 | |
CN112882663B (zh) | 一种随机写的方法、电子设备及存储介质 | |
CN113535670B (zh) | 一种虚拟化资源镜像存储系统及其实现方法 | |
CN110019017B (zh) | 一种基于访问特征的高能物理文件存储方法 | |
CN114816258A (zh) | Nvm的外部排序方法、装置和nvm存储器 | |
CN111274245B (zh) | 一种用于优化数据存储的方法和装置 | |
US9933838B2 (en) | Power management in a storage compute device | |
US8868853B2 (en) | Data processing device, data recording method and data recording program | |
CN112148800B (zh) | 分布式数据存储系统 | |
KR20150035876A (ko) | 데이터 중복 제거 방법 및 장치 | |
CN112149026B (zh) | 基于web端的分布式数据存储系统 | |
CN114816322B (zh) | Ssd的外部排序方法、装置和ssd存储器 | |
Shokrof et al. | MQF and buffered MQF: Quotient filters for efficient storage of k-mers with their counts and metadata | |
US20230223954A1 (en) | Inline decompression | |
WO2022212467A1 (en) | Compression technique for deep neural network weights | |
CN104298614A (zh) | 数据块在存储设备中存储方法和存储设备 | |
CN114943021A (zh) | 一种tb级增量数据筛选方法和装置 | |
CN111104435B (zh) | 一种元数据组织方法、装置、设备及计算机可读存储介质 | |
CN114461635A (zh) | 一种MySQL数据库数据存储方法、装置和电子设备 | |
CN114443629A (zh) | 一种集群布隆过滤器数据去重方法、终端设备及存储介质 | |
CN113366463A (zh) | 用于消除计算机存储器中的副本和值冗余的系统、方法和设备 | |
CN114415955B (zh) | 基于指纹的块粒度数据去重系统和方法 | |
CN116383290B (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 |