为什么删除模型属性会导致应用部署超时失败?
问题描述
当删除模型属性后发布并部署应用时,系统将自动触发数据备份流程。如果数据实例数量过大,会导致备份时间显著拉长,进而引发应用部署超时失败。
可能原因
删除模型属性会触发模型物理表的自动备份,备份耗时与表中数据量正相关。在备份过程中,服务启动操作会被阻塞,直至所有备份任务及后续启动任务完成。如果备份耗时超出部署超时阈值,即会导致部署失败。
参考备份时间(数据库规格:8U/16G/超高IO)
自动备份场景下,耗时参考如表1所示:
- 表中数据为实验室测试值,仅供参考。
- 实际耗时与数据库的CPU、内存及磁盘规格相关,高敏感业务请以实际业务测试数据为准。
|
数据库类型 |
数据量级别 |
列删除个数 |
表数量 |
备份时间 |
|---|---|---|---|---|
|
MySQL |
100,000 |
1 |
1 |
13秒 |
|
2,000,000 |
1 |
1 |
56秒 |
|
|
4,000,000 |
1 |
1 |
113秒 |
|
|
6,000,000 |
1 |
1 |
6分钟 |
|
|
8,000,000 |
1 |
1 |
7分钟 |
|
|
10,000,000 |
1 |
1 |
13分钟 |
|
|
PostgreSQL |
100,000 |
1 |
1 |
0.2秒 |
|
2,000,000 |
1 |
1 |
6秒 |
|
|
10,000,000 |
1 |
1 |
65秒 |
关闭自动备份场景下,属性列删除耗时参考如表2所示:
- 表中数据为实验室测试值,仅供参考。
- 实际耗时与数据库的CPU、内存及磁盘规格相关,高敏感业务请以实际业务测试数据为准。
处理方法
- 关闭自动备份
如果无需自动备份,可在应用设计态的页面,将“GENERATE_BACKUP_TABLE_ENABLE”设置为关闭,并手动完成数据备份操作。此设置仅对更改配置后新发布的应用版本部署生效。
- 提前规划变更
在升级运行服务前,需做好准备工作,明确停机变更时间与操作步骤,提前预判可能出现的问题并制定应对预案。
- 测试环境验证
在升级生产环境运行服务前,需按照生产环境的实际数据量,在测试环境中完整模拟升级过程,验证耗时是否在预期范围内,确保生产环境升级可在规划时间内完成。
- 版本回滚
SDK用户如遇部署失败导致服务长时间不可用,可通过回滚至旧版本的方式,快速恢复服务可用性。