JPH0765031A - 重複分散データベースを持つ情報処理システム - Google Patents

重複分散データベースを持つ情報処理システム

Info

Publication number
JPH0765031A
JPH0765031A JP5212692A JP21269293A JPH0765031A JP H0765031 A JPH0765031 A JP H0765031A JP 5212692 A JP5212692 A JP 5212692A JP 21269293 A JP21269293 A JP 21269293A JP H0765031 A JPH0765031 A JP H0765031A
Authority
JP
Japan
Prior art keywords
sql
server computer
local
name
key value
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
Application number
JP5212692A
Other languages
English (en)
Inventor
Kazunori Shimakawa
和典 島川
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP5212692A priority Critical patent/JPH0765031A/ja
Publication of JPH0765031A publication Critical patent/JPH0765031A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】オリジナルとレプリカの区別のない重複データ
を対象とした更新が、複数のクライアント計算機からの
要求に応じて、専用のサーバ計算機にて同時並行的に且
つ矛盾なく実行できるようにする。 【構成】クライアント計算機4-1〜4-4からサーバ計算
機5に対して検索キー値を条件句に含むSQLが送られ
ると、このサーバ計算機5は、同SQL中のキー値と分
散管理テーブル52をもとにアクセスすべき重複データ
の存在するサーバ計算機3-i(iは1〜3のうちの1つ
或いは複数)を特定すると共に、対応するSQL待ち行
列エントリを生成して当該キー値に対応するアクセス要
求管理テーブル53上の待ち行列につなぎ、その待ち行
列エントリが実行可能となった場合には、対応するSQ
Lを上記特定した各サーバ計算機3-i毎のSQLに分解
して、この各サーバ計算機3-iで同時並行的に実行させ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データが検索キーの
値の範囲により重複して複数のサーバ計算機に分散して
格納された重複分散データベースを持つ情報処理システ
ムに係り、特に同一のデータを複数のサーバ計算機に重
複して配置する場合に、その複数の重複データの更新の
整合性を矛盾なく行うのに好適な重複分散データベース
更新方式に関する。
【0002】
【従来の技術】従来、データが検索キーの値の範囲によ
り部分的に或いは完全に重複してネットワーク上の複数
のサーバ計算機に分散して格納された重複分散データベ
ースを持つ環境(以下、分散データ環境と称する)にお
いて、重複データの更新は、重複分散データベースをア
クセスするクライアント計算機が、同計算機上のアプリ
ケーションプログラムに従って逐一実行するのが一般的
であった。
【0003】重複データには、一般にオリジナルとレプ
リカ(複製)の2種類が存在する。ここで、オリジナル
に対する更新は、ユーザにとっては、即座に全てのレプ
リカに反映されることが好ましい。
【0004】ところが従来は、クライアント計算機上で
動作するアプリケーションプログラムには、同計算機か
ら即時更新を簡易的に或いは自動的に実行する方式が提
供されておらず、一定期間を経てから反映するといった
方式が提供されるだけであった。
【0005】この一定期間経過後に自動的に更新が反映
される方式では、オリジナルとレプリカという2種類を
識別し、オリジナルが更新されたなら、それが全てのレ
プリカに一定時間後に反映される第1の手続きと、これ
とは逆にレプリカの1つが更新されたならば、それがオ
リジナルに自動的に反映される第2の手続きとが、それ
ぞれ個別に適用されていた。
【0006】
【発明が解決しようとする課題】上記したように重複分
散データベースを持つ従来の情報処理システムでは、重
複データの更新が即時に反映されなかった。また、従来
の情報処理システムでは、この時間遅れのために、その
間に障害が発生すると、一方の重複データは更新できて
も他方は更新できずに、結果的に重複データ間で矛盾を
生じるという問題もあった。更に、オリジナルとレプリ
カとを識別し、その識別結果に応じて重複データの更新
を他の関連するデータに反映させる方式のため、クライ
アント計算機は、オリジナルに対する更新の場合とレプ
リカに対する更新の場合では異なる手続きを実行しなけ
ればならず、その手続き実行のためのアプリケーション
プログラムの開発効率やシステム運用効率の観点から複
雑性を増加させるという問題もあった。
【0007】この発明は上記事情を考慮してなされたも
のでその目的は、オリジナルとレプリカの区別のない重
複データを対象とした更新が、複数のクライアント計算
機からの要求に応じて、専用のサーバ計算機にて同時並
行的に且つ矛盾なく実行でき、クライアント計算機上で
動作するアプリケーションプログラムの簡略化が図れる
重複分散データベースを持つ情報処理システムを提供す
ることにある。
【0008】
【課題を解決するための手段】この発明は、データが検
索キーの値の範囲により部分的に或いは完全に重複して
分散されて格納される重複分散データベースと、この重
複分散データベースをアクセスするために、条件句に検
索キー値を含む問い合わせを行う複数のクライアント計
算機と、重複分散データベースを構成する局所データベ
ースを持つ複数の第1のサーバ計算機と、上記各クライ
アント計算機からの上記問い合わせを受けて、重複分散
データベースへのアクセスを集中制御する第2のサーバ
計算機(分散データベース制御サーバ計算機)とを備え
た重複分散データベースを持つ情報処理システムを提供
するもので、上記第2のサーバ計算機に、アクセスすべ
き重複データの存在する第1のサーバ計算機をキー値の
範囲をもとに特定するのに必要な情報を管理するための
分散管理テーブルと、上記複数のクライアント計算機か
らの各問い合わせを同問い合わせ中の検索キー値毎に直
列化して待ち行列により管理するためのアクセス要求管
理テーブルとを設け、この第2のサーバ計算機は、クラ
イアント計算機からの上記問い合わせを受信した際に
は、同問い合わせ中の検索キー値及び上記分散管理テー
ブルをもとに、アクセスすべき重複データの存在する全
ての第1のサーバ計算機を特定し、同問い合わせを、同
問い合わせ中の検索キー値に対応するアクセス要求管理
テーブル上の上記待ち行列につなぐと共に、同問い合わ
せの実行が可能となった場合には、同問い合わせを、上
記特定した各第1のサーバ計算機個々の問い合わせに分
解して、この各第1のサーバ計算機で同時並行的に実行
させるようにしたことを特徴とするものである。
【0009】
【作用】上記の構成において、第2のサーバ計算機(分
散データベース制御サーバ計算機)が有する分散管理テ
ーブルは、アクセスすべき重複データの存在する第1の
サーバ計算機をキー値の範囲をもとに特定するのに必要
な情報を管理するのに用いられており、同テーブルの各
エントリは、例えば、複数の第1のサーバ計算機が持つ
各局所データベースをまとめて1つの論理的な分散デー
タベースとして扱うための大域データベースを示す大域
データベース名、複数の第1のサーバ計算機が持つ各局
所データベースに格納される局所表をまとめて1つの論
理的な表として扱うための大域表を示す大域表名、この
大域表の検索キーであるキー列を示すキー列名、上記キ
ー列の上/下限値、この上/下限値で示される範囲のキ
ー値を持つレコード群が格納されている第1のサーバ計
算機を示すサーバ名、この第1のサーバ計算機内の局所
データベースを示す局所データベース名、及びこの局所
データベース内の局所表を示す局所表名の各属性から構
成される。
【0010】さて、クライアント計算機は、重複分散デ
ータベースをアクセスする必要がある場合には、大域デ
ータベース名、大域表名、キー列名及びキー値を含む条
件句を持つ、問い合わせ(データベース問い合わせ)用
のデータベース言語であるSQLを発行し、第2のサー
バ計算機に送信する。
【0011】第2のサーバ計算機は、クライアント計算
機からのSQLを受信すると、同SQL中の条件句から
大域データベース名、大域表名、キー列名及びキー値を
取り出して、これに適合する分散管理テーブル内の各エ
ントリをサーチし、このキー値を持つレコードが存在す
る局所表を含む局所データベースを持つ第1のサーバ計
算機を特定すると共に、同SQLに対応するSQL待ち
行列エントリを生成して、同SQL中のキー値に対応し
た、アクセス要求管理テーブル上の待ち行列につなぐ。
このキー値に対応した待ち行列が存在しない場合には、
当該SQL待ち行列エントリが先頭エントリとなる。こ
のようにして、各クライアント計算機からの各SQLに
対応したSQL待ち行列エントリが、各SQL中のキー
値毎に直列化される。
【0012】第2のサーバ計算機は、アクセス要求管理
テーブル上のSQL待ち行列エントリの実行が可能にな
ると、対応するSQLを、そのアクセス対象となる重複
データが格納されている、上記特定した各第1のサーバ
計算機に対するSQLにそれぞれ分解し、その分解した
SQLを、それぞれ対応する第1のサーバ計算機に送信
する。
【0013】第2のサーバ計算機から分解されたSQL
が送信された各第1のサーバ計算機は、そのSQLを受
信すると、そのSQLに従うデータベースアクセスを同
時並行的に実行する。
【0014】このようにして、オリジナルとレプリカの
区別のない重複データを対象とした各クライアント計算
機からの問い合わせ要求、例えば更新要求を、同時並行
的に且つ矛盾なく実行することが可能となる。
【0015】
【実施例】以下、この発明の一実施例を図面を参照して
説明する。図1は、この発明の一実施例に係る重複分散
データベースを持つ情報処理システムの全体構成を示す
ブロック図である。
【0016】同図において、1,2はネットワークであ
る。ネットワーク1には、例えば3台のサーバ計算機3
-1〜3-3が接続され、ネットワーク2には、データがサ
ーバ計算機3-1〜3-3に分散して格納されている後述す
る重複分散データベース30をアクセスする、例えば4
台のクライアント計算機4-1〜4-4が接続されている。
サーバ計算機3-1〜3-3(を識別するため)のサーバ名
(サーバ計算機名)は“S1”〜“S3”であり、クラ
イアント計算機4-1〜4-4(を識別するため)のクライ
アント名(クライアント計算機名)は“C1”〜“C
4”である。
【0017】サーバ計算機3-1〜3-3は、局所データベ
ース(以下、局所DBと称する)31-1〜31-3と、こ
の局所DB31-1〜31-3を管理する局所データベース
管理システム(以下、局所DBMSと称する)32-1〜
32-3とを有している。局所DB31-1〜31-3は、ま
とめて1つの論理的な分散データベース(以下、重複分
散データベースと称する)30を構成する。
【0018】局所DB31-1〜31-3は局所表(局所テ
ーブル)としての例えば社員表(社員テーブル)310
-1〜310-3を含んでいる。局所DB31-1〜31-3
(を識別するため)の局所DB名は“LDB#1”〜
“LDB#3”であり、社員表310-1〜310-3(を
識別するため)の局所表名は“社員表#1”〜“社員表
#3”である。
【0019】図2は、サーバ計算機3-1〜3-3の局所D
B31-1〜31-3に分散されている論理社員表20を示
す。図2に示した論理社員表20は、社員番号21、氏
名22、所属23及び給与24の4つの列(欄)からな
る。また論理社員表20には、複数の社員レコードが存
在しており、3つのサーバ計算機3-1〜3-3の局所DB
31-1〜31-3に分散され且つ重複して格納されてい
る。
【0020】図2の例では、サーバ計算機3-1の局所D
B31-1内の社員表310-1は論理社員表20の完全重
複である。またサーバ計算機3-2の局所DB31-2内の
社員表310-2と、サーバ計算機3-3の局所DB31-3
内の社員表310-3は、論理社員表20の部分重複であ
る。具体的には、社員番号“0600”のレコード25
は、サーバ計算機3-1の社員表310-1とサーバ計算機
3-2の社員表310-2に重複して格納されている。一
方、社員番号“3900”のレコード26は、サーバ計
算機3-1の社員表310-1とサーバ計算機3-3の社員表
310-3に重複して格納されている。
【0021】再び図1を参照すると、ネットワーク1,
2間には、分散データベース制御サーバ計算機5が接続
されている。このサーバ計算機5は、クライアント計算
機4-1〜4-4からのデータベースアクセス要求を受け
て、重複分散データベース30へのアクセスの集中制御
を司る。この制御は、分散データベース制御サーバプロ
グラム51に従って行われる。
【0022】サーバ計算機5は、分散管理テーブル52
と、アクセス要求管理テーブル53とを有している。分
散管理テーブル52は、図3に示すように、大域DB名
521、大域表名522、キー列名523、キー値下限
524、キー値上限525、サーバ名526、局所DB
名527及び局所表名528の8つの属性から構成され
る。
【0023】大域DB名521は、サーバ計算機3-1内
の局所DBMS32-1が管理する局所DB31-1、サー
バ計算機3-2内の局所DBMS32-2が管理する局所D
B31-2、及びサーバ計算機3-3内の局所DBMS32
-3が管理する局所DB31-3から構成される複数の局所
DBをまとめて大域データベース(大域DB)としての
1つの論理的な分散データベース(以下、大域DBと称
する)として扱うために付与された名称を示す。
【0024】大域表名522は、大域DB内の社員を示
す表(大域表)に付与された名称を示す。キー列名52
3は、大域表の検索キーであるキー列に付与された名称
を示す。
【0025】キー値下限524はキー列の値の下限を示
し、キー値上限525はキー列の値の上限を示す。サー
バ名526は、キー値下限524とキー値上限525の
示す範囲のキー値を持つレコード群が格納されている
(局所DBを持つ)サーバ計算機3-i(i=1〜3)の
サーバ名を示す。
【0026】局所DB名527は、そのサーバ計算機3
-i内の局所DB31-iに付与された名称を示す。局所表
名528は、その局所DB31-i内の表に付与された名
称を示す。
【0027】本実施例では、3つのサーバ計算機3-1〜
3-3が存在するため、図3に示した分散管理テーブル5
2には、3つの分散管理エントリ520-1〜520-3が
登録されている。
【0028】さて、最初の分散管理エントリ520-1
は、大域DB名“GDB#1”、大域表名“社員表”、
キー列名“社員番号”、キー値下限“0001”、キー
値上限“4000”、サーバ名“S1”、局所DB名
“LDB#1”、局所表名“社員表#1”を保持するこ
とにより、重複分散データベース30の名称が“GDB
1”であり、その中に格納されている論理的な表の名称
が“社員表であり、その社員表のキー列の名称が“社員
番号”であり、この社員表のキー値の下限が“000
1”、上限が“4000”という範囲の社員表のレコー
ドの全てが、名称“S1”のサーバ計算機3-1内の局所
DB名“LDB#1”の局所DB31-1内の、局所表名
“社員表#1”の社員表310-1に格納されているとい
うことを示す。
【0029】他の2つの分散管理エントリ520-2,5
20-3も同様であり、キー値の範囲が“0001”から
“2000”の社員表のレコードは、名称“S1”のサ
ーバ計算機3-2内の局所DB名“LDB#2”の局所D
B31-2内の、局所表名“社員表#2”の社員表310
-2に格納されていることを示し、キー値の範囲が“20
01”から“4000”の社員表のレコードは、名称
“S3”のサーバ計算機3-3内の局所DB名“LDB#
3”の局所DB31-3内の、局所表名“社員表#3”の
社員表310-3に格納されていることを示している。
【0030】分散管理テーブル52は、分散データベー
ス制御サーバ計算機5が、クライアント計算機4-1〜4
-4からのデータベースアクセス要求をデータベース言語
であるSQL(Structured Query Language )の形式で
受け付けた場合に、当該SQLの条件句中に含まれる検
索キーの値により、当該SQLをいずれのサーバ計算機
3-iに送ればよいかを決定し、当該SQLをそのサーバ
計算機3-iの環境(局所DB名、局所表名)に合わせて
分解するために使用される。この詳細については後述す
る。
【0031】図4は、クライアント計算機4-1から、重
複分散データベース30をアクセスするために、分散デ
ータベース制御サーバ計算機5に対して発行される、表
の更新を指定する更新SQL41の一例と、その更新S
QL41を分散管理テーブル52に従って分解すること
により求められる、サーバ計算機3-1に対する更新SQ
L41-1とサーバ計算機3-2に対する更新SQL41-2
とを対比して示す。ここで、SQLの構文は、基本的に
は、処理のタイプ、処理の対象、及び処理の条件を示す
3つの句から構成される。
【0032】図4の例では、更新SQL41は、大域D
B名“GDB#1”の大域表名“社員表”の社員番号が
“0600”のレコードの所属を(“総務”から)“生
産”に更新(UPDATE)することを指示する。
【0033】また更新SQL41-1は、局所DB名“L
DB#1”の局所表名“社員表#1”の社員番号が“0
600”のレコードの所属を(“総務”から)“生産”
に更新することを指示する。同様に更新SQL41-2
は、局所DB名“LDB#2”の局所表名“社員表#
2”の社員番号が“0600”のレコードの所属を
(“総務”から)“生産”に更新することを指示する。
【0034】図5は、クライアント計算機4-2から、重
複分散データベース30をアクセスするために、分散デ
ータベース制御サーバ計算機5に対して発行される、表
の更新を指定する更新SQL42の一例と、その更新S
QL42を分散管理テーブル52に従って分解すること
により求められる、サーバ計算機3-1に対する更新SQ
L42-1とサーバ計算機3-2に対する更新SQL42-2
とを対比して示す。
【0035】図5の例では、更新SQL42は、大域D
B名“GDB#1”の大域表名“社員表”の社員番号が
“0600”のレコードの給与を(“24”から)“3
0”に更新することを指示する。
【0036】また更新SQL42-1は、局所DB名“L
DB#1”の局所表名“社員表#1”の社員番号が“0
600”のレコードの給与を(“24”から)“30”
に更新することを指示する。同様に更新SQL42-2
は、局所DB名“LDB#2”の局所表名“社員表#
2”の社員番号が“0600”のレコードの給与を
(“24”から)“30”に更新することを指示する。
【0037】図6は、クライアント計算機4-3から、重
複分散データベース30をアクセスするために、分散デ
ータベース制御サーバ計算機5に対して発行される、表
の検索を指定する検索SQL43の一例と、その更新S
QL43を分散管理テーブル52に従って分解すること
により求められる、サーバ計算機3-1に対する検索SQ
L43-1とを対比して示す。
【0038】図6の例では、検索SQL43は、大域D
B名“GDB#1”の大域表名“社員表”の社員番号が
“3900”のレコードを検索(SELECT)するこ
とを指示する。
【0039】また検索SQL43-1は、局所DB名“L
DB#1”の局所表名“社員表#1”の社員番号が“3
900”のレコードを検索することを指示する。図7
は、クライアント計算機4-3から、重複分散データベー
ス30をアクセスするために、分散データベース制御サ
ーバ計算機5に対して発行される、表の更新を指定する
更新SQL44の一例と、その更新SQL44を分散管
理テーブル52に従って分解することにより求められ
る、サーバ計算機3-1に対する更新SQL44-1とサー
バ計算機3-3に対する更新SQL44-3とを対比して示
す。
【0040】図7の例では、更新SQL44は、大域D
B名“GDB#1”の大域表名“社員表”の社員番号が
“3900”のレコードの給与を(“30”から)“4
0”に更新することを指示する。
【0041】また更新SQL44-1は、局所DB名“L
DB#1”の局所表名“社員表#1”の社員番号が“3
900”のレコードの給与を(“30”から)“40”
に更新することを指示する。同様に更新SQL44-3
は、局所DB名“LDB#3”の局所表名“社員表#
3”の社員番号が“3900”のレコードの給与を
(“30”から)“40”に更新することを指示する。
【0042】分散データベース制御サーバ計算機5内の
アクセス要求管理テーブル53は、各クライアント計算
機4-iからの重複分散データベース30に対するアクセ
ス要求を待ち行列として直列化し、重複データの更新を
矛盾なく行うために用いられるもので、その情報は、S
QLの条件句中のキー値毎に生成される。
【0043】アクセス要求管理テーブル53は、図8に
示すように、キー値531及びSQL待ち行列開始ポイ
ンタ532の2つの属性と、SQL待ち行列エントリ群
533を有する。
【0044】図8の例では、SQL待ち行列エントリ群
533は、キー値531が“0600”のエントリ53
0-1のSQL待ち行列開始ポインタ532につながれる
先頭のSQL待ち行列エントリ534-1と、当該エント
リ534-1につながれるSQL待ち行列エントリ534
-2と、キー値531が“3900”のエントリ530-2
のSQL待ち行列開始ポインタ532につながれる先頭
のSQL待ち行列エントリ535-1と、当該エントリ5
35-1につながれるSQL待ち行列エントリ535-2と
からなる。
【0045】SQL待ち行列エントリ534-1は図4に
示した(クライアント計算機4-1からの)更新SQL4
1に応じて生成され、SQL待ち行列エントリ534-2
は図5に示した(クライアント計算機4-2からの)更新
SQL42に応じて生成されたものである。また、SQ
L待ち行列エントリ535-1は図6に示した(クライア
ント計算機4-2からの)検索SQL43に応じて生成さ
れ、SQL待ち行列エントリ535-2は図7に示した
(クライアント計算機4-4からの)更新SQL44に応
じて生成されたものである。
【0046】各SQL待ち行列エントリ534-1,53
4-2,535-1,535-2は、次のSQL待ち行列エン
トリを指す次ポインタ(next)と、該当するSQL
の発行元のクライアント計算機4-iの名称(クライアン
ト名)と、SQLのタイプ(処理タイプ)と、SQL状
態(実行中または待ち状態のいずれであるか)の各情報
フィールドを持つ。
【0047】次に、図1に示すシステムの動作を、図2
乃至図8を適宜参照しながら、最初にクライアント計算
機4-1が更新SQL41を発行し、次にクライアント計
算機4-2が更新SQL42を発行し、更にその次にクラ
イアント計算機4-3が検索SQL43を発行し、最後に
クライアント計算機4-4が更新SQL44を発行した場
合を例に説明する。
【0048】まず、クライアント計算機4-1が発行した
更新SQL41はネットワーク2を介して分散データベ
ース制御サーバ計算機5に送信される。分散データベー
ス制御サーバ計算機5は、クライアント計算機4-1から
の更新SQL41(図4参照)を受信すると、その更新
SQL41中に含まれる条件句であるWHERE句を解
析して、大域DB名“GDB#1”、大域表名“社員
表”、キー列名“社員番号”、キー値“0600”を取
り出し、これに適合する分散管理テーブル52の分散管
理エントリ520-iをサーチする。ここでは、キー値が
“0600”であることから、キー値下限524とキー
値上限525によってキー値の範囲が“0001”から
“4000”であることが示されている分散管理エント
リ520-1と、同じくキー値の範囲が“0001”から
“2000”であることが示されている分散管理エント
リ520-2がサーチされる。
【0049】これにより分散データベース制御サーバ計
算機5は、更新SQL41から取り出したキー値“06
00”を持つレコードが存在する局所表を含む局所DB
(更新すべき局所DB)を保持するサーバ計算機が、サ
ーバ名“S1”のサーバ計算機3-1と、サーバ名“S
2”のサーバ計算機3-2の2つであることを特定する。
【0050】次に分散データベース制御サーバ計算機5
は、図8に示すように、アクセス要求管理テーブル53
に、クライアント計算機4-1からの更新SQL41から
取り出したキー値“0600”をキー値531として持
つエントリ530-1を登録すると共に、(更新SQL4
1の発行元のクライアント計算機4-1の)クライアント
名“C1”、SQLタイプ“更新”、SQL状態“実
行”が登録されたSQL待ち行列エントリ534-1を生
成して、これをエントリ530-1中のSQL待ち行列開
始ポインタ532に接続する。
【0051】続いて分散データベース制御サーバ計算機
5は、上記の分散管理テーブル52内の2つの分散管理
エントリ520-1,520-2をサーチしてサーバ計算機
3-1,3-2を特定した結果をもとに、クライアント計算
機4-1からの更新SQL41を、2つの更新SQL、即
ちこれら2つのサーバ計算機3-1,3-2に対する更新S
QL41-1,41-2(図4参照)に分解する。そして分
散データベース制御サーバ計算機5は、2つに分解した
更新SQL41-1,41-2を、ネットワーク1を介して
それぞれサーバ計算機3-1,3-2に送信する。
【0052】するとサーバ計算機3-1,3-2内の局所D
BMS32-1,32-2は、更新SQL41-1,41-2の
指定するデータベースアクセス処理、即ち局所DB名が
“LDB#1”,“LDB#2”の局所DB31-1,3
1-2中の局所表名が“社員表#1”,“社員表#2”の
社員表310-1,310-2を対象として、社員番号が
“0600”のレコードの所属を“総務”から“生産”
に更新する処理を開始する。
【0053】このような状態において、クライアント計
算機4-2が発行した更新SQL42が分散データベース
制御サーバ計算機5に送信されて、同サーバ計算機5で
受信されたものとする。
【0054】分散データベース制御サーバ計算機5は、
クライアント計算機4-2からの更新SQL42(図5参
照)を受信すると、上記した更新SQL41の受信時と
同様にして、分散管理テーブル52内の2つの分散管理
エントリ520-1,52-2をサーチして、更新すべきサ
ーバ計算機がサーバ名“S1”のサーバ計算機3-1と、
サーバ名“S2”のサーバ計算機3-2の2つであること
を特定する。
【0055】このとき、アクセス要求管理テーブル53
内のキー値531が“0600”のエントリ530-1に
接続されているSQL待ち行列エントリ534-1は、先
のクライアント計算機4-1からの更新SQL41の実行
についての説明から明らかなように、SQLタイプ“更
新”、SQL状態“実行”を示している(図8参照)。
また、キー値531として登録されている値“060
0”は、新たに受信したクライアント計算機4-2からの
更新SQL42中のキー値に一致する。
【0056】分散データベース制御サーバ計算機5は、
クライアント計算機4-2からの更新SQL42を受信し
て、上記した如く、更新すべきサーバ計算機がサーバ名
“S1”のサーバ計算機3-1と、サーバ名“S2”のサ
ーバ計算機3-2の2つであると特定すると、(更新SQ
L42の発行元のクライアント計算機4-2の)クライア
ント名“C2”、SQLタイプ“更新”、SQL状態
“待ち”が登録されたSQL待ち行列エントリ534-2
を生成する。
【0057】ここで、SQL待ち行列エントリ534-2
のSQL状態が、先のSQL待ち行列エントリ534-1
と異なり、“実行”ではなくて“待ち”となっているの
は、エントリ534-1に対応する先行SQL41中のキ
ー値が今回受信した後続SQL42中のキー値に一致
し、且つ先行SQL41が更新SQLであることから、
もし後続SQL42を先行SQLと並行して実行した場
合、正しい結果が得られなくなるためである。同様の理
由により、先行SQLが検索SQLであっても、後続S
QLが更新SQLの場合(で先行SQLと後続SQLの
キー値が一致している場合)には、後続SQLに対応す
るSQL待ち行列エントリのSQL状態は“待ち”とさ
れる。一方、先行SQLと後続SQLがいずれも検索S
QLの場合には、後続SQLに対応するSQL待ち行列
エントリのSQL状態は“実行”とされる。
【0058】さて分散データベース制御サーバ計算機5
は、SQL状態が“待ち”のSQL待ち行列エントリ5
34-2を生成すると、既に存在している(クライアント
名が“C1”のクライアント計算機4-1からの同一キー
値“0600”のレコードに対する更新SQL41に対
応する)SQL待ち行列エントリ534-1の次ポインタ
(next)に、この生成したエントリ534-2を接続
する。
【0059】そして分散データベース制御サーバ計算機
5は、既に実行されている、更新SQL41を分解して
得られた更新SQL41-1,41-2に対する、サーバ計
算機3-1,3-2(内の局所DBMS32-1,32-2)に
よる実行終了を待つ。
【0060】一方、サーバ計算機3-1,3-2は、局所D
BMS32-1,32-2が分散データベース制御サーバ計
算機5から与えられた更新SQL41-1,41-2を実行
し終えると、その旨の応答(終了応答)をネットワーク
1を介して分散データベース制御サーバ計算機5に返
す。
【0061】分散データベース制御サーバ計算機5は、
更新SQL41-1,41-2の実行終了を示す終了応答が
サーバ計算機3-1,3-2の両方から返されると、更新S
QL41の実行終了を判断して、対応するSQL待ち行
列エントリ534-1をアクセス要求管理テーブル53か
ら消去する。
【0062】次に分散データベース制御サーバ計算機5
は、消去したSQL待ち行列エントリ534-1に接続さ
れていた、後続の更新SQL42に対応するSQL待ち
行列エントリ534-2を、アクセス要求管理テーブル5
3のキー値“0600”に対する最初のSQL待ち行列
エントリとして接続し直す。
【0063】次に分散データベース制御サーバ計算機5
は、クライアント計算機4-2からの更新SQL42を、
先に特定したサーバ計算機3-1,3-2に対する更新SQ
L42-1,42-2(図5参照)に分解する。そして分散
データベース制御サーバ計算機5は、2つに分解した更
新SQL42-1,42-2を、ネットワーク1を介してそ
れぞれサーバ計算機3-1,3-2に送信すると共に、上記
接続し直したSQL待ち行列エントリ534-2のSQL
状態を、“待ち”から“実行”に変更する。
【0064】サーバ計算機3-1,3-2では、分散データ
ベース制御サーバ計算機5から更新SQL42-1,42
-2が送られると、この更新SQL42-1,42-2の指定
するデータベースアクセス処理、即ち局所DB名が“L
DB#1”,“LDB#2”の局所DB31-1,31-2
中の局所表名が“社員表#1”,“社員表#2”の社員
表310-1,310-2を対象として、社員番号が“06
00”のレコードの給与を“24”から“30”に更新
する処理が行われる。
【0065】このような状態において、分散データベー
ス制御サーバ計算機5が、クライアント計算機4-3で発
行された検索SQL43(図6参照)、即ち別のキー値
“3900”のレコードを対象とするアクセス要求であ
る検索SQL43を受信したものとする。この場合、分
散データベース制御サーバ計算機5は、その検索SQL
43中に含まれる条件句であるWHERE句を解析し
て、大域DB名“GDB#1”、大域表名“社員表”、
キー列名“社員番号”、キー値“3900”を取り出
し、これに適合する分散管理テーブル52の例えば最初
の分散管理エントリ520-iをサーチする。ここでは、
キー値が“3900”であることから、キー値下限52
4とキー値上限525によってキー値の範囲が“000
1”から“4000”であることが示されている先頭の
分散管理エントリ520-1が最初にサーチされる。
【0066】これにより分散データベース制御サーバ計
算機5は、検索SQL43から取り出したキー値“39
00”を持つレコードが存在する局所表を含む局所DB
(検索すべき局所DB)を保持するサーバ計算機の1つ
が、サーバ名“S1”のサーバ計算機3-1であることを
特定する。
【0067】次に分散データベース制御サーバ計算機5
は、図8に示すように、アクセス要求管理テーブル53
に、クライアント計算機4-3からの検索SQL43から
取り出したキー値“3900”をキー値531として持
つエントリ530-2を登録すると共に、(検索SQL4
3の発行元のクライアント計算機4-3の)クライアント
名“C3”、SQLタイプ“検索”、SQL状態“実
行”が登録されたSQL待ち行列エントリ535-1を生
成して、これをエントリ530-2中のSQL待ち行列開
始ポインタ532に接続する。
【0068】続いて分散データベース制御サーバ計算機
5は、検索対象としてサーバ計算機3-1を特定した結果
をもとに、クライアント計算機4-3からの検索SQL4
3を、この特定したサーバ計算機3-1に対する検索SQ
L43-1(図6参照)に分解(展開)し、その検索SQ
L43-1をサーバ計算機3-1に送信する。
【0069】するとサーバ計算機3-1では、この検索S
QL43-1の指定するデータベースアクセス処理、即ち
局所DB名が“LDB#1”の局所DB31-1中の局所
表名が“社員表#1”の社員表310-1を対象として、
社員番号が“3900”のレコードを検索する処理が行
われる。このとき、更新SQL42-1の実行が終了して
いなければ、検索SQL43-1はこれと並行して実行さ
れる。
【0070】ここで、サーバ計算機3-1,3-2におい
て、更新SQL42-1,42-2の実行が終了したものと
する。この場合、サーバ計算機3-1,3-2から分散デー
タベース制御サーバ計算機5に対して、更新SQL42
-1,42-2の終了応答が返される。
【0071】分散データベース制御サーバ計算機5は、
サーバ計算機3-1,3-2から更新SQL42-1,42-2
の終了応答がいずれも返されると、対応するSQL待ち
行列エントリ534-2をアクセス要求管理テーブル53
から消去する。この段階で、キー値“0600”のエン
トリ530-1は不要となったため、分散データベース制
御サーバ計算機5は、当該エントリ530-1をアクセス
要求管理テーブル53から消去する。
【0072】次に分散データベース制御サーバ計算機5
が、クライアント計算機4-4で発行された更新SQL4
4(図7参照)、即ち実行中の検索SQL43と同一の
キー値“3900”のレコードを対象とする更新SQL
44を受信したものとする。
【0073】この場合、分散データベース制御サーバ計
算機5は、分散管理テーブル52をもとに、上記した検
索SQL43の受信時と同様にして、更新すべきサーバ
計算機がサーバ名“S1”のサーバ計算機3-1と、サー
バ名“S3”のサーバ計算機3-3の2つであることを特
定する。
【0074】次に分散データベース制御サーバ計算機5
は、実行中の検索SQL43と同一のキー値“390
0”のレコードを対象とする更新SQL44であること
から、図8に示すように、(更新SQL44の発行元の
クライアント計算機4-4の)クライアント名“C4”、
SQLタイプ“更新”、SQL状態“待ち”が登録され
たSQL待ち行列エントリ535-2を生成して、これを
実行中の検索SQL43に対応するSQL待ち行列エン
トリ535-1の次ポインタ(next)に接続すし、検
索SQL43(を分解した検索SQL43-1)の実行終
了を待つ。
【0075】ここで、サーバ計算機3-1において、検索
SQL43-1の実行が終了し、その終了応答が分散デー
タベース制御サーバ計算機5に返されたものとする。こ
の場合、分散データベース制御サーバ計算機5は、検索
SQL43の実行終了を判断して、対応するSQL待ち
行列エントリ535-1をアクセス要求管理テーブル53
から消去する。
【0076】次に分散データベース制御サーバ計算機5
は、消去したSQL待ち行列エントリ535-1に接続さ
れていた、後続の更新SQL44に対応するSQL待ち
行列エントリ535-2を、アクセス要求管理テーブル5
3のキー値“3900”に対する最初のSQL待ち行列
エントリとして接続し直す。
【0077】次に分散データベース制御サーバ計算機5
は、クライアント計算機4-4からの更新SQL44を、
先に特定したサーバ計算機3-1,3-3に対する更新SQ
L44-1,42-3(図7参照)に分解する。そして分散
データベース制御サーバ計算機5は、2つに分解した更
新SQL44-1,44-3を、ネットワーク1を介してそ
れぞれサーバ計算機3-1,3-3に送信すると共に、上記
接続し直したSQL待ち行列エントリ535-2のSQL
状態を、“待ち”から“実行”に変更する。
【0078】サーバ計算機3-1,3-3では、分散データ
ベース制御サーバ計算機5から更新SQL44-1,44
-3が送られると、この更新SQL44-1,42-3の指定
するデータベースアクセス処理、即ち局所DB名が“L
DB#1”,“LDB#3”の局所DB31-1,31-3
中の局所表名が“社員表#1”,“社員表#3”の社員
表310-1,310-3を対象として、社員番号が“39
00”のレコードの給与を“30”から“40”に更新
する処理が行われる。そして、サーバ計算機3-1,3-2
において、更新SQL44-1,42-3の実行が終了する
と、サーバ計算機3-1,3-2から分散データベース制御
サーバ計算機5に対して、更新SQL44-1,44-3の
終了応答が返される。
【0079】分散データベース制御サーバ計算機5は、
サーバ計算機3-1,3-3から更新SQL44-1,44-3
の終了応答がいずれも返されると、対応するSQL待ち
行列エントリ535-2をアクセス要求管理テーブル53
から消去する。この段階で、キー値“3900”のエン
トリ530-2は不要となったため、分散データベース制
御サーバ計算機5は、当該エントリ530-2をアクセス
要求管理テーブル53から消去する。
【0080】以上の分散データベース制御サーバ計算機
5の分散データベース制御サーバプログラム51に従う
処理により、一連の重複分散データベースのアクセスを
矛盾なく制御することができる。
【0081】
【発明の効果】以上説明したようにこの発明によれば、
データが検索キーの値の範囲により部分的に或いは完全
に重複して複数の第1のサーバ計算機に分散して格納さ
れる重複分散データベースを持つ情報処理システムにお
いて、各クライアント計算機から重複分散データベース
をアクセスするために、第2のサーバ計算機(分散デー
タベース制御サーバ計算機)に対して、検索キー値を条
件句に含む問い合わせを行う一方、各クライアント計算
機からの問い合わせを受けた第2のサーバ計算機が、同
問い合わせを、同問い合わせ中の検索キー値毎に待ち行
列として管理手段(アクセス要求管理テーブル)に登録
して管理し、実行が可能となった問い合わせについて
は、同問い合わせ中の検索キー値に一致するキー値を持
つ重複データが格納されている複数の第1のサーバ計算
機への問い合わせに分解して、その分解された各問い合
わせを該当する第1のサーバ計算機に送信する構成とし
たので、複数の第1のサーバ計算機上に重複して分散さ
れているオリジナルとレプリカの区別のないデータ(重
複データ)を対象とする各クライアント計算機からの問
い合わせ要求を、対応する各第1のサーバ計算機上で同
時並行的に且つ矛盾なく実行することができる。
【0082】また、クライアント計算機は、オリジナル
とレプリカの区別を必要とせず、従来のような、オリジ
ナルに対する更新の場合とレプリカの更新の場合とに分
けて異なる手続きを実行する必要もないことから、重複
データを対象とするアクセスを必要とする、クライアン
ト計算機上で走行するアプリケーションプログラムの構
成が簡略化され、同プログラムの開発効率およびシステ
ム運用効率が向上する。
【図面の簡単な説明】
【図1】この発明の一実施例に係る重複分散データベー
スを持つ情報処理システムの全体構成を示すブロック
図。
【図2】図1中の複数のサーバ計算機3-1〜3-3の局所
DB31-1〜31-3に重複して分散されている論理社員
表を示す図。
【図3】重複分散データベースを管理するための図1中
の分散管理テーブル52の一例を示す図。
【図4】重複分散データベース更新のためにクライアン
ト計算機4-1が発行した更新SQL41の一例と、その
更新SQL41を分解することにより求められる、サー
バ計算機3-1,3-2に対する更新SQL41-1,41-2
とを対比して示す図。
【図5】重複分散データベース更新のためにクライアン
ト計算機4-2が発行した更新SQL42の一例と、その
更新SQL42を分解することにより求められる、サー
バ計算機3-1,3-2に対する更新SQL42-1,42-2
とを対比して示す図。
【図6】重複分散データベース検索のためにクライアン
ト計算機4-3が発行した検索SQL43の一例と、その
検索SQL43を分解(展開)することにより求められ
る、サーバ計算機3-1に対する検索SQL43-1とを対
比して示す図。
【図7】重複分散データベース更新のためにクライアン
ト計算機4-4が発行した更新SQL44の一例と、その
更新SQL44を分解することにより求められる、サー
バ計算機3-1,3-3に対する更新SQL44-1,44-3
とを対比して示す図。
【図8】重複分散データベースのアクセスを矛盾なく行
うための図1中のアクセス要求管理テーブル53の一例
を示す図。
【符号の説明】
1,2…ネットワーク、3-1〜3-3…サーバ計算機(第
1のサーバ計算機)、4-1〜4-4…クライアント計算機
(問い合わせ手段)、5…分散データベース制御サーバ
計算機(第2のサーバ計算機、分解・送信手段)、20
…論理社員表、30…重複分散データベース、31-1〜
31-3…局所DB(局所データベース)、32-1〜32
-3…局所DBMS(局所データベース管理システム)、
41,41-1,41-2,42,42-1,42-2,44,
44-1,44-2…更新SQL、43,43-1…検索SQ
L、51…分散データベース制御サーバプログラム、5
2…分散管理テーブル、53…アクセス要求管理テーブ
ル(管理手段)、310-1〜310-3…社員表、534
-1,534-2,535-1,535-2…SQL待ち行列エ
ントリ。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】データが検索キーの値の範囲により部分的
    に或いは完全に重複して複数のサーバ計算機に分散して
    格納される重複分散データベースを持つ情報処理システ
    ムにおいて、 前記重複分散データベースをアクセスするために、検索
    キー値を条件句に含む問い合わせを行う複数の問い合わ
    せ手段と、 この複数の問い合わせ手段による前記各問い合わせを、
    同問い合わせ中の前記検索キー値毎に待ち行列により管
    理するための管理手段と、 この管理手段により管理されている待ち行列内の待ち状
    態にある前記問い合わせを、同問い合わせ中の前記検索
    キー値に一致するキー値を持つ重複データが格納されて
    いる複数の前記サーバ計算機への問い合わせに分解し
    て、その分解された各問い合わせを該当する前記サーバ
    計算機に送信する分解・送信手段とを具備し、複数のサ
    ーバ計算機上に重複して分散されているデータを対象と
    する問い合わせを、対応する各サーバ計算機で同時並行
    的に実行させるようにしたことを特徴とする重複分散デ
    ータベースを持つ情報処理システム。
  2. 【請求項2】データが検索キーの値の範囲により部分的
    に或いは完全に重複して分散されて格納される重複分散
    データベースと、 この重複分散データベースをアクセスするために、検索
    キー値を条件句に含む問い合わせを行う複数のクライア
    ント計算機と、 前記重複分散データベースを構成する局所データベース
    を持つ複数の第1のサーバ計算機と、 前記各クライアント計算機からの前記問い合わせを受け
    て、前記重複分散データベースへのアクセスを集中制御
    する第2のサーバ計算機とを具備し、 前記第2のサーバ計算機は、アクセスすべき重複データ
    の存在する前記第1のサーバ計算機をキー値の範囲をも
    とに特定するのに必要な情報を管理するための分散管理
    テーブルと、前記複数のクライアント計算機からの各問
    い合わせを同問い合わせ中の前記検索キー値毎に直列化
    して待ち行列により管理するためのアクセス要求管理テ
    ーブルとを有し、前記クライアント計算機からの前記問
    い合わせを受信した際には、同問い合わせ中の前記検索
    キー値及び前記分散管理テーブルをもとに、アクセスす
    べき重複データの存在する全ての前記第1のサーバ計算
    機を特定し、同問い合わせを、同問い合わせ中の前記検
    索キー値に対応する前記アクセス要求管理テーブル上の
    前記待ち行列につなぐと共に、同問い合わせの実行が可
    能となった場合には、同問い合わせを、前記特定した前
    記各第1のサーバ計算機個々の問い合わせに分解して、
    この各第1のサーバ計算機で同時並行的に実行させるよ
    うに構成されていることを特徴とする重複分散データベ
    ースを持つ情報処理システム。
  3. 【請求項3】前記分散管理テーブルの各エントリが、前
    記複数の第1のサーバ計算機が持つ前記各局所データベ
    ースをまとめて1つの論理的な分散データベースとして
    扱うための大域データベースを示す大域データベース
    名、前記複数の第1のサーバ計算機が持つ前記各局所デ
    ータベースに格納される局所表をまとめて1つの論理的
    な表として扱うための大域表を示す大域表名、この大域
    表の検索キーであるキー列を示すキー列名、前記キー列
    の上/下限値、この上/下限値で示される範囲のキー値
    を持つレコード群が格納されている前記第1のサーバ計
    算機を示すサーバ名、この第1のサーバ計算機内の前記
    局所データベースを示す局所データベース名、及びこの
    局所データベース内の前記局所表を示す局所表名の各属
    性から構成される一方、 前記問い合わせが、条件句として、大域データベース
    名、大域表名、キー列名及びキー値を含み、 前記第2のサーバ計算機は、前記クライアント計算機か
    らの前記問い合わせを受けた場合、同問い合わせ中の前
    記条件句から前記大域データベース名、大域表名、キー
    列名及びキー値を取り出して、これに適合する前記分散
    管理テーブル内の各エントリをサーチし、このキー値を
    持つレコードが存在する局所表を含む局所データベース
    を持つ前記第1のサーバ計算機を特定することを特徴と
    する請求項2記載の重複分散データベースを持つ情報処
    理システム。
JP5212692A 1993-08-27 1993-08-27 重複分散データベースを持つ情報処理システム Pending JPH0765031A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5212692A JPH0765031A (ja) 1993-08-27 1993-08-27 重複分散データベースを持つ情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5212692A JPH0765031A (ja) 1993-08-27 1993-08-27 重複分散データベースを持つ情報処理システム

Publications (1)

Publication Number Publication Date
JPH0765031A true JPH0765031A (ja) 1995-03-10

Family

ID=16626853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5212692A Pending JPH0765031A (ja) 1993-08-27 1993-08-27 重複分散データベースを持つ情報処理システム

Country Status (1)

Country Link
JP (1) JPH0765031A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034518A (ja) * 1999-07-27 2001-02-09 Nec Software Chugoku Ltd 分散データベースシステムにおける主従関係情報同期方式
US9170851B2 (en) 2010-11-22 2015-10-27 International Business Machines Corporation Connection distribution for load balancing in a distributed database

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034518A (ja) * 1999-07-27 2001-02-09 Nec Software Chugoku Ltd 分散データベースシステムにおける主従関係情報同期方式
US9170851B2 (en) 2010-11-22 2015-10-27 International Business Machines Corporation Connection distribution for load balancing in a distributed database

Similar Documents

Publication Publication Date Title
US6684203B1 (en) Using global temporary tables to transform queries
US7409401B2 (en) Method and system for supporting multivalue attributes in a database system
US7092954B1 (en) Optimizing an equi-join operation using a bitmap index structure
US5778354A (en) Database management system with improved indexed accessing
US5590319A (en) Query processor for parallel processing in homogenous and heterogenous databases
US5835755A (en) Multi-processor computer system for operating parallel client/server database processes
US5450581A (en) System for copying from one database management system to another by translating authorization statements
EP1716505B1 (en) Ultra-shared-nothing parallel database
US5995973A (en) Storing relationship tables identifying object relationships
US6134543A (en) Incremental maintenance of materialized views containing one-to-one lossless joins
US6092061A (en) Data partitioning by co-locating referenced and referencing records
US6643636B1 (en) Optimizing a query using a non-covering join index
US6834279B1 (en) Method and system for inclusion hash joins and exclusion hash joins in relational databases
CN107169033A (zh) 基于数据模式转换和并行框架的关系数据查询优化方法
US6957210B1 (en) Optimizing an exclusion join operation using a bitmap index structure
JPH10240590A (ja) 並列データベースシステムルーチン実行方法
JP2001014329A (ja) データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
US20020049747A1 (en) Method for integrating and accessing of heterogeneous data sources
US6618720B1 (en) Common spool files for maintaining join indexes
JPH08179980A (ja) 分散データベースシステム
JPH1040146A (ja) 並列データベースシステム通信回数削減方法
JPH0765031A (ja) 重複分散データベースを持つ情報処理システム
US7146370B1 (en) Copying a portion of a database structure associated with a query
JPH09305622A (ja) 文書検索機能を有するデータベース管理方法およびシステム
US20020138464A1 (en) Method and apparatus to index a historical database for efficient multiattribute SQL queries