CN110968272B - 基于时间序列预测的海量小文件存储性能优化方法及系统 - Google Patents
基于时间序列预测的海量小文件存储性能优化方法及系统 Download PDFInfo
- Publication number
- CN110968272B CN110968272B CN201911291844.5A CN201911291844A CN110968272B CN 110968272 B CN110968272 B CN 110968272B CN 201911291844 A CN201911291844 A CN 201911291844A CN 110968272 B CN110968272 B CN 110968272B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- time
- files
- training
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于时间序列预测的海量小文件存储性能优化方法,属于信息存储领域,包括:收集带有时间信息的历史文件访问记录,得到数据集;将数据集预处理为离散的时间序列数据后,使用时间窗口在其上滚动产生训练数据集合,任意t时刻的训练数据以t‑n~t时刻的数据为输入数据,并以t+1时刻的数据为标签数据;基于循环神经网络建立时间序列预测模型,并利用由训练数据集合划分得到的训练集、验证集和测试集依次进行训练、验证与测试,从而得到目标模型;利用目标模型预测文件大小的变化趋势,以识别出其中的大文件和小文件;将大文件直接存储,将小文件基于时间序列聚合后存储。本发明能够优化海量小文件在分布式存储系统中的存储性能。
Description
技术领域
本发明属于信息存储领域,更具体地,涉及一种基于时间序列预测的海量小文件存储性能优化方法及系统。
背景技术
在互联网信息化技术高速发展的大背景下,数据呈现指数级增长。面对不断增长的web应用和移动应用,以及用户使用过程中产生的海量小文件。分布式存储系统在进行海量小文件存储时基本上都存在性能问题,这类问题被称为小文件问题,其主要原因是小文件数量巨大、类型繁多,造成海量小文件存储在存储效率和访问性能等一系列问题上都面临着挑战。在面对海量小文件问题时,磁盘I/O效率低下。传统磁盘更适合顺序的大文件I/O访问模式,对随机的小文件I/O读写则性能表现不佳。磁盘本身读文件消耗的时间包括寻道时间、旋转延迟时间、数据传输时间。读大文件时寻道时间较长,而其它时间被分摊了,因此磁盘读写效率高;但是当读写海量小文件时,每个文件都要在磁盘寻道和旋转延迟上消耗时间,累积起来造成磁盘读写效率十分低下。对于海量小文件的存储与访问,传统磁盘介质在存储效率和访问性能等方面面临巨大的挑战性,对海量小文件的高效存储与访问已经成为了工业界和学术界不可回避的重大课题。
针对海量小文件的写入性能低下的问题,现有研究提出了不同的聚合存储策略。小文件聚合策略是指将大量的小文件按照一定算法合并成一个大文件进行存储,从而达到大幅度减少文件数量的目的;同时能够减低文件读写的I/O操作次数,大量节省数据传输时间,因此实现小文件的高效读写。目前主要有三种不同的小文件聚合方式:基于目录的聚合、基于访问频率的聚合和基于哈希的聚合。针对小文件访问性能差的问题,研究人员也提出了许多解决方案。主要解决方案是索引+预取缓存策略,该策略把逻辑上连续的数据存储到物理磁盘的连续空间,使用缓存作为元数据服务器来提高小文件的访问性能。写数据时将相关数据聚合在一起作为一次I/O请求写入,减少文件的碎片数量,提高空间利用率。
由以上方案可以看出,小文件问题的解决思路是将小文件以某些聚合策略聚合在一起,并建立相应的索引或预取机制。采用这样的方案具有一定的优势,首先减少了需要存储的元数据数量,缓解了节点的负担,提高了存储效率;其次简化了I/O访问流程,提高了访问效率。但以上方法在设计聚合策略时都未针对负载随时间变化的访问规律进行考虑,即忽略了负载的时序特性,使得海量小文件在分布式存储系统中的存储性能(写入和读取性能)受到了限制。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于时间序列预测的海量小文件存储性能优化方法及系统,其目的在于,优化海量小文件在分布式存储系统中的存储性能。
为实现上述目的,按照本发明的第一方面,提供了一种基于时间序列预测的海量小文件存储性能优化方法,包括:
(1)从当前应用的历史数据中收集带有时间信息的文件访问记录,从而得到数据集;
(2)在时间维度上,将数据集预处理为离散的时间序列数据,时间序列数据中,每一条数据包括对应时刻的文件大小;
(3)使用大小为n的时间窗口在时间序列数据上滚动产生训练数据集合,使得在任意t时刻,以时间序列数据中t时刻的数据xt及其前n条数据xt-n~xt-1的组合作t时刻的输入数据,以t+1时刻的数据xt+1为t时刻的标签数据,由输入数据和标签数据共同组成t时刻的训练数据并在获得所有训练数据后,将训练数据集合划分为训练集、验证集和测试集;
(4)基于循环神经网络建立时间序列预测模型,用于预测文件大小的变化趋势,利用训练集、验证集和测试集依次对时间序列预测模型进行训练、验证与测试,从而得到预测准确性满足预设要求的模型,记为目标模型;
(5)利用目标模型预测当前应用的文件大小的变化趋势,并结合阈值判断识别出其中的大文件和小文件;
(6)将识别出的大文件存储到分布式存储系统中,并通过基于时间序列的聚合操作将小文件聚合为大文件后,将聚合得到的大文件存储到分布式存储系统中;
其中,t∈[n+1,DL-1],DL为数据集的长度,n为正整数,设置t的取值不超过DL-1,是为了确保最后一个时刻的数据为标签数据;每一条文件访问记录包括被访问文件的大小。
本发明利用循环神经网络对文件大小的变化趋势进行预测,结合预测结果和阈值判断识别出大文件和小文件,并通过基于时间序列的聚合操作对小文件进行聚合存储,即按照文件的先后顺序进行聚合存储,将多个小文件的随机访问转变为对单个大文件的访问,同时负载的时序特性组织数据,有利于利用数据访问的时间局部性,从而能够减少磁盘寻道时间,提高海量小文件在分布式存储系统中的写入和读取性能。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法,还包括:
在对数据集进行预处理时,还按照预设的命名格式对文件进行重命名;命名格式中,一部分表示文件所属时段,另一部分表示文件在所属时段内的序号;
按照命名格式,为每一聚合得到的大文件建立一个基于压缩Trie树的索引结构;
在每一个索引结构中,参与聚合的小文件对应一条索引信息,且最后一级索引的地址域中存储小文件在对应大文件中的偏移值和文件大小。
本发明根据特定的命名格式对文件进行重命名,并基于压缩Trie树为每一个聚合文件建立索引结构,将小文件在聚合文件中的偏移值和文件大小存储在最后一级索引的地址域中,从而在访问小文件时,能够通过字符串的快速匹配,快速获取到相关的偏移值和文件大小,提高文件访问性能。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法,还包括:
按照如下步骤执行当前应用的文件写入操作:
(S1)利用目标预测模型预测写入操作执行时刻文件大小的变化趋势,并结合阈值判断识别待写入文件的类别,若为大文件,则转入步骤(S2);否则,转入步骤(S3);
(S2)将文件直接存储到分布式存储系统中,文件写入操作结束;
(S3)基于时间序列的聚合操作将待写入的小文件聚合为大文件,将聚合得到的大文件存储到分布式存储系统中,并基于压缩Trie树建立索引结构,文件写入操作结束。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法,还包括:
按照如下步骤执行当前应用的文件读取操作:
(T1)通过阈值判断识别待读取的文件类型,若为大文件,则转入步骤(T2);否则,转入步骤(T3);
(T2)直接从分布式存储系统中读取文件,文件读取操作结束;
(T3)根据文件名进行索引查询,以得到由该文件参与聚合得到的大文件的索引值,以及小文件在大文件中的偏移值和文件大小;
(T4)根据索引值从分布式存储系统读取相应的大文件,并根据偏移值和文件大小读取相应的小文件内容,文件读取操作结束。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法中,步骤(2)包括:
按照当前应用生成日志文件的时间间隔将数据集划分为多个数据子集,每个数据子集对应一个时刻;
求取每一个数据子集内文件大小的平均值,作为对应时刻的文件大小,从而得到时间序列数据。
应用会按照一定的时间间隔(例如1小时)生成日志文件,且记载在同一个日志文件中的访问记录往往具有相似的访问特性,本发明按照当前应用生成日志文件的时间间隔对数据集进行划分并求取文件大小的平均值,使得所得到的时间序列数据中,每一个时刻的数据能够准确反映一段时间内的文件访问情况。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法中,步骤(3)还包括:
在进行训练集、验证集与测试集划分之前,先对每一时刻的训练数据traint进行归一化操作。
本发明通过归一化操作,能够将数据缩放到一定的范围之内,可以减少奇异样本数据带来的影响,同时能够加速神经网络的训练速度。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法中,步骤(4)还包括:
在利用训练集对时间序列预测模型进行训练之前,采用两阶段搜索方法确定用于对时间序列预测模型进行初始化的超参数组合;
在第一阶段搜索中,随机设定超参数的变化范围,设为第一范围,并利用TPE(Tree-structured Parzen Estimators)在第一范围内进行随机搜索,得到第一优化范围;
在第二阶段搜索中,在第一优化范围内网格搜索超参数的最佳组合,用于对时间序列预测模型进行初始化。
超参数的选择对于神经网络至关重要,在神经网络模型训练过程的开始,几乎没有关于如何设置超参数以获得良好性能的信息,因此调整超参数的传统方法是根据经验设置范围,然后根据经验进行调整;本发明通过两阶段搜索的方式确定初始的超参数组合,第一阶段为粗略的随机搜索,第二阶段为精细的网格搜索,在第一个阶段中,使用随机选择的参数子集,以便快速减小参数范围;此外,在超参数搜索过程中,使用Tree-structuredParzen Estimators(TPE)进行随机搜索,每次迭代TPE都会收集新的观察结果,并且在迭代结束时,算法会决定接下来应该尝试哪组参数。当第一阶段为每个超参数获得一个小范围时,在第二阶段使用精细的网格搜索来找到它们的终最佳组合;为了获得良好的效果,可以将搜索步长设置为非常小的数字。相比于传统的根据经验设定超参数的调整范围,本发明能够在模型训练之前,使用较优超参数组合对模型进行初始化,从而能够提高模型的预测精度,并加速神经网络的训练速度。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法,还包括:若在对时间序列预测模型进行测试的结果不满足预测准确性的要求,则根据测试结果,调整初始的超参数组合或数据集之后,重新进行训练。
本发明在模型训练过后,通过验证和测试保证了模型的预测准确性。
进一步地,本发明第一方面提供的基于时间序列预测的海量小文件存储性能优化方法中,循环神经网络为LSTM(Long Short-Term Memory,长短时记忆网络)。
本发明中,工作负载预测问题可以被视为单变量单步时间序列预测问题,为了捕捉历史值与未来值之间的内在关系,长短时记忆神经网络被视为多对一单元,具有适合增加复杂工作负载模式的优点,本发明基于LSTM构建时间序列预测模型,能够获得最好的预测效果。
按照本发明的第二方面,提供了一种基于时间序列预测的海量小文件存储性能优化系统,包括:收集模块、预处理模块、训练数据构建模块、模型构建模块、预测模块、直接存储模块和聚合存储模块;
收集模块,用于从当前应用的历史数据中收集带有时间信息的文件访问记录,从而得到数据集;
预处理模块,用于在时间维度上,将数据集预处理为离散的时间序列数据,时间序列数据中,每一条数据包括对应时刻的文件大小;
训练数据构建模块,用于使用大小为n的时间窗口在时间序列数据上滚动产生训练数据集合,使得在任意t时刻,以时间序列数据中t时刻的数据xt及其前n条数据xt-n~xt-1的组合作t时刻的输入数据,以t+1时刻的数据xt+1为t时刻的标签数据,由输入数据和标签数据共同组成t时刻的训练数据traint,并在获得所有训练数据后,将训练数据集合划分为训练集、验证集和测试集;
模型构建模块,用于基于循环神经网络建立时间序列预测模型,用于预测文件大小的变化趋势,利用训练集、验证集和测试集依次对时间序列预测模型进行训练、验证与测试,从而得到预测准确性满足预设要求的模型,记为目标模型;
预测模块,用于利用目标模型预测当前应用的文件大小的变化趋势,并结合阈值判断识别出其中的大文件和小文件;
直接存储模块,用于将预测模块识别出的大文件存储到分布式存储系统中;
聚合存储模块,用于通过基于时间序列的聚合操作,将预测模块识别出的小文件聚合为大文件后,将聚合得到的大文件存储到分布式存储系统中;
其中,t∈[n+1,DL-1],DL为数据集的长度,n为正整数;每一条文件访问记录包括被访问文件的大小。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明利用循环神经网络对文件大小的变化趋势进行预测,结合预测结果和阈值判断识别出大文件和小文件,并通过基于时间序列的聚合操作对小文件进行聚合存储,即按照文件的先后顺序进行聚合存储,将多个小文件的随机访问转变为对单个大文件的访问,同时负载的时序特性组织数据,有利于利用数据访问的时间局部性,从而能够减少磁盘寻道时间,提高海量小文件在分布式存储系统中的写入和读取性能。
(2)本发明根据特定的命名格式对文件进行重命名,并基于压缩Trie树为每一个聚合文件建立索引结构,将小文件在聚合文件中的偏移值和文件大小存储在最后一级索引的地址域中,从而在访问小文件时,能够通过字符串的快速匹配,快速获取到相关的偏移值和文件大小,提高文件访问性能。
(3)本发明通过两阶段搜索的方式确定初始的超参数组合,能够在模型训练之前,使用较优超参数组合对模型进行初始化,从而能够提高模型的预测精度,并加速神经网络的训练速度。
(4)本发明基于LSTM构建时间序列预测模型,能够获得最好的预测效果。
附图说明
图1为本发明实施例提供的基于时间序列预测的海量小文件存储性能优化方法流程图;
图2为本发明实施例提供的文件聚合示意图;
图3为本发明实施例提供的索引结构示意图;
图4为本发明实施例提供的文件写入操作流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了优化海量小文件在分布式存储系统中的存储性能(包括写入性能和读取性能),本发明提供的于时间序列预测的海量小文件存储性能优化方法,如图1所示,包括:
(1)从当前应用的历史数据中收集带有时间信息的文件访问记录,从而得到数据集;
当前应用具体可以是数据仓库、网页、应用程序等等,为便于描述,在本实施例中,均针对网页应用,相应的历史数据可从网页日志中获取;除了时间信息,每一条文件访问记录还包括被访问文件的大小;
循环神经网络(Recurrent Neural Network,RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network);作为一种优选的实施方式,在本实施例中,循环神经网络为LSTM(Long Short-Term Memory,长短时记忆网络);由于本发明中,工作负载预测问题可以被视为单变量单步时间序列预测问题,为了捕捉历史值与未来值之间的内在关系,长短时记忆神经网络被视为多对一单元,具有适合增加复杂工作负载模式的优点,基于LSTM构建时间序列预测模型,能够获得最好的预测效果;
应当说明的是,LSTM仅为一种优选的实施方式,其他循环神经网络同样可以应用于本发明;
(2)在时间维度上,将数据集预处理为离散的时间序列数据,时间序列数据中,每一条数据包括对应时刻的文件大小;
在一个可选的实施方式中,步骤(2)具体包括:
按照当前应用生成日志文件的时间间隔将数据集划分为多个数据子集,每个数据子集对应一个时刻;
求取每一个数据子集内文件大小的平均值,作为对应时刻的文件大小,从而得到时间序列数据;
网页应用每个1小时,会生成一个日志文件,在记载在同一个日志文件中的访问记录往往具有相似的访问特性;相对应地,本实施例中,以小时为单位,对数据集进行划分,得到多个数据子集后,求取每个数据自己内文件大小的平均值,使得所得到的时间序列数据中,每一个时刻的数据能够准确反映1个小时内的文件访问情况;
(3)使用大小为n的时间窗口在时间序列数据上滚动产生训练数据集合,使得在任意t时刻,以时间序列数据中t时刻的数据xt及其前n条数据xt-n~xt-1的组合作t时刻的输入数据,以t+1时刻的数据xt+1为t时刻的标签数据,由输入数据和标签数据共同组成t时刻的训练数据traint,并在获得所有训练数据后,将训练数据集合划分为训练集、验证集和测试集;
步骤(3)中所产生的训练数据traint可采用如下表达式进行表示:
traint={(xt-n…xt),xt+1|t∈[n+1,DL-1]};
其中,(xt-n…xt)为输入数据,xt+1为监督学习所需要的标签数据,设置t的取值不超过DL-1,是为了确保最后一个时刻的数据为标签数据;
在一个可选的实施方式中,步骤(3)还可包括:
在进行训练集、验证集与测试集划分之前,先对每一时刻的训练数据traint进行归一化操作;通过归一化操作,能够将数据缩放到一定的范围之内,可以减少奇异样本数据带来的影响,同时能够加速神经网络的训练速度;
可选地,归一化操作具体可采用最大最小标准化,相应的转换公式如下:
应当说明的是,此处的归一化操作仅为一种示例性的描述,不应理解为对本发明的唯一限定,其他归一化操作方法,例如sigmoid函数等,也可以应用于本发明;
(4)基于循环神经网络建立时间序列预测模型,用于预测文件大小的变化趋势,利用训练集、验证集和测试集依次对时间序列预测模型进行训练、验证与测试,从而得到预测准确性满足预设要求的模型,记为目标模型;
训练集用于训练模型,以获得最佳的模型参数;验证集用于在模型训练完成后,对模型参数进行微调;测试集用于对经过训练与验证的模型的性能进行评估;
超参数的选择对于神经网络至关重要,在LSTM模型中,存在五个超参数,即历史范围或所谓的历史窗口w,隐藏单元H的数量,层数L,丢失概率d和l2正则化乘数λ,为了获得它们的较为优化的组合,在一个可选的实施方式中,步骤(4)还可包括:
在利用训练集对时间序列预测模型进行训练之前,采用两阶段搜索方法确定用于对时间序列预测模型进行初始化的超参数组合;
在第一阶段搜索中,随机设定超参数的变化范围,设为第一范围,并利用TPE在第一范围内进行随机搜索,得到第一优化范围;
在第二阶段搜索中,在第一优化范围内网格搜索超参数的最佳组合,用于对时间序列预测模型进行初始化;
通过两阶段搜索的方式确定初始的超参数组合,第一阶段为粗略的随机搜索,第二阶段为精细的网格搜索,能够在模型训练之前,使用较优超参数组合对模型进行初始化,从而能够提高模型的预测精度,并加速神经网络的训练速度;为了获得良好的搜索效果,可以将搜索步长设置为非常小(例如,小于某一个阈值)的数字;
(5)利用目标模型预测当前应用的文件大小的变化趋势,并结合阈值判断识别出其中的大文件和小文件;
具体的用于区分文件为大文件和小文件的阈值,往往是由具体的分布式存储系统决定的,例如,在Ceph系统中,该阈值为1MB,小于1MB的文件即为小文件,否则为大文件;
(6)将识别出的大文件存储到分布式存储系统中,并通过基于时间序列的聚合操作将小文件聚合为大文件后,将聚合得到的大文件存储到分布式存储系统中;
通过基于时间序列的聚合操作,即按照时间的先后顺序对小文件进行聚合,由此能够使得被连续访问的文件能够被聚合到一个大文件中,从而能够利用数据访问的时间局部性原理,提高文件的访问性能;
图2所示为一个小文件聚合的示例,其中f代表原始的时序文件,Compile代表将原始的文件聚合之后得到的大文件,下表代表相应的文件序号;在具体聚合时,可设置一个阈值Thsize(例如100),用于控制参与聚合得到同一个大文件的小文件的数量;
其中,t∈[n+1,DL-1],DL为数据集的长度,n为正整数。
为了进一步提高文件访问性能,上述基于时间序列预测的海量小文件存储性能优化方法,还可包括:
在对数据集进行预处理时,还按照预设的命名格式对文件进行重命名;命名格式中,一部分表示文件所属时段,另一部分表示文件在所属时段内的序号;具体的时段长度,应根据实际产生的小文件的速度确定,若产生小文件较快,则该时段相对较短;反之,若产生小文件较慢,则该时段相对较长;
按照命名格式,为每一聚合得到的大文件建立一个基于压缩Trie树的索引结构;
在每一个索引结构中,参与聚合的小文件对应一条索引信息,且最后一级索引的地址域中存储小文件在对应大文件中的偏移值和文件大小;
在一个可可选的实施方式中,具体的文件命名格式为yyyymmdd-ff.txt。其中,字符串ff代表一天内的文件序号,字符串dd代表日,字符串mm代表月份,字符串yyyy代表年份;按文件序号、年月日自上而下构建7级压缩Trie树索引,在最后一级索引的地址域中存储小文件在合并文件中的偏移值和文件大小;图3所示为一个基于压缩Trie树的索引结构,其中,第一级索引为文件序列号的十位,索引范围为[0,2];第二级索引为文件序列号的个位,索引范围为[0,9];第三级索引为年月日的日位的第一位,索引范围为[0,3];第四级索引为年月日的日位的第二位,索引范围为[0,9];第五级索引为年月日的月位的第一位,索引范围为[0,1];第六级索引为年月日的月位的第二位,索引范围为[0,9];第七级索引为年月日中4个字符的年份;
根据特定的命名格式对文件进行重命名,并基于压缩Trie树为每一个聚合文件建立索引结构,将小文件在聚合文件中的偏移值和文件大小存储在最后一级索引的地址域中,从而在访问小文件时,能够通过字符串的快速匹配,快速获取到相关的偏移值和文件大小,提高文件访问性能。
上述基于时间序列预测的海量小文件存储性能优化方法,还包括:
如图4所示,按照如下步骤执行当前应用的文件写入操作:
(S1)利用目标预测模型预测写入操作执行时刻文件大小的变化趋势,并结合阈值判断识别待写入文件的类别,若为大文件,则转入步骤(S2);否则,转入步骤(S3);
(S2)将文件直接存储到分布式存储系统中,文件写入操作结束;
(S3)基于时间序列的聚合操作将待写入的小文件聚合为大文件,将聚合得到的大文件存储到分布式存储系统中,并基于压缩Trie树建立索引结构,文件写入操作结束;
分布式存储系统会提供相应的数据写入接口,例如,在Ceph集群中,由LIBRADOS库提供相关的接口,存储文件时,调用相应的接口即可。
上述基于时间序列预测的海量小文件存储性能优化方法,还包括:
按照如下步骤执行当前应用的文件读取操作:
(T1)通过阈值判断识别待读取的文件类型,若为大文件,则转入步骤(T2);否则,转入步骤(T3);
(T2)直接从分布式存储系统中读取文件,文件读取操作结束;
(T3)根据文件名进行索引查询,以得到由该文件参与聚合得到的大文件的索引值,以及小文件在大文件中的偏移值和文件大小;
(T4)根据索引值从分布式存储系统读取相应的大文件,并根据偏移值和文件大小读取相应的小文件内容,文件读取操作结束;
同样地,分布式存储系统会提供相应的数据读取接口,例如,在Ceph集群中,由LIBRADOS库提供相关的接口,读取文件时,调用相应的接口即可。
为了进一步保证模型的预测准确性,上述基于时间序列预测的海量小文件存储性能优化方法,还包括:若在对时间序列预测模型进行测试的结果不满足预测准确性的要求,则根据测试结果,调整初始的超参数组合或数据集之后,重新进行训练;
在进行预测准确性的评估时,可采用均方根误差(RMSE)、平均绝对误差(MAE)和平均绝对百分比误差(MAPE)中的一种或多种评估指标;具体来说,模型的预测值表示为实际值表示为y,RMSE,MAE和MAPE的计算表达式分别如下:
其中,N代表用于评估的训练数据总数;
在模型训练过后,通过验证和测试保证了模型的预测准确性。
本发明还提供了一种基于时间序列预测的海量小文件存储性能优化系统,包括:收集模块、预处理模块、训练数据构建模块、模型构建模块、预测模块、直接存储模块和聚合存储模块;
收集模块,用于从当前应用的历史数据中收集带有时间信息的文件访问记录,从而得到数据集;
预处理模块,用于在时间维度上,将数据集预处理为离散的时间序列数据,时间序列数据中,每一条数据包括对应时刻的文件大小;
训练数据构建模块,用于使用大小为n的时间窗口在时间序列数据上滚动产生训练数据集合,使得在任意t时刻,以时间序列数据中t时刻的数据xt及其前n条数据xt-n~xt-1的组合作t时刻的输入数据,以t+1时刻的数据xt+1为t时刻的标签数据,由输入数据和标签数据共同组成t时刻的训练数据traint,并在获得所有训练数据后,将训练数据集合划分为训练集、验证集和测试集;
模型构建模块,用于基于循环神经网络建立时间序列预测模型,用于预测文件大小的变化趋势,利用训练集、验证集和测试集依次对时间序列预测模型进行训练、验证与测试,从而得到预测准确性满足预设要求的模型,记为目标模型;
预测模块,用于利用目标模型预测当前应用的文件大小的变化趋势,并结合阈值判断识别出其中的大文件和小文件;
直接存储模块,用于将预测模块识别出的大文件存储到分布式存储系统中;
聚合存储模块,用于通过基于时间序列的聚合操作,将预测模块识别出的小文件聚合为大文件后,将聚合得到的大文件存储到分布式存储系统中;
其中,t∈[n+1,DL-1],DL为数据集的长度,n为正整数;每一条文件访问记录包括被访问文件的大小;
本实施例中,各模块的具体实施方式可参考上述方法实施例中的描述,在此将不作复述。
总的来说,本发明不但能够通过LSTM模型准确预测文件大小的变化趋势,而且将预测结果按基于时间序列的聚合方法进行聚合,同时采用基于压缩Trie树的索引机制,使得对多个小文件的随机访问转变为对单个大文件的访问,基于数据的时间属性,能够利用数据的时间局部性,可减少磁盘寻道时间,提高I/O性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于时间序列预测的海量小文件存储性能优化方法,其特征在于,包括:
(1)从当前应用的历史数据中收集带有时间信息的文件访问记录,从而得到数据集;
(2)在时间维度上,将所述数据集预处理为离散的时间序列数据,所述时间序列数据中,每一条数据包括对应时刻的文件大小;
(3)使用大小为n的时间窗口在所述时间序列数据上滚动产生训练数据集合,使得在任意t时刻,以所述时间序列数据中t时刻的数据xt及其前n条数据xt-n~xt-1的组合作t时刻的输入数据,以t+1时刻的数据xt+1为t时刻的标签数据,由输入数据和标签数据共同组成t时刻的训练数据traint,并在获得所有训练数据后,将训练数据集合划分为训练集、验证集和测试集;
(4)基于循环神经网络建立时间序列预测模型,用于预测文件大小的变化趋势,利用所述训练集、所述验证集和所述测试集依次对所述时间序列预测模型进行训练、验证与测试,从而得到预测准确性满足预设要求的模型,记为目标模型;
(5)利用所述目标模型预测当前应用的文件大小的变化趋势,并结合阈值判断识别出其中的大文件和小文件;
(6)将识别出的大文件存储到分布式存储系统中,并通过基于时间序列的聚合操作将小文件聚合为大文件后,将聚合得到的大文件存储到分布式存储系统中;
其中,t∈[n+1,DL-1},DL为所述数据集的长度,n为正整数;每一条文件访问记录包括被访问文件的大小;
所述基于时间序列预测的海量小文件存储性能优化方法,还包括:
在对数据集进行预处理时,还按照预设的命名格式对文件进行重命名;所述命名格式中,一部分表示文件所属时段,另一部分表示文件在所属时段内的序号;
按照所述命名格式,为每一聚合得到的大文件建立一个基于压缩Trie树的索引结构;
在每一个索引结构中,参与聚合的小文件对应一条索引信息,且最后一级索引的地址域中存储小文件在对应聚合文件中的偏移值和文件大小。
2.如权利要求1所述的基于时间序列预测的海量小文件存储性能优化方法,其特征在于,还包括:
按照如下步骤执行当前应用的文件写入操作:
(S1)利用所述目标预测模型预测写入操作执行时刻文件大小的变化趋势,并结合阈值判断识别待写入文件的类别,若为大文件,则转入步骤(S2);否则,转入步骤(S3);
(S2)将文件直接存储到分布式存储系统中,文件写入操作结束;
(S3)基于时间序列的聚合操作将待写入的小文件聚合为大文件,将聚合得到的大文件存储到分布式存储系统中,并基于压缩Trie树建立索引结构,文件写入操作结束。
3.如权利要求1所述的基于时间序列预测的海量小文件存储性能优化方法,其特征在于,还包括:
按照如下步骤执行当前应用的文件读取操作:
(T1)通过阈值判断识别待读取的文件类型,若为大文件,则转入步骤(T2);否则,转入步骤(T3);
(T2)直接从分布式存储系统中读取文件,文件读取操作结束;
(T3)根据文件名进行索引查询,以得到由该文件参与聚合得到的大文件的索引值,以及小文件在大文件中的偏移值和文件大小;
(T4)根据索引值从分布式存储系统读取相应的大文件,并根据偏移值和文件大小读取相应的小文件内容,文件读取操作结束。
4.如权利要求1-3任一项所述的基于时间序列预测的海量小文件存储性能优化方法,其特征在于,所述步骤(2)包括:
按照当前应用生成日志文件的时间间隔将所述数据集划分为多个数据子集,每个数据子集对应一个时刻;
求取每一个数据子集内文件大小的平均值,作为对应时刻的文件大小,从而得到所述时间序列数据。
5.如权利要求1-3任一项所述的基于时间序列预测的海量小文件存储性能优化方法,其特征在于,所述步骤(3)还包括:
在进行训练集、验证集与测试集划分之前,先对每一时刻的训练数据traint进行归一化操作。
6.如权利要求1-3任一项所述的基于时间序列预测的海量小文件存储性能优化方法,其特征在于,所述步骤(4)还包括:
在利用训练集对所述时间序列预测模型进行训练之前,采用两阶段搜索方法确定用于对所述时间序列预测模型进行初始化的超参数组合;
在第一阶段搜索中,随机设定超参数的变化范围,设为第一范围,并利用TPE在所述第一范围内进行随机搜索,得到第一优化范围;
在第二阶段搜索中,在所述第一优化范围内网格搜索超参数的最佳组合,用于对所述时间序列预测模型进行初始化。
7.如权利要求1-3任一项所述的基于时间序列预测的海量小文件存储性能优化方法,其特征在于,还包括若在对所述时间序列预测模型进行测试的结果不满足预测准确性的要求,则根据测试结果,调整初始的超参数组合或数据集之后,重新进行训练。
8.如权利要求1-3任一项所述的基于时间序列预测的海量小文件存储性能优化方法,其特征在于,所述循环神经网络为LSTM。
9.一种基于时间序列预测的海量小文件存储性能优化系统,其特征在于,包括:收集模块、预处理模块、训练数据构建模块、模型构建模块、预测模块、直接存储模块和聚合存储模块;
所述收集模块,用于从当前应用的历史数据中收集带有时间信息的文件访问记录,从而得到数据集;
所述预处理模块,用于在时间维度上,将所述数据集预处理为离散的时间序列数据,所述时间序列数据中,每一条数据包括对应时刻的文件大小;
所述训练数据构建模块,用于使用大小为n的时间窗口在所述时间序列数据上滚动产生训练数据集合,使得在任意t时刻,以所述时间序列数据中t时刻的数据xt及其前n条数据xt-n~xt-1的组合作t时刻的输入数据,以t+1时刻的数据xt+1为t时刻的标签数据,由输入数据和标签数据共同组成t时刻的训练数据traint,并在获得所有训练数据后,将训练数据集合划分为训练集、验证集和测试集;
所述模型构建模块,用于基于循环神经网络建立时间序列预测模型,用于预测文件大小的变化趋势,利用所述训练集、所述验证集和所述测试集依次对所述时间序列预测模型进行训练、验证与测试,从而得到预测准确性满足预设要求的模型,记为目标模型;
所述预测模块,用于利用所述目标模型预测当前应用的文件大小的变化趋势,并结合阈值判断识别出其中的大文件和小文件;
所述直接存储模块,用于将所述预测模块识别出的大文件存储到分布式存储系统中;
所述聚合存储模块,用于通过基于时间序列的聚合操作,将所述预测模块识别出的小文件聚合为大文件后,将聚合得到的大文件存储到分布式存储系统中;
其中,t∈[n+1,DL-11,DL为所述数据集的长度,n为正整数;每一条文件访问记录包括被访问文件的大小;
所述预处理模块,还用于在对数据集进行预处理时,还按照预设的命名格式对文件进行重命名;所述命名格式中,一部分表示文件所属时段,另一部分表示文件在所属时段内的序号;按照所述命名格式,为每一聚合得到的大文件建立一个基于压缩Trie树的索引结构;在每一个索引结构中,参与聚合的小文件对应一条索引信息,且最后一级索引的地址域中存储小文件在对应聚合文件中的偏移值和文件大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291844.5A CN110968272B (zh) | 2019-12-16 | 2019-12-16 | 基于时间序列预测的海量小文件存储性能优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291844.5A CN110968272B (zh) | 2019-12-16 | 2019-12-16 | 基于时间序列预测的海量小文件存储性能优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968272A CN110968272A (zh) | 2020-04-07 |
CN110968272B true CN110968272B (zh) | 2021-01-01 |
Family
ID=70034365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911291844.5A Active CN110968272B (zh) | 2019-12-16 | 2019-12-16 | 基于时间序列预测的海量小文件存储性能优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968272B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913881B (zh) * | 2020-07-22 | 2022-02-15 | 华中科技大学 | 一种应用程序I/O trace的生成方法 |
CN113761295B (zh) * | 2021-09-22 | 2024-02-27 | 杭州安恒信息技术股份有限公司 | 一种索引段合并方法及设备 |
CN114742236A (zh) * | 2022-04-24 | 2022-07-12 | 重庆长安汽车股份有限公司 | 一种环境车辆行为预测模型训练方法及系统 |
CN115185805B (zh) * | 2022-09-13 | 2023-01-24 | 浪潮电子信息产业股份有限公司 | 一种存储系统的性能预测方法、系统、设备及存储介质 |
CN117059269B (zh) * | 2023-08-10 | 2024-04-26 | 成都艾视医院管理有限公司 | 一种基于深度学习的青少年近视预测方法及模型 |
CN117076387B (zh) * | 2023-08-22 | 2024-03-01 | 北京天华星航科技有限公司 | 基于磁带的海量小文件的快速归档恢复系统 |
CN117193675B (zh) * | 2023-11-08 | 2024-02-02 | 上海飞斯信息科技有限公司 | 基于分布式计算容量的固态储存器管理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776967A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于时序聚合算法的海量小文件实时存储方法及装置 |
CN107436736A (zh) * | 2017-08-08 | 2017-12-05 | 郑州云海信息技术有限公司 | 一种hdfs中文件的存储方法及装置 |
CN109164980A (zh) * | 2018-08-03 | 2019-01-08 | 北京涛思数据科技有限公司 | 一种时序数据的聚合优化处理方法 |
CN109240999A (zh) * | 2018-08-24 | 2019-01-18 | 浪潮电子信息产业股份有限公司 | 一种基于小文件的自动化聚合打包方法及系统 |
CN110515920A (zh) * | 2019-08-30 | 2019-11-29 | 北京浪潮数据技术有限公司 | 一种基于Hadoop的海量小文件存取方法和系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521986B2 (en) * | 2009-10-29 | 2013-08-27 | Condusiv Technologies Corporation | Allocating storage memory based on future file size or use estimates |
US9165015B2 (en) * | 2010-07-29 | 2015-10-20 | International Business Machines Corporation | Scalable and user friendly file virtualization for hierarchical storage |
CN107168802A (zh) * | 2017-05-18 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种云存储中小文件的合并方法及装置 |
CN108319518B (zh) * | 2017-12-08 | 2023-04-07 | 中国电子科技集团公司电子科学研究院 | 基于循环神经网络的文件碎片分类方法及装置 |
CN108462605B (zh) * | 2018-02-06 | 2022-03-15 | 国家电网公司 | 一种数据的预测方法和装置 |
CN108446340B (zh) * | 2018-03-02 | 2019-11-05 | 哈尔滨工业大学(威海) | 一种面向海量小文件的用户热点数据访问预测方法 |
CN110390342A (zh) * | 2018-04-16 | 2019-10-29 | 北京京东尚科信息技术有限公司 | 时间序列预测方法和装置 |
CN108764460A (zh) * | 2018-05-16 | 2018-11-06 | 华中科技大学 | 一种基于时间卷积和lstm的时间序列预测方法 |
CN108876458A (zh) * | 2018-06-19 | 2018-11-23 | 湖北国网华中科技开发有限责任公司 | 一种基于网络爬虫的商品动态预测方法及系统 |
CN109189323B (zh) * | 2018-07-06 | 2019-12-17 | 华为技术有限公司 | 扩容方法及设备 |
CN109471847B (zh) * | 2018-09-18 | 2020-06-09 | 华中科技大学 | 一种i/o拥塞控制方法及控制系统 |
CN110188920A (zh) * | 2019-04-26 | 2019-08-30 | 华中科技大学 | 一种锂电池剩余寿命预测方法 |
CN110222149B (zh) * | 2019-05-17 | 2021-07-27 | 华中科技大学 | 一种基于新闻舆情的时间序列预测方法 |
CN110351291B (zh) * | 2019-07-17 | 2021-07-13 | 海南大学 | 基于多尺度卷积神经网络的DDoS攻击检测方法及装置 |
CN110334881A (zh) * | 2019-07-17 | 2019-10-15 | 深圳大学 | 一种基于长短记忆网络与深度数据清洗的金融时间序列预测方法,装置及服务器 |
-
2019
- 2019-12-16 CN CN201911291844.5A patent/CN110968272B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776967A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于时序聚合算法的海量小文件实时存储方法及装置 |
CN107436736A (zh) * | 2017-08-08 | 2017-12-05 | 郑州云海信息技术有限公司 | 一种hdfs中文件的存储方法及装置 |
CN109164980A (zh) * | 2018-08-03 | 2019-01-08 | 北京涛思数据科技有限公司 | 一种时序数据的聚合优化处理方法 |
CN109240999A (zh) * | 2018-08-24 | 2019-01-18 | 浪潮电子信息产业股份有限公司 | 一种基于小文件的自动化聚合打包方法及系统 |
CN110515920A (zh) * | 2019-08-30 | 2019-11-29 | 北京浪潮数据技术有限公司 | 一种基于Hadoop的海量小文件存取方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110968272A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110968272B (zh) | 基于时间序列预测的海量小文件存储性能优化方法及系统 | |
CN111125411B (zh) | 一种深度强相关哈希学习的大规模图像检索方法 | |
CN113190699A (zh) | 一种基于类别级语义哈希的遥感图像检索方法及装置 | |
CN108446340A (zh) | 一种面向海量小文件的用户热点数据访问预测方法 | |
CN114218292B (zh) | 一种多元时间序列相似性检索方法 | |
US11966827B2 (en) | Data management forecasting from distributed tracing | |
CN104899326A (zh) | 一种基于二进制多索引哈希技术的图像检索方法 | |
CN111914094A (zh) | 一种基于三元交互的知识图谱表示学习方法 | |
CN106776370A (zh) | 基于对象关联性评估的云存储方法及装置 | |
CN115718826A (zh) | 图结构数据中的目标节点分类方法、系统、设备及介质 | |
CN116112563A (zh) | 一种基于流行度预测的双策略自适应缓存替换方法 | |
CN108829343B (zh) | 一种基于人工智能的缓存优化方法 | |
CN108647295B (zh) | 一种基于深度协同哈希的图片标注方法 | |
CN116561173B (zh) | 用关系图注意力神经网络选择查询执行计划的方法及系统 | |
CN113435101A (zh) | 一种基于粒子群优化的支持向量机停电预测方法 | |
CN111832645A (zh) | 基于离散型乌鸦差分协同搜索算法的分类数据特征选择方法 | |
Dai et al. | Vectorizing disks blocks for efficient storage system via deep learning | |
CN113268458B (zh) | 一种基于代价敏感分类算法的缓存方法及系统 | |
CN115587125A (zh) | 元数据管理方法及装置 | |
CN115310004A (zh) | 融合项目时序关系的图神经协同过滤推荐方法 | |
CN114565063A (zh) | 一种基于多语义提取器的软件缺陷预测方法 | |
CN113704220A (zh) | 一种基于LSTM和遗传算法的Ceph参数调优方法 | |
Ma et al. | Feature selection using forest optimization algorithm based on contribution degree | |
Lee et al. | K2vtune: Automatic Database Tuning with Knob Vector Representation | |
Wang et al. | Semisupervised Bacterial Heuristic Feature Selection Algorithm for High‐Dimensional Classification with Missing Labels |
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 |