到 2020 年年中,很明显,产品的使用将超过我们值得信赖的 Postgres 单体的能力,后者在五年和四个数量级的增长中尽职尽责地为我们服务。...在我们最初的研究中,我们还考虑了打包的分片/集群解决方案,例如用于 Postgres 的 Citus 或用于 MySQL 的 Vitess。...3
4
5
6
8
10, 12, 15, 16, 20, 24, 30, 32, 40, 48, 60, 80, 96, 120, 160, 240
关键是,480 可以被很多数字整除——这提供了添加或删除物理主机的灵活性...“暗”读:在迁移读查询之前,我们添加了一个标志来从新旧数据库中获取数据(称为暗读)。我们比较了这些记录并丢弃了分片副本,记录了过程中的差异。引入暗读增加了 API 延迟,但提供了无缝切换的信心。...今天,分表中的行使用复合键:id,旧数据库中的主键;和 space_id,当前排列中的分区键。