目次
とある日
Tsurugiの本を読み、昨今のRDBやDBの常識が変わりつつあるなと思いました。
そこで、最近よく「MVCC」という単語を耳にするので、今年一年をかけて理解するためのはじめの一歩として「MVCC」を調べてみます。
MVCCとは
- 多版同時実行制御(multiversion concurrency control, MVCC)
データベース管理システムの可用性を向上させる制御技術のひとつ。複数のユーザから同時に処理要求が行われた場合でも同時並行性を失わずに処理し、かつ情報の一貫性を保証する仕組みが提供される。日本では多版型同時実行制御、多重バージョン並行処理制御などと訳される。また単にマルチバージョンとも呼ばれる。
MultiVersion Concurrency Control - Wikipedia
「「マルチバージョン同時実行性制御」」の頭字語。 この手法により、特定の*分離レベル*を使用した
InnoDB
*transactions* は*読取り一貫性*操作を実行できます。つまり、他のトランザクションによって更新されている行をクエリーして、それらの更新が発生する前の値を確認できます。 これは、ほかのトランザクションが保持している*ロック*のために待機することなく、クエリーが進行できるようにすることによって、*並列性*を高める強力な方法です。
- 一貫性を保ちつつトランザクション処理のスループットを上げる方法
- 従来のロックベースの方法だと一貫性を保つとスループットが犠牲になっていた
- 複数の状態を持ち、その時の状態を返す
- 多くのDBエンジンで最小されているトランザクション管理の方法
〆
Tsurugiの奥が深すぎて、読み応えがあります。
MVCCは、言ってることは単純かもしれないですがそれを実装したり活用するのはかなり難しそうな印象です。