書籍をつつく110−トランザクション処理。最強の本。2009-08-10 Mon 11:09
最近レビューを書いていないからそろそろ書くピヨ♪データベースに関わる人にとってこれ以上ないってぐらいの凄い名著がこの
トランザクション処理〈上〉―概念と技法 トランザクション処理〈下〉―概念と技法 なんだ。じゃあ早速目次を見てみよう♪ 【目次】 ****************上巻**************** 第1章 イントロダクション 1.1 歴史的展望 1.2 トランザクション処理システムとは 1.2.1 エンドユーザから見たトランザクション処理システム 1.2.2 管理者/オペレータから見たTPシステム 1.2.3 アプリケーション設計者から見たTPシステム 1.2.4 リソースマネージャから見たTPシステム 1.2.5 TPシステムのコアサービス 1.3 トランザクション処理システムの機能リスト 1.3.1 アプリケーション開発の機能 1.3.2 リポジトリの機能 1.3.3 TPモニタの機能 1.3.4 データ通信の機能 1.3.5 データベースの機能 1.3.6 運用の機能 1.3.7 教育およびテストの機能 1.3.8 機能のまとめ 1.4 まとめ 1.5 歴史的経緯 演習問題 解答 第2章 基本的なコンピュータ用語 2.1 はじめに 2.1.1 単位について 2.2 基本的なハードウェア 2.2.1 メモリ 2.2.2 プロセッサ 2.2.3 通信装置 2.2.4 ハードウェア・アーキテクチャ 2.3 基本ソフトウェア ― アドレス空間、プロセス、セッション 2.3.1 アドレス空間 2.3.2 プロセス、保護ドメイン、スレッド 2.3.3 メッセージとセッション 2.4 一般的なシステムの問題 2.4.1 クライアントとサーバ 2.4.2 ネーミング 2.4.3 認証 2.4.4 権限の許可 2.4.5 スケジューリングと性能 2.4.6 まとめ 2.5 ファイル 2.5.1 ファイルの操作 2.5.2 ファイルの編成法 2.5.3 分散ファイル 2.5.4 SQL 2.6 ソフトウェアの性能 2.7 トランザクション処理の標準化 2.7.1 ポータビリティのための標準とインタオペラビリティのための標準 2.7.2 APIとFAP 2.7.3 LU6.2、事実上の標準 2.7.4 X/Open DTPを含むOSI-TP、正規の標準 2.8 まとめ 演習問題 解答 第3章 フォールトトレランス 3.1 はじめに 3.1.1 簡単な確率の速成コース 3.1.2 フォールトトレランスの外観 3.2 定義 3.2.1 故障、障害、アベイラビリティ、信頼性 3.2.2 故障回避とフォールトトレランスの分類 3.2.3 修復、フェイルファスト、モジュラリティ、再帰的設計 3.3 経験的研究 3.3.1 停止は稀なこと 3.3.2 伝統的なシステムの調査 3.3.3 フォールトトレラント・システムの調査 3.4 典型的なモジュール障害率 3.5 フォールトトレランスのハードウェアアプローチ 3.5.1 基本n重化のアイデア:フェイルファスト・モジュールの構築法 3.5.2 n重化でのフェイルファスト対フェイルボート多数決器 3.5.3 n重化プラス修復は高いアベイラビリティをもたらす 3.5.4 多数決器の問題 3.5.5 まとめ 3.6 ソフトウェアが問題 3.6.1 nバージョンプログラミングとソフトウェア・フォールトトレランス 3.6.2 トランザクションとソフトウェア・フォールトトレランス 3.6.3 まとめ 3.7 故障モデルとソフトウェア故障マスキング 3.7.1 モデルの概観 3.7.2 高いアベイラビリティを持つ記憶装置の構築 3.7.3 高いアベイラビリティを持つプロセス 3.7.4 セッションとプロセスペアによる高信頼メッセージ 3.7.5 プロセス、メッセージ、記憶装置モデルのまとめ 3.8 一般的な原則 3.9 訓戒話 ― システム惑乱 3.10 まとめ 3.11 歴史的経緯 演習問題 解答 第4章 トランザクションモデル 4.1 はじめに 4.1.1 この章について 4.2 原子的な動作とフラットトランザクション 4.2.1 原子的な動作としてのディスクへの書き込み 4.2.2 動作タイプの分類 4.2.3 フラットトランザクション 4.2.4 フラットトランザクションの限界 4.3 制御領域(Spheres of Control) 4.3.1 制御領域の定義 4.3.2 制御領域の動的な振舞い 4.3.3 まとめ 4.4 トランザクションモデルを説明するための表記法 4.4.1 トランザクションモデルを表現するために何が必要か 4.4.2 表記法の構成要素 4.4.3 単純なルールによるトランザクションモデルの定義 4.5 セーブポイント付きフラットトランザクション 4.5.1 セーブポイントについて 4.5.2 セーブポイント・モデルのためのルールの開発 4.5.3 永続セーブポイント 4.6 連鎖型トランザクション 4.7 ネステドトランザクション 4.7.1 入れ子構造の定義 4.7.2 ネステドトランザクションの利用 4.7.3 セーブポイントによるネステドトランザクションのエミュレート 4.8 分散トランザクション 4.9 マルチレベル・トランザクション 4.9.1 補償トランザクションの役割 4.9.2 マルチレベル・トランザクションの利用 4.10 オープン・ネステドトランザクション 4.11 長時間トランザクション 4.11.1 トランザクション処理コンテクスト 4.11.2 ミニバッチ 4.11.3 サーガ 4.12 その他の興味深い手法 4.13 まとめ 4.14 歴史的経緯 演習問題 解答 第5章 トランザクション処理モニタ:概説 5.1 はじめに 5.2 トランザクションシステムにおけるTPモニタの役割 5.2.1 トランザクション指向の計算処理スタイル 5.2.2 トランザクション処理サービス 5.2.3 TPシステムのプロセス構成について 5.2.4 まとめ 5.3 TPモニタの構造 5.3.1 TPモニタの構成要素 5.3.2 トランザクションサービスの構成要素 5.3.3 リソースマネージャ・インタフェースのためにTPモニタが行うサポート 5.4 トランザクション型リモートプロシジャコール:基本アイデア 5.4.1 誰がRPCの実行に参加するか 5.4.2 RPC処理に必要なアドレス空間の構造 5.4.3 RPCの実行過程 5.4.4 まとめ 5.5 トランザクション指向プログラミングスタイルの例 5.5.1 基本的な処理ループ 5.5.2 リソースマネージャをトランザクションにつなぐ方法:単純な場合 5.5.3 リソースマネージャをトランザクションにつなぐ方法:洗練された場合 5.5.4 永続セーブポイントの使い方 5.6 用語のまとめ 5.7 歴史的経緯 演習問題 解答 第6章 トランザクション処理モニタ 6.1 はじめに 6.2 トランザクション型リモートプロシジャコール 6.2.1 リソースマネージャのインタフェース 6.2.2 リソースマネージャがトランザクションのサポートのためにすべきこと 6.2.3 リソースマネージャとTPモニタの間のインタフェース 6.2.4 リソースマネージャ・コール対リソースマネージャ・セッション 6.2.5 まとめ 6.3 TPモニタの機能に関する原理 6.3.1 TPOSの中心部データ構造について 6.3.2 TPモニタが管理するデータ構造 6.3.3 TRPCの実行経路とその道案内 6.3.4 TRPCのアボート競合について 6.3.5 まとめ 6.4 リクエストキューとレスポンスキューの管理 6.4.1 リソースマネージャ呼び出しのマッピング処理に使われる短時間キューについて 6.4.2 非同期トランザクション処理のための持続性リクエストキュー 6.4.3 まとめ 6.5 TPモニタのその他の機能 6.5.1 負荷バランス 6.5.2 認証と権限許可 6.5.3 リスタート処理 6.6 まとめ 6.7 歴史的経緯 演習問題 解答 訳者コメント 第7章 分離性の概念 7.1 はじめに 7.2 分離性の導入 7.3 分離性の依存関係モデル 7.3.1 静的割り当てか動的割り当てか 7.3.2 トランザクションの依存関係 7.3.3 3種類の不正な依存関係 7.3.4 分離性の形式的モデルの有用性 7.4 分離性:アプリケーションプログラマの視点 7.5 分離性に関する定理 7.5.1 アクションとトランザクション 7.5.2 正規トランザクションと2相トランザクション 7.5.3 トランザクションの履歴 7.5.4 合法な履歴とロックの両立性 7.5.5 版、依存関係、依存関係のグラフ 7.5.6 等価で分離した履歴:BEFORE、AFTERおよびワームホール 7.5.7 ワームホールは分離されていない 7.5.8 定義のまとめ 7.5.9 分離性の定理に関するまとめ 7.6 分離性の次数 7.6.1 分離次数の定理 7.6.2 SQLと分離性の次数 7.6.3 低次の分離性の利点と欠点 7.6.4 SQLにおける特殊な分離 ― リードパストと通知ロック 7.7 ファントムと述語ロック 7.7.1 述語ロックに関する問題 7.8 粒度ロック 7.8.1 木構造ロックとインテント・ロックモード 7.8.2 更新モードロック 7.8.3 粒度ロックのまとめ 7.8.4 キー範囲ロック 7.8.5 動的なキー範囲ロッキング:後方キーロッキングと前方キーロッキング 7.8.6 キー範囲ロックに必要となるDAGロック 7.8.7 DAGロッキングプロトコル 7.8.8 DAG上の粒度ロックの形式的定義 7.9 ロッキングにおける発見的手法 7.10 ネステドトランザクションのロッキング 7.11 スケジューリングとデッドロック 7.11.1 コンボイ現象 7.11.2 デッドロックを回避するか許容するか 7.11.3 待機グラフとデッドロック検出器 7.11.4 分散デッドロック 7.11.5 デッドロックの確率 7.12 新手法 7.12.1 フィールドコール 7.12.2 エスクロー・ロッキングと各種のフィールドコール改善手法 7.12.3 楽観的ロッキングとタイムスタンプロッキング 7.12.4 時間ドメインアドレシング 7.13 まとめ 7.14 歴史的経緯 演習問題 解答 第8章 ロックの実装 8.1 はじめに 8.1.1 この章について 8.1.2 ロックマネージャに並列性が必要な理由 8.1.3 リソースマネージャとロックマネージャのアドレス空間 8.2 原子的な機械命令 8.3 セマフォ 8.3.1 排他セマフォ 8.3.2 クラビング ― 共有データ構造のトラバース 8.3.3 共有セマフォ 8.3.4 共有ストレージの割り当て 8.3.5 セマフォと例外 8.4 ロックマネージャ 8.4.1 ロックの名前 8.4.2 ロックのキューとスケジューリング 8.4.3 ロックの期間とロックカウント 8.4.4 ロックマネージャのインタフェースとデータ構造 8.4.5 ロックマネージャの内部機構 8.4.6 ロックのエスカレーションと包括アンロック、通知ロック 8.4.7 トランザクション・セーブポイント、コミットおよびロールバック 8.4.8 システムのリスタート時のロック処理 8.4.9 フェニックス・トランザクション 8.4.10 ロックマネージャの構成と複雑さ 8.4.11 ロックマネージャのまとめ 8.5 デッドロックの検出 8.6 並列トランザクションと並列ネステドトランザクションのロッキング 8.7 まとめ 8.8 歴史的経緯 演習問題 解答 文献 インタフェース宣言 用語集 索引 ****************下巻**************** 第9章 ログマネージャ 9.1 はじめに 9.1.1 ログの利用法 9.1.2 ログマネージャの概要 9.1.3 ログマネージャと他のサービスの関係 9.1.4 ログマネージャの必要性 9.2 ログテーブル 9.2.1 ログテーブルのファイルへのマッピング 9.2.2 ログ順次番号 9.3 ログの公開インタフェース 9.3.1 ログテーブルへのアクセス権限許可 9.3.2 ログテーブルへの読み出し 9.3.3 ログテーブルへの書き込み 9.3.4 まとめ 9.4 ログ入出力の実装詳細 9.4.1 ログの読み出し 9.4.2 ログアンカ 9.4.3 トランザクションに関連したアンカ 9.4.4 ログの追加 9.4.5 割り当てログデーモンと掃き出しログデーモン 9.4.6 入念書き込み:シリアル、または、ピンポン 9.4.7 グループコミット、バッチ、混載貨車 9.4.8 WADS書き込み 9.4.9 ログを複数持つトランザクションマネージャ 9.4.10 まとめ 9.5 ログリスタート処理 9.5.1 トランザクションマネージャ・アンカの保存 9.5.2 リスタート準備:ログアンカの入念書き込み 9.5.3 リスタート時のアンカとログ終端の検索 9.6 ログのアーカイブ 9.6.1 どの程度の容量のログテーブルがオンラインにあるべきか 9.6.2 ロールバック、リスタート、アーカイブのための下限水位 9.6.3 動的ログ:側方コピーと前方コピー 9.6.4 同時実行中のトランザクションに影響を与えずにログをアーカイブする 9.6.5 電子倉庫と変化の累積 9.6.6 ログマネージャとアーカイブの循環関係 9.7 クライアント・サーバ・アーキテクチャでのロギング 9.8 まとめ 9.9 歴史的経緯 演習問題 解答 第10章 トランザクションマネージャの概念 10.1 はじめに 10.2 トランザクションマネージャ・インタフェース 10.2.1 トランザクションへのアプリケーションインタフェース 10.2.2 トランザクションへのリソースマネージャ・インタフェース 10.2.3 トランザクションマネージャの機能 10.3 トランザクション型リソースマネージャの概念 10.3.1 DO_UNDO_REDOプロトコル 10.3.2 ログテーブルとログレコード 10.3.3 通信セッションリカバリ 10.3.4 値ロギング 10.3.5 論理ロギング 10.3.6 物理論理ロギング 10.3.7 物理論理ロギング規則:固定、WAL、コミット時ログ強制書き出し 10.3.8 補償ログレコード 10.3.9 物理論理REDOのべき等性 10.3.10 まとめ 10.4 2相コミット:処理を原子的にする 10.4.1 集中システムでの2相コミット 10.4.2 分散トランザクションと2相コミット 10.5 まとめ 10.6 歴史的経緯 演習問題 解答 第11章 トランザクションマネージャの構造 11.1 はじめに 11.2 正常処理 11.2.1 トランザクション識別子 11.2.2 トランザクションマネージャのデータ構造 11.2.3 MyTrid()、Status_Transaction()、Leave_Transaction()、Resume_Transaction() 11.2.4 セーブポイントのログレコード 11.2.5 Begin_Work() 11.2.6 ローカルなCommit_Work() 11.2.7 リモートのCommit_Work():Prepare()とCommit() 11.2.8 Save_Work()とRead_Context() 11.2.9 Rollback_Work() 11.3 チェックポイント 11.3.1 シャープチェックポイント 11.3.2 ファジーチェックポイント 11.3.3 トランザクションマネージャのチェックポイント 11.4 システムのリスタート 11.4.1 リスタート時のトランザクションの状態 11.4.2 トランザクションマネージャのリスタート処理 11.4.3 リソースマネージャのリスタート処理、Identify() 11.4.4 リスタートの設計のまとめ 11.4.5 独立したリスタートマネージャ 11.4.6 2チェックポイントのアプローチ:別の方法 11.4.7 リスタートがなぜうまく行くか 11.4.8 分散トランザクションの解決:リスタート時の2相コミット 11.4.9 リスタートの高速化 11.4.10 リスタートに関わる他の問題 11.5 リソースマネージャの障害とリスタート 11.6 アーカイブからのリカバリ 11.7 トランザクションマネージャの構成 11.7.1 トランザクションマネージャのサイズと複雑さ 11.8 まとめ 演習問題 解答 第12章 トランザクションマネージャに関する先進的な話題 12.1 はじめに 12.2 異種のコミットコーディネータ 12.2.1 閉鎖型トランザクションマネージャと開放型トランザクションマネージャ 12.2.2 閉鎖型トランザクションマネージャとの相互運用 12.2.3 開放型トランザクションマネージャに対するゲートウェイの作成 12.2.4 トランザクションゲートウェイのまとめ 12.3 アベイラビリティの高い(ノンブロッキング型の)コミットコーディネータ 12.3.1 発見的決定によるブロックしたトランザクションコミットの解決 12.4 コミット移動 12.5 2相コミットの最適化 12.5.1 読み出し専用コミットの最適化 12.5.2 レイジーコミット最適化 12.5.3 線形コミット最適化 12.6 リモートサイトにおける災害リカバリ 12.6.1 システムペアの引き継ぎ 12.6.2 引き継ぎ時のセッションスイッチング 12.6.3 構成オプション:1セーフ、2セーフ、高セーフ 12.6.4 障害後の追い付き 12.6.5 システムペア方式のまとめ 12.7 まとめ 12.8 歴史的経緯 演習問題 解答 第13章 ファイルとバッファ管理 13.1 はじめに 13.2 トランザクション型持続記憶の基礎としてのファイルシステム 13.2.1 外部記憶と主記憶の対比 13.2.2 本書で使用する外部記憶のモデル 13.2.3 トランザクションファイルの抽象化レベルとデータベースマネージャ 13.3 媒体とファイルの管理 13.3.1 基本ファイルシステムのオブジェクトとオペレーション 13.3.2 ディスク領域の管理 13.3.3 低レベル・ファイルシステムのカタログ管理 13.4 バッファ管理 13.4.1 データベースバッファの機能面の原則 13.4.2 バッファマネージャの実現上の問題 13.4.3 バッファの見地からのロギングとリカバリ 13.4.4 バッファマネージャの性能の最適化 13.5 その他の興味深い手法 13.5.1 サイドファイル 13.5.2 単一レベル記憶 13.6 まとめ 13.7 歴史的経緯 演習問題 解答 第14章 タプル型ファイルシステム 14.1 はじめに 14.2 タプルのページへのマッピング 14.2.1 ページの内部構造 14.2.2 ファイル内の空き領域管理 14.2.3 タプルの識別 14.3 物理タプル管理 14.3.1 属性値の物理表現 14.3.2 短いタプルの物理表現 14.3.3 タプル内の属性値表現に関する注意点 14.3.4 長いタプルの物理表現 14.3.5 複雑なタプルと非常に長い属性の物理表現 14.4 ファイル編成 14.4.1 管理のための操作 14.4.2 スキャンを介して見た複数ファイル編成の抽象的ビュー 14.4.3 エントリ順ファイル 14.4.4 システム順ファイル 14.4.5 相対ファイル 14.4.6 キー順ファイルとハッシュファイル 14.4.7 まとめ 14.5 その他の興味深い手法 14.5.1 クラスタファイル 14.5.2 パーティション化されたファイル 14.5.3 ファイルシステム管理でのトランザクションの使用 14.5.4 現在のデータベースシステムでのタプル型ファイルシステム 14.6 まとめ 演習問題 解答 第15章 アクセスパス 15.1 はじめに 15.2 連想アクセスパスの実装技術の概要 15.2.1 まとめ 15.3 ハッシュによる連想アクセス 15.3.1 キー値から数値データ型へのフォールディング 15.3.2 良いハッシュ関数の条件 15.3.3 ハッシュファイルでのオーバフロー処理 15.3.4 ハッシュファイルのページの局所管理 15.3.5 ハッシュ型連想アクセスのまとめ 15.4 B木 15.4.1 B木の基本概念 15.4.2 B木の性能 15.4.3 B木における同期:ページ指向の見方 15.4.4 B木における同期:タプル指向の見方 15.4.5 B木におけるリカバリ操作 15.5 B木に対する操作の実装例 15.5.1 プログラムで使用するデータ構造の宣言 15.5.2 B木に対するreadkey操作の実装 15.5.3 B木におけるキー範囲ロック 15.5.4 B木への挿入の実装:簡単な場合 15.5.5 B木への挿入の実装:分割の場合 15.5.6 まとめ 15.6 その他の興味深い手法 15.6.1 エクステンディブル・ハッシュ 15.6.2 グリッドファイル 15.6.3 ホーリブリックB木 15.7 まとめ 15.8 歴史的経緯 演習問題 解答 第16章 TPシステムのサーベイ 16.1 はじめに 16.2 IMS 16.2.1 ハードウェアとオペレーティングシステムの環境 16.2.2 ワークフローモデル 16.2.3 プログラム分離 16.2.4 主記憶データベースとフィールドコール 16.2.5 データ共用 16.2.6 可用性の向上と二重系システム 16.2.7 DB2 16.2.8 最近のIMSの発展 16.3 CICSとLU6.2 16.3.1 CICSの概要 16.3.2 CICSのサービス 16.3.3 CICSの処理フロー 16.3.4 CICSの分散トランザクション処理 16.3.5 LU6.2 16.4 Guardian90 16.4.1 Guardian:オペレーティングシステムとハードウェア 16.4.2 Pathway、端末コンテクスト、およびサーバクラスの管理 16.4.3 トランザクション管理 16.4.4 他の特徴 16.5 DECdta 16.5.1 トランザクション処理におけるACMSの3ボール・ワークフロー・モデル 16.5.2 ACMSサービス 16.5.3 ACMSのまとめ 16.5.4 VMSのトランザクション管理 16.5.5 DECdtaのまとめ 16.5.6 Reliable Transaction Router (RTR) 16.6 X/Open DTP、OSI-TP、CCR 16.6.1 ローカルな場合 16.6.2 分散環境:サービスとサーバ 16.6.3 まとめ 16.7 その他のシステム 16.7.1 Universal Transaction Manager (UTM) 16.7.2 ADABAS TPF 16.7.3 Encina 16.7.4 Tuxedo 16.8 まとめ 文献 インタフェース宣言 用語集 索引 どう?トランザクションに関するあらゆる事が詳細に記載されている 事が分かってもらえると思う。ところで、みんなトランザクションの重要性を認識しているかな?このページを読んでいるような人にとっては常識だろうけど、意外とトランザクションが重要であるという事を知らない人多いんだよね。 じゃあ、トランザクションって何と一言で説明できればいいんだけど、見ての通り1000ページを超える説明が必要なわけだからボクが説明できるわけないピヨ。偶然このページをみて、トランザクションについて興味が湧いた人も買って読むといいピヨ♪ データベースを仕事で使う人、データベースに関するプロジェクトに参加する人、データベースを深く知りたい人、ダウンしないシステムを作りたい人はこの書籍を読む事をお勧めするピヨ♪ |
この記事のコメント |
コメントの投稿 |
||
|
|
||
| 管理者だけに閲覧 | ||
|
|
||
この記事のトラックバック |
|
| 無差別に技術をついばむ鳥 |
|