web-dev-qa-db-ja.com

「競合直列化可能」と「競合同等」の違いは何ですか?

データベース理論では、「競合直列化可能」と「競合同等物」の違いは何ですか?

私の教科書には、シリアライズ可能な競合に関するセクションがありますが、競合の等価性については詳しく説明しています。これらはおそらく両方とも私が精通している概念ですが、用語に精通していないため、説明を探しています。

23
taz

1つのことを異なる方法で説明するための2つの用語。

競合と同等:スケジュールAはスケジュールBと同等の競合であると言う必要があります。2つのスケジュールが必要です。

Conflict serializable:スケジュールAとBを引き続き使用します。スケジュールAは競合シリアル化可能と言えます。スケジュールBは競合直列化可能です。

スケジュールA/Bは競合と同等とは言いませんでした

スケジュールAはスケジュールBと直列化可能な競合とは言いませんでした

7
fengd

DBMSの競合は、同じ変数にアクセスする2つ以上の異なるトランザクションとして定義できます。少なくとも1つは書き込み操作です。

例えば:

_T1: Read(X)   
T2: Read (X)
_

この場合、両方のトランザクションが読み取り操作のみを実行しているため、競合はありません。

ただし、次の場合:

_T1: Read(X)   
T2: Write(X)
_

矛盾があります。

スケジュールSがあり、それらの命令を並べ替えることができるとしましょう。さらに2つのスケジュール_S1_および_S2_を作成します。

競合同等:スケジュール_S1_および_S2_を参照し、両方のスケジュールで競合する命令の順序を維持します。たとえば、_T1_が_T2_にXを書き込む前に_S1_がXを読み取る必要がある場合、_S2_でも同じである必要があります。 (順序は競合する操作に対してのみ維持する必要があります)。

Conflict SerializabilitySは、シリアルスケジュール(つまり、トランザクションが次々に実行される)と同等の競合である場合、競合シリアル化可能と呼ばれます。

56
letsBeePolite

Wikipedia から。

競合同等

スケジュールS1S2は、次の条件が満たされている場合、競合と同等であると言われます。

  1. S1S2の両方のスケジュールには、同じトランザクションセットが含まれます(各トランザクション内でアクションの順序を含む)。

  2. S1S2の競合するアクションの各ペアの順序は同じです。

競合直列化可能

スケジュールが1つ以上のシリアルスケジュールと競合-同等の場合、スケジュールは競合シリアル化可能と呼ばれます。

競合直列化可能性の別の定義は、コミットされたトランザクションのみが考慮される場合、優先順位グラフ/直列化可能性グラフが非周期である場合にのみ、スケジュールが競合直列化可能であることですトランザクションは、競合の直列化違反なしで発生する可能性があります)。

8
Damodaran

競合しない命令の一連のスワップによってスケジュールSをスケジュールS´に変換できる場合、SとS´は競合等価であると言います。

スケジュールSは、シリアルスケジュールと同等の競合である場合、競合シリアル化可能であると言います。

競合する同等のスケジュール:競合しない命令の一連のスワップによってスケジュールSをスケジュールS 'に変換できる場合、スケジュールSとS'は競合同等であると言います。

Conflict Serializable Schedule:スケジュールSは、シリアルスケジュールと同等の競合である場合、競合シリアル化可能です。

1
thirteenguy

競合シリアル化可能とは、シリアルスケジュールと同等の競合を意味します。

0
Aditya Guru

考慮されたトランザクションスケジュールに対して競合する同等のスケジュールが少なくとも1つある場合、それはシリアル化可能な競合です。

定義はすでに完全に説明されていますが、これは非常に役立つと思う人もいます。

小さなコンソールプログラム (githubで)を開発しました。これは、競合のシリアル化のスケジュールをテストでき、優先順位グラフも描画します。

0
benscabbia