brpc
brpc copied to clipboard
brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means...
**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** No **Describe the solution you'd like (描述你期望的解决方法)** Solve the deadlink? **Describe alternatives you've considered (描述你想到的折衷方案)** Use https://brpc.apache.org/ ? **Additional context/screenshots (更多上下文/截图)**...
### What problem does this PR solve? Implemented `Arena::allocate_aligned` in `butil` and applied it to [RedisReply](cci:1://file:///c:/Users/29858/.gemini/antigravity/scratch/brpc/src/brpc/redis_reply.cpp:33:0-50:1) to solve the FIXME: "// FIXME(gejun): Call allocate_aligned instead." ### Changes - Added [allocate_aligned](cci:1://file:///c:/Users/29858/.gemini/antigravity/scratch/brpc/src/butil/arena.h:83:0-98:1)...
### What problem does this PR solve? Issue Number: resolve #3132 Problem Summary: ### What is changed and the side effects? Changed: Side effects: - Performance effects: - Breaking backward...
**Describe the bug** brpc socket broken 后一直没有被回收,client 与 server 端无法重建连接。与 #1168 问题类似。 # This is a broken Socket version=1 shared_part={ ref_count=1 socket_pool=null creator_socket=170 in_size=1288977874 in_num_messages=4850513 out_size=20318875586 out_num_messages=4850841 recent_error_count=58527 } nref=3...
### What problem does this PR solve? Issue Number: resolve #3068 Problem Summary: Span lifecycle management defect in distributed storage system: Problem Scenario: - Server maintains a parent span for...
**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...
### What problem does this PR solve? Issue Number: resolve Problem Summary: This commit adds support for the `SSLKEYLOGFILE` environment variable, enabling the export of TLS master secrets. This allows...
- Change attachment_size from int32 to int64 in protobuf definitions (baidu_rpc_meta.proto, rpc_dump.proto, nshead_meta.proto) - Fix type mismatches in ProcessRpcRequest and ProcessRpcResponse: - Change req_size/res_size from int to size_t - Change...
### What problem does this PR solve? Issue Number: resolve #3102 Problem Summary: ### What is changed and the side effects? Changed: 1) recv all data on gpu first 2)...
### What problem does this PR solve? - Implement Idle Hook: Added TaskGroup::SetWorkerIdleCallback to allow executing custom logic (e.g., IO polling) when a worker thread is idle. - Support Timeout...