基于机器学习的缓存与分层技术在现代数据存储系统中的应用:综述
《ACM Computing Surveys》:Machine Learning-Based Caching and Tiering in Modern Data Storage Systems: A Survey
【字体:
大
中
小
】
时间:2026年05月04日
来源:ACM Computing Surveys
编辑推荐:
摘要
现代数据存储系统包含众多媒体设备(例如DRAM、NVRAM、SSD和HDD),这些设备被组织成多级缓存和存储层,以优化性能与成本的比例。传统的缓存策略(用于淘汰、 admission和预取)以及数据放置和迁移的分层策略虽然简单,但难以适应现代数据密集型应用程序中观察到的动态
摘要
现代数据存储系统包含众多媒体设备(例如DRAM、NVRAM、SSD和HDD),这些设备被组织成多级缓存和存储层,以优化性能与成本的比例。传统的缓存策略(用于淘汰、 admission和预取)以及数据放置和迁移的分层策略虽然简单,但难以适应现代数据密集型应用程序中观察到的动态和复杂的访问模式。因此,基于机器学习(ML)的策略最近变得流行起来,因为它们能够进行预测并主动优化缓存和分层操作。这些ML技术不仅提高了缓存命中率,减少了延迟,还提供了可扩展且成本效益高的解决方案,能够智能地将数据放置在不同的存储介质上。本文回顾了基于ML的缓存和分层方法的最新进展,探讨了它们的理论基础和实际实现。它还介绍了每种策略类型的常见特征、最受欢迎的基准测试以及典型的评估指标。最后,讨论了新兴趋势,并概述了数据存储系统未来研究的潜在方向。
人工智能摘要(实验性)
该摘要是使用自动化工具生成的,并非由文章作者撰写或审核。它旨在帮助发现、帮助读者评估相关性,并协助来自相关研究领域的读者理解这项工作。它旨在补充作者提供的摘要,后者仍然是论文的主要摘要。完整文章是权威版本。点击此处了解更多信息。点击此处评论该摘要的准确性、清晰度和实用性。这样做将有助于改进和未来的再生成版本。
1 引言
根据IDC在2024年的报告[91],全球创建和消耗的数据量已达到149泽字节,并预计由于机器生成数据的持续增长、社交媒体互动和交易记录,到2028年将以21.5%的复合年增长率增长到394泽字节。因此,现代数据存储系统已经演变为复杂的分布式系统,由多种存储介质设备(如DRAM、NVRAM、SSD和HDD)组成的混合结构[30, 36, 45, 55]。这些系统旨在提高存储效率,同时降低成本,并克服大型、不可预测的数据工作负载所带来的复杂性。
高效的数据管理对于从个人设备到大型数据中心的计算系统的性能至关重要。缓存和存储分层是提高各种计算环境中数据访问和存储效率的关键机制。缓存通过在高速访问层临时存储数据副本来帮助减少访问时间和系统负载,从而避免从较慢的存储中重复读取[54]。分层涉及将数据组织在不同的介质类型中,从高性能、昂贵的SSD到较慢、容量较大的HDD,甚至是异地云存储。这种组织通常基于数据的访问频率及其重要性[4]。
传统的缓存和分层算法,如最近最少使用(LRU)、最不经常使用(LFU)和自适应替换缓存(ARC)[31, 59],由于其简单性和在特定领域和用例中的有效性而被广泛采用。然而,当应用于现代分布式系统时,这些传统策略会遇到挑战,因为现代应用程序(如大数据分析、高性能计算和人工智能)中的数据访问模式多样且复杂[15, 72]。
为了解决这些限制,基于机器学习(ML)的缓存和分层管理方法最近受到了广泛关注[2, 75, 94, 101]。基于ML的缓存使用预测算法来预测数据访问模式或有趣的数据属性(例如,未来的访问频率、下一次访问时间)。然后利用这些预测来做出更明智的决策,关于淘汰、 admission和数据预取,以确保缓存最相关的内容,从而更好地处理现代工作负载的规模和多样性。通过分析历史访问数据并识别数据之间的关系,ML模型可以比传统方法更好地提高缓存命中率并减少延迟,即使在数据关系和访问模式复杂的场景中也是如此。
类似地,基于ML的分层方法使用ML模型根据实时使用模式和预测动态地将数据放置和迁移到适当的存储层,例如下一个要读取的文件偏移量或块[37, 48, 89, 90]。因此,频繁访问的数据位于高速存储中,而较少访问的数据则迁移到更具成本效益的存储中。随着数据访问模式的发展,ML模型的灵活性使得持续优化成为可能,确保存储资源得到有效和高效的利用。
几个关键因素推动了基于ML的缓存和分层的采用。首先,数据量和多样性的增加需要智能的存储管理策略来维持性能和成本效率。其次,现代应用程序中数据访问模式的快速演变要求能够实时优化的自适应系统。最后,ML技术的进步使得开发出能够在复杂访问模式下准确预测和优化存储操作的复杂模型成为可能。这些因素共同推动了基于ML的缓存和分层的采用,解决了性能、适应性、可扩展性和实际应用挑战。表1总结了该领域基于ML的方法的关键优势。
表1. 优势
描述
- 提高的缓存命中率
- 更高的预测准确性和对流量模式的动态适应
- 减少的延迟
- 更快的数据交付和高效的缓存管理
- 优化的资源利用
- 减少的带宽和服务器负载,提高能源效率
- 可扩展性和适应性
- 高效处理大型数据集,适用于分布式系统
- 成本效益
- 降低运营成本和优化的资源分配
目标和范围:本调查将探讨数据存储系统中基于ML的缓存和分层技术的当前状况,研究其理论基础和实际实现。通过回顾最新的研究和实际应用,我们旨在提供对ML如何改进数据存储管理的详细理解。特别是,我们将回顾用于缓存和分层的各种ML算法,包括传统ML(例如决策树、逻辑回归)、强化学习(RL)(例如Q学习、演员-评论家)和深度学习(DL)(例如卷积神经网络、循环神经网络)。我们还将讨论它们的优点和局限性,并强调它们对存储系统性能的影响。最后,我们将介绍用于评估基于ML的缓存和分层技术性能的流行指标和基准测试。
贡献:通过这项全面的调查,我们旨在提供关于基于ML的缓存和分层方法的最新见解,识别该领域的主要挑战,讨论新兴趋势,并概述未来研究的潜在方向,以推动进一步的创新和改进。我们旨在为研究人员、实践者和政策制定者提供资源,帮助他们理解和推进ML的使用,以提高存储系统的效率和性能。
大纲:剩余的手稿组织如下:第2节介绍回顾方法,第3节介绍其他相关的回顾研究。第4节提供关于缓存、存储分层和ML的背景信息。第5节和第6节分别详细描述了基于ML的缓存和分层方法,分为三个ML类别。第7节介绍了缓存和分层分析的关键发现。第8节讨论当前的技术趋势和未来的研究方向,第9节总结了本文。
2 方法论
本调查采用系统文献回顾方法来探索基于ML的缓存和分层在存储系统中的应用。该方法确保了全面和深入的分析,依靠严格定义的标准来选择最相关和最有影响力的研究。该研究遵循Kitchenham的系统文献回顾过程[41],包括基于关键词的搜索、滚雪球抽样和收集信息的分析。
调查方法:为了确保所回顾文献的完整性和科学有效性,主要从可靠的数据库中选择来源,包括IEEE Xplore、ACM Digital Library、SpringerLink和Google Scholar。这种方法保证了能够访问经过同行评审的文章和公认的科学作品。选择的重点是讨论在数据存储系统中缓存和分层背景下ML技术实现或理论应用的文章。这种特异性确保了每个选定的研究都与调查的主题焦点相关。此外,还根据引用次数和出版物的声望评估了每项研究的影响和影响力,以优先考虑对该领域有重大影响的研究。
分析技术:分析过程被结构化为有效地分类和综合发现。每篇文章最初根据其在缓存和分层场景中使用的ML技术及其具体应用进行分类,包括缓存 admission、淘汰、数据预取、层放置和数据迁移策略。进行了定性综合,以识别关键主题和见解,重点关注ML解决方案如何解决存储系统中的特定挑战。这种综合提供了对各种策略及其有效性的深入理解。此外,还进行了比较分析,以识别研究中的共同趋势和差距。这种分析有助于评估不同ML方法的有效性,并突出显示了需要进一步探索的领域,从而能够深入讨论各种ML模型在不同系统条件下的性能。
通过遵循这些方法论步骤,本调查确保了对基于ML的缓存和分层文献进行严格、透明和可复制的检查。这种结构化的方法不仅支持所呈现发现的有效性,还为类似技术领域的未来系统回顾奠定了基础框架。
3 相关工作
数据量的增加和对数据中心服务质量要求的提高推动了存储优化的广泛研究。几项调查强调了不同存储架构和技术的演变、优势和局限性。本节回顾了关键贡献,从基础混合存储和分布式文件系统到专门的ML研究。
Blomer的调查[8]分析了分布式文件系统,讨论了它们如何从单服务器架构发展到高级技术,如分布式哈希表、内容可寻址存储、共识算法和擦除码。文件系统的完整性、容错性和效率是通过加密哈希、复制、缓存和文件条带化实现的。然而,尚未探索ML在文件系统中的潜在应用。Niu等人[54]对混合存储系统进行了广泛回顾,研究了它们的架构和政策(缓存、调度、热数据识别和资源分配),并讨论了它们对性能、SSD寿命和能耗的影响。尽管有详细的分析,但并未涵盖用于改进混合存储系统的ML技术。在另一项相关工作中[31],作者调查了高性能存储的缓存和分层,描述了SSD和NVM如何与HDD集成。他们回顾了SSD缓存模式(只读、读写、虚拟化、去重、SMR),并讨论了NVM作为SSD/HDD的I/O缓存,强调当前解决方案未充分利用NVM的低延迟和高吞吐量。还研究了动态分层,但未涵盖基于ML的缓存和分层。
其他近期工作强调了ML的优势。例如,Li和Zhou[44]回顾了基于ML的数据管理研究,并强调了将ML集成到数据库系统中以优化查询重写和调度、旋钮调整、物理调整和数据分区的潜力。同样,Khan等人[40]研究了云计算中的以ML为中心的资源管理,重点关注工作负载估计、调度、VM整合、资源和能源优化。
本调查旨在通过关注ML在缓存和分层中的应用来填补一个重要空白,探讨最新进展,并识别之前未充分覆盖的新机会。通过这样做,它突出了ML在管理现代数据存储复杂性方面的独特贡献,并概述了未来的研究和应用方向。
4 前期工作
混合或分层数据存储系统,如Tiera[60]、AMC[13]、BAA[86]和OctopusFS[36],通过将多种类型的存储设备集成和组织到存储层和缓存中来平衡性能、容量和成本,如图1所示。通常,这些存储系统有两个或三个持久存储层,最低层由较慢但容量较大的存储设备(如HDD)组成,用于存储冷数据。相比之下,最高层由更快但容量较小的存储设备(如SSD)组成,用于存储热数据[54]。此外,这些系统还具有一层缓存,用于将频繁访问和最近访问的数据存储在内存中,这提供了最快的访问速度,但容量有限且成本最高。图1展示了现代数据存储系统中缓存和分层的高层架构及关键管理策略。数据在缓存层和存储层之间的放置和移动由缓存和分层策略控制。特别是,数据在缓存和持久存储之间的流动由三个关键策略管理:准入、淘汰和数据预取,这些策略控制着哪些数据可以进入或离开缓存。分层和缓存的主要区别在于,分层是将数据移动到高速存储层,而缓存则是将数据复制到缓存中。这种层次结构通过将未来可能需要的数据提升到更快的存储层或缓存中,同时将不再常用的数据降级到成本更低的存储层,从而平衡了性能和成本。
除了传统的多层存储之外,新兴的架构引入了新的应用场景,可以在这些场景中应用基于机器学习的缓存和分层技术。支持NUMA(非统一内存访问)和分散式的存储系统(例如Carrefour [14]、LegoOS [67])在数据局部性、数据放置以及跨异构内存/存储池的应用亲和性方面带来了新的挑战。这里调查的基于特征的机器学习方法可以通过结合局部性感知的系统特性来适应NUMA感知的缓存。原生云存储服务(例如AWS S3 Intelligent Tiering [65]、Azure Blob tiers)通过基于规则或机器学习的访问模式监控动态地在不同存储层之间迁移数据。原生云分层系统同样可以从预测性机器学习方法中受益,以优化热点数据层、不常用数据层和归档数据层之间的成本-性能权衡。计算存储设备(例如SmartSSDs [38])将处理能力直接集成到存储介质中,实现了数据在存储过程中的实时移动和决策。对于计算存储,调查中的强化学习/深度学习方法可以扩展以利用现场计算来加速学习和推理过程。虽然我们的调查主要关注传统架构中的机器学习、强化学习和深度学习技术,但我们讨论的机制(如基于特征的预测、自适应学习和奖励引导的优化)也广泛适用于这些新系统,并为未来的机器学习驱动存储研究指明了有前景的方向。
4.1 缓存
缓存是一种高速数据存储层,它临时存储数据以便更快地响应未来的数据请求。因此,缓存的主要目标是通过减少对较慢存储层的访问需求来提高数据检索性能。当有数据请求时,系统首先检查缓存中是否存在所需数据,如果存在,则从缓存中提供数据,这被称为“缓存命中”。如果请求的数据不在缓存中,则发生“缓存未命中”,此时数据将从持久存储中获取。根据准入策略,读取的数据可能会被存储在缓存中。当缓存满时,会执行淘汰(或替换)策略来移除并替换部分数据。第三种缓存策略是预取,即算法决定(或预测)哪些数据将来可能会被需要,并主动将这些数据放入缓存中。
缓存淘汰策略决定了在新数据需要添加但缓存已满或超过预定义阈值时,应从缓存中移除哪些项目。这一决策通常基于这样的假设:某些数据再次被使用的可能性低于缓存中的其他数据。通过将频繁或最近使用的数据保留在缓存中,系统旨在提高未来请求的缓存命中率。一些流行的淘汰策略包括LRU(最近最少使用)、LFU(最近最不常用)和First-In-First-Out(FIFO)[43]。
缓存准入策略决定了哪些数据应该被存储在缓存中,即判断传入的数据是否应该被缓存。准入策略根据特定标准评估传入的数据,以确定缓存是否在不久的将来会有益处。如果数据很可能很快会被使用或重复使用,策略就会允许其进入缓存;否则,数据将不会被存储在缓存中,从而为更有可能被重复使用的数据保留空间。这种选择性缓存有助于防止有价值的数据被不必要的淘汰,保持较高的缓存命中率。有趣的是,最流行的准入策略是在缓存未命中时将所有数据都放入缓存中[30]。
缓存预取涉及在系统实际请求之前主动将数据加载到缓存中。这种技术预测哪些数据项将来可能会被需要,从而在将来请求时能够更快地访问数据,因为可以直接从缓存中提供数据,而无需从较慢的持久存储中获取。在基于文件的存储系统中,顺序预取非常常见[24]。在这种策略下,系统会监控文件读取时的访问模式。当应用程序开始顺序读取文件时,系统会假设它会继续顺序读取,并预取当前请求之后的文件数据。
4.2 分层
分层管理具有不同性能和成本特性的存储层之间的数据放置和迁移。分层旨在通过将频繁访问的数据存储在性能更高、成本更高的层中,将不频繁访问的数据存储在性能较低、成本更低的层中来优化性能和成本之间的平衡。放置策略决定了新创建或传入数据的初始存储层。有效的放置策略可以通过准确预测未来的数据访问模式来最小化后续迁移的需求。分布式文件系统(如Hadoop分布式文件系统[HDFS] [71]和OctopusFS [36])支持多个存储层。由于这些系统的主要容错机制是数据复制,放置策略可以将同一文件的副本分布在不同的存储层中,以提高未来的访问性能。
分层存储系统中的迁移策略旨在确保频繁访问的数据被提升到更高性能的层中,而不频繁访问的数据则被降级到性能较低的层中。迁移策略根据各种标准(包括预定义的规则、访问模式分析、数据访问热度的演变趋势预测以及迁移成本考虑)在层之间移动数据。
4.3 基于机器学习的方法
本文重点介绍了如何在数据存储系统中使用智能的、数据驱动的方法来做出缓存和分层决策。因此,我们将这些方法分为三类:(1)传统机器学习(ML)、(2)强化学习(RL)和(3)深度学习(DL)。传统ML方法(如线性回归、决策树、随机森林、梯度提升树和支持向量机[SVMs])依赖于手工设计的特征和明确定义的统计模型来进行预测[19, 57, 78]。这些方法适用于结构化数据和较小的数据集,在这些数据集中,特征工程对模型性能起着关键作用。强化学习是一种机器学习类型,其中智能体通过与环境的交互来学习决策以最大化累积奖励。与监督学习不同,RL不依赖于标记数据;相反,它通过试错并在奖励信号的引导下发现最佳行动。RL的关键组成部分包括状态、行动、奖励和指导决策策略的规则。多年来,已经开发出了多种RL算法,包括Q学习、Soft Actor-Critic(SAC)和Double Q-Learning [28, 33, 83]。总体而言,RL特别适用于需要在动态、不确定环境中进行顺序决策的问题。深度学习方法利用多层神经网络,与传统ML方法不同,它们可以从大量数据中自动学习复杂模式。例如卷积神经网络(CNNs)和循环神经网络(RNNs)在计算机视觉和自然语言处理等领域取得了重大突破,显著提高了需要高级抽象的任务的准确性[46, 93]。最后,深度强化学习(DRL)方法[20],包括Deep Q学习和Deep Q-Network(DQN),是RL的变体,它们利用(深度)神经网络来近似Q值函数,从而能够处理大型状态或动作空间。
特征在基于ML、RL和DL的缓存和分层中起着核心作用,因为它们决定了系统状态如何表示给学习算法。以往的研究通常依赖于三类特征:访问模式特征(如最近性、频率、重用距离或时间局部性);对象级特征(如块大小、类型或优先级);以及系统级特征(如队列长度、延迟或层利用率)。ML方法通常依赖于手工设计的特征,而DL模型则常常设计为自动提取潜在或序列特征(例如从访问轨迹中提取)。相比之下,RL方法将特征编码到系统状态中,通过奖励来驱动策略更新。
为了识别和选择最重要的特征,通常使用几种特征评估方法。主成分分析(PCA)通过求选定的特征向量中每个元素的绝对值之和来计算每个特征贡献的大小,然后按降序排列这些贡献以选择最重要的特征[74]。P值和卡方检验估计每个特征预测接近测试样本的值的概率。基尼重要性衡量每个特征对正确预测目标变量的贡献程度,而皮尔逊相关分析揭示了强相关或冗余的特征[50]。此外,某些模型(如决策树、随机森林)提供了内置的特征重要性评分。在存储领域,这样的评估有助于确定诸如最近性、频率和延迟等特征是否对预测访问行为有实质性贡献,同时平衡预测价值与特征提取的运行时成本。
4.4 基于机器学习的缓存和分层的概念模型
尽管调查中的工作在模型选择和评估范围上有所不同,但它们将ML、RL或DL集成到缓存和分层系统中的方式遵循一组有限的重复性架构模式。我们将这些模式归纳为三个高层次的操作流程,如图2所示。这些概念模型抽象了学习组件如何与存储系统交互,提供了一个统一的框架,捕捉了超越个别实现的潜在机制。
图2. 三种基于ML/RL/DL的缓存和分层集成模型:(a)离线训练与在线推理;(b)增量在线训练与推理;(c)基于RL的在线训练与推理。
- 离线训练与在线推理:在这种模型中,首先收集和处理系统轨迹和日志以提取特征和标签。ML/DL模型通常使用监督学习进行离线训练,然后部署到实际系统中[21, 61, 101]。在运行时,训练好的模型执行推理以预测工作负载特征(如访问概率、未来热度),这些特征被策略用来指导缓存和分层决策。这种方法提供了性能稳定的模型,并且训练成本可控,但在适应工作负载变化方面有限。
- 增量在线训练与推理:在这里,训练和推理都在在线进行。系统运行过程中持续收集元数据,并将其转换为特征和标签,然后定期用于逐步更新模型[2, 29, 30]。推理与离线模型类似地并行进行,但模型本身随着工作负载的变化而演变。这种设计允许适应变化的访问模式,同时避免了从头开始重新训练,尽管如果更新不准确可能会导致运行时开销和潜在的不稳定性。
- 基于RL的在线训练与推理:RL方法通过与系统的直接交互来操作。RL智能体观察系统状态(从运行时元数据中得出),选择相应的缓存或分层决策,并以奖励的形式接收反馈(如命中率、延迟减少[48, 66, 72]。智能体在运行过程中不断更新其策略,从而实现无需显式标签的自适应决策。虽然RL提供了强大的适应性,但它也需要仔细的奖励设计和足够的探索来确保稳定的性能。
5. 缓存
缓存通常是一个较小、速度更快的存储层,它存储来自访问速度较慢的主存储位置的数据副本。缓存的主要目的是通过减少访问数据所需的时间来提高数据检索性能。缓存是一种广泛应用于各个领域的技术,包括存储网页的网页浏览器、个人计算机中的CPU缓存以及大型数据中心中的分布式文件系统。缓存的有效性通常通过其命中率来衡量,命中率是指所有缓存访问中成功找到所需数据的百分比。5.1 缓存淘汰当缓存满或容量超过特定阈值时,需要确定从缓存中移除哪些项。淘汰策略的选择会显著影响缓存系统的性能,尤其是在数据访问模式复杂且数据量大的环境中。传统的淘汰策略如LRU、LFU和FIFO最初是为简单、可预测的工作负载模式设计的,它们难以跟上数据快速增长和访问模式复杂化的步伐。这种差距凸显了需要更加适应性强、智能化的缓存策略的需求,这些策略能够动态调整以适应不断变化的模式,从而在数据持续增长的情况下提高效率并降低运营成本。为了克服这些挑战,人们正朝着实施更加适应性和智能化的缓存策略方向转变。机器学习(ML)技术被用来更准确地预测数据模式,并几乎实时地调整缓存策略。这种创新方法旨在提高缓存系统的响应速度和效率,确保它们能够满足现代计算环境的需求。5.1.1 基于传统机器学习的方法进行淘汰。本节讨论了几种在缓存淘汰策略中实现的传统ML技术。这些方法使用XGBoost、决策树和逻辑回归等算法来预测哪些缓存项在未来不太可能被访问。[26]的作者提出了一个通用框架,用于优化分层存储系统中的缓存策略调度,该框架已在Alluxio分布式混合存储系统中得到实现。他们的可插拔淘汰框架使用了多种策略(LRU、LRFU、LIRS和ARC),以适应不同的访问模式。为了动态选择最佳淘汰策略,作者设计了两种自适应的缓存策略调度算法。第一种算法使用滑动窗口来收集和分析三个阶段的命中率:跟踪收集、跟踪分析和策略切换。第二种算法包括以下步骤:收集跟踪数据、提取特征、训练离线softmax多分类器以将模式映射到策略,并在运行时预测最佳策略。这两种算法在命中率方面都优于单一淘汰策略。[69]的作者使用Belady的MIN算法离线训练了一个长短期记忆(LSTM)模型来确定最佳缓存决策。该模型包含一个用于键程序计数器(PCs)的嵌入层、一个单层LSTM和一个注意力层,表明缓存决策主要取决于少数重要过去访问的存在,而不是它们的顺序。基于这些见解,他们创建了Glider,这是一个更简单、更高效的在线模型,它使用动态训练的SVM和k稀疏二进制特征来表示当前的访问,重点关注关键PCs。Glider依赖于整数SVM(ISVM)模型和PC历史寄存器(PCHR)来维护最近的PCs,并根据最佳缓存行为更新权重。在[58]中,引入了一种基于逻辑回归的闪存存储缓存替换策略,根据操作类型、应用程序特定单元(ASU)和最后访问时间来预测未来页面访问的可能性。这种概率指导了哪些页面应该被淘汰(0表示淘汰,1表示保留在缓存中),在保持高缓存命中率的同时最小化昂贵的写操作。缓存中页面的位置由其未来访问的概率决定。访问概率较低的页面首先从清洁优先(CF)区域移除,避免了昂贵的回写到辅助存储的操作,而访问概率较高的页面则保留更长时间,从而减少了缓存未命中次数。[77]中的LCache是一种缓存管理策略,它使用决策树算法来预测数据页面再次被访问的可能性。这种预测基于I/O请求的特征,如频率、距离和大小。LCache的淘汰策略通过一种主动更新机制运作,该机制使用两个LRU链接列表将页面分为清洁和脏页面。当新数据插入缓存时,LCache会评估这些数据页面是否会被重新访问。如果预测表明数据不会被访问,则在空闲时间将脏数据写入闪存,转换成清洁数据,并释放缓存空间。这种方法平衡了闪存的带宽成本,并通过优先淘汰清洁数据页面来最小化缓存替换成本。此外,Bloom过滤器跟踪数据请求的热度和冷度,进一步改善了淘汰决策。[94]的Yan等人提出了一种基于XGBoost的方法来确定最佳缓存决策,有效地整合了缓存准入和淘汰策略。他们的方法称为LHR,使用内容请求频率、内容大小和请求间隔时间作为特征来训练一个XGBoost模型,以预测存储对象的未来访问概率。所提出的淘汰策略选择从缓存中移除的概率最低的对象。5.1.2 基于强化学习的方法进行淘汰。本节探讨了几种在缓存管理中实现RL的方法,展示了其在不同缓存场景和系统架构中的优势。LeCaR框架[84]使用RL进行缓存替换,重点是从过去的访问模式中学习,以动态地在LRU和LFU策略之间切换。LeCaR框架通过维护这两种策略的概率分布并学习每种系统状态下的最佳分布来优化缓存命中率。因此,为了做出淘汰决策,LeCaR会根据各自的累积遗憾值随机选择其中一个策略。[11]的Chen和Tan的工作中引入了一种基于RL的内容缓存方法,称为基于时间的Q Cacher(TQC),以提高云环境中服务器缓存的效率。TQC通过使用Q学习算法根据用户请求模式动态调整缓存管理策略来解决低缓存命中率的问题。TQC算法在两种主要模式下运行:它在缓存命中时更新Q值,并定期更新缓存以应对低频和长周期的用户请求。通过自主学习和适应用户行为,TQC在缓存命中率上比传统方法(如LRU、LFU和FIFO)提高了8-12%。这种智能的、无模型的缓存策略在动态的大规模SaaS环境中提高了缓存性能。[47]的PARROT是一种缓存替换方法,它利用模仿学习来遵循Belady的最优策略,这是一种理论上最佳的策略,可以通过预测未来访问来做出最佳缓存淘汰决策。PARROT不是基于未来访问,而是基于观察到的过去行为和当前状态信息来做出决策。它包括一个使用Transformer和BiDAF的神经网络架构,处理当前的缓存访问和过去的访问历史序列。在训练过程中,PARROT将缓存替换视为一个基于情节的马尔可夫决策过程(MDP),其中状态包括当前访问、缓存状态和过去的访问历史。为了保持训练的有效性,PARROT结合了‘DAgger’算法,减少了部署和训练场景之间的差距,最小化了累积误差。此外,PARROT通过预测缓存块的复用距离来提高准确性,从而基于每个缓存块即将被复用的可能性来改进淘汰决策。[85]的Macocache使用多智能体RL方法,特别是多智能体优势演员-评论家(MAA2C)训练策略,来改进网络边缘的缓存淘汰决策。网络中的每个边缘都作为一个自主智能体,不仅根据自身的状态调整其淘汰策略,还考虑邻近智能体的行为。这确保了缓存系统能够动态调整,以最小化内容访问延迟和流量成本,这对于高性能视频流服务至关重要。独立的Q学习允许每个智能体独立学习最佳策略,而MAA2C通过使用基于指纹的方法更新邻近智能体的策略来稳定学习。最后,Sethumurugan等人[66]开发了强化学习替换(RLR)策略,该策略使用RL来优化缓存淘汰,而不依赖于会产生显著硬件开销的PCs。这种方法使用来自最后一级缓存(LCC)的 readily available 特征集来训练RL智能体,从而指导成本效益高的缓存替换策略的开发。RLR策略的硬件开销低,并能动态适应缓存环境的变化。然后,通过分析神经网络权重和来自架构模拟的相关特征统计数据,该策略有效地减少了缓存未命中次数和总体存储开销。5.1.3 基于深度学习的方法进行淘汰。DL方法利用深度神经网络(DNNs),如卷积神经网络或RNNs,来进行对淘汰策略有用的预测或根据DRL范式采取行动。[100]的Zhong等人的工作引入了一个DRL框架,通过高效的缓存替换决策来优化内容缓存。他们使用Wolpertinger架构及其三个关键组件来解决内容缓存问题。首先,一个演员网络将缓存状态和当前内容请求作为输入,产生一个单一的原型演员输出。第二个组件,K最近邻模型,计算每个有效动作与原型演员之间的距离,将原型演员的动作空间扩展到K个元素。最后,一个评论家网络评估这个动作空间,根据Q值来细化演员网络的决策。这些组件是离线预训练的,并在线动态适应,显著提高了缓存命中率。此外,[101]的Zhou等人提出了一种利用DRL的缓存替换框架,以提高云块存储系统的性能。这种方法名为Catcher+,它自动学习缓存替换策略和工作负载分布之间的关系,根据观察到的I/O模式优化决策。DRL框架使用Wolpertinger架构,并使用来自阿里云和腾讯云的实际I/O跟踪数据进行训练。关键创新包括优先体验回放以加快训练速度,以及定义有效的状态和奖励函数以提高模型的收敛速度和效率。这种方法特别针对云环境的动态和复杂性进行了定制,为云存储管理领域做出了重要贡献。5.1.4 关键见解。缓存淘汰策略已经从传统的LRU和LFU方法发展到更加适应性和先进的方法。这些新策略通常使用ML来预测访问模式,并做出更准确的淘汰决策。例如,一些方法使用轻量级的梯度提升树或决策树分类器来预测未来访问的可能性,从而从静态策略转向更加动态的解决方案。然而,尽管基于ML的方法在准确性上有了显著提高,但它们在计算上较为复杂,并且会随着时间的推移而失效(除非重新训练)。在最近的研究中,传统的机器学习和RL在缓存淘汰中很受欢迎。基于RL的方法,如Zhong等人和Zhou等人的实现,能够持续学习和适应变化的工作负载,如云存储应用中所见。由于简单性和广泛采用,LRU是最常用于与提出的基于ML的淘汰策略进行比较的基线,出现在10篇文章中。其次是LFU,出现在六篇文章中。虽然LRU和LFU最常被用作比较方法,但也使用了其他策略,如ARC、FIFO、LIRS、HAWKEYE、CLFRU、SHIP++和其他23种方法。这种多样性反映了向更加适应性和复杂策略的转变,以处理日益复杂的工作负载。表2展示了分为三类(传统ML、RL、DL)的基于ML的缓存淘汰策略。每种方法都列出了其关键特征、主要目标和预测以及用于评估其有效性的指标。上表显示,用于确定未来缓存使用情况的最常见特征是最近性、频率、最后访问时间和内容受欢迎程度。训练有素的ML模型要么直接预测应从缓存中移除的最佳对象,要么预测对象的访问概率(然后用于指导淘汰决策)。有时,模型用于预测在任何给定时间应使用的最佳基本淘汰策略(例如LRU、FIFO)。为了展示每种策略的有效性,最常用的评估指标是缓存命中率和延迟。表2列出了各种方法和它们的评估指标。
**参考文献(年份)** | **方法** | **关键特征** | **目标/预测** | **评估指标** |
| --- | --- | --- | --- | --- |
| [26] (2019) | Softmax Multi-Classifier | 读/写比例、循环和序列模式、块访问间隔分布及模式频率分布 | 选择哪种基本淘汰策略 | 命中率、执行时间 |
| [69] (2019) | SVM | PC历史(one-hot/k-sparse) | 是否适合缓存 | 错误率、吞吐量 |
| [58] (2021) | 逻辑回归 | 应用程序名称、操作类型、逻辑地址、最后访问时间 | 页面重新访问概率 | 替换成本、缓存未命中次数、闪存写入次数 |
| [77] (2021) | 决策树 | 频率、距离、过去特定范围内的页面数量 | 未来数据页面使用情况 | 响应时间、擦除次数、响应时间变化 |
| [94] (2021) | 梯度提升树 | 内容请求频率、内容大小、请求间隔时间 | 未来访问概率 | 网络流量减少 |
| [84] (2018) | 基于RL的方法 | 带有遗憾最小化的在线学习 | 最新性、频率 | 哪些缓存条目需要替换 |
| [11] (2018) | Q学习 | 内容流行度、访问模式、网络流量 | 内容需求预测 | 效率、命中率 |
| [47] (2020) | 模仿学习 | 当前/过去的访问记录、缓存状态 | 预测重用距离 | 缓存/标准化命中率 |
| [85] (2020) | 独立Q学习 | 用户ID、时间戳、内容、GPS位置 | 哪些内容需要淘汰 | 平均延迟/流量成本、边缘/邻居命中率 |
| [66] (2021) | Q学习 | 偏移量、预使用情况、访问类型、集合统计 | 未来缓存块重用 | 相对于LRU的IPC加速、LLC命中率 |
| [100] (2018) | 基于DL的方法 | 基于深度确定性策略梯度(DDPG)的Wolpertinger架构 | 内容流行度、访问模式、网络流量 | 内容需求预测 | 效率、命中率 |
| [101] (2023) | 深度确定性策略梯度 | 系统吞吐量、请求延迟、数据流量 | 选择哪种基本淘汰策略 | 系统吞吐量 |
**5.2 缓存准入**
缓存准入策略决定了数据在首次读取或写入时是否应该存储在缓存中。与专注于从缓存中移除什么内容的淘汰策略不同,准入策略旨在防止缓存中存储那些可能永远不会被访问或很少被访问的数据。
**5.2.1 基于传统机器学习的方法**
本节讨论了将传统机器学习技术应用于缓存准入策略的方法。这些方法利用机器学习算法来预测未来访问的可能性,从而决定新数据是否应该存储在缓存中。
[87]的作者实施了一种基于机器学习的方法来优化腾讯照片缓存系统中的缓存,通过减少不必要的写入操作。他们提出了一种“一次性访问排除”策略,预测照片在不久的将来是否会被访问,并因此不将其缓存,从而减轻了缓存的写入负担。作者在比较了其他算法后选择了决策树分类器,因为它在准确性和计算效率之间取得了平衡。他们的系统还使用了一个历史表来存储最近分类的照片的元数据,这个历史表用于纠正决策树可能做出的错误分类,防止可能会被再次访问的照片被错误地重新分类为一次性访问文件。此外,该模型每天更新以适应当前的访问模式。
Flashield [18]使用DRAM作为初始过滤器,以限制和控制对基础SSD层的写入。他们的准入方法使用SVM分类器根据对象未来访问的可能性及其在不久的将来的不可变性来判断对象是否适合长期存储在SSD中。通过最初将对象放置在DRAM中,Flashield可以在不立即写入SSD的情况下评估它们的使用模式,从而避免不必要的写入放大。SVM分类器评估每个对象的“短暂性”,这是一个预测对象在不被修改的情况下被多次访问的可能性的指标。得分高的对象从DRAM转移到SSD,提高了缓存效率并延长了SSD的寿命。
[99]引入了另一种准入策略,它使用机器学习算法将数据分类为只写数据和可读写数据,从而提高SSD缓存性能。他们评估了几种机器学习算法,包括朴素贝叶斯、逻辑回归、决策树、AdaBoost和随机森林,并选择了朴素贝叶斯作为基于机器学习的写入策略(ML-WP)。该算法根据数据在被写入后是否可能再次被访问来对其进行分类。ML-WP只将可读写数据放入SSD缓存中。通过将“只写”数据直接导向后端存储而不进行缓存,ML-WP显著减少了不必要的SSD写入操作,延长了存储介质的寿命,提高了缓存命中率,并减少了读取延迟。
**5.2.2 基于深度学习的方法**
基于深度学习的方法使用DQN的变体,结合DNN和Q学习来实现缓存准入。
Sadeghi等人[63]提出了一个基于Hyper-DQN的可扩展DRL框架,用于优化分层内容分发网络(CDN)中各个节点的缓存策略。该框架采用多智能体DRL,每个节点作为一个智能体,学习并调整其缓存策略,同时考虑与其他节点的交互。集中式训练汇总所有智能体的经验来更新全局策略,用于本地缓存决策。基于DRL的准入策略根据文件请求模式和网络状态预测缓存特定内容的效用。DQN通过学习环境因素(包括请求频率、内容流行度和邻近节点的缓存情况)来近似最优缓存策略。该模型最大化了缓存决策的长期奖励,提升了网络性能。DRL框架处理了分层网络中典型的大型连续状态-动作空间,减少了基础设施负担,并通过更快的交付提高了用户满意度。
Song等人的研究[75]引入了一种缓存辅助卸载策略,利用DRL来优化移动边缘计算中的缓存和卸载决策。该方法利用DQN算法动态调整缓存准入参数,最小化了延迟。系统在智能设备和边缘服务器上协作缓存任务结果和相关子任务数据,从而提高了命中率并减少了冗余计算。当生成新任务时,系统使用一个预测模型来评估其缓存潜力,该模型考虑了任务的流行度和计算需求。该模型决定是否缓存结果或将它们分解为子任务进行进一步处理。通过将缓存决策与卸载策略相结合,基于DQN的方法确保了计算和检索成本最高的任务优先被缓存。这种智能准入策略有效地利用了有限的缓存资源,提高了命中率,并减少了整体延迟。
**5.2.3 关键见解**
在分析最近的缓存准入策略时,经常使用传统的机器学习方法,如朴素贝叶斯、SVM、梯度提升树和决策树。这些机器学习方法计算效率高,能够有效预测数据访问模式,从而改进缓存决策。虽然它们提供了许多好处,但在实时场景中的适应性不如强化学习(RL)。深度学习(DL)也越来越受欢迎,因为它能够处理不可预测或复杂的工作负载。
在比较缓存准入策略与其他方法时,多篇文章将它们的实现与Belady等知名方法进行了基准测试。还使用了其他基线方法,包括LFU、On Demand、FIFO、ARC、LIRS、KNN等23种其他方法。这一趋势表明,随着工作负载变得越来越复杂,传统的准入策略正在逐渐过时。新方法的引入及其与这些基线的比较突显了需要更先进、更具适应性的策略来处理新的工作负载。
表3概述了最近关于缓存准入策略的研究。每项研究都根据所使用的特征(例如访问模式、大小、最新性、频率)、其主要目标/预测(例如决定是否缓存文件)以及所使用的评估指标进行了总结。大小、频率和最新性是最常用的特征,因为它们表明哪些数据值得存储。训练好的模型用于做出是否将特定文件/对象放入缓存的二进制决策,或预测文件/对象的未来访问概率(然后据此决定是否将其放入缓存)。此外,命中率、延迟、吞吐量和CPU效率是经常使用的指标,用于展示每种准入策略的有效性和准确性。
**5.3 缓存淘汰和准入的联合优化**
在许多缓存系统中,淘汰和准入决策是紧密相关的。联合优化这两种策略使系统能够更好地管理缓存内容,防止低价值项目的浪费存储,同时确保高价值数据被保留更长时间。与独立管理每种策略相比,这种集成方法可以提高整体缓存命中率和资源效率。
**5.3.1 基于传统机器学习的方法**
AutoCache [29]是一个用于分布式文件系统(如HDFS)的缓存框架,它使用轻量级的XGBoost模型自动化地进行准入和淘汰决策。对于准入,模型预测文件在不久的将来被访问的可能性;每当文件的预测访问概率超过预定义的阈值时,它就会被添加到缓存中。准入在文件被访问时以及定期主动扫描期间触发。对于淘汰,模型预测哪些文件在一段时间内不太可能被使用,从而在需要空间时指导它们的移除。为了在变化的工作负载下保持有效性,AutoCache会频繁地逐步重新训练其XGBoost模型。其轻量级的特性使得这些更新在计算上成本较低,且开销最小,确保准入和淘汰策略在访问模式变化时仍然准确。
**5.3.2 基于强化学习的方法**
Caarls等人[9]提出了Q-caching,这是一个基于RL的框架,通过扩展Q路由的成本估计来联合优化信息中心网络中的缓存和路由。对于淘汰,Q-caching使用加权最少使用(WLFU)策略,优先移除最小预期成本(MEC)较低的项目,从而保留检索成本较高的内容。对于准入,只有当新内容的预期检索成本超过最低价值缓存项目的成本时,才会将其允许进入缓存。Q值根据本地观察结果异步更新,使系统能够在不需要全局协调的情况下适应变化的网络条件。通过将缓存与路由对齐,Q-caching提高了内容多样性,减少了冗余,平衡了网络负载,并显著降低了用户感知的下载时间。
Tracolli等人[80, 81]提出了一个基于RL的先进缓存管理框架,用于数据湖,他们在最初的SCDL系统基础上进行了改进,重点关注基于Q学习的准入控制以增强SCDL2。虽然SCDL [80]侧重于通过Q学习优化缓存准入,但SCDL2引入了两个专门的Q学习智能体:一个准入智能体根据大小、访问频率和最新性评估传入的文件请求,只允许那些可能提高吞吐量的文件进入缓存;另一个淘汰智能体在缓存占用率超过阈值时,根据文件大小、访问频率和缓存占用率选择传统的策略(例如LRU、FIFO)。这种双智能体架构动态适应实时访问模式,优化缓存内容,最大化数据访问效率,减少延迟,并最小化不必要的写入操作,使SCDL2成为大数据缓存的强大解决方案。
**5.3.3 基于深度学习的方法**
Alabed [3]引入了RLCache,这是一个使用深度强化学习(特别是离线策略DQN)的自动化缓存管理系统,用于动态优化准入和淘汰决策。在这个框架中,每个对象都被表示为一个独立的状态,其键和值被张量化。智能体使用epsilon-贪婪策略来平衡探索(随机动作)和利用(最大化预测的Q值),同时从历史访问模式中学习。对于准入,DQN预测传入对象进入缓存的最佳时间;对于淘汰,它扫描缓存并选择最不可能被重用的项目进行移除。通过奖励成功的命中和惩罚未命中或不必要的淘汰,RLCache随着时间的推移调整其策略,以最小化错误率并最大化系统吞吐量。
**5.3.4 关键见解**
关于联合缓存淘汰和准入的研究表明,与分别管理每种策略相比具有优势。许多研究将他们的方法与常见的基准进行了比较,例如LRU和LFU(在四篇文章中使用)以及On Demand(在三篇文章中使用),还有其他十一种方法。传统的机器学习方法,如AutoCaches XGBoost模型[29],能够为准入和驱逐提供准确且轻量级的预测。基于强化学习的系统,如Q-caching [9]和SCDL2 [80],可以根据命中/未命中模式的反馈实时调整策略,而像RLCache [3]这样的深度强化学习方法则以更高的计算成本捕获复杂的访问行为。总体而言,统一准入和驱逐决策可以提高命中率、减少延迟,并提高缓存效率,相比于现有的启发式方法。表4。
参考文献(年份)方法关键特征目标/预测评估指标
传统基于机器学习的方法[29](2019)梯度提升树最近性、频率、大小、最后访问时间、创建时间文件是否在不久的将来被访问平均作业完成时间、集群效率
基于机器学习的方法[9](2015)Q学习内容流行度、请求频率、获取数据的预期成本最低成本命中率、延迟
[80, 81](2020)Q学习平均文件大小、频率、最近性、总项目数、文件大小、请求次数、自上次请求以来的时间决定使用哪种基本驱逐策略以及文件是否应该保留在缓存中吞吐量、命中时读取比率、成本、带宽饱和度、CPU效率
基于深度学习的方法[3](2019)多智能体深度强化学习(Q学习和DNNs)操作类型、结果集、元数据、终止原因、命中次数、系统负载、数据类型哪些对象应该被缓存以及当缓存满时应该缓存多久以及哪些对象应该被驱逐命中率、延迟
5.4 缓存预取
预取是一种主动的缓存技术,它根据观察到的访问模式在数据被请求之前将其加载到缓存中。这依赖于准确预测接下来将访问哪些数据,这通常需要复杂的算法或机器学习技术。
5.4.1 基于传统机器学习的预取方法
KML [2]是一种轻量级的、模块化的机器学习架构,用于替代静态启发式技术。它有两种模式:(1)内核内训练和推理,避免I/O复制开销;(2)用户空间训练与内核内推理相结合,简化了模型开发。它基于决策树的预取技术将工作负载分类为随机读取、顺序读取、随机读取-随机写入或反向读取,然后将每种分类映射到一个相应的预取值。为此,决策树模型评估相关特征,如请求次数、请求之间的时间差和请求偏移量。一旦决策树确定了工作负载类别,操作系统就会更新预取参数,以在不同条件下优化I/O性能。
流式机器学习[50]被提出用于适应数据存储工作负载的实时变化。流式机器学习范式涉及在文件请求到达时持续处理它们,消除了昂贵的离线重新训练的需要,并提供了即时反馈以指导预取决策。作者建议使用Hoeffding Tree算法持续训练每个新到达的请求,将未来的文件偏移量读取分类为顺序、随机或不读取。通过持续学习,他们的方法能够快速响应变化的访问模式,保持高精度,同时消除了传统批量学习更新的开销。
5.4.2 基于强化学习的预取方法
强化学习已成为优化现代存储系统中数据预取的强大方法,Pythia [7]就是一个基于强化学习的硬件预取框架的例子。Pythia解决了传统预取器的局限性,后者依赖于单一程序特征并且缺乏系统级意识,导致在多样化的任务负载上表现不佳。通过将预取问题形式化为强化学习问题,Pythia能够动态学习做出准确、及时且系统感知的预取决策。其设计利用了多个程序上下文特征和系统反馈,如内存带宽使用情况,来优化预取结果。此外,Pythia是可定制的,可以通过配置寄存器调整特定于任务负载的目标,使其能够在不进行硬件重新设计的情况下适应不同的系统环境。
Ghosh等人[23]提出了一种基于强化学习的预取控制机制,用于优化高级缓存预取器的积极性。该框架通过监控硬件计数器(如每周期指令数(IPC)和预取准确性)来动态调整预取强度,以最大化性能。通过强化学习代理,系统学习平衡预取深度,最小化缓存污染和资源竞争。使用gem5模拟器进行的实验评估突出了该框架在多样化任务负载上的适应性和效率。这项工作强调了强化学习驱动的适应性内存优化在应对现代存储系统挑战方面的潜力。
此外,RL-CoPref [96]是一种为多个预取器设计的协调预取控制器。RL-CoPref根据程序上下文和内存带宽利用率动态调整预取激活和预取程度,解决了传统基于规则和静态预取策略的局限性。通过利用瓦片编码来离散化状态空间并提取如PC和缓存行地址等特征,RL-CoPref学习最大化预取准确性并最小化内存带宽开销。这种基于强化学习的自适应框架使多个预取器能够有效互补,优化了在多样化任务负载和复杂内存访问模式下的性能。因此,RL-CoPref代表了智能预取管理方面的重大进展,展示了强化学习技术在提高存储系统效率方面的潜力。
5.4.3 基于深度学习的预取方法
基于深度学习的预取方法使用神经网络分析复杂的非线性访问模式,从而能够高度准确地预测未来的数据请求。在本节中,我们讨论了几种基于深度学习方法的实现。
DeepCache框架[52]使用LSTM编码器-解码器模型通过分析对象过去的流行度来预测对象的未来流行度。这种预测为缓存策略提供信息,该策略生成预期会变得流行的对象的“假”请求。这些假请求与原始请求结合使用积分运算符合并,然后在发送到缓存之前进行合并。然后,框架可以根据对象的预期需求决定将哪些对象放入缓存中。因此,通过将有需求的对象保留在缓存中,缓存命中率得到了提高。通过提前预见对象的流行度,DeepCache主动管理缓存资源,减少了缓存未命中的可能性以及频繁驱逐的需求。
Chen等人[12]在分布式文件系统中实现了基于RNN的文件预取机制。他们使用Skip-gram模型将文件和目录名称映射到高维向量中。这种方法表示文件和目录之间的定量关系。为了捕获I/O访问模式,他们在GlusterFS(一个可扩展的分布式文件系统)中实现了跟踪翻译器,以监控和记录I/O请求,重点关注文件打开操作。访问文件路径的每个组成部分都被转换为一个向量,并汇总成一个向量,代表每次访问事件。之后,他们构建了一个门控循环神经网络(GRU)来处理这些文件访问向量序列。GRU根据输入向量更新其隐藏状态,从而编码工作负载的访问模式。通过将隐藏状态与嵌入的文件向量结合,他们开发了一个动态文件分类器,确定文件应该是缓存的(热)还是清除的(冷),并相应地发出预取请求。
此外,[10]实现了一种基于神经网络的预取方法来提高SSD性能,通过预测未来的块访问。作者解决了在大型、稀疏的逻辑块地址(LBA)空间中进行预取的挑战,并通过提前预测多次I/O访问来确保及时预测。他们从云服务器上的实际应用中收集I/O跟踪文件来离线训练模型。该模型使用双输入结构,接收I/O大小和LBA增量作为输入,通过嵌入和LSTM层进行处理以生成预测。该模型旨在同时预测I/O大小和LBA增量,通过取连续LBA的L1范数来减少地址空间。此外,还提出了一种地址映射学习(AML)来帮助模型在不同任务负载之间进行泛化,使其能够预测以前未见过的访问模式。
DeepPrefetcher [21]也使用LSTM模型,但关注连续LBA之间的差异,而不是它们的值,以捕获更相关的预测模式。这种方法允许DeepPrefetcher预测以前见过的和新的访问模式。通过预测下一个块访问,DeepPrefetcher提高了预取的准确性、覆盖率和速度,在实证评估中优于传统的预取策略。
Voyager [70]是一种基于分层神经网络的预取机制,它将地址分割成页面和偏移量,以捕获地址和增量之间的相关性。这种分解保留了预测所需的重要相关性,同时避免了唯一地址的爆炸性问题。然而,这导致了偏移量别名问题。因此,Voyager使用基于注意力的嵌入层来确保每个偏移量知道它所属的特定页面。此外,他们的方法使用增量来表示低频地址,使其能够在不记住不频繁模式的情况下处理强制未命中。通过在其词汇表中包含地址和增量,Voyager能够灵活适应各种访问模式。最后,作者构建了一个多标签训练方案,使Voyager能够从多个可能的标签中选择最可预测的下一个地址。
KML [2]除了支持传统的机器学习模型外,还支持深度学习模型来优化系统参数。用于预取问题的神经网络模型由三个线性层和Sigmoid非线性组成,并使用随机梯度下降进行优化。对于NFS rsize优化,使用了一个具有四个线性层的神经网络模型,利用Sigmoid激活函数和交叉熵作为损失函数。KML通过连续观察和调整范式动态调整系统参数,确保在不同存储设备和工作负载场景下获得最佳性能和适应性。
Pathfinder [35]是一种硬件数据预取器,它使用尖峰神经网络(SNN)和尖峰时间依赖性可塑性(STDP)实时学习内存访问模式。它将固定大小的增量历史视为像素矩阵,并将预取视为图像分类任务。三层SNN通过STDP不断调整神经元权重。训练表通过PC和页面监控最近的内存访问,并记录每个观察到的模式触发的SNN神经元。一旦神经元对给定模式一致触发,其预测的增量就被分配为一个标签并记录在推理表中。此外,作者使用置信度计数器来跟踪每个标记神经元的正确性;如果计数器归零,表示预测不正确,则标签被移除。每当该神经元再次触发时,Pathfinder使用存储的标签发出预取请求。
Duong等人[17]提出了一种两阶段神经时间预取方法,重新定义了地址-后继者相关性。首先,他们引入了Twilight,它用基于频率的候选者选择替代了直接的数据地址预测,从最频繁的后继者或不预取选择中进行预测。通过将输出空间限制在一组固定的候选者中,Twilight避免了直接处理整个地址空间。此外,Twilight使用解耦的位置频率来跟踪每个页面其后继者的频率。Twilight-LITE(T-LITE)通过将具有相似预取行为的页面聚类来改进Twilight,在每个簇内共享一个嵌入。在运行时,未见过的页面被分配到这些簇中,使T-LITE能够以最小的开销进行适应。
Gui等人[27]提出了一种基于WaveNet的文件访问预测器(DFAP)来处理复杂的文件访问模式。该模型使用嵌入层学习文件标识符之间的上下文关系,而因果膨胀卷积层捕获序列特征。全连接层和softmax函数对这些学习到的特征进行分类,以识别最可能的下一个文件访问。基于这些预测,基于成本效益分析的缓存预取算法(CBAP)评估提前加载这些文件是否有益。通过集成DFAP和CBAP,他们在Alluxio中实现了一个自动文件预取框架,预先加载高访问可能性的数据。
[76]介绍了一种用于分布式文件系统的动态预取机制,包括四个主要阶段。第一阶段是通过TF-IDF方法根据阈值识别流行的文件大小,然后估计这些流行文件的块的本地和全局支持值(LS和GS),并提取频繁的块访问模式(FBAPs),最后将这些模式与混合深度学习模型匹配。混合模型结合了CNN和LSTM网络,其权重通过Upgraded Shark Smell with Opposition Solution(USS-OS)进行优化。一旦检测到流行文件,就会评估每个文件的块在不同数据节点上的支持值,从而指导FBAPs的识别。CNN和LSTM随后从这些提取的模式中学习,并预测未来的块请求,从而做出更准确的预取决策。5.4.4 关键见解。机器学习(ML)技术,特别是深度学习(DL),能够处理复杂的、非线性的数据模式。像LSTM这样的深度神经网络(DNN)在识别复杂的访问模式方面表现出色,从而提高了预取决策的准确性。强化学习(RL)也非常适合访问模式不断变化的动态环境。RL可以实时学习和适应,提供了一种随着条件变化而调整的出色解决方案。尽管RL有这些优势,但在预取中的应用较少,而LSTM是最流行的DL模型。然而,这些复杂的ML模型需要更多的计算资源,限制了它们在资源受限系统中的使用。在评估预取策略时,作者使用了多种不同的方法作为基准。有五项研究将不使用预取(即“无预取器”)作为对比基准,而许多高级方法,如SPP、BO、Arima模型、Delta-LSTM、Voyager、Pythia和On Demand则被多次使用。此外,还有38种不同的预取技术被用作基准,包括LEAP、VANILLA、Stride等。这种广泛的方法表明目前还没有一种成熟的预取方法。这也突显了预取的复杂性,鉴于数据访问模式的复杂性和不可预测性,预取是最具挑战性的缓存管理策略之一。先进预取技术的使用反映了人们对更智能、更准确的管理现代工作负载解决方案的日益增长的需求。表5提供了按方法(传统ML、RL和DL)分类的缓存预取方法及其关键特性的概述。每项研究都总结了其特点、目标/预测结果以及用于评估其准确性的指标。预取策略中最常用的特征是访问的内存地址、偏移量和地址增量。几乎所有ML模型都经过训练,以预测工作负载将读取的下一个偏移量(或地址),这构成了缓存预取请求的偏移量。最常见的评估指标是命中率、准确性、吞吐量和预取覆盖率。
表5. 参考文献(年份)方法 关键特征 目标/预测 评估指标
传统基于ML的方法 [2] (2023) 决策树 交易数量、页面偏移量的移动平均值/标准差、页面偏移量绝对值的平均值、inode数量 最佳预取大小 吞吐量、性能提升 [50] (2023) Hoeffding树 请求/文件访问模式、文件格式特征、文件统计 下一个偏移量 准确性、整体性能
基于RL的方法 [7] (2021) SARSAPC+Delta、最后4个增量的序列、缓存行地址、页面编号/偏移量、缓存行增量和历史 下一个内存地址 DRAM带宽、加速比、Q值曲线 [23] (2023) Q学习 数据访问模式、时间局部性、工作负载特征 最佳预取模式 延迟、缓存未命中率 [96] (2024) 基于表格的RL与SARSA 内存访问模式、页面计数、地址增量、缓存命中/未命中 预取器激活和程度控制 预取覆盖率
基于DL的方法 [52] (2018) LSTM编码器-解码器 对象频率、生命周期、昼夜模式 对象流行度 命中率 [12] (2019) 门控循环神经网络 文件/目录名 文件缓存/清除决策 准确性、命中率、延迟 [10] (2020) LSTM神经网络 LBA增量、I/O大小 下一个块访问 命中率、及时性 [21] (2020) LSTM神经网络 时间戳、LBA、LD、两个连续读取请求之间的差异 下一个LBA 准确性、覆盖率、加速比 [70] (2021) LSTM神经网络 数据地址历史 下一个内存地址 预取覆盖率 [2] (2023) DNN 跟踪点交易数量、平均读取间隔、平均请求页面偏移量、平均回收页面数量、rsize NFS读取大小 吞吐量、性能提升 [35] (2024) SNN 地址、页面计数/带宽/IPC 地址模式/增量 预取覆盖率、IPC [17] (2024) DNN 页面/偏移量历史、频率向量、集群序列、页面计数/集群嵌入 下一个页面地址 预取覆盖率 [27] (2024) WaveNet CNN 文件ID、窗口大小 即将访问的文件 字节命中率、准确性、覆盖率、完成时间 [76] (2024) CNN和LSTM 读取请求日志、TF-IDF阈值、文件名 访问模式 延迟、命中率、延迟
缓存预取策略的总结、特点、目标和评估指标
6 层次存储
分层存储涉及多个级别的数据存储,每个级别具有不同的性能和成本特性。通常,数据最初根据其预期的访问频率和性能考虑放置在特定的层级上,然后根据需要迁移到不同的层级。随着数据量呈指数级增长和存储技术的进步,层级放置和迁移策略变得越来越重要。
6.1 层级放置
本节探讨数据放置策略,重点关注数据最初如何分配到不同的存储层级。目的是将频繁访问的数据放置在高性能存储(例如SSD)上,将较少活动的数据放置在成本较低的存储(例如HDD)上,以优化性能与成本的比例。
6.1.1 基于传统机器学习的方法进行层级放置
基于传统ML的层级放置策略预测每个数据项的最佳位置,平衡性能和成本。Archivist [62] 是一种用于混合存储系统的ML辅助数据放置机制,它利用神经网络。该过程首先使用文件访问追踪器收集文件使用数据,包括读取和写入的偏移量/长度以及操作的大小。这些数据作为输入传递给神经网络,神经网络根据存储类型(NVM、SSD或HDD)、访问模式以及存储特性(如延迟和容量)对文件进行分类。Archivist中使用的神经网络结构包括三层:输入层、具有“relu”激活函数的隐藏层和具有“softmax”激活函数的输出层。一旦这些文件被分类,Archivist就会根据每种存储介质的容量限制将它们放置在适当的存储层级中,从而减少文件访问延迟并提高系统性能。
Optimized Learning-based Directory Placement (OLDP) [89] 是一种目录级别的策略,它使用轻量级ML来预测新创建的目录将被访问的频率,并决定其放置位置。它首先使用k-means聚类算法根据使用信息对现有目录进行分组,然后使用Light Gradient Boosting Machine (LightGBM) 对新目录进行分类和标记。这些预测还考虑了共享同一父文件夹的同级目录的行为。OLDP还使用Analytic Hierarchy Process (AHP) 来为资源分配不同的优先级。最后,他们的方法采用两轮选择机制,防止频繁访问的目录使快速设备过载。
6.1.2 基于强化学习的方法进行层级放置
最近只有一种基于RL的方法被提出用于解决混合存储系统中的层级放置问题。特别是Jeong和Woo [34] 提出了一种用于分散存储系统的基于RL的数据放置策略。他们提出的CoMoRL框架使用基于模型的RL方法来适应异构设备上的数据放置策略,考虑I/O吞吐量、延迟和利用率。通过采用两级层次模型,该框架抽象了单个存储设备的行为和系统动态,使RL代理能够实时做出智能的放置决策。此外,元学习机制确保即使系统配置发生变化,放置策略也能保持稳健,避免了频繁重新训练的需要。这种基于RL的、自适应且可配置的放置方法提高了存储效率和系统性能,展示了在管理分散存储环境方面的改进。
6.1.3 基于深度学习的方法进行层级放置
本节讨论使用先进的神经网络、多层感知器(MLPs)和深度RL模型来确定数据在存储层级中的最佳初始放置位置。Kleio [16] 是一种混合页面调度器,它使用RNNs改进了异构内存系统中的数据放置。它结合了传统的基于历史的数据分层方法和先进的ML技术来预测页面访问模式并优化页面分配。通过利用RNN捕捉访问序列中的长期依赖性,Kleio能够处理基于历史方法无法有效处理的复杂页面访问模式。
[61] 中的DL辅助数据放置机制通过预测文件的访问模式,将文件自适应地放置在适当的存储介质上。它包括三个组成部分:文件访问追踪器、基于DL的文件分类器和数据放置算法。文件访问追踪器与文件系统集成,监控并记录文件访问信息。然后使用滑动窗口采样方法处理这些数据,将使用细节转换为结构化特征。其次,MLP根据预测的访问模式将文件分类为热、温冷类别。数据放置算法根据预测的流行度将这些分类的文件分配到相变存储器(PCM)、SSD或HDD。
Sibyl是一种由Singh等人 [72] 提出的基于DRL的方法,用于包含一个快速、低容量层级和一个慢速、高容量层级的混合存储系统中的数据放置。它监控各种特征,如请求大小、类型、访问次数和快速存储中的剩余容量,以做出优化系统性能的明智决策。Sibyl采用双组件架构:DRL决策线程预测Q值以最大化长期奖励,而DRL训练线程使用累积的经验更新策略。通过利用Categorical DQN (C51),Sibyl学习了Q值的分布,从而实现了在混合存储系统中提升性能的数据放置决策。其奖励结构旨在最小化平均请求延迟并优化存储利用率,从而显著提高了性能。
Lu等人 [49] 表明,RL已被应用于优化现代分布式存储系统中的数据放置策略。他们的基于RL的数据放置框架RLRP解决了异构存储环境、可扩展性和动态工作负载的问题。RLRP使用DQN模型创建放置和迁移代理,实现数据的自适应分布和动态迁移。此外,还使用注意力LSTM模型来优化异构环境中的数据放置,考虑了节点容量、CPU利用率、磁盘I/O速率和网络资源等因素。所提出的系统利用分阶段训练和模型微调来克服大状态和动作空间的计算挑战,确保了高效的训练和实时适应性。他们在Ceph分布式存储系统中的实现显著提高了读取性能和整体存储效率。
Kaler和Toshniwal [37] 提出了一种基于DRL的数据放置策略,以最小化延迟并优化数据中心网络中的资源利用率。他们的框架将数据放置视为MDP,并使用两种先进的DRL技术:Prioritized Replay Buffer Deep Q-Network (PBDQN) 和SAC。这些技术使RL代理能够通过分析网络延迟、处理延迟、用户请求模式和数据项大小等指标来动态确定最佳数据存储位置。PBDQN通过优先处理关键转换来加速训练,而SAC平衡了探索和利用,以支持稳定的、自适应的放置决策。该框架在读取/写入延迟和系统效率方面显示出改进,突显了RL在动态、大规模存储环境中实现智能数据放置策略的潜力。
6.1.4 关键见解
像Sibyl和Kleio这样的DL模型利用先进的神经网络来预测访问模式,从而改进数据放置决策,特别是在复杂的数据使用环境中。然而,这些实现带来了挑战,如计算复杂性和资源需求增加,使得它们难以实施和维护,特别是在资源受限的环境中。尽管存在这些挑战,DL方法仍然是最常用的方法,在优化数据放置方面占据主导地位。
在评估数据放置策略时作为基准的方法中,Hashing和Oracle算法(假设对未来有完美的了解,通常用于上限估计潜在收益)分别在两项不同的研究中被使用。此外,还有26种其他方法被用作基准,但没有一种方法在多篇文章中出现。这种不一致性和广泛的基准反映了数据放置的复杂性以及研究人员为解决这一问题而采用的多样化方法。
表6提供了各种数据放置策略的概述,分为传统ML、RL和DL三类。每项研究都强调了它使用的方法、主要目标/预测以及用于评估性能的指标。最常出现的特征是容量、读/写偏移量、I/O长度、时间戳和网络带宽。数据放置模型被训练来预测对象的最佳层级或用于决定其放置位置的流行度/热度指标。各篇文章中常见的评估指标包括延迟、吞吐量和加速比。表6列出了这些指标。
**参考文献(年份)** | **方法** | **关键特性** | **目标/预测** | **评估指标** |
| --- | --- | --- | --- | --- |
| [62] (2019) | 神经网络 | 读/写偏移量、读/写I/O长度、读/写偏移量跨度 | 预测文件访问模式 | 文件访问延迟 |
| [89] (2024) | K-means和LightGBM | 磁盘时间、目录深度、文件对象、I/O时间、父目录、广度、访问时间、时间戳 | 目录的状态信息 | 平衡度、资源利用率、性能指标 |
| [34] (2023) | 基于强化学习(meta-RL) | 设备级IOPS、延迟模式、工作负载分布、资源限制 | 数据放置层级 | 系统延迟、IOPS、公平性 |
| [16] (2019) | LSTM RNN | 时间戳、物理/虚拟内存地址、CPU/线程ID、加载/存储、命中/未命中 | 预测页面访问行为 | 命中率、加速比、错误减少 |
| [61] (2021) | 三层MLP神经网络 | 读/写偏移量、I/O长度、平均文件访问/修改时间间隔 | 文件流行度和访问模式 | 加速比、延迟、能耗 |
| [72] (2022) | 分类DQN(C51) | 页面大小、请求类型(读/写)、访问间隔/计数、快速层级容量、当前放置位置 | 将页面放置到哪个层级 | 请求延迟、吞吐量 |
| [49] (2022) | DQN、注意力LSTM | 节点容量、CPU利用率、I/O访问率、网络带宽 | 数据在节点间的放置 | 读取延迟、公平性、适应性、冗余性、内存使用、查找时间、过度配置、受影响对象、读取响应时间、吞吐量 |
| [37] (2023) | DQN和SAC | 数据大小、读/写延迟、网络带宽、存储容量 | 将数据放置到哪个层级 | 总结层级放置策略、特性、目标和评估指标 |
**6.2 层级迁移**
本节回顾了分层存储系统的迁移策略,这些策略根据特定特征或模式在各个层级之间移动数据。迁移策略对于确保频繁访问的数据位于更快、更昂贵的存储中,而较少访问的数据移动到较慢、更便宜的存储中至关重要。
**6.2.1 基于传统机器学习的方法**
本节探讨了几种基于传统机器学习的分层存储迁移方法,这些方法旨在预测每条数据的最佳层级。在像HDFS这样的分布式文件系统中开发了一个自动化分层存储管理的通用框架[30],该框架广泛应用于Apache Hadoop和Spark等数据密集型平台。他们的框架根据机器学习算法的洞察自动在存储层级(NVRAM、SSD和HDD)之间移动数据。与第5节讨论的AutoCache框架[29]类似,这种方法使用XGBoost和增量学习来动态预测未来的文件访问概率。模型通过增量学习进行适应,用新的访问数据更新其预测。这种动态迁移优化使系统能够适应变化的工作负载,而无需进行大量重新训练。该框架处理文件大小、最新性和访问频率来训练其预测性XGBoost模型,并决定是将数据提升以加快访问速度还是降级以节省空间。
Pang等人[56]提出了一种使用行为特定预测模型来预测存储系统中数据热度(即数据是否频繁访问或需求高的指标)的技术。他们的方法使用随机森林模型来预测每个组的未来访问模式。首先使用快速集计算信号以揭示存储请求中的模式,然后根据这些信号将这些请求分组。预测过程将时间划分为时间段,并使用一个时间段内观察到的访问模式来预测下一个时间段的访问情况。他们的系统使用历史数据进行训练,在预测过程中,它识别当前数据所属的组,并应用相应的预测模型来预测未来的请求。
Shetti等人[68]提出了基于K-Means的支持向量机(K-SVM)来分类和迁移数据,将其在性能(SSD)和容量(HDD)层级之间进行迁移。他们的方法采用两步机器学习过程:K-Means聚类首先选择反映当前使用模式的训练数据集,然后使用SVM分类器来确定哪些数据应该迁移以优化存储性能。在每个预定时间间隔,系统记录访问模式。当一个时间间隔结束时,K-SVM分类器分析这些模式,以确定哪些数据应该根据下一个时期的预测未来使用情况重新分配到不同的层级。
LoADM[90]是一种负载感知的目录迁移策略,通过主动将热门目录重新定位到负载较少的节点来缓解分布式文件系统中的负载不平衡。它依赖于基于学习的目录热度模型,使用LightGBM来识别潜在的高负载目录。一旦目录被标记,紧急性分析会检查目录和节点级别的状态,以确定是否需要立即迁移。LoADM还使用自适应的同级目录共同迁移,在适当的情况下将子目录(具有相同的父目录)分组,以利用目录的局部性。最后,它使用基于粒子群优化的迁移模型来选择合适的目标节点。
**6.2.2 基于强化学习的方法**
最近,基于强化学习的方法被开发出来用于在分层存储系统(HSSs)中动态迁移数据。在他们的研究中,Zhang等人[98]提出了一种使用强化学习的HSSs动态数据迁移策略。该方法解决了在具有不同性能和成本特性的多个存储层级之间管理数据的挑战。他们的基于强化学习的策略适应变化的访问模式,优化放置以提高效率并降低成本。作者定义了表示每个层级关键方面的状态变量(例如,文件热度级别、文件大小和排队时间)来建模系统状态。动作包括在层级之间迁移文件,由一个奖励函数指导,该函数最小化响应时间并优化资源利用率。他们展示了理论建模和实际实现,证明了在模拟和真实世界云环境中的有效性。
在后续工作中,Zhang等人[97]引入了一种基于强化学习的数据迁移策略,用于优化科学数据集在存储层级之间的分布。所提出的框架使用强化学习代理根据文件访问模式、文件热度级别和数据集特定特征(如兴趣值)动态决定数据移动的位置。通过利用MDP和基于模糊规则的近似方法,强化学习代理智能地适应变化的数据访问行为。这确保了频繁访问的数据位于更快、高性能的层级中,而较少访问的数据移动到较慢、成本效益更高的层级。
**6.2.3 基于深度学习的方法**
基于深度学习的方法分析复杂的数据访问模式,以预测数据应迁移到不同的存储层级。这些方法通过做出更准确的预测来改进迁移决策,从而提高整个系统的性能。Hsu等人提出了自动化存储分层(AST)系统[32],该系统旨在通过根据预测的未来访问将数据分类为“热”或“冷”类别来优化云存储管理。他们提出的方法使用堆叠集成学习方法,结合DNN、SVM和用户排名模型来预测数据热度。他们的预测模型分析过去的数据访问模式,包括访问频率和类型(读取、写入、修改、执行),以预测未来重新访问的可能性。基于这些预测,AST将热数据保留在更快的存储上,同时将冷数据移动到成本更低的层级,从而优化系统的成本性能比。
Thomas等人[79]开发了一种使用CNN预测高性能计算存储系统中文件寿命的方法。它使用文件路径来确定文件何时最后一次被访问,有助于确保文件及时从高性能层级转移到高容量归档层级。使用带有自定义损失函数的单一CNN可以提高预测准确性,并最小化估计文件最后一次使用时间的错误。损失函数在保证准确性的同时减少了低估,确保文件在使用期间不会被过早地转移到容量层级。LRRP[49](我们在6.1节中讨论过用于层级放置的方法)也实现了一个迁移代理,以确保在现代分布式存储环境中数据的公平分布和自适应迁移。该迁移代理使用与放置代理相同的DQN,但具有不同的动作空间。当添加新节点或触发手动迁移时,迁移代理选择要移动的虚拟节点的副本(如果存在的话)。代理的动作范围从0(表示副本不会迁移到新节点)到1到k(表示k个副本中的哪些将迁移到新节点)。每次动作后,LRRP更新其副本放置映射,重新计算系统的当前状态,并根据新状态的标准差分配奖励。
此外,Proteus[1]是一个分布式HTAP数据库系统,它动态管理数据存储,以支持混合OLTP和OLAP工作负载,而无需维护冗余数据副本。Proteus不使用固定的行或列导向格式,而是使用机器学习模型实时调整存储布局,这些模型预测工作负载模式并通过学习到的成本函数估计延迟影响。它采用混合集成预测器,结合RNN和线性趋势模型来指导存储布局调整,包括格式更改、副本放置、存储层级和分区。
**Simple Least Remaining Lifetime (SLRL) [53]** 是一种用于HPC系统中的文件存储迁移策略。与[79]类似,它使用CNN分析文件路径,但具体估计文件从创建到最后一次访问所经过的时间。与需要每次访问都进行更新的LRU不同,SLRL仅在文件创建时需要更新。这种操作上的简单性使SLRL类似于FIFO,但它不是简单地将文件放在队列的末尾,而是根据预测的剩余寿命对文件进行排序。寿命最短的文件首先迁移,确保有价值的空间可用于即将被访问的文件,并移除不太可能需要的文件。
Liu等人的研究[48]提出了一种利用强化学习自动化数据分层的新型云存储管理方法。所提出的RLTiering系统根据访问模式和存储成本优化数据在高成本/高性能和低成本/低性能存储层级之间的放置。DRL框架采用策略梯度方法来学习每个文件的最佳未来存储层级,同时考虑当前数据访问频率和存储成本。
**6.2.4 关键见解**
传统方法(如SVM和XGBoost)预测数据访问模式,以促进高效的数据迁移。深度学习模型特别擅长处理复杂环境,提高预测准确性,并确保频繁访问的数据保持在更快的层级上。结合机器学习与传统技术的混合方法变得越来越普遍,为多层数据迁移提供了更灵活的解决方案。例如,AST和Proteus中的混合集成方法使系统能够适应变化的工作负载。在评估迁移策略时,LRU是最常用的基线方法,出现在五项研究中,LFU出现在三项研究中,而SVM和Greedy各自出现在两项研究中。相比之下,其他40种方法仅被引用了一次。
表7提供了分层迁移方法的概述,包括它们的关键特性、主要目标/预测以及用于评估性能的指标。流行的特性包括访问频率/热度、文件大小、时间戳和可用带宽。这些模型通常预测数据的某个属性,如访问概率、热度或寿命,然后使用这些属性来决定是否向上或向下迁移数据。评估迁移政策的常用指标包括延迟、吞吐量、命中率和开销。表7。
参考文献(年份)方法关键特性目标/预测评估指标
传统基于ML的方法[30](2019)梯度提升树最近k次访问时间、文件创建时间、文件大小未来文件访问概率命中率、字节命中率、真正例率、字节准确率、字节覆盖率
[56](2019)随机森林总读写请求次数、访问频率的空间分布数据是否需求量大
真实不活跃率、虚假活跃错误、虚假不活跃错误、活跃命中、活跃命中范围、活跃未命中错误
[68](2022)K-SVM周期持续时间、切片大小、层容量比、可用带宽两个层之间需要迁移的数据切片高层命中率、总迁移大小
[90](2024)LightGBM目录深度/IOPS、时间标签、文件对象、IO时间、父目录宽度、时间戳差异、带宽目录的热度平衡度、IOPS、带宽、完成时间、开销
基于RL的方法[98](2022)时间差学习(TD(λ))文件热度级别、文件大小、排队时间向上迁移、保留或向下迁移系统延迟、迁移成本
[97](2024)时间差学习(TD(λ))文件访问模式、文件热度级别和特定数据集的特征文件热度级别数据访问延迟、存储效率
基于DL的方法[32](2018)堆叠集成学习文件访问频率、文件大小、扩展名、用户信息、访问模式(读/写/修改/执行)成本节约、体验质量
[79](2021)CNN仅文件路径预测文件生命周期准确性与低估之间的权衡
[49](2022)DQN、注意力LSTM节点容量、CPU利用率、IO访问率、网络带宽迁移哪个副本读取延迟、公平性、适应性、冗余性、内存使用、查找时间、过度配置、受影响对象、读取响应时间、吞吐量
[1](2022)循环神经网络访问的单元数量、列大小、基数、选择性、CPU使用率、发送/接收的字节数量、分区的竞争、涉及的更新/分区/站点即将到来的分区访问和总体延迟执行时间、OLTP吞吐量、OLAP延迟、完成时间
[53](2022)CNN文件路径的组成部分HDD层上的IO次数、HDD层上的读取次数
[48](2022)A3C演员-评论家数据访问模式、请求频率、存储持续时间、迁移成本每个文件的最佳存储层成本节约、访问效率
7 讨论
本节提供了缓存和分层方法内部及之间的比较见解。
7.1 缓存内部的比较见解
不同ML方法的流行程度取决于缓存策略。研究人员经常使用RL或传统ML来决定从缓存中移除哪些数据。这一决策主要是基于RL能够动态适应现代存储系统中常见的变化工作负载模式的能力。另一方面,只有三项过去的研究使用RL进行预取。同时,大多数研究人员更倾向于使用DL来预测哪些数据应该预取到缓存中。预取是一项更复杂的任务,如果决策错误,可能会对系统产生负面影响,导致将无用的数据带入缓存并造成缓存污染。在准入策略中,观察到RL、传统ML和DL模型的使用更加平衡。总体而言,如图3(a)所示,从传统方法转向更复杂的ML方法来管理数据访问模式的需求和复杂性。
7.2 分层内部的比较见解
高级神经网络被广泛用于自动化分层放置决策。DL模型,如Sibyl和Kleio中的模型,可以预测访问模式,从而改善数据在数据使用高度动态的环境中的放置。这表明神经网络在处理数据放置的复杂性方面具有潜力。分层迁移也经常依赖于DL,因为它能够处理复杂的数据模式。传统ML方法(例如SVM和XGBoost)也被多次用于预测迁移策略的数据访问模式。
7.3 缓存和分层之间的跨领域分析
在调查的研究中,评估方法差异很大。共有34篇文章依赖于基于模拟的设置(例如ChampSim),而24篇文章在真实硬件上进行实验。关于输入数据,34篇文章使用真实世界的数据轨迹(许多来自SNIA IOTTA仓库[73]),而27篇文章使用合成工作负载。其中,44篇文章在动态工作负载下评估他们的方法,显示出对变化访问模式的适应性,而15篇文章则没有,这在对现实环境中稳定性的评估上留下了一些不确定性。评估基于一系列广泛使用的基准和真实系统工作负载,包括在线事务处理(OLTP)、FileBench、Ceph、SPEC CPU 2006/2017、GAP基准套件、FIU存储轨迹、Compact Muon Solenoid(CMS)实验工作流程、UMass轨迹、PARSEC基准套件和CloudSuite。
鉴于评估环境、工作负载和指标的这种高度变异性,直接比较不同研究之间的性能是不可行的。相反,我们总结了一部分代表性文章的结果,以说明基于ML、RL和DL的方法在性能改进和开销减少方面的总体趋势。使用传统ML,K-SVM[68]实现的性能层次命中率与基于流行度的HAT和ChewAnalyzer相当,同时仅使用16 KB的元数据就将迁移大小平均减少了32倍。训练时间从3.06毫秒到211.79毫秒不等,具体取决于切片大小。LCache[77]是一种基于决策树的淘汰策略,与LRU、CFLRU和MQSim相比,响应时间提高了84%,并且减少了擦除次数。然而,K-SVM和LCache都没有与更复杂的基于ML的方法进行比较,使得它们的结果与其他基于IOTTA的研究相比不太具有可比性。Glider的ISVM预测器[69]在离线准确率上比Hawkeye高9.1%,在线准确率为88.8%对比84.9%,减少了LLC未命中次数8.9%,并且比LRU提高了8.1%的IPC。RLR的RL淘汰策略[66]仅使用16.75 KB的元数据,在单核和四核运行中比LRU提高了3-5%的性能。RL-CoPref[96]比LRU提高了32.1%的性能,并且比BO、MISB和ESBP提高了4.7-10.9%的IPC,在38.3 KB的存储开销下覆盖率提高了7.1-17.4%。Sibyl的RL分层放置策略[72]的性能比CDE、HPS、Archivist和RNN-HSS高出68.8%,准确率达到80%,所有这些都是在仅124 KB的开销和每个响应2微秒的情况下实现的。RL的适应性解释了它在可见和不可见场景中的优势。在预取方面,Pythia的25.5 KB RL代理[7]将IPC提高了22.4%,覆盖率比MLOP、Bingo和SPP高6.9-14%,并且其每个核心的开销仅为55毫瓦的功率,在低带宽、单核设置下仅有损失。Pathfinder[35]是一种DL方法,与Delta-LSTM相比进一步提高了18.7%,与SPP相比提高了9.3%,与Pythia相比提高了2%,同时保持了与Pythia相同的每个核心区域/功率的开销。Twilight的神经预取器[17]在速度上提高了24.1%,准确率上比Voyager提高了8.6%,其轻量级的T-LITE变体将权重保持在0.8 MB以下,仅具有29周期的延迟,同时仍然比Triage提高了20.7%的准确性。最后,DeepPrefetcher(RNN)[21]将准确率提高到64%,对比C-miner提高了64%,对比顺序基线提高了41%,对比ARIMA提高了37%。
上述结果提供了基于学习的技术在不同缓存和分层环境中表现的定性视图。总体而言,RL非常适合需要快速适应的淘汰决策,能够利用KB级别的元数据带来稳定的收益。深度模型在预取和分层决策方面表现出色,这些决策利用了时间和空间相关性,许多研究报告了高命中率的提升,同时保持了较低的决策延迟和适度的模型大小。ML、RL和DL方法之间的权衡和实际场景在表8中进行了总结。
8 新兴趋势、挑战和未来方向
本节探讨了分层存储系统中的最新趋势、挑战和未来方向,涵盖了多个新兴领域。
8.1 新兴趋势和创新应用
计算、存储和智能系统的最新进展显著影响了分层存储系统的设计和运营。本节研究了关键的新兴趋势和创新应用,包括边缘计算、AI增强的存储、混合云模型和新型硬件技术,这些都在推动缓存和分层机制的演变。这些发展正在重塑数据在各种环境中的存储、访问和管理方式,为性能、可扩展性和效率提供了新的机会。
云和边缘计算用于优化数据处理。云和边缘计算正在通过缓存和分层策略优化存储和处理,从而减少对集中式云基础设施的依赖,降低带宽使用并提高响应时间。通过本地缓存频繁访问的内容,边缘计算增强了CDN的性能[102]。例如,Wang等人[88]提出了一个基于ML的框架,该框架联合优化了移动边缘计算、缓存和通信。在混合云-边缘架构中,边缘计算通过根据访问模式动态分配数据,在本地快速存储和集中式较慢存储之间实现实时数据处理和决策。这种集成结合了集中式可扩展性和本地响应性的优势[92],使其特别适用于对延迟敏感和数据密集型应用。
AI增强的计算和存储系统。人工智能(AI)越来越多地应用于优化数据缓存和分层。技术如RL和DL可以预测访问模式,允许动态调整缓存策略和数据放置。这确保了频繁访问的数据位于高速层中,而不频繁访问的数据则被移动到成本效益高的存储中,从而提高了整体性能和存储利用率。AI还在混合云系统中推进了数据管理。预测分析可以确定数据应该留在边缘、本地数据中心还是转移到云中,这取决于使用趋势,从而降低传输成本并提高效率[98]。这些智能系统支持实时优化,使得存储基础设施更加响应迅速且成本效益更高。
安全增强。随着存储系统变得越来越复杂,确保所有层的数据安全变得至关重要。为了保护静态和传输中的数据,已经提出了诸如加密缓存、安全多方计算以及基于区块链的方法等技术[95]。特别是加密边缘缓存,即使在物理安全环境较差的情况下也能保护数据。由人工智能驱动的安全机制正在获得关注,这些机制利用异常检测来监控访问模式并实时响应威胁。例如,Mohammad和Pradhan[51]探讨了使用大数据分析和机器学习(ML)进行云安全保护的方法,展示了将预测模型集成到安全缓存系统中以在保持保密性的同时提升性能的潜力。
混合云和多层存储解决方案。混合云和多层存储系统被广泛采用,以平衡性能、成本和安全性。这些架构结合了私有云和公有云资源,根据使用需求实现数据放置策略的动态调整。多层缓存通过将频繁访问的数据分布在不同的云层中来减少延迟[29]。多层存储通过根据访问频率在不同存储层级之间迁移数据(例如,使用NVMe进行高速访问、SSD进行中等速度存储以及HDD进行长期归档)进一步提高效率[98]。由人工智能驱动的系统通过实时动态管理数据来增强这种架构,确保在混合环境中既具备高性能又能节省成本[62]。
针对云环境的存储硬件创新。存储硬件的进步对于实现高效的缓存和分层至关重要。像非易失性内存快速(NVMe)和持久内存(PM)这样的技术提供了更低的延迟和更高的吞吐量,使其非常适合用于高性能应用中的缓存层[98]。NVMe在服务频繁访问的数据方面特别有效,可以减少终端用户的延迟。此外,PM结合了RAM的速度和存储的持久性,即使在断电情况下也能保留数据,从而提高了系统的韧性和恢复能力[56]。这些技术重塑了存储层次结构,使得现代云环境中的数据管理更加精细和高效。
8.2 挑战与未来方向
尽管在分层存储系统方面取得了显著创新,但仍有一系列技术挑战和研究机会尚未解决。本小节重新审视了六个基本挑战——能源效率、工作负载变化性、多租户、异构环境、可扩展性和安全性,并提出了扩展性和前瞻性的发展方向。这些改进强调了存储智能协同设计、人工智能集成以及系统范围的适应性。主要的动机和长期视角部分受到了NSF赞助的“2025年数据存储研究愿景”报告[6]中概述的方向的启发。
能源效率:随着数据量的持续增长,频繁的I/O操作和数据移动所带来的能源消耗成为一个主要瓶颈。特别是在使用快速访问设备(如DRAM和SSD)的系统中这一问题更为明显。未来的发展方向包括开发能够最小化写操作放大效应和数据迁移的自适应、工作负载感知的缓存策略,并集成机器学习模型来预测访问位置并优先考虑能源效率高的数据放置。此外,利用低功耗存储技术和协同优化存储与计算资源有助于实现可持续的能源消耗。强化学习(RL)模型还可以进一步协助做出预测性、能源意识强的层级放置决策[64]。
管理工作负载变化性:分层存储系统必须应对由多样化且不断变化的应用程序驱动的访问模式波动。静态策略在这种变化性下无法维持最佳性能。未来的解决方案需要实时自适应的缓存和分层算法,这些算法利用流式分析和强化学习来实现动态调整。这些方法可以动态识别热点数据并将其重新分配到高性能存储中,即使在突发性工作负载下也能减少延迟并提高吞吐量。结合在线学习模型还可以在运行时实现自适应的缓存和层级管理[42]。
解决多租户问题:云存储基础设施中的多租户现象带来了性能隔离和公平性的挑战。“噪声邻居”效应(即一个租户的工作负载会降低其他租户的体验)需要智能的资源仲裁。未来的系统必须实施增强人工智能的服务质量(QoS)机制来预测资源竞争并重新平衡负载。此外,必须集成安全的多方计算和加密的分层存储,以确保数据隐私而不影响系统效率。可解释性人工智能的使用可以提供透明的仲裁和对资源竞争及数据放置决策的洞察[5]。
管理异构存储系统:管理包含NVMe、SSD、HDD和冷存储的混合环境变得越来越复杂。未来的存储堆栈必须利用基于机器学习的性能和成本模型来智能地抽象这些层级并优化数据放置。统一的接口和开放标准也是确保互操作性的必要条件。诸如跨设备层级感知索引和上下文感知预取等技术可以进一步简化不同类型存储之间的数据流。共同设计的、增强机器学习的存储控制器为原生支持分层优化提供了有希望的解决方案[82]。
可扩展性挑战:随着数据集的增长和应用需求的提高,存储系统必须高效扩展而不引入延迟瓶颈。新兴的解决方案包括分布式分层协议和去中心化的缓存框架,这些框架使用共识算法或人工智能代理来做出本地化但协调的决策。对多个节点之间的联合缓存策略和分层的研究有望提高系统的弹性和可扩展性。此外,应用程序向存储子系统提供提示的协作智能机制也可以支持协调扩展[25]。
部署和集成挑战:将机器学习方法从模拟环境应用到实际系统中存在困难,这主要是由于高处理成本和集成问题[35, 69]。复杂的模型往往会减慢数据访问速度,有时对系统的负面影响大于其带来的好处。此外,现有的存储系统并未设计为能够有效集成这些复杂算法[22]。未来的研究应致力于使这些模型轻量化且高效,以减少I/O延迟。同时,还需要设计标准化的接口以便存储系统与学习模型交互,并实现回退机制,在推理性能下降时切换回静态策略。
存储系统中的安全与隐私问题:由于敏感的用户和企业数据存储在易失性和非易失性介质上,因此在整个数据生命周期中保持安全性至关重要。分层系统必须采用端到端加密、零信任访问控制和不可变的审计跟踪。此外,将差分隐私集成到数据放置决策中,并在存储操作中应用可解释性人工智能模型,可以在确保智能分层系统的同时增强信任并符合监管要求。基于存储遥测数据的主动异常检测和在增强人工智能存储中的对抗鲁棒性是重要的发展方向[39]。
表9概述了推进分层存储所面临的挑战和战略方向。基于人工智能、动态系统建模和跨层协调的解决方案对于构建高效、安全且能够应对不断变化的工作负载的未来就绪存储基础设施至关重要。
表9. 挑战 当前状态 未来研究方向
能源效率 高能源消耗来自频繁的数据移动和快速访问存储设备 开发能源感知存储技术和自适应缓存/分层策略,结合预测性机器学习模型和低功耗存储
工作负载变化性 静态策略无法适应动态的工作负载模式 使用预测分析和强化学习实现实时自适应层级放置
多租户 共享基础设施可能导致性能下降和安全问题 实施资源隔离、可解释性人工智能仲裁和安全的加密存储分配机制
异构系统 难以协调不同设备的能力和能耗特性 开发智能管理框架,结合共同设计的机器学习存储控制器,并推动接口标准化
可扩展性 数据和用户负载的增加挑战分层效率 设计联合的、分布式的缓存和协作智能框架以实现可扩展决策
部署和集成 高处理成本和与现有系统的弱集成 设计轻量级模型、标准接口和回退机制
安全与隐私 多层云环境中的更大攻击面 采用加密、保护隐私的人工智能、主动异常检测和零信任框架
9 结论
回顾现代缓存和分层策略后,一个明显趋势是:越来越多地使用复杂的机器学习技术来更智能地管理数据。强化学习在驱逐策略中至关重要,因为它能够适应快速变化的数据访问模式;而深度学习方法则因其能够模拟数据中的复杂时间和空间关系而被广泛用于预取。缓存准入策略在强化学习、传统机器学习和深度学习模型之间分配得更加均衡,这反映了确定哪些数据项进入缓存的各种环境和需求。此外,层级放置和迁移策略也遵循类似的趋势,越来越依赖于更复杂的机器学习模型。深度学习在层级放置方面尤其受欢迎,因为它可以学习数据在不同存储层级中的多样化、不可预测的访问方式。例如,卷积神经网络(CNN)可以跟踪随时间的变化模式,然后根据当前和预期的工作负载决定将数据存储在更快或更慢的层级中。深度学习方法还主导了层级迁移过程。通过持续监控工作负载,这些高级模型可以识别出需要在更快和更慢层级之间移动的数据,从而减少不必要的开销并最小化延迟。例如,深度神经网络(DNN)能够捕捉数据热度的细微变化,使频繁访问的数据保持在高性能存储层级中,而不太关键的数据则降级到成本较低的层级。深入理解本调查中讨论的缓存和分层方法对于应对现代数据存储系统中面临的能源效率、工作负载变化性、多租户、异构性、可扩展性和安全性等挑战至关重要。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号