タグ デッドロック
人気順 10 users 50 users 100 users 500 users 1000 usersMySQLでわざとデッドロック発生させて挙動を確認してみた - Qiita
概要 RDB(リレーショナルデータベース)を運用していると、複数のトランザクションが同じデータに同時アクセスしようとする場合に「デッドロック」が発生することがあります。デッドロックとは、あるトランザクションが必要とするリソースが別のトランザクションによってロックされ、さらにそのトランザクションも他の... 続きを読む
UPDATE IN SELECT によるデットロックが発生しなくなった件
こんにちは。アルダグラムでエンジニアしている森下霞です。 弊社では、MySQL のデータベース と Ruby on Rails を使用しています。 先日、モニタリングで UPDATE IN SELECT のクエリでデッドロックの発生に気づき、調査し、修正ができたため、デッドロックのデバッグ方法と解決策を紹介したいと思います。 背景 今回の... 続きを読む
データベースのロックの基礎からデッドロックまで
データベースのロックについて、資料を読んだり実際に試してみたので、学んだことを整理してみようと思います。はじめにロックについての基本的な知識を整理して、最終的にはデッドロックとその対策について説明します。 使用したソフトウェアのバージョン MySQL 8.0.31 この記事ではMySQLを使用しています。その他のデ... 続きを読む
お互い『邪魔だニャー』と言って譲り合おうとしない配膳猫たちがいた「デッドロックだ!」「難しいんよねこれの解決」
リンク Wikipedia デッドロック デッドロック (英: deadlock) とは、特に計算機科学において、2つ以上のスレッドあるいはプロセスなどの処理単位が互いの処理終了を待ち、結果としてどの処理も先に進めなくなってしまうことを言う。 また、合弁契約書などにおいてパートナーと利害関係がぶつかるような問題が生じた場合... 続きを読む
MySQLで発生し得る思わぬデッドロックと対応方法
はじめに この記事は実際の業務で発生した MySQL のデッドロックとそのいくつかの回避方法や対応方法を(テーマは変えて)手元で実行できるコードを用いて解説する記事です。具体的には「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターンの記事で紹介されている「1on1 ... 続きを読む
SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
最近SELECT ... FOR UPDATEでデッドロックする話を何度かしたので。 前職のときにUPDATE同士がデッドロックしてたときに、SELECT ... FOR UPDATEで排他ロックを取ってからUPDATEしてデッドロックを防ぎますってPRをレビューしてたときのことで、複数レコードの排他ロックは一瞬ですべてのレコードのロックを取れるわけで... 続きを読む
状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
はじめに マルチスレッドで動作するプログラムの設計は難しい問題です。個々のスレッドの動作は単純に見えても、複数が並行して動作する場合の動作は組み合わせ論的に複雑になります。また、タイミングに依存する不具合は狙って再現することが難しく、通常の単体テストによる検出にも限界があります。 そんなとき、有効... 続きを読む
スレッドIDを利用したMySQLのデッドロック解析手法
スレッドIDを利用したMySQLのデッドロック解析手法 TL;DR thread_id を使ってbinlogを調査すればデッドロックが発生したトランザクションの更新クエリがわかる(かも 目次 はじめに 今回のデッドロック解析手法 検証データセット 1. binlog_format=STATEMENTで検証 2. binlog_format=ROWで検証 参考資料 はじめに これはMySQL(Inn... 続きを読む
デッドロックおじさん戦記 - Mercari Engineering Blog
2017 - 12 - 18 デッドロックおじさん戦記 PHP Mercari Advent Calendar 2017 の18日目です。 こんにちは。メルカリJPのサーバーサイドエンジニアの @Hiraku です。最近は メルカリNOW の立ち上げに関わっておりGoとPHPを行ったり来たりしています。 今回はネタとしては地味ですが、2017年に遭遇した、MySQLのデッドロックの話をしようと思い... 続きを読む
はてなでの10年戦える新技術採用戦略の話 - Hatena Developer Blog
2015 - 12 - 25 はてなでの10年戦える新技術採用戦略の話 この記事は はてなデベロッパーアドベントカレンダーを始めます - Hatena Developer Blog の最終日の記事です。昨日は id:ichirin2501 の MySQLでINSERTのデッドロックに嵌る人を1人でも減らすために - ichirin2501's diary でした。 こんにちは、 id:stanak... 続きを読む
MySQLでINSERTのデッドロックに嵌る人を1人でも減らすために - ichirin2501's diary
2015 - 12 - 24 MySQLでINSERTのデッドロックに嵌る人を1人でも減らすために この記事は はてなデベロッパーアドベントカレンダー2015 の12月24日の記事です。 昨日は id:stefafafan さんの エンジニアと英語 でした。 こんにちは、こんばんは。 クリスマス・イヴですね、皆さんはどのような一日を過ごされる(た)のでしょうか。 僕は一人です。 改めまして、先日初... 続きを読む
問題解決のデッドロックを叩き壊す、とにかく考えを前に進めるための方法 読書猿Classic: between / beyond readers
「とにかく書け」とか「とにかく読め」という話を何回か書いてきた。 (「とにかく書け」という記事) ・「自分の書く文章は価値がない」を抜け出すライティング・マラソンという方法←自己検閲を振り切って書きなぐるために 読書猿Classic: between / beyond readers ・心理学者が教える少しの努力で大作を書く/多作になるためのウサギに勝つカメの方法 読書猿Classic: be... 続きを読む
株式会社シャノン技術ブログ: そのデッドロック、知ってました?
2012年10月15日月曜日 そのデッドロック、知ってました? Tweet シャノンについてはこちら こんにちわ。開発エンジニアのsugimotoです。 今回はPostgresqlのデッドロックについてちょっと書いてみます。 確認した環境はPostgresql9.1.4です。 ロックとかデッドロックについての説明は省きます。 デッドロックの調査 カタログテーブルのpg_locksを確認すると現在の... 続きを読む
沖縄の基地問題はどうして解決しないのか? (内田樹の研究室)
沖縄タイムスの取材で、沖縄の基地問題について少し話をした。 この問題について私が言っていることはこれまでとあまり変わらない。 沖縄の在日米軍基地は「アメリカの西太平洋戦略と日本の安全保障にとって死活的に重要である」という命題と、「沖縄に在日米軍基地の70%が集中しており、県民の91%が基地の縮小・撤収を要望している」という命題が真っ正面から対立して、スタックしている。 デッドロックに追い詰められた... 続きを読む