[公告] 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 运行器中添加了节流控制,以防止 JVM 内存累积
  • 通过在单个 PostgreSQL 事务中处理批次,显著提高了处理速度

新函数和视图

  • synchdb_start_engine_bgw(name, mode):添加了自定义快照模式参数
  • synchdb_log_jvm_meminfo(name):用于 JVM 堆内存使用情况监控的调试函数
  • synchdb_stats_view:用于连接器统计信息的新视图
  • synchdb_reset_stats(name):用于清除连接器统计信息的函数

配置增强

  • 为 Debezium 运行器性能调优添加了新的 GUC
  • 使 JVM 最大堆内存分配可配置
  • 在规则文件中启用了特定于连接器的 SSL 参数配置
  • 使最大连接器后台工作进程数可配置

更改

  • 增强了 synchdb_state_view()
  • 添加了显示连接器状态的新 'stage' 字段
  • 限制仅显示有效连接器
  • 删除了部分批处理完成通知
  • 将 SQL Server 的默认 char 类型大小映射从 0 更新为 -1

错误修复

  • 解决了 SynchDB 和 Debezium 运行器组件中的内存泄漏问题
  • 改进了 SynchDB 中的内存上下文处理
  • 更正了更改事件处理期间的堆内存释放
  • 修复了 DML 处理期间的 SPI 内存使用

已知问题

  1. 自动连接器启动器限制
  2. 仅启动在默认 postgres 数据库下创建的连接器工作进程
  3. 问题跟踪:github.com/Hornetlabs/synchdb/issues/71

  4. ALTER TABLE ALTER COLUMN 限制

  5. 无法处理复杂的数据类型更改(例如,TEXT 到 INT)
  6. 不支持列索引更改
  7. 无法处理重命名的列
  8. 问题跟踪:github.com/Hornetlabs/synchdb/issues/77

  9. 连接器状态持久性

  10. 重新启动暂停的连接器会恢复操作,而不是保持暂停状态
  11. 问题跟踪:github.com/Hornetlabs/synchdb/issues/80

资源

关于 SynchDB

SynchDB 是 Hornetlabs Technology 开发的开源 PostgreSQL 扩展。它支持将来自异构数据库(MySQL、MS SQLServer、Oracle 等)的数据直接复制到 PostgreSQL,具有高性能和高可靠性。该扩展程序可以满足所有同步需求,而无需中间件或第三方软件。