Spanner、TrueTime & CAP定理、EricBrewerは次のように書いています。
Spannerの微妙な点の1つは、ロックから直列化可能性を取得することですが、外部整合性(線形化可能性)TrueTimeから[強調が追加されました]。
外部整合性の定義は何ですか? 線形化可能性とどのように違うのですか?
コメント
- これはすばらしい質問です。エリックにお願いします。ここで少し詳しく説明しました。線形化可能かどうか? 🙂
回答
外部の一貫性には決まった意味はありません。この文脈では、ドキュメントの次の文に表示される意味:
任意の2つのトランザクション、$ T_1 $と$ T_2 $(反対側であっても)グローブ):$ T_1 $のコミットが終了した後に$ T_2 $がコミットを開始した場合、$ T_2 $のタイムスタンプは$ T_1 $のタイムスタンプよりも大きくなります。
コメント
- 考えれば考えるほど、すべてのトランザクションが順序付けられているため、線形化可能性のように聞こえます。悲しいことに、これらの用語が微妙な場合があります。 ..誰もが同意しませんか?つまり、トランザクションはシリアル化可能であり、コミット時間に基づいて完全に順序付けられます。おそらく微妙な点は、Spannerでの2PCの実装方法にありますか?
- @Bminer線形化可能性は、一貫性モデルです。トランザクションに複数のoが含まれる可能性がある単一のオブジェクトにのみ適用されますbjects。
- @ LorinHochstein-ハ!それは言葉を細かく刻むようなにおいがします。用語の要点は、特にトランザクションに関して、実際の人々が何を保証するかを概念化するのを助けることです。線形化可能性+直列化可能性は最も強力な保証であり、'は、Spannerのドキュメントが"外部整合性という用語で言及しているものだと思います。 "しかし、疑問が生じます。"外部の一貫性"を本当に知っている人はいますか?手段? 🙂
回答
トランザクション(Tx)の分離と順序の観点から外部の一貫性について考えることができます。 Tx分離では、外部整合性は厳密なシリアル化可能な分離と同等です。ここで、「strict」は(線形化可能性のように)リアルタイムの制約部分です。
これもまた、システムクライアントにとって観測可能なTxを意味します。副作用は、すべてのTxが並行性なしで分離して実行され、クライアントから見たリアルタイムの順序が保持されるシステムと同等です。さらに重要なことに、これと同じ順序が他の無関係なクライアントにも見られます。
この違いについて詳しくは、このブログをご覧ください。
回答
"外部整合性"について言及する場合、BrewerはB.Liskovを参照しています。 分散システムでの同期クロックの実用的な使用。分散コンピューティングのACM原則(PODC)。カナダ、モントリオール、1991年8月。
Liskovは、用語では、Gifford D.K. 分散型コンピュータシステムでの情報ストレージ。テクニカルレポートCSL-81-8、Xerox Corporation、1983年3月
Giffordが外部整合性を定義する方法は次のとおりです。
外部整合性は、トランザクションが常に最新の情報を受け取ることを保証します。先ほど紹介した概念を使用して、外部整合性の正式な定義を提供できます。トランザクションが完了する実際の時間順序は、一意のシリアルスケジュールを定義します。このシリアルスケジュールは<と呼ばれます。 em>外部スケジュール。一連のトランザクションの処理に使用するスケジュールが外部スケジュールと同等であることが保証されている場合、システムは外部整合性を提供すると言われます。
@Olegが言及しているように、これは厳密なシリアル化可能性のように聞こえます。