摘要 | 第5-7页 |
Abstract | 第7-8页 |
第1章 绪论 | 第16-29页 |
1.1 多核系统概述 | 第16-22页 |
1.1.1 多核体系结构 | 第16-20页 |
1.1.2 多核系统的缓存一致性 | 第20-22页 |
1.2 课题研究背景及意义 | 第22-26页 |
1.2.1 并发哈希表的性能评估 | 第22-24页 |
1.2.2 并发哈希表的设计 | 第24-25页 |
1.2.3 哈希表与布隆过滤器 | 第25-26页 |
1.3 本文主要工作 | 第26-27页 |
1.4 本文组织结构 | 第27-29页 |
第2章 并发哈希表的相关研究 | 第29-41页 |
2.1 哈希表概述 | 第29-32页 |
2.1.1 相关概念 | 第29页 |
2.1.2 哈希函数 | 第29-30页 |
2.1.3 哈希冲突处理 | 第30-32页 |
2.2 基于软件技术的同步方法研究 | 第32-35页 |
2.2.1 阻塞技术 | 第32-34页 |
2.2.2 屏障技术 | 第34页 |
2.2.3 无阻塞技术 | 第34-35页 |
2.3 NUMA架构内存管理相关研究 | 第35-37页 |
2.3.1 线程与处理器内核的关联 | 第35-36页 |
2.3.2 NUMA系统的非对称互连 | 第36-37页 |
2.4 事务内存相关研究 | 第37-38页 |
2.4.1 实现事务内存的相关技术 | 第37-38页 |
2.4.2 基于事务内存的并发数据结构 | 第38页 |
2.5 布隆过滤器 | 第38-39页 |
2.6 本章小结 | 第39-41页 |
第3章 基于多核系统的并发哈希表的评估与分析 | 第41-68页 |
3.1 实现并发哈希表的同步方法比较 | 第41-42页 |
3.2 典型的并发哈希表 | 第42-47页 |
3.2.1 缓存行哈希表 | 第42-44页 |
3.2.2 Cuckoo哈希表 | 第44-45页 |
3.2.3 Hopscotch哈希表 | 第45-46页 |
3.2.4 基于RCU机制的哈希表 | 第46页 |
3.2.5 基于Intel TBB的哈希表 | 第46-47页 |
3.3 统一的跨平台并发哈希表测试框架的设计 | 第47-49页 |
3.3.1 参数说明 | 第47-48页 |
3.3.2 测试逻辑 | 第48-49页 |
3.3.3 延迟测量工具 | 第49页 |
3.4 并发哈希表的评估与分析 | 第49-67页 |
3.4.1 测试平台与配置 | 第50-52页 |
3.4.2 线程扩展性 | 第52-56页 |
3.4.3 更新比重对性能的影响 | 第56-58页 |
3.4.4 缓存与主存 | 第58-59页 |
3.4.5 操作延迟 | 第59-61页 |
3.4.6 线程绑定方案的影响 | 第61-64页 |
3.4.7 同步 | 第64-65页 |
3.4.8 内存消耗 | 第65-67页 |
3.5 本章小结 | 第67-68页 |
第4章 基于硬件事务内存的缓存行哈希表的实现 | 第68-93页 |
4.1 事务内存的基本概念 | 第68-69页 |
4.2 Intel事务同步扩展 | 第69-73页 |
4.2.1 Intel硬件锁省略 | 第69-70页 |
4.2.2 Intel限制性事务内存 | 第70-71页 |
4.2.3 RTM的Lemming效应 | 第71-73页 |
4.3 软件辅助的硬件锁省略技术 | 第73-77页 |
4.3.1 软件辅助的锁删除方法 | 第73-75页 |
4.3.2 软件辅助的冲突检测方法 | 第75-77页 |
4.4 基于HTM的并发哈希表的设计 | 第77-86页 |
4.4.1 问题引入 | 第77-79页 |
4.4.2 缓存行哈希原型描述 | 第79-81页 |
4.4.3 基于RTM的锁方法描述 | 第81-83页 |
4.4.4 基于HTM的缓存行哈希表 | 第83-86页 |
4.5 性能评价 | 第86-91页 |
4.5.1 测试平台和参数设置 | 第86页 |
4.5.2 基于HTM的粗粒度锁实现与细粒度锁CLHT-1b的比较 | 第86-87页 |
4.5.3 不同的全局锁方案之间的比较 | 第87-89页 |
4.5.4 基于HTM的细粒度锁实现与传统细粒度方法的比较 | 第89-90页 |
4.5.5 影响HTM性能的因素分析 | 第90-91页 |
4.6 本章小结 | 第91-93页 |
第5章 并发Cuckoo过滤器的设计 | 第93-126页 |
5.1 布隆过滤器 | 第94-98页 |
5.1.1 基本原理 | 第94-95页 |
5.1.2 误判率估计 | 第95-96页 |
5.1.3 最优哈希函数个数 | 第96-97页 |
5.1.4 最优位数组长度 | 第97-98页 |
5.2 Cuckoo过滤器的设计 | 第98-105页 |
5.2.1 Cuckoo过滤器的数据结构 | 第99-101页 |
5.2.2 Cuckoo过滤器的参数 | 第101-105页 |
5.3 并发Cuckoo过滤器 | 第105-115页 |
5.3.1 自旋锁 | 第105-108页 |
5.3.2 加锁与解锁 | 第108-110页 |
5.3.3 并发访问接口 | 第110-115页 |
5.4 性能优化 | 第115-121页 |
5.4.1 空间性能优化 | 第115-117页 |
5.4.2 并发性能优化 | 第117-121页 |
5.5 性能评估 | 第121-125页 |
5.5.1 实验配置和性能指标 | 第121页 |
5.5.2 空间效率和误判率 | 第121-122页 |
5.5.3 扩展性 | 第122-123页 |
5.5.4 更新比重对性能的影响 | 第123-124页 |
5.5.5 Retries设置对性能的影响 | 第124-125页 |
5.6 本章小结 | 第125-126页 |
结论 | 第126-129页 |
参考文献 | 第129-137页 |
附录A 读学位期间所发表的学术论文 | 第137-138页 |
附录B 读学位期间所参加的科研项目 | 第138-139页 |
致谢 | 第139页 |