基于硬件事务内存的内存计算系统可扩展性研究
摘要 | 第16-18页 |
Abstract | 第18-20页 |
第一章 绪论 | 第21-33页 |
1.1 研究背景 | 第21-23页 |
1.1.1 内存计算背景 | 第21-22页 |
1.1.2 内存计算可扩展性 | 第22-23页 |
1.1.3 硬件事务内存 | 第23页 |
1.2 国内外相关研究 | 第23-27页 |
1.2.1 可扩展性相关研究 | 第23-25页 |
1.2.2 硬件事务内存相关研究 | 第25-26页 |
1.2.3 内存计算系统的高可靠性 | 第26-27页 |
1.3 本文工作 | 第27-33页 |
1.3.1 之前研究的不足 | 第27-28页 |
1.3.2 本文的主要贡献 | 第28-30页 |
1.3.3 本文组织结构 | 第30-33页 |
第二章 受限事务内存 | 第33-45页 |
2.1 引言 | 第33-34页 |
2.2 背景知识 | 第34-37页 |
2.2.1 RTM编程接口 | 第34-35页 |
2.2.2 RTM基本原理 | 第35-36页 |
2.2.3 RTM主要的局限性 | 第36-37页 |
2.2.4 RTM与锁机制的结合 | 第37页 |
2.3 RTM的特性研究 | 第37-42页 |
2.3.1 研究环境和方法 | 第37-38页 |
2.3.2 事务执行时间 | 第38页 |
2.3.3 事务访存大小 | 第38-41页 |
2.3.4 事务的访存模式 | 第41-42页 |
2.4 小结 | 第42-45页 |
第三章 使用RTM构建高可扩展键值存储 | 第45-63页 |
3.1 引言 | 第45页 |
3.2 使用RTM并行化数据结构方法的探究 | 第45-54页 |
3.2.1 跳表的基本介绍 | 第46-47页 |
3.2.2 传统的并发实现方法 | 第47-48页 |
3.2.3 使用RTM实现并行跳表的基本算法 | 第48页 |
3.2.4 事务工作集大小对系统的影响 | 第48-50页 |
3.2.5 编译环境的影响 | 第50-52页 |
3.2.6 RTM事务回退路径实现 | 第52-53页 |
3.2.7 不同并行算法的比较 | 第53页 |
3.2.8 基于RTM构建并行数据结构的关键技术 | 第53-54页 |
3.3 基于B~+树的高可扩展键值存储 | 第54-57页 |
3.3.1 基本介绍 | 第55页 |
3.3.2 使用RTM实现并发操作 | 第55-56页 |
3.3.3 性能评测 | 第56-57页 |
3.4 基于散列表的高可扩展键值存储 | 第57-59页 |
3.4.1 基本介绍 | 第57-58页 |
3.4.2 使用RTM实现并发操作 | 第58页 |
3.4.3 性能评测 | 第58-59页 |
3.5 基于布谷鸟散列表的高可扩展键值存储 | 第59-61页 |
3.5.1 基本介绍 | 第59-60页 |
3.5.2 使用RTM实现并发操作 | 第60-61页 |
3.5.3 性能评测 | 第61页 |
3.6 小结 | 第61-63页 |
第四章 基于RTM构建高可扩展内存数据库 | 第63-97页 |
4.1 引言 | 第63-65页 |
4.2 系统总体架构 | 第65-66页 |
4.3 记录存储层 | 第66-67页 |
4.4 事务协议层 | 第67-74页 |
4.4.1 记录元数据的格式 | 第68页 |
4.4.2 事务协议基本算法 | 第68-72页 |
4.4.3 数据库的基本操作 | 第72-74页 |
4.5 高效快照机制 | 第74-76页 |
4.6 内存回收机制 | 第76-78页 |
4.6.1 内存回收的问题和挑战 | 第76-77页 |
4.6.2 基于静息状态的内存回收机制 | 第77-78页 |
4.7 持久化机制 | 第78-82页 |
4.7.1 基本语义 | 第78页 |
4.7.2 日志记录 | 第78-80页 |
4.7.3 系统恢复 | 第80-81页 |
4.7.4 持久化的影响和相关优化 | 第81-82页 |
4.8 具体实现优化 | 第82-84页 |
4.8.1 RTM回退路径 | 第82-84页 |
4.8.2 协议层记录缓存 | 第84页 |
4.9 性能评测 | 第84-96页 |
4.9.1 评测环境 | 第85页 |
4.9.2 与已有内存数据库的比较 | 第85-88页 |
4.9.3 可扩展性测试 | 第88-89页 |
4.9.4 协议层的性能开销 | 第89-90页 |
4.9.5 RTM相关评测 | 第90-91页 |
4.9.6 基于不同索引结构的性能评测 | 第91-93页 |
4.9.7 快照机制的性能评测 | 第93-94页 |
4.9.8 持久化性能评测 | 第94-95页 |
4.9.9 系统各要素的性能影响 | 第95-96页 |
4.10 小结 | 第96-97页 |
第五章 基于RTM和事务切分的并发控制机制 | 第97-133页 |
5.1 引言 | 第97-99页 |
5.2 传统事务切分的方法和问题 | 第99-104页 |
5.2.1 传统事务切分的基本方法 | 第99-101页 |
5.2.2 线性一致性的问题 | 第101-102页 |
5.2.3 切分粒度的问题 | 第102页 |
5.2.4 传统快照算法的问题 | 第102-104页 |
5.3 保证线性一致性的事务切分机制 | 第104-107页 |
5.3.1 基本理论和算法 | 第104-105页 |
5.3.2 正确性证明 | 第105-107页 |
5.4 基于传统事务切分的快照机制 | 第107-113页 |
5.4.1 基本理论和核心思想 | 第107-108页 |
5.4.2 设计与实现 | 第108-112页 |
5.4.3 正确性证明 | 第112-113页 |
5.5 基于交错限制的事务切分 | 第113-121页 |
5.5.1 事务交错的概念 | 第113-114页 |
5.5.2 事务交错与可串行性 | 第114-115页 |
5.5.3 基本算法 | 第115-116页 |
5.5.4 同步原语 | 第116-118页 |
5.5.5 快照机制 | 第118-119页 |
5.5.6 线性一致性 | 第119-120页 |
5.5.7 算法的局限性 | 第120-121页 |
5.6 事务切分与RTM相结合 | 第121-126页 |
5.6.1 面向事务切分的优化技术 | 第122-125页 |
5.6.2 面向RTM的优化技术 | 第125-126页 |
5.7 与传统并发控制的比较 | 第126-128页 |
5.8 性能评测 | 第128-132页 |
5.8.1 评测方法 | 第128-129页 |
5.8.2 评测结果 | 第129-132页 |
5.9 小结 | 第132-133页 |
第六章 可持久化硬件事务内存 | 第133-153页 |
6.1 引言 | 第133-134页 |
6.2 背景知识 | 第134-137页 |
6.2.1 多核处理器缓存一致性协议 | 第134-135页 |
6.2.2 基于缓存一致性的硬件事务内存机制 | 第135-136页 |
6.2.3 非易失性存储器 | 第136-137页 |
6.3 主要问题和挑战 | 第137-139页 |
6.3.1 事务语义的保证 | 第137-139页 |
6.3.2 与非事务执行流的交互 | 第139页 |
6.3.3 有限制的硬件事务内存的支持 | 第139页 |
6.4 持久化硬件事务内存的总体结构 | 第139-141页 |
6.5 处理器芯片的基本设计 | 第141-145页 |
6.5.1 处理器缓存数据的读取 | 第141-142页 |
6.5.2 处理器缓存数据的更新 | 第142-143页 |
6.5.3 缓存行的写回 | 第143-144页 |
6.5.4 示例 | 第144-145页 |
6.6 持久层的基本设计 | 第145页 |
6.7 系统断电恢复 | 第145-146页 |
6.7.1 状态一致性的保护 | 第145-146页 |
6.8 具体实现 | 第146-147页 |
6.8.1 对受限事务内存的支持 | 第146-147页 |
6.8.2 事务号溢出问题 | 第147页 |
6.9 性能评测 | 第147-152页 |
6.9.1 评测环境 | 第147-148页 |
6.9.2 STAMP标准测试集 | 第148-151页 |
6.9.3 键值存储持久化的开销 | 第151-152页 |
6.10 小结 | 第152-153页 |
第七章 总结展望 | 第153-157页 |
7.1 工作总结 | 第153-154页 |
7.2 工作展望 | 第154-157页 |
7.2.1 现有工作的完善 | 第154页 |
7.2.2 内存计算模型可扩展性的研究 | 第154-155页 |
7.2.3 分布式内存计算的研究 | 第155-157页 |
参考文献 | 第157-169页 |
发表文章目录 | 第169-171页 |
致谢 | 第171-173页 |