MCSR
$ CSR \subset MCSR \subset MVSR
トランザクションに一意な全順序(e.g. Timestamp)を割り当て,それと各タプルのVersionOrderが一致しているとMCSR
MVSRはVersionOrderが一致しないことがある
Muiltiversion Conflict Graph(G)がacyclicであればよい.
Multiversion Conflict: ヒストリ$ Hにおける命令順序を考える
前提として,依存関係とは,可換性のない命令順序のことを指す.
可換性がある,というのは,Serial History中の順序を入れ替えても,等価なMultiversion Scheduleが存在すること.
$ w-wはMVだと依存関係ではない.Reads-Fromが重要なので,可換.
$ w-rも実は依存関係ではない.可換.
Serial Historyの$ r_i(x) w_j(x)は,Multiversion Historyで$ w_j(x_j) r_i(x_k)でも等価
$ r-wは必ず依存関係となる.可換性がない.
Serial Historyで$ w_i(x)r_j(x)で,Multiversion Historyで入れ替えしたとき等価なスケジュールはない
よって$ Hから$ r-wを抜き出してグラフを描くこと(Multiversion Conflict Graph)でMCSRを実現できる
Prove: In the "no blind writes" model, where each data item written by a transaction must have been read before in the same transaction, MCSR == MVSR.
とある.RMWについては,$ w-r$ r-wの関係があるため,VersionOrderをTransactionOrderと一致させるしかない.
よって,MVSR特有の最適化というものがあるとするならばBlindWriteについてのものである.