Skip to content

Latest commit

 

History

History
168 lines (117 loc) · 7.27 KB

CHANGELOG.md

File metadata and controls

168 lines (117 loc) · 7.27 KB

更新日志

dev

Fix

  • 修复 table name 中带 - 无法同步的问题 (selectdb#168)
  • 修复部分同步下可能同步多次增量数据的问题 (selectdb#186)
  • 修复 create 又立即 drop 的情况下无法找到 table 的问题 (selectdb#188)

Feature

  • 支持 atomic restore,全量同步期间下游仍然可读 (selectdb#166)

Improve

  • 支持同步 rename column,需要 doris xxxx (selectdb#139)
  • 支持在全量同步过程中,遇到 table signature 不匹配时,使用 alias 替代 drop (selectdb#179)
  • 增加 monitor,在日志中 dump 内存使用率 (selectdb#181)
  • 过滤 schema change 删除的 indexes,避免全量同步 (selectdb#185)
  • 过滤 schema change 创建的 shadow indexes 的更新,避免全量同步 (selectdb#187)

2.0.15/2.1.6

Fix

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

Feature

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

Improve

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

2.0.14/2.1.5

Fix

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

2.0.11

对应 doris 2.0.11。

Feature

Fix

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