内容提要
PlanetScale推出了一项新功能,允许用户快速撤销最近的架构更改,同时保留在此期间写入的数据。该功能通过创建影子表并应用更改,确保数据同步。VReplication技术能够精确跟踪数据变化,实现快速撤销,用户只需点击按钮即可恢复原始架构,提升开发者体验。
延伸解读
撤销并非传统回滚
PlanetScale 的架构撤销功能不同于传统回滚。传统回滚通常需要恢复到部署前的状态,可能丢失部署后写入的数据。而该功能通过保留影子表并持续同步,在撤销时交换表,从而保留所有新数据。这解决了因架构更改导致应用故障时,快速恢复且不丢失数据的痛点。
VReplication 的精确追踪
VReplication 使用 MySQL GTID 精确追踪每个事务,确保在复制数据时能准确记录数据变化的位置。它交替进行存量数据复制和增量变更应用,保证影子表与生产表最终一致。这种事务级精度是实现在线架构更改和快速撤销而不丢失数据的关键。
撤销的准备工作
迁移完成后,PlanetScale 会立即准备撤销流程。旧的生产表成为影子表,并持续跟踪新生产表的变更。因此,当用户点击撤销时,只需再次交换表即可,无需重新复制数据。这大大缩短了撤销时间,并确保数据完整性。
注意事项与限制
撤销后,在架构更改期间新增的数据可能缺少被删除的列(如示例中的 title 列),这是预期行为,用户可能需要后续清理。此外,文章主要讨论 ALTER 语句的撤销,对于 CREATE 和 DROP 等操作,还有更多细节待后续文章说明。
Q&A
PlanetScale的新功能如何帮助用户撤销架构更改?
PlanetScale的新功能允许用户快速撤销最近的架构更改,同时保留在此期间写入的数据,只需点击按钮即可恢复原始架构。
VReplication技术在架构撤销中起什么作用?
VReplication技术能够精确跟踪数据变化,确保在撤销时不丢失数据,并支持快速撤销架构更改。
在线架构更改工具是如何工作的?
在线架构更改工具通过创建影子表并在其上应用架构更改,确保数据同步,最后将影子表与生产表进行交换。
撤销架构更改的过程是怎样的?
撤销架构更改时,用户点击“撤销更改”,系统会迅速将影子表和生产表进行交换,恢复原始架构。
使用PlanetScale的撤销功能有什么优势?
使用PlanetScale的撤销功能,用户可以在不丢失数据的情况下快速恢复到原始架构,提升开发者体验。
在架构更改过程中如何确保数据同步?
通过VReplication技术,系统能够跟踪现有数据和新数据的变化,确保在架构更改和撤销过程中数据保持同步。