By introducing intermediate states for metadata changes and ensuring that at most two versions of metadata exist in the cluster at the same time, shared-nothing databases are capable of making online, asynchronous schema changes. However, this method leads to delays in the deployment of new schemas since it requires waiting for massive data backfill. To shorten the service vacuum period before the new schema is available, this paper proposes a strategy named SLSM for zero-downtime schema migration on shared-nothing databases. Based on the lazy migration of stand-alone databases, SLSM keeps the old and new schemas with the same data distribution, reducing the node communication overhead of executing migration transactions for shared-nothing databases. Further, SLSM combines migration transactions with user transactions by extending the distributed execution plan to allow the data involved in migration transactions to directly serve user transactions, greatly reducing the waiting time of user transactions. Experiments demonstrate that our strategy can greatly reduce the latency of user transactions and improve the efficiency of data migration compared to existing schemes.
翻译:通过为元数据变更引入中间状态,并确保集群中同时最多存在两个版本的元数据,无共享数据库能够实现在线异步模式变更。然而,该方法需要等待大量数据回填,导致新模式部署存在延迟。为缩短新模式可用前的服务真空期,本文提出一种名为SLSM的策略,用于实现无共享数据库的零停机模式迁移。基于单机数据库的惰性迁移,SLSM保持新旧模式具有相同的数据分布,降低了无共享数据库执行迁移事务的节点通信开销。进一步,通过扩展分布式执行计划,SLSM将迁移事务与用户事务相结合,使迁移事务涉及的数据可直接服务于用户事务,大幅减少用户事务的等待时间。实验表明,与现有方案相比,该策略能显著降低用户事务延迟并提升数据迁移效率。