王西超,高 颂,浦 乐,曲晓雷
(1 上海电机学院, 上海 201306; 2 河南科技大学, 河南洛阳 471003;3 中国空空导弹研究院, 河南洛阳 471000; 4 沈阳飞机设计研究所, 沈阳 110035)
导弹全寿命周期的数据涉及导弹从论证、研制试验到服役部队后的日常管理、维护保养、操作使用、退役报废等导弹全寿命周期的方方面面。随着导弹全寿命周期数据量的激增,包括导弹论证研制阶段的基础数据,使用维护阶段的业务数据和修理数据以及各监测指标的过程数据等多个维度的数据。一方面由于导弹型号多、数量多、各组成部件多,随着数据不断采集,导弹数据量不断膨胀,数据量达到数百TB级别;另一方面,采集到的数据具有多样化特点,包括文本、声音、网页、图片、视频等各种格式,同时不同阶段的数据通过不同的信息系统进行采集,存储在不同数据库系统形成结构化数据,网页日志数据为半结构化数据,大量导弹图片、培训维修视频为非结构化数据。
数据存储系统作为导弹全寿命周期数据管理系统的核心部分,直接影响着导弹数据管理系统的质量。目前研究较为成熟的大数据分布式存储系统有分布式文件系统(File System)和分布式数据库(Database)系统两大类。File System主要面向非结构化数据的存储管理,Database主要面向半结构化/结构化数据的存储和查询管理,这些数据存储技术都能较好地在导弹全寿命周期数据管理系统中应用于结构化数据存储和非结构化数据存储。常用的Database有SQL Server、Oracle、DB2、MySQL等,在结构化数据存储方面效果较好[1-3],但在图像等非结构化数据存储方面效果不佳,且在大数据存储方面不太理想[4-6]。File System的使用以Hadoop HDFS为主[7-12],Hadoop HDFS能够满足导弹全寿命周期大数据的存储和大文件存储效率,并且在存储图像等非结构化数据效果显著,但是在小文件数据存储、低延迟访问数据方面性能变差[13-20]。
基于以上分析,文中以导弹全寿命周期数据为研究对象,结合数据存储要求,在探究不同种类数据访问特性的基础上,提出一种基于不同缓存调度策略的大数据四层次分布式存储系统。该系统由大数据分布式存储层、典型缓存策略层、典型数据访问模式层和导弹上层分布式应用层构成。可为以后导弹全寿命周期的数据存储研发提供理论参考。
导弹全寿命周期大数据分布式存储的整体框架如图1所示。其设计思想是,针对导弹全寿命周期大数据特点,设计一个分层式缓存调度框架,将不同的数据访问模式和缓存策略及上层的导弹全寿命周期大数据应用融合起来,从而加速上层导弹全寿命周期大数据应用的数据读写性能。
图1 导弹全寿命周期大数据分布式存储框架
第一层为导弹上层分布式应用层,包含“Deep Learning”、“Machine Learning”、“SQL Qurey”和“Streaming Processing”等典型应用。第2层为典型数据访问模式层,包含“Recently-friendly”、“Frequency-friendly”、“Loop”和“Mixed”等数据访问模式。第一层的每种应用均可调用该层数据访问模式中的一种或若干种,同时该层的数据访问模式又可调用第三层的缓存调度策略。第三层为典型缓存调度策略层,该层依据第二层的不同数据访问模式,设计不同的缓存调度策略,达到最优的存储效果。第四层为分布式分层次存储系统层,采用Alluxio大数据存储系统,Alluxio支持基于MEM-SSD-HDD(内存-固态盘-硬盘)的分层式大数据分布式存储管理,满足导弹全寿命周期的大数据存储和快速存储。
在本层的4个典型应用中, “Deep Learning”主要处理遥感影像、靶试视频、音频等非结构化图像数据;“Machine Learning”主要处理一些需要复杂算法处理的数据,如K-Means算法、PageRank算法等;“SQL Qurey”和“Streaming Processing”主要处理传统的文字、数值等结构化数据。
导弹全寿命周期涉及多种不同类型数据,并且数据的访问频次也各不相同,导弹全寿命周期数据主要有全弹测试数据;组件测试数据;产品图片、残骸图片、遥感影像、试验大纲、试验任务书、分析报告、靶试视频;组件协议、全弹协议、设计文档、结构图纸、电路图纸、电气图纸;靶试试验数据、系留试验数据等。
经分析,可以将以上多种数据类型按照数据访问模式分为以下4类:
1)未来会被大概率访问的数据(Recently-friendly)
这类数据是指被当前访问之后,在短期内(如3天内)会被大概率访问的数据,主要包括全弹测试数据(常态工作数据、高低温工作数据;随机振动数据、自主飞振动数据、挂机振动数据、其它振动数据;导弹换装数据、开箱测试数据)和组件测试数据(温变循环数据、温度存储数据;功能振动数据、耐久振动数据)。其中的组件包括:导引头、飞行控制组件、电源组件、舵机、引信、安全和解除保险机构、战斗部、发动机、数据链、遥测组件等。其基本形式为:
(a1,a2,…,ap,ap,ap-1,…,a2,a1)N
(1)
式中:p为被访问数据块的个数;N为循环访问的次数。
这种数据访问模式的数据局部性较好,即当前被访问的数据在近期内再次被访问的概率很大,典型包括全弹测试数据和组件测试数据,这种数据访问模式是导弹全寿命周期大数据存储中最为常见的数据访问模式。
2)被不均匀频率访问的数据(Frequency-friendly)
这类数据是指数据块中的数据会被不均匀的频率访问,如导弹图片、导弹残骸图片以及靶试视频、遥感影像等图像视频类数据会被高频次访问。而试验大纲(内场联试与交付试验大纲、靶试鉴定试验大纲、适配性试验大纲等)、试验任务书、分析报告(试验数据分析报告、排故分析报告)等文本类数据则会被少量频次访问。在这种情况下,缓存更加频繁被访问的数据块将会带来更大的访问性能提升。其基本形式为:
((a1,a2,…,ap)M,Pε,(b1,b2,…,bq))N
(2)
式中:p表示在一轮访问中多次被访问的数据块个数;M表示这p个数据块被循环访问的次数,即该p个数据块在一轮访问中被循环访问M次;q表示在一轮访问中仅被访问一次的数据块个数;Pε表示该q个数据块被访问的概率,即该q个数据块在一轮访问中被访问一次的概率为Pε;N为整个过程被循环访问的次数。当p
3)被循环访问的数据(Loop)
这类数据是指会被不断循环访问的数据,包括全弹协议(导弹总线信息交换协议、导弹与载机通信协议)、组件协议(发动机信息协议、舵机信息协议、飞控信息协议、导引头信息协议、引信战斗部信息协议、数据链信息协议、卫星定位信息协议等)的协议类数据,以及设计文档(设计方案、计算报告、设计报告、评估报告、设计说明)、结构图纸、电路图纸、电气图纸等文本类数据等。其基本形式为:
(a1,a2,…,ap-1,ap)N
(3)
式中:p表示被循环访问的数据块个数;N表示循环访问的次数。
4)混合性数据(Mixed)
这类数据类型包含前3种类型数据的混合,主要包含靶试试验数据(高空打低空、低空打高空、抗箔条干扰、抗拖拽干扰、长弹道、非全仪表、抗支援式干扰、抗数据链干扰、抗卫星定位干扰、大离轴、低空下视小目标、抗红外干扰)、系留试验数据,在靶试试验前,用相同载机与目标机,在相同试验条件下挂系留弹进行模拟靶试试验,仅系留弹没有火工品(发动机、战斗部),载机在构成发射条件后发射,后续按弹道跟踪、截获目标。系留试验可以评估靶试风险情况。其基本形式为:
((a1,a2,…,ap,ap,…,a2,a1)N1((a1,a2,…,ap)M,
Pε,(b1,b2,…,bq))N2)N
(4)
式中:p表示被循环访问的数据块个数;M表示循环访问这p个数据块的次数;q表示在一轮访问中仅被访问一次的数据块个数;Pε表示该q个数据块被访问的概率;N1表示以第一种模式访问数据块的循环次数;N2表示以第二种模式访问数据块的循环次数;N表示整个访问过程循环的次数。
不同的数据访问模式需要不同的缓存调度策略才能最优化存储效率,在MEM-SSD-HDD分层式存储场景下,需要研究内存缓存调度策略,尽可能提高数据在内存缓存层中访问的命中率,发挥内存数据存储在读写访问性能上的优势。
1)LRFU(least recently/frequently used)缓存策略
LRFU融合了LRU(least recently used)策略和LFU(least frequently used)策略。当数据替换发生时,LRFU替换具有最小属性值的数据块,该属性值表示数据块会在不久的将来被访问到的概率大小。通过权重参数的调节,LRFU可以转换为LRU或LFU。
2)基于条件变分编码器的缓存策略(CBS)
在处理靶试视频、遥感影像等图像数据时,深度学习的准确率已经越来越高。文中采用改进的变分自动编码器(即基于条件变分编码器)来进行靶试试验视频轨迹预测,变分自动编码器是一个应用在潜在变量模型上的生成模型,是无监督学习复杂分布的主要方法。靶试试验时靶机的移动取决于靶机的功能和环境,这些因素是一条轨迹的潜在变量。因此,可以认为靶机移动轨迹是一个潜在变量模型,利用CBS缓存策略,基于靶机已经过的N个轨迹点估计即将到达的下一个预定轨迹点的概率分布。在真实的靶机GPS轨迹数据上预测准确率能达到79%。
3)自适应内存缓存策略(AMC)
遥感影像数据量大,存储时耗费资源较多,当一次写入大块的遥感影像数据时,HDFS速度较慢,采用基于历史数据访问推理和空间关系的AMC缓存策略,为海量的遥感影像数据进行实时的存储支持。
4)缓存权重替换策略(CWS)
在基于MEM-SSD-HDD的分层式大数据分布式存储方案中,需要分布式计算引擎基于MEM的抽象概念弹性分布式数据集(RDD)产生高效的数据处理能力,其方法是在数据处理过程中当由于MEM空间不足时替换掉部分RDD,以解决Hadoop的数据处理能力低下问题。典型的替换算法(LRU)仅考虑最近是否使用RDD分片,而忽略全部其它因素,WR缓存替换策略则侧重于改进RDD的权重参数。文中在替换RDD阶段考虑数据的历史访问次数与计算成本,提出了缓存权重替换策略(CWS)来优化RDD选择策略,以减少处理大量小数据时的执行时间。
该层采用Alluxio大数据存储系统,其中 MEM-SSD-HDD按照性能高低组织在一起,性能越高的设备离CPU越近。访问比较频繁的数据(如全弹测试数据、组件测试数据等)会被优先存储到MEM或者SSD中,而访问频次较低的数据(如试验大纲、试验任务书和分析报告等)则会被移到访问速度较低的HDD层。由于MEM和SSD价格较高、配置容量较小,因此该层随着数据访问的变化,通常需要对存储在MEM和SSD中的数据,依据第三层相应的缓存替换策略进行替换。
为了验证所设计的导弹全寿命周期四层次大数据存储系统效果,针对不同算法、不同数据访问模式和不同缓存策略进行试验,图2是在真实GPS轨迹数据、利用深度学习算法、Frequency-friendly数据访问模式和CBS缓存策略下,请求文件大小从50 MB 到350 MB的缓存效用试验,试验结果显示:在保证平均下载速度和缓存命中率的前提下,CBS缓存策略比MCBS缓存策略和RWBS缓存策略具有更高的缓存效用。
图2 不同缓存策略的缓存效用
图3是单节点8G内存时不同算法的执行情况对比。其中,图3(a)是在全弹测试数据集和组件测试数据集在内存空间充足条件下对应的执行时间,可以看出CWS 算法在计算过程中减少了RDD的使用次数,相比WR算法,时间缩短2%;图3(b)是在全弹测试数据集和组件测试数据集在内存空间充足条件下对应的内存占用率,可以看出CWS算法相比WR算法,虽然时间提高不大,但是内存占用率降低了32%,这在处理较大数据集时效果显著。
图3 单节点8G内存时不同算法的执行时间和内存占用率
根据导弹全寿命周期的大数据存储要求,提出了一种基于不同数据访问模式和缓存调度策略的大数据四层次分布式存储系统,包括大数据分布式存储层、典型缓存策略层、典型数据访问模式层和导弹上层分布式应用层,并对其结构特点、工作原理进行了阐述与理论分析。试验结果表明:该系统可以实现导弹全寿命周期大数据的稳定快速存储;存储较小数据时的平均时间高于WR算法2%,内存占用率占比降低32%;深度学习框架下的存储效率具有更大的缓存命中率。