2011-07-12 5 views
1

http://www.pcpro.co.uk/realworld/355477/understanding-the-nosql-movement:データフローが一方向マスタからスレーブに で、スレーブへの書き込みは意味がありませんので、なぜすべての書き込みがマスターに送られなければならないのか、なぜスレーブに書き込むのが理にかなっていないのですか?

しかし、すべての書き込みは、マスターに行かなければなりません。

私はこの声明を理解するのに苦労しています。私の限られた理解から、私はなぜこの制限が存在するのか分かりません。スレーブがマスターに「話す」ための何らかの方法はないので、ユーザーは単純にスレーブに書き込むことができ、スレーブは書き込みのマスターに通知します。

+0

これは、どのようにして 'マスター/スレーブ関係ですか?彼らはすべて平等になるでしょうね。 – JNK

答えて

0

一貫性を失うため、単純に入れます。スレーブへの書き込みとマスタとの競合への同時書き出しのときはどうしますか?どちらか一方の更新が失われるか、競合が検出された場合はどうしますか?

通常、データベースにACID propertiesが表示されます。それを望むなら、複数のサーバーが書き込みを受け入れる(それは実際にはマスタの定義です)、あなたが参照する記事で議論するマルチマスターシナリオとそれに伴うスケーラビリティの問題があります(Distributed Transactionsビット詳細)

0

この意味での「マスター」という用語は、「所有者」 - データの正式なコピーを意味します。スレーブは、負荷を分散するために使用できるレプリカです。 (通常、マスタあたり複数のスレーブがあります)

したがって、書き込みを行っているノードはすべて「マスタ」になります。 「マルチマスター」構成をサポートするシステムは数多くあります。これらのシステムは、マスターがそれらの間の一貫性を維持する必要があるため、通常は単一マスターシステムより複雑です。

が、私はこれをより詳細に説明する記事を書いた here

0

マスタースレーブレプリケーションの定義は、マスターはすべての書き込みを処理し、スレーブはマスターだけからの更新の流れを受け、読み込み扱うということです。両方のサーバーが書き込みを処理する場合、これは独自のデータ整合性の問題がある 'master-master replication'の定義に該当します。

関連する問題