开发环境:Linux Idea
框架技术:HBase、Netty、RDMA
项目描述:
HBase原生采用Netty实现的RPC远程调用,实现方式为传统的TCP/IP技术,对于网络传输需要CPU将数据进行copy。而RDMA可以通过具有其特性的以太网卡进行源与目标之前的可靠连接。使用RNIC的应用程序之间使用专注的QP和CQ进行通讯。不需要CPU的参与,减少上下文切换。
主要职责:
1、分析HBase底层Netty实现。梳理源码调用流程。分析相关接口。整理调用栈。
2、设计RDMA接口,梳理RDMA调用关系。适配其客户端与服务端代码。
3、编译、部署、并执行相关测试用例分析性能结果。
技术描述:
1、分析当RegionServer 为服务端,客户端发送请求时的整个调用流程,画出调用关系栈,找出相关接口进行调配。
2. 设计RDMA客户端与服务端接口,首先通过Buffer将数据在内存中注册。然后把需要发送的请求封装为相应的call添加到Buffer中。把注册好的内存封装为Sge放入到消息列表。再将消息列表添加到WR中,当WR被放入SQ队列中之后具有RDMA功能的网卡会驱动发送数据。发送成功后返回给CM队列。代表数据发送的任务成功。接收端与发送端逻辑一致。
3.对修改后的RDMA代码的HBase进行编译部署,通过PE工具进行测试验证。