论文部分内容阅读
数据时代需要高效地处理规模庞大的数据以获取需要的信息。近年来研究界提出的基于存储级内存(Storage Class Memory,SCM)介质的内存文件系统在高效处理大量实时数据方面表现出了极大的潜力。能够连续稳定的可靠工作是设计文件系统时必须要考虑的一个重要问题,文件系统的可靠性由更新时维护数据的一致性来保证。内存文件系统的数据访问方式和I/O路径不同于传统面向块设备的文件系统,现有的一致性更新机制没能很好的利用SCM介质的特点,适用于内存文件系统的数据一致性更新机制尚未得到很好的研究。另一方面基于SCM介质的内存文件系统的高性能是以消耗大量内存带宽为基础的,在文件的整个访问过程中会持续占用大量内存带宽,从而影响系统中其它需求带宽进程的性能。本文中,我们提出了一种有效的数据一致性更新机制——两栖更新策略(Amphibian Update Strategy,AUS),它能很好的利用SCM介质按字节寻址、随机访问和可以使用虚拟地址进行连续读写的特点。AUS根据更新请求数据量大小决定使用直接拷贝(Direct Copy,DC)或原子性更新(Atomic Update,AU)进行主文件一致性的维护。我们以内存文件系统SIMFS为基础,实现了多种现有数据一致性更新机制的版本。使用文件系统测试基准IOZone分别测试了各种数据一致性更新机制实现在SIMFS中的性能,实验结果表明AUS性能最好。为了应对直接使用Linux现有调度器CFS进行调度时,内存访问密集型进程会大量消耗内存带宽从而影响其它进程执行的问题。我们首先构建了一个在带宽有限情况下可以获得工作集的最短完成时间的ILP调度模型,然后提出了带宽自适应(Bandwidth-Fit,B-Fit)启发式算法来有效的解决工作集的调度问题。虽然ILP总能找出最优解,但由于其运行时间随着问题规模的增大呈指数增长,所以能够在O(n)时间内找出接近于最优解的B-Fit算法才更为实用。我们把该项技术使用用户级权限实现到Linux系统中,实验表明与CFS相比,其最多可以将工作集的最终完成时间减少33.3%。