JP2020512643A - 可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法 - Google Patents
可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法 Download PDFInfo
- Publication number
- JP2020512643A JP2020512643A JP2019553233A JP2019553233A JP2020512643A JP 2020512643 A JP2020512643 A JP 2020512643A JP 2019553233 A JP2019553233 A JP 2019553233A JP 2019553233 A JP2019553233 A JP 2019553233A JP 2020512643 A JP2020512643 A JP 2020512643A
- Authority
- JP
- Japan
- Prior art keywords
- node
- processing
- nodes
- layout
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
本出願は、米国特許法第119条(e)に基づいて、本明細書に全体として援用される、2017年3月29日に出願された、「可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法」というタイトルの米国仮特許出願第62/478,390号明細書の便益を主張するものである。
Claims (45)
- 少なくとも1つのコンピュータハードウェアプロセッサと、
前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、
データフローグラフを指定する情報を取得することであって、前記データフローグラフが、複数のノード、及び前記複数ノードを接続する複数のエッジを含み、前記複数のエッジが、前記複数のノードにおけるノード間のデータのフローを表し、前記複数のノードが、
1つ又は複数のノードの第1のセットであって、前記ノードの第1のセットにおける各ノードが、1つ又は複数の入力データセットのセットにおけるそれぞれの入力データセットを表す、1つ又は複数のノードの第1のセットと、
1つ又は複数のノードの第2のセットであって、前記ノードの第2のセットにおける各ノードが、1つ又は複数の出力データセットのセットにおけるそれぞれの出力データセットを表す、1つ又は複数のノードの第2のセットと、
1つ又は複数のノードの第3のセットであって、前記ノードの第3のセットにおける各ノードが、少なくとも1つの、それぞれのデータ処理動作を表す、1つ又は複数のノードの第3のセットと、
を含むことと、
前記入力データセットのセットに関する1つ又は複数の処理レイアウトの第1のセットを取得することと、
前記出力データセットのセットに関する1つ又は複数の処理レイアウトの第2のセットを取得することと、
前記処理レイアウトの第1のセット、前記処理レイアウトの第2のセット、及び異なる度合いの並列性を有する処理レイアウトの中から選択するための少なくとも1つのルールを包含する1つ又は複数のレイアウト決定ルールに基づいて、前記ノードの第3のセットにおける各ノードの処理レイアウトを決定することと、
を前記少なくとも1つのコンピュータハードウェアプロセッサに行わせるプロセッサ実行可能命令を保存する、少なくとも1つの非一時的コンピュータ可読ストレージ媒体と、
を含む、データ処理システム。 - 前記入力データセットのセットが、第1の入力データセットと、第2の入力データセットとを包含し、前記ノードの第1のセットが、前記第1の入力データセットと関連付けられた第1のノードと、前記第2の入力データセットと関連付けられた第2のノードとを包含し、及び前記1つ又は複数の処理レイアウトの第1のセットを取得することが、
前記第1の入力データセットからデータを読み取るための第1の処理レイアウトを取得することであって、前記第1のレイアウトが、少なくとも部分的に、第1の度合いの並列性を指定することと、
前記第2の入力データセットからデータを読み取るための第2の処理レイアウトを取得することであって、前記第2の処理レイアウトが、前記少なくとも部分的に指定された第1の度合いの並列性とは異なる第2の度合いの並列性を少なくとも部分的に指定することと、
を含む、請求項1に記載のデータ処理システム。 - 前記ノードの第1のセットが、前記入力データセットのセットにおける第1の入力データセットと関連付けられた第1のノードを包含し、
前記ノードの第2のセットが、前記出力データセットのセットにおける第1の出力データセットと関連付けられた第2のノードを包含し、
前記1つ又は複数の処理レイアウトの第1のセットを取得することが、前記第1の入力データセットからデータを読み取るための第1の処理レイアウトを取得することを含み、前記第1の処理レイアウトが、少なくとも部分的に、第1の度合いの並列性を指定し、及び
前記1つ又は複数の処理レイアウトの第2のセットを取得することが、前記第1の出力データセットにデータを書き込むための第2の処理レイアウトを取得することを含み、前記第2の処理レイアウトが、前記少なくとも部分的に指定された第1の度合いの並列性とは異なる第2の度合いの並列性を少なくとも部分的に指定する、請求項1又は2に記載のデータ処理システム。 - 前記出力データセットのセットが、第1の出力データセットと、第2の出力データセットとを包含し、前記ノードの第2のセットが、前記第1の出力データセットと関連付けられた第1のノードと、前記第2の出力データセットと関連付けられた第2のノードとを包含し、及び前記1つ又は複数の処理レイアウトの第1のセットを取得することが、
前記第1の出力データセットにデータを書き込むための第1の処理レイアウトを取得することであって、前記第1のレイアウトが、少なくとも部分的に、第1の度合いの並列性を指定することと、
前記第2の出力データセットにデータを書き込むための第2の処理レイアウトを取得することであって、前記第2の処理レイアウトが、前記少なくとも部分的に指定された第1の度合いの並列性とは異なる第2の度合いの並列性を少なくとも部分的に指定することと、
を含む、請求項1又は2〜3のいずれか一項に記載のデータ処理システム。 - 前記ノードの第3のセットにおける各ノードの処理レイアウトを決定することが、
前記データフローグラフの構造に従って、及び前記処理レイアウトの第1のセット及び前記1つ又は複数のレイアウト決定ルールを使用して、前記ノードの第1のセットにおけるノードから開始して行われる順方向パスで、前記第3のセットノードにおける1つ又は複数のノードの初期処理レイアウトを決定することと、
前記データフローグラフの構造に従って、及び前記処理レイアウトの第2のセット及び前記1つ又は複数のレイアウト決定ルールを使用して、前記ノードの第2のセットにおけるノードから開始して行われる逆方向パスで、前記ノードの第3のセットにおける各ノードの最終処理レイアウトを決定することと、
を含む、請求項1又は2〜4のいずれか一項に記載のデータ処理システム。 - 前記ノードの第3のセットが、第1のノードを含み、前記複数のエッジが、前記第1のノードと、前記データフローグラフにおける前記第1のノードに先行する第2のノードとの間に第1のエッジを含み、及び前記ノードの第3のセットにおける各ノードの前記初期処理レイアウトを決定することが、
前記第2のノードに関して決定された処理レイアウトに基づいて、前記第1のノードの第1の初期処理レイアウトを決定することを含む、請求項1又は2〜5のいずれか一項に記載のデータ処理システム。 - 前記複数のエッジが、前記第1のノードと、前記データフローグラフにおいて前記第1のノードに先行する第3のノードとの間に第2のエッジを含み、第3の初期処理レイアウトが、前記第3のノードに関連付けられ、及び前記第1のノードの前記第1の初期処理レイアウトを決定することが、
前記第2及び第3の処理レイアウトの一方を前記第1の処理レイアウトとして選択することを含む、請求項6又は1〜5のいずれか一項に記載のデータ処理システム。 - 前記第2の初期処理レイアウトが、第1の度合いの並列性を指定し、前記第3の初期処理レイアウトが、前記第1の度合いの並列性とは異なる第2の度合いの並列性を指定し、及び前記選択が、
前記第1の度合いの並列性が、前記第2の度合いの並列性よりも大きい場合に、前記第2の処理レイアウトを選択することと、
前記第1の度合いの並列性が、前記第2の度合いの並列性よりも小さい場合に、前記第3の処理レイアウトを選択することと、
を含む、請求項7又は1〜6のいずれか一項に記載の処理システム。 - 前記第2の初期処理レイアウト及び前記第3の初期処理レイアウトのそれぞれが、同じ度合いの並列性を指定し、前記第1のエッジが、第1の数のデータレコードのデータフローを表し、前記第2のエッジが、第2の数のデータレコードのデータフローを表し、及び前記選択が、
前記第1の数のデータレコードが、前記第2の数のデータレコードよりも多い場合に、前記第2の処理レイアウトを選択することと、
前記第1の数のデータレコードが、前記第2の数のデータレコードよりも少ない場合に、前記第3の処理レイアウトを選択することと、
を含む、請求項7又は1〜6又は8のいずれか一項に記載のデータ処理システム。 - 前記決定中に、第1の処理レイアウトが、ノードの第3のセットにおける第1のノードに関して決定され、前記第1の処理レイアウトが、第1の度合いの並列性を指定し、
前記グラフにおける前記第1のノードの直前の第2のノードに関する第2の処理レイアウトが、前記第1の度合いの並列性とは異なる第2の度合いの並列性を指定し、及び
前記プロセッサ実行可能命令がさらに、少なくとも1つの再パーティショニング動作を行うように前記データフローグラフの少なくとも1つのノードを構成することを前記少なくとも1つのコンピュータハードウェアプロセッサに行わせる、請求項1又は2〜9のいずれか一項に記載のデータ処理システム。 - 前記決定中に、第1の処理レイアウトが、ノードの第3のセットにおける第1のノードに関して決定され、前記第1の処理レイアウトが、第1の度合いの並列性を指定し、
前記グラフにおける前記第1のノードの直前の第2のノードに関する第2の処理レイアウトが、前記第1の度合いの並列性とは異なる第2の度合いの並列性を指定し、及び
前記プロセッサ実行可能命令がさらに、前記データフローグラフに対して、前記第1のノードと前記第2のノードとの間に新しいノードを追加することを前記少なくとも1つのコンピュータハードウェアプロセッサに行わせ、前記新しいノードが、少なくとも1つの再パーティショニング動作を表す、請求項1又は2〜10のいずれか一項に記載のデータ処理システム。 - 前記少なくとも1つの再パーティショニング動作に関連付けられた前記新しいノードを追加することが、集約動作、マージ動作、又はパーティション動作に関連付けられたノードを追加することを含む、請求項10又は1〜9、11のいずれか一項に記載のデータ処理システム。
- 前記決定が、前記ノードの第3のセットにおける第1のノードに関する第1の処理レイアウトを決定することを含み、前記第1のノードが、第1のデータ処理動作を表し、及び前記第1の処理レイアウトを決定することが、
前記第1のデータ処理動作を行うための並列性の度合いを決定することと、
前記決定された並列性の度合いに従って、前記第1のデータ処理動作を行うための1つ又は複数のコンピューティングデバイスのセットを識別することと、
を含む、請求項1又は2〜12のいずれか一項に記載のデータ処理システム。 - 前記第1の処理レイアウトを決定することが、
単一のプロセッサが前記第1のデータ処理動作を行うために使用されることを決定することと、
前記第1のデータ処理動作を行うためのコンピューティングデバイスを識別することと、
を含む、請求項13又は1〜12のいずれか一項に記載のデータ処理システム。 - 前記処理レイアウトの決定が、異なる度合いの並列性を有する処理レイアウトの中から選択するための前記少なくとも1つのルールを使用して行われる、請求項1又は2〜14のいずれか一項に記載のデータ処理システム。
- 前記プロセッサ実行可能命令が、
前記データフローグラフにおける各ノードの前記処理レイアウトを決定した後に、前記データフローグラフにおける各ノードに関して決定された処理レイアウトに従って、前記データフローグラフを実行することを前記少なくとも1つのコンピュータハードウェアプロセッサに行わせる、請求項1又は2〜15のいずれか一項に記載のデータ処理システム。 - 前記プロセッサ実行可能命令が、
構造化照会言語(SQL)クエリーを受信することと、
前記SQLクエリーからクエリープランを生成することと、
前記生成されたクエリープランから前記データフローグラフを生成することと、
を前記少なくとも1つのコンピュータハードウェアプロセッサに行わせる、請求項1又は2〜16のいずれか一項に記載のデータ処理システム。 - 前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、
データフローグラフを指定する情報を取得することであって、前記データフローグラフが、複数のノード、及び前記複数ノードを接続する複数のエッジを含み、前記複数のエッジが、前記複数のノードにおけるノード間のデータのフローを表し、前記複数のノードが、
1つ又は複数のノードの第1のセットであって、前記ノードの第1のセットにおける各ノードが、1つ又は複数の入力データセットのセットにおけるそれぞれの入力データセットを表す、1つ又は複数のノードの第1のセットと、
1つ又は複数のノードの第2のセットであって、前記ノードの第2のセットにおける各ノードが、1つ又は複数の出力データセットのセットにおけるそれぞれの出力データセットを表す、1つ又は複数のノードの第2のセットと、
1つ又は複数のノードの第3のセットであって、前記ノードの第3のセットにおける各ノードが、少なくとも1つの、それぞれのデータ処理動作を表す、1つ又は複数のノードの第3のセットと、
を含むことと、
前記入力データセットのセットに関する1つ又は複数の処理レイアウトの第1のセットを取得することと、
前記出力データセットのセットに関する1つ又は複数の処理レイアウトの第2のセットを取得することと、
前記処理レイアウトの第1のセット、前記処理レイアウトの第2のセット、及び異なる度合いの並列性を有する処理レイアウトの中から選択するための少なくとも1つのルールを包含する1つ又は複数のレイアウト決定ルールに基づいて、前記ノードの第3のセットにおける各ノードの処理レイアウトを決定することと、
を前記少なくとも1つのコンピュータハードウェアプロセッサに行わせるプロセッサ実行可能命令を保存する、少なくとも1つの非一時的コンピュータ可読ストレージ媒体。 - 前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、プロセッサ実行可能命令を保存する、少なくとも1つの非一時的コンピュータ可読ストレージ媒体であって、前記プロセッサ実行可能命令が、
データフローグラフを指定する情報を取得するための手段であって、前記データフローグラフが、複数のノード、及び前記複数ノードを接続する複数のエッジを含み、前記複数のエッジが、前記複数のノードにおけるノード間のデータのフローを表し、前記複数のノードが、
1つ又は複数のノードの第1のセットであって、前記ノードの第1のセットにおける各ノードが、1つ又は複数の入力データセットのセットにおけるそれぞれの入力データセットを表す、1つ又は複数のノードの第1のセットと、
1つ又は複数のノードの第2のセットであって、前記ノードの第2のセットにおける各ノードが、1つ又は複数の出力データセットのセットにおけるそれぞれの出力データセットを表す、1つ又は複数のノードの第2のセットと、
1つ又は複数のノードの第3のセットであって、前記ノードの第3のセットにおける各ノードが、少なくとも1つの、それぞれのデータ処理動作を表す、1つ又は複数のノードの第3のセットと、
を含む、手段と、
前記入力データセットのセットに関する1つ又は複数の処理レイアウトの第1のセットを取得するための手段と、
前記出力データセットのセットに関する1つ又は複数の処理レイアウトの第2のセットを取得するための手段と、
前記処理レイアウトの第1のセット、前記処理レイアウトの第2のセット、及び異なる度合いの並列性を有する処理レイアウトの中から選択するための少なくとも1つのルールを包含する1つ又は複数のレイアウト決定ルールに基づいて、前記ノードの第3のセットにおける各ノードの処理レイアウトを決定するための手段と、
を含む、少なくとも1つの非一時的コンピュータ可読ストレージ媒体。 - 少なくとも1つのコンピュータハードウェアプロセッサを使用して、
データフローグラフを指定する情報を取得することであって、前記データフローグラフが、複数のノード、及び前記複数ノードを接続する複数のエッジを含み、前記複数のエッジが、前記複数のノードにおけるノード間のデータのフローを表し、前記複数のノードが、
1つ又は複数のノードの第1のセットであって、前記ノードの第1のセットにおける各ノードが、1つ又は複数の入力データセットのセットにおけるそれぞれの入力データセットを表す、1つ又は複数のノードの第1のセットと、
1つ又は複数のノードの第2のセットであって、前記ノードの第2のセットにおける各ノードが、1つ又は複数の出力データセットのセットにおけるそれぞれの出力データセットを表す、1つ又は複数のノードの第2のセットと、
1つ又は複数のノードの第3のセットであって、前記ノードの第3のセットにおける各ノードが、少なくとも1つの、それぞれのデータ処理動作を表す、1つ又は複数のノードの第3のセットと、
を含むことと、
前記入力データセットのセットに関する1つ又は複数の処理レイアウトの第1のセットを取得することと、
前記出力データセットのセットに関する1つ又は複数の処理レイアウトの第2のセットを取得することと、
前記処理レイアウトの第1のセット、前記処理レイアウトの第2のセット、及び異なる度合いの並列性を有する処理レイアウトの中から選択するための少なくとも1つのルールを包含する1つ又は複数のレイアウト決定ルールに基づいて、前記ノードの第3のセットにおける各ノードの処理レイアウトを決定することと、
を行うことを含む、方法。 - 前記入力データセットのセットが、第1の入力データセットと、第2の入力データセットとを包含し、前記ノードの第1のセットが、前記第1の入力データセットと関連付けられた第1のノードと、前記第2の入力データセットと関連付けられた第2のノードとを包含し、及び前記1つ又は複数の処理レイアウトの第1のセットを取得することが、
前記第1の入力データセットからデータを読み取るための第1の処理レイアウトを取得することであって、前記第1のレイアウトが、少なくとも部分的に、第1の度合いの並列性を指定することと、
前記第2の入力データセットからデータを読み取るための第2の処理レイアウトを取得することであって、前記第2の処理レイアウトが、前記少なくとも部分的に指定された第1の度合いの並列性とは異なる第2の度合いの並列性を少なくとも部分的に指定することと、
を含む、請求項20に記載の方法。 - 前記ノードの第1のセットが、前記入力データセットのセットにおける第1の入力データセットと関連付けられた第1のノードを包含し、
前記ノードの第2のセットが、前記出力データセットのセットにおける第1の出力データセットと関連付けられた第2のノードを包含し、
前記1つ又は複数の処理レイアウトの第1のセットを取得することが、前記第1の入力データセットからデータを読み取るための第1の処理レイアウトを取得することを含み、前記第1の処理レイアウトが、少なくとも部分的に、第1の度合いの並列性を指定し、及び
前記1つ又は複数の処理レイアウトの第2のセットを取得することが、前記第1の出力データセットにデータを書き込むための第2の処理レイアウトを取得することを含み、前記第2の処理レイアウトが、前記少なくとも部分的に指定された第1の度合いの並列性とは異なる第2の度合いの並列性を少なくとも部分的に指定する、請求項20又は21に記載の方法。 - 前記出力データセットのセットが、第1の出力データセットと、第2の出力データセットとを包含し、前記ノードの第2のセットが、前記第1の出力データセットと関連付けられた第1のノードと、前記第2の出力データセットと関連付けられた第2のノードとを包含し、及び前記1つ又は複数の処理レイアウトの第1のセットを取得することが、
前記第1の出力データセットにデータを書き込むための第1の処理レイアウトを取得することであって、前記第1のレイアウトが、少なくとも部分的に、第1の度合いの並列性を指定することと、
前記第2の出力データセットにデータを書き込むための第2の処理レイアウトを取得することであって、前記第2の処理レイアウトが、前記少なくとも部分的に指定された第1の度合いの並列性とは異なる第2の度合いの並列性を少なくとも部分的に指定することと、
を含む、請求項20又は21〜22のいずれか一項に記載の方法。 - 前記ノードの第3のセットにおける各ノードの処理レイアウトを決定することが、
前記データフローグラフの構造に従って、及び前記処理レイアウトの第1のセット及び前記1つ又は複数のレイアウト決定ルールを使用して、前記ノードの第1のセットにおけるノードから開始して行われる順方向パスで、前記第3のセットノードにおける1つ又は複数のノードの初期処理レイアウトを決定することと、
前記データフローグラフの構造に従って、及び前記処理レイアウトの第2のセット及び前記1つ又は複数のレイアウト決定ルールを使用して、前記ノードの第2のセットにおけるノードから開始して行われる逆方向パスで、前記ノードの第3のセットにおける各ノードの最終処理レイアウトを決定することと、
を含む、請求項20又は21〜23のいずれか一項に記載の方法。 - 前記ノードの第3のセットが、第1のノードを含み、前記複数のエッジが、前記第1のノードと、前記データフローグラフにおける前記第1のノードに先行する第2のノードとの間に第1のエッジを含み、及び前記第3のセットノードにおける各ノードの前記初期処理レイアウトを決定することが、
前記第2のノードに関して決定された処理レイアウトに基づいて、前記第1のノードの第1の初期処理レイアウトを決定することを含む、請求項20又は21〜24のいずれか一項に記載の方法。 - 前記複数のエッジが、前記第1のノードと、前記データフローグラフにおいて前記第1のノードに先行する第3のノードとの間に第2のエッジを含み、第3の初期処理レイアウトが、前記第3のノードに関連付けられ、及び前記第1のノードの前記第1の初期処理レイアウトを決定することが、
前記第2及び第3の処理レイアウトの一方を前記第1の処理レイアウトとして選択することを含む、請求項25又は20〜24のいずれか一項に記載の方法。 - 前記第2の初期処理レイアウトが、第1の度合いの並列性を指定し、前記第3の初期処理レイアウトが、前記第1の度合いの並列性とは異なる第2の度合いの並列性を指定し、及び前記選択が、
前記第1の度合いの並列性が、前記第2の度合いの並列性よりも大きい場合に、前記第2の処理レイアウトを選択することと、
前記第1の度合いの並列性が、前記第2の度合いの並列性よりも小さい場合に、前記第3の処理レイアウトを選択することと、
を含む、請求項26又は20〜25のいずれか一項に記載の方法。 - 前記第2の初期処理レイアウト及び前記第3の初期処理レイアウトのそれぞれが、同じ度合いの並列性を指定し、前記第1のエッジが、第1の数のデータレコードのデータフローを表し、前記第2のエッジが、第2の数のデータレコードのデータフローを表し、及び前記選択が、
前記第1の数のデータレコードが、前記第2の数のデータレコードよりも多い場合に、前記第2の処理レイアウトを選択することと、
前記第1の数のデータレコードが、前記第2の数のデータレコードよりも少ない場合に、前記第3の処理レイアウトを選択することと、
を含む、請求項26又は20〜25、27のいずれか一項に記載の方法。 - 前記決定中に、第1の処理レイアウトが、ノードの第3のセットにおける第1のノードに関して決定され、前記第1の処理レイアウトが、第1の度合いの並列性を指定し、
前記グラフにおける前記第1のノードの直前の第2のノードに関する第2の処理レイアウトが、前記第1の度合いの並列性とは異なる第2の度合いの並列性を指定し、及び
前記少なくとも1つのコンピュータハードウェアプロセッサがさらに、少なくとも1つの再パーティショニング動作を行うように前記データフローグラフの少なくとも1つのノードを構成する、請求項20又は21〜28のいずれか一項に記載の方法。 - 前記決定中に、第1の処理レイアウトが、ノードの第3のセットにおける第1のノードに関して決定され、前記第1の処理レイアウトが、第1の度合いの並列性を指定し、
前記グラフにおける前記第1のノードの直前の第2のノードに関する第2の処理レイアウトが、前記第1の度合いの並列性とは異なる第2の度合いの並列性を指定し、及び
前記少なくとも1つのコンピュータハードウェアプロセッサが、前記データフローグラフに対して、前記第1のノードと前記第2のノードとの間に新しいノードを追加するように構成され、前記新しいノードが、少なくとも1つの再パーティショニング動作を表す、請求項20又は21〜29のいずれか一項に記載の方法。 - 前記少なくとも1つの再パーティショニング動作に関連付けられた前記新しいノードを追加することが、集約動作、マージ動作、又はパーティション動作に関連付けられたノードを追加することを含む、請求項30又は20〜29のいずれか一項に記載の方法。
- 前記決定が、前記ノードの第3のセットにおける第1のノードに関する第1の処理レイアウトを決定することを含み、前記第1のノードが、第1のデータ処理動作を表し、及び前記第1の処理レイアウトを決定することが、
前記第1のデータ処理動作を行うための並列性の度合いを決定することと、
前記決定された並列性の度合いに従って、前記第1のデータ処理動作を行うための1つ又は複数のコンピューティングデバイスのセットを識別することと、
を含む、請求項20又は21〜31のいずれか一項に記載の方法。 - 前記第1の処理レイアウトを決定することが、
単一のプロセッサが前記第1のデータ処理動作を行うために使用されることを決定することと、
前記第1のデータ処理動作を行うためのコンピューティングデバイスを識別することと、
を含む、請求項32又は20〜31のいずれか一項に記載の方法。 - 前記処理レイアウトの決定が、異なる度合いの並列性を有する処理レイアウトの中から選択するための前記少なくとも1つのルールを使用して行われる、請求項20又は21〜33のいずれか一項に記載の方法。
- 前記データフローグラフにおける各ノードの前記処理レイアウトを決定した後に、前記データフローグラフにおける各ノードに関して決定された処理レイアウトに従って、前記データフローグラフを実行することをさらに含む、請求項20又は21〜34のいずれか一項に記載の方法。
- 構造化照会言語(SQL)クエリーを受信することと、
前記SQLクエリーからクエリープランを生成することと、
前記生成されたクエリープランから前記データフローグラフを生成することと、
をさらに含む、請求項20又は21〜35のいずれか一項に記載の方法。 - 少なくとも1つのコンピュータハードウェアプロセッサと、
前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、
データフローグラフを指定する情報を取得することであって、前記データフローグラフが、複数のノード、及び前記複数ノードを接続する複数のエッジを含み、前記複数のエッジが、前記複数のノードにおけるノード間のデータのフローを表し、前記複数のノードが、
1つ又は複数のノードの第1のセットと、
前記ノードの第1のセットから独立した、1つ又は複数のノードの第2のセットと、
を含むことと、
前記ノードの第1のセットに関する1つ又は複数の処理レイアウトの第1のセットを取得することと、
前記処理レイアウトの第1のセット、及び異なる度合いの並列性を有する処理レイアウトの中から選択するための少なくとも1つのルールを包含する1つ又は複数のレイアウト決定ルールに基づいて、前記ノードの第2のセットにおける各ノードの処理レイアウトを決定することと、
を前記少なくとも1つのコンピュータハードウェアプロセッサに行わせるプロセッサ実行可能命令を保存する、少なくとも1つの非一時的コンピュータ可読ストレージ媒体と、
を含む、データ処理システム。 - 前記1つ又は複数のノードの第1のセットが、
1つ又は複数の入力ノードのセットであって、前記入力ノードのセットにおける各ノードが、1つ又は複数の入力データセットのセットにおけるそれぞれの入力データセットを表す、1つ又は複数の入力ノードのセットと、
1つ又は複数の出力ノードのセットであって、前記出力ノードのセットにおける各ノードが、1つ又は複数の出力データセットのセットにおけるそれぞれの出力データセットを表す、1つ又は複数の出力ノードのセットと、
を包含し、及び
前記第1のセット処理レイアウトを取得することが、
前記入力データセットのセットに関する1つ又は複数の処理レイアウトのセットを取得することと、
前記出力データセットのセットに関する1つ又は複数の処理レイアウトのセットを取得することと、
を含む、請求項37に記載のデータ処理システム。 - 少なくとも1つのコンピュータハードウェアプロセッサと、
前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、
前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、前記少なくとも1つのコンピュータハードウェアプロセッサにデータベースクエリーを実行させるコンピュータコードを取得することであって、前記コンピュータコードが、
それぞれの入力データセットを読み込むデータ処理動作をそれぞれが表す1つ又は複数のコンピュータコード部分の第1のセットと、
それぞれの出力データセットを書き出すデータ処理動作をそれぞれが表す1つ又は複数のコンピュータコード部分の第2のセットと、
それぞれのデータ処理動作をそれぞれが表す1つ又は複数のコンピュータコード部分の第3のセットと、
を含むことと、
前記コード部分の第1のセットにおける1つ又は複数のコード部分に関する1つ又は複数の処理レイアウトの第1のセットを取得することと、
前記コード部分の第2のセットにおける1つ又は複数のコード部分に関する1つ又は複数の処理レイアウトの第2のセットを取得することと、
前記処理レイアウトの第1のセット、前記処理レイアウトの第2のセット、及び異なる度合いの並列性を有する処理レイアウトの中から選択するための少なくとも1つのルールを包含する1つ又は複数のレイアウト決定ルールに基づいて、前記コード部分の第3のセットにおける各コード部分の処理レイアウトを決定することと、
を前記少なくとも1つのコンピュータハードウェアプロセッサに行わせるプロセッサ実行可能命令を保存する、少なくとも1つの非一時的コンピュータ可読ストレージ媒体と、
を含む、データ処理システム。 - 前記決定が、前記コンピュータコードの少なくとも幾つかのコンピュータコード部分の実行順序を少なくとも部分的に示す情報にさらに基づいて行われる、請求項39又は37〜38のいずれか一項に記載のデータ処理システム。
- 前記コンピュータコードが、データフローグラフに関連付けられ、
前記データフローグラフが、複数のノード、及び前記複数ノードを接続する複数のエッジを含み、前記複数のエッジが、前記複数のノードにおけるノード間のデータのフローを表し、及び
前記コンピュータコードのコンピュータコード部分が、前記データフローグラフにおけるそれぞれのノードと関連付けられる、請求項39に記載のデータ処理システム。 - 前記複数のノードが、
1つ又は複数のノードの第1のセットであって、前記ノードの第1のセットにおける各ノードが、それぞれの入力データセットを表し、前記コンピュータコード部分の第1のセットの各コンピュータコード部分が、前記ノードの第1のセットにおけるそれぞれのノードと関連付けられる、1つ又は複数のノードの第1のセットと、
1つ又は複数のノードの第2のセットであって、前記ノードの第2のセットにおける各ノードが、それぞれの出力データセットを表し、前記コンピュータコード部分の第2のセットの各コンピュータコード部分が、前記ノードの第2のセットにおけるそれぞれのノードと関連付けられる、1つ又は複数のノードの第2のセットと、
1つ又は複数のノードの第3のセットであって、前記ノードの第3のセットにおける各ノードが、それぞれのデータ処理動作を表す、1つ又は複数のノードの第3のセットと、
を含む、請求項41又は37〜40のいずれか一項に記載のデータ処理システム。 - 前記処理レイアウトの決定が、異なる度合いの並列性を有する処理レイアウトの中から選択するための前記少なくとも1つのルールを使用して行われる、請求項41又は37〜40、42のいずれか一項に記載のデータ処理システム。
- 前記プロセッサ実行可能命令が、
前記データフローグラフにおける各ノードの前記処理レイアウトを決定した後に、前記データフローグラフにおける各ノードに関して決定された処理レイアウトに従って、前記データフローグラフを実行することを前記少なくとも1つのコンピュータハードウェアプロセッサに行わせる、請求項41又は37〜40、42〜43のいずれか一項に記載のデータ処理システム。 - 前記プロセッサ実行可能命令が、
構造化照会言語(SQL)クエリーを受信することと、
前記SQLクエリーからクエリープランを生成することと、
前記クエリープランから前記コンピュータコードを生成することと、
を前記少なくとも1つのコンピュータハードウェアプロセッサに行わせる、請求項41又は37〜40、42〜44のいずれか一項に記載のデータ処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762478390P | 2017-03-29 | 2017-03-29 | |
US62/478,390 | 2017-03-29 | ||
PCT/US2018/025144 WO2018183676A1 (en) | 2017-03-29 | 2018-03-29 | Systems and methods for performing data processing operations using variable level parallelism |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020512643A true JP2020512643A (ja) | 2020-04-23 |
JP7216654B2 JP7216654B2 (ja) | 2023-02-01 |
Family
ID=62063179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019553233A Active JP7216654B2 (ja) | 2017-03-29 | 2018-03-29 | 可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法 |
Country Status (11)
Country | Link |
---|---|
US (2) | US10817495B2 (ja) |
EP (2) | EP3602297B1 (ja) |
JP (1) | JP7216654B2 (ja) |
KR (1) | KR102549994B1 (ja) |
CN (1) | CN110612513B (ja) |
AU (1) | AU2018243278B2 (ja) |
CA (1) | CA3058223A1 (ja) |
DE (1) | DE112018001789T5 (ja) |
SG (1) | SG11201908969WA (ja) |
WO (1) | WO2018183676A1 (ja) |
ZA (1) | ZA201906585B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110612513B (zh) * | 2017-03-29 | 2024-01-30 | 起元技术有限责任公司 | 用于使用可变级并行执行数据处理操作的系统和方法 |
US11188434B2 (en) | 2017-12-08 | 2021-11-30 | Ab Initio Technology Llc | Systems and methods for monitoring execution of structured query language (SQL) queries |
US10990595B2 (en) * | 2018-05-18 | 2021-04-27 | Oracle International Corporation | Fast distributed graph query engine |
CN111209309B (zh) * | 2020-01-13 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 数据流图处理结果确定方法、装置、设备及存储介质 |
US11675785B2 (en) | 2020-01-31 | 2023-06-13 | Oracle International Corporation | Dynamic asynchronous traversals for distributed graph queries |
CN111737371B (zh) * | 2020-08-24 | 2020-11-13 | 上海飞旗网络技术股份有限公司 | 可动态预测的数据流量检测分类方法及装置 |
DE112022000886T5 (de) | 2021-01-31 | 2023-12-21 | Ab Initio Technology Llc | Datenverarbeitungssystem mit manipulation logischer datensatzgruppen |
US11461297B1 (en) | 2021-06-09 | 2022-10-04 | T-Mobile Usa, Inc. | Ensuring database integrity using a data flow in a graph, such as for use by a wireless telecommunications service provider |
US20230093911A1 (en) * | 2021-09-30 | 2023-03-30 | Ab Initio Technology Llc | Systems and methods for performing data processing operations using variable level parallelism |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003529808A (ja) * | 1999-01-13 | 2003-10-07 | エービー イニティオ ソフトウェア コーポレーション | スクリプト駆動ツールの並列処理アプリケーション |
JP2014519080A (ja) * | 2011-05-02 | 2014-08-07 | アビニシオ テクノロジー エルエルシー | データクエリの管理 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966072A (en) * | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
JP2003256221A (ja) * | 2002-02-28 | 2003-09-10 | Fujitsu Ltd | 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ |
US7249141B2 (en) * | 2003-04-30 | 2007-07-24 | Microsoft Corporation | Automated layout of relational databases |
US7155612B2 (en) | 2003-04-30 | 2006-12-26 | International Business Machines Corporation | Desktop database data administration tool with row level security |
JP5271494B2 (ja) * | 2003-06-25 | 2013-08-21 | アビニシオ テクノロジー エルエルシー | コンピュータ支援による計算グラフの並列化 |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US7870556B2 (en) * | 2006-05-16 | 2011-01-11 | Ab Initio Technology Llc | Managing computing resources in graph-based computations |
US20080140622A1 (en) | 2006-12-12 | 2008-06-12 | Bestgen Robert J | Displaying Explain Data for a SQL Query of a Database |
US7979578B2 (en) * | 2009-09-02 | 2011-07-12 | International Business Machines Corporation | Dynamic and evolutionary placement in an event-driven component-oriented network data processing system |
US9665620B2 (en) * | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
US9208141B2 (en) | 2010-02-05 | 2015-12-08 | Oracle International Corporation | Generating and displaying active reports |
US8356027B2 (en) * | 2010-10-07 | 2013-01-15 | Sap Ag | Hybrid query execution plan generation and cost model evaluation |
WO2012061109A1 (en) * | 2010-10-25 | 2012-05-10 | Ab Initio Technology Llc | Managing data set objects in a dataflow graph that represents a computer program |
US8195643B2 (en) | 2010-10-28 | 2012-06-05 | Sap Ag | Database calculation engine |
US8838579B2 (en) | 2012-04-26 | 2014-09-16 | Sap Ag | Data flow graph optimization using adaptive rule chaining |
US8856766B2 (en) * | 2012-05-11 | 2014-10-07 | International Business Machines Corporation | Generating layouts for graphs of data flow applications |
US10515118B2 (en) | 2013-06-24 | 2019-12-24 | Micro Focus Llc | Processing a data flow graph of a hybrid flow |
CN103699515B (zh) * | 2013-12-27 | 2017-01-18 | 中国科学院计算技术研究所 | 一种fft并行处理装置和方法 |
CN107111505B (zh) * | 2015-01-19 | 2020-07-14 | 华为技术有限公司 | 用于在并行异构系统上执行算法的系统和方法 |
EP3106982B1 (en) * | 2015-06-18 | 2021-03-10 | ARM Limited | Determination of branch convergence in a sequence of program instructions |
US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
US9798527B1 (en) | 2017-01-06 | 2017-10-24 | Google Inc. | Loop and library fusion |
CN110612513B (zh) * | 2017-03-29 | 2024-01-30 | 起元技术有限责任公司 | 用于使用可变级并行执行数据处理操作的系统和方法 |
US11188434B2 (en) | 2017-12-08 | 2021-11-30 | Ab Initio Technology Llc | Systems and methods for monitoring execution of structured query language (SQL) queries |
-
2018
- 2018-03-29 CN CN201880021637.5A patent/CN110612513B/zh active Active
- 2018-03-29 EP EP18720443.3A patent/EP3602297B1/en active Active
- 2018-03-29 KR KR1020197031867A patent/KR102549994B1/ko active IP Right Grant
- 2018-03-29 SG SG11201908969W patent/SG11201908969WA/en unknown
- 2018-03-29 EP EP23155765.3A patent/EP4198731A1/en active Pending
- 2018-03-29 JP JP2019553233A patent/JP7216654B2/ja active Active
- 2018-03-29 AU AU2018243278A patent/AU2018243278B2/en active Active
- 2018-03-29 CA CA3058223A patent/CA3058223A1/en active Pending
- 2018-03-29 DE DE112018001789.3T patent/DE112018001789T5/de active Pending
- 2018-03-29 US US15/939,820 patent/US10817495B2/en active Active
- 2018-03-29 WO PCT/US2018/025144 patent/WO2018183676A1/en unknown
-
2019
- 2019-10-07 ZA ZA2019/06585A patent/ZA201906585B/en unknown
-
2020
- 2020-10-26 US US17/079,994 patent/US20210182263A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003529808A (ja) * | 1999-01-13 | 2003-10-07 | エービー イニティオ ソフトウェア コーポレーション | スクリプト駆動ツールの並列処理アプリケーション |
JP2014519080A (ja) * | 2011-05-02 | 2014-08-07 | アビニシオ テクノロジー エルエルシー | データクエリの管理 |
Also Published As
Publication number | Publication date |
---|---|
AU2023201414A1 (en) | 2023-04-06 |
AU2018243278B2 (en) | 2022-12-15 |
CA3058223A1 (en) | 2018-10-04 |
WO2018183676A1 (en) | 2018-10-04 |
EP3602297B1 (en) | 2023-03-22 |
KR20190131557A (ko) | 2019-11-26 |
SG11201908969WA (en) | 2019-10-30 |
DE112018001789T5 (de) | 2019-12-19 |
CN110612513A (zh) | 2019-12-24 |
JP7216654B2 (ja) | 2023-02-01 |
KR102549994B1 (ko) | 2023-06-29 |
AU2018243278A1 (en) | 2019-10-17 |
ZA201906585B (en) | 2024-02-28 |
EP3602297A1 (en) | 2020-02-05 |
US20180285401A1 (en) | 2018-10-04 |
CN110612513B (zh) | 2024-01-30 |
US20210182263A1 (en) | 2021-06-17 |
EP4198731A1 (en) | 2023-06-21 |
US10817495B2 (en) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7216654B2 (ja) | 可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法 | |
US10379825B2 (en) | Automated dependency analyzer for heterogeneously programmed data processing system | |
US20150006316A1 (en) | System and method for parallel search on explicitly represented graphs | |
CN112805696A (zh) | Sql服务器中的多步骤查询执行 | |
JP2021506043A (ja) | 構造化照会言語(sql)クエリーの実行をモニタするためのシステム及び方法 | |
AU2023270295A1 (en) | Systems and methods for dataflow graph optimization | |
US20170300461A1 (en) | Representation of an Interactive Document as a Graph of Entities | |
US7222149B2 (en) | Ordering decision nodes in distributed decision making | |
US20230093911A1 (en) | Systems and methods for performing data processing operations using variable level parallelism | |
US12032631B2 (en) | Systems and methods for dataflow graph optimization | |
US20130179896A1 (en) | Multi-thread processing of an XML document |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201211 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211109 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220405 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220812 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221207 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20221207 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20221216 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20221219 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230120 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7216654 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |