JP2023502210A - マルチ・テナント型抽出・変換・ロードのリソースの共有 - Google Patents

マルチ・テナント型抽出・変換・ロードのリソースの共有 Download PDF

Info

Publication number
JP2023502210A
JP2023502210A JP2022526770A JP2022526770A JP2023502210A JP 2023502210 A JP2023502210 A JP 2023502210A JP 2022526770 A JP2022526770 A JP 2022526770A JP 2022526770 A JP2022526770 A JP 2022526770A JP 2023502210 A JP2023502210 A JP 2023502210A
Authority
JP
Japan
Prior art keywords
tenant
workload
queued
etl
delay
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
JP2022526770A
Other languages
English (en)
Other versions
JP7445361B2 (ja
Inventor
ウッド、アレクサンダー、ロバート
シン、チェンシュアン
クリンガー、ドイナ、リリアナ
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 JP2023502210A publication Critical patent/JP2023502210A/ja
Application granted granted Critical
Publication of JP7445361B2 publication Critical patent/JP7445361B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有するための概念が提示される。そのような概念においては、マルチ・テナント型ETLシステムの全作業負荷を、テナントのキューに入れられた作業負荷とともに考慮して、キューに入れられた作業負荷のシステムへの配信を制御する。そのような制御は、例えば、テナントの作業を遅延させることによって行われる。従って、提案される実施形態は、テナント間の公平さを達成するための方策を考案しようとするものである。

Description

本発明は、一般にマルチ・テナント型システムにおける処理の分野に関し、具体的には、マルチ・テナント型抽出・変換・ロード(extract transform load, ETL)システムの処理リソースを共有する方法に関する。
本発明はまた、システムのプロセッサ、又はネットワークの多くのプロセッサがそのような方法を実施することを可能にするコンピュータ可読プログラム・コードを備えたコンピュータ・プログラム製品に関する。
本発明はまた、マルチ・テナント型ETLシステムの処理リソースを共有するためのシステムに関する。
マルチ・テナント型ETLシステムにおいては、複数の異なるテナントから、高度に並列な方式で、非同期的に大量のデータが抽出され、処理される。データは、ページ毎に抽出され、共有処理エンジン(又はクラスター)による処理のためのキューに入れられる。
複数のテナントが大量の作業をサブミットする可能性があり、その作業は次に、共有処理エンジン内で処理するためのキューに入れられる。従って、1つのテナントの作業が大量データでシステムを独占し、別のテナントの作業の処理を遅延させる可能性がある。このことは、同じレベルのサービスを受けるべき他のテナント(例えば、同じカテゴリ内のテナント)に対して不公平である。ある特定のカテゴリのテナントが、別のカテゴリのテナントよりも良好な質のサービスを受ける可能性はある(例えば、システムは、支払い済み又はプレミアム・カスタマーに、未支払い又は標準的なカスタマーよりも高いレベルのサービスを提供するように構成することができる)が、同じカテゴリ内のテナントは、全て、同じレベルのサービスを受けることを期待するであろう。換言すれば、典型的な期待は、マルチ・テナント型ETLシステムが同じカテゴリ内の全てのテナントに対して公平であるべきである、ということである。
本発明の一実施形態により、マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有するためのコンピュータ実施の方法であって、1つ又は複数のプロセッサにより、マルチ・テナント型ETLシステムの全作業負荷を決定することと、1つ又は複数のプロセッサにより、テナントに関連付けられる、キューに入れられた作業負荷を決定することと、1つ又は複数のプロセッサにより、全作業負荷及びキューに入れられた作業負荷に基づいて、テナントによって要求された作業のマルチ・テナント型ETLシステムの作業負荷への追加を遅延させることと、を含む方法が提供される。
本発明の別の実施形態により、具体化されたプログラム命令を有するコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品であって、プログラム命令は処理ユニットによって実行可能であり、コンピュータ・ネットワーク上で実行されるとき、処理ユニットに、マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有する方法を実行させ、その方法は、マルチ・テナント型ETLシステムの全作業負荷を決定することと、テナントに関連付けられる、キューに入れられた作業負荷を決定することと、全作業負荷及びキューに入れられた作業負荷に基づいて、テナントによって要求された作業のETLシステムの作業負荷への追加を遅延させることとを含む、コンピュータ・プログラム製品が提供される。
本発明の別の実施形態により、マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有するためのシステムであって、マルチ・テナント型ETLシステムの全作業負荷を決定するように構成された作業負荷コンポーネントと、テナントに関連付けられる、キューに入れられた作業負荷を決定するように構成された分析コンポーネントと、全作業負荷及びキューに入れられた作業負荷に基づいて、テナントによって要求された作業のマルチ・テナント型ETLシステムの作業負荷への追加を遅延させるように構成された遅延コンポーネントとを備える、システムが提供される。
次に、本発明の好ましい実施形態が、以下の図面を参照しながら、単なる例として説明されることになる。
例証的な実施形態の態様を実装することができる例示的な分散システムの図による表現を示す。 一実施形態による、提案される分散通信システムの概略図を示す。 一実施形態による、ETLシステムのリソースを共有する方法のフロー図を示す。 本発明の一実施形態による、サーバ若しくはクライアント、又はそれら両方のコンポーネントのブロック図を示す。
図は概略的なものに過ぎず、尺度通りに描かれてはいないことを理解されたい。また、図を通して、同じ参照数字が、同じ又は類似の部分を示すために使用されていることを理解されたい。
本発明の文脈において、本発明の実施形態が方法を構成する場合、そのような方法は、コンピュータによる実行のためのプロセスとすることができる、即ち、コンピュータ実施の方法とすることができることを理解されたい。従って、方法の種々のステップは、コンピュータ・プログラムの種々の部分、例えば、1つ又は複数のアルゴリズムの種々の部分を反映することができる。
また、本発明の文脈において、システムは、本発明の方法の1つ又は複数の実施形態を実行するように適合された、単一のデバイス又は分散デバイスのコレクションとすることができる。例えば、システムは、パーソナル・コンピュータ(PC)、サーバ、或いは、ローカル・エリア・ネットワーク、インターネットなどのネットワークを介して、本発明の方法の少なくとも1つの実施形態を協調的に実行するように接続されたPCのコレクション若しくはサーバ、又はそれら両方とすることができる。さらに、コンポーネントは、1つ又は複数の処理ユニットによって実行される統合フローとすることができる。
提案されるのは、マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有するための概念である。そのような概念においては、マルチ・テナント型ETLシステムの全作業負荷を、テナントのキューに入れられた作業負荷とともに考慮して、キューに入れられた作業負荷のシステムへの配信を制御する。そのような制御は、例えば、そのテナントの作業を遅延させることによって行われる。従って、提案される実施形態は、テナント間の公平さを達成するための方策を考案しようとするものである。
従って、実施形態は、所与の時間にシステムに与えられている作業を減速するように構成されていると考えることができる。このことは、あるテナントについてのアクティブな作業の同時ストリームの数を測定することによって行うことができることが提案される。例えば、アクティブな作業の多数の同時ストリームを有するテナントは、本明細書で説明される実施形態により、そのような作業の追加を遅延させることができる。このことは、そのテナントが、別のテナントの作業の処理を遅延させることになる大量のデータでシステムを独占する(すなわち、過負荷にする)ことを防ぐことができる。
従って、提案される実施形態は、システムの全作業負荷を考慮して、あるテナントの作業負荷の追加を、自動的及び動的に制御することができる。例えば、システムの全作業負荷、及び、あるテナントに関連付けられる、キューに入れられた作業負荷に基づいて、そのテナントによって要求された作業の追加を遅延させる/後回しにすることができる。このようにして、システムの処理リソースを共有することにおける公平さを達成することができる。テナントのカテゴリ(例えば、支払い済み、未支払い、プレミアム、プラチナなど)の公平さを達成するための概念を提供することができる。
提案される概念は、要求を抽出するそれらの連鎖によりETLシステムに関連する予測性のレベルを高め、複数のテナントにわたる公平さを実現することができるので、ETLシステムにとって特に価値若しくは利点、又はそれら両方があり得る。
データ抽出は時間がかかるので、抽出・変換・ロードの3つの段階を並列に実行するのが普通である。データを抽出しながら、別の変換プロセスが実行され、同時に既に受け取れられているデータが処理され、ローディングのために準備され、前の段階の完了を待たずにデータのローディングが開始される。提案される実施形態は、このことを利用して、あるテナントによって要求された作業の作業負荷への追加の遅延を制御することによって、テナントに対する公平さを達成することに焦点を当てる。
具体的には、ETLシステムの作業負荷へのあるテナントの作業の追加を、システム内の現在キューに入れられている全作業負荷の測定に基づいて、遅延させることが提案される。システム内で処理されるべき作業の総量のこうした計測は、例えば、システムのラグによって示され得る。
提案される実施形態は、システム内の全負荷及びあるテナントに関連付けられる作業を監視し、過負荷の場合には抽出ページング内に遅延を導入することにより、あるカテゴリ(即ち、グループ、コレクション、クラス、タイプ、分類など)のテナントの間の公平さを促進しようとすることができる。遅延は、各々のテナントによって生成される作業に比例させることができる。このことは、「ペーシング」と呼ぶことができる。
例として、一実施形態は全テナントについてキューに入れられている作業の量を測定することによって、全負荷を監視することができる。そのような実施形態は、次に、各々のテナントについての新しい作業の追加を遅らせることができる。この「ペーシング」遅延は、例えば、全体の作業のキューの深さ(例えば、ラグ)及び、さらに各々のテナントからの作業負荷(例えば、実行中のETLバッチの数)に基づいて計算することができる。
提案される実施形態により、ペーシングが必要となるときを決定することによって、個人化されたペーシング因子を計算し適用することができる。このことは、提案される実施形態を実装する製品の改善されたユーザ体験及び認識をもたらす。
例として、提案される実施形態は、マルチ・テナント型ETLシステムの処理リソースを共有することを提供することができる。そのような実施形態は、マルチ・テナント型ETLシステムの全作業負荷を決定することを含むことができる。マルチ・テナント型ETLシステムを使用する各々のテナントについて、次に、キューに入れられた関連する作業負荷を決定することができる。決定された全作業負荷及びあるテナントに関連付けられる、キューに入れられた作業負荷に基づいて、そのテナントによって要求された作業の、マルチ・テナント型ETLシステムの作業負荷の追加を、遅延させることができる。
幾つかの実施形態は、さらに、マルチ・テナント型ETLシステムを使用する各々のテナントについて、そのテナントに関連付けられる、キューに入れられた作業負荷に基づいて、関連する遅延係数を計算することを含むことができる。さらに、テナントに関連する遅延係数に基づいてテナントによって要求される作業の遅延を導入することによって、テナントによって要求される作業をシステムの作業負荷に追加することを遅延させることを含む。
さらに、テナントに関連付けられる、キューに入れられた作業負荷に基づいて関連する遅延係数を計算することは、テナントに関連付けられる、キューに入れられた作業負荷が所定の閾値より小さい場合に、遅延係数を所定のデフォルト値に等しくなるように計算することを含むことができる。
テナントに関連付けられる、キューに入れられた作業負荷に基づいて関連する遅延係数を計算することは、遅延係数を、テナントに関連付けられる、キューに入れられた作業負荷に直接比例するように、計算することを含むことができる。
さらに別の例として、実施形態は、マルチ・テナント型ETLシステムの全作業負荷を監視して全作業負荷の変化を検出することと、全作業負荷の検出された変化に応じて遅延係数を修正することとをさらに含むことができる。
マルチ・テナント型ETLシステムの全作業負荷を決定することは、マルチ・テナント型ETLシステムの全テナントについてのキューに入れられた作業の総量、及び、マルチ・テナント型ETLシステムにおける現在の遅延の値、のうちの少なくとも1つを測定することを含むことができる。
また、テナントに関連付けられる、キューに入れられた作業負荷を決定することは、そのテナントについて実行中のプロセスの数、そのテナントについてキューに入れられた作業の量、そのテナントについてアクティブな作業の同時ストリームの数、及びそのテナントについて現在登録されている処理要求の数、のうちの少なくとも1つを測定することを含むことができる。
実施形態は、既存のETLシステムと共に実装することができる。このようにして、提案される実施形態を組み入れることによって、マルチ・テナント型ETLシステムの機能性若しくは有用性又はそれら両方を改善することができる。
図1は、例証的な実施形態の態様を実装することができる例示的な分散システムの図による表示を示す。分散システム100は、例証的な実施形態の態様を実装することができるコンピュータのネットワークを含むことができる。分散システム100は、少なくとも1つのネットワーク102を含み、そのネットワークは、分散データ処理システム100内で互いに接続された種々のデバイスとコンピュータとの間の通信リンクを提供するように使用される媒体である。ネットワーク102は、有線、無線通信リンク、又は光ファイバー・ケーブルなどの接続部を含むことができる。
描かれた例において、第1のサーバ104及び第2のサーバ106が、ストレージ・ユニット108と共にネットワーク102に接続される。さらに、クライアント110、112、及び114もまたネットワーク102に接続される。クライアント110、112、及び114は、エッジ・デバイス、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータ、IoTデバイスなどとすることができる。描かれた例において、第1のサーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、並びに、クライアント110、112、及び114に対するアプリケーションなどのデータを供給する。クライアント110、112、及び114は、描かれた例においては、第1のサーバ104に対するクライアントである。分散処理システム100は、図示されていない付加的なサーバ、クライアント、及び他のデバイスを含むことができる。
描かれた例において、分散システム100は、互いに通信するためのプロトコルの通信制御プロトコル/インターネット・プロトコル(TCP/IP)スーツを使用するネットワーク及びゲートウェイの世界的コレクションを表すネットワーク102を伴うインターネットとすることができる。このインターネットの中心部に、何千もの、商用、政府用、教育用及び他のコンピュータ・システムで構成されるメジャー・ノード又はホスト・コンピュータの間の、データ及びメッセージを送る高速データ通信ラインのバックボーンが存在する。勿論、分散システム100はまた、多数の異なるタイプのネットワーク、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)などを含むように実装することができる。上記のように、図1は、一例として意図されたものであり、本発明の種々の実施形態に対するアーキテクチャ上の限定として意図されたものではなく、それ故に、図1に示される特定の要素は、本発明の例証的な実施形態を実施することができる環境に関する限定と考えられるべきではない。
当業者であれば、図1のアーキテクチャ若しくはハードウェア又はそれら両方は、実装に応じて変わり得ることを認識するであろう。また、例証的な実施形態のプロセスは、本発明の範囲から逸脱せずに、マルチプロセッサ・データ処理システムに適用することができる。
上記で詳述したように、提案される実施形態は、マルチ・テナント型ETLシステムの処理リソースを共有するための方法及びシステムを提供する。さらに別の説明として、次に、提案される実施形態を、複数のテナントにサービスを提供するETLシステムを含む分散通信システムに関して、説明することになる。
図2を参照すると、一実施形態による分散通信システムの概略図が示されている。分散通信システムは、ETLシステム300、セッション・ストレージ395、及び、ETLシステム300の処理リソースを共有するためのシステム305を含む。ここで、ETLシステム300は、非常に大量のデータ(例えば、数百万の記録)を含み得るETLバッチの処理に寄与する種々のコンポーネントを含むことに留意されたい。これらのコンポーネントは、コントローラ・システム(例えば、バッチ・コントローラ)、コントローラがデータを抽出するシステム、SaaSアプリケーション又はエンタープライズ・システム、及び、抽出された記録を処理する処理エンジンを含むことができる。これらのコンポーネントの何れか又は全ては、通信ネットワーク310(例えば、インターネット)を介して他の外部システムと潜在的に相互作用することができる。
ETLシステム300は、複数のテナントから、通信ネットワーク310(例えば、インターネット)を介してアクセスすることができる。ここで、複数のテナントは、第1のテナントから第3のテナントまでを含む。
図2の描かれた例において、ETLシステム300の処理リソースを共有するためのシステム305は、ETLシステム300の外部にあるように示されている。しかし、これは、システム305及びその種々のコンポーネントの例証のためだけのものである。従って、実施形態は、ETLシステム300の抽出段階を制御することに向けられる場合があり、抽出プロセスは、一連のプル・オペレーションとすることができ、ETLシステム300内部から開始することができるので、システム305は、それ故に、ETLシステム300自体の一部を形成することができると理解される。
処理リソースを共有するためのシステム305は、ETLシステム300の全作業負荷を決定するように構成された作業負荷コンポーネント330を備えることができる。この例において、作業負荷コンポーネント330は、マルチ・テナント型ETLシステム300の全てのテナント320についてキューに入れられた作業の総量、及び、マルチ・テナント型ETLシステム300における現在の遅延の値、のうちの少なくとも1つを測定するように構成される。そのような測定値は、ETLシステム300の全作業負荷の代表値とすることができる。
処理リソースを共有するためのシステム305は、さらに、分析コンポーネント340を備える。分析コンポーネント340は、マルチ・テナント型ETLシステム300を使用している各々のテナント320についてキューに入れられる作業負荷を決定するように構成される。より具体的には、この例示的な実施形態の分析コンポーネント340は、テナント320について実行中のプロセスの数、テナント320についてキューに入れられた作業の量、テナント320についてのアクティブな作業の同時ストリームの数、及び、テナント320について現在登録されている処理要求の数、のうちの少なくとも1つを測定するように構成される。
処理リソースを共有するためのシステム305の遅延コンポーネント350は、あるテナント320によって要求される、マルチ・テナント型ETLシステム300の作業負荷への作業の追加を、決定された全作業負荷及びテナント320に関連付けられるキューに入れられた作業負荷に基づいて、遅延させるように構成される。このことに関して、この例示的な実施形態のシステム305は、マルチ・テナント型ETLシステム300を使用しているテナント320について、テナント320に関連付けられるキューに入れられた作業負荷に基づいて、関連する遅延係数を計算するように構成されたプロセッサ360をさらに含むことに留意されたい。この例示的な実施形態の遅延コンポーネント350は、次に、テナント320に関連付けられる遅延係数に基づいて、テナント320によって要求された作業に遅延を導入することができる。
この実施形態において、及び、単に例としてのみ、プロセッサ360は、テナント320に関連付けられるキューに入れられた作業負荷が所定の閾値より小さい場合に、遅延係数を所定のデフォルト値に等しくなるように計算するように、構成することができる。さらに、プロセッサ360は、テナント320に関連付けられるキューに入れられた作業負荷に直接比例するように遅延係数を計算するように、構成することができる。このようにして、テナント320について待機行列に入れられた作業量がより高い/より大きいほど、遅延係数がより高く/より大きくなり、それにより、そのテナント320についてキューに入れられた作業負荷に従って、テナント320による作業要求に対する遅延の制御が調節される。
処理リソースを共有するためのシステム305は、この実施形態において、モニタ・コンポーネント370をさらに含む。モニタ・コンポーネント370は、マルチ・テナント型ETLシステム300の全作業負荷を監視し、全作業負荷の変化を検出するように構成することができる。全作業負荷の検出された変化に応じて、プロセッサ360は、遅延係数を修正することができる。このようにして、全作業負荷がより高い/より大きいほど、遅延係数がより高く/より大きくなり、それにより、システム305の作業負荷に従って、作業に適用される遅延の制御が調節される。
さらに別の例として、次に別の例示的実施形態を考えることができる。
上記のように、ETLシステム300は、ETLバッチの処理に寄与する種々のコンポーネントを備えることができる。これらのコンポーネントは、コントローラ・システム(例えば、バッチ・コントローラ)、コントローラがデータを抽出するシステム、SaaSアプリケーション又はエンタープライズ・システム、及び、抽出された記録を処理する処理エンジンを含む。これらのコンポーネントの何れか又は全ては、他の外部システムと潜在的に相互作用することができる。
ETLシステムのコンポーネントは、互いの間で通信してデータを渡すための、高スループットで低遅延のメッセージング・システム(Kafkaなど)を使用することができる。例として、Kafkaは、メッセージに関する多数のパーティション、プロデューサー、及びコンシューマのグループによって、トピックを定める。
重要な考慮事項はコンシューマ・ラグである。これは、幾つのメッセージが書かれているかと、幾つのメッセージが読まれているかとの間の差である。従って、コンシューマ・ラグは、メッセージのコンシューマのグループがメッセージのプロデューサーに比べてどれほど遅れているかを示す尺度として用いることができる。例えば、大きい/高いコンシューマ・ラグ値は、新しいETLバッチの抽出されたデータが処理に長時間を要し、システムが幾つかのテナント320に応答しないように見えることを意味する。
簡単のために、全テナント320が1つのカテゴリ(例えば、同じ料金の支払い済みユーザ)にあると仮定することができる。幾つかのカテゴリが存在する場合、提案される概念は単一のカテゴリの境界内で適用され、他のカテゴリには別に適用されると考えることができる。
大量のETLバッチがコントローラ・システムによって集められ、次いで、メッセージング・システム(例えば、Kafka)を通して作業を受け取る他の処理コンポーネント(例えば、フロー・エンジン)によって取り扱われる。各々のETLバッチは、抽出要求のチェーンを通して記録の順序リスト(例えば、ページ)を抽出することができる。
提案される実施形態は、セッション・ストレージ395とKafka類似のメッセージング・システムとの組み合わせを用いて、テナント320が全体のシステム・リソースを公平に共有し、テナントがそれらの作業の進行を見るチャンスを得ることを保障する方法で、作業(例えば、ETLバッチ)を外部システム(SaaS又はエンタープライズ・アプリケーション)に分散させる方策を実施することができる。
例として、コントローラ・システムがETLバッチを受け取ったときに、コントローラ・システムは、全ての作業項目が開始することを保証するために、チェーン内の最初の要求を遅延なくキューに公開することになる。コントローラ・システムは、さらに、ETLバッチをセッション・ストレージ395に登録する。次に、処理キューのコンシューマ・ラグが監視され、処理キューのコンシューマ・ラグが閾値を越えるとき、システムは、チェーンの2つ目以降の要求から遅延を導入する(例えば、ペーシングを調節する)ことができる。
実施形態は、ある特定のテナント320の次の要求をどれほど長く遅延させるべきかを決定するために、以下の情報、即ち、メッセージング・システムのキューの全体の長さ(即ち、システム内の全作業)、現在どれほど多くのETLバッチ(即ち、並行ETLバッチ)がセッション・ストレージ395に登録されているか、及び、全体の遅延係数について事前構成された初期値、を用いることができる。そのような情報に基づいて、一実施形態は、テナント320に固有の遅延係数を計算することができ、これが引き起こされる遅延を制御する(もしあれば)。
それに続く抽出要求は、遅延後にキューに入れられることになり、セッション・ストレージ395における登録情報は、チェーン内の新しい位置を用いて更新される。
次に図3を参照しながら、一実施形態による方法が説明される。具体的には、図3は、提案される実施形態によるETLシステム300のリソースを共有する方法のフロー図を示す。
初めに、グローバル遅延係数が初期値によって設定される。
新しい抽出ページ要求が受け取られた(400)(例えば、チェーン内の次の要求が処理された)ときに方法が開始し、ステップ410に進む。ステップ410において、抽出されたデータの新しいページが送られる必要があるかどうか判断される。その必要がなければ、方法は簡単に進んでステップ415で終了する。逆に、ステップ410において、抽出されたデータの新しいページが処理エンジンに送られる必要があると判断される場合、方法はステップ420に進み、そこでグローバル遅延係数が再計算され、更新される。ここで、このことは、処理キューから現在のラグを計算すること、及び、それを(セッション・ストレージ395から取り出された)古いラグと比較してグローバル係数を増加又は減少させることを含む。
更新されたグローバル遅延係数に基づいて、現在のテナント320についての遅延係数が、ステップ430において計算される。ここで、このことは、現在のテナント320について実行中のETLバッチの数をセッション・ストレージ395から収集することと、次いで、現在のテナント320について使用するための遅延係数を、グローバル遅延係数と現在のテナント320によって所有されるETLバッチの数とを掛け合わせること、即ち、テナント遅延係数=グローバル係数*テナントよって所有されるETLバッチの数によって、計算することとを含む。
次に、ステップ440において、遅延又は待ち時間が導入される。ここで、遅延又は待ち時間は、ラグにテナント遅延係数を掛け合わせることによって求められる。言い換えれば、遅延又は待ち時間は、待ち時間=(ラグ*テナント遅延係数)のように表すことができる。
求められた時間による遅延/待機の後、コントローラ・システムは、ステップ450において新しい抽出要求を送り、次いで、方法はステップ400に戻る。
このように、ETLバッチが多ければ多いほど、テナント320は、より大きい係数及びより大きい遅延/待ち時間で開始することが理解されるであろう。
実施形態は、図4に示されるネットワーク・システム7の部分を形成することができるコンピュータ・システム70を備えることができる。例えば、あるテナント320によって要求される、一実施形態によるマルチ・テナント型ETLシステム300の作業負荷への作業の追加、を遅延させるように構成された遅延コンポーネントを、コンピュータ・システム70に実装することができる(例えば、処理ユニット71)。コンピュータ・システム/サーバ70のコンポーネントは、それらに限定されないが、例えば、プロセッサ又は処理ユニット71、システム・メモリ74、及び、システム・メモリ74を含む種々のシステム・コンポーネントを処理ユニットに結合するバス90、を備える1つ又は複数の処理機構を含むことができる。
システム・メモリ74は、ランダム・アクセス・メモリ(RAM)75若しくはキャッシュ・メモリ76又はそれら両方のような揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ70は、他の取り外し可能/固定型、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。そのような場合、各々は、1つ又は複数のデータ媒体インターフェースによってバス90に接続することができる。メモリ74は、提案される実施形態の機能を実行するように構成された1組の(例えば、少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含むことができる。例えば、メモリ74は、処理ユニット71によって実行可能なプログラムであって、提案される実施形態によるマルチ・テナント型ETLシステム300の処理リソースを共有するための方法を入力/出力(I/O)インターフェース72に実行させるプログラム、を有するコンピュータ・プログラム製品を含むことができる。1組の(例えば、少なくとも1つの)プログラム・モジュール79を有するプログラム/ユーティリティ78は、メモリ74内にストアすることができる。プログラム・モジュール79は一般に、マルチ・テナント型ETLシステム300の処理リソースを共有するための、提案される実施形態の機能若しくは方法又はそれら両方を実行する。
コンピュータ・システム/サーバ70は、さらに、キーボード、ポインティング・デバイス、ディスプレイ85などの1つ又は複数の外部デバイス80、ユーザがコンピュータ・システム/サーバ70と相互作用することを可能にする1つ又は複数のデバイス、若しくは、コンピュータ・システム/サーバ70が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデムなど)、或いはそれら全てと通信することができる。そのような通信は、入力/出力(I/O)インターフェース72を介して行うことができる。さらに、コンピュータ・システム/サーバ70は、ローカル・エリア・ネットワーク(LAN)、一般の広域ネットワーク(WAN)、若しくはパブリック・ネットワーク(例えば、インターネット)又はそれらのような1つ又は複数のネットワークと、ネットワーク・アダプタ73を介して通信することができる(例えば、決定された開発ルールを分散ネットワークのデバイスに伝えるため)。
本出願の文脈において、本発明の実施形態が方法を構成する場合、そのような方法は、コンピュータによる実行のためのプロセス、即ち、コンピュータ実施可能な方法であることを理解されたい。従って、方法のステップは、コンピュータ・プログラムの種々の部分、例えば、1つ又は複数のアルゴリズムの部分を反映する。
本発明は、システム、方法、もしくはコンピュータ・プログラム製品又はそれらの組み合わせとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、ストレージ・クラス・メモリ(SCM)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードもしくは命令がそこに記録された溝内の***構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワーク又はその組み合わせなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジサーバ又はその組み合わせを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納するためにコンピュータ可読プログラム命令を転送する。
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、Python、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語、又は類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コード又はオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。
幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個別化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施できることが理解されるであろう。これらのコンピュータ可読プログラム命令を、コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令はまた、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス又はそれらの組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、その中に格納された命令を有するコンピュー可読媒体が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むようにすることもできる。
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連のオペレーション・ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実施するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には1つのステップとして同時に、実質的に同時に、部分的に又は完全に時間的に重なる様式で達成されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方内のブロックの組み合わせは、指定された機能又はオペレーションを実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実施できることにも留意されたい。
本開示の種々の実施形態の説明は、例証目的のために提示されたが、これらは、網羅的であること、又は開示されたた実施形態に限定することを意図するものではない。当業者には、説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場に見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。

Claims (20)

  1. マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有するためのコンピュータ実施の方法であって、
    1つ又は複数のプロセッサにより、前記マルチ・テナント型ETLシステムの全作業負荷を決定することと、
    前記1つ又は複数のプロセッサにより、テナントに関連付けられる、キューに入れられた作業負荷を決定することと、
    前記1つ又は複数のプロセッサにより、前記全作業負荷及び前記キューに入れられた作業負荷に基づいて、前記テナントによって要求された作業の前記マルチ・テナント型ETLシステムの作業負荷への追加を遅延させることと、
    を含む方法。
  2. 前記1つ又は複数のプロセッサにより、前記キューに入れられた作業負荷に基づいて、前記テナントについての関連する遅延係数を計算することをさらに含み、
    前記遅延させることは、前記テナントに関連する前記遅延係数に基づいて、前記テナントによって要求された作業に対する遅延を導入することをさらに含む、
    請求項1に記載の方法。
  3. 前記テナントに関連付けられる前記キューに入れられた作業負荷に基づいて、関連する遅延係数を計算することは、前記テナントに関連付けられる前記キューに入れられた作業負荷が所定の閾値より小さい場合に、前記遅延係数を所定のデフォルト値に等しくなるように計算することを含む、請求項2に記載の方法。
  4. 前記マルチ・テナント型ETLシステムの前記全作業負荷を監視して、前記全作業負荷の変化を検出することと、
    検出された前記全作業負荷の変化に応じて、前記遅延係数を修正することと、
    をさらに含む、請求項3に記載の方法。
  5. 前記テナントに関連付けられる前記キューに入れられた作業負荷に基づいて、関連する遅延係数を計算することは、前記テナントに関連付けられる前記キューに入れられた作業負荷に直接比例するように前記遅延係数を計算することを含む、請求項3に記載の方法。
  6. 前記マルチ・テナント型ETLシステムの全作業負荷を決定することは、
    前記マルチ・テナント型ETLシステムのテナントについてキューに入れられた作業の総量、及び
    前記マルチ・テナント型ETLシステムにおける現在の遅延の値
    のうちの少なくとも1つを測定することを含む、請求項1に記載の方法。
  7. テナントに関連付けられる、キューに入れられた作業負荷を決定することは、
    前記テナントについて実行中のプロセスの数、
    前記テナントについてキューに入れられた作業の量、
    前記テナントについてアクティブな作業の同時ストリームの数、及び
    前記テナントについて現在登録されている処理要求の数
    のうちの少なくとも1つを測定することを含む、請求項1に記載の方法。
  8. 具体化されたプログラム命令を有するコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品であって、前記プログラム命令は、処理ユニットによって実行可能であり、コンピュータ・ネットワーク上で実行されるとき、前記処理ユニットに、マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有するための方法を行わせ、前記方法は、
    前記マルチ・テナント型ETLシステムの全作業負荷を決定するステップと、
    テナントに関連付けられる、キューに入れられた作業負荷を決定するステップと、
    前記全作業負荷及び前記キューに入れられた作業負荷に基づいて、前記テナントによって要求された作業の前記マルチ・テナント型ETLシステムの作業負荷への追加を遅延させるステップと、
    を含む、
    コンピュータ・プログラム製品。
  9. 1つ又は複数のプロセッサにより、前記キューに入れられた作業負荷に基づいて、前記テナントについての関連する遅延係数を計算することをさらに含み、
    前記遅延させることは、前記テナントに関連する前記遅延係数に基づいて、前記テナントによって要求された作業に対する遅延を導入することをさらに含む、
    請求項8に記載のコンピュータ・プログラム製品。
  10. 前記テナントに関連付けられる前記キューに入れられた作業負荷に基づいて、関連する遅延係数を計算することは、前記テナントに関連付けられる前記キューに入れられた作業負荷が所定の閾値より小さい場合に、前記遅延係数を所定のデフォルト値に等しくなるように計算することを含む、請求項9に記載のコンピュータ・プログラム製品。
  11. 前記マルチ・テナント型ETLシステムの前記全作業負荷を監視して、前記全作業負荷の変化を検出することと、
    検出された前記全作業負荷の変化に応じて、前記遅延係数を修正することと、
    をさらに含む、請求項10に記載のコンピュータ・プログラム製品。
  12. 前記テナントに関連付けられる前記キューに入れられた作業負荷に基づいて、関連する遅延係数を計算することは、前記テナントに関連付けられる前記キューに入れられた作業負荷に直接比例するように前記遅延係数を計算することを含む、請求項10に記載のコンピュータ・プログラム製品。
  13. テナントに関連付けられる、キューに入れられた作業負荷を決定することは、
    前記テナントについて実行中のプロセスの数、
    前記テナントについてキューに入れられた作業の量、
    前記テナントについてアクティブな作業の同時ストリームの数、及び
    前記テナントについて現在登録されている処理要求の数、
    のうちの少なくとも1つを測定することを含む、請求項8に記載のコンピュータ・プログラム製品。
  14. マルチ・テナント型抽出・変換・ロード(ETL)システムの処理リソースを共有するためのシステムであって、
    前記マルチ・テナント型ETLシステムの全作業負荷を決定するように構成された作業負荷コンポーネントと、
    テナントに関連付けられる、キューに入れられた作業負荷を決定するように構成された分析コンポーネントと、
    前記全作業負荷及び前記キューに入れられた作業負荷に基づいて、前記テナントによって要求された作業の前記マルチ・テナント型ETLシステムの作業負荷への追加を遅延させるように構成された遅延コンポーネントと、
    を含む、システム。
  15. 前記キューに入れられた作業負荷に基づいて、前記テナントについての関連する遅延係数を計算するように構成されたプロセッサをさらに備え、
    前記遅延コンポーネントは、前記テナントに関連する前記遅延係数に基づいて、前記テナントによって要求された作業に対する遅延を導入するようにさらに構成される、
    請求項14に記載のシステム。
  16. 前記プロセッサは、前記テナントに関連付けられる前記キューに入れられた作業負荷が所定の閾値より小さい場合に、前記遅延係数を所定のデフォルト値に等しくなるように計算するようにさらに構成される、請求項15に記載のシステム。
  17. 前記マルチ・テナント型ETLシステムの前記全作業負荷を監視して、前記全作業負荷の変化を検出するように構成されたモニタ・コンポーネントをさらに備え、
    前記プロセッサは、検出された前記全作業負荷の変化に応じて、前記遅延係数を修正するようにさらに構成される、
    請求項16に記載のシステム。
  18. 前記プロセッサは、前記テナントに関連付けられる前記キューに入れられた作業負荷に直接比例するように前記遅延係数を計算するようにさらに構成される、請求項16に記載のシステム。
  19. 前記作業負荷コンポーネントは、
    前記マルチ・テナント型ETLシステムのテナントについてキューに入れられた作業の総量、及び
    前記マルチ・テナント型ETLシステムにおける現在の遅延の値、
    のうちの少なくとも1つを測定するようにさらに構成される、請求項14に記載のシステム。
  20. 前記分析コンポーネントは、
    前記テナントについて実行中のプロセスの数、
    前記テナントについてキューに入れられた作業の量、
    前記テナントについてアクティブな作業の同時ストリームの数、及び
    前記テナントについて現在登録されている処理要求の数
    のうちの少なくとも1つを測定するようにさらに構成される、請求項14に記載のシステム。
JP2022526770A 2019-11-18 2020-11-13 マルチ・テナント型抽出・変換・ロードのリソースの共有 Active JP7445361B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/686,441 2019-11-18
US16/686,441 US11042415B2 (en) 2019-11-18 2019-11-18 Multi-tenant extract transform load resource sharing
PCT/IB2020/060699 WO2021099903A1 (en) 2019-11-18 2020-11-13 Multi-tenant extract transform load resource sharing

Publications (2)

Publication Number Publication Date
JP2023502210A true JP2023502210A (ja) 2023-01-23
JP7445361B2 JP7445361B2 (ja) 2024-03-07

Family

ID=75910001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022526770A Active JP7445361B2 (ja) 2019-11-18 2020-11-13 マルチ・テナント型抽出・変換・ロードのリソースの共有

Country Status (6)

Country Link
US (1) US11042415B2 (ja)
JP (1) JP7445361B2 (ja)
CN (1) CN114730277B (ja)
DE (1) DE112020004651B4 (ja)
GB (1) GB2603098B (ja)
WO (1) WO2021099903A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220374327A1 (en) * 2021-04-29 2022-11-24 International Business Machines Corporation Fair simultaneous comparison of parallel machine learning models
US11874776B2 (en) 2021-06-25 2024-01-16 Intel Corporation Cryptographic protection of memory attached over interconnects
US11841871B2 (en) 2021-06-29 2023-12-12 International Business Machines Corporation Managing extract, transform and load systems
US20230185603A1 (en) * 2021-12-14 2023-06-15 Intel Corporation Dynamic capability discovery and enforcement for accelerators and devices in multi-tenant systems

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694305B2 (en) * 2004-10-21 2010-04-06 Hewlett-Packard Development Company, L.P. Method of controlling access to computing resource within shared computing environment
JP4116064B1 (ja) 2007-04-18 2008-07-09 三菱電機インフォメーションシステムズ株式会社 クライアント装置
US20090063617A1 (en) 2007-08-28 2009-03-05 International Business Machines Corporation Systems, methods and computer products for throttling client access to servers
US8533103B1 (en) 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
US8473960B2 (en) * 2010-09-24 2013-06-25 International Business Machines Corporation Vector throttling to control resource use in computer systems
US8468251B1 (en) * 2011-12-29 2013-06-18 Joyent, Inc. Dynamic throttling of access to computing resources in multi-tenant systems
US20150046279A1 (en) 2012-09-12 2015-02-12 Salesforce.Com, Inc. Auction-based resource sharing for message queues in an on-demand services environment
US9602426B2 (en) 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
US9584588B2 (en) * 2013-08-21 2017-02-28 Sap Se Multi-stage feedback controller for prioritizing tenants for multi-tenant applications
US20160021196A1 (en) * 2014-07-17 2016-01-21 Microsoft Corporation Processing changes in a multi-tenant system
US9635103B2 (en) 2014-09-11 2017-04-25 Amazon Technologies, Inc. Dynamic virtual resource request rate control for utilizing physical resources
US9766960B2 (en) 2015-01-30 2017-09-19 Salesforce.Com, Inc. Workload-driven techniques for providing biased service level guarantees
US10228974B2 (en) 2015-04-28 2019-03-12 NetSuite Inc. Intelligent management of processing tasks on multi-tenant or other constrained data processing platform
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
US10037230B2 (en) 2016-07-29 2018-07-31 Hewlett Packard Enterprise Development Lp Managing data processing resources
CN106502792B (zh) * 2016-10-20 2019-11-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法
CN107301113A (zh) * 2017-05-26 2017-10-27 北京小度信息科技有限公司 任务监控方法及装置
CN109299180B (zh) * 2018-10-31 2021-08-27 武汉光谷联众大数据技术有限责任公司 一种数据仓库etl操作***
CN109861850B (zh) * 2019-01-11 2021-04-02 中山大学 一种基于sla的无状态云工作流负载均衡调度的方法

Also Published As

Publication number Publication date
US11042415B2 (en) 2021-06-22
CN114730277B (zh) 2024-03-29
DE112020004651B4 (de) 2024-01-25
US20210149728A1 (en) 2021-05-20
JP7445361B2 (ja) 2024-03-07
CN114730277A (zh) 2022-07-08
GB2603098A (en) 2022-07-27
GB202207927D0 (en) 2022-07-13
DE112020004651T5 (de) 2022-09-01
WO2021099903A1 (en) 2021-05-27
GB2603098B (en) 2022-12-14

Similar Documents

Publication Publication Date Title
JP7445361B2 (ja) マルチ・テナント型抽出・変換・ロードのリソースの共有
US10306001B2 (en) Scalable data enrichment for cloud streaming analytics
US11311722B2 (en) Cross-platform workload processing
US20180157539A1 (en) Tail latency-based job offloading in load-balanced groups
US8463909B1 (en) Systems and methods for managing server resources
US10250480B2 (en) Polling parameter adjustment
US20190205175A1 (en) Feedback mechanism for controlling dispatching work tasks in a multi-tier storage environment
CN112506619A (zh) 作业处理方法、装置、电子设备、存储介质和程序产品
US11171846B1 (en) Log throttling
US20240012829A1 (en) Managing extract, transform and load systems
US10740143B2 (en) Controlling asynchronous tasks
CN115525400A (zh) 基于批次来管理多个计算任务的方法、设备和程序产品
US10616317B2 (en) Method and system for affinity load balancing
US20150150012A1 (en) Cross-platform workload processing
JP7482990B2 (ja) メッセージ・ストリームの処理
JP7087585B2 (ja) 情報処理装置、制御方法、及びプログラム
Wu et al. Multi-source streaming-based data accesses for MapReduce systems
Evangelin et al. Performance measures of queuing models using cloud computing
JP2015172800A (ja) 通信サイズ最適化装置、通信サイズ最適化システム、通信サイズ最適化方法、および、通信サイズ最適化プログラム
US20200286107A1 (en) Facilitating positive responses for electronic communications from temporal groups
Jayasimman Analysis of Cloud Computing Data Center Using Stochastic Modelling.
Tani et al. Algorithme de planification intelligent Round Robin pour le Cloud Computing et Big Data
Hillston et al. Performance Modelling—Lecture 12: PEPA Case Study: Rap Genius on Heroku
CN112953810A (zh) 一种网络请求的处理方法和装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240110

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: 20240206

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240220

R150 Certificate of patent or registration of utility model

Ref document number: 7445361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150