跳转至

bookkeeper Release 4.15.5

```markdown 发布 4.15.5 包含多个错误修复和改进,同时我们还进行了几项依赖更新。

鼓励 Apache BookKeeper 用户升级到 4.15.5,如果您正在使用 4.15.x。此版本的技术细节总结如下。

亮点

之前的版本使用 ARM 平台编译,这意味着 JNI 库仅适用于 MacOS,这将导致性能下降(例如:CRC 库)或无法工作(在 CPU 亲和性的情况下)。

现在的构建平台通过 PR #4060 标记为 linux/amd64

错误修复

  • 修复重置所有 BK 机架后没有已知的 bookies PR #4128
  • 修复 AutoCloseableLifecycleComponent 关闭异常日志 PR #4042
  • 修复重新复制空账本时的 NoSuchElementException PR #4039
  • 修复 deletedLedgers 计数 PR #4026
  • 修复执行器抛出 RejectedExecutionException 时的读写请求泄漏 PR #4024
  • 最终回收 LongWrapper 以避免内存泄漏 PR #4007
  • 修复触发 GC 不工作 PR #3998
  • 修复 httpServerEnabled 时的任意文件上传漏洞 PR #3982
  • 在 channelInactive 时清除通道 PR #3966
  • 修复遍历 pendingLedgersUpdates 和 pendingDeletedLedgers 时的 npe PR #3955
  • 修复 prometheus 客户端生成的一些没有类型信息的指标 PR #3927
  • 修复账本复制失败阻止 bookie 退役过程 PR #3917
  • 在发生各种异常时回收丢弃的读写请求 PR #3912
  • SingleDirectoryDbLedgerStorage#flushMutex 在所有异常路径上不释放锁 PR #3909
  • 修复 ReclaimedSpaceViaDeletes 统计不正确问题 PR #3906
  • 修复 ledgersToDelete 为空时 EntryLocationIndex 中的键泄漏 PR #3903
  • 修复垃圾收集被运行时异常阻塞 PR #3901
  • 如果新创建则返回 activeLogChannel PR #3894
  • 将错误的 rocksDB 配置 level_compaction_dynamic_level_bytes 修改为 CFOptions PR #3860
  • 修复 ReadEntryProcessor v2 SchedulingDelayStats PR #3758
  • 修复配置多个账本目录时的数据丢失 PR #3329

改进

  • 修复压缩时 GC 线程关闭缓慢的问题 PR #4127
  • 移除 CleanupLedgerManager.recordPromise 中未使用的日志 PR #4121
  • 在 RegionAwareEnsemblePlacementPolicy#newEnsemble 中忽略空的 perRegionPlacement PR #4106
  • 打印压缩进度 PR #4071
  • 强制使用 linux/amd64 构建发布 PR #4060
  • 移除 underreplicaiton 回调 PR #4058
  • 允许在单个 rocksdb 批处理中设置最大操作数 PR #4044
  • 将 pendingDeletedLedgers 更改为 ConcurrentHashSet PR #3989
  • 避免压缩触发额外的刷新 DbLedgerStorage PR #3959
  • 支持在重放日志阶段跳过无效的日志记录 PR #3956
  • 优化 getEntryLogMetadata PR #3948
  • 从 shell 命令中删除无效的 entryFormat 参数 PR #3938
  • 启用 PCBC completionObjects 自动收缩以减少内存使用和 GC PR #3913
  • 防止在强制只读模式激活时转换为可写模式 PR #3881
  • 使读取条目请求可回收 PR #3842
  • 修复组快速排序中的枢轴选择 PR #3800
  • 最终执行清理索引 PR #3772
  • 在垃圾收集中添加小文件检查 PR #3631

依赖更新