- 1.X
- 多线程写入
- 数据源及目标校验
- 多任务模式
- 自动适配源及目标版本
- 跨版本同步:低版本=>高版本
- 原生集群同步
- 通过jedis计算hash槽,进行集群分发
- 全功能pipeline写入
- 大KV的支持
- pipeline失败补偿流程
- 任务状态持久化
- 接口梳理
- createtask
- starttask
- stoptask
- listtasks
- deletetask
- 2.X
- 同步模式拆分:全量、增量和全量+增量,增量offset包括beginbuf、endbuf
- 断点续传:通过targetoffset续传,如果offset值已过期,该任务作废
- 离线rdb或aof文件加载
- cli客户端程序(完成基本架构及部分功能)
- 3.X
- key过滤
- 命令过滤
- 限制任务数,根据内存容量限制创建任务
- 实现增量续传2.0,通过redis事务命令,尽最大可能保证数据一致性
- 目标连接retry机制
- source.type target.type
- 目标为kafka,实现命令订阅
- 集成log4j2,日志可通过application.yml或启动参数配置,默认输出位置 ./log
- incr 、incrby等命令幂等操作
- swagger 补充api说明
- goclient 适应v2 api
- goclient 实现交互模式类似redis-cli
- 源端节点scan模式,使用scan命令实现不支持sync命令云的Redis的全量数据拉取
- 数据校验,由goclient集成
- 支持目标Redis sentinel模式
- 支持源Redis主从故障转移以及支持sentinel模式
- 实现 rewrite
- 内存级别双向同步
- 目标为rediscluster 实现pipeline写入
-
testcase完善,形成完整回归测试案例
- single2single
- single2single with dbmap
- single2single 断点续传
- single2cluster
- group2cluster
- group2cluster 断点续传
- rdb导入
- aof导入
-
4.X
- 任务元数据改为ETCD存储
- 实现portal及任务调度
- 实现任务在集群某节点不可用的情况下自动迁移至其他节点并续传任务
- 兼容redis协议的其他kv产品例如Tides,TiKV
- 理解Tikv机制
- 实现Redis=>tikv全量+增量
- 实现Tikv数据全量rollback to redis
- tikv 作为redis持久化的完整方案
- 时间戳间隔自定义配置/自动获取
- ttl时间偏差校准