JPH10312299A - データベース情報をアクセスする方法 - Google Patents

データベース情報をアクセスする方法

Info

Publication number
JPH10312299A
JPH10312299A JP10101453A JP10145398A JPH10312299A JP H10312299 A JPH10312299 A JP H10312299A JP 10101453 A JP10101453 A JP 10101453A JP 10145398 A JP10145398 A JP 10145398A JP H10312299 A JPH10312299 A JP H10312299A
Authority
JP
Japan
Prior art keywords
routine
memory
database manipulation
database
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10101453A
Other languages
English (en)
Other versions
JP4171537B2 (ja
Inventor
Michael Ubell
ウーベル マイケル
Keith Kelleman
ケールマン キース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Informix Software Inc
Original Assignee
Informix Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Informix Software Inc filed Critical Informix Software Inc
Publication of JPH10312299A publication Critical patent/JPH10312299A/ja
Application granted granted Critical
Publication of JP4171537B2 publication Critical patent/JP4171537B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Abstract

(57)【要約】 【課題】 新しいアプリケーションを配置しても構成が
複雑にならずかつ優れた性能を示すことができるデータ
ベース情報のアクセス方法を提供する。 【解決手段】 データベースにおいてデータを操作する
ためのルーチンは、データベースマニピュレーションル
ーチンが特定メモリ範囲から分離されるか否かを決定す
ることによって、かつそれに応答して、検討中のデータ
ベースマニピュレーションルーチンに対して特定メモリ
範囲へのメモリアクセス許可を選択的に切り替える(例
えば、読取り/書込みから読取り専用へ)ことによって
データベースサーバにより行われる。次いでデータベー
スマニピュレーションルーチンは、選択的に切り替えら
れたメモリアクセス許可を用いて実行される。分離され
るデータベースマニピュレーションルーチンは、読取り
専用メモリアクセスで実行することができ、それにより
特定メモリ範囲(例えば、コアデータ構造に対応してい
る)を不適当な変更から防ぐ。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベースにおける
情報をアクセスする方法に関する。
【0002】
【従来の技術】データベースは、データベースにおける
データを操作するためのソフトウェア方法の集合であ
る、“データベースエンジン”によって一貫した方法で
記憶し、探索しかつ検索することができるように論理的
に編成された情報の本体である。ソフトウェア方法は、
値を戻す機能、または値を戻さない手順のいずれかであ
る、一組の呼び出し可能なルーチンとして一般的に実現
される。データベースは、一般的に3つのクラスに分類
される:リレーショナルデータベース、オブジェクト指
向型データベース、及びオブジェクト−リレーショナル
データベース。リレーショナルデータベース(RDB)
は、実際にはデータベース開発者が選択するあらゆる方
法で相互に関連付けられる(または“結合される”)固
定型フィールド2次元表の集合である。リレーショナル
データベースの構造は、表間の関係を選択的に再定義す
ることによって変更することができる。データベースエ
ンジンは、SQL(Structured Query Language:構造化
照会言語)によってまたは他の機構によって表現される
方法のような種々のデータベース照会プロトコルのいず
れかを用いることによって素早くかつ容易にリレーショ
ナルデータベース上で複雑な探索を実行しうる。表間の
関係は、探索の結果がデータベースの他の表における対
応している情報を自動的に相互参照することができるよ
うにする。
【0003】図1に示すように、例えば、リレーショナ
ルデータベース100は、在庫目録表106に論理リン
ク105によって次いで結合される注文表104に論理
リンク103によって結合される顧客表102を含む。
ユーザは、例えば、しきい値よりも大きい全ての注文番
号について、データベース100を照会しうる。注文表
104が顧客表102及び在庫目録表106に結合され
るので、照会に応答して識別された注文番号のリスト
は、識別された注文番号に対応する各顧客名前及び在庫
目録項目と共に検索しかつ表示することができる。オブ
ジェクト指向型データベース(OODB)は、、“オブ
ジェクト”の集合−−データ及びそのデータを操作する
ための方法の両方を含むソフトウェア構成要素である。
数字または文字型のデータだけを記憶することができる
リレーショナルデータベースとは対照的に、OODB
は、実際にはあらゆる型のデータ(テキスト、3Dグラ
フィック画像、ビデオクリップ、等)を記憶することが
できる。OODBは、OODBが有用な作業を行うのに
必要なロジック(論理)のほとんどを含むように方法に
関連付けられたクラス(分類)の階層構造にその構成オ
ブジェクトを記憶する。対照的に、リレーショナルデー
タベースは、データだけを含みかつデータを伴う有用な
機能を実行するために外部アプリケーションソフトウェ
アに依存しなければならない。
【0004】オブジェクト指向型データベース(ORD
B)は、他の二つの型のハイブリッド(混成)である。
拡張されたデータ(例えば、映画ファイル)は、行の一
部としてまたはバイナリラージオブジェクト(BLO
B)−−未区分大量データ(undifferentiated mass of
data) 、としてORDBに記憶されかつ検索されうる。
また、ORDBは、BLOB内に含まれるデータを操作
するための方法(例えば、映画ファイルを観るためのユ
ーティリティ)をアクセスすることができる。これらの
方法は、データベースエンジンとは別々に維持されうる
かまたは特定のORDBインプリメンテーションにより
それにリンクされうる。インフォーミックスユニバーサ
ルサーバ(Informix Universal Server (IUS))のような
拡張可能オブジェクト−リレーショナルデータベース管
理システム(ORDBMS)では、拡張データを操作す
るための方法は、拡張データが“ネイティブ(native)”
データ型−−即ち、外部アプリケーションに頼ることな
くORDBMSそれ自体が扱うことができるデータ型と
して処理されるようにデータベースエンジンに直接リン
クされる。図2では、例えば、拡張可能ORDBMS2
00は、データベースエンジン202に直接リンクされ
た、データ型X及びYを操作するための方法をそれぞれ
含む、拡張子X及びYを有する。型Xのデータをポイン
トするデータベース照会に応じて、例えば、データベー
スエンジン202は、適当なデータ型−特定の方法にお
けるデータを操作するために拡張子Xにおいて方法を自
動的に呼出す。
【0005】
【発明が解決しようとする課題】非拡張可能ORDBM
Sは、対照的に、任意のデータ型に対するデータ操作方
法をデータベースエンジンにリンクさせないで、多重デ
ータ型を管理するために、ミドルウェアの層を介して相
互接続された、多重データ型−特定エンジンの使用を必
要とする。その結果、非拡張可能ORDBMSは、一般
的に低減された性能を示しかつ新しいアプリケーション
を配置することにおいて増大した複雑性を開発者に与え
る。本発明は、上記従来の技術における問題点を解決す
ることを課題とする。
【0006】
【課題を解決するための手段】本発明の上記課題は、デ
ータベースにおける情報を操作するためにルーチンを実
行する、データベースサーバによって実行される、方法
であって:データベースマニピュレーションルーチンが
特定メモリ範囲から分離されるか否かを決定し;決定に
基づいてデータベースマニピュレーションルーチンに対
するメモリアクセス許可を選択的に切り替え;かつ選択
的に切り替えたメモリアクセス許可を用いてデータベー
スマニピュレーションルーチンを実行する段階を具備す
る方法によって達成される。本発明の方法では、決定段
階は、データベースマニピュレーションルーチンに関連
付けられたパラメータを検査することを含むように構成
してもよい。
【0007】本発明の方法では、決定段階の前に、デー
タベースマニピュレーションルーチンを実行するための
プロセッサのクラスを特定する値にパラメータを設定す
る段階を更に具備するように構成してもよい。本発明の
方法では、設定段階は、特定メモリ範囲から分離される
プロセッサのクラスを特定する値をパラメータに割り当
てることを含むように構成してもよい。 本発明の方法
では、選択的切り替え段階は、局所手順呼出しを行うこ
とを含むように構成してもよい。本発明の方法では、選
択的切り替え段階は、データベースマニピュレーション
ルーチンが特定メモリ範囲から分離されるルーチンであ
ると決定されたならば該データベースマニピュレーショ
ンルーチンに対するメモリアクセス許可を特定メモリ範
囲に対する読取り専用に設定することを含むように構成
してもよい。
【0008】本発明の方法では、選択的切り替え段階
は、データベースマニピュレーションルーチンが特定メ
モリ範囲から分離されないルーチンであると決定された
ならば該データベースマニピュレーションルーチンに対
するメモリアクセス許可を特定メモリ範囲に対する読取
り/書込みに設定することを含むように構成してもよ
い。本発明の方法では、選択的切り替え段階は、特定メ
モリ範囲に対する読取り/書込み許可を有するプロセッ
サから特定メモリ範囲に対する読取り専用許可を有する
プロセッサにデータベースマニピュレーションルーチン
に対する実行のスレッドを移行することを含むように構
成してもよい。本発明の方法では、移行する段階は、特
定メモリ範囲と同じアドレス空間内に実行のスレッドを
維持することを含むように構成してもよい。
【0009】本発明の方法では、選択的切り替え段階
は、データベースマニピュレーションに対する実行のス
レッドが特定メモリ領域に対する読取り/書込み許可を
有するような信用コンテキストから実行のスレッドが特
定メモリ領域に対する読取り専用許可を有するような不
信用コンテキストに切り替えることを含むように構成し
てもよい。本発明の方法では、実行のスレッドが、デー
タベースマニピュレーションルーチンを実行すべく読取
り専用アクセスを有する実行のスレッドに対して特定メ
モリ領域に存在している資源へのアクセスを必要とする
ということを検出する段階を更に具備するように構成し
てもよい。本発明の方法では、特定メモリ領域に存在し
ている資源へのアクセスを必要とするということを検出
して、不信用コンテキストから実行のスレッドが特定メ
モリ領域に対する読取り/書込み許可を有するような別
の信用コンテキストへ切り替える段階を更に具備するよ
うに構成してもよい。
【0010】本発明の方法では、データベースマニピュ
レーションルーチンに対する実行のスレッドが特定メモ
リ範囲における資源をアクセスすることを完了した後に
別の信用コンテキストから不信用コンテキストへ切り替
える段階を更に具備するように構成してもよい。本発明
の方法では、データベースマニピュレーションルーチン
の実行が完了した後に不信用コンテキストから信用コン
テキストへ切り替える段階を更に具備するように構成し
てもよい。本発明の方法では、選択的切り替え段階は、
信用コンテキストと不信用コンテキストの間で任意の数
の切り替えを実行することを含むように構成してもよ
い。本発明の方法では、実行する段階は、データベース
マニピュレーションルーチンを実行すると同時に特定メ
モリ領域と同じアドレス空間に残ることを含むように構
成してもよい。
【0011】本発明の方法では、実行する段階は、デー
タベースマニピュレーションルーチンが特定メモリ領域
から分離されるルーチンであると決定されたならば特定
メモリ領域に対する読取り専用許可を有するプロセッサ
で該データベースマニピュレーションルーチンを行うこ
とを含むように構成してもよい。本発明の方法では、実
行段階は、データベースマニピュレーションルーチンが
特定メモリ領域から分離されていないルーチンであると
決定されたならば特定メモリ領域に対する読取り/書込
み許可を有するプロセッサで該データベースマニピュレ
ーションルーチンを行うことを含むように構成してもよ
い。本発明の方法では、実行段階は、データベースマニ
ピュレーションルーチンが特定メモリ領域から分離され
るルーチンであると決定されたならば特定メモリ領域か
ら論理的に区分されるメモリセグメントにおいて該デー
タベースマニピュレーションルーチンを行うことを含む
ように構成してもよい。
【0012】本発明の方法では、実行段階は、データベ
ースマニピュレーションルーチンが特定メモリ領域から
分離されないルーチンであると決定されたならば特定メ
モリ領域において該データベースマニピュレーションル
ーチンを行うことを含むように構成してもよい。本発明
の方法では、実行段階は、特定メモリ領域に存在してい
る資源の変更を選択的に許可することを含むように構成
してもよい。本発明の方法では、選択的変更は、特定メ
モリ領域における一つ以上の許可される実行エントリポ
イントに限定されるように構成してもよい。本発明の方
法では、コールバック表において一つ以上の許可される
実行エントリポイントを特定する段階を更に具備するよ
うに構成してもよい。
【0013】また、本発明の上記課題は、データベース
における情報を操作するためにルーチンを実行する、デ
ータベースサーバによって実行される、方法であって:
メモリアドレス空間をメモリセグメントに分割し;第1
のメモリセグメントにおいてデータベースマニピュレー
ションルーチンを選択的に実行し;かつ実行しているデ
ータベースマニピュレーションルーチンがメモリセグメ
ントの別のものに情報を書込むことを防ぐ段階を具備す
る方法によって達成される。本発明の方法では、第1の
メモリセグメントにおいて実行されているデータベース
マニピュレーションルーチンに別のメモリセグメントか
ら情報を読み取らせる段階を更に具備するように構成し
てもよい。本発明の方法では、第1のメモリセグメント
において実行されているデータベースマニピュレーショ
ンルーチンを、所定のルーチンを実行させるために別の
メモリセグメントに移行させる段階を更に具備するよう
に構成してもよい。
【0014】本発明の方法では、別のセグメントにおい
て所定のルーチンに対して特定されたエントリポイント
が許可されるエンドポイントかどうかをチェックする段
階を更に具備するように構成してもよい。本発明の方法
では、チェックする段階は、所定の一つ以上の許可され
るエントリポイントのセットに対して特定エントリポイ
ントを比較することを含むように構成してもよい。本発
明の方法では、別のセグメントにおける特定エントリポ
イントが許可されないエントリポイントであるならば所
定のルーチンの実行を阻止する段階を更に具備するよう
に構成してもよい。本発明の方法では、所定のルーチン
が完了された後に第1のメモリセグメントにデータベー
スマニピュレーションルーチンを戻す段階を更に具備す
るように構成してもよい。
【0015】本発明の方法では、データベースマニピュ
レーションルーチンは、該データベースマニピュレーシ
ョンルーチンが別のメモリセグメントにおける情報がそ
れから保護されるものとして識別されるならば、第1の
メモリセグメントにおいて実行されるように構成しても
よい。本発明の方法では、別のメモリセグメントにおけ
る情報がそれから保護されるデータベースマニピュレー
ションルーチンは、ユーザ定義型ルーチンを含むように
構成してもよい。本発明の方法では、別のメモリセグメ
ントにおける情報がそれから保護されるデータベースマ
ニピュレーションルーチンは、不信用ルーチンを含むよ
うに構成してもよい。
【0016】本発明の方法では、データベースマニピュ
レーションルーチンが別のメモリセグメントにおける情
報がそれから保護されるものとして識別されないなら
ば、全てのメモリセグメントに対する完全な読取り及び
書込み特権を伴う該データベースマニピュレーションル
ーチンを実行する段階を更に具備するように構成しても
よい。本発明の方法では、データベースマニピュレーシ
ョンルーチンは、信用ルーチンを含むことを備えている
ように構成してもよい。本発明の方法では、メモリセグ
メントは、同じメモリアドレス空間に存在するように構
成してもよい。本発明の方法では、分割する段階は、メ
モリセグメントを相互に論理的に区分することを含むよ
うに構成してもよい。
【0017】本発明の方法では、選択的実行段階は、第
1のメモリセグメント以外のメモリセグメントに対する
読取り専用アクセスを有する処理でデータベースマニピ
ュレーションルーチンを行うことを含むように構成して
もよい。本発明の方法では、処理は、多重スレッド型仮
想プロセッサを含むように構成してもよい。本発明の方
法では、メモリセグメントの対応するものにおいて複数
のデータベースマニピュレーションルーチンを同時に実
行する段階を更に具備し、各データベースマニピュレー
ションルーチンは、それ自身のメモリセグメント以外の
全てのメモリセグメントに対する読取り専用アクセスを
有しているように構成してもよい。
【0018】更に、本発明の上記課題は、信用ルーチン
及び不信用ルーチンを含んでいる複数のデータベースマ
ニピュレーションルーチン;コアメモリセグメント及び
防護メモリセグメントを含んでいる複数のメモリセグメ
ントを有している共有メモリアドレス空間;及び複数の
ルーチンにリンクされた複数の仮想プロセッサを備え、
仮想プロセッサは、コアメモリセグメントにおける信用
ルーチンを実行するフルアクセス仮想プロセッサと、防
護メモリセグメントにおける不信用ルーチンを実行する
防護仮想プロセッサとを含んでいるデータベースサーバ
によって達成される。本発明のデータベースサーバで
は、フルアクセス仮想プロセッサは、全てのメモリセグ
メントに対する読取り/書込みアクセスを有するように
構成してもよい。
【0019】本発明のデータベースサーバでは、防護仮
想プロセッサは、コアメモリセグメントに対する読取り
専用アクセスを有するように構成してもよい。本発明の
データベースサーバでは、各データベースマニピュレー
ションルーチンは、ルーチンが信用ルーチンであるか不
信用ルーチンであるかを特定する関連パラメータを有す
るように構成してもよい。本発明のデータベースサーバ
では、データベースマニピュレーションルーチンを実行
するためのスレッドを更に備え、スレッドは、実行され
るデータベースマニピュレーションルーチンが信用であ
るか不信用であるかに基づいて一つの仮想プロセッサか
ら別の仮想プロセッサへ移るように構成してもよい。本
発明のデータベースサーバでは、実行されているデータ
ベースマニピュレーションルーチンが不信用ルーチンで
あるならば、スレッドは、防護仮想プロセッサに移るよ
うに構成してもよい。
【0020】本発明のデータベースサーバでは、実行さ
れているデータベースマニピュレーションルーチンが信
用ルーチンであるならば、スレッドは、フルアクセス仮
想プロセッサに移るように構成してもよい。本発明の上
記課題は、データベースマニピュレーション方法を実行
するためにリンク型ルーチンを有しているデータベース
サーバに対して、コンピュータ読取り可能媒体上に存在
している、コンピュータソフトウェアであって、コンピ
ュータソフトウェアは、コンピュータに (a)クライアントからデータベース照会を受け取る; (b)データベース照会をサービスするためにどのルー
チンを実行する必要があるかを決定する; (c)コアメモリへの読取り/書込みアクセスで信用ル
ーチンを実行する;及び (d)コアメモリへの読取り専用アクセスで不信用ルー
チンを実行する動作を実行させるための命令を備えてい
るコンピュータソフトウェアによって達成される。
【0021】本発明のコンピュータソフトウェアでは、
(d)は、実行のスレッドをコアメモリへの読取り/書
込みアクセスを有している第1のプロセッサからコアメ
モリへの読取り専用アクセスを有している別のプロセッ
サに移行させる命令を備えているように構成してもよ
い。本発明のコンピュータソフトウェアでは、(d)
は、不信用ルーチンを実行することに関してコアメモリ
に対するメモリアクセス許可を読取り専用に変更する命
令を備えているように構成してもよい。
【0022】
【作用】本発明の一形態では、データベースにおけるデ
ータを操作するためのルーチンは、データベースマニピ
ュレーションルーチンが特定のメモリの範囲から分離さ
れるか否かを決定することにより、かつ、応答として、
検討されているデータベースマニピュレーションルーチ
ンに対して特定のメモリの範囲に対するメモリアクセス
許可を選択的に切り替える(例えば、読取り/書込みか
ら読取り専用へ)ことにより、データベースサーバによ
って実行される。次いで、データベースマニピュレーシ
ョンルーチンは、選択的に切り替えられたメモリアクセ
ス許可を用いて実行される。分離されるべきデータベー
スマニピュレーションルーチンは、読取り専用メモリア
クセスで実行することができそれにより不適当な変更か
ら特定のメモリの範囲を保護する。
【0023】データベースマニピュレーションルーチン
が特定のメモリの範囲から分離されるか否か(例えば、
コアデータ構造が存在するようなコアメモリ)は、デー
タベースマニピュレーションルーチンに関連付けられた
パラメータを検査する(調べる)ことによって決定され
うる。パラメータは、データベースマニピュレーション
ルーチンを実行するためにプロセッサのクラス(例え
ば、多重スレッド型仮想プロセッサ)を特定する値に設
定することができる。ある一定の分類値は、対応プロセ
ッサがプロセッサのコアメモリ許可を読み取り専用に限
定することによってコアメモリから分離されるべきであ
るということを示す。他の分類値は、対応プロセッサが
コアメモリから分離される必要がなくそれゆえにコアメ
モリに対する完全なR/W許可を有しうるということを
示すことができる。
【0024】データベースマニピュレーションルーチン
が“不信用(untrusted) ”−−即ち、コアメモリから分
離されるべきルーチンであると決定されるならば、メモ
リアクセス許可の選択的切り替えは、コアメモリに対す
る読み取り専用に対して、データベースマニピュレーシ
ョンルーチンに対するメモリアクセス許可を設定する局
所手順呼出しを介して達成されうる。代替的に、データ
ベースマニピュレーションルーチンが“信用(trusted)
”ルーチン−−即ち、コアメモリから分離される必要
がないルーチンであると決定されるならば、データベー
スマニピュレーションルーチンに対するメモリアクセス
許可は、コアメモリに対する読取り/書込みに設定され
うる。不信用ルーチンが実行されるべきである場合、局
所手順呼出しは、データベースマニピュレーションルー
チンに対する実行のスレッドを、コアメモリにへの読取
り/書込み許可を有するプロセッサからコアメモリへの
読取り専用アクセスを有するプロセッサへ移行させる。
スレッドは、論理的区分形式コアメモリであるがコアメ
モリと同じメモリアドレス空間にあるメモリ領域へ移行
する。スレッドは、それがコアメモリへの読取り/書込
み許可を有する場合に“信用コンテキスト”にあり、コ
アメモリへの読取り専用アクセスを有する場合に“不信
用コンテキスト”にある。
【0025】不信用コンテキストにおいて実行すると
き、スレッドは、それにも係わらずデータベースマニピ
ュレーションルーチンを実行するためにコアメモリの資
源を使用することを必要としうる。その条件を検出する
ことにより、不信用コンテキストから別の信用コンテキ
ストへの切り替えは、例えば、スレッドにコアメモリを
変更させるために行われる。スレッドがコアメモリにお
いて資源のその使用を完了した後、切り替えは、信用コ
ンテキストから不信用コンテキストに戻るように行われ
る。同様に、不信用ルーチンが実行を完了した後、切り
替えは、不信用コンテキストから最初の信用コンテキス
トに戻るように行われる。あらゆる任意の数の切り替え
は、信用コンテキストと不信用コンテキストの間で行わ
れうる。不信用コンテキストから信用コンテキストへの
コンテキスト切り替えを行うことにおいて、コアメモリ
へのエントリは、所定の一つ以上の許可される実行エン
トリポイントのセット、例えば、所定のコールバック表
において識別されたものに限定されうる。特定エントリ
ポイントがコールバック表に現れるならば、コアメモリ
におけるそのポイントでのエントリは、許可される。し
かしながら、特定エントリポイントがコールバック表に
現れないならば、コアメモリにおけるそのポイントでの
エントリは、阻止される。
【0026】本発明の別の形態では、データベースにお
けるデータを操作するためのルーチンは、メモリアドレ
ス空間をメモリセグメント(例えば、主セグメント及び
一つ以上の防護セグメント)に分割することによってデ
ータベースサーバにより実行される。データベースマニ
ピュレーションルーチン、例えば、ルーチンがメモリセ
グメントの別のものに情報を書込むことを防ぐ不信用ユ
ーザ定義型ルーチンは、防護メモリセグメントにおいて
選択的に実行されうる。防護メモリセグメントにおいて
実行するデータベースマニピュレーションルーチンは、
所定のルーチンを実行すべく別のメモリセグメントから
情報を読み取ることまたは別のメモリセグメントに移行
することを可能にできる。他の資源、例えば、信用コア
データベースルーチンは、全てのメモリセグメントへの
完全なR/Wアクセスを伴う主セグメントで実行するこ
とができる。更に、多重データベースマニピュレーショ
ンルーチンは、メモリセグメントのそれぞれにおいて実
行されうるし、各データベースマニピュレーションルー
チンは、それ自体のメモリセグメント以外の全てのメモ
リセグメントへの読取り専用アクセスを有している。
【0027】この発明の利点は、以下の一つ以上を含み
うる。ユーザに彼ら自身のルーチンを定義させかつそれ
らのユーザ定義型ルーチンをデータベースエンジンにリ
ンクさせることによりデータベースサーバが任意のリッ
チデータ型の集合(例えば、画像、ビデオ、サウンド、
マップ、複雑な金融インストルメント、時系列データ)
を素早くかつ効率的に管理できるようにする。不良ロジ
ックを含んでいるユーザ定義型ルーチンがデータベース
を破損するというリスクは、そのようなユーザ定義型ル
ーチンがデータベースサーバのコアデータ構造及び機能
から分離されるので、最小化される。データベースサー
バによって用いられるコアメモリの不適当な変更は、限
定的特権を有するプロセッサ(例えば、仮想プロセッ
サ)でユーザ定義型ルーチンを実行することによって防
げる。仮想プロセッサは、特定のインプリメンテーショ
ンにより特定メモリ範囲またはそれ自体の補助メモリセ
グメントのいずれかへの完全な読取り及び書込み(R/
W)アクセスが許されるが、コアデータベースサーバメ
モリへの読取り専用アクセスに限定される。その結果、
高度な信頼性及び性能がデータベースサーバに対して維
持されると同時に、ユーザには向上した可撓性が与えら
れる。
【0028】ルーチンが実行される仮想プロセッサのク
ラスをルーチンが特定できるようにすることにより、デ
ータベース開発者には、不信用ルーチンを分離するため
の可撓的かつ強力な機構が与えられる。ルーチンは、完
全R/W特権を伴う仮想プロセッサクラスまたは、メモ
リの指定領域への読取り専用特権を有する、“防護”仮
想プロセッサを指定すべく、パラメータを単に変更する
ことにより信用または不信用として実行されうる。メモ
リがセグメントに論理的に区分される構成では、メモリ
セグメントは、同じメモリアドレス空間の異なる部分を
占有する。結果として、ユーザ定義型ルーチンに対する
実行のスレッドは、素早くかつ容易にメモリセグメント
間を移動することができる。更に、データベースサーバ
によって供給される内部ルーチンは、コアメモリセグメ
ントの内容が不適当に変更されることを防ぐと同時に、
防護仮想プロセッサにコアメモリセグメントにおいて存
在する資源をアクセスさせる。高度な性能及びスケーラ
ビリティがデータベースサーバに対して維持されると同
時に、不信用ユーザ定義型ルーチンの分離は、それによ
って認識される。
【0029】他の利点及び特徴は、図面を含む以下の説
明から明らかになるであろう。
【0030】
【実施例】持続データを記憶するための拡張可能データ
ベース管理システム(DBMS)の使用は、非拡張可能
DBMSがデータリポジトリとして用いられるときに利
用することができない複数の利点を供給する。実質的に
あらゆる型のデータを操作するルーチンを直接データベ
ースエンジンにリンクする能力は、企業の特定のニーズ
に合致すべくDBMSを適合させることを開発者に許容
する。更に、単一エンジン・ソルーションにおいてコア
DBMS機能性と共に特注機能を実現するための能力
は、DBMSの性能、トランザクション完全性、従来及
び複雑なデータ型の両方に対するスケーラビリティ及び
管理能力を向上させる。そのように大きな度合の可撓性
及び拡張可能性を開発者に供給することは、しかしなが
ら、用いるDBMSアーキテクチャにより、潜在的に問
題をもたらしうる。例えば、図3Aのアーキテクチャで
は、データベースサーバ300は、通信リンク307を
介してクライアントI,J及びK(301−305)か
らデータベース照会を受け取りかつデータベース照会を
適切にスレッドQ,RまたはSに運ぶ。各クライアント
は、図3Aに示すように、個別のスレッドと通信しうる
か、または、単一の多重スレッド型処理は、二つ以上の
クライアントから照会を受け取りうる。いずれの場合で
も、スレッドは、次いで、データベース上で所望の動作
を行う所定のルーチンを呼出すためにライブラリコール
をする。図3Aでは、データベースサーバ300に存在
している全てのスレッドは、各スレッドが完全R/W特
権を有する同じメモリアドレス空間−−具体的には共有
メモリ302−−においてそれらの対応ルーチンを実行
する。
【0031】通常、スレッドQ,R及びSに自由に共有
メモリ302から読み取ること及びそれに書き込むこと
をさせることは、スレッドによって呼出される基礎をな
しているルーチンのそれぞれが同じソフトウェアべンダ
ーによって書かれかつデータベースサーバ300にリン
クされた全ての他のルーチンとの正確な動作及び相互運
用性(インタオペラビリティ)に対して全体を通して検
査されているので、システム動作で問題をもたらさな
い。しかしながら、ある場合には、DBMSの比較的高
度ではない開発者またはエンドユーザは、不良なデータ
マニピュレーションルーチンを書込みうるし、かつ適切
にデバッグすることを失敗しうる−−即ち、ルーチンの
実行は、それに不適当な方法でデータベースサーバ30
0の共有メモリ302を変更させ、潜在的にDBMSを
クラッシュするかまたはデータベースを破損するかまた
はその両方である。
【0032】図3Bは、データベースサーバの共有メモ
リが不良のユーザ定義型ルーチン(UDR)の実行によ
って損傷されるのを防ぐための解決策を示す。図3Bの
アーキテクチャでは、クライアント301−305から
受け取ったデータベースマニピュレーション要求は、そ
れらが対応する基礎をなしているルーチンが“信用(tru
sted) ”(例えば、それらが共有メモリ302を不適切
に変更しないかさもなければ他のルーチンと矛盾するこ
とを保証すべく徹底的に検査されたUDRs)または
“不信用(untrusted) ”(例えば、徹底的に検査されて
いないUDRs)として考慮されるか否かにより、異な
る方法で扱われる。信用のクラスに属するものとして指
定されたUDRsに対して、呼出しスレッドは、図3A
に関して上記したのと同じ方法で完全R/W特権により
共有メモリ302にてルーチンを実行する。
【0033】しかしながら、不信用UDRsの場合に
は、呼出しスレッド(例えば、スレッドS)は、遠隔手
順呼出し(RPC)−− プログラムコンテキストを維
持すると同時にスレッドを一つのメモリアドレス空間か
ら別のメモリアドレス空間に移行させるプログラミング
機構−−を別のサーバ310に対して行う。一度、スレ
ッドがサーバ310に移行したならば、不信用UDR
は、メモリ312で実行されかつ結果は、スレッドをD
Bサーバ300に回すことによって戻される。サーバ3
10のメモリ312は、サーバ300の共有メモリ30
2から分離されかつそれとは異なるメモリアドレス空間
を表すので、サーバ310上で実行されるあらゆるルー
チンは、共有メモリ302を直接変更することができな
い。結果として、スレッドSにより行われたRPCは、
データベースサーバ300から基礎をなしている実行ス
レッドを分離して共有メモリ302が不信用ルーチンに
よって不適当に変更されるのを防ぐ。
【0034】しかしながら、異なるメモリアドレス空間
の間を横断することは、比較的時間のかかるアクティビ
ティである。異なるメモリアドレス空間に対する各RP
Cは、異なるサーバ間のアーギュメント及び結果を整理
しかつ回復することにかなり多くのオーバヘッド時間を
一般に招く。更に、RPCを基盤とするアーキテクチャ
は、それぞれが個別のコンピュータシステムに一般に関
連付けられる二つ以上の異なるアドレス空間の間の通信
リンクの適切な動作に依存する。そのようなシステム間
通信は、システム内通信よりもかなり信頼性がない。R
PCを基盤とする分離したアーキテクチャは、結果とし
て比較的低い性能及び信頼性の影響を受ける。RPCを
基盤とする分離アーキテクチャに関連付けられるこれら
及び他の問題は、UDRsのようなある一定の不信用方
法がコアデータ構造から及びコアデータベースエンジン
ルーチンのような信用方法から分離することができるよ
うなデータベースサーバアーキテクチャによってアドレ
ス指定される。分離は、少なくとも二つの異なるモデル
−−多重処理モデル及び単一処理セグメントモデル−−
のいずれかを用いることによって達成することができ
る。
【0035】多重処理モデルでは、分離は、同じメモリ
アドレス空間302内の多重メモリセグメント−−例え
ば、主メモリセグメント303及び補助メモリセグメン
ト304−−を維持することによって図4に示したよう
なアーキテクチャにおいて達成することができる。セグ
メント303は、信用コアデータベースエンジンルーチ
ン及びコアデータ構造が実行されかつ記憶されるような
メモリ領域として役に立つ。メモリセグメント304
は、コアDBMS機能に対応するもの以外のルーチン及
びデータを実行しかつ記憶するために主に確保される補
助メモリ領域として役に立つ。信用ルーチンを実行する
スレッドは、そのまま残り、かつ主メモリセグメント3
03に対して、完全R/W特権を有する。しかしなが
ら、不信用ルーチンを実行するために、スレッドは、ま
ずコアメモリセグメント303からスレッドを分離すべ
く補助メモリセグメント304に移行する。補助メモリ
セグメントにおいて実行されるスレッド(例えば、スレ
ッドS’)は、メモリセグメント304に対する完全R
/W特権を有するが、メモリセグメント303への読取
り専用アクセスを有する。不信用ルーチンを実行するこ
とにおいてスレッドS’が書込むことができるメモリの
領域を強要することによって、コアDBMSデータ構造
及びルーチンは、不良UDRによって上書きされること
から防止される。更に、信用及び不信用ルーチンが同じ
メモリアドレス空間(異なるメモリセグメントにおいて
であるが)で実行されるので、スレッドS’は、不信用
ルーチンを実行するためにRPCを実行する必要がなく
それよりも、より信頼性がありかつおおよそRPCより
も小さい程度の大きさであるオーバヘッド時間を必要と
する標準局所手順呼出しを用いることができる。結果と
して、不信用ルーチンの分離は、比較的高いレベルの性
能及び信頼性を維持しつつ達成することができる。
【0036】データベースサーバが単一処理を用いて実
行されるとき、分離は、実行されるルーチンの特性に基
づいてR/W特権を変更することによってコアメモリセ
グメント内で達成することができる。信用ルーチンを実
行することにおいて、スレッドは、通常の方法において
コアメモリに対する完全R/W特権を有する。しかしな
がら、不信用ルーチンを実行する前に、コアデータベー
スルーチンに対応するメモリの範囲へのR/W許可は、
不信用ルーチンを実行しているスレッドに対して読取り
専用に切り替えられる。メモリセグメントへのR/W特
権を切り替えることは、二つの方法:(i)特定メモリ
範囲でR/W許可を変更するためにオペレーティングシ
ステム−特定ルーチンを呼出すことによって、または
(ii)メモリセグメントからスレッドが存在するよう
な処理を取り外しそしてメモリセグメントに処理を再び
取付けすることにより異なるR/Wアクセス許可を特定
することによって達成することができる。両方の方法に
おいて、データベースの破損は、不信用ルーチンがメモ
リの指定部分を変更するのを禁止することによって防ぐ
ことができる。
【0037】信用コアデータ構造及びDBMSルーチン
から不信用UDRsを有効的に分離するために図4のア
ーキテクチャがどのようにインフォーミックスユニバー
サルサーバにおいて用いられうるかという詳細な説明
は、図5を参照して与えられる。図示したマルチプロセ
ッサ環境では、IUSは、同じメモリアドレス空間を占
有するが互いに論理的に区分される複数のメモリセグメ
ント−−例えば、コアメモリ402及び防護メモリ41
2−−を用いる。データベースサーバ400は、一つ以
上の仮想プロセッサ(VPs)−−ハードウェアプロセ
ッサをエミュレートしかつ同時に多重クライアント要求
を受け入れかつ処理することができるマルチスレッド型
ソフトウェアエンティティから構成されている。各VP
は、例えば、UNIXオペレーティング・システムの処
理として実行されるバイナリ実行可能ファイルの一つの
インスタンスである。バイナリ実行可能ファイルは、O
RDBMSを形成するために必要なソフトウェアコンポ
ーネント及び任意のデータ型を取り扱うためのUDRs
を含んでいる拡張子とインタフェースする機能を供給す
るソフトウェアコンポーネントを含む。
【0038】VPsは、いろいろなクラスがあり、各ク
ラスは、そのクラス内のVPsに対して利用可能な特
権、及びそのクラス内のVPsに課せられた制限を制御
する一定の特性を定義している。データベースエンジン
にリンクされる各ルーチン、コアデータベースルーチン
またはUDRは、ルーチンがそれにより実行されるVP
のクラスを指定する関連パラメータVPCLASSを有
する。一般に、機能的に関連したルーチンの集合は、同
じVPクラスに割り当てられる。VPCLASSパラメ
ータは、データベースサーバの所望の構成により異なる
クラスを特定するために始動時に変更されうる。データ
ベースサーバは、同じかまたは異なるクラスの、複数の
異なるVPsにより構成されうる。VPsは、IUSシ
ステムの一部として含まれるコアデータベースルーチン
のライブラリにリンクされる。また、VPsは、一つ以
上のUDRs、例えば、IUSシステムのユーザによっ
て特定される任意のデータ型を管理するために特注設計
された、図5に示すようなUDR1 及びUDR2 にもリ
ンクされうる。コアデータベースルーチン及びUDRs
の両方は、インフォーミックス、インコーポレーティッ
ド(Informix, Inc.)によって開発されたDataBla
de技術を用いてIUSアーキテクチャで実行される。
DataBlade技術及び新しいUDRsを生成する
ためにそれがどのように用いられるかの詳細な説明は、
参照文献として採り入れられる、DataBlade
Developers Kit 9.01(インフォー
ミックス注文番号No.82181)に与えられてい
る。
【0039】図5に示した構成では、データベースサー
バは、それぞれが異なるクラスに属している、3つの異
なるVPs403、405及び409を含む。CPU
VP405は、最も効率的にルーチンを実行するクラス
でありかつコアデータベースルーチンに対するデフォル
トVPクラスである、VPクラス“cpu”に属する。
CPU VP405は、最初のインスタンスにおける全
ての入力データベース照会または他のクライアント要求
を受け取りかつ扱う。クライアント要求を処理ことにお
いて、CPU VPは、特別の機能を実行するためにV
Psの他のクラスを呼出しうる。例えば、CPU VP
405は、ブロッキング(阻止)I/O要求をサービス
すべくExtension VP403(VPCLAS
S=“ext”)を呼出し、それにより他のクライアン
ト要求を扱うためにCPU VPを自由にする。
【0040】全てのVPクラスは、データベースサーバ
の始動時に決定される静的R/W特権を有する。特定さ
れない限り、デフォルトによる全てのVPクラスは、コ
アメモリ402に対して完全R/W特権を有する。しか
しながら、拡張子VPは、そのVPCLASSを“防護
(fenced)”に設定することによって防護FVPとして実
行されるべく指定されうる。他のVPクラス(例えば、
“cpu”、“aio”、“tli”)は、通常、動作
の防護モードを支援しない。従って、図5では、防護V
P409(即ち、そのVPCLASSが“防護”に設定
されている拡張子VP)は、防護メモリ412に対する
完全R/W特権を有するがコアメモリ402への読取り
専用アクセスに限定される。VPCLASSパラメータ
を適切に設定することによって、ルーチンが取り扱われ
る(信用対不信用)方法は、制御することができる。信
用ルーチンとしてUDRを実行するために、VPCLA
SSは、CPU VPがコアデータベースエンジンルー
チンと同じ方法でルーチンを実行するということを意味
する“cpu”に設定される。コアメモリセグメント以
外のメモリセグメントにおいてUDRを信用ルーチンと
して実行するために、VPCLASSは、“cpu”以
外のVPクラス識別子、例えば“ext”に設定され
る。コアメモリセグメント以外のメモリセグメントにお
いて不信用ルーチンとして実行するために、VPCLA
SSは、ルーチンがコアメモリセグメントから“防護さ
れた”(即ち、書込むことが不能である)VPによって
実行されるということを意味する“防護”識別子を含
む。
【0041】データベースサーバが信用及び不信用ルー
チンの間で切り替わる方法の説明は、図6のフローチャ
ートを参照して与えられる。クライアントは、サーバに
接続、または“ログイン”し(ステップ500)かつロ
グインセッションのコースにわたり一つ以上の要求(例
えば、SQL照会)を発行することによってデータベー
スサーバ400をアクセスする。まずデータベースサー
バ400に接続することにより、各クライアントにはメ
モリスタックがコアデータベースルーチンへの呼出し、
mt_alloc_stack()を介してCPU V
P405によって割り当てられる(ステップ502)。
クライアントの割り当てられたスタック領域は、ログイ
ンセッション中に発行されたクライアントのデータベー
ス要求をサービスしているそのクライアントに関連付け
られた一つ以上の実行スレッドによって用いられる。ま
た、スタック割り当てルーチンは、追加空間が既存のス
タックによって必要とされるときにまたはクライアント
要求の並列処理に対して新しいワーカースレッドをひき
起こすために呼び出される。
【0042】クライアントがデータベース照会または他
の要求をデータベースサーバに送るとき(ステップ50
4)、CPU VP405は、特定情報を検索しかつ適
切なフォーマットにそれを与えるためにどのルーチンを
実行する必要があるかを決定することによって照会の処
理を起動する(ステップ506)。処理の一部として、
CPU VP405は、また、照会最適化分析を実行し
かつデータベースマニピュレーション動作の実行を起動
するであろう。結局、CPU VPは、一般にクライア
ントの要求をサービスするために一つ以上のルーチンを
実行する必要がある点に到達する。実行されるべき各ル
ーチンに対して、CPU VP405は、ルーチンがコ
アメモリ402に対する完全R/W特権を有するVPに
よってまたは、コアメモリ402に対する読取り専用特
権を有する、防護VP409によって実行されるべきか
を決定するためにルーチンのVPCLASSパラメータ
を試験する(ステップ508)。クライアント要求をサ
ービスすることにおいて実行されるルーチンの大部分
は、一般に、CPUVP405それ自体によってまたは
“cpu”以外のクラス(例えば、拡張子VP403)
の非防護VPによってコアメモリ402で実行される信
用コアデータベースルーチンである。しかしながら、ク
ライアント要求をサービスことにおいて実行されるべき
ルーチンのあるものは、UDRsをコアデータベースメ
モリから分離すべく防護メモリセグメント412におけ
る防護VP409によって実行される不信用UDRsで
ありうる。
【0043】VPCLASSパラメータが従って語“防
護(fenced)”を含まないならば、ルーチンは、信用とし
て扱われる。そのようにするために、CPU VP40
5は、ルーチンに対するパラメータをコアメモリ402
のクライアントのスタックに押しつけ(ステップ51
0)、かつルーチンを実行するためにスレッドに対する
エントリを主実行キュー404に挿入する(ステップ5
12)。主実行キュー404がルーチンのスレッドエン
トリを次にポイントするときに、ルーチンのVPCLA
SSパラメータによって特定されたクラスからのVP
は、スレッドピックアップしかつクライアントのスタッ
クからパラメータをポップオフしかつルーチンによって
特定された命令を実行すべくそれらを用いることによっ
てコアメモリ402において要求されたルーチンを実行
する(ステップ514)。信用ルーチンを実行すること
において、ルーチンが実行されているVPは、必要に応
じて自由にコアメモリ402に書き込まれかつそれから
読み取られる。完了により、ルーチンは、あらゆるリタ
ーンパラメータをクライアントのスタックに押しつけか
つ適当な位置に制御を戻す(ステップ516)。
【0044】しかしながら、VPCLASSパラメータ
が語“防護(fenced)”を含むならば、CPU VP40
5において実行されているスレッドは、ルーチン(一般
的にUDR)が防護メモリセグメント412で実行でき
るように防護VP409に移行する。CPU VP40
5は、コアメモリセグメント402にではなく防護メモ
リセグメント412にメモリスタック(防護スタック4
16)を割り当てるために次いでmt_alloc _stack()
を呼び出す、コアデータベースルーチン、mt_priv_ca
ll()、を呼び出すことによってスレッドの移行を起動す
る(ステップ518)。スタックが割り当てられた後、
mt_priv_call()は、UDRに対するパラメータを防護
スタック416 に押しつけることによってコンテキ
スト切り替えを行ない(ステップ520)、かつスレッ
ドエントリを、不信用ルーチンを実行するために別個に
維持される、防護実行キュー414に挿入する。防護V
Pは、キュースレッドが次に実行されるときに次いで防
護メモリセグメント412において不信用UDRを実行
する(ステップ524)。
【0045】UDRを実行することにおいて、防護VP
409は、防護メモリセグメント412から自由に読み
取りかつそれに書き込みうるが、コアメモリセグメント
402に書き込むは、防止される。それよりも、防護V
P409は、不信用UDRを実行するために必要に応じ
て防護VP409にセグメント402におけるデータを
読み取らせるためにコアメモリセグメント402への読
取り専用アクセスを有する。防護VP409は、マルチ
スレッディング(MT)インタフェース、サーバアプリ
ケーションプログラムインタフェース(SAPI)及び
ユーザ定義型ルーチン言語マネージャ(UDRLM)に
よって供給された内部ルーチンを介してコアメモリ40
2に存在している資源をアクセスすることが可能であ
る。これらの内部ルーチンは、特定ルーチンの性能がメ
モリセグメント間を移行するためにスレッドを必要とす
るかどうかを検出する。SAPIインタフェースライブ
ラリは、UDRによって呼び出されうる支援型ルーチン
を定義する。SAPIルーチンは、現行コンテキストが
不信用であるということをエントリにより検出する。不
信用コンテキストにおいて実行されているルーチンがコ
アメモリを変更することを必要とするならば、それは、
mt_priv_call()を介して信用コンテキストに切り替わ
り、所望の動作を実行しかつ別のmt_priv_call()で不
信用コンテキにスイッチバックする。実質的に、信用及
び不信用コンテキスト間のいかなる任意の数の切り替え
もこの方法で行われうる。必要に応じてコンテキストを
選択的に切り替えることによって、実行のスレッドは、
クライアント処理及びUDRsに対して透過であるよう
な方法でメモリセグメントとVPsの間を移動すること
ができる。
【0046】不信用ルーチンの実行中に、スレッドが防
護メモリセグメントにおいて実行されている間に防護V
Pがコアメモリセグメントにおけるメモリを変更するこ
とを試みる命令を実行するならば、防護VPは、そのよ
うにすることを防止される。結果として、コアメモリセ
グメントは、不良UDRによって不適切に変更されるこ
とから保護される。更に、不信用UDRsを実行するこ
とに含まれる種々の動作が全て同じメモリアドレス空間
内で行われるので、メモリセグメント間で切り替えるた
めに局所呼出しだけが必要でありそれによりルーチンが
行われうるスピード及び信頼性を向上する。UDRが防
護メモリセグメント412におけるその実行を完了した
後、mt_priv_call()ルーチンからのリターンは、実行
のスレッドがコアメモリセグメント402におけるCP
U VP405に戻るように移行して行われる(ステッ
プ526)。mt_priv_call()は、スレッドのスタック
上の単なる別の呼出しなので、それからの戻りは、スレ
ッドをそれがやってきたところからのコンテキストに戻
す。結果として、スレッドは、それが防護メモリセグメ
ントにおいて生成したあらゆる資源を割り当て解除しか
つCPU VP405において実行を行う。
【0047】図5のデータベースサーバメモリが二つの
セグメント402及び404に分割されるけれども、よ
り多くのメモリセグメントを有しているアーキテクチャ
を実施することができる。データベースサーバは、3つ
以上のセグメントに分割することができる−−例えば、
一つのコアセグメントと二つ以上の防護セグメント。信
用ルーチンは、コアセグメントで実行することができか
つUDRsは、UDRsが割り当てられた異なるクラス
に基づき種々の防護セグメントで実行することができ
る。例えば、適切な動作に対してかなりの検査が行なわ
れかつ信頼できることを証明したUDRsは、第1のV
Pクラスに割り当てることができ、ほとんどまたは全く
検査が行われていないUDRsは、一つ以上の他のVP
クラスに割り当てることができる。第1のVPクラスに
属している証明済みの信頼性があるUDRsは、一つの
メモリセグメントで実行することができ、他のクラスに
属している不信用UDRsは、それらを他のUDRsか
ら分離すべく別個のメモリセグメントで実行することが
できる。このように不信用UDRsを分離することは、
それらがコアデータベースサーバメモリを破損すること
だけでなく他のUDRsをクラッシュすることも防ぐこ
とができる。
【0048】更に、多重防護セグメントの使用は、より
簡単な不良識別を容易にする。多重UDRsが単一メモ
リセグメントで実行されるならば、どのUDRが不良で
あるかという決定は難しい。異なるメモリセグメントに
対するUDRsを分離することによって、不良のUDR
は、どのメモリセグメントが破損されたかを決定するこ
とによって複数のUDRsの中から識別することができ
る。各VPは、UNIXを基盤としたプラットフォーム
で個別の処理として実行されるけれども、全てのアクテ
ィブVPsの集合は、多重スレッドを有している単一処
理として他のプラットフォームで実行することができ
る。データベースサーバに存在するVPsの数及び型
は、企業(enterprise)の目標に依存しかつシステム管理
者に対する設計選択事項である。VPの各インスタンス
は、同時に多重クライアント要求を受け入れかつ処理す
ることができる多重スレッド型エンティティである。V
Pの各クラスに対して、VPの二つ以上のインスタンス
が同時にアクティブでありうる。例えば、CPU VP
の複数のインスタンスは、同時にアクティブでありうる
し、それぞれが一つ以上のクライアント要求を同時にサ
ービスする。
【0049】同様に、防護VPの複数のインスタンスが
存在しうるし、それぞれが一つ以上のUDRsを並列で
実行する。防護VPの単一インスタンスは、全てのUD
Rsを代替的に処理しうるかまたは不信用ルーチンに対
する各呼出しは、防護VPの専用インスタンスによって
サービスされうる。図5のアーキテクチャにおけるVP
sは、静的R/W許可(即ち、完全または防護のいずれ
か)を用いるけれども、ことあんるアーキテクチャは、
VPsに対する許可がVPがコアメモリセグメントから
防護されるべきルーチンを実行しているか否かに基づい
て動的に切り替えられることころで可能である。更に、
起動時に全てのVPインスタンスをひき起こすよりも、
VPの一インスタンスは、例えば、不信用UDRを呼出
すことに応答して、必要に応じて動的にひき起こすこと
ができる。
【0050】代替的実施例では、不信用UDRを実行し
ている防護VPは、不信用UDRの分離を維持すると同
時に、そこに存在している資源をアクセスするためにコ
アメモリに対して“コールバック(call backs)”を実行
することができる。IUSシステムは、コアメモリに存
在している資源を変更する許可可能なルーチン呼出しの
表を維持する。防護VPは、所望のルーチンに対する表
における対応する通常の位置を示すことによってコール
バック表にて特定されたルーチン呼出しのいずれかを呼
び出すことができる。図7に示すように、例えば、防護
VPは、防護VPがルーチン(y)を呼出すことを欲す
るときにコールバック表600における位置二(2)を
指定しうる。非防護VPが、コアメモリにおいて要求ル
ーチンを実行するために、防護VP上で先に実行されて
いたスレッドを次にピックアップしたときに、非防護V
Pは、要求ルーチンがコールバック表600にリストさ
れたことを確認することによってルーチン呼出しによっ
てポイントされたメモリアドレスがコアメモリにおいて
適合かつ安全な実行エントリポイントであったというこ
とを確実にする。要求ルーチンがコールバック表600
にリストされていなかったならば、要求ルーチンの実行
は、阻止される−−即ち、非防護VPは、要求ルーチン
を実行しない。このように、コールバック表機構は、防
護VPによったなされうるルーチン呼出しを制限しそれ
によってそれが潜在的にコアメモリにおける不適当な位
置にジャンプすることを防ぐ。
【0051】コールバック表は、少なくとも二つの異な
る方法で実施されうる。まず、コールバック表は、許可
可能なルーチンのアドレスのリストを含みうる。コアメ
モリにコールバックすることを求めているUDRは、コ
ールバック表に対するインデックスとして用いるべきエ
ントリポイント識別子を供給する。非防護VPは、UD
Rによって供給された特定のエントリポイント識別子に
よってポイントされたルーチンを実行する。代替的に、
コールバック表は、コアメモリにおける正当な実行アド
レスのリストでありうる。UDRによって特定されたエ
ントリポイントは、エントリポイントの有効性を確認す
るためにコールバック表にリストされた実行アドレスに
対してチェックされうる。ここで説明した方法及び機構
は、特定のハードウェアまたはソフトウェア構成に限定
されるものではないが、それらは、データベース動作が
実行されうるあらゆるコンピューティング又は処理環境
において適用性を見出すであろう。
【0052】ここで説明した技法は、ハードウェアまた
はソフトウェア、またはこれらの組合せで実施されう
る。技法は、それぞれがプロセッサ、プロセッサによっ
て読取り可能な記憶媒体(揮発性及び不揮発性メモリ及
び/又は記憶素子を含んでいる)、及び適格な入力及び
出力装置を含むプログラマブルコンピュータで実行され
るコンピュータプログラムで実施されるのが好ましい。
プログラムコードは、記述された機能を実行しかつ出力
情報を生成するために入力装置を用いて入力されたデー
タに適用される。出力情報は、一つ以上の出力装置に適
用される。各プログラムは、コンピュータシステムと通
信するために高水準手続き型又はオブジェクト指向型プ
ログラミング言語で実施されるのが好ましい。しかしな
がら、プログラムは、所望ならば、アセンブリまたは機
械言語で実施することができる。いずれの場合でも、言
語は、コンパイル済みまたは翻訳済み言語でありうる。
【0053】それぞれのそのようなコンピュータプログ
ラムは、記述された手順を行うために記憶媒体または装
置がコンピュータによって読み取られるときにコンピュ
ータを構成しかつ動作するための汎用または特殊用途プ
ログラマブルコンピュータによって読取り可能である記
憶媒体又は装置(例えば、CD−ROM、ハードディス
ク又は磁気ディスケット)に記憶されるのが好ましい。
また、システムは、コンピュータを特定及び所定の方法
で動作するように記憶媒体が構成された、コンピュータ
プログラムで構成された、コンピュータ−読取り可能記
憶媒体として実施されうる。他の実施例は、特許請求の
範囲の範疇内である。
【0054】
【発明の効果】本発明の方法は、データベースにおける
情報を操作するためにルーチンを実行する、データベー
スサーバによって実行される、方法であって:データベ
ースマニピュレーションルーチンが特定メモリ範囲から
分離されるか否かを決定し;決定に基づいてデータベー
スマニピュレーションルーチンに対するメモリアクセス
許可を選択的に切り替え;かつ選択的に切り替えたメモ
リアクセス許可を用いてデータベースマニピュレーショ
ンルーチンを実行する段階を具備するので、新しいアプ
リケーションを配置しても優れた性能で情報をアクセス
することができる。本発明の方法は、データベースにお
ける情報を操作するためにルーチンを実行する、データ
ベースサーバによって実行される、方法であって:メモ
リアドレス空間をメモリセグメントに分割し;第1のメ
モリセグメントにおいてデータベースマニピュレーショ
ンルーチンを選択的に実行し;かつ実行しているデータ
ベースマニピュレーションルーチンがメモリセグメント
の別のものに情報を書込むことを防ぐ段階を具備するの
で、新しいアプリケーションを配置しても優れた性能で
情報をアクセスすることができる。
【0055】本発明のデータベースサーバは、信用ルー
チン及び不信用ルーチンを含んでいる複数のデータベー
スマニピュレーションルーチン;コアメモリセグメント
及び防護メモリセグメントを含んでいる複数のメモリセ
グメントを有している共有メモリアドレス空間;及び複
数のルーチンにリンクされた複数の仮想プロセッサを備
え、仮想プロセッサは、コアメモリセグメントにおける
信用ルーチンを実行するフルアクセス仮想プロセッサ
と、防護メモリセグメントにおける不信用ルーチンを実
行する防護仮想プロセッサとを含んでいるので、新しい
アプリケーションを配置しても構成が複雑にならずかつ
優れた性能で情報をアクセスすることができる。本発明
のコンピュータソフトウェアは、データベースマニピュ
レーション方法を実行するためにリンク型ルーチンを有
しているデータベースサーバに対して、コンピュータ読
取り可能媒体上に存在している、コンピュータソフトウ
ェアであって、コンピュータソフトウェアは、コンピュ
ータに (a)クライアントからデータベース照会を受け取る; (b)データベース照会をサービスするためにどのルー
チンを実行する必要があるかを決定する; (c)コアメモリへの読取り/書込みアクセスで信用ル
ーチンを実行する;及び (d)コアメモリへの読取り専用アクセスで不信用ルー
チンを実行する動作を実行させるための命令を備えてい
るので、新しいアプリケーションを配置しても構成が複
雑にならずかつ優れた性能で情報をアクセスすることが
できる。
【図面の簡単な説明】
【図1】従来のリレーショナルデータベースを示すブロ
ック図である。
【図2】従来の拡張可能オブジェクトリレーショナルデ
ータベース管理システムを示すブロック図である。
【図3A】従来のデータベースサーバアーキテクチャの
一例を示す図である。
【図3B】従来のデータベースサーバアーキテクチャの
他の一例を示す図である。
【図4】多重メモリセグメントを有しているデータベー
スサーバアーキテクチャを示すブロック図である。
【図5】インフォーミックスユニバーサルサーバアーキ
テクチャを示すブロック図である。
【図6】図5のインフォーミックスユニバーサルサーバ
アーキテクチャにおけるルーチンの実行を説明するため
のフローチャートである。
【図7】図5のインフォーミックスユニバーサルサーバ
アーキテクチャにおいて用いられうるコールバック表を
示すデータ図である。
【符号の説明】 400 データベースサーバ 401 クライアント 402 コアメモリ 403、405、409 仮想プロセッサ(VP) 404 主実行キュー 406、408、410 クライアントスタック 412 防護メモリ 414 防護実行キュー 416 防護スタック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キース ケールマン アメリカ合衆国 オレゴン州 97202 ポ ートランド サウスイースト ブルックリ ン ストリート 2867

Claims (50)

    【特許請求の範囲】
  1. 【請求項1】 データベースにおける情報を操作するた
    めにルーチンを実行する、データベースサーバによって
    実行される、方法であって:データベースマニピュレー
    ションルーチンが特定メモリ範囲から分離されるか否か
    を決定し;前記決定に基づいてデータベースマニピュレ
    ーションルーチンに対するメモリアクセス許可を選択的
    に切り替え;かつ前記選択的に切り替えたメモリアクセ
    ス許可を用いて前記データベースマニピュレーションル
    ーチンを実行する段階を具備することを特徴とする方
    法。
  2. 【請求項2】 前記決定段階は、前記データベースマニ
    ピュレーションルーチンに関連付けられたパラメータを
    検査することを含むことを特徴とする請求項1に記載の
    方法。
  3. 【請求項3】 前記決定段階の前に、前記データベース
    マニピュレーションルーチンを実行するためのプロセッ
    サのクラスを特定する値に前記パラメータを設定する段
    階を更に具備することを特徴とする請求項2に記載の方
    法。
  4. 【請求項4】 前記設定段階は、前記特定メモリ範囲か
    ら分離されるプロセッサのクラスを特定する値を前記パ
    ラメータに割り当てることを含むことを特徴とする請求
    項3に記載の方法。
  5. 【請求項5】 前記選択的切り替え段階は、局所手順呼
    出しを行うことを含むことを特徴とする請求項1に記載
    の方法。
  6. 【請求項6】 前記選択的切り替え段階は、前記データ
    ベースマニピュレーションルーチンが前記特定メモリ範
    囲から分離されるルーチンであると決定されたならば該
    データベースマニピュレーションルーチンに対する前記
    メモリアクセス許可を前記特定メモリ範囲に対する読取
    り専用に設定することを含むことを特徴とする請求項1
    に記載の方法。
  7. 【請求項7】 前記選択的切り替え段階は、前記データ
    ベースマニピュレーションルーチンが前記特定メモリ範
    囲から分離されないルーチンであると決定されたならば
    該データベースマニピュレーションルーチンに対する前
    記メモリアクセス許可を前記特定メモリ範囲に対する読
    取り/書込みに設定することを含むことを特徴とする請
    求項1に記載の方法。
  8. 【請求項8】 前記選択的切り替え段階は、前記特定メ
    モリ範囲に対する読取り/書込み許可を有するプロセッ
    サから前記特定メモリ範囲に対する読取り専用許可を有
    するプロセッサに前記データベースマニピュレーション
    ルーチンに対する実行のスレッドを移行することを含む
    ことを特徴とする請求項1に記載の方法。
  9. 【請求項9】 前記移行する段階は、前記特定メモリ範
    囲と同じアドレス空間内に前記実行のスレッドを維持す
    ることを含むことを特徴とする請求項8に記載の方法。
  10. 【請求項10】 前記選択的切り替え段階は、前記デー
    タベースマニピュレーションに対する実行のスレッドが
    前記特定メモリ領域に対する読取り/書込み許可を有す
    るような信用コンテキストから前記実行のスレッドが前
    記特定メモリ領域に対する読取り専用許可を有するよう
    な不信用コンテキストに切り替えることを含むことを特
    徴とする請求項1に記載の方法。
  11. 【請求項11】 前記実行のスレッドが、前記データベ
    ースマニピュレーションルーチンを実行すべく読取り専
    用アクセスを有する実行のスレッドに対して前記特定メ
    モリ領域に存在している資源へのアクセスを必要とする
    ということを検出する段階を更に具備することを特徴と
    する請求項10に記載の方法。
  12. 【請求項12】 前記特定メモリ領域に存在している資
    源へのアクセスを必要とするということを検出して、前
    記不信用コンテキストから前記実行のスレッドが前記特
    定メモリ領域に対する読取り/書込み許可を有するよう
    な別の信用コンテキストへ切り替える段階を更に具備す
    ることを特徴とする請求項11に記載の方法。
  13. 【請求項13】 前記データベースマニピュレーション
    ルーチンに対する前記実行のスレッドが前記特定メモリ
    範囲における前記資源をアクセスすることを完了した後
    に前記別の信用コンテキストから前記不信用コンテキス
    トへ切り替える段階を更に具備することを特徴とする請
    求項11に記載の方法。
  14. 【請求項14】 前記データベースマニピュレーション
    ルーチンの実行が完了した後に前記不信用コンテキスト
    から前記信用コンテキストへ切り替える段階を更に具備
    することを特徴とする請求項13に記載の方法。
  15. 【請求項15】 前記選択的切り替え段階は、信用コン
    テキストと不信用コンテキストの間で任意の数の切り替
    えを実行することを含むことを特徴とする請求項1に記
    載の方法。
  16. 【請求項16】 前記実行する段階は、前記データベー
    スマニピュレーションルーチンを実行すると同時に前記
    特定メモリ領域と同じアドレス空間に残ることを含むこ
    とを特徴とする請求項1に記載の方法。
  17. 【請求項17】 前記実行する段階は、前記データベー
    スマニピュレーションルーチンが前記特定メモリ領域か
    ら分離されるルーチンであると決定されたならば前記特
    定メモリ領域に対する読取り専用許可を有するプロセッ
    サで該データベースマニピュレーションルーチンを行う
    ことを含むことを特徴とする請求項1に記載の方法。
  18. 【請求項18】 前記実行段階は、前記データベースマ
    ニピュレーションルーチンが前記特定メモリ領域から分
    離されていないルーチンであると決定されたならば前記
    特定メモリ領域に対する読取り/書込み許可を有するプ
    ロセッサで該データベースマニピュレーションルーチン
    を行うことを含むことを特徴とする請求項1に記載の方
    法。
  19. 【請求項19】 前記実行段階は、前記データベースマ
    ニピュレーションルーチンが前記特定メモリ領域から分
    離されるルーチンであると決定されたならば前記特定メ
    モリ領域から論理的に区分されるメモリセグメントにお
    いて該データベースマニピュレーションルーチンを行う
    ことを含むことを特徴とする請求項1に記載の方法。
  20. 【請求項20】 前記実行段階は、前記データベースマ
    ニピュレーションルーチンが前記特定メモリ領域から分
    離されないルーチンであると決定されたならば前記特定
    メモリ領域において該データベースマニピュレーション
    ルーチンを行うことを含むことを特徴とする請求項1に
    記載の方法。
  21. 【請求項21】 前記実行段階は、前記特定メモリ領域
    に存在している資源の変更を選択的に許可することを含
    むことを特徴とする請求項1に記載の方法。
  22. 【請求項22】 前記選択的変更は、前記特定メモリ領
    域における一つ以上の許可される実行エントリポイント
    に限定されることを特徴とする請求項21に記載の方
    法。
  23. 【請求項23】 コールバック表において前記一つ以上
    の許可される実行エントリポイントを特定する段階を更
    に具備することを特徴とする請求項22に記載の方法。
  24. 【請求項24】 データベースにおける情報を操作する
    ためにルーチンを実行する、データベースサーバによっ
    て実行される、方法であって:メモリアドレス空間をメ
    モリセグメントに分割し;第1のメモリセグメントにお
    いてデータベースマニピュレーションルーチンを選択的
    に実行し;かつ前記実行しているデータベースマニピュ
    レーションルーチンが前記メモリセグメントの別のもの
    に情報を書込むことを防ぐ段階を具備することを特徴と
    する方法。
  25. 【請求項25】 前記第1のメモリセグメントにおいて
    実行されている前記データベースマニピュレーションル
    ーチンに別のメモリセグメントから情報を読み取らせる
    段階を更に具備することを特徴とする請求項24に記載
    の方法。
  26. 【請求項26】 前記第1のメモリセグメントにおいて
    実行されている前記データベースマニピュレーションル
    ーチンを、所定のルーチンを実行させるために別のメモ
    リセグメントに移行させる段階を更に具備することを特
    徴とする請求項24に記載の方法。
  27. 【請求項27】 前記別のセグメントにおいて前記所定
    のルーチンに対して特定されたエントリポイントが許可
    されるエンドポイントかどうかをチェックする段階を更
    に具備することを特徴とする請求項26に記載の方法。
  28. 【請求項28】 前記チェックする段階は、所定の一つ
    以上の許可されるエントリポイントのセットに対して前
    記特定エントリポイントを比較することを含むことを特
    徴とする請求項27に記載の方法。
  29. 【請求項29】 前記別のセグメントにおける前記特定
    エントリポイントが許可されないエントリポイントであ
    るならば前記所定のルーチンの実行を阻止する段階を更
    に具備することを特徴とする請求項27に記載の方法。
  30. 【請求項30】 前記所定のルーチンが完了された後に
    前記第1のメモリセグメントに前記データベースマニピ
    ュレーションルーチンを戻す段階を更に具備することを
    特徴とする請求項24に記載の方法。
  31. 【請求項31】 前記データベースマニピュレーション
    ルーチンは、該データベースマニピュレーションルーチ
    ンが別のメモリセグメントにおける情報がそれから保護
    されるものとして識別されるならば、前記第1のメモリ
    セグメントにおいて実行されることを特徴とする請求項
    24に記載の方法。
  32. 【請求項32】 別のメモリセグメントにおける情報が
    それから保護される前記データベースマニピュレーショ
    ンルーチンは、ユーザ定義型ルーチンを含むことを特徴
    とする請求項31に記載の方法。
  33. 【請求項33】 別のメモリセグメントにおける情報が
    それから保護される前記データベースマニピュレーショ
    ンルーチンは、不信用ルーチンを含むことを特徴とする
    請求項31に記載の方法。
  34. 【請求項34】 前記データベースマニピュレーション
    ルーチンが別のメモリセグメントにおける情報がそれか
    ら保護されるものとして識別されないならば、全てのメ
    モリセグメントに対する完全な読取り及び書込み特権を
    伴う該データベースマニピュレーションルーチンを実行
    する段階を更に具備することを特徴とする請求項24に
    記載の方法。
  35. 【請求項35】 前記データベースマニピュレーション
    ルーチンは、信用ルーチンを含むことを備えていること
    を特徴とする請求項34に記載の方法。
  36. 【請求項36】 前記メモリセグメントは、前記同じメ
    モリアドレス空間に存在することを特徴とする請求項2
    4に記載の方法。
  37. 【請求項37】 前記分割する段階は、前記メモリセグ
    メントを相互に論理的に区分することを含むことを特徴
    とする請求項36に記載の方法。
  38. 【請求項38】 前記選択的実行段階は、前記第1のメ
    モリセグメント以外のメモリセグメントに対する読取り
    専用アクセスを有する処理で前記データベースマニピュ
    レーションルーチンを行うことを含むことを特徴とする
    請求項24に記載の方法。
  39. 【請求項39】 前記処理は、多重スレッド型仮想プロ
    セッサを含むことを特徴とする請求項38に記載の方
    法。
  40. 【請求項40】 前記メモリセグメントの対応するもの
    において複数のデータベースマニピュレーションルーチ
    ンを同時に実行する段階を更に具備し、各データベース
    マニピュレーションルーチンは、それ自身のメモリセグ
    メント以外の全てのメモリセグメントに対する読取り専
    用アクセスを有していることを特徴とする請求項24に
    記載の方法。
  41. 【請求項41】 信用ルーチン及び不信用ルーチンを含
    んでいる複数のデータベースマニピュレーションルーチ
    ン;コアメモリセグメント及び防護メモリセグメントを
    含んでいる複数のメモリセグメントを有している共有メ
    モリアドレス空間;及び前記複数のルーチンにリンクさ
    れた複数の仮想プロセッサを備え、前記仮想プロセッサ
    は、前記コアメモリセグメントにおける信用ルーチンを
    実行するフルアクセス仮想プロセッサと、前記防護メモ
    リセグメントにおける不信用ルーチンを実行する防護仮
    想プロセッサとを含んでいることを特徴とするデータベ
    ースサーバ。
  42. 【請求項42】 前記フルアクセス仮想プロセッサは、
    全てのメモリセグメントに対する読取り/書込みアクセ
    スを有することを特徴とする請求項41に記載のデータ
    ベースサーバ。
  43. 【請求項43】 前記防護仮想プロセッサは、前記コア
    メモリセグメントに対する読取り専用アクセスを有する
    ことを特徴とする請求項41に記載のデータベースサー
    バ。
  44. 【請求項44】 各データベースマニピュレーションル
    ーチンは、前記ルーチンが信用ルーチンであるか不信用
    ルーチンであるかを特定する関連パラメータを有するこ
    とを特徴とする請求項41に記載のデータベースサー
    バ。
  45. 【請求項45】 データベースマニピュレーションルー
    チンを実行するためのスレッドを更に備え、前記スレッ
    ドは、実行される前記データベースマニピュレーション
    ルーチンが信用であるか不信用であるかに基づいて一つ
    の仮想プロセッサから別の仮想プロセッサへ移ることを
    特徴とする請求項41に記載のデータベースサーバ。
  46. 【請求項46】 前記実行されているデータベースマニ
    ピュレーションルーチンが不信用ルーチンであるなら
    ば、前記スレッドは、防護仮想プロセッサに移ることを
    特徴とする請求項45に記載のデータベースサーバ。
  47. 【請求項47】 前記実行されているデータベースマニ
    ピュレーションルーチンが信用ルーチンであるならば、
    前記スレッドは、フルアクセス仮想プロセッサに移るこ
    とを特徴とする請求項45に記載のデータベースサー
    バ。
  48. 【請求項48】 データベースマニピュレーション方法
    を実行するためにリンク型ルーチンを有しているデータ
    ベースサーバに対して、コンピュータ読取り可能媒体上
    に存在している、コンピュータソフトウェアであって、
    前記コンピュータソフトウェアは、コンピュータに (a)クライアントからデータベース照会を受け取る; (b)前記データベース照会をサービスするためにどの
    ルーチンを実行する必要があるかを決定する; (c)コアメモリへの読取り/書込みアクセスで信用ル
    ーチンを実行する;及び (d)コアメモリへの読取り専用アクセスで不信用ルー
    チンを実行する動作を実行させるための命令を備えてい
    ることを特徴とするコンピュータソフトウェア。
  49. 【請求項49】 前記(d)は、実行のスレッドをコア
    メモリへの読取り/書込みアクセスを有している第1の
    プロセッサからコアメモリへの読取り専用アクセスを有
    している別のプロセッサに移行させる命令を備えている
    ことを特徴とする請求項48に記載のコンピュータソフ
    トウェア。
  50. 【請求項50】 前記(d)は、不信用ルーチンを実行
    することに関してコアメモリに対するメモリアクセス許
    可を読取り専用に変更する命令を備えていることを特徴
    とする請求項48に記載のコンピュータソフトウェア。
JP10145398A 1997-04-11 1998-04-13 データベース情報をアクセスする方法 Expired - Lifetime JP4171537B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/835,967 US5895467A (en) 1997-04-11 1997-04-11 Selectively switching memory access permission for manipulating data in a database
US08/835967 1997-04-11

Publications (2)

Publication Number Publication Date
JPH10312299A true JPH10312299A (ja) 1998-11-24
JP4171537B2 JP4171537B2 (ja) 2008-10-22

Family

ID=25270905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10145398A Expired - Lifetime JP4171537B2 (ja) 1997-04-11 1998-04-13 データベース情報をアクセスする方法

Country Status (7)

Country Link
US (1) US5895467A (ja)
EP (1) EP0871134B1 (ja)
JP (1) JP4171537B2 (ja)
AU (1) AU738371B2 (ja)
BR (1) BR9801403A (ja)
CA (1) CA2233537C (ja)
DE (1) DE69818135T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148962A (ja) * 2005-11-30 2007-06-14 Fuji Xerox Co Ltd サブプログラム、そのサブプログラムを実行する情報処理装置、及びそのサブプログラムを実行する情報処理装置におけるプログラム制御方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL126587A (en) 1998-10-15 2004-12-15 Computer Ass Think Inc A method and system for preventing unwanted actions of activatable objects
US6442569B1 (en) * 1999-04-26 2002-08-27 General Electric Company Apparatus and method for data transfer between databases
US6615219B1 (en) * 1999-12-29 2003-09-02 Unisys Corporation Database management system and method for databases having large objects
US7373353B2 (en) * 2002-05-10 2008-05-13 International Business Machines Corporation Reducing index size for multi-level grid indexes
US7143098B2 (en) * 2002-05-10 2006-11-28 International Business Machines Corporation Systems, methods, and computer program products to reduce computer processing in grid cell size determination for indexing of multidimensional databases
US7383275B2 (en) 2002-05-10 2008-06-03 International Business Machines Corporation Methods to improve indexing of multidimensional databases
US7039650B2 (en) * 2002-05-31 2006-05-02 Sypherlink, Inc. System and method for making multiple databases appear as a single database
US8332373B1 (en) * 2002-12-18 2012-12-11 Teradata Us, Inc. Representing user-defined routines with defined data structures
US20050198008A1 (en) * 2004-03-02 2005-09-08 Adler David W. Index exploitation for spatial data
US7389283B2 (en) * 2004-12-07 2008-06-17 International Business Machines Corporation Method for determining an optimal grid index specification for multidimensional data
US7613711B2 (en) * 2005-06-14 2009-11-03 Microsoft Corporation Specification of a hierarchical authorization model for a DBMS—SQL language extensions
US7802000B1 (en) * 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US8856782B2 (en) 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
US8326872B2 (en) * 2008-02-22 2012-12-04 Microsoft Corporation Database sandbox
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8839422B2 (en) 2009-06-30 2014-09-16 George Mason Research Foundation, Inc. Virtual browsing environment
US8904154B2 (en) * 2010-04-16 2014-12-02 Massachusetts Institute Of Technology Execution migration
US8495106B2 (en) * 2011-11-18 2013-07-23 International Business Machines Corporation Write instruction datasource for database write procedure
US9081959B2 (en) 2011-12-02 2015-07-14 Invincea, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
US9582373B2 (en) * 2014-03-31 2017-02-28 Vmware, Inc. Methods and systems to hot-swap a virtual machine
US10601593B2 (en) 2016-09-23 2020-03-24 Microsoft Technology Licensing, Llc Type-based database confidentiality using trusted computing
CN111339560B (zh) * 2020-02-26 2023-06-13 中国邮政储蓄银行股份有限公司 一种数据隔离方法、装置及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
JPH0291747A (ja) * 1988-09-29 1990-03-30 Hitachi Ltd 情報処理装置
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JPH05204656A (ja) * 1991-11-30 1993-08-13 Toshiba Corp スレッド固有データ保持方法
US5361356A (en) * 1992-03-06 1994-11-01 International Business Machines Corporation Storage isolation with subspace-group facility
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
JPH0784851A (ja) * 1993-09-13 1995-03-31 Toshiba Corp 共有データ管理方法
US5572673A (en) * 1993-12-01 1996-11-05 Sybase, Inc. Secure multi-level system for executing stored procedures
US5566321A (en) * 1993-12-13 1996-10-15 Cray Research, Inc. Method of managing distributed memory within a massively parallel processing system
US5651139A (en) * 1993-12-23 1997-07-22 International Business Machines Corporation Protected system partition read/write access on a SCSI controlled DASD
US5577240A (en) * 1994-12-07 1996-11-19 Xerox Corporation Identification of stable writes in weakly consistent replicated databases while providing access to all writes in such a database
US5692182A (en) * 1995-10-05 1997-11-25 International Business Machines Corporation Bufferpool coherency for identifying and retrieving versions of workfile data using a producing DBMS and a consuming DBMS

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148962A (ja) * 2005-11-30 2007-06-14 Fuji Xerox Co Ltd サブプログラム、そのサブプログラムを実行する情報処理装置、及びそのサブプログラムを実行する情報処理装置におけるプログラム制御方法

Also Published As

Publication number Publication date
EP0871134A2 (en) 1998-10-14
EP0871134A3 (en) 2001-01-10
JP4171537B2 (ja) 2008-10-22
MX9802716A (es) 1998-12-31
CA2233537A1 (en) 1998-10-11
CA2233537C (en) 2007-06-05
US5895467A (en) 1999-04-20
AU5943898A (en) 1998-10-15
AU738371B2 (en) 2001-09-13
EP0871134B1 (en) 2003-09-17
DE69818135D1 (de) 2003-10-23
DE69818135T2 (de) 2004-07-22
BR9801403A (pt) 1999-03-02

Similar Documents

Publication Publication Date Title
JP4171537B2 (ja) データベース情報をアクセスする方法
US5463774A (en) Object oriented computer architecture using directory objects
US5675725A (en) Computer backup system operable with open files
US5297283A (en) Object transferring system and method in an object based computer operating system
US5197148A (en) Method for maintaining data availability after component failure included denying access to others while completing by one of the microprocessor systems an atomic transaction changing a portion of the multiple copies of data
US5321841A (en) System for determining the rights of object access for a server process by combining them with the rights of the client process
US5574903A (en) Method and apparatus for handling request regarding information stored in a file system
US7502872B2 (en) Method for out of user space block mode I/O directly between an application instance and an I/O adapter
US5136712A (en) Temporary object handling system and method in an object based computer operating system
US7849228B2 (en) Mechanisms for creation/deletion of linear block address table entries for direct I/O
JP2003186746A (ja) ハードウェア実施セマフォおよび他の同様のハードウェア実施直列化および順位付け機構を使用する、コンピュータ内でのメモリへのアクセスのハードウェア実施制御の方法
US5903720A (en) Object system capable of using different object authorization systems
JPH11505653A (ja) 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム
JPH1115793A (ja) 資源の保全性を保護する方法
US20070005815A1 (en) System and method for processing block mode I/O operations using a linear block address translation protection table
US20060265525A1 (en) System and method for processor queue to linear block address translation using protection table control based on a protection domain
Popek et al. Issues in kernel design
Ubell The intelligent database machine (idm)
JPH07200317A (ja) 操作権管理装置
JP3585510B2 (ja) プログラム実行管理装置及びプログラム実行管理方法
Valencia An overview of the VSTa microkernel
AU695339C (en) Computer backup system operable with open files
PATEL Operating System
MXPA98002716A (en) Access information to the base of da
Taylor The IBM System/38: A High-Level Machine^

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 19980513

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080811

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

EXPY Cancellation because of completion of term