[公告] SynchDB 1.0 发布 - 用于实时数据库同步的 PostgreSQL 扩展
发布于 2024-12-27,作者:Hornetlabs Technology Inc
相关开源项目
SynchDB 1.0 发行说明
发布日期:2024年12月24日
我们很高兴地宣布 SynchDB 1.0 发布!这款 PostgreSQL 扩展支持将多个异构数据库(MySQL、MS SQL Server)的数据无缝同步到 PostgreSQL。SynchDB 完全原生处理所有数据同步,无需中间件,为实时数据复制和集成提供了高效的解决方案。
本次发布解决了 1.0 beta1 版本中发现的性能和资源问题,并引入了几个新工具,用于精细调整 SynchDB 的行为和性能。
新功能
性能改进
- 在 DML 解析阶段实现数据缓存,以减少 PostgreSQL 目录访问
- 在 Debezium runner 中增加了节流控制,以防止 JVM 内存堆积
- 通过在单个 PostgreSQL 事务中处理批次,显著提高了处理速度
新函数和视图
synchdb_start_engine_bgw(name, mode):增加了自定义快照模式参数
synchdb_log_jvm_meminfo(name):用于 JVM 堆内存使用情况监控的调试函数
synchdb_stats_view:用于连接器统计信息的新视图
synchdb_reset_stats(name):用于清除连接器统计信息的函数
配置增强
- 增加了用于 Debezium Runner 性能调优的新 GUC 参数
- 使 JVM 最大堆内存分配可配置
- 在规则文件中启用了特定连接器的 SSL 参数配置
- 使连接器后台工作进程的最大数量可配置
更新内容
- 增强了
synchdb_state_view()
- 增加了显示连接器状态的新“stage”字段
- 仅限于显示有效连接器
- 移除了部分批次完成通知
- 将 SQLServer 的默认 char 类型大小映射从 0 更新为 -1
Bug 修复
- 解决了 SynchDB 和 Debezium runner 组件中的内存泄漏问题
- 改进了 SynchDB 中的内存上下文处理
- 修正了更改事件处理期间的堆内存释放
- 修正了 DML 处理期间的 SPI 内存使用
已知问题
- 自动连接器启动器限制
- 仅启动在默认 postgres 数据库下创建的连接器工作进程
-
问题跟踪:github.com/Hornetlabs/synchdb/issues/71
-
ALTER TABLE ALTER COLUMN 限制
- 无法处理复杂数据类型更改(例如,TEXT 到 INT)
- 不支持列索引更改
- 无法处理重命名的列
-
问题跟踪:github.com/Hornetlabs/synchdb/issues/77
-
连接器状态持久化
- 重新启动暂停的连接器会恢复操作,而不是保持暂停状态
- 问题跟踪:github.com/Hornetlabs/synchdb/issues/80
资源
关于 SynchDB
SynchDB 是由 Hornetlabs Technology 开发的开源 PostgreSQL 扩展。它支持将异构数据库(MySQL、MS SQLServer、Oracle 等)的数据以高性能和高可靠性直接复制到 PostgreSQL。该扩展无需中间件或第三方软件即可满足所有同步需求。