PofEAA’s Wiki - PofEAA読書会第4回
行ってきた&発表してきた。
PofEAA Chap5. Concurrency
ogijunさんのサマリをベースに。
ひがさんとkoichikさんによる(豪華な!)レクチャー風景を見物できて、こっそり満足(笑)。 見た目的に面白く感じたので、携帯のカメラで撮影してしまった。(笑)。
話題に上った分離レベルの話について、詳細に知りたければ 別の書籍にあたるのが良いと思う。分離レベル程度ならば、いくらでも良い解説は読める。 もう少し具体的なレベルで知りたいならば、RDBMS固有の振る舞いに振れた書籍にあたるのが良い。
SQL Serverの場合は、.NETエンタープライズWebアプリケーション開発技術大全 (Vol.5)”がなかなかよい。
そして、Oracleの場合は、
がわかりやすいのでオススメ。(これ以外の書籍がNGというわけではサラサラ無いです。自分が所有している書籍の中では。という意味)
自分の発表: 複雑なトランザクション 1/2
自分の発表のネタは、
の第3部の複雑なトランザクションをサマリ化したもの。これの内容をベースにいろいろ議論した。
時間の関係もあり全部はプレゼン&議論できなかった。 今回扱うことができたのは・・・
8章. 対話型トランザクション処理の設計方法
対話型トランザクション処理とは 業務排他制御による対話型トランザクション処理の設計方法 楽観同時実行制御による対話型トランザクション処理の設計方法
9章. 複雑なトランザクション制御
複雑なトランザクション制御とは ネットワーク障害時のメッセージロスト対策
まで。
記憶している範囲で・・・
論点となったのは
ロックの方式
楽観的同時実行制御における「残念!」は、ユーザーに嫌がられる可能性アリ 在庫引き当ての場合など厳密なモノの管理が求められるケースだと、ここで提示した方法+αが求められるだろう。
会員限定とか、在庫をクラス分けするとかもあり。
楽観的同時実行制御の実現方式であるtimestamp方式は、サーバ時刻ズレなどの問題をはらむ。versionNoが一番ツブシが効く。
二重submit防止とロギング
ビューに対するモデルを、永続化しておき、過去の画面(=ビュー)を再現できることを求められたケースアリ (類似例として?) モデルをXML化しておいたが、予想以上にサイズが大きくなりいろいろ苦労した。 (WebObjects屋的には) ブラウザ戻る対策が主目的であるが、pageCacheとしてメモリ上にレンダリング後の画面データを持つ仕組みが存在している
来月もやります。
PofEAA’s Wiki - PofEAA読書会第5回
残りは・・・
9章. 複雑なトランザクション制御
オンライン型長時間バッチ処理 トランザクションマネージャと連携できないリソースマネージャを含む短時間トランザクション キュー型トランザクション
です。
ここらへんのテーマが気になる人は、第5回PoEAAに参加するか・・・・
をボチっとやっちゃってください。イイ本ですよ。これ。
2005/06/28: 追記
「ネットワーク障害時のメッセージロスト対策」のどこが複雑なトランザクションなの?
という問いに対してイマイチな回答をしてしまったので補足。 HTTPなどのメッセージ転送機構がReliableでなく、Tx配下で動作するRM的に動作できないためです。あの本では、機能を実現する全ての構成要素がReliableでないと「複雑なトランザクション」である。という定義なんです。
あと、2相ロックに関する、私とkoichikさんのやり取りで混乱されていた方いたら、ごめんなさい。 (当然といえば当然ですが)koichikさんの主張が正しいです。 私は(直列可能性を実現するロック方法である)2相ロックと、デッドロックしないロック方法(ロックを徐々に取るのではなく、一気にとる!)をごっちゃにしてました。スンマセン。
最後にkoichikさんにお願い。 クラス正規系(?)に触れているベージュの表紙の本の名称などを教えてください!という思いをこめて「お願いトラバ」!
ん?行かないな・・・。あれれ?