Repository navigation
Jync v1.3.2
Jync v1.3.2
本版主题是同步链路性能与升级稳定性。
本次更新
同步性能
- 跳过注定失败的 CREATE:每周期开始取一次目标端表清单,命中的表跳过那轮必被「已存在」拒绝的 CREATE;清单获取失败自动回退老的逐表幂等 CREATE 路径,行为不回归
- 快照稳态零 LOB 读:元数据快照服务新增内存缓存(内容哈希 + 已解析对象),每周期只读
(object_name, content_hash)投影,仅哈希不一致的行才回读整行解析;空闲数据库上轮询既不重写也不重读元数据库 - COUNT(*) 兜底带 TTL:统计信息不可用时的行数估算兜底(全表 COUNT)结果 5 分钟内复用,大表不再每隔几秒被全扫一次;不报告 JDBC URL 的驱动不走缓存,避免跨服务器 key 相撞
升级与运行稳定性
- 修复跨版本升级必挂:
content_hash列自 v1.3.0 才有,从 ≤v1.2.1 升级且开启结构同步后,旧行空哈希使缓存比较每轮 NPE、重启不能自愈。现在空哈希有 null 防护、无哈希行不进缓存,并由下一次保存自动补齐 - 项目删除竞争同步锁:删除运行中的项目时,未跑完的轮次原本会在删除后「复活」progress/snapshot 孤儿行;现在删除先持同步锁,拿不到锁(有轮次在飞或锁被其他实例持有)即拒绝并提示待本轮结束重试;enabled 但空闲的项目仍可一步删除
- 批量删除:目标端删除同步改 JDBC 批量提交,大表删除吞吐量不再受往返次数限制
- 补跑竞态修复:手动同步排队后的补跑改在锁释放后发起,消除排队条目落空的窗口
- 内存条目驱逐:删除项目时同步驱逐该行数审计缓存与 JVM 锁表等内存条目,长运行进程不再随项目建删累积
界面与信息页
- QQ 群:系统信息页「项目与作者」栏新增 QQ 群(426669837)展示行
- 官网与微信同排:官网行不再通栏垫底,与微信在双列网格中配对成第三行
- snapshotDir 行下线:设置页不再展示快照目录(该目录从未被实际读写),配置项与 i18n 键一并移除
打包与内部清理(行为不变)
- jar 体积再减:静态资源目录移除冗余图片、只保留产品图标,截图移至 docs/
- 500 文案收敛:意外 API 错误不再回显原始异常(SQL 错误、文件路径属内部信息),统一返回 i18n 键
error.unexpected,原文留在服务端日志 - 死代码下线:无效 activeNav 赋值、
Pager.slice()、冗余 success 字段、重复 logging 配置等;ChangeLog 分页/清空抽取为 ChangeLogService;app.js 提炼 busyLabel 消除重复加载态片段 - 单元测试增至 464 个
升级
换 jar、重启即可,配置无需改动,元数据库与已存加密口令不受影响。Thymeleaf 模板缓存恢复默认开启:开发期直接改模板需重启生效,生产无感。