粒度ロックと2PL
2相ロック Two-Phase Lock(2PL)を実行していればスケジュールは直列化可能 serializebleになる は真か
serializebleが隔離性水準を意味してるならば2PLで実現できるのはREPEATABLE READまで
SERIALIZEBLEにするには述語ロック Predicate Locksが必要
一方で実際のシステムの話ではなくロックが全体をロック(例えば行ロック)するのであれば相反直列化可能性 conflict serializableを実現できる
なんかこれでもいまいちすっきりしない言い方だな
2PLで実現できる隔離性水準はREPEATABLE READである。
単に2PLに従っただけではSERIALIZEBLEは実現できない
ISBN:978-4781913902 リレーショナルデータベース入門
---.icon
古いの
粒度ロック granular lock(レコードごとのロック/テーブルロック)を導入すると2相ロック Two-Phase Lock(2PL)を行っても直列化可能 serializebleにならないパターンがある
whereで指定されたレコードを単純に全部レコードロック record lockするパターン
だからギャップロック gap lockやネクストキーロック next-key lockを導入する
テーブルロックならば問題ない
2PLのアルゴリズムには変更はない
2PL自体にロックをどの粒度で取得するするかについての指定はない
依然として2PLならばSerializableといっていい