保持分布式数据库在不稳定的网络中同步

jas*_*cao 18 database replication distributed data-synchronization

我面临以下挑战:

我在不同的地理位置有一堆数据库,网络可能会失败很多(我使用的是蜂窝网络).我需要保持所有数据库同步,但不需要实时.我正在使用Java,但我可以自由选择任何免费数据库.

关于如何实现这一点的任何建议.

谢谢.

Squ*_*Cog 9

我不知道有任何数据库可以为您提供开箱即用的功能; 这里存在很多复杂性,因为需要最终的一致性和冲突解决方案(例如,如果网络被分成两半,会发生什么,并且当我将另一半更新为321时,将某些内容更新为值123,然后网络重新连接?)

你可能需要自己动手.

有关如何执行此操作的一些想法,请查看Yahoo PNUTS系统的设计:http://research.yahoo.com/node/2304 和Amazon的Dynamo:http://www.allthingsdistributed.com/2007/10/amazons_dynamo html的

  • 关于Git的事情是,它会让你在存在冲突的更新时执行手动合并.对于数据库来说,这通常不是一个可行的选择.所以你需要一个能够带来尽可能少的惊喜的一致性模型. (2认同)