2017-03-16 4 views
0

私はここにドキュメントを読み込む:OrientDBのマスタレスアーキテクチャは、どのように競合する書き込みを処理しますか?

http://orientdb.com/docs/last/Distributed-Architecture.html

をOrientDBはレプリカが読み取りと書き込みの両方を扱うことができ、マスターレスアーキテクチャを持っていること。 2つのクライアントが2つのレプリカに同時に書き込みを行う場合、データベースは2つのバージョン間の競合解決をどのように処理しますか?

例えば、Riak KVでは、マージを処理するためにユーザにパントされる競合を検出するためにベクトルクロック(または点線のバージョンベクトル)を使用するか、デフォルトポリシーを設定して、書き込み勝ち。

OrientDBがこれをどのように処理しているのでしょうか。

答えて

-1

古い学校の発電所によく似ていますが、それは非常に怠惰です。本質的には、ホップカウントの低いdhtにハローキャストを使用し、イベントの部分的な順序付けを維持します(ハローキャストはバージョンベクトルに類似しています彼らのコレクションの各エントリが、私は彼らが何らかの理由で論理時計ではなくタイムスタンプを使用していると思う)、その後、彼らは後悔/コーディネータのクエリで読み取り修復のために汚いクォーラムで叩かれ、最高クロックを取得し、そのピアからそれを適用し、それを他の人に適用します。書込みでは、通常、n-1(nはレプリケーションファクタ)が必要です。論理クロックとは別に書込みを実行する必要があります。

実際のDBとして、レプリケーションの労力が不足している点を除けば、それはかなり優れており、技術的な決定を下す必要があります。

私はそれをやっていないと言いますが、私はそれをやったことがあります。ダイナモのコードの変種、梅の木のゴシッププロトコル、DVV、CRDTSの無駄なロードを実装しました。 RPCフレームワーク、メッセージの受け渡し、イベントループなどの問題が発生する可能性があります。

私は20歳で私を老人と呼んではいけません。

関連する問題