タグ 排他制御
人気順 10 users 50 users 100 users 500 users 1000 users排他制御のためだけに Redis 渋々使ってませんか?データベース単独でアドバイザリーロックできるよ!
MySQL/Postgres とも, MVCC アーキテクチャの恩恵で, SELECT と UPDATE は基本的には競合しない。 単一レコードのシンプルな UPDATE でも排他ロックされ,排他ロック中のレコードへの UPDATE での変更操作は トランザクション分離レベルによらず ブロックされる。UPDATE 文に含まれる WHERE 句での検索もブロックされ... 続きを読む
排他制御の基礎の基礎
はじめに システムに存在するリソースには同時にアクセスしてはいけないものが多々あります。身近な例を挙げると、Ubuntuのパッケージ管理システムのデータベースがあります。aptコマンドの動作によってこのデータベースは更新されるのですが、同時に2つ以上のaptが動作できたとすると、データベースが破壊されてシステ... 続きを読む
排他制御を行う GitHub Action を作った
弊社では GitHub のレポジトリ管理に Terraform GitHub provider を使用しています。 いちいち手元で terraform plan や terraform apply を叩くのは面倒なので、 GitHub Actions を利用することを考えました。 tf ファイルと現実のリソースとの不整合を避けるために、 これらのコマンドは排他的に実行する必要がありま... 続きを読む
システム障害が帰宅ラッシュを直撃、東武東上線を止めた「排他制御」のバグ | 日経クロステック(xTECH)
2019年9月25日、東武東上線にトラブルが次々と起こった。人身事故やシカの衝突といった出来事が同日に発生。そのうえ「運行管理システム」まで不具合を起こした。原因は排他制御のバグで、導入19年目に初めて顕在化したものだった。影響は約5万4000人、遅延は最大6時間14分に及んだ。 「運転再開を見込んでおりません」... 続きを読む
IPAのITパスポート試験申し込みシステムで個人情報が漏洩、原因は排他制御の欠落 | 日経 xTECH(クロステック)
この記事は日経 xTECH登録会員限定ですが、2018年3月14日17時まではどなたでもご覧いただけます。 情報処理推進機構(IPA)は2018年3月13日、ITパスポート試験の団体申し込みにおいて個人情報の漏洩があったと発表した。同試験を申し込んだ二つの団体の間で、互いの申込者の情報が漏れてしまったという。 不具合があったのはITパスポート試験の団体申込者が利用するシステム。このシステムには、申... 続きを読む
Promise で排他制御を行う - Qiita
Promise での非同期処理時、排他制御を怠ったばっかりにバグを出してしまった、そんな経験ありませんか。私はあります。 スレッドを使う場合、Mutex や synchronized 等々、大抵排他制御を行うライブラリや構文などがセットでついてくるのですが、Promise/A+ には無いので自前で制御する必要がある。 なので、Promise で排他制御が出来るライブラリを npm から調べ、めぼし... 続きを読む
明日から使えない!Swiftの排他制御 | Supership Tech Blog
こんにちは!エンジニアの柳村です。 今回は、いい感じに設計していると普段はほとんど使う場面はなさそうな 排他制御(Swift)についての話 です。 Swift(iOS)で使える排他制御はざっとあげただけでもこれだけたくさんあります。 NSLock/NSRecursiveLock/NSConditionLock objc_sync_enter(),objc_sync_exit() DispatchS... 続きを読む
Sidekiq による非同期処理を Redis の分散ロックで排他制御した話 - peroli Developer's Blog
MERY のサーバーサイドエンジニアの @saidie です。 MERY では画像アップロードや記事投稿による検索インデックス作成などなど、ユーザからのリクエスト起因で起こる時間のかかる処理の多くを非同期に行うことでレスポンスタイムの向上に努めています。また、重複した非同期処理が並行して走ることによる スループット の劣化を分散ロックを用いた 排他制御 で緩和する取り組みなども行っています。 ME... 続きを読む
Bash - flock(1)でシェルスクリプトの排他制御(Linux) - Qiita
シェルスクリプトで排他制御したいケースがたまにあります。 「多重起動の抑制」「二重起動の禁止」などとされることもあります。よくやるのは pid ファイルを作成したりロックファイルを作成したりだと思いますが、「ファイルの有無」とか「プロセスIDのチェック」がどうも不安定に感じていました。ファイルシステムの排他ロックとか簡単に使えればいいのに…! 調べてみると、flock(1) なんていう便利なものが... 続きを読む
Big Sky :: golang の sync パッケージの使い方
golang と言えば非同期に特化した言語ですが、慣れない内は簡単な非同期しか使えません。しかし sync パッケージを知る事でもっとカジュアルに、かつ確実な非同期処理を行う事が出来る様になります。 今日はそんな sync パッケージについて説明してみたいと思います。 sync.Mutex ご存じ sync.Mutex です。皆さんが一番使う排他制御だと思います。 package main imp... 続きを読む
ぶいてく: RESTに関する3つの間違い
日曜日, 7月 08, 2012 RESTに関する3つの間違い 楽観的排他制御を利用する非同期的なトランザクション実行であればスケーラビリティを損ねることなく2phase commitが可能である。これは、分散KVSにおけるスケーラビリティと一貫性の両立について で主張したように、同期的な2phase commitは密結合に誘導することになり矛盾するように思えるかもしれない。だがそんなことはない。... 続きを読む
セキュリティ&プログラミングキャンプ2011に参加した - Glass_saga
spcamp, Rubyプログラミング言語クラスに参加した。講義の内容についてはどこかで見られると思うので、個別課題について書く。 個別課題の内容rubyのpreludeのprecompileという課題に取り組んだ。preludeというのはインタプリタの起動時に実行されるRubyスクリプトで、内容は MUTEX_FOR_THREAD_EXCLUSIVE(排他制御などに利用する為のVMグローバルなM... 続きを読む
13さいの備忘録 : SQLite3→MySQLへデータ移行
2011年05月28日20:40 カテゴリrailsmysql SQLite3→MySQLへデータ移行 Rails3のデフォDBはSQLite3なわけで、確かに早くて手軽で便利なんだけど、1点だけ問題がある。 それは、排他制御がファイルのロックであること! なんだよねぇ。 Railsだけで使っていれば問題ないんだけど、どうしても運用中にDBを弄ることが発生してしまう。 ってことでRails3既存環... 続きを読む
キャッシュシステムの Thundering Herd 問題対策モジュール Cache::Isolatorというのを書いた。 - blog.nomadscafe.jp
やや大袈裟な名前ですが「memcachedにおけるキャッシュシステムの Thundering Herd 問題への対策案」とか「キャッシュシステムの Thundering Herd 問題への対策案。その2 排他制御」で書いていたコードをモジュールにしたgithub: https://github.com/kazeburo/Cache-Isolator機能としては、平行動作数を制御できるget_or_... 続きを読む