SlideShare a Scribd company logo
1 of 43
Download to read offline
こわくない同時実行制御
@Hiraku
おことわり
• 荒い説明なので突っ込みどころ多いと思います
• 「同時実行制御って難しそうだけど面白いな♪」ぐらいになれ
ばうれしい
自己紹介
• @Hiraku (中野 拓)
• PHP歴5年+
• 使ったことのあるフレームワーク
• Zend Framework1
• Symfony
• Yaf
• BEAR.Sunday
• XMLとJSONの相互変換ライブラリ作ってます
• https://github.com/hirak/php-XML_Builder
目次
• 同時実行制御とは
• 考慮するべき不具合
• 解決手法
同時実行制御
Concurrency Control
同時実行制御とは
• あるデータを、複数の人が同時に扱えるようにすることを考え
る分野
• 例:共有のExcel進捗管理表
さっき僕が
追記した内容が
上書きされて
消えちゃってる
よ!
内容を変更
したよー
同時実行
制御
並列並行
プログラミング
DB
トランザクション
バージョン管理
システム
(git, svn)
同時実行制御は応用範囲が広い
• 並列プログラミング
• DBトランザクション
• バージョン管理システム
• 逆に、同時実行制御さえ理解しておけば、上記3つのシステム
が理解しやすくなる
• イモヅル式!
教科書
• 先述の3つの分野では必ず同時実行制御が必要になる
• どこから勉強しても行き着く
• わたしはSQLから攻めました。
いいのがあったら教えてください
• http://www.amazon.co.jp/dp/4798128023
• 資格試験の教科書なんかでも登場するかも…?
同時実行制御を理解するために
1. 何も制御しなければどんな不具合が起きるのか理解する
2. どうすれば防げるのか理解する
同時実行制御の失敗
で起きる問題
整理して名前を付けてくれた人がいるんです
制御しないと問題が起きる
• 具体的な問題って何?
• SQLモデルによる定義があります
• http://research.microsoft.com/apps/pubs/default.aspx?id=69541
• 5つに分類
• P0 ダーティライト
• P1 ダーティーリード
• P2 ノンリピータブルリード(ファジーリード)
• P3 ファントム
• P4 ロストアップデート
SQL的考え方で説明します
• 一連のまとまった操作=トランザクション(Tx)
• 基本的に、自分のTxが変更を行っていないのに、
データが勝手に変更されていると、不具合の原因になる
P0 ダーティライト
• Tx中に他のTxが書き込め
ちゃう状態
• 正しい値が何だったのか
わからなくなる
Tx1 Tx2
UPDATE x=1
UPDATE x=2
Data
x=0
x=1
x=2
rollback x=??
P1 ダーティリード
• Tx中の変更が他のTx
から読めちゃう状態
Tx1 Tx2
X=1
y = x + 1 (2)
Data
X=0, y=0
x=1
y=0
x=1
y=2
rollback x=0
y=??
SELECT x
P2 ノンリピータブルリード
• 他のTxによって
データが勝手に
書き換わってい
ること
Tx1 Tx2
SELECT x
x=1
Data
x=0
x=0
x=1
SELECT x x=1
x=0
x=1
SELECTに再現性がない
P3 ファントム
• 他のTxの操作によっ
て謎のデータが突如
出現すること
• ノンリピータブル
リードと対
Tx1 Tx2
SELECT x FROM Data
INSERT
Data
(x=0)
(x=0)
(x=0)
(x=1)
SELECT x FROM Data (x=0)
(x=1)
1件hit
2件hit
SELECTに再現性がない
P4 ロストアップデート
• 同時更新のうち、
早かった方の更新
が失われてしまう
• インクリメントの
制御など
Tx1 Tx2
SELECT x SELECT x
Data
x=0
x=0
x=1x = x + 1
x=1
手動インクリメントの
ロスト
x=0 x=0
x = x + 1
SQLの場合
• トランザクション分離レベルで制御できます
分離レベル P0
ダーティライト
P1
ダーティリード
P2
アンリピータブ
ルリード
P3
ファントム
READ
UNCOMMITTED
起きない 発生する 発生する 発生する
READ
COMMITTED
起きない 起きない 発生する 発生する
REPEATABLE
READ
起きない 起きない 起きない 発生する
SERIALIZABLE 起きない 起きない 起きない 起きない
※MySQL InnoDBのデフォルトはREPEATABLE READ
対処方法
色々やり方があります
基本方針
• 競合が起きる条件を崩せば、問題は発生しない
• 更新がある
• 複数トランザクションが同時に同じデータを更新する
• この2つの条件をいかにして崩すか。
対処方法0 書き込まない
• 読み込みのみであれば、問題は一切発生しない
• 何も考えなくてよい。同時に読み込んでOK
• 書き込みはバッチ処理に任せるケースも
• もちろん、適用できるケースは限られる
対処方法1 同時実行しない
• 同時実行を一切しなければ、これらの問題は絶対に起きない
• 直列化 (Serialization) とも言う
• いったんキューに貯めて、リソースが空くのを待つ
直列化の問題
• パフォーマンスが落ちる
• スケーラビリティ皆無
• 実質ひとつのプロセッサが全作業を行うのと同じ
• これでは実用にならないケースも多い…
対処方法はここから分岐します
ロック
バージョン
管理
対処方法2-a ロック(Locking)
• 悲観的同時実行制御とも呼ばれる
• リソースに鍵をかけて、一度に一人しか触れないようにする
• 部分的に直列化
• ロックされていたら、ロックが解除されるまで待つ
• 直列化は全リソースをまとめてロックするのと同じ
• 適切に使えば問題を完璧に防げる
個室トイレっぽい
リソース
使用中
or
使っていいよ
使いたいプロセスはアンロック
されるまで待つ
ロックの粒度
• テーブルロック
• (清掃中につきトイレ全体立ち入り禁止)
• 行ロック
• (個室の使用中・空きの制御)
• 読み込みだけなら許可するロック
• 読み込みも書き込みも許可しないロック
• 大きくロックした方が安全だけど、
その分パフォーマンスが劣化する
ロックの問題
• 使いこなすのがむちゃくちゃ難しい
• ロックのかけすぎでパフォーマンスが出ない
• アンロック忘れにより破滅
• ロックの順番
• デッドロック
• 再利用性の低下
アンロック忘れ
• ロックしっぱなしにすると、永久に他のトランザクションがそ
のリソースを扱えなくなる
• うっかりミス
• 攻撃
デッドロック
• ロックの順番を統一していな
いと発生
• 永久にロックが取れない
• 第2回 トランザクションを知ればデータベー
スがわかる―「データ復旧」「同時実行制御」
を行う“不完全な”しくみ(3):DBアタマアカ
デミー|gihyo.jp … 技術評論社
• http://gihyo.jp/dev/serial/01/db-
academy/000203
ロックは地獄だぜー
• ロックは難しい
• 細かく書いていくとたぶん本ができあがる
• 扱うにしても、なるべく先人たちの実装を再利用しましょう
• DBなら組み込みのトランザクションを使う
• ファイルならgitを使う
• 参考: できる!並列・並行プログラミング
http://www.slideshare.net/pfi/ss-9780450
対処方法2-b バージョン管理
• 楽観的同時実行制御とも呼ばれる
• データにリビジョン番号を振り、改竄を検出できるようにする
• データ改竄を検出したらやり直すかマージする
• ロックより簡単
• 競合が多いとパフォーマンスが落ちる
• リトライしまくるので、ロックより劣化する
• 競合が発覚したら
• リトライ
• マージ
リソース
(1) バージョンを取得しておく
(2) バージョンを取得しておく
(3) ver1をベースにして、
データを更新するよー
(4)ver1をベースにして、
データを更新するよー
Ver 1 Ver 2
元にしたデータが
古いよ!
受け入れません
バージョンの粒度
• テーブル全体のバージョン
• 行のバージョン
• ロックの粒度と対比
STM (Software Transactional Memory)
• バージョン管理方式を使った並行プログラミングの手法
• 更新が競合する場合は1からやり直す
• 割と単純なモデル
Git, svn方式
• マージの概念をプラス
• マージもうまくできない場合、最初からやり直す
実際、同時実行制御と
どう付き合っていくか
理屈はわかったんだけど
なるべくなら自分で実装しない
• DBのトランザクションが使えるなら素直にそれを使う
• 自前実装はイバラの道
• やるならバージョン管理方式の方がお手軽で楽
扱うデータの種類を見極める
• 例) PHPのセッション
• 同時に同じセッションデータを読み書きすることはほとんどない
• 同時実行が起きないので制御を考えなくていい
• MemcachedとかのKVSで十分
• データの種類にあった同時実行制御を行えば、パフォーマンス
が向上する
• トランザクション分離レベルを操るところからでも
RESTとトランザクション
• WebAPI作ってますか
• WebAPIで同時実行制御のことを考えていますか
• せっかくMySQLを使っているのに、オレオレWebAPI化によっ
て同時実行制御が破綻しているケースをよく見かける
• 条件付き更新に対応しておけば大丈夫
まとめ
• 同時実行制御は難しいですが、色々な分野で登場します
• わかると意外と役に立つかも
• 我々凡人はなるべく先人たちの実装を使いましょう
• Git
• DBのトランザクション
• 自前実装する場合は気を付けましょう
同時実行制御
こわくないよ!!

More Related Content

What's hot

次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術 次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術 Youichiro Miyake
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
データベース入門
データベース入門データベース入門
データベース入門拓 小林
 
Hyper vを理解する
Hyper vを理解するHyper vを理解する
Hyper vを理解するNaoki Abe
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるAtsushi KOMIYA
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話Yuhei Miyazato
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
Deflate
DeflateDeflate
Deflate7shi
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門ESM SEC
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
2023-03-23_Spiral.AI
2023-03-23_Spiral.AI2023-03-23_Spiral.AI
2023-03-23_Spiral.AISasakiYuichi1
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 

What's hot (20)

次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術 次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
データベース入門
データベース入門データベース入門
データベース入門
 
Hyper vを理解する
Hyper vを理解するHyper vを理解する
Hyper vを理解する
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
Deflate
DeflateDeflate
Deflate
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Fbx解説 (1 構文編) (1)
Fbx解説 (1  構文編) (1)Fbx解説 (1  構文編) (1)
Fbx解説 (1 構文編) (1)
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
Spring tools4
Spring tools4Spring tools4
Spring tools4
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
Yahoo! ニュースにおける ドキュメント管理の事例紹介
Yahoo! ニュースにおけるドキュメント管理の事例紹介Yahoo! ニュースにおけるドキュメント管理の事例紹介
Yahoo! ニュースにおける ドキュメント管理の事例紹介
 
2023-03-23_Spiral.AI
2023-03-23_Spiral.AI2023-03-23_Spiral.AI
2023-03-23_Spiral.AI
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 

Viewers also liked

データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数Kenta Oku
 
My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2拓 小林
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~
RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~
RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~nisobe58
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことleverages_event
 
IPDPS & HPDC 報告
IPDPS & HPDC 報告IPDPS & HPDC 報告
IPDPS & HPDC 報告Junya Arai
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2Takashi Hoshino
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Takeshi Yamamuro
 
MySQL INDEX+EXPLAIN入門
MySQL INDEX+EXPLAIN入門MySQL INDEX+EXPLAIN入門
MySQL INDEX+EXPLAIN入門infinite_loop
 
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015Yahoo!デベロッパーネットワーク
 
Slideshare signup tutorial
Slideshare signup tutorialSlideshare signup tutorial
Slideshare signup tutorialbestabrook
 
プレゼン初心者に ありがちな アンチパターン 黎明篇
プレゼン初心者に ありがちな アンチパターン 黎明篇プレゼン初心者に ありがちな アンチパターン 黎明篇
プレゼン初心者に ありがちな アンチパターン 黎明篇真俊 横田
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法Sho Nakazono
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話
CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話
CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話Takahiro YAMAGUCHI
 
初心者向けMySQLの始め方
初心者向けMySQLの始め方初心者向けMySQLの始め方
初心者向けMySQLの始め方Masahiro Tomita
 

Viewers also liked (20)

データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数
 
JSON SchemaとPHP
JSON SchemaとPHPJSON SchemaとPHP
JSON SchemaとPHP
 
My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~
RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~
RDB入門 ~アプリケーション開発者が陥りやすいDB開発の落とし穴~
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
 
IPDPS & HPDC 報告
IPDPS & HPDC 報告IPDPS & HPDC 報告
IPDPS & HPDC 報告
 
UI/UXなUXのお話
UI/UXなUXのお話 UI/UXなUXのお話
UI/UXなUXのお話
 
SkipGraph
SkipGraphSkipGraph
SkipGraph
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 
MySQL INDEX+EXPLAIN入門
MySQL INDEX+EXPLAIN入門MySQL INDEX+EXPLAIN入門
MySQL INDEX+EXPLAIN入門
 
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
 
Slideshare signup tutorial
Slideshare signup tutorialSlideshare signup tutorial
Slideshare signup tutorial
 
プレゼン初心者に ありがちな アンチパターン 黎明篇
プレゼン初心者に ありがちな アンチパターン 黎明篇プレゼン初心者に ありがちな アンチパターン 黎明篇
プレゼン初心者に ありがちな アンチパターン 黎明篇
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話
CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話
CEDEC2013 ソーシャルゲームの開発現場でUXについて思いっきりあがいてみた1年間の話
 
初心者向けMySQLの始め方
初心者向けMySQLの始め方初心者向けMySQLの始め方
初心者向けMySQLの始め方
 

More from Hiraku Nakano

composer-scriptsについて
composer-scriptsについてcomposer-scriptsについて
composer-scriptsについてHiraku Nakano
 
composerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudycomposerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudyHiraku Nakano
 
Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt Hiraku Nakano
 
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudyScrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudyHiraku Nakano
 
PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介Hiraku Nakano
 
Xml builderの紹介
Xml builderの紹介Xml builderの紹介
Xml builderの紹介Hiraku Nakano
 

More from Hiraku Nakano (8)

composer-scriptsについて
composer-scriptsについてcomposer-scriptsについて
composer-scriptsについて
 
composerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudycomposerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudy
 
Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt
 
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudyScrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudy
 
PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介
 
pecl-AOPの紹介
pecl-AOPの紹介pecl-AOPの紹介
pecl-AOPの紹介
 
URLで遊ぼう
URLで遊ぼうURLで遊ぼう
URLで遊ぼう
 
Xml builderの紹介
Xml builderの紹介Xml builderの紹介
Xml builderの紹介
 

Recently uploaded

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (9)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

こわくない同時実行制御