JPH03126169A - データベース・リレーシヨンの結合方法 - Google Patents

データベース・リレーシヨンの結合方法

Info

Publication number
JPH03126169A
JPH03126169A JP2217257A JP21725790A JPH03126169A JP H03126169 A JPH03126169 A JP H03126169A JP 2217257 A JP2217257 A JP 2217257A JP 21725790 A JP21725790 A JP 21725790A JP H03126169 A JPH03126169 A JP H03126169A
Authority
JP
Japan
Prior art keywords
partitions
relation
jobs
type
estimated
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
JP2217257A
Other languages
English (en)
Other versions
JPH07111718B2 (ja
Inventor
Daniel M Dias
ダニエル・マニユエル・デイアズ
Joel L Wolf
ジヨエル・レオナード・ウオルフ
Philip S Yu
フイリツプ・シーラング・ユ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03126169A publication Critical patent/JPH03126169A/ja
Publication of JPH07111718B2 publication Critical patent/JPH07111718B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、一般に、マルチプロセッサ環境でのリレーシ
ーナル・データベースの管理に関し、より具体的には、
結合操作を別々のジョブに区分し、それらのジョブを複
数のプロセッサ間で最適にスケジューリングすることに
より、データ・スキューの存在下で並列リレーシロナル
・データベース環境にある共通フィールド上の2つのデ
ータベース・リレーションを結合することに関する。
B、従来の技術 各種リレーシロナル・データベースのシステムにおける
共通の操作は、共通ドメインで定義されたそれぞれのカ
ラム上の2つのリレーションの自然結合である。たとえ
ば、C,デー) (Date)著、”An Intro
duction to Database Syste
ms 1vO1,1、第3版、Addison−IJe
sley社刊(1882年)のI)p、209〜210
にある自然結合の説明を参照されたい。結合の結果、各
行が、元のそれぞれのりレージ鯉ンから1行ずつ、共に
当該の結合カラム内で同じ値をもつ2つの行の連結であ
る、新しいリレーションが得られる。
2つのりレージ績ンの結合を計算するためのよく使用さ
れるアルゴリズムは、M、ブラスゲン(Blasgen
)及びに、エスワラン(Eswaran )の論文”S
torage and Access in Re1a
tionalDatabases  s  IBM  
Systems  Journall V o  l 
 、  4 spp、383以降(1977年)に記載
されているようなソート/マージ技法である。それは、
次のように簡潔に要約することができる。まず(必要が
あれば)それぞれのりレージ1ンが結合カラムに従って
ソートされる。第2に、2つのソートされたリレーショ
ンが、明白なインタロック・シーケンスで走査され、等
しい値をもつ行についてマージされる。
ソート/マージ結合が、マルチプロセッサ・データベー
ス・システム上で並列に実行されるときは、リレーショ
ンの結合カラム内にデータ・スキューが生じるという問
題がある。一般的に、スキューの問題は、上記文献に記
載された結合アルゴリズムによっては解決されない。並
列ソート/マージ結合に関する初期の論文には、D、ビ
トン(Bitton) 、h H、ボラル(Boral
)、D、J、デウィッ) (Del/ftt) 、W、
 K 、ウィルキンソンCVilkinson)の論文
”Parallel Algorithms for 
the Executionof Re1ationa
l Database 0perations”IAC
M Trans。
on Database 5yste+5s1V o 
l 、 8、N013.1883年9月、I)1)、3
24〜353がある。
上記論文では、2つの外部並列ソート・アルゴリズムが
提案され、それらは並列2進マージ及びブロック・ビッ
トニック・ソートと呼ばれている。
どちらのアルゴリズムでも、ソートされたランをディス
クに書き込み、ツー・ウェイ・マージを使って、ディス
クからランをマージする。マージ・ツリーが、異なるプ
ロセッサにマツプされ、最終マージはシーケンシャルと
なる。
P、バルドゥリエス(Valdurfez)及びG、ガ
ルダリン(Gardarfn )の論文″Join a
ndSe+*1join  A1gorith+*s 
 for  a  MultiprocessorDa
tabase Machine 、 ACM Tran
s、 on DatabaseMachineslV 
o 1 、9、NO41,1984年3月、pp、13
3〜IEIIに!t、kウェイ・マージに一般化された
アルゴリズムが記載されている。
その結果、単1プロセッサ上でシーケンシャルにマー’
)さtLる9個(pくkと仮定する)のリストが得られ
る。
J、P、  リチャードソン(Richardson)
 、H。
ルー(Lu) 、K、  ミッキリネニ(Mikkil
ineni)の論文”Design and Eval
uation of ParallelPipelin
ed  Join  A1gorithms″、 AC
M  5IGI40D  1987、サンフランシスコ
、1987年5月、pp、isO〜169には、マージ
/結合操作を並列化する方法が記載されている。この方
法では、リレーションTI及びT2が、ml及びm2個
のランにマージされる。TIが大きい方のリレーション
であると仮定すると、T1の各ランが1つのプロセッサ
に割り当てられる。各プロセッサは、T2のm2個のラ
ンをマージしくすなわち、T2の最終マージが、少なく
ともプロセッサの数と同じ回数だけ繰り返される)その
プロセッサに割り当てられたT1のランとマージ/結合
する。この方法は、結合される2つのリレーションの射
影の一方がきわめて小さいようなときには、うまく働く
。上記論文には、1つのリレーションが小さい場合に有
用な別のアルゴリズムも記載されている。
S、G、アクル(^kl)及びN、サントロ(sant
oro )の論文”0ptii+al Paralle
l Mergingand  Sorting  Wi
thout  I(emory  Conflfcts
”1 IEEETrans、  on  Co1zp、
1 Vo  l  、  C−38s  No、   
11.1987年11月、pp、1387〜13e9に
は、2つのソートされたリストを、各リストを区分する
ことにより並列にマージすることが考察されている。
2つのリレーションの結合を計算するための別のよく使
用されるアルゴリズムは、D、J、デウイット、R,H
,ガーバー(Gerber) 、G、グレーフs (G
raefe) 、M、 L、 ヘイテンス(Heyte
ns) 、K、 B、フマル(にumar) 、M、マ
ラリクリシニナ(Maralikrishna )の論
文”Multi−processor  Hash−b
ased  Join  Algorithms  1
 Proc。
11th VLDB (1985年)に記載されている
ハツシュ結合技法である。マルチプロセッサ・システム
に関しては、ハツシュ結合技法は次のように簡潔に要約
できる。まず、両方のリレーションを、結合カラムに応
じて(必要があれば)ハツシュ・パーティションにハツ
シュする。ハツシュ・パーティションの数は、一般に、
プロセ、すの数に等しくセットされる。次に、ハツシュ
・パーティションを、2つのりレージジンの対応するパ
ーティシ。
ンが同一プロセッサ上に存在するように、プロセッサ間
に分配する。第2に、2つのリレーションの対応スるハ
ツシュ・パーティションを1つに結合する。
結合照会の性能は、マルチプロセッサの使用によってス
ピードアップできることもあるが、この種の従来型結合
アルゴリズムによるスピードアップは、M、S、ラフシ
ュミー(Lakshmi )及びP。
S、−L−(Yu)の論文″Effect of 5k
ev on JoinPerformance in 
Parallel Architectures”1P
roc。
Int1、 Symposium on Databa
ses in Parallel andDistri
buted Database Systems (1
988年)に記載されているように、データ・スキュー
が存在する場合はきわめて限られている。D、A、シュ
ナイダ−(schneider )及びり、J、デウイ
ットの論文″A Performance Evalu
ation of FourParallel Joi
n Algorithms in a Shared−
NothingMultiprocessor  En
vironmentl′1 Proc、  AC!Si
gmod Conference (1989年)では
、4つの並列結合アルゴリズムの性能を評価している。
上記論文では、データ・スキューが高い場合には、ハツ
シュ結合以外のアルゴリズムを考える必要があると示唆
している。R,C,ツー(Hu)及びRoR,ムン′ン
(Muntz )の論文”Removing 5kev
Effect in Join 0peration 
on ParallelProcessors  s 
Technical  Report CSD−890
027w  UCLA(1989年)には、最大スキュ
ー要素を特定し、それを処理するために複数のプロセッ
サを割り当てる単純なハツシュ結合アルゴリズムを提案
している。
C0発明が解決しようとする課題 したがって、本発明の目的は、ソート/マージ技法、及
びハツシュ結合技法によって、並列リレーシ四ナル・デ
ータベース環境において2つのリレーションの自然結合
のための全実行時間を最小にする効率的な技法を提供す
ることである。
本発明の別の目的は、2つのリレーションの結合カラム
内に存在しうるデータ・スキューを効率的に処理する、
マルチプロセッサ・データベース・マシン上で動作する
ソート/マージ技法及びハツシュ結合技法を提供するこ
とである。
00課題を解決するための手段 本発明の広義の教示によれば、結合操作は3段階で実行
されるが、任意選択として第4段階を伴うこともある。
第1段階は準備段階であり、その詳細は使用する基礎的
結合アルゴリズムに応じて変わってくる。この準備段階
は、前処理を行ない、その結果は、最終結合操作用のサ
ブタスクを定義するための基礎として以降の段階で使用
される。
第1段階で提供されたデータを第2段階で使ってサブタ
スクを定義し、データ・スキューが存在する場合でも最
終結合操作での各プロセッサの負荷がほぼ等しくなるよ
うに、これらのサブタスクを異なるプロセッサに最適に
割り当てる。この第2段階は、本発明にとって最重要な
割当て段階である。第2段階の詳細は、基礎的結合アル
ゴリズムが異なれば異なってくる。しかし、第2段階で
、サブタスクを定義し割り当てる一般的方法は、基礎と
なるアルゴリズムが異なっても類似している。
第2段階でサブタスクの定義及び割当てを完了すると、
処理のための割当て、及び第3段階における2つのリレ
ーションの最終的結合に応じて、データがプロセッサの
間で発送される。最終結合操作でどんな方法を使用する
かは、使用する基礎的結合アルゴリズムによって決まる
。任意選択として、第3段階で実行される実際の結合中
に結合操作のバランスがくずれた場合には、サブタスク
の動的再割当てがありうる。
前述したように、結合操作は、異なる基礎的結合方法を
使用して実施できる。本発明の第1の態様では、多重プ
ロセッサ伽データベース・システム上での並列なソート
/マージ結合に基づく方法を記述する。第1段階では、
第1及び第2のりレージョブカ、フロセッサの数に対応
する数の集合に区分され、結合されるカラム上でソート
される。
第1段階からのこのソートされたデータが、第2段階に
提供される。第2段階では、第1段階からのソートされ
たデータが、サブタスクを定義するため様々なレンジ及
び多重度に再区分され、各サブタスクは1つのレンジの
パーティシ緩ンからのデータを結合する。1つのプロセ
ッサが各サブタスクを実行するのに要する時間を推定し
、数個のプロセッサ間のソート操作のバランスをとるた
めに必要なだけパーティシ目ンをさらに分割する。
最小メークスパン最適化技法に従って、シロブをプロセ
ッサ間でスケジューリングする。このアルゴリズムは、
プロセッサ間でのジョブのスケジユーリングを推定スキ
ューに基づいて更新することにより、2つのリレーショ
ンの結合カラム内に存在しうるデータ・スキューを効率
的に処理する。
本発明の第2の態様では、マルチプロセッサ・データベ
ース・システム上での並列なハツシュ結合アルゴリズム
に基づく方法を記述する。この技法は、データ・スキュ
ーを処理するために特別に設計されている。ここに提案
するアルゴリズムは、階層ハツシュ処理のコンセプトに
基づいている。
階層ハツシュ処理を最小メークスパン最適化アルゴリズ
ムと組み合わせて、ハツシュ・パーティションを繰り返
し分割し、また複数のプロセッサ内で均等にハツシュ・
パーティションの割当てを行なう。この解析の一環とし
て、あるパーティションのサイズによって、負荷のバラ
ンスが望ましい状態より悪化したとき、区分操作を改善
する。この評価段階中は、実際のハツシュ処理は実行さ
れない。その代りに、最適のハツシュ処理が後に実行で
きるように、各レベルでのハツシュ処理の有益性を評価
する。
E、実施例 以下の説明では、話を簡単にするために、マルチプロセ
ッサ・データベース・マシン内の各プロセッサは同じ計
算能力をもつと仮定する。その他の点での並列データベ
ース・アーキテクチャの性質は、本発明にとって余り重
要ではない。図面、特に第1図を参照すると、マルチプ
ロセッサ・データベース・マシンの一般的編成のブロッ
ク・ダイヤグラムが図示されている。P個のプロセッサ
101ないしLopが、インクコネクト・ネットワーク
12を介して互いにリンクされている。これらのプロセ
ッサは、インクコネクト・ネットワークエ2を介してデ
ータを変換する。各種プロセッサをインクコネクトする
ためにどんな方法を使用するかは、その方法が当面のタ
スクに対して十分な帯域幅をもっているかぎり重要では
ない。このデータベース・マシンはまた、2次記憶のた
めに通常の磁気ディスク装置18[ないし18poを使
用象             P する。ソートまたは結合されるリレーションは、これら
の磁気ディスク装置上に記憶される。
結合属性がとる値の分布は、結合操作の実行時間に対し
て相当な影響をもつ。多くのデータベースでは、1つの
属性に対しである値が他の値より頻繁に発生し、その結
果スキューのある分布が生じる。第2図に示した3つの
リレーション、CUSTOMER8,0RDER81S
UPPLIER8を考えてみる。CUSTOMERSリ
レーション上のカストマIDは一義的な値をとるが、0
RDERSリレーシeン上の同じ属性は非−義的な値を
とることができる。というのは、カストマが複数の品目
を注文する場合があるからである。さらに、所与の品目
を複数のカストマが注文することがあり、複数の供給者
が1つの品目を供給することもありうる。
その注文が未処理のすべてのカストマをリストするため
に必要な照会があると、0RDERSリレーシeンとC
USTOMERSリレーションがカストマIDカラム上
で結合されて、単一のスキューをもつ結合を生ずる。未
処理の注文を満たすことのできるすべての供給者をリス
トするために必要な照会が行なわれると、0RDERS
リレーシジンと5UPPL I ERSリレーシ式ンカ
品目カラム上で結合されて、二重スキューをもつ結合を
生ずる。単一スキュー及び二重スキューという用語は、
一方または両方のリレーションの結合属性がスキューの
ある分布をもつことを表すために使用する。
本発明による結合操作は、第3図に示したように、3つ
の段階と、任意選択として第4の段階をもつ。段階1は
準備段階であり、本発明のすべての態様に共通である。
ただし、この段階の詳細は、使用する基礎的結合アルゴ
リズムに応じて変わってくる。この段階については、2
つの基礎的結合アルゴリズムに関してより詳細に説明す
る。具体的には、まず本発明のソート/マージに基づ〈
実施例に関して段階1を説明し、次に、本発明のハツシ
ュに基づ〈実施例に関して段階1を説明する。
段階1の準備フェーズでは前処理を行ない、その結果を
、段階3の最終結合操作用のサブタスク定義のための基
礎として段階2で使用する。より具体的には、段階1で
提供されるデータを使ってサブタスクを定義し、データ
・スキューが存在する場合でも段階3の最終結合操作で
プロセッサの負荷がほぼ等しくなるように、これらのサ
ブタスクを異なるプロセッサに最適に割り振る。このよ
うに、段階2は割当て段階であり、本発明にとって最も
重要なものである。以下の説明では、ソート/マージ、
及び本発明のハツシュに基づく2つの実施例に関して、
段階2に含まれる諸ステップを詳細に説明する。
段階2でサブタスクの定義及び割当てが完了すると、結
合されるリレーションのパーティションが、段階3で2
つのりレージ鯉ンを処理し最終的に結合するために、割
り当てられたプロセッサに発送される。最終的結合操作
でどんな方法を使用するかは、基礎的結合方法に応じて
決まる。任意選択として、段階4は、プロセッサがその
進行状況を報告するものである。段階2での割当ては、
サブタスク時間の推定値に基づくので、段階3で開始さ
れる結合操作のバランスがくずれることがありうる。こ
のアンバランスが所定のしきい値を超えた場合、段階2
の割当てを、任意選択として動的に変更することもでき
る。
これから説明する本発明の第1の態様は、ソート/マー
ジ結合アルゴリズムに基づく基礎的結合方法に関するも
のである。リレーションR3がN。
行を含み、リレーションR2がN2行を含むと仮定する
。Pはデータベース・システム内のプロセッサの数を表
す。
本発明の第1段階では、Rtの1組の行を、できるだけ
均等に、1組がほぼN s / P行からなるP組に区
分する。言いかえると、パーティシ1ン次に各プロセッ
サに、ソートすべきパーティシ。
ンの1つを与える。各プロセッサは、はぼ等しい時間で
、各自のタスクを完了しなければならない。
第2のリレーションも同様にソートする。この段階の終
了時には、P個のソートされたrラン」が2組ある。
本発明の第2段階を導入するために、結合カラムのドメ
イン内の2つの値をV1、V2 CVs≦V 2 )と
する。2P個のソートされたランのどれか1つ、たとえ
ばリレーションlε(1,2)とプロセッサjε(1,
1、1、P)に対応するランが与えられているものとす
ると、区間[V l−V 2 ]内にソート・カラム値
をもつすべての行からなる明確に定義された(恐らく空
の)連続する部分集合ρlJ、V1.V2が存在する0
ρIJ、V1、V2のそれぞれを最終ソート及びマージ
のために単一プロセッサに発送すると、結合操作の残り
の部分全体の独立サブタスクτ’V1.V2が得られる
。ここで上付き文字は、単一のプロセッサが関与してい
ることを強調するためのものである。このことの意味は
、以下の説明で明らかになる。このサブタスクを実行す
るのにかかる時間はT’V1.V2=A (I t+ 
I2) +BOと推定される。ここで はR1からの入力の行数、0はR1とR2のマージから
の出力の行数、AとBは既知の定数である。
各ρ、1.v□、V□の値が、Vlとv2の間の基礎ド
メイン内のDV1、V2個の要素にわたって均等に分配
されていると仮定すると、o=tlI2’I)V1、V
2を計算することができる。
Vl<V2という特別の場合には、Oの計算は単に推定
値になる。Vl<V2を満たす対(Vt、 V2)をタ
イプ1の対と呼ぶ。vI=V2という特別の場合には、
0の式は0 ” I II 2に簡約される。事実、出
力は2つの入力のちょうど外積であり、したがって、こ
の式は、この場合厳密に正確である。v1=v2を満た
す対(V t = V 2 )をタイプ2の対と呼ぶ。
実際に、タイプ2の対では、■=V1=v2とすると、
さらに、2つの集合 の大きい方をできるだけ均等にM個(ただし、1≦M;
!iP)の行の集合に区分し、さらに小さい独立サブタ
スクτ’V1.V2+ −1,*  τ’V1.V2を
作成できる可能性を考えることができる。サブタスクτ
′″VLV2w m  (L 1、、* M)では、小
さい方の集合と大きい方の集合のm番目のパーティショ
ンとの外積が単一プロセッサ上で実行される。たとえば
、第1のリレーションの方が大きい行数を含むと仮定す
ると、このサブタスクを実行するのにかかる時間は、T
”VI、V2=A (I”l+ I2) +BI’″□
I2となる。ここで、I”lはm番目のノ(−ティジョ
ン内の行数である。M個のサブタスクをそれぞれ異なる
プロセッサで実行すべきであるとは主張しないが、実際
にはそうなる可能性が大きい。明らかに、M〉1個のサ
ブタスクを実行するのは、1つのサブタスクを実行する
よりも効率が低い。というのは、小さい方のりレージ騨
ン(この場合にはR2)からの入力を、関係する各プロ
セッサに発送しなければならないからである。過剰なス
キューを処理するために、この手法を利用しているにす
ぎない。タイプ2の対(V s 、 V 2 )は、多
重度Mをもつと言う。タイプ1の対(vl。
V 2 )は、多重度1をもつと言う。
次に一般的手法について述べる。結合カラムのドメイン
内の対応する多重度をもつに対の値の順序シーケンスを
作成するものと仮定する。このシーケンスは、次の形を
もつ。
VB、 1 fa V1、2<1、、 < Vm−1,
1:a Vk−s、2≦Vk、 t≦Vh、2<Vh+
1.1≦V+cB、2<1、、くV1、1≦Vh、2 R1とR2の結合カラム内の各値は、区間[Vh、+。
■3.2コの1つ内に収まることが必要である。k(1
t −0−t k ) ニツイテ、対(Vh、t、Vh
、2)の多重度をMkで表すことにする。P個のプロセ
ラτ”Vk、1.Vk、2を作成した。必束な全計算時
間は、コノ時間をプロセッサの間でできるだけ均等に分
配したい。「完全」な割当ては必ずしも可能ではないが
、それができれば、各プロセッサがとなるはずである。
具体的には、ジョブ全体の完了時間 A(τ”v   、v   )”p k、I    k、2 が最小になるように、各サブタスクτVk+ In V
k+ 2をプロセッサA(τ”vh、+、vh、2)に
割り当てたい。
この最適化問題は、いわゆる最小メークスパン問題、ま
たはマルチプロセッサ・スケジューリング問題である。
この問題はNP完全であることが知られているが、最悪
の場合の性能がかなり良く、平均の性能が優れたいくつ
かのきわめて高速のヒユーリスティックスが存在する。
具体的には、LPTヒユーリスティックの説明について
は、R。
グレアム(Graham )の論文″Bounds o
nMultiprocessfng  Timing 
 Anomalies”s SIAMJournal 
 of  Computingl Vo  1.  1
  ? 、 1 989年、1)I)、418以降、M
ULTIFITヒユーリスティックの説明については、
E、コツマン(Coffman) 、M、 ギャリー(
Garey) 1D、  S。
ジロンソン(Johnson )の論文”An App
licationof Bin Packing to
 Multiprocessor Schedulin
g sSIAM  Journal  of  Com
putfngl V o  l  、  71 1 9
78年、pl)−1以降を参照されたい。
もちろん、値の対の順序シーケンス、及び対応する多重
度をどのように作成するかは制御できる。
本発明の第2段階の目標は、この順序シーケンスを作成
するための分割統治法である。その1つの例は、第4図
の流れ図に示したアルゴリズムである。
第4図を参照すると、この方法は、まず機能ブロック2
0から始まり、そこで、K=1に設定し、V1、、をR
1とR2の結合カラム内の最小値に設定し% V1、2
を最大値に設定し、かつM、=1に設定する。さらに、
そのサブタスクに対する時間を推定し、すべての現サブ
タスクのリストを維持し、推定サブタスク時間の順に並
べる。最初は、リスト上には1つの要素しかない。次に
、判断ブロック22でテストを行なって、リスト中の最
大サブタスクの推定時間がリスト中のすべてのサブタス
クの推定時間の合計の1/P以下であるかどうか、言い
換えると、最大サブタスクが「適合」するかどうか判定
する。YESの場合は、機能ブロック24で、LPTま
たはMULTIFITアルゴリズムを実行する。どちら
のアルゴリズムでも、第1ステツプであり、かつ計算上
量も費用のかかるステップは、推定時間の順にサブタス
クを並べることである。これは、この場合にはすでに済
ませである。次に、判断ブロック26でテストを行なっ
て、このメークスパンが、完全割当ての所定の乗算係数
1+の範囲内にあるかどうか判定する。YESの場合に
は、処理は停止する。そうでない場合は、判断ブロック
28でテストを行なって、タイプ1の対があるかどうか
判定する。NOの場合は、処理は停止する。そうでない
場合は、機能ブロック30で、リスト中で最大のタイプ
1の対を選択する。次に、機能ブロック32で、最大の
タイプ1の対(Vh、+−Vh、2)を、次ノヨうに2
ないし3つの部分に分割する。R1には、P個のソート
された行ρIJ、V1.V2からなる合計11個の要素
がある。R2には、P個のソートされた行ρ2J、V1
.V2からなる合計12個の要素がある。合計で、合計
11+I2個の要素をもつ2B個のソートされた行が得
られる。2.ガリール(Galil)及びN、メジラド
(Megiddo)の論文”AFastSelecti
on  Algorithm  and  the  
Problem  ofOptfmum Dfstri
bution of Effort’s Journa
l ofthe ACM、Vo 1.2B、1979年
、I)り−58以降によるアルゴリズムで、この集合の
る。これは、いわゆる選択問題の特殊な場合である。事
実、このアルゴリズムは、各集合ρlJ、V1.V2を
3つの連続する(恐らく空の)領域、すなわちμより少
ない行からなるρIJ、 vt、 v□と、μに等しい
行からなるρ〒J、V1.V□と、μより多い行からな
るρ?JIV1.V2に分割する。こうして、1つのサ
ブタスクから3つのサブタスクが作成された。第1また
は第3サブタスクのどちらか一方が空でもよいが、両方
が空になることはない。どちらか一方がタイプ1または
タイプ2でありうる。
第2のサブタスクは空にはならず、多重度1のタイプ2
になる。第5図は、この方法を用いて、どのように1つ
の古いサブタスクからこれら3つの新しいサブタスクが
作成されるかを示している。
次に、Kを調整し、間隔を決定し、新しいサブタスクの
それぞれについて時間推定値を計算する。
出力の行数が、いずれかのサブタスクに関してOである
と計算された場合には、そのサブタスクをリストから削
除することができる。2つのりレージジンの一方に対応
する部分は空であり、結合で何も生じない。
この時点で、判断ブロック34でテストを行なって、サ
ブタスクのリストが空であるかどうか判定する。YES
の場合は、処理は停止する。そうでない場合は、機能ブ
ロック36でサブタスクのリストの番号を付は直し、順
序を並べかえる。次に、判断ブロック22に戻る。
判断ブロック22のテストの結果がNoの場合は、判断
ブロック38でさらにテストを行なって、サブタスクの
リスト中の最大要素がタイプ1のものであるかどうか判
定する。YESの場合は、機能プロ、り32に進む。そ
うでない場合は、判断ブロック40でテストを行なって
、各サブタスクが適合するように、リスト中の最大サブ
タスクに対応するタイプ2の対の多重度を新しい多重度
M〈Pに増加させることが可能かどうか判定する。
YESの場合は、最小のそのような多重度が見つかり、
機能ブロック42で、サブタスクのリストを、この新し
い多重度を組み込むように改訂する。
さらに、Kを調整し、新しいサブタスクに対する推定時
間を計算してから、機能ブロック36に進む。
判断ブロック40のテストの結果がNoの場合は、機能
ブロック44で、サブタスクが多重度Pをもつように割
り当て、P個のサブタスクのそれぞれを異なるプロセッ
サに割り当て、それらのサブタスクをリストから外す。
さらに、Kを調整する。除外されたP個のサブタスクは
、はぼ等しい時間で完了する。次に判断ブロック34に
移る。
この方法は、多重度1の対に適したものであるが、過剰
なスキューを克服するため、それより高い多重度をも受
は入れることができる。これらの過剰なスキューの位置
は、アルゴリズムの実行中に自然にわかるはずである。
推定サブタスク時間モ、同様に、アルゴリズムの実行に
つれてますます正確になるはずである。上記テーマに関
しては多数の変形があり、それらも同様に実施できる。
たとえば、LPTまたはMULTIFITは、機能ブロ
ック24を通るごとに実行する必要はない。
カウンタで、最小メークスパン争アルゴリズムの実行回
数を調節することができる。同様に、このアルゴリズム
は、たとえ解答が完全に満足なものでなくても、別のカ
ウンタに従ってタイム・アウトさせることができる。
第3図に示した段階3では、リレーションR。
とR2のソートされた要素集合をディスクから読み出し
、サブタスクに対応する要素集合を、割り当てられたプ
ロセッサに発送する。次に、最終結合操作を実行するた
め、割り当てられたプロセッサ上でサブタスクを実行す
る。
任意選択として、第3図の段階4に示すように、実際の
結合の進行中に、プロセッサが各自の進行状況を報告す
ることもできる。推定サブタスク時間は、ちょうどその
値なので、結合の進行がバランスを失うことがありうる
。このアンバランスが所定のしきい値を超えた場合に、
新しいLPTまたはMULTIFITアルゴリズムを開
始することもできる。
本発明はまた、ハツシュ結合アルゴリズムに基づく方法
を使用し、第3図の段階1及び2の階層ハツシュ処理を
実施する二重ハツシュ処理技法を使用して実施すること
ができる。階層ハツシュ処理技法のその他の変形につい
ては後述する。二重ハツシュ処理は、スキュー値を特定
し、各プロセッサにおける結合コストのよりよい推定値
をもたらし、最終的には負荷のバランスをより均等にす
るために採用される。
第3図の第1段階では、まずそれぞれサイズがほぼN 
t / P行のR8のほぼ等しいパーティションタ各ハ
ツシュ・パーティションをより小すいパーティションに
さらに分割するために使用する。Hlは、行を81個の
ハツシュ・パーティションにハツシュ処理でき、B2は
、これらのパーティションのそれぞれを82個のより小
さいハツシュ・パーティションに細分できるものと仮定
する。各プロセッサjについて、HIのもとてその結合
カラムのハツシュ値がHlのに番目のハツシュ・パーテ
ィションに含まれ、B2のもとでのハツシュ値がB2の
m番目のハツシュ・パーティションに含まれる行の数を
d!、−(R1)とする。その行を、複合ハツシュ値(
k、m)をもつと言う。各プロセッサは、ディスクから
R8の要素集合を読み込み、どれだけの要素結合が、H
IとB2に基づいて細分割されたパーティションにハツ
シュ処理されるのかを記録するため、各プロセッサjの
メイン・メモリ内にカウントd’に、−(Rt)(k=
1− 1、1、Bt、及びm” 1 t −−−p B
2)を維持する。これらのプロセッサは、はぼ等しい時
間で、それぞれのタスクを完了する必要がある。第2の
リレーションも同様にハツシュ処理されて、d’に、m
 (R2)を生ずる。この段階の終了時には、2組のカ
ウントd’に、+m (Rt) i = 1 * 2が
得られる。
第3図の第2段階の開始時に、d’h、−(Rt)が各
プロセッサにわたって加算されて、βh、−(Rt) 
 =  Σ αj*、 −(Rり1≦j≦P を得る。Hlからの2PB1個のハツシュ・パーティシ
ョンのどれか1つ、たとえばリレーション1E(1,2
)、プロセッサjε(1,1、1、P)に対応する1つ
のハツシュ・パーティション、及びハツシュa パーテ
ィションにε(1、1、1、Bl)が与えられ、かつ部
分集合Eζ(is 1、1、 B2)が与えられている
ものとすると、複合ハツシュ値(k+m)、meEをも
つすべての行からなる明確に定義された(恐らく空の)
部分集合ρIJ+に+Eが存在する。ρl J、 k、
 Hのそれぞれを最終結合のために単一プロセッサに発
送すると、結合操作の残りの部分全体の独立サブタスク
τ1 h、 Eが得られる。
ここで上付き文字は、単一のプロセッサが関与している
ことを強調するためのものである。このことの意味は間
もなく明らかになる。このサブタスクを実行するのにか
かる時間は、T”k、E= A (I t+I2)+B
Oと推定される。ここで はR5からの入力の行数、0はR1とR2のマージから
の出力の行数、AとBは既知の定数である。
各ρILk+m、me Eの値が、複合ハツシュ値(k
m)をもつ基礎ドメイン内のD * 、 m個の要素に
わたって均等に分配されていると仮定できる場合には、 0= Σβ+=、−(Rt)βh、−(R2)/Dk、
1朧εE を計算することができる。
Eが単一の値、たとえばmを含む場合には、さらに次の
2組 の大きい方をできるだけ均等にM個(1=M≦P)の行
の集合に区分し、さらに小さい独立サブタスクτ’に*
(m)*−m−9τ’に、 (m)を作成できる可能性
を考えることができる。サブタスクτ’に+ (+++
) *  j(1,1、1、M)では、小さい方の集合
と大きい方の集合のj番目のサブパーティションとの結
合が、単一プロセッサ上で実行される。たとえば、第1
のリレーションの方が大きい行数を含むと仮定すると、
このサブタスクを実行するのにかかる時間は、TJk、
軸>=A ((I t/M) + I2) +BIII
2/Mとなる。M個のサブタスクのそれぞれを異なるプ
ロセッサ上で実行すべきであるとは主張しないが、実際
にはそうなる可能性が大きい。
明らかに、M〉1個のサブタスクを実行するのは、1つ
のサブタスクを実行するよりも効率が悪い。
\というのは、小さい方のリレーション(この場合には
R2)からの入力を、関係する各プロセッサに発送しな
ければならないからである。過剰なスキューを処理する
ために、この手法を利用しているにすぎない。複合ハツ
シユ・パーティション(k、(m) )は、多重度Mを
もつと言う。そうでない場合は、多重度1をもつと言う
次に、一般的手法について述べる。(Vh、x−Vm、
2)の形のに対の順序シーケンスを作成するものと仮定
する。ここで、vk、1ε(1,1、、。
B+) 、Vm、2C:(1,1、1、B2) 。Vk
、2がただ1つの要素を含む場合!!、(Vk、t−V
h、2)対をタイプ2の対と呼ぶ。そうでない場合は、
タイプ1の対と呼ぶ。各複合ハツシュ・クラス(is 
J)について、i:vk1、かつjεVh、2であるよ
うな独自のにε(1,1、1、k)が存在しなければな
らないという意味で、複合ハツシュ・クラスの集合を区
分するためにに対のシーケンスが必要である。k e 
(L 1、、w k) ニツイテ、対(Vh、t−Vk
、2)の多重度をNL=で表すことにする。P個のプロ
セッサで実行されるサブタスクτV”l 1* Vk+
 2を作成した。必要な全計算時間は、 この全計算時間をプロセッサの間でできるだけ均等に分
配したい。「完全な」割当ては必ずしも可能ではないが
、それができれば、各プロセッサがなるはずである。具
体的には、ジョブ全体の完了時間 ^(τ”v   、v   )”p 諏、1    k、2 が最小になるように、各サブタスクτ′″Vk、1.V
k、2をプロセッサA(τ′″vk、 1. v*、 
2 )に割り当てたい。
この最適化問題は、いわゆる最小メークスパン問題、ま
たはマルチプロセッサ・スケジューリング問題である。
この問題はNP完全であることが知られているが、最悪
の場合の性能がかなり良(、平均の性能が優れたいくつ
かのきわめて高速のヒユーリスティックスが存在する。
要は、値の対の順序シーケンス、及び対応する多重度を
どのように作成するかを制御できることである。本発明
の第2段階の目標は、この順序シーケンスを作成するた
めの分割統治法である。ここでは、段階2に進むための
可能な方法の例を2つ示す。
第1の方法は、グレアムによるLPTヒユーリスティッ
クの変形を使用するものであり、第8図の流れ図に示さ
れている。第6図を参照すると、まず機能ブロック50
で、集合((k、F)、に=1.1、1、Bl) 、た
だしF= (1,1、1、B2)を、サブタスク値T’
m、pに応じて降順でソートする。すべての現サブタス
クのリストを維持し、推定サブタスク時間の順に並べる
。次に、判断ブロック52でテストを行なって、リスト
中の最大サブタスクの推定時間が、リスト中のすべての
サブタスクの推定時間の合計の1/P以下であるかどう
か、言い換えると、最大サブタスクが「適合」するかど
うか判定する。NOの場合は、判断ブロック54でテス
トを行なって、リスト中の最大要素がタイプ1のサブタ
スクであるかどうか判定する。
YESの場合は、機能ブロック5Bで、最大タイプ1の
対(Vk、t−Vk、2) ttソtLツレ多’li度
tl 1のc a r d (Vh、2)個のタイプ2
の対に分割する。次に、機能ブロック58で、サブタス
クのリストの番号を付は直し、サブタスクのリストの順
序を並べかえてから、判断ブロック52に戻る。
判断ブロック54のテストの結果がNoの場合には、判
断ブロックθ0でさらにテストを行なって、各サブタス
クが今度は適合するように、リスト中の最大サブタスク
に対応するタイプ2の対の多重度を新しい多重度M<P
に増加させることが可能かどうか判定する。YESの場
合は、最小のそのような多重度が見つかり、機能ブロッ
クθ2で、サブタスクのリストを、この新しい多重度を
組み込むように改訂する。さらに、kを調整し、新しい
サブタスクに対する推定時間を計算する。
次に、機能ブロック58に進む。
判断ブロック80のテストがNOの場合には、機能ブロ
ック64で、サブタスクが多重度Pをもつように割り当
て、P個のサブタスクのそれぞれを異なるプロセッサに
割り当て、それらのサブタスクをリストから外す。また
kを調整する。除外されたP個のサブタスクは、はぼ等
しい時間で完了する。次に、判断ブロック66でテスト
を行なって、サブタスクのリストが空であるかどうか判
定する。YESの場合は、処理は終了する。そうでない
場合は、処理は機能ブロック58に戻る。
判断ブロック52のテストがYESの場合は、すべての
サブタスクが適合する。機能ブロック68で、目標メー
タスパン時間TARGETをリスト中のすべてのサブタ
スクの推定時間の合計の1/Pとして計算する。このT
ARGETがこの場合は安定である点が重要である。以
後のステップでタイプ1の対をタイプ2の対に分割する
ことがあり得るが、推定時間の合計は変わらない。変形
LPTは以下のステップで実行される。
TARGETと、あるプロセッサにすでに割り当てられ
たサブタスク時間の合計の差が最大であるプロセッサP
を考える。最大サブタスク(Vh、3.Vm、z)がリ
スト上に残っているものと考える。判断ブロック70で
テストを行なって、それがタイプ2のサブタスクである
かどうか判定する。YESの場合は、機能ブロック72
で、サブタスク(Vh、t−Vk、2)をプロセッサP
に割り当て、そのサブタスクをリストから外す。次に、
判断ブロック80でテストを行なって、サブタスクのリ
ストが空であるかどうか判定する。YESの場合は、処
理は終了する。そうでない場合は、処理は判断ブロック
70に戻る。
判断ブロック70の判定がNOの場合は、判断ブロック
78でテストを行なって、(Vm、1tVh、2)がプ
ロセッサPに割り当てられた場合、TARGETとプロ
セッサPに割り当てられたサブタスク時間の合計の改訂
された差が負になるかどうか判定する。NOの場合は、
機能ブロック72に移る。そうでない場合は、機能ブロ
ック74テ、(vk、I、vk、2)カソレソレ多重度
が1(Dca r d (Vh、2)個のタイプ2の対
に分割される。
機能ブロック76で、サブタスクのリストの番号を付は
直し、順序を並べかえてから、判断ブリ。
り70に戻る。
結合技法の段階2用の第2のハツシュ結合アルゴリズム
は、第7図の流れ図に示されている。第4図の流れ図と
第7図の流れ図を比較するとわかるように、ソート/マ
ージ結合アルゴリズムとこのハツシュ結合アルゴリズム
では全体の論理は全く類似している。第7図を参照する
と、処理は機能ブロック90から始まり、まず集合((
k。
F)、に=1.・−Bl)、ただしF=(1,−。
B2)、をとり、それらを、サブタスク値T’h、pに
従って降順でソートする。すべての現サブタスクのリス
トを維持し、サブタスク推定時間の順に並べる。次に、
判断ブロック92でテストを行なって、リスト中の最大
サブタスクの推定時間が、リスト中のすべてのサブタス
クの推定時間の合計の1/P以下であるかどうか、言い
換えると、最大サブタスクが「適合」するかどうか判定
する。YESの場合は、機能ブロック94で、L、PT
またはMULTIFITを実行する。この場合も、どち
らのアルゴリズムでも、第1ステツプであり、かつ計算
上量も費用のかかるステップは、推定時間の順にサブタ
スクを並べることである。これは、この場合にはすでに
済ませである。次に、判断ブロック96でテストを行な
って、このメークスパンが、完全割当ての所定の乗算係
数1+Δの範囲内にあるかどうか判定する。YESの場
合は、処理は停止する。そうでない場合は、判断ブロッ
ク98でテストを行なって、タイプ1の対が残っている
かどうか判定する。NOの場合は、処理は停止する。そ
うでない場合は、機能ブロック100で、リスト中の最
大のタイプ10対を選択する。
次に、機能ブロック102で、最大のタイプ1の対(V
h、s−Vh、2)を次のように2つの対に分割する。
各要素meVk、2について、対応するサブタスク時間
T’Vh、 r、 (m)が存在する。集合(ryk1
、(1) I m g Vm、2)に対してLPTまた
ilMULTIFITを実行し、Vk、2tt合計推定
サブタスク時間がほぼ等しい2つの部分集合V’h、2
とV2h、2に分割する。新しいサブタスクのいずれか
が時間0であると推定される場合、そのサブタスクはリ
ストから削除できる。さらに、Kを調整する。別法とし
て、最大のタイプ1の対を、2とVit、2の濃度の間
の任意の数Qのグループに分割することもできる。この
説明ではQ=2を選択した。判断ブロック104でテス
トを行なって、サブタスクのリストが空であるかどうか
判定する。
YESの場合、処理は停止する。そうでない場合は、機
能ブロック10Bでサブタスクのリストの番号を付は直
し、順序を並べかえてから、制御ブロック92に戻る。
判断ブロック92のテストの結果がNOの場合は、判断
ブロック108でテストを行なう工1、サブタスクのリ
スト中の最大要素がタイプ1のものであるかどうか判定
する。YESの場合は、機能ブロック102に進む。そ
うでない場合は、判断ブロック110でテストを行なっ
て、各サブタスクが今度は適合するようにリスト中の最
大サブタスクに対応するタイプ2の対の多重度を新しい
多重度MAPに増加させることが可能かどうか判定する
。YESの場合は、最小のそのような多重度が見つかり
、機能ブロック112で、サブタスクのリストを、この
新しい多重度を組み込むように改訂する。Kを調整し、
新しいサブタスクに対する推定時間を計算する。次に、
機能ブロック106に進む。判断ブロック110のテス
トの結果がNOの場合は、機能ブロック114で、サブ
タスクが多重度Pをもつように割り当て、P個のサブタ
スクのそれぞれを異なるプロセッサに割り当て、それら
のサブタスクをリストから外す。さらに、Kを調整する
。除外されたP個のサブタスクは、はぼ等しい時間で完
了する。次に、判断ブロック104に進む。
この方法は、多重度1の対に適したものであるが、過剰
なスキューを克服するため、それより高い多重度をも受
は入れることができる。これらの過剰なスキューの位置
は、アルゴリズムの実行中に自然にわかるはずである。
上述の方法には多数の変形があり、それも同様に実施で
きる。たとえば、どちらの方法でも、反復改良アルゴリ
ズムを終了時に適用することができる。この方法は、第
8図に示されている。この図で、GOALは、すべての
サブタスクの推定時間の合計の1/Pを表している。こ
の方法は、割り当てられたサブタスクの推定時間の合計
が最大のプロセッサPをとり出すものである。プロセッ
サPで、最大のタイプ1のサブタスク(vk、1.vk
、2)ヲトリ出シテ、それぞれ多重度が1のc a r
 d (Vh、2)個のタイプ2の対に分割する。次に
、これらのタスクを、プロセッサに再度割り当てる。第
8図に示すように、最大のサブタスクが最初に再割当て
される。
第4図に示したソート/マージ結合アルゴリズムの段階
2と同様に、第7図に示した第2のハツシュ結合アルゴ
リズムに基づく段階2用のこの方法では、LPTまたは
MULTIFITは、機能ブロック94を通るごとに実
行する必要はない。
カウンタで、最小メークスパン・アルゴリズムの実行回
数を調節することができる。同様に、このアルゴリズム
は、たとえ解答が完全に満足なものでなくても、別のカ
ウンタに従ってタイム・アウトさせることができる。
第3図に示した段階3では、リレーションR1とR2の
要素集合をディスクから読み取り、ハツシュ関数H1と
R2を適用し、それらの要素集合を、段階2で決定され
た割り当てられたプロセッサに発送する。
任意選択として、第3図に示した段階4では、実際の結
合の進行中に、プロセッサが各自の進行状況を報告する
こともできる。推定サブタスク時間がちょうどその値な
ので、結合の進行がバランスを失うことがありうる。こ
のアンバランスが所定のしきい値を超えた場合に、新し
いLPTまたはMULTIFITフルゴリズムを開始す
るとともできる。
この階層的ハツシュ処理コンセプトを実施する方法は多
数あることに留意されたい。1つの方法は、ハツシュ処
理を実行する際に、段階1で出会った各種の結合カラム
値上に最も頻繁に使用されるリストを保存するものであ
る。発生頻度も維持される。結合カラム値の発生率が所
定のしきい値より小さくなると、その結合カラムをリス
トから外す。別の方法は、ハツシュ処理を実行する際、
段階1の結合カラム値のサンプリングを実行するもので
ある。次に、最も頻繁に使用されるリストまたはサンプ
リング結果を使用して、スキュー分布を識別し、どのパ
ーティションをさらに区分するべきかを案内することも
できる。
要約すると、ソート/マージ・アルゴリズムまたはハツ
シュ結合アルゴリズムの使用に基づいて、複数のプロセ
ッサを有する並列リレーションル・データベース環境内
で1つの共通フィールド上で2つのデータベース・リレ
ーションを結合する方法を提供する。この方法は、第1
のりレージ1ンを多数のパーティションに区分し、第2
のリレーションを対応する多数のパーティションに区分
して、共通フィールド内の個々の値が、第2のリレーシ
ョンのパーティションの対応する1つに一義的に対応す
るようにし、それにより、それぞれが第1のリレーショ
ンのあるパーティションを第2のりレージlンの対応す
るパーティションと結合するタスクから構成される、ジ
ョブの現集合を定義するものである。単一のプロセッサ
が各ジョブを完了するのに要する時間を推定し、これら
の推定値が、実行推定時間の現集合を形成する。
次に、ジ目ブ実行時間を、推定時間の合計をプロセッサ
の数で割った値以下の時間に短縮することが必要である
。これを行なうには、その推定実行時間が推定時間の合
計をプロセッサの数で割った値より大きいジ胃ブに対応
するパーティションを再区分する。この再区分は、第1
のリレーションのそのようなパーティション、及び共通
フィールドに複数の異なる値を含む第2のリレーション
の対応するパーティションを、少なくとも2つのより小
さいパーティションで置き換えることによって行なう。
共通フィールド内の個々の値は、第1のりレージジンの
より小さいパーティションの1つに一義的に始応し、か
つ第2のりレージジンのより小さいパーティションの対
応する1つに一義的に対応する。これにより、ジョブの
現集合内で置換ジョブが定義される。各置換ジョブは、
第1のりレージジンのそのようなより小さなパーティシ
ョンの1つを、第2のリレーションの対応するより小さ
なパーティションと結合するタスクから構成される。第
1のりレージジンと第2のりレージ1ンの対応するパー
ティションが、共通フィールド内に1つの値のみを含む
どんなジョブに関しても、そのような対応するパーティ
ションの大きい方のものが、複数のより小さいパーティ
ションで置き換えられ、そのようなより小さいパーティ
ションの数は、そのようなジョブに関して、推定実行時
間に分割したとき、推定実行時間の合計値をプロセッサ
の数で割った値より小さい時間を与える、最小の整数で
ある。このようにして、各置換ジョブが、一方のりレー
ジジンのより小さいパーティションの1つを、他方のり
レージジンの未変更の対応するパーティションと結合す
るタスクから構成される装置換ジeブが定義される。
パーティションの再区分過程が完了すると、置き換えら
れたジリブの推定実行時間を置換ジョブの推定実行時間
で置き換えることにより、推定実行時間の現集合が更新
される。この過程は、推定実行時間の合計値をプロセッ
サの数で割った値より大きな推定実行時間が、ジョブの
現集合内のどのジョブに対してもなくなるまで、繰り返
し実行される。
本発明の重要な部分は、プロセッサ割当ての細分である
。これは、最小メークスパン最適化技法を使用して、プ
ロセッサの間でジョブの現集合をスケジューリングする
ことによって行なう。プロセッサがスケジュール通りに
ジョブの現集合を実行する場合に生ずるはずの完了時間
のスキュー量を推定する。この推定値を、スキュー標準
値と比較し、推定値が許容できる場合は、スケジューリ
ングされたジョブの現集合がプロセッサ上で実行され、
それにより、共通フィールド上の2つのデータベース・
リレーシランを最小の完了時間スキュー値で結合する。
推定スキュー値がスキュー標準値に合致しない場合は、
第1のりレージ画ン及び第2のりレージ訝ンの最大パー
ティションの1つが、少なくとも2つのより小さいパー
ティションで置き換えられて、置き換えられたパーティ
ションによって定義されるジョブに対する置換ジョブが
定義される。各置換ジョブは、第1のリレーシ「ンのよ
り小さな置換パーティションの1つを、第2のりレージ
ジンの対応するより小さい置換パーティションと結合す
るタスクから構成される。次に、置き換えられたジョブ
の推定実行時間を置換ジョブの推定実行時間で置き換え
ることにより、推定実行時間の現集合が更新される。さ
らに、ジョブの現集合のスケジューリングが、推定完了
時間スキューが最小になるように更新される。完了時間
スキューの量が推定され、スキュー標準値と比較される
。この過程は、スキュー量がスキュー標準値に合致する
か、またはすべてのパーティションが所定の最大限度に
再区分されるまで、反復して繰り返される。
F、効果 本発明は、ソート/マージ技法、及びハツシュ結合技法
によって、並列リレーシロナル・データベース環境にお
いて、2つのリレーションの自然結合のための全実行時
間を最小にする効率的な技法を提供する。
【図面の簡単な説明】
第1図は、本発明による結合手順を実施できるマルチプ
ロセッサ・データベース・マシンの一般編成のブロック
図である。 第2図は、データ・スキューの概念を図示するために使
用する3つのりレージ1ンの例を示した図である。 第3図は、本発明による結合操作の諸段階を示すハイ・
レベルのブロック図である。 第4図は、本発明によるソート/マージ結合アルゴリズ
ムを使用する結合操作の第2段階の詳細を示す流れ図で
ある。 第5図は、本発明の第1の態様でサブタスクがどのよう
により小さいサブタスクに分割されるかを示す図である
。 第6図は、本発明による第1のハツシュ結合アルゴリズ
ムを使用した結合操作の第2段階の詳細を示す流れ図で
ある。 第7図は、本発明による第2のハツシュ結合アルゴリズ
ムを使用した結合操作の第2段階の詳細を示す流れ図で
ある。 第8A図及び第8B図は、本発明のハツシュ結合操作で
サブタスクがどのように再割振りされるかを示す図であ
る。

Claims (10)

    【特許請求の範囲】
  1. (1)P個のプロセッサを有する並列リレーショナル・
    データベース環境内で共通フィールド上で2つのデータ
    ベース・リレーションを結合する方法であって、 (a)共通フィールド内の各値が第1のリレーションの
    パーティションの1つに一義的に対応し、かつ第2のリ
    レーションのパーティションのそれと対応する1つに一
    義的に対応するように、第1のリレーションを複数のパ
    ーティションに区分しかつ第2のリレーションをそれら
    に対応する複数のパーティションに区分し、それにより
    、それぞれが第1のリレーションのパーティションを第
    2のリレーションの対応するパーティションと結合する
    タスクから構成される、ジョブの現集合を定義して、そ
    れらのジョブが1つのプロセッサに適合するように、各
    ジョブの実行時間を全実行時間の1/P以下に短縮する
    ステップと、 (b)最小メークスパン最適化技法を使用して、P個の
    プロセッサ間でジョブの現集合をスケジューリングする
    ステップと、 (c)P個のプロセッサが、ステップ(b)でスケジュ
    ールされたジョブの現集合を実行する場合に生ずるはず
    の完了時間スキュー量を推定するステップと、 (d)推定スキュー量を標準スキュー量と比較するステ
    ップと、 (e)推定スキュー量が標準スキュー量に適合する場合
    は、最後にスケジューリングされたジョブの現集合をP
    個のプロセッサを使って実行し、それにより前記2つの
    データベース・リレーションを共通フィールド上で最小
    の完了時間スキューで結合するステップと を含む方法。
  2. (2)推定スキュー量が標準スキュー量に適合しない場
    合は、さらに (f)第1及び第2のリレーションの最大パーティショ
    ンの1つを少なくとも2つのより小さなパーティション
    で置き換え、それにより、置き換えられたパーティショ
    ンによって定義されるジョブについて、それぞれが第1
    のリレーションのより小さい置換パーティションの1つ
    を第2のリレーションの対応するより小さい置換パーテ
    ィションと結合するタスクから構成される、置換ジョブ
    を定義するステップと、 (g)置き換えられたジョブの推定実行時間を、置換ジ
    ョブの推定実行時間で置き換えることにより、推定実行
    時間の現集合を更新するステップと、 (h)完了時間スキュー推定値が最小になるように、P
    個のプロセッサの間でのジョブの現集合のスケジューリ
    ングを更新するステップと、 (i)P個のプロセッサが、ステップ(h)でスケジュ
    ーリングされたジョブの現集合を実行する場合に生ずる
    はずの完了時間スキュー量を推定するステップと、 (j)ステップ(1)で推定された完了時間スキュー量
    を標準スキュー量と比較するステップと、 (k)ステップ(j)でスキュー量が標準スキュー量に
    適合するか、またはすべてのパーティションが所定の最
    大限度まで再区分されてしまうまで、ステップ(e)な
    いし(j)を繰り返し実行するステップと を含む、請求項1に記載の方法。
  3. (3)区分ステップがさらに、 (l)単一プロセッサが前記ジョブのそれぞれを実行す
    るのにかかる時間を推定し、前記推定値が推定実行時間
    の現集合を形成するステップと、 (m)その推定実行時間が推定実行時間の合計をPで割
    った値より大きいジョブに対応するパーティションを再
    区分するステップと、 (n)置き換えられたジョブの推定実行時間を、置換ジ
    ョブの推定実行時間で置き換えることにより、推定実行
    時間の現集合を更新するステップと、 (o)推定実行時間の合計をPで割った値より大きな推
    定実行時間が、ジョブの現集合内のどのジョブについて
    もなくなるまで、ステップ(m)及び(n)を繰り返し
    実行するステップと を含む、請求項2に記載の方法。
  4. (4)再区分ステップがさらに、 (p)共通フィールド内のそれぞれの値が第1のリレー
    ションのより小さいパーティションの1つに一義的に対
    応し、かつ第2のリレーションのより小さいパーティシ
    ョンの対応する1つに一義的に対応するように、複数の
    明確な値を含む第1のリレーションのパーティション、
    及び第2のリレーションのそれと対応するパーティショ
    ンを、少なくとも2つのより小さいパーティションで置
    き換え、それにより、ジョブの現集合内のステップ(p
    )の任意ジョブについて、それぞれが第1のリレーショ
    ンのそのようなより小さいパーティションの1つを第2
    のリレーションの対応するより小さいパーティションと
    結合するタスクから構成される、置換ジョブを定義する
    ステップと、 (q)第1及び第2のリレーションの対応するパーティ
    ションが共通フィールド内にただ1つの明確な値を含む
    というジョブに関して、推定実行時間に分割したとき、
    推定実行時間の合計をPで割った値より小さい時間を与
    える最小の整数をXとして、そのような対応するパーテ
    ィションのより大きいものをX個のより小さいパーティ
    ションで置き換えて、それにより、ジョブの現集合内の
    そのようなステップ(q)のジョブについて、それぞれ
    が一方のリレーションのX個のより小さいパーティショ
    ンの1つを他方のリレーションの未変更の対応するパー
    ティションと結合するタスクから構成される、置換ジョ
    ブを定義するステップとを含む、請求項3に記載の方法
  5. (5)V_1及びV_2が前記第1及び第2のリレーシ
    ョンの結合カラムのドメイン内の2つの値であり、V_
    1<V_2を満たす対(V_1、V_2)がタイプ1の
    対として定義され、V_1=V_2を満たす対(V_1
    、V_2)がタイプ2の対として定義され、さらにステ
    ップ(f)の前に、 (r)少なくとも2つのより小さいパーティションで置
    き換えるために、最大のタイプ1の対を選択するステッ
    プと、 (s)タイプ1の対がない場合には、続いて、P個のプ
    ロセッサを使って最後にスケジューリングされたジョブ
    の現集合を実行し、それにより、前記の2つのデータベ
    ース・リレーションを共通フィールド上で最小の完了時
    間スキュー量で結合するステップと を含む、請求項2に記載の方法。
  6. (6)V_1及びV_2が前記第1および第2のリレー
    ションの結合カラムのドメイン内の2つの値であり、V
    _1<V_2を満たす対(V_1、V_2)がタイプ1
    の対として定義され、V_1=V_2を満たす対(V_
    1、V_2)がタイプ2の対として定義され、ステップ
    (m)で前記ジョブの1つの推定時間が合計実行時間の
    1/Pより大きいときは、さらに (t)前記の1つのジョブがタイプ1の対であるかどう
    か判定するステップと、 (u)タイプ1の対である場合には、それを、1つがタ
    イプ2である少なくとも2つのパーティションで置き換
    えるステップと、 を含む、請求項3に記載の方法。
  7. (7)前記の1つのジョブがタイプ2の対である場合に
    は、次いで (v)タイプ2の対の多重度を増加できるかどうかを判
    定するステップと、 (w)その多重度を増加できる場合には、最小の多重度
    を見つけ、ジョブの現集合を改訂するステップと、 を実行する、請求項6に記載の方法。
  8. (8)タイプ2の対の多重度を増加できない場合には、 (x)タイプ2の対を多重度Pをもつように割り当てる
    ステップと、 (y)P個のジョブのそれぞれを異なるプロセッサに割
    り当てるステップと、 を実行する、請求項7に記載の方法。
  9. (9)ステップ(a)が、2つのハッシュ関数H_1及
    びH_2を使用する階層的二重ハッシュ処理技法によっ
    て実行され、その際に、H_2は、H_1によって作成
    された各ハッシュ・パーティションをさらにより小さな
    パーティションに分割するために使用される、請求項1
    に記載の方法。
  10. (10)結合操作においてステップ(e)の間に前記プ
    ロセッサの進行状況を監視し、結合操作の進行が、所定
    のしきい値を超えてバランスを失った場合に、ステップ
    (b)ないし(d)を反復するという、請求項1に記載
    の方法。
JP2217257A 1989-10-05 1990-08-20 データベース・リレーシヨンの結合方法 Expired - Lifetime JPH07111718B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US417366 1989-10-05
US07/417,366 US5121494A (en) 1989-10-05 1989-10-05 Joining two database relations on a common field in a parallel relational database field

Publications (2)

Publication Number Publication Date
JPH03126169A true JPH03126169A (ja) 1991-05-29
JPH07111718B2 JPH07111718B2 (ja) 1995-11-29

Family

ID=23653718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2217257A Expired - Lifetime JPH07111718B2 (ja) 1989-10-05 1990-08-20 データベース・リレーシヨンの結合方法

Country Status (4)

Country Link
US (1) US5121494A (ja)
EP (1) EP0421408B1 (ja)
JP (1) JPH07111718B2 (ja)
DE (1) DE69030228T2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119214A (ja) * 1992-10-09 1994-04-28 Fujitsu Ltd リレーショナルデータベースシステム
JPH07319923A (ja) * 1994-04-04 1995-12-08 At & T Global Inf Solutions Internatl Inc マルチプロセッサコンピュータシステムの並行データベースを処理するための方法および装置
JP2003529808A (ja) * 1999-01-13 2003-10-07 エービー イニティオ ソフトウェア コーポレーション スクリプト駆動ツールの並列処理アプリケーション
JP2006347162A (ja) * 2005-05-17 2006-12-28 Brother Ind Ltd インク給送装置及びインクジェット記録装置
JP2009140096A (ja) * 2007-12-04 2009-06-25 Nippon Telegr & Teleph Corp <Ntt> 分散インデックス結合方法及びシステム
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US9891901B2 (en) 2013-12-06 2018-02-13 Ab Initio Technology Llc Source code translation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07104871B2 (ja) * 1989-08-31 1995-11-13 三菱電機株式会社 リレーショナル・データベースにおけるジョイン処理方式
JPH03130842A (ja) * 1989-10-17 1991-06-04 Toshiba Corp データベースシステムの同時実行制御装置
US5241648A (en) * 1990-02-13 1993-08-31 International Business Machines Corporation Hybrid technique for joining tables
US5291583A (en) * 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US5307485A (en) * 1991-05-31 1994-04-26 International Business Machines Corporation Method and apparatus for merging sorted lists in a multiprocessor shared memory system
JPH077422B2 (ja) * 1991-08-23 1995-01-30 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム
US5345585A (en) * 1991-12-02 1994-09-06 International Business Machines Corporation Method for optimizing processing of join queries by determining optimal processing order and assigning optimal join methods to each of the join operations
JP3526585B2 (ja) * 1992-03-12 2004-05-17 株式会社リコー 分散データベースの質問処理最適化方式
US5418854A (en) * 1992-04-28 1995-05-23 Digital Equipment Corporation Method and apparatus for protecting the confidentiality of passwords in a distributed data processing system
JP3202074B2 (ja) * 1992-10-21 2001-08-27 富士通株式会社 並列ソート方式
US5423035A (en) * 1992-12-23 1995-06-06 Hughes Aircraft Company Method for evaluating relational database queries with automatic indexing and ordering of join components
US5473741A (en) * 1993-08-30 1995-12-05 Graphic Systems Technology, Inc. Method for determining the time to perform raster image processing
WO1995009395A1 (en) * 1993-09-27 1995-04-06 Oracle Corporation Method and apparatus for parallel processing in a database system
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5765146A (en) * 1993-11-04 1998-06-09 International Business Machines Corporation Method of performing a parallel relational database query in a multiprocessor environment
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US6009265A (en) * 1994-02-25 1999-12-28 International Business Machines Corporation Program product for optimizing parallel processing of database queries
US5574900A (en) * 1994-02-25 1996-11-12 International Business Machines Corporation System and method for optimizing parallel processing of database queries
US5542089A (en) * 1994-07-26 1996-07-30 International Business Machines Corporation Method and apparatus for estimating the number of occurrences of frequent values in a data set
GB9417314D0 (en) * 1994-08-27 1994-10-19 Int Computers Ltd Method for performing joins in a database system
JP3201945B2 (ja) * 1995-01-10 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースのテーブルを比較する方法
JP3560690B2 (ja) * 1995-06-14 2004-09-02 富士通株式会社 並列プロセッサ装置
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
WO1997011433A1 (en) * 1995-09-21 1997-03-27 The Trustees Of Columbia University In The City Of New York Performing efficient join operations on large tables
US5666525A (en) * 1995-09-21 1997-09-09 The Trustees Of Columbia University In The City Of New York System and method for performing an efficient join operation on large tables with a small main memory
USRE37965E1 (en) * 1995-09-27 2003-01-07 International Business Machines Corporation Method for localizing execution or subqueries and determining collocation of execution of subqueries in a parallel database
US5745746A (en) * 1996-06-24 1998-04-28 International Business Machines Corporation Method for localizing execution of subqueries and determining collocation of execution of subqueries in a parallel database
US5774692A (en) * 1995-10-05 1998-06-30 International Business Machines Corporation Outer quantifiers in object-oriented queries and views of database systems
US5797136A (en) * 1995-10-05 1998-08-18 International Business Machines Corporation Optional quantifiers in relational and object-oriented views of database systems
US5758345A (en) * 1995-11-08 1998-05-26 International Business Machines Corporation Program and method for establishing a physical database layout on a distributed processor system
US5752072A (en) * 1996-05-09 1998-05-12 International Business Machines Corporation Sorting scheme without compare and branch instructions
US5873074A (en) * 1997-04-18 1999-02-16 Informix Software, Inc. Applying distinct hash-join distributions of operators to both even and uneven database records
US5983215A (en) * 1997-05-08 1999-11-09 The Trustees Of Columbia University In The City Of New York System and method for performing joins and self-joins in a database system
US6704866B1 (en) 1997-07-11 2004-03-09 Cisco Technology, Inc. Compression and encryption protocol for controlling data flow in a network
US6092061A (en) * 1997-08-15 2000-07-18 International Business Machines Corporation Data partitioning by co-locating referenced and referencing records
US5884320A (en) * 1997-08-20 1999-03-16 International Business Machines Corporation Method and system for performing proximity joins on high-dimensional data points in parallel
US6006232A (en) * 1997-10-21 1999-12-21 At&T Corp. System and method for multirecord compression in a relational database
JP3571201B2 (ja) * 1997-12-12 2004-09-29 富士通株式会社 データベース検索装置及びデータベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体
US6401188B1 (en) 1998-02-27 2002-06-04 Cisco Technology, Inc. Method for selection on a pattern sequence
US6292822B1 (en) 1998-05-13 2001-09-18 Microsoft Corporation Dynamic load balancing among processors in a parallel computer
US6106575A (en) * 1998-05-13 2000-08-22 Microsoft Corporation Nested parallel language preprocessor for converting parallel language programs into sequential code
WO2000011574A2 (en) * 1998-08-20 2000-03-02 Equifax, Inc. System and method for updating a credit information database
US6226639B1 (en) 1998-09-22 2001-05-01 International Business Machines Corporation System and method for hybrid hash join using over-partitioning to respond to database query
US6601058B2 (en) 1998-10-05 2003-07-29 Michael Forster Data exploration system and method
US6327587B1 (en) 1998-10-05 2001-12-04 Digital Archaeology, Inc. Caching optimization with disk and/or memory cache management
US6253197B1 (en) 1998-10-06 2001-06-26 International Business Machines Corporation System and method for hash loops join of data using outer join and early-out join
US6275987B1 (en) * 1998-11-05 2001-08-14 International Business Machines Corporation Adaptive, predictive progress indicator
US6341346B1 (en) 1999-02-05 2002-01-22 Cisco Technology, Inc. Method for comparison between a pattern sequence and a variable length key
US6640221B1 (en) 2000-07-10 2003-10-28 Sas Institute Inc. System and method for configuring, sequencing and viewing joins in a query
US20020091752A1 (en) * 2001-01-09 2002-07-11 Firlie Bradley M. Distributed computing
US7213025B2 (en) * 2001-10-16 2007-05-01 Ncr Corporation Partitioned database system
US7080072B1 (en) 2001-11-14 2006-07-18 Ncr Corp. Row hash match scan in a partitioned database system
US7035851B1 (en) * 2001-12-07 2006-04-25 Ncr Corp. Reorganization of database records using partition merging
US7120648B2 (en) * 2002-02-26 2006-10-10 International Business Machines Corporation System and method for predicting execution time of a database utility command
US6954748B2 (en) * 2002-04-25 2005-10-11 International Business Machines Corporation Remote data access and integration of distributed data sources through data schema and query abstraction
US7882100B2 (en) * 2005-01-24 2011-02-01 Sybase, Inc. Database system with methodology for generating bushy nested loop join trees
US8589944B2 (en) * 2005-03-16 2013-11-19 Ricoh Production Print Solutions Method and system for task mapping to iteratively improve task assignment in a heterogeneous computing system
US7685193B2 (en) * 2006-04-28 2010-03-23 Kognitio Limited Database system with multiple processing nodes
FR2907567B1 (fr) * 2006-10-23 2008-12-26 Canon Kk Procede et dispositif de generation de motifs de reference a partir d'un document ecrit en langage de balisage et procedes et dispositifs de codage et de decodage associes.
US7636712B2 (en) * 2006-11-14 2009-12-22 Microsoft Corporation Batching document identifiers for result trimming
US20080140696A1 (en) * 2006-12-07 2008-06-12 Pantheon Systems, Inc. System and method for analyzing data sources to generate metadata
US8799272B2 (en) 2007-07-20 2014-08-05 Hewlett-Packard Development Company, L.P. Data skew insensitive parallel join scheme
US7945529B2 (en) * 2007-12-27 2011-05-17 Business Objects, S.A. Apparatus and method for performing table comparisons
US8078610B2 (en) * 2008-03-26 2011-12-13 Teradata Us, Inc. Optimization technique for dealing with data skew on foreign key joins
US7941424B2 (en) * 2008-05-30 2011-05-10 Teradata Us, Inc. System, method, and computer-readable medium for dynamic detection and management of data skew in parallel join operations
US8195644B2 (en) * 2008-10-06 2012-06-05 Teradata Us, Inc. System, method, and computer-readable medium for optimization of multiple parallel join operations on skewed data
US8930954B2 (en) * 2010-08-10 2015-01-06 International Business Machines Corporation Scheduling parallel data tasks
US9600513B2 (en) 2011-06-09 2017-03-21 International Business Machines Corporation Database table comparison
US8868545B2 (en) * 2011-12-29 2014-10-21 Teradata Us, Inc. Techniques for optimizing outer joins
US8825633B2 (en) 2012-05-15 2014-09-02 Sas Institute Inc. System, method, and data structure for automatically generating database queries which are data model independent and cardinality independent
JP6183374B2 (ja) 2012-10-31 2017-08-23 日本電気株式会社 データ処理システム、データ処理方法およびプログラム
US20140214886A1 (en) 2013-01-29 2014-07-31 ParElastic Corporation Adaptive multi-client saas database
US10585896B2 (en) * 2013-03-12 2020-03-10 Red Hat, Inc. Managing data in relational database management system
US9305074B2 (en) * 2013-06-19 2016-04-05 Microsoft Technology Licensing, Llc Skew-aware storage and query execution on distributed database systems
US9836505B2 (en) 2014-03-13 2017-12-05 Sybase, Inc. Star and snowflake join query performance
US9792328B2 (en) 2014-03-13 2017-10-17 Sybase, Inc. Splitting of a join operation to allow parallelization
US10042876B2 (en) 2014-09-17 2018-08-07 International Business Machines Corporation Sort-merge-join on a large architected register file
US10545923B1 (en) * 2017-12-19 2020-01-28 Teradata Us, Inc. Reducing skew for database operation processing with randomization
US11868331B1 (en) 2018-05-21 2024-01-09 Pattern Computer, Inc. Systems and methods for aligning big data tables in linear time
US11157496B2 (en) 2018-06-01 2021-10-26 International Business Machines Corporation Predictive data distribution for parallel databases to optimize storage and query performance
US11163764B2 (en) 2018-06-01 2021-11-02 International Business Machines Corporation Predictive data distribution for parallel databases to optimize storage and query performance
CN109885384B (zh) * 2018-12-13 2023-02-07 平安壹钱包电子商务有限公司 任务并行度优化方法、装置、计算机设备及存储介质
US11573823B2 (en) 2019-11-18 2023-02-07 International Business Machines Corporation Parallel execution of applications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58151664A (ja) * 1982-03-02 1983-09-08 Fujitsu Ltd ジヨブ選択方式
JPS63147257A (ja) * 1986-12-10 1988-06-20 Fujitsu Ltd 並列データ再分配方法及びマルチプロセッサシステム
JPH01237872A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd 負荷分散処理方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58151664A (ja) * 1982-03-02 1983-09-08 Fujitsu Ltd ジヨブ選択方式
JPS63147257A (ja) * 1986-12-10 1988-06-20 Fujitsu Ltd 並列データ再分配方法及びマルチプロセッサシステム
JPH01237872A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd 負荷分散処理方式

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119214A (ja) * 1992-10-09 1994-04-28 Fujitsu Ltd リレーショナルデータベースシステム
JPH07319923A (ja) * 1994-04-04 1995-12-08 At & T Global Inf Solutions Internatl Inc マルチプロセッサコンピュータシステムの並行データベースを処理するための方法および装置
JP2003529808A (ja) * 1999-01-13 2003-10-07 エービー イニティオ ソフトウェア コーポレーション スクリプト駆動ツールの並列処理アプリケーション
US7047232B1 (en) 1999-01-13 2006-05-16 Ab Initio Software Corporation Parallelizing applications of script-driven tools
JP2006347162A (ja) * 2005-05-17 2006-12-28 Brother Ind Ltd インク給送装置及びインクジェット記録装置
JP2009140096A (ja) * 2007-12-04 2009-06-25 Nippon Telegr & Teleph Corp <Ntt> 分散インデックス結合方法及びシステム
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US11593369B2 (en) 2010-01-15 2023-02-28 Ab Initio Technology Llc Managing data queries
US9576028B2 (en) 2011-05-02 2017-02-21 Ab Initio Technology Llc Managing data queries
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US10521427B2 (en) 2011-05-02 2019-12-31 Ab Initio Technology Llc Managing data queries
US9891901B2 (en) 2013-12-06 2018-02-13 Ab Initio Technology Llc Source code translation
US10282181B2 (en) 2013-12-06 2019-05-07 Ab Initio Technology Llc Source code translation
US10289396B2 (en) 2013-12-06 2019-05-14 Ab Initio Technology Llc Source code translation
US11106440B2 (en) 2013-12-06 2021-08-31 Ab Initio Technology Llc Source code translation
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US11308161B2 (en) 2015-02-18 2022-04-19 Ab Initio Technology Llc Querying a data source on a network
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods

Also Published As

Publication number Publication date
EP0421408A3 (en) 1993-04-21
US5121494A (en) 1992-06-09
JPH07111718B2 (ja) 1995-11-29
EP0421408A2 (en) 1991-04-10
DE69030228T2 (de) 1997-09-18
EP0421408B1 (en) 1997-03-19
DE69030228D1 (de) 1997-04-24

Similar Documents

Publication Publication Date Title
JPH03126169A (ja) データベース・リレーシヨンの結合方法
US11650971B2 (en) System and method for large-scale data processing using an application-independent framework
US6505187B1 (en) Computing multiple order-based functions in a parallel processing database system
Chekuri et al. On multidimensional packing problems
Jackson et al. Risk pooling in a two‐period, two‐echelon inventory stocking and allocation problem
Kress et al. A worker constrained flexible job shop scheduling problem with sequence-dependent setup times
US5970495A (en) Method and apparatus for achieving uniform data distribution in a parallel database system
JP5304251B2 (ja) 並列ソート装置、方法、およびプログラム
US20070100873A1 (en) Information retrieving system
US8943057B2 (en) Method and system for distributed bulk matching and loading
Subbarayan Integrating CSP decomposition techniques and BDDs for compiling configuration problems
Chakrabarti et al. Resource scheduling for parallel database and scientific applications
Rahmaniani et al. An asynchronous parallel benders decomposition method for stochastic network design problems
Epstein et al. Robust algorithms for total completion time
Alon et al. The basic core of a parallel machines scheduling game
US20210216573A1 (en) Algorithm to apply a predicate to data sets
Yu et al. Parallel query processing
Metaxiotis et al. An elaborate analysis of production systems in industry: what a consultant should know
Philip et al. Parallel Query Processing.
Hering et al. An improved mixture of experts approach for model partitioning in VLSI-Design using Genetic Algorithms
Bouganim Query load balancing in parallel database systems
Schnekenburger External sorting for databases in distributed heterogeneous systems
Sindhupriya et al. ENHANCEMENT ON TRAFFIC AWARE PARTITION IN MAPREDUCE USING CLUSTERING TECHNIQUES.
Ojha et al. CONCEPT OF QUICK SORT FOR REPEATING ELEMENTS: A NEW APPROACH
Gupta et al. Centralized, decentralized and pipelined algorithms to parallelize joins

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071129

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20081129

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20081129

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20091129

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20091129

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20101129

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101129

Year of fee payment: 15