私は、複数のサテライトが金融取引を作成し、コアサーバーと同期する必要があるシステムを持っています。衛星は、ローカルのPostgresデータベースでRailsアプリケーションを実行するリモートサーバです。コアは独自のPostgresデータベースを持つ別のRailsアプリです。衛星とコアには、ほとんど同じスキーマがあります(ただし、同一ではありません)。すべてがコンテナ化されています(アプリケーションとデータベース)。ごくまれに、コアサーバーはすべてのサテライトに必要なデータを更新します。現在、私は1つの衛星を持っていますが、この数はカップルに成長します(私は遠い将来に100を超えるとは思わない)。コアと衛星の間にシーケンスや競合の問題はありません。コアは、サテライトのいずれかと同じトランザクションを更新することはなく、サテライトは他のサテライトと同じトランザクションを更新しません。さらに、金融取引には主キーとしてuuidがあります。生産PostgresのBDRはどれくらいうまく同期していますか?
これはマルチマスターの同期問題であるため、当然私はBDRに遭遇しました。私は以下の質問をしています:
- BDRの製造は安定していますか?私はいくつかの競合技術(BucardoとLondisteのような)について読んでいます。それは本当にPostgres 9.6の一部ですか?
- BDRは切断されたモデルを処理できますか?私はこれが非常に頻繁になるとは思わないが、私の衛星は何時間も切断される可能性がある。
- BDRは選択同期を実行できますか?たとえば、特定のテーブルを同期させるだけです。
- BDRは100個の衛星を処理できますか?
私は1)への答えは明確であると思います。 –
あなたはおそらく2ndQuadrant(https://2ndquadrant.com/en/resources/bdr/)と相談してください。彼らはPostgreSQLの大きなノウハウを持っています。これはかなり大きな仕事であり、かなり敏感に見えます。サポート – JosMac