关键词:
非易失内存
异构内存
异构内存管理
磨损均衡
键值存储
摘要:
非易失性内存(Non-Volatile Memory,NVM)具有高存储密度、字节可寻址、每比特成本低、待机功耗接近零的特点,为设计大容量内存系统带来新的机遇。但是,NVM比动态随机存取内存(Dynamic Random Access Memory,DRAM)的访问延迟更高、带宽更低、寿命更短,这使异构内存管理机制需要基于应用访存特征来考虑不同介质的内存特性。然而系统不同层次所能感知到的访存特征的内涵是不同的,如何围绕系统不同层次的访存特征设计高效的异构内存管理机制成为了核心问题。
在硬件设备、操作系统和软件中间件等不同系统层面上,基于应用访存特征的异构内存管理机制所面临的问题也是不同的。在硬件管理层面,异构内存管理策略的访存信息容易被劫持并用于非易失内存的磨损攻击。在操作系统层面,内存管理机制不能有效利用异构内存的不同特性来提高访存性能。在单节点数据管理层面,现有异构内存存储机制没有充分利用DRAM和NVM的读写性能不对称特性来降低数据序列化开销。在分布式数据管理层面,单节点异构内存优化策略难以高效移植至分布式环境中。为此,从硬件内存管理、内核内存管理、单节点数据管理和分布式数据管理这四个研究视角入手,分别解决磨损防御、分配迁移、高效存储、分布共享这四个关键问题。
在硬件内存管理层面,现有NVM内存磨损均衡机制通常依赖访存热度信息实现优化设计,但其访存信息易被劫持,导致均衡失效、磨损加速。为此,提出了基于访存热度感知的异构内存磨损防御机制。首先,设计了基于批次的细粒度地址随机重映射方法,以解决传统基于访存热度的磨损均衡机制暴露访存特征从而易被劫持的问题;其次,设计了基于热度偏移指标的主动自我保护方法,以阻断访存劫持攻击的进一步危害;最后,实验证明,所实现系统相比于基于概率的磨损均衡策略,能有效抵御基于访存信息劫持的翻转地址攻击,并减少NVM磨损速率,增大NVM使用寿命。
在内核内存管理层面,现有NUMA(Non Uniform Memory Access,NUMA)架构内存管理方法无法有效识别异构内存,本地化读写策略失效。为此,提出了基于访问特征分类的异构NUMA内存分配与迁移机制。首先,引入了新的内存接口和抽象,以区分NVM和DRAM数据访问;其次,提出了NUMA拓扑结构感知的异构内存静态分配策略,以获得异构内存数据静态放置的最优比例;然后,提出了基于访问热度和带宽利用率的数据迁移策略,以动态平衡异构NUMA上的数据放置;最后,提出了基于访存信息的异构内存NUMA仿真平台,以保证异构内核的模拟测试。实验表明,基于访问特征分类的异构NUMA内存分配与迁移机制能有效提高应用性能,增加应用吞吐量。
在单节点数据管理层面,现有异构内存存储系统无法有效利用DRAM缓冲机制优化写操作,且低效的索引结构放大了数据跨内存介质的序列化开销。为此,提出了基于写访存特征感知的异构内存日志合并存储机制。首先,将日志结构合并树中的存储数据结构替换为可字节寻址的持久性跳表,以高效管理NVM中的键值对;其次,提出了整块刷出策略、弹性NVM缓冲区、零拷贝压缩和懒惰拷贝压缩的两阶段的数据压缩策略等关键技术,以大幅减少压缩开销和写放大,提升了系统性能;最后,实验证明,基于写访存特征感知的异构内存日志合并存储机制能增加异构存储系统的吞吐,降低了延迟性能,并减少长尾延迟。
在分布式数据管理层面,分布式异构内存环境的全局访存信息获取开销大,难以大幅提升异构内存扩展性和远程访问性能。为此,提出了基于分布式访存感知的异构内存RDMA(Remote Direct Memory Access,RDMA)共享机制。首先,通过客户端的RDMA读/写语义设计了一个轻量级的内存访问监控策略,大大减少了分布式访存监测开销;其次,提出了高效的DRAM缓冲策略、内存空间租赁分配策略、共享异构内存池可恢复通信策略等,从而降低远端数据读操作的访存开销,将写操作开销从关键路径中移除,保证数据一致性;最后,实验证明,基于分布式访存感知的异构内存远程直接内存访问共享机制能有效加速各类分布式应用在异构内存上的运行性能,并有效管理分布式异构内存资源。