Chapter Two

Similar documents
Chapter Two

今さら聞けない!? Oracle入門 ~後編~

今さら聞けない!? Oracle入門 ~前編~

プレポスト【問題】

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1

A Dynamic Mobility Histogram Construction Method Based on Markov Chains

Microsoft PowerPoint - db03-9.ppt

1 トランザクション管理

DUCTION はじめての人のための トランザクション入門 TO INTRO- TRANS- 日本 PostgreSQL ユーザ会第 35 回 PostgreSQL 勉強会 2017 年 5 月 27 日 ACTION 坂田哲夫 (NTT OSS センタ ) 1

Chapter Two

データベース 【1:データベースシステムとは】

Microsoft PowerPoint - MySQL-backup.ppt

7-1- 基 RDB に関する基礎知識 1 独立行政法人情報処理推進機構

Chapter Two

Microsoft PowerPoint - system8.ppt

PowerPoint プレゼンテーション

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

第 7 章 ユーザー データ用表領域の管理 この章では 表や索引を格納するユーザー データ用表領域の作成や 作成後のメンテナンスに ついて解説します 1. ユーザー データ用表領域の管理概要 2. ユーザー データ用表領域作成時の考慮事項 3. ユーザー データ用表領域の作成 4. ユーザー データ

Arcserve Replication/High Availability 製品の仕組み

PostgreSQL v.s. 大規模 OLTP 2019 年 4 月 19 日 OSS コンソーシアムデータベース部会セミナー SRA OSS, Inc. 日本支社高塚遥 Copyright 2019 SRA OSS, Inc. Japan All rights reserved. 1

1 Log のしくみ 平成十六年七月廿六日 NTT サイバースペース研究所坂田哲夫

Microsoft PowerPoint - CloudBasic-6-cloudservices2.pptx

Oracle Data Pumpのパラレル機能

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

Chapter Two

産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアッ

PowerPoint プレゼンテーション

はじめに コース概要と目的 Oracle を使用した開発 管理を行う上でのファースト ステップとして リレーショナル データベース管理ソフトウェアである Oracle の役割 基本機能 基本アーキテクチャを幅広く理解することを目的としています 受講対象者 これから Oracle を使用する方 データ

- 2 Copyright (C) All Rights Reserved.

OracleDBA(パフォーマンスチューニング(SQL編) - コピー

Microsoft Word - UniversalShield_Hitachi.doc

1. 主な機能追加項目 以下の検索項目をサポートしました 書誌 全文検索コマンド検索 国内 査定日 最新の査定日 ( 登録査定日または拒絶査定日 ) を検索します 査定種別 最新の登録 拒絶査定 または査定なしを検索します 審査最終処分日 最新の審査最終処分日を検索します 審査最終処分種別 最新の審

■ ジャストスマイルワープロ講座 ■ 新聞を作ってみよう

情報科学概論 第6回

スライド 1

サイボウズ Office 9 掲示板マニュアル

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

POSIXスレッド

標準化 補足資料

ここからはじめる、Oracle データベース入門・アーキテクチャー編

レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン < 追加機能一覧 > 管理番号 内容 説明書参照章 カナ文字拡張対応 < 改善一覧 > 管理番号 内容 対象バージョン 説明書参照章 文字列のコピー ペースト改善 ~ 子画面の表示方式 ~ 履歴の詳細情報 ~ タブの ボタン ~ 接続時の管

PowerPoint プレゼンテーション

第 3 章 メディア障害とバックアップ リカバリ この章では メディア障害の発生に備えたバックアップ方法と 障害時の基本的なリカバリ方法につい て説明します 1. メディア リカバリ概要 2. ファイルの多重化 3. アーカイブ モードの設定 4. バックアップ概要 5. 一貫性バックアップ ( オ

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

(2) [ バックアップツール ] が表示されます [1] [2] [3] [4] [5] [6] Windows Storage Server 2012 バックアップ手順 (V_01) < 画面の説明 > [1] バックアップ項目リスト登録されているバックアップセットの一覧です [2] 新規 ボタ

スライド 1

SRA OSS, Inc. のご紹介 1999 年より PostgreSQL サポートを中心に OSS ビジネスを開始 2005 年に現在の形に至る 主なビジネス PostgreSQL, Zabbix などの OSS のサポート コンサルティング 導入構築 PowerGres ファミリーの開発 販売

PowerPoint プレゼンテーション

アーカイブ機能インストールマニュアル

はじめに コース概要と目的 Oracle データベースのパフォーマンス問題の分析方法 解決方法を説明します 受講対象者 データベース管理者の方を対象としています 前提条件 データベース アーキテクチャ データベース マネジメント を受講された方 もしくは同等の知識 をお持ちの方 テキスト内の記述につ

SQL Server 2012 自習書シリーズ No.16 ロックと読み取り一貫性 Published: 2008 年 5 月 31 日 SQL Server 2012 更新版 : 2012 年 9 月 30 日有限会社エスキューエル クオリティ

障害管理テンプレート仕様書

Microsoft認定資格問題集DEMO(70-459_Part2)

PowerPoint プレゼンテーション

データベース暗号化ツール「D’Amo」性能検証

PostgreSQL による クラスタ構成の可能性 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

スライド 1

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1

Freelance Graphics - Œ³‚è1

Oracle 入門 ~ 研修受講後のスキルアップサポート ~ 対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助とし

アルファメール 移行設定の手引き Outlook2016

Oracle Direct Seminar <Insert Picture Here> 試験対策ポイント解説 Bronze DBA11g 日本オラクル株式会社

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

Cybozu SP スケジューラー 管理者マニュアル

目 次 1. はじめに ソフトの起動と終了 環境設定 発助 SMS ファイルの操作 電話番号設定 運用条件 回線情報 SMS 送信の開始と停止 ファイル出力... 16

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

アルファメールプレミア 移行設定の手引き Outlook2016

本ソフトウェアについてインストール方法 RoxioSecureBurnEionM導入ガイド RSBE-P シリーズ 本書では Roxio Secure Burn Enterprise 4 Roxio Parmission anmanager のインストール方法および主な使用例を説明しています age

McAfee Application Control ご紹介

プレポスト【問題】

スライド 1

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

MogiExam 専門的な MogiExam は権威的な資料を提供します

CR-UK1ソフトウェアユーザーズガイド

Ontrack EasyRecovery 11 基本的な使い方

PowerPoint プレゼンテーション

Oracle Data Pumpのパラレル機能

計算機システム概論 システム構成技術 2011/5/11 門林雄基

【Cosminexus V9】クラウドサービスプラットフォーム Cosminexus

PowerPoint プレゼンテーション

更新用証明書インポートツール 操作マニュアル 2011 年 10 月 31 日 セコムトラストシステムズ株式会社 Copyright 2011 SECOM Trust Systems CO.,LTD. All rights reserved. P-1

相続支払い対策ポイント

150423HC相続資産圧縮対策のポイント

PowerPoint プレゼンテーション

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

ORACLE TUNING PACK 11G

サイボウズモバイル KUNAI Lite for Android マニュアル

ハピタス のコピー.pages

Copyright 2008 All Rights Reserved 2

1. 内容 1. 内容 事業所データの作成 消費税情報の確認 マスター出力 事業所の作成 事業所データの新規作成 事業所データの設定 弥生版と TKC FX 版の違い..

スライド 1

目次 1. 概要 製品構成 用語集 SECUDRIVE Device Control Basic インストールUSBメモリの構成 プログラムのインストール 体験版から正規版への変更

株式会社インターナショナルシステムリサーチ International Systems Research Co. CloudGate UNO secured by Cybertrust デバイス ID 証明書 インストールマニュアル Windows 用 Ver [ 目次 ] はじめに 1

Microsoft PowerPoint - OS07.pptx

無償期間中に Windows10 に アップグレードをお考えのお客様へ 現在 御太助.net で使用している SQL Server のバージョンは Windows10 ではその動作が保証されていません そのため 御太助.net を WIndows10 で使用するにあたっては SQL Server の

※ ポイント ※

Microsoft PowerPoint - OS04.pptx

スライド 1

目次 移行前の作業 3 ステップ1: 移行元サービス メールソフトの設定変更 3 ステップ2: アルファメール2 メールソフトの設定追加 6 ステップ3: アルファメール2 サーバへの接続テスト 11 ステップ4: 管理者へ完了報告 11 移行完了後の作業 14 作業の流れ 14 ステップ1: メー

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

Transcription:

Database 第 12 回 : トランザクション処理 ~ 同時実行制御 ~ 上智大学理工学部情報理工学科 高岡詠子 No reproduction or republication without written permission. 許可のない転載 再発行を禁止します 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 1

今日の授業 障害回復機能の復習 同時実行制御 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 2

トランザクションとは? ある企業の在庫管理システムにおける入出庫の処理の一部 仕入れ先から顧客へ直接発送される商品 自社で在庫を持たない 入庫と出庫は同時に発生したものとして処理 入出庫入庫処理出庫処理終了 障害などで入庫もしくは出庫のみしか DB に反映できないと大変! 入庫ファイル 出庫ファイル 入出庫の登録は切り離すことができない 2012/1/5 2012 Eiko Takaoka All Rights Reserved. このような処理の単位 ( プロセス ) をトランザクションという 3

トランザクション管理 トランザクションとはなんでしたか? ユーザから見たひとまとまりの処理単位 トランザクションが正常に終了したかしないかで DB に値を反映 トランザクションが完了すれば正しいデータとしてDBに反映 コミット異常終了したら : 途中まで行われた処理はなかったことにする トランザクション開始以前の状態に戻す ロールバック 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 4

トランザクション管理の位置づけ DBMS に必須 DBMS の基本機能機能実現のために データ重複排除 データ管理機能の充実 データの利用簡素化 データ独立性の確保データの一貫性データ操作の簡素化機密保護障害時復旧 正規化 ER 図外部スキーマ SQL 同時実行制御機密保護機能障害回復機能 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 5

トランザクション処理の内容 :ACID 特性 1 つの処理についての制約 分割できない処理原子性 ( tomicity) 処理内容が処理の順序や終了状態に関係なく保証されること一貫性 (Consistency) 複数の処理間の関係についての制約 他の処理から独立していること 同時処理したときと逐次処理したときとの結果が同じ 処理途中のデータが他の処理から見えないこと 障害等に対して耐久性があること 独立性 (Isolation): 耐久性 (Durability): 処理終了後の DB の内容は障害等に影響されずに不変に保たれる 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 6

ACID 特性を満たすために 各トランザクションにコミュニケーション機能をもたせる? 不特定多数のトランザクションが走るときコミュニケーション制御が複雑になる 共有される DB 側に制御機能をもたせる 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 7

ACID 特性を実現する制御機能 障害回復制御 障害が発生したときにもとの状態に復旧するための制御 ログなどでアクセス記録を残す 原子性 耐久性 を確保 復習しましょう 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 8

トランザクション処理のとき 実行前と実行後のデータをログとして残しておく Write Ahead Logging データベースバッファをディスクに書き出すのではなくログのみを HD に書き出す コミットされたトランザクションの更新情報は バッファ内に保持され あるタイミングでデータベースへ書き込まれる これがチェックポイント 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 9

ログによる障害回復 DB への書き込み発生時 データの更新前後の内容を必ずログに書き込む REDO: データ更新後の内容 UNDO: データ更新前の内容 ログをいつとるか? Write Ahead Logging ログを取る前にデータの更新をすると? UNDO できない コミットしたトランザクションのログがないと? REDO できない 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 10

WAL の基本動作 A) トランザクションログを WAL バッファに書き込み DB バッファ内のデータを変更チェックポイントが実行されるまで HD には反映されない B) コミットされた時点で WAL バッファの内容を WAL ログファイルに書き込む C) チェックポイント時 1. ログバッファをディスクに書き込む 2. DB バッファ内のデータを HD に書き込む 3. WAL ログファイルを新規作成 文献 :WAL とは : http://www.interdb.jp/techinfo/postgresql/p-2-09.html 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 11

UNDO/REDO 方式での トランザクション処理 トランザクション開始をログバッファに書きこむ 書き込みが起こったらログを書いてからデータを書き込む コミット時は WAL バッファの内容を WAL ログファイルに書き込んでから DB バッファを HD に書き込む 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 12

最新チェックポイント update WAL バッファ A-1) トランザクションログを WAL バッファに書込み commit A-2)DB バッファ内のデータを変更 DB バッファ WAL ログ新規作成 B) WAL バッファの内容を WAL ログファイルに書込み ログファイル C-1) WAL バッファの内容を WAL ログファイルに書込み WAL ログ新規作成 データ領域 C-2) DBバッファ内 のデータをHDに書 2012/1/5 き込む 2012 Eiko Takaoka All Rights Reserved. 13

障害回復の方針 チェックポイント時点で実行中のトランザクションは, チェックポイント以前のログが必要 チェックポイント時に実行中のトランザクションは, 障害時点までにコミットしていれば REDO され, それ以外は UNDO チェックポイント以降からスタートしたトランザクションチェックポイント以降のログをチェック 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 14

トランザクションの種類ごとに対 する処理 T1 No action チェックポイント時に実行中 T2 障害時点までにコミットしていなければ UNDO T3 障害時点までにコミットしていれば REDO チェックポイント以降からスタート REDO T4 T5 UNDO 最新チェックポイント 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 異常 15

今日の授業 障害回復機能の復習 同時実行制御 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 16

ACID 特性を実現する制御機能 同時実行制御 複数のプロセスが並行処理を行い ( データ同時実行性 ) 同じデータを更新しても異常が生じないようにする ( データ整合性 ) DB 側に排他制御 ( 他のトランザクションのアクセスを排除する制御 ) を設ける 独立性 一貫性 を確保する 今日はこれ 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 17

同時実行の利点 CPU と I/O は並列に実行できるのでディスクと CPU が暇な時間の量を減らせる. 短いトランザクションと長いトランザクションを交互に実行すると, 通常は短いトランザクションのほうが早く終わり, 長いトランザクションの後回しになることは少ない 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 18

同時実行とパフォーマンス パフォーマンスとデータ一貫性のトレードオフを 考える必要がある パフォーマンスを表す用語 スループット 与えられた時間の中で処理されるトラ ンザクションの数 応答時間 トランザクションの実行に平均的に要す る時間 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 19

直列可能性 トランザクションの分離モデル 複数のトランザクションが同時ではなく 1 つずつ ( 直列に ) 実行された結果と同じになること あるトランザクションが問い合わせ実行中の表に対して他のトランザクションは挿入はできない 異常回避のために単純に順番に実行 ( 直列実行 ) するか? 結果は正しくても並列性は向上しない 直列可能性を持つ ( 直列実行した場合の結果のどれかになる ) ように複数のトランザクションを並列実行させる必要がある 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 20

同時実行に伴って発生する異常 と回避方法 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 21

同時実行に伴って生じる異常 1 T1 と T2 が同じデータを読み出してそれぞれ別の値に更新する このような異常を T1 問合せ 10 万円 読みだす r(10 万円 ) lost update( 先の更新値が失われる ) blind write どちらが先でもどちらかは失われる ただしコミットしていない 6 万円おろす書き込む w(4 万円 ) これを防ぐためには read uncommitted 10 万円 預金 T2 4 万円 読みだす r(10 万円 ) 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 5 万円 時間経過 5 万円おろす書き込む w(5 万円 ) 22

同時実行に伴って生じる異常 2 T1が更新中のデータ ( 最終的には別の値になる可能性がある ) をT2が参照してしまうこと ACID 特性のうち一貫性と矛盾するこのような異常を Dirty read T1 10 万円 6 万円おろそうか やはり 3 万円だけにしよう 10 万円 T2 2012/1/5 問合せ 預金 読みだす r(10 万円 ) 時間経過 これを防ぐためには read committed 書き込む w(4 万円 ) 問合せ 4 万円 読みだす r(4 万円 ) ただしコミットしていない 2012 Eiko Takaoka All Rights Reserved. 取り消し操作 書き込む w(7 万円 ) 10 万円 7 万円 5 万円はおろせないなあ 判断を誤る場合がある 23

同時実行に伴って生じる異常 3 T1 が読んだデータの値を T2 が修正か削除したあと, T1 がもう一度その値を読むと値がいつの間にか変わったり消えたりする このような異常を non-repeatable read ( 反復不可能読み取り ) T1 問合せ 10 万円 読みだす r(10 万円 ) 値がいつの間にか変わっている 問合せ 読みだす r(5 万円 ) 10 万円 5 万円 時間経過 預金書き込む T2 コミット 5 万円おろす w(5 万円 ) これを防ぐためには repeatable read 24 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 同じ問い合わせを二回連続して繰り返し ( リピート ) ても同じ結果になると 保証できません という意味

同時実行に伴って生じる異常 4 T1 がデータ検索後,T2 の更新によって,T1 が再度同じ条件で検索した場合前にはなかった値まで結果として得られる このような異常を phantom read T1 履歴問合せ 10 万円 預金 T2 日付操作残高 1/5 預入 30000 1/7 預入 10000 0 読みだす 5 万円 書き込む 5 万円おろす w(5 万円 ) 再度問合せ コミット 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 日付操作残高 1/5 預入 30000 1/7 預入 10000 0 1/7 引出 50000 読みだす 時間経過 これを防ぐためには serialize 前はなかった行が 25

non-repeatable readと phantom readの違い non-repeatable read 既存のデータが 更新 削除 されること phantom read 前回は存在していなかったものが同じ問い合 わせで 出現 すること 存在したものの過去の像を見せることと 現在は存在し過去には存在しなかったもの を今も存在しないように見せるとの違いは システム上では大きな差がある 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 26

3つの回避可能な現象 1. dirty read まだコミットされていないトランザクションが書き込ん だデータを別のトランザクションが読んでしまう現象 2. non-repeatable read 同じ問い合わせを二回連続して繰り返し リピート て も同じ結果になると 保証しない 読み取り コミットの前後で別トランザクションが異なるデータを 読み取ってしまう現象 3. phantom read(仮読み取り) T1 から問い合わせのあとT2 から新たな登録を行 なった場合に T2 のコミットの前後で T1 の問い合わ 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 27 せに以前は存在しなかったものが出現すること

分離レベル(isolation level) 3つの回避可能な現象という観点から 4 つの分離レベルが定義 トランザクションが別のトランザクションと どの程度に分離されるかの程度を表す それぞれトランザクション処理の効率に与 える影響の度合いが異なる 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 28

分離レベルと異常の関係 分離レベル 異常 read uncommitted read committed repeatable read lost update dirty read 内容を保証しない読み取り nonrepeatable read serializable phantom read 仮読み取り 発生しえる 発生しない 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 29

厳密な二相ロック Serializable DataSet の影響を受ける行に EOT( トランザクションの終了 ) までロックがかかる 変更されたアクセス構造 および問い合わせで使われた構造がすべて EOT までロックされる 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 30

Repeatable Read データベースの読み取りと変更時にロック 変更されたすべてのオブジェクトのロックは EOT まで維持される. データの読み取りロックは EOT まで維持 同時実行しているトランザクションがデータに対して行った更新は実行中に読めない 新たに挿入されたデータにはロックがかからないので別トランザクションが見ることができる phantom read はあり得る 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 31

Read Committed データベースの読み取りと変更時にロック 読み取り後にロックは解除 変更されたオブジェクトのロックは EOT まで維持 データに対する並列な更新がコミットされればそれを読むことが可能 同じデータを二度読んだり問い合わせをすると, 異なる結果が返ってくる non-repeatable read と phantom read はあり得る 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 32

Read Uncommitted dirty read を許す 読み込みにたいしてロックをかけない 書き出しは許されない Read Only アクセスモードのトランザクション lost update は免れる 一番ゆるい分離レベル 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 33

分離レベルと性能の関係 serializable repeatable read データ読み出しの統計的な問い合わせならこのあたりで OK read committed read uncommitted 低い性能高い 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 34

スケジュールと直列可能性 異常回避のために単純に順番に実行 ( 直列実行 ) するか? 結果は正しくても並列性は向上しない 直列可能性を持つ ( 直列実行した場合の結果のどれかになる ) ように複数のトランザクションを並列実行させる 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 35

同時実行制御方式 直列可能なスケジュールを得るための手段 ロックに基づく方式タイムスタンプに基づく方式多版制御方式楽観的制御方式 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 36

ロックとは ロック データを予約しておく ( lock をかける ) ただ一つのトランザクションだけが更新を行うことを許すための制御のしくみ 他のトランザクションはロックが解放 (unlock) されるまでそのデータの更新はできない 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 37

ロック方式 占有ロック (exclusive/write) トランザクションが INSERT 文 UPDATE 文及び DELETE 文であるときのロックのモード 他のトランザクションに参照も更新もさせない データベース更新時に要求 共有ロック (shared/read) トランザクションが SELECT 文によりデータを参照するものであるときのロックのモード 他のトランザクションに参照のみを許す. 更新は許さない データベース参照時に要求する 共有ロック同士は両立 占有ロックと他のロック ( 共有でも占有でも ) とは互いに 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 38 排他的

ロックの粒度 : どの範囲を単位と データベース してロックをかけるか データベース全体に対してのロック システムバージョンアップなどのメンテナンスの場合 テーブルスペース テーブル全体 テーブルから既存の項目を削除, 新しい項目の追加, すべての行を更新するなど ブロック, ページ 行 : 典型的なロックレベル 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 39

ロックの粒度と実行効率のトレードオフ 同時実行性を高めるためには? ロックの粒度は小さいほうがよい トランザクションの衝突する可能性が大きい CPU の負担も増加 ( ロックをかけたり解除したりする処理が複雑になる ) 粒度が大きいと? トランザクションが衝突する可能性が減る 同時実行性は低くなってしまう 2012/1/5 2012 Eiko Takaoka All Rights Reserved. 40