Skip to content

Latest commit

 

History

History
206 lines (153 loc) · 10.3 KB

CHANGELOG.md

File metadata and controls

206 lines (153 loc) · 10.3 KB

更新日志

Fix

3.0.4/2.1.8

注意:从这个版本开始 doris 和 ccr-syncer 的 2.0 版本将不再更新,需要使用 ccr-syncer 的需要先升级到 2.1 及以上版本。

Fix

  • 修复 table name 中带 - 无法同步的问题 (#168)
  • 修复部分同步下可能同步多次增量数据的问题 (#186)
  • 修复 create 又立即 drop 的情况下无法找到 table 的问题 (#188)
  • 跳过不支持的 table 类型,比如 ES TABLE
  • 避免在同步快照、binlog 期间对上游 name 产生依赖 (#205, #239)
  • 修复全量同步期间 view 的别名问题 (#207)
  • 修复 add partition with keyword name 的问题 (#212)
  • 跳过 drop tmp partition (#214)
  • 修复快照过期的问题,过期后会重做 (#229)
  • 修复 rename 导致的上下游 index name 无法匹配的问题 (#235)
  • 修复并行创建 table/backup 时 table 丢失的问题 (#237)
  • 修复 partial snapshot 期间,上游 table/partition 已经被删除/重命名/替换的问题 (#240, #241, #249, #255)
  • 检查 database connection 错误 (#247)
  • 过滤已经被删除的 table (#248)
  • 修复 create table 时下游 table 已经存在的问题 (#161)

Feature

  • 支持 atomic restore,全量同步期间下游仍然可读 (#166)
  • 支持处理包装在 barrier log 中的其他 binlog (主要用于在 2.0/2.1 上增加新增的 binlog 类型)(#208)
  • 支持 rename table (2.1) (#209)
  • 跳过 modify partition binlog (#213)
  • 支持 modify comment binlog (#140)
  • 支持 replace table binlog (#245)
  • 支持 drop view binlog (#138)
  • 支持 modify view def binlog (#184)
  • 支持 inverted index 相关 binlog (#252)
  • 支持 table sync 下的 txn insert (WIP) (#234, #259)
  • 支持 rename partition/rollup binlogs (#268)
  • 支持 add/drop rollup binlogs (#269)
  • 支持 modify view/comment in 2.1 (#270, #273)
  • 支持 table sync 下的 replace table (#279)

Improve

  • 支持同步 rename column,需要 doris xxxx (#139)
  • 支持在全量同步过程中,遇到 table signature 不匹配时,使用 alias 替代 drop (#179)
  • 增加 monitor,在日志中 dump 内存使用率 (#181)
  • 过滤 schema change 删除的 indexes,避免全量同步 (#185)
  • 过滤 schema change 创建的 shadow indexes 的更新,避免全量同步 (#187)
  • 增加 mysql_max_allowed_packet 参数,控制 mysql sdk 允许发送的 packet 大小 (#196)
  • 限制一个 JOB 中单个 BE 的 ingest 并发数,减少对 BE 的连接数和文件描述符消耗 (#195)
  • 避免在获取 job status 等待锁 (#198)
  • 避免 backup/restore 任务阻塞查询 ccr job progress (#201, #206)
  • 避免将 snapshot job info 和 meta (这两个数据可能非常大)持久化到 mysql 中 (#204)
  • 上游 db 中没有 table 时,打印 info 而不是 error (#211)
  • 在 ccr syncer 重启后,复用由当前 job 发起的 backup/restore job (#218, #224, #226)
  • 支持读取压缩后的快照/恢复快照时压缩,避免碰到 thrift max message size 限制 (#223)
  • API job_progress 避免返回 persist data (#271)

2.0.15/2.1.6

Fix

  • 修复 REPLACE_IF_NOT_NULL 语句的默认值语法不兼容问题 (#180)
  • 修复 table sync 下 partial snapshot 没有更新 dest table id 的问题 (#178)
  • 修复 table sync with alias 时,lightning schema change 找不到 table 的问题 (#176)
  • 修复 db sync 下 partial snapshot table 为空的问题 (#173)
  • 修复 create table 时下游 view 已经存在的问题(先删除 view),feature gate: feature_create_view_drop_exists (#170,#171)
  • 修复 table not found 时没有 rollback binlog 的问题
  • 修复下游删表后重做 snapshot 是 table mapping 过期的问题 (#162,#163,#164)
  • 修复 full sync 期间 view already exists 的问题,如果 signature 不匹配会先删除 (#152)
  • 修复 2.0 中 get view 逻辑,兼容 default_cluster 语法 (#149)
  • 修复 job state 变化时仍然更新了 job progress 的问题,对之前的逻辑无影响,主要用于支持 partial sync (#124)
  • 修复 get_lag 接口中不含 lag 的问题 (#126)
  • 修复下游 restore 时未清理 orphan tables/partitions 的问题 (#128)
    • 备注: 暂时禁用,因为 doris 侧发现了 bug (#153,#161)
  • 修复下游删表后重做 snapshot 时 dest meta cache 过期的问题 (#132)

Feature

  • 增加 /force_fullsync 用于强制触发 fullsync (#167)
  • 增加 /features 接口,用于列出当前有哪些 feature 以及是否打开 (#175)
  • 支持同步 drop view(drop table 失败后使用 drop view 重试)(#169)
  • 支持同步 rename 操作 (#147)
  • schema change 使用 partial sync 而不是 fullsync (#151)
  • partial sync 使用 rename 而不是直接修改 table,因此表的读写在同步过程中不受影响 (#148)
  • 支持 partial sync,减少需要同步的数据量 (#125)
  • 添加参数 allowTableExists,允许在下游 table 存在时,仍然创建 ccr job(如果 schema 不一致,会自动删表重建)(#136)

Improve

  • 日志输出 milliseconds (#182)
  • 如果下游表的 schema 不一致,则将表移动到 RecycleBin 中(之前是强制删除)(#137)

2.0.14/2.1.5

Fix

  • 过滤已经删除的 partitions,避免 full sync,需要 doris 2.0.14/2.1.5 (#117)
  • 过滤已经删除的 tables,避免 full sync (#123)
  • 兼容 doris 3.0 alternative json name,doris 3.0 必须使用该版本的 CCR syncer (#121)
  • 修复 list jobs 接口在高可用环境下不可用的问题 (#120)

2.0.11

对应 doris 2.0.11。

Feature

  • 支持以 postgresql 作为 ccr-syncer 的元数据库 (#77)
  • 支持 insert overwrite 相关操作 (#97,#99)

Fix

  • 修复 drop partition 后因找不到 partition id 而无法继续同步的问题 (#82)
  • 修复高可用模式下接口无法 redirect 的问题 (#81)
  • 修复 binlog 可能因同步失败而丢失的问题 (#86,#91)
  • 修改 connect 和 rpc 超时时间默认值,connect 默认 10s,rpc 默认 30s (#94,#95)
  • 修复 view 和 materialized view 使用造成空指针问题 (#100)
  • 修复 add partition sql 错误的问题 (#99)

2.1.3/2.0.3.10

Fix

  • 修复因与上下游 FE 网络中断而触发 full sync 的问题

Feature

  • 增加 /job_progress 接口用于获取 JOB 进度
  • 增加 /job_details 接口用于获取 JOB 信息
  • 保留 job 状态变更的各个时间点,并在 /job_progress 接口中展示

Fix

  • 修复若干 keywords 没有 escape 的问题

2.0.3.9

配合 doris 2.0.9 版本

Feature

  • 添加选项以启动 pprof server
  • 允许配置 rpc 合 connection 超时

Fix

  • restore 每次重试时使用不同的 label 名
  • update table 失败时(目标表不存在)会触发快照同步
  • 修复同步 sql 中包含关键字的问题
  • 如果恢复时碰到表 schema 发生变化,会先删表再重试恢复

0.5

支持高可用

  • 现在可以部署多个Syncer节点来保证CCR功能的高可用。
  • db是Syncer集群划分的依据,同一个集群下的Syncer共用一个db。
  • Syncer集群采用对称设计,每个Syncer都会相对独立的执行被分配到的job。在某个Syncer节点down掉后,它的jobs会依据负载均衡算法被分给其他Syncer节点。

0.4

  • 增加 enable_db_binlog.sh 方便用户对整库开启binlog

0.3

LOG

  • 更新日志格式,提高日志可读性,现在日志的格式如下,其中hook只会在 log_level > info的时候打印:

    #        time         level        msg                  hooks
    [2023-07-18 16:30:18] TRACE This is trace type. ccrName=xxx line=xxx
    [2023-07-18 16:30:18] DEBUG This is debug type. ccrName=xxx line=xxx
    [2023-07-18 16:30:18]  INFO This is info type. ccrName=xxx line=xxx
    [2023-07-18 16:30:18]  WARN This is warn type. ccrName=xxx line=xxx
    [2023-07-18 16:30:18] ERROR This is error type. ccrName=xxx line=xxx
    [2023-07-18 16:30:18] FATAL This is fatal type. ccrName=xxx line=xxx
  • 现在可以指定log的等级和log文件的路径
    --log_level <level>
    level可以是trace、debug、info、warn、error、fatal,log的数量依次递减。默认值为 info

    --log_dir </PATH/TO/LOG/FILE>
    log文件路径包括路径+文件名,如:/var/myfile.log,默认值为 log/ccr-syncer.log

    例:

    sh start_syncer.sh --daemon --log_level trace --log_dir /PATH/TO/LOG/FILE
  • 非守护进程状态下会在日志打印到终端的同时利用tee将其保存在 log_dir

  • 在日志中屏蔽了用户的敏感信息

BD

  • 现在可以指定syncer持久化DB的文件路径
    --db_dir </PATH/TO/DB/FILE>
    DB文件路径包括路径+文件名,如:/var/myccr.db,默认值为 db/ccr.db

    例:

    sh start_syncer.sh --daemon --db_dir /PATH/TO/DB/FILE