摘要 | 第9-10页 |
ABSTRACT | 第10-11页 |
第一章 绪论 | 第12-22页 |
1.1 研究背景及意义 | 第12-13页 |
1.1.1 研究背景 | 第12-13页 |
1.1.2 研究意义 | 第13页 |
1.2 国内外研究现状 | 第13-18页 |
1.2.1 RDMA技术在分布式系统中应用的研究现状 | 第13-16页 |
1.2.2 Spark系统Shuffle优化的研究现状分析 | 第16-18页 |
1.3 研究内容和创新点 | 第18-19页 |
1.3.1 研究内容 | 第18页 |
1.3.2 创新点 | 第18-19页 |
1.4 论文组织结构 | 第19-20页 |
1.5 本章小结 | 第20-22页 |
第二章 相关技术研究 | 第22-30页 |
2.1 Spark系统中RDD的依赖关系 | 第22-23页 |
2.1.1 什么是RDD | 第22页 |
2.1.2 窄依赖与宽依赖 | 第22-23页 |
2.2 Spark系统中Shuffle模块的实现 | 第23-24页 |
2.2.1 Shuffle模块体系结构 | 第23-24页 |
2.2.2 数据的存储方式 | 第24页 |
2.2.3 基于Netty的传输模块的实现 | 第24页 |
2.3 RDMA技术细节 | 第24-29页 |
2.3.1 RDMA技术的概述 | 第24-26页 |
2.3.2 RDMA支持的传输方式和原语 | 第26-28页 |
2.3.3 消息式通信方式与流式通信方式的区别 | 第28页 |
2.3.4 RNIC缓存对通信性能的影响 | 第28-29页 |
2.4 本章小结 | 第29-30页 |
第三章 基于RDMA的传输引擎设计 | 第30-38页 |
3.1 UD传输方式的利用 | 第31-33页 |
3.1.1 为什么选择UD传输方式进行传输 | 第31页 |
3.1.2 使用UD方式面临的问题 | 第31-32页 |
3.1.3 解决方法:动态预测申请与分配机制 | 第32-33页 |
3.2 消息分片与重组 | 第33-36页 |
3.2.1 消息头部结构 | 第34-35页 |
3.2.2 分片乱序重组 | 第35-36页 |
3.3 动态缓冲区池设计 | 第36-37页 |
3.3.1 统一注册 | 第36-37页 |
3.3.2 批量请求与释放 | 第37页 |
3.4 本章小结 | 第37-38页 |
第四章 Spark系统Shuffle模块优化设计 | 第38-44页 |
4.1 Shuffle模块优化设计的体系结构 | 第38-39页 |
4.2 RDMA传输引擎的插件式封装 | 第39-40页 |
4.2.1 虚拟连接 | 第39-40页 |
4.2.2 虚拟连接池与虚拟连接共享 | 第40页 |
4.3 JVM堆外内存的利用 | 第40-42页 |
4.3.1 Java堆上存储与堆外存储 | 第40-41页 |
4.3.2 JNI简介 | 第41页 |
4.3.3 应用堆外存储减少拷贝 | 第41-42页 |
4.4 本章小结 | 第42-44页 |
第五章 性能测试与分析 | 第44-50页 |
5.1 实验环境及Benchmark介绍 | 第44-45页 |
5.2 测试结果分析 | 第45-48页 |
5.3 本章小结 | 第48-50页 |
第六章 总结与展望 | 第50-54页 |
6.1 研究总结 | 第50页 |
6.2 研究展望 | 第50-54页 |
致谢 | 第54-56页 |
参考文献 | 第56-59页 |
作者在学期间取得的学术成果 | 第59页 |