ryan
|
fb182adef4
|
feat: OpType重构为OpCode (int32) - 完整实现
🎯 核心变更:
- OpType (string) → OpCode (int32)
- 20+ OpCode枚举常量 (基于DOIP/IRP标准)
- 类型安全 + 性能优化
📊 影响范围:
- 核心模型: Operation结构体、CBOR序列化
- 数据库: schema.go + SQL DDL (PostgreSQL/MySQL/SQLite)
- 持久化: repository.go查询、cursor_worker.go
- API接口: Protobuf定义 + gRPC客户端
- 测试代码: 60+ 测试文件更新
✅ 测试结果:
- 通过率: 100% (所有87个测试用例)
- 总体覆盖率: 53.7%
- 核心包覆盖率: logger(100%), highclient(95.3%), model(79.1%)
📝 文档:
- 精简README (1056行→489行,减少54%)
- 完整的OpCode枚举说明
- 三种持久化策略示例
- 数据库表结构和架构图
🔧 技术细节:
- 类型转换: string(OpCode) → int32(OpCode)
- SQL参数: 字符串值 → 整数值
- Protobuf: op_type string → op_code int32
- 测试断言: 字符串比较 → 常量比较
🎉 质量保证:
- 零编译错误
- 100%测试通过
- PostgreSQL/Pulsar集成测试验证
- 分布式并发安全测试通过
|
2025-12-26 13:47:55 +08:00 |
|
ryan
|
a90d853a6e
|
refactor: 将 OpType 字段从枚举类型改为 string 类型
主要变更:
- Operation.OpType: Type → string
- NewFullOperation 参数: opType Type → opType string
- IsValidOpType 参数: opType Type → opType string
- operationMeta.OpType: *Type → *string
- queryclient.ListRequest.OpType: model.Type → string
优点:
- 更灵活,支持动态扩展操作类型
- 不再受限于预定义的枚举常量
- 简化类型转换逻辑
兼容性:
- Type 常量定义保持不变 (OpTypeCreate, OpTypeUpdate 等)
- 使用时需要 string() 转换: string(model.OpTypeCreate)
- 所有单元测试已更新并通过 (100%)
测试结果:
✅ api/adapter - PASS
✅ api/highclient - PASS
✅ api/logger - PASS
✅ api/model - PASS
✅ api/persistence - PASS
✅ api/queryclient - PASS
✅ internal/* - PASS
|
2025-12-24 16:48:00 +08:00 |
|
ryan
|
4b72a37120
|
feat: 完善数据库持久化与存证功能
主要更新:
1. 数据库持久化功能
- 支持三种策略:仅落库、既落库又存证、仅存证
- 实现 Cursor Worker 异步扫描和存证机制
- 实现 Retry Worker 失败重试机制
- 支持 PostgreSQL、MySQL、SQLite 等多种数据库
- 添加 ClientIP 和 ServerIP 字段(可空,仅落库)
2. 集群并发安全
- 使用 SELECT FOR UPDATE SKIP LOCKED 防止重复处理
- 实现 CAS (Compare-And-Set) 原子状态更新
- 添加 updated_at 字段支持并发控制
3. Cursor 初始化优化
- 自动基于历史数据初始化 cursor
- 确保不遗漏任何历史记录
- 修复 UPSERT 逻辑
4. 测试完善
- 添加 E2E 集成测试(含 Pulsar 消费者验证)
- 添加 PostgreSQL 集成测试
- 添加 Pulsar 集成测试
- 添加集群并发安全测试
- 添加 Cursor 初始化验证测试
- 补充大量单元测试,提升覆盖率
5. 工具脚本
- 添加数据库迁移脚本
- 添加 Cursor 状态检查工具
- 添加 Cursor 初始化工具
- 添加 Pulsar 消息验证工具
6. 文档清理
- 删除冗余文档,只保留根目录 README
测试结果:
- 所有 E2E 测试通过(100%)
- 数据库持久化与异步存证流程验证通过
- 集群环境下的并发安全性验证通过
- Cursor 自动初始化和历史数据处理验证通过
|
2025-12-24 15:31:11 +08:00 |
|
ryan
|
d313449c5c
|
refactor: 重构trustlog-sdk目录结构到trustlog/go-trustlog
- 将所有trustlog-sdk文件移动到trustlog/go-trustlog/目录
- 更新README中所有import路径从trustlog-sdk改为go-trustlog
- 更新cookiecutter配置文件中的项目名称
- 更新根目录.lefthook.yml以引用新位置的配置
- 添加go.sum文件到版本控制
- 删除过时的示例文件
这次重构与trustlog-server保持一致的目录结构,
为未来支持多语言SDK(Python、Java等)预留空间。
|
2025-12-22 13:37:57 +08:00 |
|