基于Kalman算法的大数据存储架构可扩展性优化算法
2023-12-13韩镇阳
韩镇阳,张 磊,任 冬
(武警陕西省总队,陕西 西安 710116)
0 引言
大数据存储架构是指在存储、处理和分析大规模数据时所采用的技术架构。从广义角度分析,大数据存储架构是用于提取和处理海量数据并针对业务目的进行分析整理的整体系统,可视作基于机构业务需求的大数据解决方案的蓝图[1]。大数据存储架构通常包括以下几个主要组成部分:数据存储层、数据处理层、数据分析层和数据可视化层。随着大数据时代的来临,信息资源数据的体量越来越庞大,大数据存储架构面临着巨大的挑战[2]。传统的大数据存储架构通常采用中央式存储方式,这种方式在处理大规模数据时存在着很多局限性,例如可扩展性差、容错能力低等问题[3]。为了应对挑战,研究者们提出了大数据存储架构可扩展性优化算法,对大数据存储架构进行优化,以提高其性能和可扩展性。当前,传统的大数据存储架构可扩展性优化算法在实际应用中以批处理为主,缺乏实时的支撑。面对需要快速响应和处理的应用场景,如实时分析、实时推荐等,仍然存在缺陷,且对业务支撑的灵活度效果不佳[4]。
Kalman算法是一种优秀的估计算法,它具有很好的自适应性和鲁棒性,能够对复杂系统进行准确的估计和预测[5]。在大数据存储架构中,Kalman算法可以用于数据的优化和预测,采用分布式存储方式,通过将数据分散到多个节点上进行存储和处理,提高数据的可扩展性和容错能力,提高数据存储和处理的效率。基于此,本文引入Kalman算法来开展大数据存储架构可扩展性优化算法研究。
1 大数据存储架构可扩展性优化算法研究
1.1 大数据存储架构内存布局设计
内存布局对后续架构可扩展性优化起到了至关重要的作用。首先,大数据存储架构内存布局设计中,需要综合考虑架构与多核环境内存布局之间的兼容性。本文设计的大数据存储架构内存布局示意图如图1所示。
图1 大数据存储架构内存布局示意图
47位地址以下部分均为用户态地址空间,按照应用性能的不同,将其划分为了7个不同的地址,其中,内存映射区域地址与堆地址之间的一段地址未被存储架构使用,因此将其标记为内存空洞[6]。从大数据存储架构配置文件中读取相关的用户配置信息,定义架构分布式共享内存的物理资源与协议[7]。其次,基于线程信息的地址段,存储架构中所有线程的运行状态信息(以及SNOP运行过程中产生的日志)提供大数据存储架构运行所需的同步原语状态信息,在不同机器上访问堆和栈内存。
1.2 设计分布式共享内存协议
为提高架构的容错性,在设计分布式共享内存协议前,需要设计内存协议本身所使用的库名与代码,避免协议运行中出现数据存储无限递归现象。共享内存协议使用库名及代码如表1所示。
表1 分布式共享内存协议使用库名及代码
通过表1获取到大数据存储架构分布式共享内存协议本身所使用的库,避免协议在机器同步过程中引发无限递归。在此基础上,设计大数据存储架构分布式共享内存协议,如表2所示。
表2 大数据存储架构分布式共享内存协议
按照表2所示的协议权限对大数据存储架构内存页进行共享操作,展现协议的基本逻辑。基于同步操作机制,以确保各个进程在访问共享内存时能够正确地协同工作,即便节点发生故障仍然能够正确地访问和更新共享内存中的数据,提高大数据存储架构的容错性[8]。
1.3 基于Kalman算法优化大数据存储架构可扩展性
在提高了大数据存储架构容错性的基础上,利用Kalman算法对大数据存储架构的可扩展性进行全方位的优化。
首先,收集大数据存储架构存储节点的负载数据,包括CPU利用率、内存利用率、磁盘IO等。根据收集到的架构历史数据,利用Kalman算法,建立存储节点负载预测模型,对大数据存储架构的参数与状态作出估计[9]。Kalman算法是一种线性动态系统的最优估计方法,其利用系统各时刻的测量值求得系统的状态值,并不断更新。Kalman算法主要由两个步骤组成:预测步骤和更新步骤。
利用Kalman算法估计大数据存储架构的参数与状态的过程如下:
(1)定义系统模型。首先,定义一个用于描述存储节点负载的系统模型,通常包含一些状态变量,包括CPU利用率、内存利用率、磁盘IO等。
(2)初始化状态估计和协方差矩阵。在开始循环之前,初始化状态估计向量(即系统的初始状态)和协方差矩阵。其中,协方差矩阵用于描述系统状态估计的误差。
(3)预测。在每个时间步内,使用系统模型和当前状态估计来预测下一个时间步的状态。在大数据存储架构中,这个步骤可能涉及对存储节点负载的预测。预测状态估计如下:
X(k+1|k)=F(k)×X(k|k)+G(k)×U(k)
(1)
其中,X(k+1|k)表示在k+1时间步内基于k时间步信息的预测状态,F(k)表示状态转移矩阵,G(k)表示控制矩阵,U(k)表示控制输入。
(4)更新步骤。使用测量值(即实际负载)来更新对系统状态的估计。这涉及将预测状态与实际测量值进行比较,然后根据比较结果调整状态估计。调整的幅度取决于测量误差协方差矩阵和过程噪声协方差矩阵。
更新状态估计如下:
X(k+1|k+1)=
X(k+1|k)×(1-H(k+1))+K(k+1)×Z(k+1)
(2)
更新协方差矩阵如下:
P(k+1|k+1)=(I-K(k+1)×H(k+1))×P(k+1|k)
(3)
其中,H(k)、Q(k)、K(k)均表示系统模型和噪声模型的参数,Z(k)表示测量值,P(k+1|k+1)和P(k+1|k)表示协方差矩阵,I表示单位矩阵。
(5)循环执行。在每个时间步重复执行预测步骤和更新步骤,直到得到最优估计值。
根据最优估计值,衡量Kalman算法估计结果的好坏程度,估计值与实际值越接近越好,利用该值代替大数据存储架构的实际值[10]。在此基础上,提取与大数据存储结构存储节点负载相关的特征,描述存储节点负载的变化规律和趋势。根据Kalman算法预测结果,对存储节点的负载进行动态调整,以实现负载均衡。若发现负载不均或者出现其他问题,及时进行干预和处理。基于存储节点负载动态调整结果,对大数据存储架构进行优化,以提高其可扩展性。优化中包括增加架构存储节点、优化数据存储策略、改进数据处理流程等。定期重复以上步骤,以实现大数据存储架构的可扩展性持续优化。
2 实验与结果分析
2.1 实验准备
为了验证上述提出的基于Kalman算法的大数据存储架构可扩展性优化算法的可行性及可扩展性优化效果,开展了如下实验测试分析。
首先,基于该算法的运行需求及运行特征,创建实验所需的测试环境。实验环境配置如表3所示。
表3 大数据存储架构可扩展性优化算法实验环境配置
服务器节点之间通过以太网交换机连接,形成一个星型拓扑结构,服务器节点与交换机之间的网络连接采用双绞线或光纤连接,以确保数据传输的稳定性和可靠性。创建好优化算法实验测试环境后,选取实验所需的工具,包括数据预处理工具与数据可视化工具两种。其中,数据预处理工具采用Python Pandas库;数据可视化工具采用Matplotlib。完成实验测试准备后,应用上述本文提出的基于Kalman算法的大数据存储架构可扩展性优化算法,在进行实验之前,确保所有设备和软件都已正确安装和配置后,开展实验测试分析。
2.2 优化结果分析
完成以上实验测试准备后,接下来,对大数据存储架构可扩展性优化结果作出全方位、多维度的分析。使用公开可用的ImageNet数据集,该数据集是一个宝贵的大数据资源,包含了超过1 400万的图像,涵盖了2万多个类别。
为了增强可扩展性优化结果的说服力,将上述基于Kalman算法的大数据存储架构可扩展性优化算法设置为实验组,将文献[1]中提出的基于分布K-means算法的可扩展性优化算法、文献[2]中提出的基于ARM架构的均衡计算型服务器数据存储系统优化算法分别设置为对照组1与对照组2,以对比分析的形式,判断本文提出的算法是否可行。
三种优化算法的大数据处理流程为:将大数据集内的海量数据分散到4个配置相同的高性能服务器上,以分散的方式进行处理,使用三种优化算法对应的数据处理模式,对大数据进行分析和计算。
选取大数据存储架构可扩展性优化后的资源利用率作为此次实验测试的评价指标,其计算公式如下所示:
(4)
其中,MP表示大数据存储架构运行过程中实际使用的资源量;M表示大数据存储架构运行过程中所能使用的最大资源总量。大数据架构资源利用率越高,说明系统对服务器资源的利用越充分,可扩展性能越好,能够更加高效地处理大规模数据,反之同理。
为避免实验测试结果存在偶然性,进行了6组实验,将6组实验分别标号为A~F。测定三种优化算法应用后大数据存储架构资源利用率并作出客观对比,结果如图2所示。
图2 大数据存储架构资源利用率对比结果
在6组实验测试中,应用本文提出的基于Kalman算法的大数据存储架构可扩展性优化算法后,大数据存储架构的资源利用率始终高于另外两种算法,均达到了96%以上,最高达到了98%,这意味着大数据存储架构在处理或管理数据方面效率更高,能够处理更多的工作负载。由此可知,本文提出的优化算法具有较高的可行性,架构可扩展性优化效果优势显著,对服务器资源的利用更加充分,能够更高效地处理大规模数据。
产生上述结果主要有如下三点原因:
(1)优化内存布局:本文算法综合考虑了大数据存储架构与多核环境内存布局之间的兼容性,通过合理设计架构内存布局,可以更好地满足多核环境下的数据存储和访问需求,从而提高了内存利用率。
(2)设计分布式共享内存协议:本文算法设计了一种分布式共享内存协议,确保各个进程在访问共享内存时能够正确地协同工作,避免了冲突和数据不一致性问题,提高了存储架构的容错性和整体性能。
(3)动态调整存储节点负载:利用Kalman算法可以动态地调整存储节点的负载,根据实际需求和系统状态来合理分配存储资源,避免了资源浪费和资源瓶颈的产生,进一步提高了资源利用率和系统性能。
3 结束语
本文通过引入优秀的Kalman算法,有效地提高了大数据存储架构的性能和可扩展性。该优化算法利用Kalman算法的自适应性和鲁棒性,对海量大数据进行优化和预测,提高了数据处理的效率和准确性。同时,采用分布式存储方式,将数据分散到多个节点上进行存储和处理,提高了数据的可扩展性和容错能力。该算法的研究和应用,为大数据存储和处理领域的发展提供了新的思路和方法,具有较为重要的理论意义和实践价值。