摘要:随着勘探新技术的发展,机器学习应用越来越多,地震数据体量越来越大,占用储存资源不断增加。作为数据库底层基本技术,冷热数据分离技术将数据分为热数据和冷数据。基于缓存替换策略,结合LRU算法和LFU算法,根据地震数据处理规律,设计了一种针对机器学习的地震资料处理中地震数据的冷热分离策略。在地震数据上应用冷热数据分离技术能有效降低存储硬件成本,并可减轻HPC集群的储存负担,提升数据处理效率。
关键词:冷热数据分离,地震数据处理,缓存替换策略
0引言
勘探地震资料处理领域对地震数据进行冷热数据分离的需求日益增长[1],原因有两个:(1)随着勘探地震技术发展,相关数据呈爆发式增长,对存储资源的要求越来越高;(2)随着机器学习技术在勘探地震资料处理中的不断发展应用,训练集以及网络参数等大体量数据的使用率明显上升。相较于传统地震资料处理中数据的“连续性”行为(即上一次处理得到的结果数据是下一个流程的初始数据),与机器学习技术应用相关的数据使用重复率更好,已存在进行冷热数据分离的需求。
冷热数据分离是一种数据库管理的基本技术,它的基本思路是依据数据的访问频次和价值将数据划分为“热”和“冷”两类。所以不同判断数据价值的思路也演变出了不同的冷热数据分离算法。冷热数据分离技术的诞生是为了应对数据量的快速增长和数据类型的不断细分[2]。例如,在企业的数据中心中,大约只有20%的数据是经常被访问的,其余的数据访问频次则迅速下降[2]。因此,将不同类型的数据存储在不同介质上,可以充分提高存储利用效率。热数据由于访问频次高,效率要求高,因此采用就近计算和部署;冷数据访问频次低,效率要求低,可以进行集中部署。在大规模存储池中,可以通过压缩、去重等方式降低数据的存储成本。
目前,较常见的冷热分离方案是将冷热数据分离到两套具有不同存储特性、访问方式的系统中[2]。缓存替换策略是一种优化指令或算法,用于管理计算机上存储的信息的高速缓存[3]。其目标是提高缓存的命中率,即在缓存中找到需要数据的概率,其思想常用于冷热数据分离。常见的缓存替换策略有以下几种:(1)最近最少使用(least recently used,LRU):每次替换最久未被访问的数据,该算法假设最近一段时间被访问次数最少的数据在将来被访问的可能性最小[4];(2)先进先出(first in first out,FIFO),每次替换最先进入的数据,该算法认为最先进入的数据在将来被访问到的可能性最小;(3)最不经常使用(least frequently used,LFU),每次替换访问次数最小的数据,该算法假设最近一段时间被访问次数最小的数据在将来被访问的可能性最小[4];(4)随机替换(random),从现存数据中随机选择一个缓存元素进行替换,该算法不需要维护历史访问记录的任何信息,实现上简单高效,但命中率通常一般[4]。
本文基于缓存替换策略,结合LRU算法和LFU算法[3],根据地震数据处理规律,实现了针对地震数据的冷热分离策略。
1缓存替换策略简介
缓存替换算法用于决定缓存系统中哪些数据需要被替换或删除,主要目的是挖掘程序访问数据的时间局部性,尽可能地将未来最有可能被访问的数据保留在缓存中[4],以提高缓存命中率并降低系统延迟。其思想用在大体量数据上即能实现冷热数据分离。时间与频率是常用缓存淘汰策略考虑的两个维度[3],接下来主要从这两个维度介绍缓存替换算法。
基于时间维度的识别方法:这类算法根据储存的时间先后赋予数据“冷”或“热”的属性。这类算法通常使用LRU算法来量化数据的冷热程度,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。LRU算法的原理如图1所示。LRU算法的实现通常使用一个哈希表和一个双向链表。哈希表用于快速查找到结点所在位置,双向链表用于描述数据的使用顺序。当需要淘汰数据时,LRU算法会选择最久未被访问的数据进行淘汰。然而,基于时间维度的识别方法有一定的局限性,其他维度的影响并未考虑在内,不能区分线性访问模式下的热点数据。其他维度例如数据的访问频率,通常将一段时间内被频繁访问的数据视为热数据,但如果该数据为最早存储的数据,按照时间维度会被识别为冷数据。因此,在许多流行的信息业务场景中,单纯以时间维度判别方法往往无法准确反映数据的冷热程度。
基于频率维度的识别方法:这类算法根据数据在一定时间内的访问频率赋予数据“冷”或“热”的属性,其核心思想是按照历史数据访问频率程度维护数据的使用优先顺序,即“淘汰掉使用频率最低的数据”。如果存在相同使用频率的数据,则再根据使用时间间隔,将最久未使用的数据淘汰。常用的基于频率维度的算法有LFU,即最不频繁使用。如图2所示,LFU算法的实现通常需要两个哈希表和多个双向链表。一个哈希表用于存储key值与节点之间的对应关系,另一个哈希表用于存储每个频次对应的所有节点信息。双向链表用于描述数据的使用顺序。与LRU算法类似,LFU算法也存在一定的局限性,它只考虑了数据访问频率这一维度,不考虑数据入库时间对冷热程度数据的影响。因此,LFU算法没有能力辨别早入库的高频访问数据在目前是否仍是高频访问数据。
这两种算法各有优势,如果对于热点数据的查询要求比较高,最好采用LFU算法作为内存淘汰策略。如果没有较高的热点数据要求,则可以选择实现更为简单的LRU算法。地震数据单个处理流程中并不存在高热点数据,处理节点中各类数据使用频次相当,但在不同处理流程中不同类型的数据使用频次不同,有的数据使用频次会大幅高于其他数据,例如应用于机器学习算法中训练数据使用频次会大幅度高于其他数据。所以,地震数据的冷热数据分离需求多样。因此,本文选择结合使用LRU和LFU算法以达到高效分离勘探地震数据处理中的冷热数据。
2基于LRU和LFU算法的地震数据冷热分离
由于地震资料处理时同时存在传统线性流程和机器学习非线性流程,相关数据流也分别呈现出时间维度和频率维度上的冷热数据特征。因此,单独使用基于LRU算法或基于LFU算法的冷热数据分离技术难以有效划分地震资料处理中的冷热数据。
本文使用一种自适应的混合LRU-LFU算法进行地震资料处理中冷热数据分离[5]。该算法计划使用LRU和LFU在时间和频率两个维度以共轭的方式分离冷热数据。具体算法流程为:
(1)设置LRU链表缓存最近访问了一次的数据页、LFU链表缓存访问了n次的数据页与辅助链表记录以上两个链表淘汰的数据信息。其中LRU链表和LFU链表组成一个缓存区用于动态识别数据冷热程度,两者长度根据辅助链表中的数据页信息的时效性和频率性自适应调整。需要注意的是,辅助链表并不储存数据本体,仅存放数据页面信息。算法结构如图3所示。
(2)作为缓存区,LRU链表和LFU链表分别根据自身属性缓存相关数据页。首次进入LRU链表的数据页命中次数ref被设为1,置于链表首部,然后随着其他数据页的加入不断向后移动。当某个数据页的命中次数达到阈值n时,移动该数据页至LFU链表的首部。LFU链表中的阈值n根据非线性地震资料处理流程中的迭代次数(例如机器学习的训练epoch参数)设置。
(3)当缓存区满时且命中LRU链表中的数据页,若该数据页命中次数ref等于阈值n,将LFU尾部数据页淘汰,记录其信息至辅助链表首部并置状态1。然后将LRU中被命中的ref等于n的数据页移动至LFU链表首部;若该数据页命中次数小于阈值n,将该数据页至LRU链表首部且命中次数ref自加。
(4)当缓存区满且命中数据页不在LRU链表和LFU链表缓存区时,若辅助链表中也无命中,则淘汰LRU链表尾部数据页并录入辅助链表置状态0,置命中数据于LRU链表头部,命中次数ref设1。
(5)自适应调节:当缓存区满,命中数据页不在LRU链表和LFU链表缓存区但命中辅助链表,若状态为0,表明该数据曾淘汰自LRU链表,则增加LRU链表长度1(LFU链表长度减1),然后移动命中数据至LRU链表;若状态为1,表明该数据曾淘汰自LFU链表,则增加LFU链表长度1(LRU链表长度减1),然后移动命中数据至LFU链表。
对冷热数据进行判定识别的最终目的,是根据数据温度的不同,将其存放在不同的存储介质上,以提高优质存储空间的利用率[6]。地震数据处理中的简单线性流程中的单数据命中次数一般不会超过3次,符合LRU算法处理范围,一般判定正在处理的初始输入数据和输出数据为热数据,初始输入数据前的数据,例如去噪前的含噪数据,为冷数据。对于传统迭代类算法,例如非线性反演算法,其中作为误差计算单元的地震记录的使用频次远高于其他单次存在的数据,符合LFU算法处理范围。LRU-LFU混合算法能够有效区分相关数据。
3结语
本文以地震数据冷热分离为背景,简要介绍了缓存替换策略及其中LRU和LFU两种算法,然后根据地震数据处理情况,结合两种缓存替换算法的优点,将LRU和LFU算法结合应用在地震数据冷热分离中,实现了自适应的地震数据储存算法,具有一定的应用价值。此方法相比其他冷热数据分离算法更简化有效,在石油勘探数据中心类似使用场景也有一定的参考意义。
参考文献:
[1]曾薇,杨乐,谭颖.网络存储技术在地震数据存储中的应用[J].震灾防御技术,2011,6(3):335-342.
[2]夏铭伟,付裕.新一代金融级交易型分布式数据库GoldenDB[J].金融电子化,2019(1):88-89.
[3]解玉琳.基于数据温度的冷热数据识别机制研究[D].杭州:浙江大学,2019.
[4]朱闯.云原生存储的缓存设计与实现[D].济南:山东大学,2023.
[5]梁懿,陈又咏,李森等.自适应业务场景的数据库冷热数据识别算法[J].现代电子技术,2022,45(7):107-111.
[6]许佳欣.面向冷热数据的存储机制研究与实现[D].成都:电子科技大学,2021.
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/ligonglunwen/80933.html