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
Links
- 238000000034 method Methods 0.000 title claims description 68
- 230000008878 coupling Effects 0.000 title 1
- 238000010168 coupling process Methods 0.000 title 1
- 238000005859 coupling reaction Methods 0.000 title 1
- 238000005192 partition Methods 0.000 claims abstract description 81
- 230000006870 function Effects 0.000 claims description 30
- 238000005457 optimization Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 238000005304 joining Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 244000025254 Cannabis sativa Species 0.000 description 6
- 235000012766 Cannabis sativa ssp. sativa var. sativa Nutrition 0.000 description 6
- 235000012765 Cannabis sativa ssp. sativa var. spontanea Nutrition 0.000 description 6
- 239000004866 Hashish Substances 0.000 description 6
- 239000002131 composite material Substances 0.000 description 5
- 239000011347 resin Substances 0.000 description 5
- 229920005989 resin Polymers 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007429 general method Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- WMQLLTKSISGWHQ-UHFFFAOYSA-N C1CC(NC(=O)NC)CCC1CCN1CCN(C=2C(=C(Cl)C=CC=2)Cl)CC1 Chemical compound C1CC(NC(=O)NC)CCC1CCN1CCN(C=2C(=C(Cl)C=CC=2)Cl)CC1 WMQLLTKSISGWHQ-UHFFFAOYSA-N 0.000 description 1
- 241000252210 Cyprinidae Species 0.000 description 1
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 1
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 1
- 102100025342 Voltage-dependent N-type calcium channel subunit alpha-1B Human genes 0.000 description 1
- 101710088658 Voltage-dependent N-type calcium channel subunit alpha-1B Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- QEVHRUUCFGRFIF-MDEJGZGSSA-N reserpine Chemical compound O([C@H]1[C@@H]([C@H]([C@H]2C[C@@H]3C4=C(C5=CC=C(OC)C=C5N4)CCN3C[C@H]2C1)C(=O)OC)OC)C(=O)C1=CC(OC)=C(OC)C(OC)=C1 QEVHRUUCFGRFIF-MDEJGZGSSA-N 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- 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
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
め要約のデータは記録されません。
Description
ーナル・データベースの管理に関し、より具体的には、
結合操作を別々のジョブに区分し、それらのジョブを複
数のプロセッサ間で最適にスケジューリングすることに
より、データ・スキューの存在下で並列リレーシロナル
・データベース環境にある共通フィールド上の2つのデ
ータベース・リレーションを結合することに関する。
共通の操作は、共通ドメインで定義されたそれぞれのカ
ラム上の2つのリレーションの自然結合である。たとえ
ば、C,デー) (Date)著、”An Intro
duction to Database Syste
ms 1vO1,1、第3版、Addison−IJe
sley社刊(1882年)のI)p、209〜210
にある自然結合の説明を参照されたい。結合の結果、各
行が、元のそれぞれのりレージ鯉ンから1行ずつ、共に
当該の結合カラム内で同じ値をもつ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。
l 、 8、N013.1883年9月、I)1)、3
24〜353がある。
提案され、それらは並列2進マージ及びブロック・ビッ
トニック・ソートと呼ばれている。
クに書き込み、ツー・ウェイ・マージを使って、ディス
クからランをマージする。マージ・ツリーが、異なるプ
ロセッサにマツプされ、最終マージはシーケンシャルと
なる。
ルダリン(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ウェイ・マージに一般化された
アルゴリズムが記載されている。
)さtLる9個(pくkと仮定する)のリストが得られ
る。
、H。
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つのリレーションが小さい場合に有
用な別のアルゴリズムも記載されている。
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つのソートされたリストを、各リストを区分する
ことにより並列にマージすることが考察されている。
用されるアルゴリズムは、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。
ハツシュ結合技法である。マルチプロセッサ・システム
に関しては、ハツシュ結合技法は次のように簡潔に要約
できる。まず、両方のリレーションを、結合カラムに応
じて(必要があれば)ハツシュ・パーティションにハツ
シュする。ハツシュ・パーティションの数は、一般に、
プロセ、すの数に等しくセットされる。次に、ハツシュ
・パーティションを、2つのりレージジンの対応するパ
ーティシ。
に分配する。第2に、2つのリレーションの対応スるハ
ツシュ・パーティションを1つに結合する。
ピードアップできることもあるが、この種の従来型結合
アルゴリズムによるスピードアップは、M、S、ラフシ
ュミー(Lakshmi )及びP。
ev on JoinPerformance in
Parallel Architectures”1P
roc。
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年)には、最大スキュ
ー要素を特定し、それを処理するために複数のプロセッ
サを割り当てる単純なハツシュ結合アルゴリズムを提案
している。
びハツシュ結合技法によって、並列リレーシ四ナル・デ
ータベース環境において2つのリレーションの自然結合
のための全実行時間を最小にする効率的な技法を提供す
ることである。
内に存在しうるデータ・スキューを効率的に処理する、
マルチプロセッサ・データベース・マシン上で動作する
ソート/マージ技法及びハツシュ結合技法を提供するこ
とである。
されるが、任意選択として第4段階を伴うこともある。
結合アルゴリズムに応じて変わってくる。この準備段階
は、前処理を行ない、その結果は、最終結合操作用のサ
ブタスクを定義するための基礎として以降の段階で使用
される。
スクを定義し、データ・スキューが存在する場合でも最
終結合操作での各プロセッサの負荷がほぼ等しくなるよ
うに、これらのサブタスクを異なるプロセッサに最適に
割り当てる。この第2段階は、本発明にとって最重要な
割当て段階である。第2段階の詳細は、基礎的結合アル
ゴリズムが異なれば異なってくる。しかし、第2段階で
、サブタスクを定義し割り当てる一般的方法は、基礎と
なるアルゴリズムが異なっても類似している。
処理のための割当て、及び第3段階における2つのリレ
ーションの最終的結合に応じて、データがプロセッサの
間で発送される。最終結合操作でどんな方法を使用する
かは、使用する基礎的結合アルゴリズムによって決まる
。任意選択として、第3段階で実行される実際の結合中
に結合操作のバランスがくずれた場合には、サブタスク
の動的再割当てがありうる。
使用して実施できる。本発明の第1の態様では、多重プ
ロセッサ伽データベース・システム上での並列なソート
/マージ結合に基づく方法を記述する。第1段階では、
第1及び第2のりレージョブカ、フロセッサの数に対応
する数の集合に区分され、結合されるカラム上でソート
される。
提供される。第2段階では、第1段階からのソートされ
たデータが、サブタスクを定義するため様々なレンジ及
び多重度に再区分され、各サブタスクは1つのレンジの
パーティシ緩ンからのデータを結合する。1つのプロセ
ッサが各サブタスクを実行するのに要する時間を推定し
、数個のプロセッサ間のソート操作のバランスをとるた
めに必要なだけパーティシ目ンをさらに分割する。
ッサ間でスケジューリングする。このアルゴリズムは、
プロセッサ間でのジョブのスケジユーリングを推定スキ
ューに基づいて更新することにより、2つのリレーショ
ンの結合カラム内に存在しうるデータ・スキューを効率
的に処理する。
ース・システム上での並列なハツシュ結合アルゴリズム
に基づく方法を記述する。この技法は、データ・スキュ
ーを処理するために特別に設計されている。ここに提案
するアルゴリズムは、階層ハツシュ処理のコンセプトに
基づいている。
ムと組み合わせて、ハツシュ・パーティションを繰り返
し分割し、また複数のプロセッサ内で均等にハツシュ・
パーティションの割当てを行なう。この解析の一環とし
て、あるパーティションのサイズによって、負荷のバラ
ンスが望ましい状態より悪化したとき、区分操作を改善
する。この評価段階中は、実際のハツシュ処理は実行さ
れない。その代りに、最適のハツシュ処理が後に実行で
きるように、各レベルでのハツシュ処理の有益性を評価
する。
ッサ・データベース・マシン内の各プロセッサは同じ計
算能力をもつと仮定する。その他の点での並列データベ
ース・アーキテクチャの性質は、本発明にとって余り重
要ではない。図面、特に第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リレーシ式ンカ
品目カラム上で結合されて、二重スキューをもつ結合を
生ずる。単一スキュー及び二重スキューという用語は、
一方または両方のリレーションの結合属性がスキューの
ある分布をもつことを表すために使用する。
の段階と、任意選択として第4の段階をもつ。段階1は
準備段階であり、本発明のすべての態様に共通である。
リズムに応じて変わってくる。この段階については、2
つの基礎的結合アルゴリズムに関してより詳細に説明す
る。具体的には、まず本発明のソート/マージに基づ〈
実施例に関して段階1を説明し、次に、本発明のハツシ
ュに基づ〈実施例に関して段階1を説明する。
、段階3の最終結合操作用のサブタスク定義のための基
礎として段階2で使用する。より具体的には、段階1で
提供されるデータを使ってサブタスクを定義し、データ
・スキューが存在する場合でも段階3の最終結合操作で
プロセッサの負荷がほぼ等しくなるように、これらのサ
ブタスクを異なるプロセッサに最適に割り振る。このよ
うに、段階2は割当て段階であり、本発明にとって最も
重要なものである。以下の説明では、ソート/マージ、
及び本発明のハツシュに基づく2つの実施例に関して、
段階2に含まれる諸ステップを詳細に説明する。
合されるリレーションのパーティションが、段階3で2
つのりレージ鯉ンを処理し最終的に結合するために、割
り当てられたプロセッサに発送される。最終的結合操作
でどんな方法を使用するかは、基礎的結合方法に応じて
決まる。任意選択として、段階4は、プロセッサがその
進行状況を報告するものである。段階2での割当ては、
サブタスク時間の推定値に基づくので、段階3で開始さ
れる結合操作のバランスがくずれることがありうる。こ
のアンバランスが所定のしきい値を超えた場合、段階2
の割当てを、任意選択として動的に変更することもでき
る。
ジ結合アルゴリズムに基づく基礎的結合方法に関するも
のである。リレーションR3がN。
。Pはデータベース・システム内のプロセッサの数を表
す。
均等に、1組がほぼN s / P行からなるP組に区
分する。言いかえると、パーティシ1ン次に各プロセッ
サに、ソートすべきパーティシ。
、各自のタスクを完了しなければならない。
了時には、P個のソートされたrラン」が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は既知の定数である。
メイン内のDV1、V2個の要素にわたって均等に分配
されていると仮定すると、o=tlI2’I)V1、V
2を計算することができる。
値になる。Vl<V2を満たす対(Vt、 V2)をタ
イプ1の対と呼ぶ。vI=V2という特別の場合には、
0の式は0 ” I II 2に簡約される。事実、出
力は2つの入力のちょうど外積であり、したがって、こ
の式は、この場合厳密に正確である。v1=v2を満た
す対(V t = V 2 )をタイプ2の対と呼ぶ。
さらに、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。
内の対応する多重度をもつに対の値の順序シーケンスを
作成するものと仮定する。このシーケンスは、次の形を
もつ。
1:a Vk−s、2≦Vk、 t≦Vh、2<Vh+
1.1≦V+cB、2<1、、くV1、1≦Vh、2 R1とR2の結合カラム内の各値は、区間[Vh、+。
t −0−t k ) ニツイテ、対(Vh、t、Vh
、2)の多重度をMkで表すことにする。P個のプロセ
ラτ”Vk、1.Vk、2を作成した。必束な全計算時
間は、コノ時間をプロセッサの間でできるだけ均等に分
配したい。「完全」な割当ては必ずしも可能ではないが
、それができれば、各プロセッサがとなるはずである。
k+ 2をプロセッサA(τ”vh、+、vh、2)に
割り当てたい。
たはマルチプロセッサ・スケジューリング問題である。
の場合の性能がかなり良く、平均の性能が優れたいくつ
かのきわめて高速のヒユーリスティックスが存在する。
は、R。
nMultiprocessfng Timing
Anomalies”s SIAMJournal
of Computingl Vo 1. 1
? 、 1 989年、1)I)、418以降、M
ULTIFITヒユーリスティックの説明については、
E、コツマン(Coffman) 、M、 ギャリー(
Garey) 1D、 S。
licationof Bin Packing to
Multiprocessor Schedulin
g sSIAM Journal of Com
putfngl V o l 、 71 1 9
78年、pl)−1以降を参照されたい。
度をどのように作成するかは制御できる。
するための分割統治法である。その1つの例は、第4図
の流れ図に示したアルゴリズムである。
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でありうる。
になる。第5図は、この方法を用いて、どのように1つ
の古いサブタスクからこれら3つの新しいサブタスクが
作成されるかを示している。
それぞれについて時間推定値を計算する。
と計算された場合には、そのサブタスクをリストから削
除することができる。2つのりレージジンの一方に対応
する部分は空であり、結合で何も生じない。
ブタスクのリストが空であるかどうか判定する。YES
の場合は、処理は停止する。そうでない場合は、機能ブ
ロック36でサブタスクのリストの番号を付は直し、順
序を並べかえる。次に、判断ブロック22に戻る。
ブロック38でさらにテストを行なって、サブタスクの
リスト中の最大要素がタイプ1のものであるかどうか判
定する。YESの場合は、機能プロ、り32に進む。そ
うでない場合は、判断ブロック40でテストを行なって
、各サブタスクが適合するように、リスト中の最大サブ
タスクに対応するタイプ2の対の多重度を新しい多重度
M〈Pに増加させることが可能かどうか判定する。
機能ブロック42で、サブタスクのリストを、この新し
い多重度を組み込むように改訂する。
間を計算してから、機能ブロック36に進む。
ブロック44で、サブタスクが多重度Pをもつように割
り当て、P個のサブタスクのそれぞれを異なるプロセッ
サに割り当て、それらのサブタスクをリストから外す。
、はぼ等しい時間で完了する。次に判断ブロック34に
移る。
なスキューを克服するため、それより高い多重度をも受
は入れることができる。これらの過剰なスキューの位置
は、アルゴリズムの実行中に自然にわかるはずである。
つれてますます正確になるはずである。上記テーマに関
しては多数の変形があり、それらも同様に実施できる。
ック24を通るごとに実行する必要はない。
数を調節することができる。同様に、このアルゴリズム
は、たとえ解答が完全に満足なものでなくても、別のカ
ウンタに従ってタイム・アウトさせることができる。
、サブタスクに対応する要素集合を、割り当てられたプ
ロセッサに発送する。次に、最終結合操作を実行するた
め、割り当てられたプロセッサ上でサブタスクを実行す
る。
結合の進行中に、プロセッサが各自の進行状況を報告す
ることもできる。推定サブタスク時間は、ちょうどその
値なので、結合の進行がバランスを失うことがありうる
。このアンバランスが所定のしきい値を超えた場合に、
新しいLPTまたはMULTIFITアルゴリズムを開
始することもできる。
を使用し、第3図の段階1及び2の階層ハツシュ処理を
実施する二重ハツシュ処理技法を使用して実施すること
ができる。階層ハツシュ処理技法のその他の変形につい
ては後述する。二重ハツシュ処理は、スキュー値を特定
し、各プロセッサにおける結合コストのよりよい推定値
をもたらし、最終的には負荷のバランスをより均等にす
るために採用される。
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が
得られる。
プロセッサにわたって加算されて、β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は既知の定数である。
。
わたって均等に分配されていると仮定できる場合には、 0= Σβ+=、−(Rt)βh、−(R2)/Dk、
1朧εE を計算することができる。
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個のサブタスクのそれぞれを異なるプ
ロセッサ上で実行すべきであるとは主張しないが、実際
にはそうなる可能性が大きい。
のサブタスクを実行するよりも効率が悪い。
R2)からの入力を、関係する各プロセッサに発送しな
ければならないからである。過剰なスキューを処理する
ために、この手法を利用しているにすぎない。複合ハツ
シユ・パーティション(k、(m) )は、多重度Mを
もつと言う。そうでない場合は、多重度1をもつと言う
。
2)の形のに対の順序シーケンスを作成するものと仮定
する。ここで、vk、1ε(1,1、、。
、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 )に割り当てたい。
たはマルチプロセッサ・スケジューリング問題である。
の場合の性能がかなり良(、平均の性能が優れたいくつ
かのきわめて高速のヒユーリスティックスが存在する。
どのように作成するかを制御できることである。本発明
の第2段階の目標は、この順序シーケンスを作成するた
めの分割統治法である。ここでは、段階2に進むための
可能な方法の例を2つ示す。
クの変形を使用するものであり、第8図の流れ図に示さ
れている。第6図を参照すると、まず機能ブロック50
で、集合((k、F)、に=1.1、1、Bl) 、た
だしF= (1,1、1、B2)を、サブタスク値T’
m、pに応じて降順でソートする。すべての現サブタス
クのリストを維持し、推定サブタスク時間の順に並べる
。次に、判断ブロック52でテストを行なって、リスト
中の最大サブタスクの推定時間が、リスト中のすべての
サブタスクの推定時間の合計の1/P以下であるかどう
か、言い換えると、最大サブタスクが「適合」するかど
うか判定する。NOの場合は、判断ブロック54でテス
トを行なって、リスト中の最大要素がタイプ1のサブタ
スクであるかどうか判定する。
対(Vk、t−Vk、2) ttソtLツレ多’li度
tl 1のc a r d (Vh、2)個のタイプ2
の対に分割する。次に、機能ブロック58で、サブタス
クのリストの番号を付は直し、サブタスクのリストの順
序を並べかえてから、判断ブロック52に戻る。
断ブロックθ0でさらにテストを行なって、各サブタス
クが今度は適合するように、リスト中の最大サブタスク
に対応するタイプ2の対の多重度を新しい多重度M<P
に増加させることが可能かどうか判定する。YESの場
合は、最小のそのような多重度が見つかり、機能ブロッ
クθ2で、サブタスクのリストを、この新しい多重度を
組み込むように改訂する。さらに、kを調整し、新しい
サブタスクに対する推定時間を計算する。
ック64で、サブタスクが多重度Pをもつように割り当
て、P個のサブタスクのそれぞれを異なるプロセッサに
割り当て、それらのサブタスクをリストから外す。また
kを調整する。除外されたP個のサブタスクは、はぼ等
しい時間で完了する。次に、判断ブロック66でテスト
を行なって、サブタスクのリストが空であるかどうか判
定する。YESの場合は、処理は終了する。そうでない
場合は、処理は機能ブロック58に戻る。
サブタスクが適合する。機能ブロック68で、目標メー
タスパン時間TARGETをリスト中のすべてのサブタ
スクの推定時間の合計の1/Pとして計算する。このT
ARGETがこの場合は安定である点が重要である。以
後のステップでタイプ1の対をタイプ2の対に分割する
ことがあり得るが、推定時間の合計は変わらない。変形
LPTは以下のステップで実行される。
たサブタスク時間の合計の差が最大であるプロセッサP
を考える。最大サブタスク(Vh、3.Vm、z)がリ
スト上に残っているものと考える。判断ブロック70で
テストを行なって、それがタイプ2のサブタスクである
かどうか判定する。YESの場合は、機能ブロック72
で、サブタスク(Vh、t−Vk、2)をプロセッサP
に割り当て、そのサブタスクをリストから外す。次に、
判断ブロック80でテストを行なって、サブタスクのリ
ストが空であるかどうか判定する。YESの場合は、処
理は終了する。そうでない場合は、処理は判断ブロック
70に戻る。
78でテストを行なって、(Vm、1tVh、2)がプ
ロセッサPに割り当てられた場合、TARGETとプロ
セッサPに割り当てられたサブタスク時間の合計の改訂
された差が負になるかどうか判定する。NOの場合は、
機能ブロック72に移る。そうでない場合は、機能ブロ
ック74テ、(vk、I、vk、2)カソレソレ多重度
が1(Dca r d (Vh、2)個のタイプ2の対
に分割される。
直し、順序を並べかえてから、判断ブリ。
は、第7図の流れ図に示されている。第4図の流れ図と
第7図の流れ図を比較するとわかるように、ソート/マ
ージ結合アルゴリズムとこのハツシュ結合アルゴリズム
では全体の論理は全く類似している。第7図を参照する
と、処理は機能ブロック90から始まり、まず集合((
k。
従って降順でソートする。すべての現サブタスクのリス
トを維持し、サブタスク推定時間の順に並べる。次に、
判断ブロック92でテストを行なって、リスト中の最大
サブタスクの推定時間が、リスト中のすべてのサブタス
クの推定時間の合計の1/P以下であるかどうか、言い
換えると、最大サブタスクが「適合」するかどうか判定
する。YESの場合は、機能ブロック94で、L、PT
またはMULTIFITを実行する。この場合も、どち
らのアルゴリズムでも、第1ステツプであり、かつ計算
上量も費用のかかるステップは、推定時間の順にサブタ
スクを並べることである。これは、この場合にはすでに
済ませである。次に、判断ブロック96でテストを行な
って、このメークスパンが、完全割当ての所定の乗算係
数1+Δの範囲内にあるかどうか判定する。YESの場
合は、処理は停止する。そうでない場合は、判断ブロッ
ク98でテストを行なって、タイプ1の対が残っている
かどうか判定する。NOの場合は、処理は停止する。そ
うでない場合は、機能ブロック100で、リスト中の最
大のタイプ10対を選択する。
h、s−Vh、2)を次のように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でテス
トを行なって、サブタスクのリストが空であるかどうか
判定する。
能ブロック10Bでサブタスクのリストの番号を付は直
し、順序を並べかえてから、制御ブロック92に戻る。
ブロック108でテストを行なう工1、サブタスクのリ
スト中の最大要素がタイプ1のものであるかどうか判定
する。YESの場合は、機能ブロック102に進む。そ
うでない場合は、判断ブロック110でテストを行なっ
て、各サブタスクが今度は適合するようにリスト中の最
大サブタスクに対応するタイプ2の対の多重度を新しい
多重度MAPに増加させることが可能かどうか判定する
。YESの場合は、最小のそのような多重度が見つかり
、機能ブロック112で、サブタスクのリストを、この
新しい多重度を組み込むように改訂する。Kを調整し、
新しいサブタスクに対する推定時間を計算する。次に、
機能ブロック106に進む。判断ブロック110のテス
トの結果がNOの場合は、機能ブロック114で、サブ
タスクが多重度Pをもつように割り当て、P個のサブタ
スクのそれぞれを異なるプロセッサに割り当て、それら
のサブタスクをリストから外す。さらに、Kを調整する
。除外されたP個のサブタスクは、はぼ等しい時間で完
了する。次に、判断ブロック104に進む。
なスキューを克服するため、それより高い多重度をも受
は入れることができる。これらの過剰なスキューの位置
は、アルゴリズムの実行中に自然にわかるはずである。
きる。たとえば、どちらの方法でも、反復改良アルゴリ
ズムを終了時に適用することができる。この方法は、第
8図に示されている。この図で、GOALは、すべての
サブタスクの推定時間の合計の1/Pを表している。こ
の方法は、割り当てられたサブタスクの推定時間の合計
が最大のプロセッサPをとり出すものである。プロセッ
サPで、最大のタイプ1のサブタスク(vk、1.vk
、2)ヲトリ出シテ、それぞれ多重度が1のc a r
d (Vh、2)個のタイプ2の対に分割する。次に
、これらのタスクを、プロセッサに再度割り当てる。第
8図に示すように、最大のサブタスクが最初に再割当て
される。
2と同様に、第7図に示した第2のハツシュ結合アルゴ
リズムに基づく段階2用のこの方法では、LPTまたは
MULTIFITは、機能ブロック94を通るごとに実
行する必要はない。
数を調節することができる。同様に、このアルゴリズム
は、たとえ解答が完全に満足なものでなくても、別のカ
ウンタに従ってタイム・アウトさせることができる。
要素集合をディスクから読み取り、ハツシュ関数H1と
R2を適用し、それらの要素集合を、段階2で決定され
た割り当てられたプロセッサに発送する。
合の進行中に、プロセッサが各自の進行状況を報告する
こともできる。推定サブタスク時間がちょうどその値な
ので、結合の進行がバランスを失うことがありうる。こ
のアンバランスが所定のしきい値を超えた場合に、新し
いLPTまたはMULTIFITフルゴリズムを開始す
るとともできる。
数あることに留意されたい。1つの方法は、ハツシュ処
理を実行する際に、段階1で出会った各種の結合カラム
値上に最も頻繁に使用されるリストを保存するものであ
る。発生頻度も維持される。結合カラム値の発生率が所
定のしきい値より小さくなると、その結合カラムをリス
トから外す。別の方法は、ハツシュ処理を実行する際、
段階1の結合カラム値のサンプリングを実行するもので
ある。次に、最も頻繁に使用されるリストまたはサンプ
リング結果を使用して、スキュー分布を識別し、どのパ
ーティションをさらに区分するべきかを案内することも
できる。
シュ結合アルゴリズムの使用に基づいて、複数のプロセ
ッサを有する並列リレーションル・データベース環境内
で1つの共通フィールド上で2つのデータベース・リレ
ーションを結合する方法を提供する。この方法は、第1
のりレージ1ンを多数のパーティションに区分し、第2
のリレーションを対応する多数のパーティションに区分
して、共通フィールド内の個々の値が、第2のリレーシ
ョンのパーティションの対応する1つに一義的に対応す
るようにし、それにより、それぞれが第1のリレーショ
ンのあるパーティションを第2のりレージlンの対応す
るパーティションと結合するタスクから構成される、ジ
ョブの現集合を定義するものである。単一のプロセッサ
が各ジョブを完了するのに要する時間を推定し、これら
の推定値が、実行推定時間の現集合を形成する。
の数で割った値以下の時間に短縮することが必要である
。これを行なうには、その推定実行時間が推定時間の合
計をプロセッサの数で割った値より大きいジ胃ブに対応
するパーティションを再区分する。この再区分は、第1
のリレーションのそのようなパーティション、及び共通
フィールドに複数の異なる値を含む第2のリレーション
の対応するパーティションを、少なくとも2つのより小
さいパーティションで置き換えることによって行なう。
より小さいパーティションの1つに一義的に始応し、か
つ第2のりレージジンのより小さいパーティションの対
応する1つに一義的に対応する。これにより、ジョブの
現集合内で置換ジョブが定義される。各置換ジョブは、
第1のりレージジンのそのようなより小さなパーティシ
ョンの1つを、第2のリレーションの対応するより小さ
なパーティションと結合するタスクから構成される。第
1のりレージジンと第2のりレージ1ンの対応するパー
ティションが、共通フィールド内に1つの値のみを含む
どんなジョブに関しても、そのような対応するパーティ
ションの大きい方のものが、複数のより小さいパーティ
ションで置き換えられ、そのようなより小さいパーティ
ションの数は、そのようなジョブに関して、推定実行時
間に分割したとき、推定実行時間の合計値をプロセッサ
の数で割った値より小さい時間を与える、最小の整数で
ある。このようにして、各置換ジョブが、一方のりレー
ジジンのより小さいパーティションの1つを、他方のり
レージジンの未変更の対応するパーティションと結合す
るタスクから構成される装置換ジeブが定義される。
れたジリブの推定実行時間を置換ジョブの推定実行時間
で置き換えることにより、推定実行時間の現集合が更新
される。この過程は、推定実行時間の合計値をプロセッ
サの数で割った値より大きな推定実行時間が、ジョブの
現集合内のどのジョブに対してもなくなるまで、繰り返
し実行される。
。これは、最小メークスパン最適化技法を使用して、プ
ロセッサの間でジョブの現集合をスケジューリングする
ことによって行なう。プロセッサがスケジュール通りに
ジョブの現集合を実行する場合に生ずるはずの完了時間
のスキュー量を推定する。この推定値を、スキュー標準
値と比較し、推定値が許容できる場合は、スケジューリ
ングされたジョブの現集合がプロセッサ上で実行され、
それにより、共通フィールド上の2つのデータベース・
リレーシランを最小の完了時間スキュー値で結合する。
第1のりレージ画ン及び第2のりレージ訝ンの最大パー
ティションの1つが、少なくとも2つのより小さいパー
ティションで置き換えられて、置き換えられたパーティ
ションによって定義されるジョブに対する置換ジョブが
定義される。各置換ジョブは、第1のリレーシ「ンのよ
り小さな置換パーティションの1つを、第2のりレージ
ジンの対応するより小さい置換パーティションと結合す
るタスクから構成される。次に、置き換えられたジョブ
の推定実行時間を置換ジョブの推定実行時間で置き換え
ることにより、推定実行時間の現集合が更新される。さ
らに、ジョブの現集合のスケジューリングが、推定完了
時間スキューが最小になるように更新される。完了時間
スキューの量が推定され、スキュー標準値と比較される
。この過程は、スキュー量がスキュー標準値に合致する
か、またはすべてのパーティションが所定の最大限度に
再区分されるまで、反復して繰り返される。
によって、並列リレーシロナル・データベース環境にお
いて、2つのリレーションの自然結合のための全実行時
間を最小にする効率的な技法を提供する。
ロセッサ・データベース・マシンの一般編成のブロック
図である。 第2図は、データ・スキューの概念を図示するために使
用する3つのりレージ1ンの例を示した図である。 第3図は、本発明による結合操作の諸段階を示すハイ・
レベルのブロック図である。 第4図は、本発明によるソート/マージ結合アルゴリズ
ムを使用する結合操作の第2段階の詳細を示す流れ図で
ある。 第5図は、本発明の第1の態様でサブタスクがどのよう
により小さいサブタスクに分割されるかを示す図である
。 第6図は、本発明による第1のハツシュ結合アルゴリズ
ムを使用した結合操作の第2段階の詳細を示す流れ図で
ある。 第7図は、本発明による第2のハツシュ結合アルゴリズ
ムを使用した結合操作の第2段階の詳細を示す流れ図で
ある。 第8A図及び第8B図は、本発明のハツシュ結合操作で
サブタスクがどのように再割振りされるかを示す図であ
る。
Claims (10)
- (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)推定スキュー量が標準スキュー量に適合しない場
合は、さらに (f)第1及び第2のリレーションの最大パーティショ
ンの1つを少なくとも2つのより小さなパーティション
で置き換え、それにより、置き換えられたパーティショ
ンによって定義されるジョブについて、それぞれが第1
のリレーションのより小さい置換パーティションの1つ
を第2のリレーションの対応するより小さい置換パーテ
ィションと結合するタスクから構成される、置換ジョブ
を定義するステップと、 (g)置き換えられたジョブの推定実行時間を、置換ジ
ョブの推定実行時間で置き換えることにより、推定実行
時間の現集合を更新するステップと、 (h)完了時間スキュー推定値が最小になるように、P
個のプロセッサの間でのジョブの現集合のスケジューリ
ングを更新するステップと、 (i)P個のプロセッサが、ステップ(h)でスケジュ
ーリングされたジョブの現集合を実行する場合に生ずる
はずの完了時間スキュー量を推定するステップと、 (j)ステップ(1)で推定された完了時間スキュー量
を標準スキュー量と比較するステップと、 (k)ステップ(j)でスキュー量が標準スキュー量に
適合するか、またはすべてのパーティションが所定の最
大限度まで再区分されてしまうまで、ステップ(e)な
いし(j)を繰り返し実行するステップと を含む、請求項1に記載の方法。 - (3)区分ステップがさらに、 (l)単一プロセッサが前記ジョブのそれぞれを実行す
るのにかかる時間を推定し、前記推定値が推定実行時間
の現集合を形成するステップと、 (m)その推定実行時間が推定実行時間の合計をPで割
った値より大きいジョブに対応するパーティションを再
区分するステップと、 (n)置き換えられたジョブの推定実行時間を、置換ジ
ョブの推定実行時間で置き換えることにより、推定実行
時間の現集合を更新するステップと、 (o)推定実行時間の合計をPで割った値より大きな推
定実行時間が、ジョブの現集合内のどのジョブについて
もなくなるまで、ステップ(m)及び(n)を繰り返し
実行するステップと を含む、請求項2に記載の方法。 - (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)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)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)前記の1つのジョブがタイプ2の対である場合に
は、次いで (v)タイプ2の対の多重度を増加できるかどうかを判
定するステップと、 (w)その多重度を増加できる場合には、最小の多重度
を見つけ、ジョブの現集合を改訂するステップと、 を実行する、請求項6に記載の方法。 - (8)タイプ2の対の多重度を増加できない場合には、 (x)タイプ2の対を多重度Pをもつように割り当てる
ステップと、 (y)P個のジョブのそれぞれを異なるプロセッサに割
り当てるステップと、 を実行する、請求項7に記載の方法。 - (9)ステップ(a)が、2つのハッシュ関数H_1及
びH_2を使用する階層的二重ハッシュ処理技法によっ
て実行され、その際に、H_2は、H_1によって作成
された各ハッシュ・パーティションをさらにより小さな
パーティションに分割するために使用される、請求項1
に記載の方法。 - (10)結合操作においてステップ(e)の間に前記プ
ロセッサの進行状況を監視し、結合操作の進行が、所定
のしきい値を超えてバランスを失った場合に、ステップ
(b)ないし(d)を反復するという、請求項1に記載
の方法。
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)
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)
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)
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 | 負荷分散処理方式 |
-
1989
- 1989-10-05 US US07/417,366 patent/US5121494A/en not_active Expired - Lifetime
-
1990
- 1990-08-20 JP JP2217257A patent/JPH07111718B2/ja not_active Expired - Lifetime
- 1990-10-04 DE DE69030228T patent/DE69030228T2/de not_active Expired - Lifetime
- 1990-10-04 EP EP90119011A patent/EP0421408B1/en not_active Expired - Lifetime
Patent Citations (3)
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)
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 |