摘要 | 第5-6页 |
Abstract | 第6-7页 |
第一章 引言 | 第13-21页 |
1.1 项目背景 | 第13-15页 |
1.2 国内外基于NVM的存储系统的研究现状 | 第15-18页 |
1.3 选题意义 | 第18页 |
1.4 本文的主要工作 | 第18-20页 |
1.5 本文的组织结构 | 第20-21页 |
第二章 技术综述 | 第21-26页 |
2.1 NVM地址映射 | 第21-22页 |
2.2 NVM内存管理 | 第22-24页 |
2.3 NVM操作原子性 | 第24-25页 |
2.4 本章小结 | 第25-26页 |
第三章 NVM内存分配器的分析与设计 | 第26-46页 |
3.1 系统需求分析 | 第26-27页 |
3.2 系统总体设计 | 第27-32页 |
3.3 NVM内存分配器——libnvmalloc | 第32-36页 |
3.3.1 libnvmalloc的细粒度划分方案 | 第32-33页 |
3.3.2 libnvmalloc的模块组织结构 | 第33-36页 |
3.4 伙伴分配器(Buddy Allocator) | 第36-41页 |
3.4.1 伙伴分配器概述 | 第36-37页 |
3.4.2 伙伴分配器的设计 | 第37-41页 |
3.5 高效bitmap——bmp4k | 第41-45页 |
3.5.1 充分利用硬件特性的64位bitmap的设计 | 第42-44页 |
3.5.2 嵌套结构的4096位bitmap的设计 | 第44-45页 |
3.6 本章小结 | 第45-46页 |
第四章 NVM内存分配器的实现 | 第46-62页 |
4.1 libnvmalloc的实现 | 第46-50页 |
4.2 伙伴分配器的实现 | 第50-54页 |
4.3 bmp4k的实现 | 第54-59页 |
4.4 libnvmalloc对外接口性能 | 第59-61页 |
4.5 本章小结 | 第61-62页 |
第五章 NVM内存分配器应用与测试——以Redis为例 | 第62-80页 |
5.1 对Redis源码的修改 | 第62-71页 |
5.1.1 为redisServer数据结构增加对NVM的支持 | 第62-63页 |
5.1.2 为config.c参数处理逻辑增加NVM初始化代码 | 第63-65页 |
5.1.3 为zmalloc增加NVM空间管理函数集 | 第65-68页 |
5.1.4 增加将sds移动到NVM的逻辑 | 第68-69页 |
5.1.5 修改aof.c以支持NVM指针 | 第69-71页 |
5.2 NVM版Redis性能测试 | 第71-79页 |
5.2.1 Volatile应用场景 | 第71-74页 |
5.2.2 AOF应用场景 | 第74-79页 |
5.3 本章小结 | 第79-80页 |
第六章 总结与展望 | 第80-82页 |
6.1 总结 | 第80-81页 |
6.2 进一步工作展望 | 第81-82页 |
参考文献 | 第82-87页 |
致谢 | 第87-89页 |