1. ホーム
  2. database

[解決済み] マスター・マスターとマスター・スレーブ、どちらのデータベース・アーキテクチャが良いのか?

2022-07-22 03:31:31

質問

2種類のデータベースアーキテクチャについて聞いたことがあります。

  • マスター・マスター

  • マスタ-スレーブ

マスター・マスターはGitのようなもので、すべてのユニットが全データを持ち、1つがダウンしても全く問題ないからです。

マスター・スレーブは、SVN(私は好きではありませんが)を思い出させます。

質問です。

  1. それぞれの長所と短所は何ですか?

  2. iPhoneなどの携帯電話にローカルデータベースを持たせたい場合、どちらが適切でしょうか?

  3. どちらを選ぶかは、十分に検討すべき重要な要素なのでしょうか?

どのように解決するのですか?

私たちは、可用性、一貫性、複雑さをトレードオフしています。最後の質問に最初に取り組むことです。これは重要ですか? はい、とても重要です。データをどのように管理するかという選択は非常に重要であり、その決断を避けるためのベストプラクティスは存在しません。

特定の要件を理解する必要があります。

根本的な緊張感がありますね。

1 つのコピー: 一貫性は簡単ですが、それがたまたまダウンした場合、誰もが水面から出ることになり、人々が遠隔地にいる場合、恐ろしい通信コストを支払うことになります。ポータブル デバイスは、接続を切断して操作する必要があるため、1 つのコピーでは対応できません。

マスター スレーブ: データの各ピースが正確に 1 つのマスターを所有しているため、一貫性はそれほど難しくありません。しかし、そのマスターを見ることができない場合はどうするのでしょうか。何らかの後処理が必要です。

マスター・マスター:もしこれがうまくいくなら、すべてを提供できるように思えます。この場合の問題点は 非常に 絶対的な一貫性を維持することが難しいということです。以下を参照してください。 ウィキペディアの記事 をご覧ください。

ウィキペディアには、メリットとデメリットがうまくまとめられているようです

メリット

  • 1つのマスターに障害が発生しても、他のマスターはデータベースの更新を継続します。 データベースを更新し続けます。

  • マスターは、複数の物理的なサイト、つまりネットワーク上に分散して配置することができます。 ネットワーク上に分散させることができます。

デメリット

  • ほとんどのマルチマスターレプリケーションシステムは、緩やかな一貫性しかありません。 すなわち遅延と非同期であり、ACIDの性質に違反しています。

  • Eagerレプリケーションシステムは複雑で、通信の待ち時間が発生します。 通信の遅延が発生します。

  • 競合の解決などの問題は、関係するノードの数が増え、必要な待ち時間が短くなるにつれて

  • 競合の解決などの問題は、関係するノードの数が増え、必要なレイテンシが減少するにつれて、解決不可能になります。