Skip to content

云存储场景下的 RDMA 优化 #2344

Description

@alogfans

Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)
在云存储场景中,随着 RDMA 的广泛使用,现有开源 brpc 的性能出现了明显的瓶颈:1)采用 completion channel + epoll 接收消息,不仅引入中断开销,还产生更多内核态切换;2)brpc 采用的 bthread 线程模型也具有较高的开销。
我们注意到你们在 ApacheCon 的技术报告,报告中所述的设计方案符合我们的需求。希望能将这些功能汇入主线,提高 brpc 的适用性。
https://apachecon.com/acasia2022/zh/sessions/rpc-1184.html

Describe the solution you'd like (描述你期望的解决方法)
拿掉目前基于 epoll 的处理逻辑,改用 busy polling (DPDK 或 RDMA)。正如你们在技术报告中所述,修改主要包含三个方面:

  • 一是对bRPC线程模型的改造,接收请求消息 —— 处理 —— 发送响应消息在单一线程上连续执行(参考 如何使用brpc实现run-to-completion模型? #1434 );
  • 二是对bRPC代码以及使用模块,主要包括原子变量、IOBuf以及序列化的裁剪和优化;
  • 三是对bRPC使用rdma的改造设计,充分发挥rdma的性能优势。

Describe alternatives you've considered (描述你想到的折衷方案)
N/A

Additional context/screenshots (更多上下文/截图)
N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions