2017-10-11 10 views
1

Martin Fowler mentions多くのマシン間でリレーショナルSQLデータベースを実行することは、実行が非常に難しい "不自然な動作"です。しかし、彼は理由を説明していない。多くのマシンで実行されているSQLデータベース

これはなぜ難しいのですか?

+1

1つの理由は、1つのテーブル行は1つのビジネスエンティティを表すことはないため、2つのテーブルが異なるマシンにある場合はどうしますか?回避策と暗黙的な同期化は、アトミック性、分離性、一貫性、パフォーマンスにどのような影響を与えますか? –

答えて

0

難しいだけでなく一般的です。

これには多くのパターンがあります。

  1. マスタースレーブまたはマスタが を読み書きするために使用される「読み取りレプリカ」、および変更は、スレーブ(複数可)に渡される - スレーブは単に読み取るために使用されます。 mysql & postgresがこれを行うことができます。
  2. master-master - より困難ですが、多くの データベースで実装することができます。クラスタ内の任意のサーバーで書き込みを実行できます。
  3. "超並列処理"または "MPP"データベース。データはローカルにデータを処理するメモリ/プロセッサを有する各サーバ/ノード を有する複数のサーバまたはノードに分割された である。例Teradata、 Greenplum Pivotal、Redshift、Vertica。
関連する問題