感谢这篇文章,planetscale
感谢这篇文章,planetscale。我最近迷上了分片,但更多是出于多线程性能的考虑。我想要一个多主的Postgres。我开始尝试编写一个Postgres同步器,通过按行和列排序,并对每一列和行的数据进行哈希处理,然后对数据进行滚动哈希。理论上,两个数据库可以通过发送它们数据的最终哈希值,然后进行二分查找,直到哈希值匹配。这样就可以确定数据库中哪些部分不同,需要传输。如果数据库是相同的,那么传输的数据量会非常少。我还没有解决的一个问题是,如何在不改变应用程序查询的情况下决定哪个数据库是胜利者。如果同步两个多主Postgres数据库,它们各自独立地写入了不同的部分,那么如何确定某一列/行组合的真相来源?
源讨论数据库分片是如何工作的?原帖 107 条评论 · 导入时统计