Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Akishige TAKEKOSHI
PPTX, PDF
2,754 views
2017 02-14 キュー実装に見る排他処理
キューは排他制御ができていないと簡単に死んでしまいます。
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 16
2
/ 16
3
/ 16
4
/ 16
5
/ 16
6
/ 16
7
/ 16
8
/ 16
9
/ 16
10
/ 16
11
/ 16
12
/ 16
13
/ 16
14
/ 16
15
/ 16
16
/ 16
More Related Content
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PDF
MagicOnion入門
by
torisoup
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
by
Atsushi Nakamura
PPTX
分散システムについて語らせてくれ
by
Kumazaki Hiroki
PPTX
DockerコンテナでGitを使う
by
Kazuhiro Suga
PPTX
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
by
Yugo Shimizu
PDF
TDD のこころ
by
Takuto Wada
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
オンラインゲームの仕組みと工夫
by
Yuta Imai
MagicOnion入門
by
torisoup
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
by
Atsushi Nakamura
分散システムについて語らせてくれ
by
Kumazaki Hiroki
DockerコンテナでGitを使う
by
Kazuhiro Suga
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
by
Yugo Shimizu
TDD のこころ
by
Takuto Wada
What's hot
PDF
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
by
Hajime Fujita
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
PDF
HTTPを理解する
by
IIJ
PDF
Twitterのsnowflakeについて
by
moai kids
PPTX
(2017.6.9) Neo4jの可視化ライブラリまとめ
by
Mitsutoshi Kiuchi
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
こわくない Git
by
Kota Saito
PDF
nginx入門
by
Takashi Takizawa
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
WebSocketのキホン
by
You_Kinjoh
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PDF
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
by
Unity Technologies Japan K.K.
PDF
良質なコードを高速に書くコツ
by
Shunji Konishi
PPTX
ゲームエンジニアのためのデータベース設計
by
sairoutine
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
by
Hajime Fujita
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
HTTPを理解する
by
IIJ
Twitterのsnowflakeについて
by
moai kids
(2017.6.9) Neo4jの可視化ライブラリまとめ
by
Mitsutoshi Kiuchi
Where狙いのキー、order by狙いのキー
by
yoku0825
こわくない Git
by
Kota Saito
nginx入門
by
Takashi Takizawa
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
WebSocketのキホン
by
You_Kinjoh
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
by
Unity Technologies Japan K.K.
良質なコードを高速に書くコツ
by
Shunji Konishi
ゲームエンジニアのためのデータベース設計
by
sairoutine
Viewers also liked
PPTX
OmegaTでドキュメント翻訳
by
Takako Miyagawa
PPTX
Idcfクラウド 初心者の事始め(2)資料
by
Takako Miyagawa
PPTX
CodeIgniterのライセンスについて
by
Takako Miyagawa
PDF
CodeIgniterでXMLを処理してみる
by
智之 大野
PDF
FuelPHP で DynamoDB
by
Tetsuji Koyama
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
by
Sotaro Omura
PDF
Fuel phpをcomposerに本気で対応させた時の話
by
Keishi Hosoba
PDF
PHPUnitでリファクタリング
by
Takako Miyagawa
PDF
Codeigniter3フレームアップデート
by
tomohiro kitaura
PDF
Code igniterを初めて使うときにはまった4つのポイント
by
noldor
PDF
Codeigniter4の比較と検証
by
ME iBotch
PPTX
CodeIgniter3マニュアル和訳の方法と感想
by
Akishige TAKEKOSHI
PPTX
CodeIgniter4 PHPCon 2016
by
Takako Miyagawa
PPTX
スピーカーから始める勉強会
by
Akishige TAKEKOSHI
PPTX
groceryCRUDとtank_authで簡単に管理画面と認証機能を作る
by
Akishige TAKEKOSHI
PDF
CodeIgniter をモダンに改造してみた
by
Masaru Matsuo
PPTX
SQLite2と3のエスケープ関数の違いとその対策
by
Akishige TAKEKOSHI
PDF
Dockerでデプロイ
by
oshiro_seiya
PPTX
PHPCON fukuoka 2015 CodeIgniter update
by
Takako Miyagawa
PPTX
Spring'17リリースノート輪読会 API By フレクト
by
政雄 金森
OmegaTでドキュメント翻訳
by
Takako Miyagawa
Idcfクラウド 初心者の事始め(2)資料
by
Takako Miyagawa
CodeIgniterのライセンスについて
by
Takako Miyagawa
CodeIgniterでXMLを処理してみる
by
智之 大野
FuelPHP で DynamoDB
by
Tetsuji Koyama
omoon.org の裏側 〜FuelPHP の task 活用例〜
by
Sotaro Omura
Fuel phpをcomposerに本気で対応させた時の話
by
Keishi Hosoba
PHPUnitでリファクタリング
by
Takako Miyagawa
Codeigniter3フレームアップデート
by
tomohiro kitaura
Code igniterを初めて使うときにはまった4つのポイント
by
noldor
Codeigniter4の比較と検証
by
ME iBotch
CodeIgniter3マニュアル和訳の方法と感想
by
Akishige TAKEKOSHI
CodeIgniter4 PHPCon 2016
by
Takako Miyagawa
スピーカーから始める勉強会
by
Akishige TAKEKOSHI
groceryCRUDとtank_authで簡単に管理画面と認証機能を作る
by
Akishige TAKEKOSHI
CodeIgniter をモダンに改造してみた
by
Masaru Matsuo
SQLite2と3のエスケープ関数の違いとその対策
by
Akishige TAKEKOSHI
Dockerでデプロイ
by
oshiro_seiya
PHPCON fukuoka 2015 CodeIgniter update
by
Takako Miyagawa
Spring'17リリースノート輪読会 API By フレクト
by
政雄 金森
2017 02-14 キュー実装に見る排他処理
1.
キュー実装に見る 排他処理 CodeIgniter Night 2 2017-02-14
@noldorinfo
2.
自己紹介 • 竹腰彰成(たけこしあきしげ) • Twitter:
@noldorinfo • http://blog.noldor.info/ 2
3.
今日のテーマ • CodeIgniter4でキュー実装中です • 仕様変更や機能追加するならリリース前のいまのうち •
レビュー的な意味でツッコミお願いします 3
4.
キューとは Queue 4
5.
キュー(Queue) • 先入れ先出し: First
In First Out: FIFO • 対義語はスタック(Last In First Out) • ここテストに出ます(※基本情報技術者試験) 5 図はWikiPediaより https://ja.wikipedia.org/wiki/FIFO
6.
キューの利用用途 • フレームワークの場合、メッセージキューイング用途に使う • 例) •
メール送信のリクエストをため込む • PDF生成を別スレッドに処理させる • つまり相手の応答を待たずに次の処理に移るために使う • 何か重い処理をしたいが、今すぐでなくてよい • 一方でブラウザにはすぐに応答したい • キューに入れてしまおう 6 ※パンクするのでメッセージを溜め込んではいけません
7.
処理が異常終了してメッセージが消える 7 処理始めるのでキューからメッセージ消しますー Fatal Error!
8.
メッセージを残すと二重処理 8 処理始めます、終わるまでメッセージ消しませんー 別のスレッドが同じメッセージ取り出しちゃった! 重い、終わらない……
9.
そこで排他処理 9 処理始めます、作業中のマーキングしますー 次のメッセージをやるねー 重い、終わらない…… こんなライブラリがほしい!
10.
キュー実装がhelp wantedに 10
11.
リクエストされているキューの種類 • RabbitMQ • ググると利用事例が結構あるキューのミドルウェア •
Local File • ミドルウェアなしでも動かしたいらしい • Local Database • Webサーバが複数でもRDBで実装できていればいいよね • Redis、Memcached • Webサーバが複数でもKVSで実装できていればいいよね 11
12.
RabbitMQでの排他処理 • Message Acknowledgment
(ACK) • RDBのトランザクションのようなもの • 作業中はセッションつなげっぱなし、終わったらACKを投げる • ACKが戻る前にセッションが切れたら異常終了とみなす • セッションにタイムアウトはないので重い処理もできる 12 メッセージ取得 終わったら知らせる セッション持ったまま処理
13.
RDBでRabbitMQのマネはできない • RDBならトランザクションでやれば楽だよね! 異常時にはロールバックできるし! ⇒行ロック・テーブルロック持ちっぱなし問題発生 13 メッセージ取得 終わったらcommit セッション持ったまま処理 DBへの負荷が!
14.
トランザクションを使わない排他処理 • UPDATEしてaffected rows
> 0ならロックできた、とみなす • SQLが1行で済むのでアトミック性は確保できている • 異常終了は検知できないのでタイムアウト処理を作る必要あり 14
15.
まだ確認できてないこと • Radis/Memcachedで同じようなことできるの? • 長時間セッション張っていいの? •
FIFOできるの? • ググると実装はあるらしい • ローカルファイルで汎用実装だとflock()だよね…… • flock()は信用ならんイメージがある • mkdir()による代替実装って今どきやるのか? アドバイスください! 15
16.
ご清聴ありがとうございました 16
Download