-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Open
Description
Is your feature request related to a problem?
业界涌现出多种新型互联技术和协议,如RDMA、CXL、Nvlink、UB(UnifiedBus)等,结合当前项目代码来看Socket类融合了rdma和tcp协议已显的过于臃肿,后期如果计划扩展支持更多的新协议和技术将会带来很大维护成本,为了保证brpc的核心竞争力持续性,brpc需要考虑支持互联技术和新的协议演进发展,针对于此情况,目前提出一种多通信协议易扩展和兼容的Socket-Transport通信架构,该架构向上承接socket的调用,向下串联传输层协议栈方法,目前有以下方案和思路,还望一起讨论交流下。
Describe the solution you'd like
- Socket为brpc的通信基础类,针对该类进行传输层公共方法下推到Transport层,比如DoConnect、DoRead、DoWrite、WaitEpoll等。
- TransportWrapper为Transport代理包装类,根据协议类型代理调用不同协议栈的Transport子类方法。
- Trasnport为协议栈接口基类,接口定义了传输层需要泛化的协议栈公共方法,向上承接Socket调用。
- RDMA、TCP、CXL、UB分别是传输层的不同通信协议的实现子类部分,方法调用通过TransportWrapper完成具体方法的调用。
Describe alternatives you've considered
架构改造计划:
第一步,基于Socket类进行架构改造和升级,同时将rdma和tcp协议的传输层公共部分下推到对应的子类上。
第二步,在已改造好的Socket-Transport架构上,引导导入多种新通信协议,例如CXL、UB等。
Additional context/screenshots
chenBright, wwbmmm and 372046933
Metadata
Metadata
Assignees
Labels
No labels