2012-02-24 7 views
4

Cassandraの最後の書き込みポリシーはタイムスタンプに基づいており、これはクライアントのタイムスタンプです。 クライアント間の時刻が同期されていない可能性があります。これは、更新が失われる可能性があります。この場合、列の更新では、このほとんど遅れないクライアントから送信既に値を既存のと比較した場合、常に古いタイムスタンプ、(で作成しました -Cassandra - クライアントタイムスタンプと競合の認識

  • クライアントのクロックが数年遅れている:私は正確に流れるのシナリオで何が起こるかを知っていただきたいと思います"通常の"クライアント)。カッサンドラはこのような更新を無視するのだろうか?このアップデートは既存の列の値を上書きし、古い時間を設定しますか?
  • この場合、クライアントからの更新は、別の「正しい」クライアントからの同時書き込み要求が実行された場合に常に勝ちます。

答えて

3

はい、タイムスタンプは競合解決に使用されるため、新しいタイムスタンプは常に勝ちます。一般的な推奨事項は、すべてのマシンでntpを実行することです。

何らかの理由でNTPができない場合は、あなたがあなたがクライアントにしたい、これまでどのような値にタイムスタンプを設定することができますが、その値を同期化する独自の方法を考案する必要があります(NTPの作業をします取得ほとんどいつもより簡単です)。

+0

古いタイムスタンプの更新は無視されますか? –

+1

同じ名前で新しいタイムスタンプの列がすでに存在する場合は、その列が存在します。 – psanford