Skip to content

Latest commit

 

History

History
71 lines (57 loc) · 2.75 KB

File metadata and controls

71 lines (57 loc) · 2.75 KB

更新错误类型结构

改动说明

本次改动主要针对错误类型结构的更新,将在 src/main/src/result.rs 中修改 WsDataError 枚举。

1. 修改目标

  • 更新 WsDataError 枚举中的错误类型
  • 统一使用 request_id 替代之前的节点和批次号
  • 添加新的错误类型以支持分片任务
  • 确保错误信息更加明确和具体

2. 关联性分析(>500字)

本次错误类型修改与多个部分密切相关:

  1. 与批量传输模块的关联:

    • 新的错误类型直接支持 WriteSplitDataTaskHandleWriteSplitDataTaskGroup 的错误处理
    • 通过 request_id 统一标识批量传输任务,替代之前分散的节点和批次号
    • 错误类型的修改为后续删除 BatchManagerBatchTransfer 做准备
  2. 与四层架构的关联:

    • 错误类型覆盖了所有四层的错误场景:
      • 接收层:BatchTransferNotFound 用于处理请求接收错误
      • 写入任务层:SplitTaskFailed 用于处理分片任务错误
      • 本地存储层:WriteDataFailed 用于处理写入错误
      • 结果返回层:BatchTransferError 用于处理一般性错误
  3. 与状态管理的关联:

    • 错误类型中包含 version 相关错误,支持版本验证
    • 通过 request_id 可以准确定位出错的任务状态
    • 错误信息包含足够的上下文,便于状态恢复和清理
  4. 与日志记录的关联:

    • 错误类型设计符合 tracing 库的使用规范
    • 每个错误变体都包含足够的信息用于日志记录
    • 错误信息的结构化有助于日志分析和问题定位

3. 影响分析(>500字)

本次修改将产生以下影响:

  1. 代码结构影响:

    • 简化了错误处理逻辑,统一使用 request_id
    • 提供了更清晰的错误类型层次
    • 改进了错误信息的可读性和可追踪性
  2. 功能影响:

    • 支持更细粒度的错误处理
    • 提供更准确的错误定位
    • 便于实现错误重试机制
    • 有助于问题诊断和调试
  3. 性能影响:

    • 错误类型的修改不会对性能造成明显影响
    • 结构化的错误信息可能略微增加内存使用
    • 日志记录的信息更加完整,可能略微增加IO开销
  4. 维护性影响:

    • 提高了代码的可维护性
    • 简化了错误处理的代码编写
    • 使错误追踪和修复更加容易
    • 有助于系统监控和问题诊断
  5. 兼容性影响:

    • 需要修改所有使用旧错误类型的代码
    • 需要更新相关的测试用例
    • 可能需要更新错误处理相关的文档

4. 执行计划

  1. 修改 src/main/src/result.rs 中的 WsDataError 枚举
  2. 更新错误类型的使用位置
  3. 添加必要的注释和文档
  4. 确保与 tracing 日志记录的集成