JP2006172067A - データベース管理方法、システム及びプログラム - Google Patents
データベース管理方法、システム及びプログラム Download PDFInfo
- Publication number
- JP2006172067A JP2006172067A JP2004362616A JP2004362616A JP2006172067A JP 2006172067 A JP2006172067 A JP 2006172067A JP 2004362616 A JP2004362616 A JP 2004362616A JP 2004362616 A JP2004362616 A JP 2004362616A JP 2006172067 A JP2006172067 A JP 2006172067A
- Authority
- JP
- Japan
- Prior art keywords
- database
- processing
- shared table
- shared
- request
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 共用表への処理を含むデータベース処理を効率的に行うことが可能な技術を提供する。
【解決手段】 複数のデータベース処理装置から参照可能な共用表を含むデータベースへの処理を管理するデータベース管理方法において、データベース中の表の属性と処理種別に応じて割り当てられているデータベース処理装置を示す表情報を記憶装置から参照して、データベースへの処理要求が共用表への処理を含むかに応じて当該処理要求を実行するデータベース処理装置を選択し、その選択したデータベース処理装置に対してデータベースへの処理要求を行い、前記データベースの処理要求に従って、前記選択されたデータベース処理装置でデータベースへのアクセスを行うものである。
【選択図】図1
【解決手段】 複数のデータベース処理装置から参照可能な共用表を含むデータベースへの処理を管理するデータベース管理方法において、データベース中の表の属性と処理種別に応じて割り当てられているデータベース処理装置を示す表情報を記憶装置から参照して、データベースへの処理要求が共用表への処理を含むかに応じて当該処理要求を実行するデータベース処理装置を選択し、その選択したデータベース処理装置に対してデータベースへの処理要求を行い、前記データベースの処理要求に従って、前記選択されたデータベース処理装置でデータベースへのアクセスを行うものである。
【選択図】図1
Description
本発明はデータベースへのアクセスを管理するデータベース管理技術に関し、特に複数のバックエンドサーバから参照可能なデータベース格納領域中の表である共用表を含むデータベースへのアクセスを管理するデータベース管理技術に適用して有効な技術に関するものである。
複数のサーバで構成するデータベース管理システム(以下、DBMSと記述)としては、シェアードディスク方式とシェアードナッシング方式がある。これらは、非特許文献1に記載されて知られている。シェアードディスク方式は、全てのサーバが全てのデータベースにアクセスできるため、サーバ間の負荷が分散されるが、サーバ間の同期制御が必要である。シェアードナッシング方式は、各サーバが割り当てられたデータベース格納領域しかアクセスしないため、参照頻度が高いデータベース格納領域を割り当てた特定のサーバに負荷が集中するが、サーバ間の同期制御が不要である。
Sohan DeMel著「Oracle9i real Application clusters - Cache Fusion Delivers Scalability, An Oracle White Paper」Oracle Corporation, 2001年5月, P.7-9, 12-13
前記シェアードディスク方式では、アクセスパスの切り替えによって結合検索を行うことが可能であるため、結合検索の際にシェアードナッシング方式程の負荷は発生しないが、データベースの内容が更新された場合には、各バックエンドサーバのバッファ上のデータを更新する同期制御が必要になる。
一方、シェアードナッシング方式では、参照頻度が高いが複数のデータベース格納領域に分割して格納することができない表と他の表の結合検索時には、バックエンドサーバ間の検索データのコピー及びコピー先への負荷が発生するため、特定のバックエンドサーバに負荷が集中したり、DBMS中のサーバ間のデータ転送量が大きいという課題が生じる。
ここで、参照頻度が高い表を任意のバックエンドサーバから参照可能な共用表とした場合、その共用表についてはバックエンドサーバ間の検索データのコピーを行う必要がなくなるが、共用表の更新処理が行われると、その更新から同期制御までの間、当該更新処理を行ったバックエンドサーバのみが共用表へアクセス可能な状態となり、共用表への処理内容によって共用表にアクセス可能なバックエンドサーバが変わるので、共用表への処理を行う際に、共用表へのアクセスを行うバックエンドサーバを固定できないという課題が生じる。
本発明の目的は上記問題を解決し、共用表への処理を含むデータベース処理を効率的に行うことが可能な技術を提供することにある。
本発明は、複数のデータベース処理装置から参照可能な共用表を含むデータベースへの処理を管理するデータベース管理システムにおいて、データベースへの処理要求が共用表への処理を含むかに応じて選択したデータベース処理装置によりデータベースへのアクセスを行うものである。
本発明のデータベース管理システムでは、SQL(Structured Query Language)文を受け付け、SQL文の解析処理、最適化処理、データベースへのアクセス方法の決定、及びバックエンドサーバに実行内容を指示するフロントエンドサーバと、フロントサーバからの指示に基づいてデータベースのアクセス、排他制御、演算処理を行うバックエンドサーバと、特定のバックエンドサーバからアクセス可能なデータベース格納領域をネットワークで接続している(前記サーバは計算機や情報処理装置、またはその様な処理を実施するプログラムやオブジェクトでも良い)。
本発明では、参照頻度が高い表を任意のバックエンドサーバから参照可能な共用表とし、フロントエンドサーバがデータベースへの処理要求を受け取ると、データベース中の表の属性と処理種別に応じて割り当てられているデータベース処理装置を示す表情報を記憶装置から参照して、その処理要求で処理される表の属性(共用表や分割表等)や処理種別(参照処理や更新処理)に応じて、それらの表へのアクセスを行うバックエンドサーバを選択し、その選択したバックエンドサーバに対してデータベースへの処理要求を行う。前記処理要求を受け取ったバックエンドサーバは、その処理要求の内容に従って、データベース処理を実行し、データベースへのアクセスを行う。
例えば、前記処理要求が分割表と共用表との結合検索を行うものである場合、フロントエンドサーバは、その分割表の参照が可能なバックエンドサーバの名称と共用表の参照が可能なバックエンドサーバの名称とを前記表情報から取得して、分割表及び共用表を共に参照可能なバックエンドサーバを抽出した後、その抽出した各バックエンドサーバで参照可能な分割表の分割データと共用表との結合検索を行う為の処理要求を各バックエンドサーバに送って結合検索の実行を指示する。
更に本発明では、共用表の更新処理に応じて、選択するバックエンドサーバを変更し、共用表の更新から同期制御までの間、すなわち共用表が表排他中である場合には、その更新処理を行った単一のバックエンドサーバに各バックエンドサーバの分割表等の表データを転送して共用表データとの結合処理を行う。また、共用表が表排他中ではない場合には、その共用表を複数のバックエンドサーバによりアクセスして、各バックエンドサーバの表データと共用表データとの結合処理を行う。
本発明によれば、共用表への処理を含むデータベース処理を効率的に行うことが可能である。
以下に複数のバックエンドサーバから参照可能な共用表を含むデータベースへの処理を管理する一実施形態のデータベース管理システムについて説明する。
図1は本実施形態の分割表と共用表の結合検索例を示す図である。図1では、複数のデータベース格納領域に分割格納した表(分割表)と、表排他中ではない場合に任意のバックエンドサーバから参照可能なデータベース格納領域中の表(共用表)の結合検索例を表している。
図1に示す様にフロントエンドサーバ1は、データアクセス要求制御部2、共用表処理制御部3、表情報4及び共用表排他情報5を備え、バックエンドサーバa6、バックエンドサーバb7及びバックエンドサーバc8は、データ転送制御部9、共用表排他情報5、共用表排他制御部10、データアクセス制御部11及び表情報4と、バッファa12、バッファb13またはバッファc14のいずれかとをそれぞれ備えている。
表a18と表b20の結合検索を行う場合、まずフロントエンドサーバ1からの指示により、バックエンドサーバa6、バックエンドサーバb7及びバックエンドサーバc8で表a18にアクセスした後、アクセス結果のデータを、バックエンドサーバa6中のバッファa12、バックエンドサーバb7中のバッファb13、バックエンドサーバc8中のバッファc14に読み込む。また表bのデータをバッファa12、バッファb13、バッファc14中に読み込み済みの場合には、各バッファ中のデータを基に各バックエンドサーバで表a18のデータと表b20のデータの結合処理を行い、結合結果をフロントエンドサーバ1に返却する。
各バックエンドサーバで表a18と表b20の結合処理を行うことで、並列実行によるSQL実行の性能が向上し、特定のバックエンドサーバへの負荷の集中を抑止でき、表a18のデータを1つのバックエンドサーバに集める為のデータ転送量を減らす効果が出る。
ここで、表b20が表排他中の場合には、各バックエンドサーバから表b20の割り当てバックエンドサーバに表a18のアクセス結果のデータを転送した後、表b20の割り当てバックエンドサーバで表a18と表b20のデータの結合処理を行い、結合結果をフロントエンドサーバ1に返却する。
図2は本実施形態のDBMS全体のハードウェア構成を示す図である。図2に示す様に本実施形態のDBMSは、データベース格納領域を制御するコンピュータ32と、磁気記憶装置等のデータベース格納領域15、16、17、19と、データベースを使用する為の指示情報を入力し、データベースの内容を表示する為の端末装置31とにより構成される。
コンピュータ32は、CPU33とメモリ34とを備え、メモリ34には、データベース格納領域15、16、17、19へのアクセス方法を決定した後、バックエンドサーバ36に実行内容を指示するフロントエンドサーバ35としてコンピュータ32を機能させる為のプログラムと、データベース格納領域15、16、17、19を管理するバックエンドサーバ36としてコンピュータ32を機能させる為のプログラムが格納される。
図3は本実施形態のDBMS全体の処理概要を示す図である。図3の様に本実施形態のDBMSでは、クライアントa40またはクライアントb41でユーザの要求を受け付け、フロントエンドサーバ50へ要求を転送した後、フロントエンドサーバ50で、SQL文の解析処理、最適化処理、表A−a80、表A−b81、表A−c82、表B83へのアクセス方法の決定、及びバックエンドサーバa60、バックエンドサーバb61、バックエンドサーバc62への実行内容の指示を行う。
表のデータは、それぞれデータベース格納領域a70、データベース格納領域b71、データベース格納領域c72、データベース格納領域d73中の表A−a80、表A−b81、表A−c82、表B83に格納されており、バックエンドサーバa60、バックエンドサーバb61、バックエンドサーバc62を介してフロントエンドサーバ50が取得する。最後に検索結果をクライアントa40またはクライアントb41に返却して検索を終了する。
各サーバはネットワーク90で接続されている。表A−a80、表A−b81、表A−c82は、1つの表をデータベース格納領域a70、データベース格納領域b71、データベース格納領域c72に分割して格納した分割表であり、表B83は、バックエンドサーバa60、バックエンドサーバb61、バックエンドサーバc62から参照可能な共用表である。
図4は本実施形態のフロントエンドサーバ及びバックエンドサーバの構成を示す図である。図4に示す様に本実施形態のフロントエンドサーバ50は、データアクセス要求制御部510と、共用表処理制御部530とを有している。
データアクセス要求制御部510は、データベース中の表の属性と処理種別に応じて割り当てられているバックエンドサーバを示す表情報550をメモリ上で参照して、データベースへの処理要求が共用表への処理を含むかに応じて当該処理要求を実行するバックエンドサーバを選択し、その選択したバックエンドサーバに対してデータベースへの処理要求を行う処理部である。
共用表処理制御部530は、データベースへの処理要求が共用表及び分割表の処理を要求するものである場合に、複数のバックエンドサーバでのデータベース処理を設定し、データベースへの処理要求が共用表及び分割表以外の表の処理を要求するものである場合に、単一のバックエンドサーバでのデータベース処理を設定する処理部である。
フロントエンドサーバ50をデータアクセス要求制御部510及び共用表処理制御部530として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
またバックエンドサーバは、データ転送制御部610と、共用表排他制御部620と、データアクセス制御部640とを有している。
データ転送制御部610は、バックエンドサーバ間での表データの転送を制御する処理部である。共用表排他制御部620は、共用表に表排他を掛けた場合に、プロセス固有領域中の共用表排他情報580の更新を行う処理部である。データアクセス制御部640は、フロントエンドサーバ50から受け取ったデータベース処理要求に従ってデータベースへのアクセスを行う処理部である。
バックエンドサーバをデータ転送制御部610、共用表排他制御部620及びデータアクセス制御部640として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
フロントエンドサーバ50では、必要となる表の表情報をデータアクセス要求制御部510を介して共用領域中の表情報550で取得し、共用表の排他情報を、データアクセス要求制御部510を介してプロセス固有領域中の共用表排他情報580で取得する。また共用表を含む結合検索の実行バックエンドサーバ数を共用表処理制御部530で設定する。
バックエンドサーバでは、共用表を含む結合検索時の共用表の表排他情報をプロセス固有領域中の共用表排他情報580で取得した後、その内容に応じた表データの転送方法をデータ転送制御部610で設定する。共用表に表排他を掛けた場合には、共用表排他制御部620を介してプロセス固有領域中の共用表排他情報580の更新を行う。必要となる表の情報をデータアクセス制御部640を介して表情報550で取得し、必要となる表のデータをデータアクセス制御部640を介してバッファ650で取得する。
図5は本実施形態の表情報550の一例を示す図である。図5に示す様に表情報550は、表名551をキーとし、表が共用表であるかどうかを示す共用表属性552の情報と、表の更新に割り当てたバックエンドサーバを示す割り当てバックエンドサーバ名553の情報と、表の参照に割り当てたバックエンドサーバを示す参照可能バックエンドサーバ名554の情報を保持している。
図5に記載されている様に、表A−aでは、共用表属性が「NO」、割り当てバックエンドサーバが「バックエンドサーバa」、参照可能バックエンドサーバが「バックエンドサーバa」であり、表A−bでは、共用表属性が「NO」、割り当てバックエンドサーバが「バックエンドサーバb」、参照可能バックエンドサーバが「バックエンドサーバb」である。また、表A−cでは、共用表属性が「NO」、割り当てバックエンドサーバが「バックエンドサーバc」、参照可能バックエンドサーバが「バックエンドサーバc」であり、表Bでは、共用表属性が「YES」、割り当てバックエンドサーバが「バックエンドサーバb」、参照可能バックエンドサーバが「バックエンドサーバa」、「バックエンドサーバb」、「バックエンドサーバc」である。
図6は本実施形態の共用表排他情報580の一例を示す図である。図6に示す様に共用表排他情報580は、排他状態の共用表ID581を保持しており、表排他がかかった共用表が1つあり、その共用表のIDが「0x00009999」であるとき、共用表排他情報580の排他状態の共用表ID581には「0x00009999」が設定される。
本実施形態のDBMSでは、割り当てバックエンドサーバで共用表の更新を行う際に、更新開始から同期制御の終了までの間を表排他として、その共用表のIDを共用表排他情報580に設定し、他のバックエンドサーバからの当該共用表へのアクセスの抑止を行うものとする。
よって、本実施形態では、結合検索で結合の行われる共用表のIDが共用表排他情報580に保持され、その共用表が表排他中であることを示している場合には、その共用表と結合される表の表データを、排他を行った割り当てバックエンドサーバへ転送するデータ転送の設定を行う。
図7は本実施形態の共用表を含む結合処理の処理手順を示すフローチャートである。図7に示す様に、共用表の結合処理を含む処理要求をクライアントから受け付けると、ステップ501で共用表処理制御部530は、前記処理要求として入力されたSQL文の内容を調べ、その処理を複数のバックエンドサーバで実行するかどうかを設定する。
ステップ502でデータアクセス要求制御部510は、検索や更新の為にアクセスするバックエンドサーバを選択した後、その選択したバックエンドサーバに検索または更新の為のアクセスを要求する。
ステップ503でデータアクセス制御部640は、前記入力されたSQLからの要求処理種別に従って、ステップ502で選択したバックエンドサーバでデータのアクセスを行う。
ステップ504では、実行しているSQL中の全表へのアクセスが完了したかの判定を行う。その結果、アクセスが完了済みではない場合にはアクセスしていない表に対して、ステップ503以下の処理を行う。一方で、アクセス完了済みの場合には、共用表を含む結合処理を終了する。
ステップ503でデータアクセス制御部640は、前記入力されたSQLからの要求処理種別に従って、ステップ502で選択したバックエンドサーバでデータのアクセスを行う。
ステップ504では、実行しているSQL中の全表へのアクセスが完了したかの判定を行う。その結果、アクセスが完了済みではない場合にはアクセスしていない表に対して、ステップ503以下の処理を行う。一方で、アクセス完了済みの場合には、共用表を含む結合処理を終了する。
図8は本実施形態の共用表処理設定の処理手順を示すフローチャートである。図8に示す様にフロントエンドサーバ50内の共用表処理制御部530は、入力されたSQL文が共用表と分割表との結合検索である場合に、複数のバックエンドサーバでの結合検索を設定し、入力されたSQL文が共用表と分割表以外の表との結合検索である場合に、単一のバックエンドサーバでの結合検索を設定する処理を行う。
フロントエンドサーバ50でSQL文を受け取ると、ステップ531で共用表処理制御部530は、そのSQL文に共用表の結合検索が含まれているかどうかを調べ、共用表の結合検索が含まれている場合には、その入力されたSQL文から結合元表種別を取得した後、結合先表の表種別を格納する領域として予め確保しておいたメモリ領域に前記取得した結合元表種別を設定する。ここで、結合先表とは、SQL文に共用表の結合検索が含まれているかどうかを調べた際に検出した共用表を表すものとし、結合元表は、結合先表の結合相手となる表を示すものとする。
ステップ532では、入力されたSQL文から取得した結合元表種別を参照し、結合元表が分割表であるか若しくは共用表であるかの判定を行う。その結果、結合元表が分割表の場合にはステップ533へ進み、複数のバックエンドサーバで結合検索を行うことを示す情報をメモリ上の所定領域に格納して共用表処理制御部530の処理を終了する。
またステップ532で判定した結果、結合元表が共用表である場合にはステップ534へ進み、1バックエンドサーバで結合検索を行うことを示す情報をメモリ上の所定領域に格納して共用表処理制御部530の処理を終了する。
図9は本実施形態のデータアクセス要求制御処理の処理手順を示すフローチャートである。図9に示す様にフロントエンドサーバ50内のデータアクセス要求制御部510は、検索や更新の為にアクセスするバックエンドサーバを選択した後、選択したバックエンドサーバに検索または更新の為のアクセスを要求する処理を行う。
データアクセス要求が行われるとステップ511でデータアクセス要求制御部510は、アクセス要求の行われている表の情報を表情報550から参照する。
ステップ512では、ステップ511で参照した表情報550の共用表属性552による判定を行う。その結果、その表が共用表ではない場合にはステップ516に進み、表情報550の割り当てバックエンドサーバ名553で示されたサーバを、アクセスするバックエンドサーバに選択する。
一方、表情報550の共用表属性552による判定の結果、その表が共用表である場合にはステップ513に進み、アクセス要求されている共用表の排他情報を共用表排他情報580から参照した後、ステップ514ではその共用表が排他中であるかどうかの判定を行う。その結果、アクセス要求されている共用表が排他中の場合にはステップ516へ進み、表情報550の割り当てバックエンドサーバ名553で示されたサーバを、アクセスするバックエンドサーバに選択する。
一方で、アクセス要求されている共用表が排他中ではない場合にはステップ515へ進み、入力されたSQL文から要求処理種別の判定を行う。その結果、要求処理種別が更新要求である場合にはステップ518へ進み、排他中ではない共用表の更新時にアクセスするサーバの選択処理を行う。その後、ステップ522では、ステップ518で選択した、アクセスするバックエンドサーバにアクセス要求を行って、データアクセス要求制御部510の処理を終了する。
一方、要求処理種別の判定を行った結果、要求処理種別が参照要求である場合にはステップ517へ進み、その共用表が結合先表であるかの判定を行う。すなわち、ステップ531の処理で結合先表の表種別を格納するメモリ領域に結合元表種別を設定しているので、当該共用表の表種別を格納するメモリ領域を参照し、そのメモリ領域に表種別が設定されている場合にはその共用表が結合先表であると判定し、前記メモリ領域に表種別が設定されていない場合にはその共用表が結合先表ではないと判定する。
前記判定の結果、要求処理種別が参照要求である共用表が結合先表である場合にはステップ519へ進み、その結合元表のアクセスに使用した全てのバックエンドサーバを、アクセスするサーバに選択する。
一方、前記判定の結果、要求処理種別が参照要求である共用表が結合先表ではない場合にはステップ520へ進み、表情報に参照可能なバックエンドサーバとして設定しているバックエンドサーバから、任意のバックエンドサーバをアクセスするサーバに選択する。
その後、ステップ521では、実行しているSQL中の表のアクセスするバックエンドサーバが全て設定済みであるかの判定を行う。その結果、設定済みではないものがある場合にはアクセスするバックエンドサーバが未設定の表に対して、ステップ511以下の処理を行う。一方で、全て設定済みである場合にはステップ522へ進み、ステップ516、ステップ518、ステップ519またはステップ520で選択した、アクセスするバックエンドサーバにデータアクセス要求制御部510がアクセス要求を行って、データアクセス要求制御部510の処理を終了する。
図10は本実施形態のデータアクセス制御処理の処理手順を示すフローチャートである。図10に示す様にバックエンドサーバ60内のデータアクセス制御部640は、データアクセス要求制御部510からのアクセス要求に従ってデータへのアクセスを行う。
まずステップ6401では、入力されたSQLから要求処理種別の判定を行う。その結果、要求処理種別が参照要求である場合にはステップ6402へ進み、アクセス要求された表のデータが、選択したアクセスするバックエンドサーバのバッファにあるかどうかの判定をステップ6402で行い、ステップ6404の処理に進む。バッファにデータを読み込み済みではない場合には、アクセス要求された表からデータをバッファにステップ6403で読み込み、ステップ6404の処理に進む。
バッファにデータがある場合、入力されたSQLから、アクセス要求された表を結合元表とする結合処理があるかの判定をステップ6404で行う。その結果、アクセス要求された表を結合元表とする結合処理が無い場合には、ステップ6406でバッファ上のデータを元に参照結果を上位処理に返却し、データアクセス制御部640の処理を終了する。
一方、アクセス要求された表を結合元表とする結合処理がある場合には、ステップ6405でデータ転送方法制御処理を行い、ステップ6407でバッファのデータを元にした参照結果を、データアクセス要求制御部510で選択した結合先表をアクセスするバックエンドサーバに転送し、データアクセス制御部640の処理を終了する。
またステップ6401で要求処理種別の判定を行った結果、要求処理種別が更新要求だった場合には、アクセス要求された表のデータが、選択したアクセスするバックエンドサーバのバッファにあるかどうかの判定をステップ6408で行い、ステップ6410の処理に進む。バッファにデータを読み込み済みではない場合には、アクセス要求された表からデータをバッファにステップ6409で読み込み、ステップ6410の処理に進む。バッファにデータがある場合、バッファ上のアクセス要求された表のデータをステップ6410で更新する。
ステップ6411では、アクセス要求された表の情報を表情報550から参照し、ステップ6412では、ステップ6411で参照した表情報550の共用表属性による判定を行う。その結果、アクセス要求された表が共用表ではない場合にはステップ6414へ進み、選択したアクセスするバックエンドサーバでデータベース格納領域上のアクセス要求された表データの更新を行って、データアクセス制御部640の処理を終了する。
一方で、アクセス要求された表が共用表の場合にはステップ6413へ進み、ステップ6411で参照した表情報550から、データアクセス要求制御部510で選択したバックエンドサーバがアクセス要求された表の割り当てバックエンドサーバかの判定を行う。割り当てバックエンドサーバではない場合には、データアクセス制御部640の処理を終了する。
一方で、前記判定の結果、データアクセス要求制御部510で選択したバックエンドサーバがアクセス要求された表の割り当てバックエンドサーバではある場合にはステップ6414へ進み、選択したアクセスするバックエンドサーバでデータベース格納領域上のアクセス要求された表データの更新を行って、データアクセス制御部640の処理を終了する。
図11は本実施形態の共用表排他情報処理の処理手順を示すフローチャートである。図11に示す様にバックエンドサーバ60内の共用表排他制御部620は、共用表の表排他情報を管理し、割り当てバックエンドサーバで共用表の更新を行う際に、更新開始から同期制御の終了までの間を表排他として、その共用表のIDを共用表排他情報580に設定し、他のバックエンドサーバからの当該共用表へのアクセスの抑止を行う。
表排他を行うSQLを実行すると、ステップ621では、表排他を行う表の情報を表情報550から参照する。ステップ622では、ステップ621で参照した表情報550の共用表属性による判定を行う。その結果、表排他を行う表が共用表ではない場合には共用表排他制御部620の処理を終了する。一方で、表排他を行う表が共用表の場合には、共用表排他情報580に表排他を行う表の表IDをステップ623で追加し、共用表排他制御部620の処理を終了する。
なお、同期制御を行って各バックエンドサーバ60内のバッファの共用表データを更新後の共用表の内容に同期させた場合には、共用表排他情報580中の当該共用表のIDの削除を行うものとする。
図12は本実施形態のデータ転送方法制御処理の処理手順を示すフローチャートである。図12では、データアクセス制御部640のステップ6405のデータ転送方法制御処理で結合相手表の共用表へのデータ転送方法を設定する処理を表している。
ステップ64051で、入力されたSQLから結合先表の表種別を取得し、ステップ64052では、ステップ64051で取得した表種別から、結合先表が共用表かどうかの判定を行う。その結果、結合先表が共用表ではない場合にはステップ6405の処理を終了する。
一方で、結合先表が共用表の場合にはステップ64053に進み、結合先表の表排他情報を共用表排他情報580から参照する。ステップ64054では、ステップ64053で参照した共用表排他情報580から結合先の共用表が表排他中かの判定を行う。表排他が行われていない場合にはステップ6405の処理を終了する。
表排他が行われている場合には、共用表処理制御部530で複数バックエンドサーバでの結合検索が設定されているかの判定をステップ64055で行う。複数バックエンドサーバでの結合検索が設定されていない場合には、ステップ6405の処理を終了する。複数バックエンドサーバでの結合検索が設定されている場合には、1バックエンドサーバでの結合検索をステップ64056で設定し、ステップ6405の処理を終了する。
図13は本実施形態のインデクス列の更新を含む共用表更新処理の一例を示す図である。インデクス更新を伴う共用表更新が複数トランザクションに跨ると、各バックエンドサーバにあるバッファのインデクスページ中のインデクスキー値に対する更新順序が異なることがある。更に、各バックエンドサーバがバッファから落ちたデータをデータベース格納領域中の表から読み込むと、バッファのデータ構造が各バックエンドサーバで大幅に異なる。そのため、インデクス更新を伴う共用表更新は、更新順序を保つ為に共用表に表排他を掛けて1バックエンドサーバで行わなければならない。
よって、インデクスを伴う共用表の更新を行う場合、データアクセス要求制御部92で、更新する共用表108の排他情報を共用表排他情報93から参照し、共用表108が排他中だった場合には、フロントエンドサーバ91からの指示で、共用表108の割り当てバックエンドサーバであるバックエンドサーバb95でバッファb104中のインデクスページb98と、データページb101中のインデクスデータの更新を行う。
図14は本実施形態の排他中ではない共用表の更新時にアクセスするサーバの選択処理の処理手順を示すフローチャートである。図14では、データアクセス要求制御部510内の、排他中ではない共用表の更新時にアクセスするサーバの選択処理(ステップ518)で、共用表の更新時にアクセスするサーバを選択する処理を表している。
排他中ではない共用表の更新時にアクセスするサーバの選択を要求されたステップ518の処理では、入力されたSQL文がINSERT、DELETE、またはインデクス更新を伴うUPDATE文であるかの判定をステップ5181で行う。
その結果、INSERT、DELETE、またはインデクス更新を伴うUPDATE文である場合には、ステップ5182で共用表に排他をかけた後、ステップ5183では、割り当てバックエンドサーバをアクセスするサーバに選択して、ステップ518の処理を終了する。
一方で、INSERT、DELETE、またはインデクス更新を伴うUPDATE文ではない場合には、ステップ5184で表情報に参照可能なバックエンドサーバとして設定している全てのバックエンドサーバをアクセスするサーバに選択して、ステップ518の処理を終了する。
以上説明した様に本実施形態のデータベース管理システムによれば、データベースへの処理要求が共用表への処理を含むかに応じて選択したデータベース処理装置によりデータベースへのアクセスを行うので、共用表への処理を含むデータベース処理を効率的に行うことが可能である。
1…フロントエンドサーバ、2…データアクセス要求制御部、3…共用表処理制御部、4…表情報、5…共用表排他情報、6…バックエンドサーバa、7…バックエンドサーバb、8…バックエンドサーバc、9…データ転送制御部、10…共用表排他制御部、11…データアクセス制御部、12…バッファa、13…バッファb、14…バッファc、15…データベース格納領域a、16…データベース格納領域b、17…データベース格納領域c、18…表a、19…データベース格納領域d、20…表b、21…共用表データ、22〜24…分割表データ、31…端末装置、32…コンピュータ、33…CPU、34…メモリ、35…フロントエンドサーバ、36…バックエンドサーバ、40…クライアントa、41…クライアントb、50…フロントエンドサーバ、60…バックエンドサーバa、61…バックエンドサーバb、62…バックエンドサーバc、70…データベース格納領域a、71…データベース格納領域b、72…データベース格納領域c、73…データベース格納領域d、80…表A−a、81…表A−b、82…表A−c、83…表B、90…ネットワーク、510…データアクセス要求制御部、530…共用表処理制御部、550…表情報、580…共用表排他情報、610…データ転送制御部、620…共用表排他制御部、640…データアクセス制御部、650…バッファ、551…表名、552…共用表属性、553…割り当てバックエンドサーバ名、554…参照可能バックエンドサーバ名、581…排他状態の共用表ID、91…フロントエンドサーバ、92…データアクセス要求制御部、93…共用表排他情報、94…バックエンドサーバa、95…バックエンドサーバb、96…バックエンドサーバc、97…インデクスページa、98…インデクスページb、99…インデクスページc、100…データページa、101…データページb、102…データページc、103…バッファa、104…バッファb、105…バッファc、106…データベース格納領域、107…インデクス、108…共用表、109…インデクスデータ、110…共用表データ。
Claims (10)
- 複数のデータベース処理装置から参照可能な共用表を含むデータベースへの処理を管理するデータベース管理方法において、
データベース中の表の属性と処理種別に応じて割り当てられているデータベース処理装置を示す表情報を記憶装置から参照して、データベースへの処理要求が共用表への処理を含むかに応じて当該処理要求を実行するデータベース処理装置を選択し、その選択したデータベース処理装置に対してデータベースへの処理要求を行い、前記データベースの処理要求に従って、前記選択されたデータベース処理装置でデータベースへのアクセスを行うことを特徴とするデータベース管理方法。 - データベースへの処理要求が共用表及び分割表の処理を要求するものである場合に、複数のデータベース処理装置でのデータベース処理を設定し、データベースへの処理要求が共用表及び分割表以外の表の処理を要求するものである場合に、単一のデータベース処理装置でのデータベース処理を設定することを特徴とする請求項1に記載されたデータベース管理方法。
- 共用表が排他処理中である場合に、当該共用表の更新処理に割り当てられた割り当てデータベース処理装置を選択して、その選択した割り当てデータベース処理装置に対してデータベースへの処理要求を行うことを特徴とする請求項1または請求項2のいずれかに記載されたデータベース管理方法。
- 共用表が排他処理中ではなくデータベースへの処理要求に含まれる共用表への処理が更新処理である場合に、当該共用表の更新処理に割り当てられた割り当てデータベース処理装置を選択して、その選択した割り当てデータベース処理装置に対してデータベースへの処理要求を行うことを特徴とする請求項1乃至請求項3のいずれか1項に記載されたデータベース管理方法。
- 共用表が排他処理中ではなくデータベースへの処理要求に含まれる共用表への処理が参照処理である場合に、共用表を参照可能な複数のデータベース処理装置を選択して、その選択したデータベース処理装置に対してデータベースへの処理要求を行うことを特徴とする請求項1乃至請求項4のいずれか1項に記載されたデータベース管理方法。
- 共用表の更新処理に割り当てられた割り当てデータベース処理装置で共用表の更新を行う際に、共用表の更新開始から各データベース処理装置のバッファ中の共用表データに対する同期制御の終了までの間を表排他とすることを示す共用表排他情報を記憶装置に設定することを特徴とする請求項1乃至請求項5のいずれか1項に記載されたデータベース管理方法。
- 共用表への処理を行う際に前記共用表排他情報を参照し、当該共用表の共用表排他情報が設定されている場合にその共用表が排他処理中であると判定することを特徴とする請求項6に記載されたデータベース管理方法。
- 更新処理の行われる共用表の識別情報を記憶装置に格納することにより前記共用表排他情報の設定を行うことを特徴とする請求項6または請求項7のいずれかに記載されたデータベース管理方法。
- 複数のデータベース処理装置から参照可能な共用表を含むデータベースへの処理を管理するデータベース管理システムにおいて、
データベース中の表の属性と処理種別に応じて割り当てられているデータベース処理装置を示す表情報を記憶装置から参照して、データベースへの処理要求が共用表への処理を含むかに応じて当該処理要求を実行するデータベース処理装置を選択し、その選択したデータベース処理装置に対してデータベースへの処理要求を行うデータアクセス要求制御部と、前記データベースの処理要求に従って、前記選択されたデータベース処理装置でデータベースへのアクセスを行うデータアクセス制御部とを備えることを特徴とするデータベース管理システム。 - 複数のデータベース処理装置から参照可能な共用表を含むデータベースへの処理を管理するデータベース管理方法をコンピュータに実行させる為のプログラムにおいて、
データベース中の表の属性と処理種別に応じて割り当てられているデータベース処理装置を示す表情報を記憶装置から参照して、データベースへの処理要求が共用表への処理を含むかに応じて当該処理要求を実行するデータベース処理装置を選択し、その選択したデータベース処理装置に対してデータベースへの処理要求を行い、前記データベースの処理要求に従って、前記選択されたデータベース処理装置でデータベースへのアクセスを行うデータベース管理方法をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004362616A JP2006172067A (ja) | 2004-12-15 | 2004-12-15 | データベース管理方法、システム及びプログラム |
US11/302,174 US7526469B2 (en) | 2004-12-15 | 2005-12-14 | Method and system of database management with shared area |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004362616A JP2006172067A (ja) | 2004-12-15 | 2004-12-15 | データベース管理方法、システム及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006172067A true JP2006172067A (ja) | 2006-06-29 |
Family
ID=36672763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004362616A Pending JP2006172067A (ja) | 2004-12-15 | 2004-12-15 | データベース管理方法、システム及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7526469B2 (ja) |
JP (1) | JP2006172067A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140319A (ja) * | 2007-12-07 | 2009-06-25 | Internatl Business Mach Corp <Ibm> | データベースへのアクセスを制御する技術 |
JP2010134519A (ja) * | 2008-12-02 | 2010-06-17 | Hitachi Ltd | データベース管理方法、データベース管理プログラム、および、データベース受付装置 |
JP2010271998A (ja) * | 2009-05-22 | 2010-12-02 | Nippon Telegr & Teleph Corp <Ntt> | データベース管理方法、データベース装置、およびプログラム |
JP2011215923A (ja) * | 2010-03-31 | 2011-10-27 | Fujitsu Ltd | 分散処理装置、分散処理プログラムおよび分散処理方法 |
JP2019087133A (ja) * | 2017-11-09 | 2019-06-06 | 富士通株式会社 | 分散制御プログラム、分散制御装置、データベースサーバ及び分散制御方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8140618B2 (en) * | 2006-05-04 | 2012-03-20 | Citrix Online Llc | Methods and systems for bandwidth adaptive N-to-N communication in a distributed system |
CN100416568C (zh) * | 2006-09-14 | 2008-09-03 | 南京中兴软创软件有限公司 | 一种加速数据库查询速度的方法 |
JP4386926B2 (ja) * | 2007-02-16 | 2009-12-16 | 富士通株式会社 | 暗号通信プログラム、暗号通信方法および暗号通信装置 |
US8082400B1 (en) * | 2008-02-26 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Partitioning a memory pool among plural computing nodes |
US10417611B2 (en) | 2010-05-18 | 2019-09-17 | Salesforce.Com, Inc. | Methods and systems for providing multiple column custom indexes in a multi-tenant database environment |
US10108648B2 (en) * | 2011-07-13 | 2018-10-23 | Salesforce.Com, Inc. | Creating a custom index in a multi-tenant database environment |
CN102990640B (zh) * | 2012-11-29 | 2015-04-08 | 北京理工大学 | 电力库房智能搬运机器人 |
KR20230100896A (ko) * | 2021-12-29 | 2023-07-06 | 주식회사 티맥스티베로 | 데이터베이스를 관리하기 위한 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480653B2 (en) * | 1996-10-22 | 2009-01-20 | International Business Machines Corporation | System and method for selective partition locking |
-
2004
- 2004-12-15 JP JP2004362616A patent/JP2006172067A/ja active Pending
-
2005
- 2005-12-14 US US11/302,174 patent/US7526469B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140319A (ja) * | 2007-12-07 | 2009-06-25 | Internatl Business Mach Corp <Ibm> | データベースへのアクセスを制御する技術 |
JP2010134519A (ja) * | 2008-12-02 | 2010-06-17 | Hitachi Ltd | データベース管理方法、データベース管理プログラム、および、データベース受付装置 |
JP2010271998A (ja) * | 2009-05-22 | 2010-12-02 | Nippon Telegr & Teleph Corp <Ntt> | データベース管理方法、データベース装置、およびプログラム |
JP2011215923A (ja) * | 2010-03-31 | 2011-10-27 | Fujitsu Ltd | 分散処理装置、分散処理プログラムおよび分散処理方法 |
JP2019087133A (ja) * | 2017-11-09 | 2019-06-06 | 富士通株式会社 | 分散制御プログラム、分散制御装置、データベースサーバ及び分散制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US7526469B2 (en) | 2009-04-28 |
US20060161539A1 (en) | 2006-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122360B (zh) | 数据迁移系统和方法 | |
CN107122355B (zh) | 数据迁移系统和方法 | |
US7526469B2 (en) | Method and system of database management with shared area | |
KR100330576B1 (ko) | 컴퓨터네트워크로부터월드와이드웹상의페이지위치을파악하고문서위치를파악하는시스템및방법 | |
CN107122361B (zh) | 数据迁移系统和方法 | |
WO2014122732A1 (ja) | 計算機システム、メタデータ管理方法及び記録媒体 | |
JP2009020901A (ja) | データベースシステム、データベース検索方法及び記録媒体 | |
TW202032386A (zh) | 資料儲存裝置、轉譯裝置及資料庫存取方法 | |
CN111797121A (zh) | 读写分离架构业务系统的强一致性查询方法、装置及系统 | |
EP3499388B1 (en) | Method and device for processing join query | |
JP6439475B2 (ja) | 情報処理装置、情報処理システム及び制御プログラム | |
US20150026133A1 (en) | Producing an image copy of a database object based on information within database buffer pools | |
US10095733B2 (en) | Heterogeneous database processing archetypes for hybrid system | |
US9734177B2 (en) | Index merge ordering | |
CN116108057B (zh) | 一种分布式数据库访问方法、装置、设备及存储介质 | |
JPH11213014A (ja) | データベースシステム、データベース検索方法及び記録媒体 | |
CN113051221A (zh) | 数据存储方法、装置、介质、设备及分布式文件系统 | |
JP2002140194A (ja) | 情報処理方法および情報処理装置およびエージェントシステム | |
US20080082516A1 (en) | System for and method of searching distributed data base, and information management device | |
CN111680069B (zh) | 数据库访问方法及装置 | |
JP5336827B2 (ja) | 情報処理装置、データベース・システム、情報処理方法およびプログラム | |
JP6506773B2 (ja) | 情報処理装置、方法およびプログラム | |
JPH02297670A (ja) | データベース検索方式 | |
JP4137366B2 (ja) | データベース管理方法及びデータベース管理装置 | |
JPH07141237A (ja) | データベースアクセス制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060825 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090526 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091013 |