论文部分内容阅读
云服务商需要高性价比的大规模存储,通常采用混合存储节点,也就是使用高速固态硬盘(Solid State Drive, SSD)作第一级快速存储,机械硬盘(Hard Disk Drive, HDD)作第二级后端存储。但是SSD存在写磨损和写延迟相对高的问题,因此如何尽量减少SSD写入数据量,并充分发挥其读性能优势,成为了研究热点。
为了理解大规模商业云系统中的数据存取行为,本文分析了阿里巴巴公司盘古存储系统中多个混合存储节点的存取行为(traces)记录,发现以下三个特点:(1)部分节点的读请求占比很高(95%以上);(2)冷数据占比大,很多数据(70%左右)存取次数低于6次;(3)文件块存取行为和它的属性(客户端等)具有一定关联。因此,准确识别文件当前冷热情况,过滤掉对冷数据的SSD写行为,只将热数据写入SSD,可以减少SSD写入量,提高SSD缓存命中率。
基于上述思路,构建一个基于机器学习的冷热数据分类缓存机制,以文件块(chunk)为分类对象,先验地区分冷热文件块。首先从traces记录中提取文件块大小、时间等信息。并使用迭代法更新文件块历史重用距离,在保证常数复杂度的前提下,保存尽可能多的信息。然后把这些信息作为分类特征,使用决策树(Decision Tree, DT)等七种传统机器学习算法、卷积神经网络(Convolutional Neural Networks, CNN)等两种深度学习算法做分类。结果表明,集成学习方法XGBoost(eXtreme Gradient Boosting)的效果最好,预测准确度在87%左右,AUC值在0.96左右。最后根据缓存空间大小、文件块平均大小确定最佳分类阈值。
实验证明,冷热数据分类缓存机制可以有效提高缓存命中率并降低SSD写入量。将本策略结合LRU缓存算法后,其缓存命中率平均提高了4.84%,SSD写入量平均降低了21.69%。
为了理解大规模商业云系统中的数据存取行为,本文分析了阿里巴巴公司盘古存储系统中多个混合存储节点的存取行为(traces)记录,发现以下三个特点:(1)部分节点的读请求占比很高(95%以上);(2)冷数据占比大,很多数据(70%左右)存取次数低于6次;(3)文件块存取行为和它的属性(客户端等)具有一定关联。因此,准确识别文件当前冷热情况,过滤掉对冷数据的SSD写行为,只将热数据写入SSD,可以减少SSD写入量,提高SSD缓存命中率。
基于上述思路,构建一个基于机器学习的冷热数据分类缓存机制,以文件块(chunk)为分类对象,先验地区分冷热文件块。首先从traces记录中提取文件块大小、时间等信息。并使用迭代法更新文件块历史重用距离,在保证常数复杂度的前提下,保存尽可能多的信息。然后把这些信息作为分类特征,使用决策树(Decision Tree, DT)等七种传统机器学习算法、卷积神经网络(Convolutional Neural Networks, CNN)等两种深度学习算法做分类。结果表明,集成学习方法XGBoost(eXtreme Gradient Boosting)的效果最好,预测准确度在87%左右,AUC值在0.96左右。最后根据缓存空间大小、文件块平均大小确定最佳分类阈值。
实验证明,冷热数据分类缓存机制可以有效提高缓存命中率并降低SSD写入量。将本策略结合LRU缓存算法后,其缓存命中率平均提高了4.84%,SSD写入量平均降低了21.69%。