Symfoware(R) Server 概説書 - FUJITSU - |
目次
索引
![]() ![]() |
データベースを利用するユーザが増加しても、処理レスポンスの低下を引き起こさないようにするために、Symfoware Serverは先進の技術を導入しています。したがってインターネットを対象とした情報システムによるユーザ増大にも対応が可能です。
アクセス性能の保証について、以下の機能を説明します。
なお、以上の機能について、Symfoware Server主体で高速化する機能と、アプリケーション主体で高速化する機能に分類して、以下に示します。
機能名 |
Symfoware Server |
アプリケーション |
---|---|---|
ステージング・コントロール |
○ |
× |
バッファ・コントロール |
○ |
× |
DSIのメモリ常駐 |
○ |
× |
RDBディクショナリの |
○ |
× |
トランザクションの |
× |
○ |
イルシデーションロック |
× |
○ |
デッドロック検出 |
× |
○ |
Symfoware Serverでは、データベースシステム内の処理をユニット化し、独自のディスパッチ機能を用いてCPUをコントロールし、各ユニットの処理をパイプライン化しています。この独自のディスパッチ機能をステージング・コントロールと呼びます。
ステージング・コントロールは、マルチスレッドの特性を活かし、さらに実行単位の切替えに伴うOSのディスパッチ・コストを最小限にしています。
この機能により、SMP(Symmetric MultiProcessor)構成での能力を最大限に引き出しています。したがって、データベースの利用者が増加しても実用的なレスポンスを保証します。
ステージング・コントロールについて、以下に示します。
大量データ、多トランザクションを処理する場合、共用バッファとディスク間の入出力効率がシステムのレスポンスに大きく影響します。Symfoware Serverでは、表やインデックスの分割した単位に共用バッファを割り当てることができます。これを共用バッファの割当てといいます。これにより、データベース・バッファの競合を回避し、データのバッファ常駐率を高め、ディスク入出力回数を削減しています。これをバッファ・コントロールと呼びます。また、ディスク入出力を行う場合は、共用バッファごとにそれぞれのデータを一括処理することで、一度の入出力効率を高めています。
共用バッファの割当ては、RDB構成パラメタファイルで指定し、RDBコマンドにより設定します。共用バッファの割当てについての詳細は、“RDB管理者ガイド”を参照してください。
バッファ・コントロールについて、以下に示します。
Symfoware Serverでは、DSI(表またはインデックスのデータ)をメモリ上にすべて常駐することができます。これにより、システム全体のスループット向上と、データ抽出などの個々の処理レスポンスを改善します。
共用バッファの場合は、バッファを作成してもデータをメモリ上へ読み込まないため、全データを参照するアプリケーションを作成し、運用の開始時に実行する必要がありました。そうしなければ、最初のアプリケーションのレスポンスが悪くなってしまうからです。
DSIのメモリ常駐の場合には、メモリ獲得時に全データを高速にメモリ上へ読み込みます。そのため、全データを読み込むためのアプリケーションを作成して実行する必要はありません。また、共用バッファと違い、メモリ上からデータが破棄されることがないため、完全なレスポンス保証を行うことができます。
また、ホットスタンバイ運用時のクラスタサービスの切替え時間も短縮することができます。
DSIのメモリ常駐は、RDBコマンドにより実行することができます。DSIのメモリ常駐についての詳細は、“RDB管理者ガイド”を参照してください。
DSIのメモリ常駐について、以下に示します。
アプリケーションからデータ操作を行う場合、RDBディクショナリを参照して処理が行われます。そこで、アプリケーションの実行前に参照頻度の高い定義情報をメモリに展開することにより、処理時間の高速化を図ることができます。また、システムファイルの異常に備えて、RDBディクショナリのメモリ常駐を行うことで、フォールバック運用時に、アクセスできる資源の範囲が広がります。フォールバック運用についての詳細は、“データベースの運用”を参照してください。
RDBディクショナリのメモリ常駐は、RDB構成パラメタファイルでの指定、または、RDBコマンドにより実行することができます。RDBディクショナリのメモリ常駐についての詳細は、“RDB管理者ガイド”を参照してください。
Symfoware Serverでは、排他単位としてDSI(パーティショニング)単位、ページ単位、行単位の3種類が利用可能です。ユーザが排他範囲を選択できることで、不必要な排他待ちが発生することを防げます。
また、トランザクションの独立性水準を設定することができ、さらにトランザクションの同時実行性を高めることができます。
排他についての詳細は、“RDBユーザーズガイド 応用プログラム開発編”を参照してください。
イルシデーションロックは、SQL文実行時の排他の取り方を自由に指定することができます。この機能を使用してアプリケーションを作成することによって、異なるレコードに対する処理の競合を無くすことができ、同じレコードに対する複数の処理の整合性も保証することができます。これにより、データとしての整合性を保ったまま、アプリケーションの同時実行性を上げ、システム全体の処理能力を向上させます。
各トランザクションは、参照処理を行って更新対象のレコードを特定し、更新を実施しています。参照処理は、排他無しで実行するので、他のトランザクションの更新処理と競合しません。また、更新処理は処理対象のレコードに対してのみ排他をとるので、互いの更新処理の間で競合は発生しません。
イルシデーションロックのアプリケーションでの設定方法は、“排他”を、イルシデーションロックについての詳細は、“RDBユーザーズガイド 応用プログラム開発編”を参照してください。
イルシデーションロックについて、以下に示します。
デッドロックとは、複数のトランザクションがデータベースを共用して使用する場合に発生する、停止状態の一種です。複数のトランザクション間で資源に対する待ち関係のループが発生し、どのトランザクションも他のトランザクションの資源解除を待つ状態となり、全体としてループ内のすべてのトランザクションが停止状態になることをいいます。
デッドロックについて、以下に示します。
Symfoware Serverでは、自動的にデッドロックを検出し、デッドロックの原因となっているトランザクションをキャンセルします。また、デッドロック発生を監視するRDBコマンドを提供しており、デッドロックの原因となるアプリケーションが不明の場合でも、調査できるようになっています。
デッドロック検出についての詳細は、“RDBユーザーズガイド 応用プログラム開発編”を参照してください。
目次
索引
![]() ![]() |