本次改动主要针对错误类型结构的更新,将在 src/main/src/result.rs 中修改 WsDataError 枚举。
- 更新
WsDataError枚举中的错误类型 - 统一使用
request_id替代之前的节点和批次号 - 添加新的错误类型以支持分片任务
- 确保错误信息更加明确和具体
本次错误类型修改与多个部分密切相关:
-
与批量传输模块的关联:
- 新的错误类型直接支持
WriteSplitDataTaskHandle和WriteSplitDataTaskGroup的错误处理 - 通过
request_id统一标识批量传输任务,替代之前分散的节点和批次号 - 错误类型的修改为后续删除
BatchManager和BatchTransfer做准备
- 新的错误类型直接支持
-
与四层架构的关联:
- 错误类型覆盖了所有四层的错误场景:
- 接收层:BatchTransferNotFound 用于处理请求接收错误
- 写入任务层:SplitTaskFailed 用于处理分片任务错误
- 本地存储层:WriteDataFailed 用于处理写入错误
- 结果返回层:BatchTransferError 用于处理一般性错误
- 错误类型覆盖了所有四层的错误场景:
-
与状态管理的关联:
- 错误类型中包含 version 相关错误,支持版本验证
- 通过 request_id 可以准确定位出错的任务状态
- 错误信息包含足够的上下文,便于状态恢复和清理
-
与日志记录的关联:
- 错误类型设计符合 tracing 库的使用规范
- 每个错误变体都包含足够的信息用于日志记录
- 错误信息的结构化有助于日志分析和问题定位
本次修改将产生以下影响:
-
代码结构影响:
- 简化了错误处理逻辑,统一使用 request_id
- 提供了更清晰的错误类型层次
- 改进了错误信息的可读性和可追踪性
-
功能影响:
- 支持更细粒度的错误处理
- 提供更准确的错误定位
- 便于实现错误重试机制
- 有助于问题诊断和调试
-
性能影响:
- 错误类型的修改不会对性能造成明显影响
- 结构化的错误信息可能略微增加内存使用
- 日志记录的信息更加完整,可能略微增加IO开销
-
维护性影响:
- 提高了代码的可维护性
- 简化了错误处理的代码编写
- 使错误追踪和修复更加容易
- 有助于系统监控和问题诊断
-
兼容性影响:
- 需要修改所有使用旧错误类型的代码
- 需要更新相关的测试用例
- 可能需要更新错误处理相关的文档
- 修改 src/main/src/result.rs 中的 WsDataError 枚举
- 更新错误类型的使用位置
- 添加必要的注释和文档
- 确保与 tracing 日志记录的集成