《最新》みんなのトレンド・アイテム!
Prototype EVEの仕様変更の問題点 〜テーブルロック〜 [プログラム研究室]
ナビゲータのEVEです。
最近は気温が上がり、体調も回復してきました。本日は、以前ほどではありませんが、プログラミングの調子も戻ってきて、Prototype EVEの修正は、537ステップ、6つの関数の対応を終えました。復調したら、もっと進めそうです。
[プログラム的な問題]
今回の修正において、問題がありました。それは、
2023年3月27日のブログ
でも触れたのですが、
テーブルロック
に関する機能が、
PDOクラス
の機能として実装しているのだが、説明が乏しい・・・。
IPAの試験にも出題されているのですが、データベースを更新する場合、トランザクションを利用します。そのトランザクションは、MySQLだけでなく、すべてのデータベース、Oracle、SQLServerなどで以下の機能を保証しています。それを保証していないデータベースは、トランザクションは未実装だということになります。
・Atomicity(原子性)
・Consistency(一貫性)
・Isolation(独立性)
・Durability(耐久性)
詳しい説明は、2023年3月27のブログを見ていただくとして、この機能のせいで、テーブルロックの機能について解説しているサイトがありません。ただ、探したりないだけなのかもしれませんが・・・?
[PHP5までのMySQLのAPI]
PHP5までのMySQL APIには、以下のテーブルロック機能がありました。
★read
指定したテーブルを読み取り専用としてロックします。ロックを行ったセッションも他のセッションも、そのテーブルに対してSELECT文しか実行できません。
★read local
そのテーブルを読み取り専用としてロックしますが、ロックを行ったセッションから、競合が発生しないINSERT命令による変更だけは行うことができます。競合が発生した場合は、現在行われているロックが解除されるまで待ちます。
★write
read/read localに優先してロックを行うことができます。
★low_priority write
すでに、read/read localによって指定したテーブルがロックされていたら、ロックが解除されるまで待ちます。
機能が豊富なんですよね・・・。この豊富な機能をPrototype EVEでは、ふんだんに利用しています。ただ、いくら調べても上記機能に個別に対応しているメソッドが見つからない・・・。
PHP5までは、トランザクションと、テーブルロックの整合性どうやって取っていたのでしょうね?
[対応策]
調べても上記と同様の機能が見つからないので、どのテーブルロックを選択しても、現在は、
排他ロック
というロジックになっています。そもそも、現在のロジックでロックされるかどうか分からないし、トランザクションとの整合性をどうやっているのかも不明です。調べるのにも時間がかかりますし、当初の予定通り、PHP8へのバージョンアップを急ぎます。
では、また!
■Prototype EVE変更プログラム進捗状況
修正プログラム本数 15/26本(6本プログラム修正)
修正プログラムステップ数 1037/2233ステップ(537ステップのプログラム修正)
■Prototype EVEの仕様変更 [プログラム研究室](2023年3月27日)
https://fanblogs.jp/bahamuteve/archive/260/0
タグ:
排他ロック
PDOクラス
テーブルロック
Atomicity
Consistency
Durability
Isolation
posted by
ゼロから始めるシステム開発
at 17:03 |
Comment(0)
|
TrackBack(0)
|
プログラミング研究室
検索
<<
2023年04月
>>
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
最新記事
(11/22)
エンティティ参照への対応 〜プログラム研究室〜
(11/21)
htmlspecialchars 〜プログラム研究室〜
(11/20)
アロー関数 〜プログラム研究室〜
(11/19)
無名関数 〜プログラム研究室〜
(11/17)
サイバー・フィジカル・セキュリティ対策フレームワーク(CPSF) 〜セキュリティ研究室
タグクラウド
ChatGPT
JavaScript
php
Ubuntu
情報処理安全確保支援士
カテゴリーアーカイブ
YouTubeでの稼ぎ方研究室
(23)
システム開発研究室
(114)
セキュリティ研究室
(40)
システム監査研究室
(13)
ハードウェア研究室
(17)
ネットワーク研究室
(6)
ソフトウェア研究室
(76)
プログラミング研究室
(97)
デザイン研究室
(1)
データベース研究室
(3)
先端技術研究室
(3)
株式投資研究室
(35)
人工知能研究室
(6)
Coffee Time
(67)
ゼロからはじめるシステム開発
(1)
月別アーカイブ
2024年11月
(18)
2024年10月
(16)
2024年09月
(14)
2024年08月
(20)
2024年04月
(6)
2024年03月
(12)
2024年02月
(9)
2024年01月
(10)
2023年12月
(15)
2023年11月
(12)
2023年10月
(16)
2023年09月
(12)
2023年08月
(10)
2023年07月
(14)
2023年06月
(30)
2023年05月
(18)
2023年04月
(27)
2023年03月
(28)
2023年02月
(21)
2023年01月
(30)
日別アーカイブ
2024年11月22日
(1)
2024年11月21日
(1)
2024年11月20日
(1)
2024年11月19日
(1)
2024年11月17日
(1)
2024年11月15日
(1)
2024年11月14日
(1)
2024年11月13日
(1)
2024年11月12日
(1)
2024年11月11日
(1)
2024年11月10日
(1)
2024年11月08日
(1)
2024年11月07日
(1)
2024年11月06日
(1)
2024年11月05日
(1)
2024年11月03日
(1)
2024年11月02日
(1)
2024年11月01日
(1)
2024年10月23日
(1)
2024年10月22日
(1)
2024年10月21日
(1)
2024年10月19日
(1)
2024年10月18日
(1)
2024年10月17日
(1)
2024年10月14日
(1)
2024年10月12日
(1)
2024年10月11日
(1)
2024年10月09日
(1)
2024年10月08日
(1)
2024年10月07日
(1)
ファン
このブログの読者になる
更新情報をチェックする
ブックマークする
友達に教える
最新コメント
Ubuntuをインストールする −インストール準備− 〜ソフトウェア研究室〜
by 中村 健 (03/11)
プロフィール
ゼロから始めるシステム開発
こんにちは!ナビゲータのEVEです。各種研究室を用意し、次期EVEシステムを製造しようと日々頑張っています。現在一番力を入れているのが、資金調達です。このブログもその一環ですので、ご協力いただければ嬉しいです。
プロフィール
2023年04月21日
共有
Facebook
Twitter
Google +
LinkedIn
Email
Mobilize
your Site
スマートフォン版を閲覧
|
PC版を閲覧
5
次の10件>>
ホーム
2
3
その他
Share by: