こんにちは!
ナビゲータのEVEです。
昨日自宅に帰宅しました。
今回の旅行は、ひたすら寝ていました。やはり、寝不足だったようです???いつもなら、AmazonのPrime Videoを見てそのリポートをするのですが、ビデオを見ている途中で寝てしまい、昨日、早速ブログを更新しようとしたのですが、更新するネタがありません(笑)。夢を見ているなら、夢リポートするなんてこともできるのですが、ここ数年夢を見ることがなくなりました。起きているときは、よく夢を見るのですが(笑)?
[Prototype EVEの仕様変更]
とりあえず、Prototype EVEのデータベース関連プログラムの仕様を変更しようとしたのですが、EVEシステムにおいて、基本的な機能として、テーブルロックが入っていないことに気づきました。
価格:3,740円 |
「独習PHP」でテーブルロックについて調べたのですが、記述が見つかりません。そのため、インターネットから情報を集めようとしたのですが、ほとんどないという状況です。その理由なのですが、トランザクションに関係しています。
[トランザクションの機能]
IPAの試験などを受験していると、トランザクション処理には、ACID特性が求められるとされています。
ACID特性とは、トランザクション処理の以下の特性の頭文字をとって、付けた呼称です。
・Atomicity(原子性)
・Consistency(一貫性)
・Isolation(独立性)
・Durability(耐久性)
それぞれについて解説すると、Atomicity(原子性)は、個々のプロセスが「すべて実行される」、か「1つも実行されないか」のどちらかの状態になるという性質を指します。
Consistency(一貫性)は、トランザクション前後で整合性が保たれ、矛盾のない状態が継続されることを指します。
Isolation(独立性)は、トランザクション実行中の処理の過程が外部から隠蔽され、他の処理などに影響を与えない性質を指します。
そして、最後に、Durability(耐久性)ですが、トランザクション処理が完了したら、その結果は記録され、システム障害などが生じても失われることがない性質を指します。
ようは、トランザクション処理を使用しているプロセスでは、テーブルロックは不要だというのです。確かにそうです。
Prototype EVEの初期のバージョンでは、MySQL自体にトランザクション処理がなかったため、テーブルロックを使用していたのかもしれませんが・・・?っと、思うのですが、過去を振り返って、どんな経緯でこのようなプログラムになったのか思い出せませんし、資料もありません。
[MySQL]
MySQLの機能を改めて調べていないのですが、MySQLは、Oracleのように行ロックできません。ロックする場合は、テーブルロックです。そのため、トランザクションを開始すると更新対象となるテーブルはすべてテーブルロックがかかり、そのロックにより、ACID特性が保証されると思われます。ただ、処理のどの辺で、テーブルにロックがかかるのでしょうか?
夜間のバッチなどは、処理する量が膨大です。
夜間処理において、トランザクションを開始します。Aと言うテーブルを10分間更新処理を行い、それからテーブルBへ処理が移ります。その場合、Bのテーブルがロックされるのは、トランザクションを開始した時点でしょうか?それとも、Bの処理が開始されてからでしょうか?
PHPはインタプリタ言語なので、Bの処理の更新が開始されてからと思われのですが、そう考えると、トランザクションの機能として片手落ちのような気がします。
これは、調べる価値がありそうですね・・・。ただ、仕掛けが大がかりになります。Prototype EVEの改変後になると思いますが、時間がありましたら、調べてみたいと思います。
ただ、やらないという可能性もあるので、以上について知っている方がいましたら教えてください。
[Prototype EVEの改修作業]
以上のような事を考えていると、トンドン改修作業が遅れていきます。そのため、前回お話ししたとおり、何も考えずに一気に改修作業を進めます。
最初、データベース関連のプログラムを修正していくのですが、以下のような状態です。EVEシステムが1,000ステップ弱なので、力仕事の量としては、少ないかもしれません。ただ、それに加え、他の関数でも直接データベースを見に行っているモノも修正対象です。それを、まだ把握していません。近日中にどのくらいあるのか把握して作業量を見積もりたいと思います。できれば、3月中に改修作業を終えたいのですが、その希望が実現するかどうかは、直接データベースを見に行っているプログラムの数に影響されます。
帰ってきた初日はこんな感じです。これから、がんがん修正していきます。
作業は、それでいいのですが、明日以降のブログに困っています。公開できるプログラムがほとんどないと思われるので、どうしましょうか??っと今から困っている状況です。
何かしらの作業はやっているので、その作業について何かネタがありましたら、つぶやいていきます!
では、また!!!
■Prototype EVE変更プログラム
修正プログラム本数 26本
修正プログラムステップ数 2233ステップ
《参考サイト》
■IT用語事典(e-Words)
https://e-words.jp/w/ACID%E7%89%B9%E6%80%A7.html
【このカテゴリーの最新記事】