CN103176754A - 一种海量小文件读取存储方法 - Google Patents
一种海量小文件读取存储方法 Download PDFInfo
- Publication number
- CN103176754A CN103176754A CN2013101121795A CN201310112179A CN103176754A CN 103176754 A CN103176754 A CN 103176754A CN 2013101121795 A CN2013101121795 A CN 2013101121795A CN 201310112179 A CN201310112179 A CN 201310112179A CN 103176754 A CN103176754 A CN 103176754A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- small documents
- disk
- continuous
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种海量小文件读取存储方法,通过将逻辑上连续的数据尽可能存储在物理磁盘的连续空间,使用cache技术充当元数据服务器的角色并通过简化的文件信息节点提高cache利用率,提高了小文件访问性能;聚合更新数据及其文件夹域中的相关数据为一次I/O请求写入,减少了文件碎片数量,读取时采用提前发送批量的高访问率的小文件方式来降低频繁的I/O操作,较好的提高了文件传输性能。
Description
技术领域
本发明涉及计算机应用技术领域,具体地说是一种海量小文件读取存储方法。
背景技术
在现阶段的读取、存储领域小文件是数据访问、使用的最常见的数据形式。相对于大文件的条带化技术进行切片,来提高用户对文件访问的并发性,小文件(≤64KB)由于其不利于条带化,传统的方法一般是采用将单个文件存储在单个数据服务器上的策略,但是当小文件的数量到达一定程度之后,对小文件的大量地重复访问将会给数据服务器带来性能上的负担及I/O瓶颈问题,由于互联网上的数据信息大多以高频率的小文件形式表现出来,而且在一般用户的信息读取、存储中,对小文件的读取、存储较多,因此对互联网上高频率的小文件读/写性能的研究有重要的现实意义。
在现阶段,传统的针对海量小文件的处理、操作等管理上主要存在以下3个方面的问题:
1)由于小文件的访问频率较高,需要多次访问磁盘,所以磁盘I/O的性能较低;
2)因为文件比较小,容易形成文件碎片而造成磁盘空间的浪费;
3)为每个小文件请求建立一个连接时容易产生网络时延,降低了小文件的读取速率。
发明内容
本发明的目的是提供一种海量小文件读取存储方法。
本发明的目的是按以下方式实现的,通过将逻辑上连续的小文件数据尽可能的存储在物理磁盘的连续空间之内,以此提高用户对文件访问的并发性操作,从而提高了海量小文件的访问性能,其中:
小文件的读取操作设计为:
在读写小文件的时间延迟主要花在磁盘磁头的寻道定位上,一旦定位好,读取一个数据块所花费的时间和读取连续几个数据块的时间相差不是很大,因此,结合上面提出的优化的数据存储结构,采用预读的方式,将同一个块中的文件一起读取出来,从而减少磁盘I/O的次数;针对频繁访问元数据服务器上的磁盘造成整个系统I/O性能较差的问题,使用cache充当元数据服务器的角色,在cache上保存文件信息节点的信息,并且通过简化的Node数据结构使每个文件信息节点只保留文件的磁盘空间信息以及另外少量有用的信息,从而提高cache的利用率,使cache能够保存大量的文件信息节点,通过这种方式,减少访问磁盘的次数和读取文件信息节点的开销,从而提高I/O性能;
海量小文件在磁盘阵列上的存储方法为:
在存储小文件时,通过采用开辟大块连续磁盘空间的方式来存储海量小文件,也就是将逻辑上连续的数据尽可能地存储在磁盘阵列的连续空间上,即将同一个文件的数据或将同一个文件夹下的文件数据尽可能地存储在连续的磁盘阵列块上,将磁盘空间划分为多个块,每个块的大小为64KB,每个小文件只能存放在单个块中,不能跨块存放,每一个文件夹将拥有一个或多个块,这些块都只存放此文件夹的数据,每个文件数据都存放在连续的磁盘空间上,以此提高“预读”数据的命中率,减少磁盘寻道时间,提高存储效能;
小文件在磁盘阵列上的存储数据存储方式是:通过简化Node属性信息,将文件信息节点的属性信息存放在元数据服务器上,用户只需要知道文件的磁盘空间信息即可进行访问,对Node的数据结构进行简化设计,只保留文件的磁盘空间信息以及属于它的少量数据成员,其中,File_id是文件标识符;StartPosition是文件在块中的起始位置;Long是文件的长度;Weight是文件权重,在本策略中代表文件的访问频率;Block_id是文件所存放的块的标识符;Count是文件的访问计数器;Lock是文件锁;
本发明的有益效果是: 通过将逻辑上连续的数据尽可能存储在物理磁盘的连续空间,使用cache技术充当元数据服务器的角色并通过简化的文件信息节点提高cache利用率,提高了小文件访问性能;聚合更新数据及其文件夹域中的相关数据为一次I/O请求写入,减少了文件碎片数量,读取时采用提前发送批量的高访问率的小文件方式来降低频繁的I/O操作,较好的提高了文件传输性能。
附图说明
图1是小文件数据存储结构示意图;
图2是同文件夹中的文件存储示意图;
图3是Node数据结构示意图。
具体实施方式
下面将对本发明实施方案做进一步详细描述。
本发明设计在存储小文件时通过采用开辟大块的连续磁盘空间的方式来存储大量的小文件。首先将磁盘空间划分为多个块,每个块的大小为64KB,大文件的连续磁盘空间就由这一系列块所组成,当遇到的文件比较小时,每个小文件只能存放在单个块中,不能跨越2个块存放,每个文件数据都存放在连续的磁盘空间上,图1是在一个块中存放多个小文件的示例图,A1,A2,A3,A4和A5为5个文件,文件与文件之间连续存放,如A1与A2,A3与A4,红色部分为此块的碎片,当出现文件的大小小于这些碎片的大小时,应优先把文件存放在这些碎片中,为了提高“预读”数据的命中率,在本发明的存储布局中设计的是将逻辑上连续的数据尽可能地存储在物理磁盘的连续空间上,即将同一个文件的数据或将同一个文件夹下的文件数据尽可能地存储在连续的磁盘空间块上,每一个文件夹将拥有一个或多个块,这些块都只存放此文件夹的文件,如图2所示。
在本系统的数据存储结构中,我们将文件信息节点的属性信息存放在元数据服务器上,在I/O服务器上,只需要知道文件的磁盘空间信息即可进行访问,因此在I/O服务器上,只需要记录文件的磁盘空间信息,而不需要记录文件的其他属性,如创建时间、最后访问时间和所属用户等。基于此,对Node的数据结构进行简化设计,只保留文件的磁盘空间信息以及属于它的少量数据成员,因此,设计了一种简化的Node属性信息,详细的Node数据结构如图3所示,其中,File_id是文件标识符;StartPosition是文件在块中的起始位置;Long是文件的长度;Weight是文件权重,在本策略中代表文件的访问频率;Block_id是文件所存放的块的标识符;Count是文件的访问计数器;Lock是文件锁。
针对本系统的数据存储访问频率问题,首先,设计一个全局变量NodeList,NodeList是对Node的一个排序链表,根据文件的访问频率进行排序,它是为了实现优化文件传输而设计的,为整个小文件读取、存储解决方案服务。NodeList是对与每个文件夹而服务的,根据文件夹里的每个文件的访问频率形成一个排序列表,当用户访问该文件夹里的某个文件时,系统会自动地将这个列表里高访问频率的文件一起发送过去,但为了避免发送过多的文件,设定一个高访问频率的阈值 ,并将所有访问频率高于的文件顺序分成多个组,每个组可能包含多个文件,组中所有文件大小之和不超过64KB,每当用户请求当前文件夹中的一个文件时,系统会按照顺序将一个组的文件一起发送过去,从而降低文件传输时延,,的计算公式如下:
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种海量小文件读取存储方法, 其特征在于通过将逻辑上连续的小文件数据尽可能的存储在物理磁盘的连续空间之内,以此提高用户对文件访问的并发性操作,从而提高了海量小文件的访问性能,其中:
小文件的读取操作设计为:
在读写小文件的时间延迟主要花在磁盘磁头的寻道定位上,一旦定位好,读取一个数据块所花费的时间和读取连续几个数据块的时间相差不是很大,因此,结合上面提出的优化的数据存储结构,采用预读的方式,将同一个块中的文件一起读取出来,从而减少磁盘I/O的次数;针对频繁访问元数据服务器上的磁盘造成整个系统I/O性能较差的问题,使用cache充当元数据服务器的角色,在cache上保存文件信息节点的信息,并且通过简化的Node数据结构使每个文件信息节点只保留文件的磁盘空间信息以及另外少量有用的信息,从而提高cache的利用率,使cache能够保存大量的文件信息节点,通过这种方式,减少访问磁盘的次数和读取文件信息节点的开销,从而提高I/O性能;
海量小文件在磁盘阵列上的存储方法为:
在存储小文件时,通过采用开辟大块连续磁盘空间的方式来存储海量小文件,也就是将逻辑上连续的数据尽可能地存储在磁盘阵列的连续空间上,即将同一个文件的数据或将同一个文件夹下的文件数据尽可能地存储在连续的磁盘阵列块上,将磁盘空间划分为多个块,每个块的大小为64KB,每个小文件只能存放在单个块中,不能跨块存放,每一个文件夹将拥有一个或多个块,这些块都只存放此文件夹的数据,每个文件数据都存放在连续的磁盘空间上,以此提高“预读”数据的命中率,减少磁盘寻道时间,提高存储效能;
小文件在磁盘阵列上的存储数据存储方式是:通过简化Node属性信息,将文件信息节点的属性信息存放在元数据服务器上,用户只需要知道文件的磁盘空间信息即可进行访问,对Node的数据结构进行简化设计,只保留文件的磁盘空间信息以及属于它的少量数据成员,其中,File_id是文件标识符;StartPosition是文件在块中的起始位置;Long是文件的长度;Weight是文件权重,在本策略中代表文件的访问频率;Block_id是文件所存放的块的标识符;Count是文件的访问计数器;Lock是文件锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101121795A CN103176754A (zh) | 2013-04-02 | 2013-04-02 | 一种海量小文件读取存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101121795A CN103176754A (zh) | 2013-04-02 | 2013-04-02 | 一种海量小文件读取存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103176754A true CN103176754A (zh) | 2013-06-26 |
Family
ID=48636666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101121795A Pending CN103176754A (zh) | 2013-04-02 | 2013-04-02 | 一种海量小文件读取存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103176754A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501319A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种低延迟的面向小文件的分布式存储系统 |
CN103916465A (zh) * | 2014-03-21 | 2014-07-09 | 中国科学院计算技术研究所 | 一种基于分布式文件系统的数据预读装置及其方法 |
CN104468745A (zh) * | 2014-11-24 | 2015-03-25 | 惠州Tcl移动通信有限公司 | 一种基于网络的文件传输方法及系统 |
CN104636201A (zh) * | 2013-11-15 | 2015-05-20 | 中国电信股份有限公司 | 一种虚拟i/o调度方法和系统 |
CN105279166A (zh) * | 2014-06-20 | 2016-01-27 | 中国电信股份有限公司 | 文件管理方法和系统 |
CN106980693A (zh) * | 2017-04-01 | 2017-07-25 | 广东浪潮大数据研究有限公司 | 一种文件读取的方法以及装置 |
CN107066505A (zh) * | 2017-01-10 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种性能优化的小文件存储访问的系统及方法 |
CN107193492A (zh) * | 2017-05-18 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种小文件更新的方法及装置 |
CN107391423A (zh) * | 2017-07-26 | 2017-11-24 | Tcl移动通信科技(宁波)有限公司 | 通过otg功能传输文件的方法、存储介质及移动终端 |
CN108563743A (zh) * | 2018-04-12 | 2018-09-21 | 郑州云海信息技术有限公司 | 一种文件读写方法、系统及设备和存储介质 |
CN108932287A (zh) * | 2018-05-22 | 2018-12-04 | 广东技术师范学院 | 一种基于Hadoop的海量小文件写入方法 |
CN108959313A (zh) * | 2017-05-23 | 2018-12-07 | 中国移动通信集团重庆有限公司 | 面向海量小文件的并发处理方法、装置和存储介质 |
CN110765086A (zh) * | 2019-10-25 | 2020-02-07 | 浪潮电子信息产业股份有限公司 | 一种小文件的目录读取方法、系统、电子设备及存储介质 |
CN112149026A (zh) * | 2020-10-20 | 2020-12-29 | 北京天华星航科技有限公司 | 基于web端的分布式数据存储系统 |
CN112732198A (zh) * | 2021-01-15 | 2021-04-30 | 广州Tcl互联网小额贷款有限公司 | 文件管理方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101382948A (zh) * | 2008-10-14 | 2009-03-11 | 成都市华为赛门铁克科技有限公司 | 一种文件存储方法、装置和系统 |
CN101968721A (zh) * | 2009-07-27 | 2011-02-09 | 巴比禄股份有限公司 | 提高对外部存储装置的访问速度的方法以及外部存储系统 |
CN102096722A (zh) * | 2011-03-21 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 文件存储方法和装置 |
US20110320709A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Realizing a storage system |
CN102460418A (zh) * | 2009-04-24 | 2012-05-16 | 第三级通讯公司 | 媒体资源存储和管理 |
-
2013
- 2013-04-02 CN CN2013101121795A patent/CN103176754A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101382948A (zh) * | 2008-10-14 | 2009-03-11 | 成都市华为赛门铁克科技有限公司 | 一种文件存储方法、装置和系统 |
CN102460418A (zh) * | 2009-04-24 | 2012-05-16 | 第三级通讯公司 | 媒体资源存储和管理 |
CN101968721A (zh) * | 2009-07-27 | 2011-02-09 | 巴比禄股份有限公司 | 提高对外部存储装置的访问速度的方法以及外部存储系统 |
US20110320709A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Realizing a storage system |
CN102096722A (zh) * | 2011-03-21 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 文件存储方法和装置 |
Non-Patent Citations (1)
Title |
---|
张春明等: "《一种Hadoop小文件存储和读取的方法》", 《计算机应用与软件》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501319A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种低延迟的面向小文件的分布式存储系统 |
CN104636201B (zh) * | 2013-11-15 | 2018-02-02 | 中国电信股份有限公司 | 一种虚拟i/o 调度方法和系统 |
CN104636201A (zh) * | 2013-11-15 | 2015-05-20 | 中国电信股份有限公司 | 一种虚拟i/o调度方法和系统 |
CN103916465A (zh) * | 2014-03-21 | 2014-07-09 | 中国科学院计算技术研究所 | 一种基于分布式文件系统的数据预读装置及其方法 |
CN105279166A (zh) * | 2014-06-20 | 2016-01-27 | 中国电信股份有限公司 | 文件管理方法和系统 |
CN104468745A (zh) * | 2014-11-24 | 2015-03-25 | 惠州Tcl移动通信有限公司 | 一种基于网络的文件传输方法及系统 |
CN107066505A (zh) * | 2017-01-10 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种性能优化的小文件存储访问的系统及方法 |
CN106980693A (zh) * | 2017-04-01 | 2017-07-25 | 广东浪潮大数据研究有限公司 | 一种文件读取的方法以及装置 |
CN106980693B (zh) * | 2017-04-01 | 2021-03-02 | 广东浪潮大数据研究有限公司 | 一种文件读取的方法以及装置 |
CN107193492A (zh) * | 2017-05-18 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种小文件更新的方法及装置 |
CN108959313B (zh) * | 2017-05-23 | 2021-03-05 | 中国移动通信集团重庆有限公司 | 面向海量小文件的并发处理方法、装置和存储介质 |
CN108959313A (zh) * | 2017-05-23 | 2018-12-07 | 中国移动通信集团重庆有限公司 | 面向海量小文件的并发处理方法、装置和存储介质 |
CN107391423A (zh) * | 2017-07-26 | 2017-11-24 | Tcl移动通信科技(宁波)有限公司 | 通过otg功能传输文件的方法、存储介质及移动终端 |
CN108563743A (zh) * | 2018-04-12 | 2018-09-21 | 郑州云海信息技术有限公司 | 一种文件读写方法、系统及设备和存储介质 |
CN108932287B (zh) * | 2018-05-22 | 2019-11-29 | 广东技术师范大学 | 一种基于Hadoop的海量小文件写入方法 |
CN108932287A (zh) * | 2018-05-22 | 2018-12-04 | 广东技术师范学院 | 一种基于Hadoop的海量小文件写入方法 |
CN110765086A (zh) * | 2019-10-25 | 2020-02-07 | 浪潮电子信息产业股份有限公司 | 一种小文件的目录读取方法、系统、电子设备及存储介质 |
CN110765086B (zh) * | 2019-10-25 | 2022-08-02 | 浪潮电子信息产业股份有限公司 | 一种小文件的目录读取方法、系统、电子设备及存储介质 |
CN112149026A (zh) * | 2020-10-20 | 2020-12-29 | 北京天华星航科技有限公司 | 基于web端的分布式数据存储系统 |
CN112732198A (zh) * | 2021-01-15 | 2021-04-30 | 广州Tcl互联网小额贷款有限公司 | 文件管理方法、装置、设备和存储介质 |
CN112732198B (zh) * | 2021-01-15 | 2023-11-14 | 广州Tcl互联网小额贷款有限公司 | 文件管理方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176754A (zh) | 一种海量小文件读取存储方法 | |
Whitman et al. | Spatial indexing and analytics on Hadoop | |
CN102332029B (zh) | 一种基于Hadoop 的海量可归类小文件关联存储方法 | |
US9311252B2 (en) | Hierarchical storage for LSM-based NoSQL stores | |
US7689574B2 (en) | Index and method for extending and querying index | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN110162528A (zh) | 海量大数据检索方法及系统 | |
CN102819586B (zh) | 一种基于高速缓存的url分类方法和设备 | |
CN107045531A (zh) | 一种优化hdfs小文件存取的系统及方法 | |
CN101963982A (zh) | 基于位置敏感哈希的删冗存储系统元数据管理方法 | |
CN103139300A (zh) | 一种基于重复数据删除的虚拟机镜像管理的优化方法 | |
CN104391961A (zh) | 千万级小文件数据的一种读写解决策略 | |
CN102915340A (zh) | 一种扩展的基于b+树对象文件系统 | |
CN104375782A (zh) | 千万级小文件数据的一种读写解决方法 | |
CN103514210A (zh) | 小文件处理方法及装置 | |
CN111159176A (zh) | 一种海量流数据的存储和读取的方法和系统 | |
CN107066505A (zh) | 一种性能优化的小文件存储访问的系统及方法 | |
CN110858210A (zh) | 数据查询方法及装置 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN114281989B (zh) | 基于文本相似度的数据去重方法、装置及存储介质和服务器 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
CN103399915A (zh) | 一种搜索引擎索引文件的优化读取方法 | |
Fevgas et al. | LB-Grid: An SSD efficient grid file | |
CN107273443B (zh) | 一种基于大数据模型元数据的混合索引方法 | |
CN103116652B (zh) | 一种基于拉链信息的索引存储管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130626 |