Apache bRPC 1.16.0 版本已发布,这是一次包含重要功能更新的版本,在兼容性、性能与功能方面均有显著改进。本次发布新增了对新硬件架构的支持,增强了调试能力,优化了 RDMA 功能,并修复了多个关键 Bug。
新功能
- 兼容 protobuf v30+ by @wasphin (#3187)
- 新增 RISC-V 架构支持 by @Dayuxiaoshui (#3125)
- 支持为SelectiveChannel设置标签 by @altman08 (#3189)
- 通过 SSLKEYLOGFILE 环境变量启用 TLS 密钥日志记录 by @koarz (#3173)
- 支持更多 SSL 验证模式 by @koarz (#3141)
- 为 Couchbase 添加 CRUD 操作支持 by @giriraj-singh-couchbase (#3138)
- 支持为 bthread 命名以辅助调试 by @ZhengweiZhu (#3158)
- 支持动态扩展 RDMA 块池 by @chenBright (#3155)
- 使 bthread 栈跟踪信号编号可配置 by @ZhengweiZhu (#3124)
- 支持共享 mbvar by @chenBright (#3129)
- 新增 pthread CPU 亲和性支持 by @wenjiecn (#3122)
- RDMA 轮询模式增强(所有消息在新 bthread 中运行)by @yanglimingcn (#3117)
- 支持更高性能的 bvar(使用 babylon 计数器)by @chenBright (#3116)
- 新增对检查所有活跃 bthread 的支持 by @ZhengweiZhu (#3096)
Bug 修复
- 修复 str2endpoint 中的端口解析验证问题 by @AnantShukla-Git-Hub (#3193)
- 修复 C++23 编译问题 by @liyinsg (#3180)
- 修复静态初始化期间 read_proc_io 中的 SIGSEGV 错误 by @jesson1 (#3184)
- 修复 SQ 溢出错误 by @chenBright (#3145)
- 修复 gdb_bthread_stack 中的 bthread_begin 错误 by @Searion (#3176)
- 修复冗余的 BeforeAdditionalRefReleased 调用 by @chenBright (#3174)
- 补充 uint32_t 类型 RegisterFlagValidatorOrDie 的定义 by @kisuke95 (#3171)
- 修复 NsheadService::_status 空指针问题 by @chenBright (#3162)
- 修复 OpenSSL 动态库链接顺序问题 by @apocelipes (#3159)
- 修复 bvar 的错误返回值问题 by @songqing (#3151)
- 修复命名服务单元测试失败问题 by @wwbmmm (#3153)
- 移除 redis 命令解析器中的递归调用 by @howzi (#3136)
- 修复 RDMA 单元测试 by @chenBright (#3146)
- 修复 SetName 中的死锁问题(改用 SetNameSimple)by @chenBright (#3127)
- 修复 SignalSyncs 存储问题(仅存储失败项)by @chenBright (#3128)
- 修复 TaskTracer 因 ABA 问题导致的死锁 by @chenBright (#3115)、
功能增强
- 修复 butil 库中的未定义行为 by @BusyJay (#3135)