ソフトウェアトランザクションメモリのコンテキストでの線形化可能性と直列化可能性


7

ソフトウェアのトランザクションメモリのコンテキストで、直列化可能性と線形化可能性を把握しようとしています。ただし、どちらの概念も一般的にトランザクションメモリに適用できると思います。

この時点で、私は両方の主題について次のように理解しています。

シリアライザビリティ

直列化可能性はグローバルプロパティです。これはトランザクションの正確性のプロパティです。与えられたk各トランザクションを実行することのプロセスTkを同時に(すなわち、次々に)順番に実行することができるトランザクションの順序があることを直列化可能性を保証最終結果は同じであるようにトランザクションが同時に実行されるように。したがって、(T1, T2,..,Tk)順次実行できるトランザクションのリストを定義するリストの順列があります。

この特性は私には完全に理にかなっており、私の定義は正しいと思います。この定義は、HerlihyとShavitによる「The Art of Multiprocessor programming」のテキストに基づいています。

線形化可能性

線形化可能性は、並行オブジェクトのローカルプロパティです(たとえば、スレッド間で共有されるクラスのインスタンス)。線形化可能性により、2つのプロセスがそれぞれ、その共有オブジェクトで一連のopメソッド呼び出し(例、queueまたはインスタンス)を実行するときdequeueに、プログラムの順序(プログラマーQueueが記述した順序)を必ずしも保持しない、これらのメソッド呼び出しの順次的な順序付けが保証されます。ダウン)、ただし、各メソッド呼び出しは即座に行われるように見えます(つまり、呼び出しと応答が直接互いに続きます)。一方、各メソッド呼び出しの結果は個別に維持され、結果としてオブジェクトの状態も維持されます。

質問

"On the correctness of TM"GuerraouiとKapalkaによる論文によると、これはTMの文脈における線形化可能性の定義です。

..共有オブジェクトを説明するために考案された安全プロパティは、TMの修正基準として使用されることがあります。TMの用語では、線形化可能性とは、直感的には、すべてのトランザクションがその存続期間中のある特定の時点で行われたかのように見える必要があることを意味します。

この定義は、私にとって直列化可能性に似ているようです。しかし、この論文では、シリアライザビリティを次のように定義しています。

..は、データベーストランザクションの最も一般的に必要なプロパティの1つです。大まかに言えば、トランザクションの履歴H(つまり、特定の実行ですべてのトランザクションによって実行されるすべての操作のシーケンス)は、Hでコミットされたすべてのトランザクションが同じ操作を発行し、 Hでコミットされたトランザクションのみの(連続した履歴は、トランザクション間の同時実行性のない履歴です)。

ただし、この定義は、トランザクションからステートメントを並べ替えて、インターリーブできることを意味しているようです。(つまり、トランザクションのすべてのステートメントTがに順番に表示されるわけではないようにステートメントを並べ替えますH)。


私は、上記の個人的な定義が正しいと想定しています。私の実際の質問は、線形化可能性がトランザクションメモリのコンテキストでどのように定義されるかです。トランザクションメモリのセマンティクスが壊れるので、トランザクション内の各メソッド呼び出し(つまり、読み取り/書き込み操作)を個別に説明しても意味がありません。これは明らかに直列化可能性を損なうので、2つの同時トランザクションとそれらのインターリーブについて推論する必要があるのも意味がありません。線形化可能性とは、トランザクション内の個々の操作を並べ替えることができるということですか?線形化可能性が直列化可能性のより強力な形式である場合、操作が単一のトランザクション内で実行される順序は重要ではありません。

要約すると、まず第一に、直列化可能性と線形化可能性に対する私の理解は正しいですか?さまざまな作品で大量の定義を読んだ後、私は混乱しています。次に、一連のトランザクションを線形化できるとはどういう意味ですか?

コメントの中にリンクされた質問も読んだ。しかし、それは私の特定の質問を私に説明しませんでした。

出典


1
質問はありません。あなたの質問が何であれ、次のことは役に立ちますか? cs.stackexchange.com/questions/13441/who-needs-linearizability/...
さすらいのロジック

1
つまり、シリアライザビリティでは、トランザクションがアトミックであり、連続した順序で実行されているかのように見える必要があります。直列化可能性は、プロセス(スレッド)について、およびどのトランザクションがどのスレッドによって発行されるかについての仮定を行いません。線形化可能性は、各スレッドが発行したトランザクションが発行した順序で完了するようにしたいという制約を追加します。
ワンダリングロジック、

私はこの主題についていくつかの本と記事を読んでいます、そしてそれに応じて私の質問を更新します。私も正確な質問を言い換えます。
Christophe De Troyer 2015

Wandering Logic:しかし、それは、各プロセスが1つのトランザクションのみを発行する場合、線形化可能性は簡単に満たされることを意味しますか?それとも、トランザクションの順序とそのステートメントの意味ですか?
Christophe De Troyer 2015

回答:


4

定義について:

直列化可能性の基本的な考え方(SR) 正しい。ただし、次の仮定に拘束される必要はありませんeach (process) executes a transaction。すべてのプロセスは、必要な数のトランザクションを発行できます。

線形化可能性の理解(LR)はかなり間違っています。まず、両方のSR そして LR、単一のプロセスによって発行されたトランザクション間のプログラムの順序を保持する必要があります。さらに、トランザクション内の操作を並べ替えることはできません。

の説明 SR そして LR

どちらも SR そして LR すべてのトランザクションが、ある順序で実行されたかのように動作する必要があります。 H、つまり、このような連続した順序では、すべてのreads操作が同じ値を返し、データベースの最終状態は、トランザクションが同時に実行されているときの状態と同じです。

前述のように、両方の SR そして LR、単一のプロセスによって発行されたトランザクション間のプログラムの順序を保持する必要があります。

上記はの定義を与える SR。しかしながら、LR さらに順次順序が必要です H トランザクション間のいわゆるリアルタイム(部分)順序に従う:トランザクションの場合 T1 別のトランザクションの前に終了するT2 開始し、次にT1 前に注文する必要があります T2H

そのことに注意してください SRリアルタイムの順序を強制しません。つまり、LR より強い SR

グローバルプロパティとローカルプロパティについて:

どうかわかりません SRこれはグローバルプロパティと呼ばれます(これについて確信がある場合は、参考にしてください)。ただし、「ローカルプロパティ」という用語には特別な意味があります。

プロパティ Pシステム全体が条件を満たす場合、並行システムのローカルとはP 個々のオブジェクトが満足するときはいつでも P

と知られている LR ローカル[1]です SR ではありません。

追加:LRとStrict Serializability(SSR)について

@Wandering Logicで述べたように、LRは元々、トランザクションではなくオブジェクトに対して定義されています。[1]から引用;

線形化可能性は、トランザクションが単一のオブジェクトに適用される単一の操作で構成されるように制限されている厳密な直列化可能性の特殊なケースと見なすことができます。

しかし、今日では、多くの著者が LRトランザクション用。たとえば、彼らの独創的な論文[2]で、ShavitとTouitouはLRトランザクション用。トランザクションに使用すると、LR と同じです SSR

議論のために@Wandering Logicに感謝します。


[1] 線形化可能性:並行オブジェクトの正当性条件。M P. HerlihyおよびJ M. Wing著。ACM Transactions on Programming Languages and Systems、Vol。1990年7月12日、3号。

[2] ソフトウェアトランザクションメモリ。Nir ShavitとDan Touitouによる。分配。計算。(1997)10:99-116。


1

直列化可能性の定義は正しく、引用したゲラウイとカパルカの定義と同等です。ゲラウイとカパルカの定義は、あなたの定義と同様に、トランザクション内のすべての指示を必要としますTk実行されているように見え、順番に実行されます。つまり、最終結果は、トランザクションをアトミックに、ある順序で実行したかのようになります。(実装は、いくつかのクレイジーな並行並列アウトオブオーダー実行スキームで最適化される可能性がありますが、結果はすべてのトランザクションをシーケンシャルな順序で、インターリーブなしで実行したかのように見える必要があります。)

直列化可能性は、トランザクションを発行したプロセスまたはスレッドを考慮せずに、トランザクションの動作について話します。(定義では、トランザクションとまったく同じ数のプロセスがあり、各プロセスは1つのトランザクションを発行します。)

線形化可能性は、各スレッドが複数のトランザクションを発行するという事実を考慮しており、これらのトランザクションは、要求された順序で実行および完了することが期待されます。

トランザクショナルメモリシステムであり、厳密にシリアライズするすべてのプロセスのトランザクションがいくつか順番にアトミックに実行されたかのように、任意の実行の最終結果が同じであれば、各個々のプロセスによって発行されたトランザクションは、で指定された順序で順に表示されますそのプロセスのプログラム。

(これは、Lamport、「マルチプロセスプログラムを正しく実行するマルチプロセッサコンピュータを作成する方法」、IEEE T Comp 28(9):690-691、1979からの逐次一貫性の定義ですが、メモリ操作ではなくトランザクションについて話すように変更されました。 HerlihyとWingは、このプロパティを厳密な直列化可能性と呼びます。)

線形化可能性を定義するHerlihyとWingの最初の論文は、トランザクションではなくオブジェクトの操作に関するものでした。ただし、次の2つの概念は関連しています。

線形化可能性は、トランザクションが単一のオブジェクトに適用される単一の操作で構成されるように制限されている厳密な直列化可能性の特殊なケースと見なすことができます。

(Herlihy、Maurice; Wing、Jeanette:線形化可能性:並行オブジェクトの正確性条件。ACM T. Prog。Lang。and Sys。12(3):463-492、1990)


線形化可能性に対する理解が異なるようです。あなたの答えでは、「原子的に」という用語を数回使用しました。それは「全部か無か」または「瞬時に」という意味ですか?
hengxin 2015

我々はそれを議論することができますので、私はチャットルームを開始しました:chat.stackexchange.com/rooms/23142/...
さすらいロジック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.