More Related Content
PDF
20120804 ll decade lt_yuroyoro PPTX
PPTX
PDF
KEY
カジュアルにバックアップ - MySQL Casual Talks 福岡 KEY
PDF
MySQL Casual Talks in Fukuoka vol.2 KEY
My sql casual_in_fukuoka_vol1 Viewers also liked
KEY
KEY
Mysql casual fukuoa_vlo_2 PDF
なかったらINSERTしたいし、あるならロック取りたいやん? PDF
PDF
PDF
PayPal Big Data and MySQL Cluster PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック カジュアルにギャップキーロックとネクストキーロック
- 1.
- 2.
自己紹介
• @kitakoh(放置中…)
• 大分から来ました
• パン食べるパン
• よろしくお願いします!
12年10月19日金曜日
- 3.
まずはギャップロックについて
• ギャップ = 指定範囲
• 指定範囲の、レコードとレコードの間
の、まだ何も無い空間にもロックをかけ
る
12年10月19日金曜日
- 4.
デモ
• 先行するトランザクションAが、id
BETWEEN 1 AND 10 のロックを取得
• 後追いのトランザクションBが、まだ無い
id=4のレコードをINSERT出来ない
12年10月19日金曜日
- 5.
要は、
• 行そのものにではなく、「範囲に対して
ロック」している
• これによりファントムの発生を防ぎ、
同一TRX内での結果の一貫性が保たれる
• 分離レベルがRR未満の場合は発生しない
12年10月19日金曜日
- 6.
ネクストキーロックとは
• 指定範囲のロックを取得した時に、実際
のロックが指定範囲の次のレコードにま
で及ぶ事
12年10月19日金曜日
- 7.
デモ
• 先行するトランザクションAが、id < 8の
ロックを取得
• 後追いのトランザクションBが、id = 8の
レコードをUPDATE出来ない
12年10月19日金曜日
- 8.
いろいろ試した結果、
• なぜか、不等号の向きが逆の場合、つま
りひとつ前のレコードには影響しない
12年10月19日金曜日
- 9.
まとめ
• 想定外の待ちが発生した時は、これら
の事を思い出してみると解決するかも
です!
• ご清聴ありがとうございました!!
12年10月19日金曜日