在发布应用之前,我们建议您使用测试数据负载预热数据库,以利用 Spanner 的同时载入功能。
Spanner 是一个分布式数据库,这意味着随着数据库不断增长,Spanner 会将数据的键空间划分为称作分块的区块。每个分块是一系列行,其中包含表的子集。Spanner 基于负载和大小拆分数据时,会单独动态移动各个分块,并将分块分配给不同的服务器资源,以均衡数据库的整体负载。
当您最初将数据插入空数据库时,Spanner 会将数据写入单个分块。数据库仍处于“冷”状态。当您插入更多数据时,Spanner 会开始拆分这些数据,以在其他可用服务器资源之间重新均衡负载。现在 Spanner 处于“温”状态可用服务器上的分块状态 以最大程度地提高并行性并提高性能。
我们建议的最佳实践是,当 Spanner 处于预热状态而且分块已创建并在服务器资源之间均衡分布时,发布您的应用。为了预热数据库 请按照下列步骤操作:
- 确保为测试数据负载生成的主键位于同一键空间中,并且与用于生产流量的键具有相同的分布属性。
- 在发布前两天内运行负载测试。在预期的峰值负载下运行负载测试至少 1 小时。负载测试会导致 Spanner 因基于负载的拆分而创建更多分片。
- 负载测试完成后,可以从表中删除负载测试生成的行,但不要删除表本身。这样便可以在发布期间使用分片。