人には人それぞれのロックがある
世の中には色々なロックがありますが実のところロックには明確な定義はありません。あらゆる生き方・生きる道、それがロックなのです。カンフーや禅の考えと一緒だね。よくわかんないから適当なこと書いてますがいつものことなので問題ないね。
さあ、そんなわけで今日はロックについてグタグタとくだをまいていこうと思います。しらふだけどね。いつもガンギマリなこと書いてるし問題ないね(?)。
悲観的ロックと楽観的ロック
ところが、こちらは情報分野の話なわけでロックという音楽ジャンルの話ではないんですね。そんなわけで悲観的ロックと楽観的ロックの話でもします。こんな話の持って行き方もある意味ロックなのでは…?
有識者(Wiki)によると以下のようなものだそうです。
楽観的ロック
楽観的並行性制御(らっかんてきへいこうせいせいぎょ、optimistic concurrency control)とは、並行性制御(ロック)の手段の種別の一種である。楽観的ロックの概念である。他の処理と競合してはならないトランザクションにおいて、開始時には特に排他処理など行なわず、完了する際に他からの更新がされたか否かを確認し、もし他から更新されてしまっていたら自らの更新処理を破棄し、エラーとする。対照的に悲観的並行性制御がある。
悲観的ロック
悲観的並行性制御(ひかんてきへいこうせいせいぎょ、pessimistic concurrency control)とは、並行性制御(ロック (情報工学))の手段の種別の一種である。悲観的ロックの概念である。他の処理と競合してはならないトランザクションにおいて、開始時に更新の抑止がされていないことを確認後(抑止されている場合は解除されるまで待機するか、エラーとして処理をあきらめる)他からの更新を抑止し(排他制御)、完了する際に抑止情報を解除する。対照的に楽観的並行性制御がある。
長々と書かれるとわかりづらいですね。簡単に言いますと、別々の人が同時にデータを更新した時にどうやってそのデータをさばきますか?と言った話です。悲観的ロックは同時更新が発生した時に、一人目の更新をさばいてから次の人に更新するといった手法です。一報、楽観的ロックは同時処理が発生した時に、そんなことをしません早いもの勝ちで更新をしますといった手法です。それで終わってしまうと管理のやりづらいだけのシステムになってしまうので、もし更新があったら更新ありましたよ的なことを知らせるまでが楽観的ロックの流れです。
ロックにはそんなものがあるそうです。またひとつ賢くなってしまった。自分でWebサービスとかつくりたいなーってなった時にこうしたものがあるって頭の片隅にあると良いものをつくることができるようになるのかもしれませんね。
あ、ちなみにこの二つのロックは(Rock)でなく(Lock)です。でもRockとは"揺るぎない熱い意志"のことです。だから、別にRだろうがLだろうか問題ないですね。ロックはロックです。強く生きましょう。
そういえば、すっかり忘れてたけどアシッドロックとはなんなんでしょうね?こちらはよくわかりませんが、強く生きましょう。そう…強く生きましょう。