JP7226743B2 - 分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品 - Google Patents

分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品 Download PDF

Info

Publication number
JP7226743B2
JP7226743B2 JP2021008733A JP2021008733A JP7226743B2 JP 7226743 B2 JP7226743 B2 JP 7226743B2 JP 2021008733 A JP2021008733 A JP 2021008733A JP 2021008733 A JP2021008733 A JP 2021008733A JP 7226743 B2 JP7226743 B2 JP 7226743B2
Authority
JP
Japan
Prior art keywords
task
state
thread
completion
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.)
Active
Application number
JP2021008733A
Other languages
English (en)
Other versions
JP2022013618A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2022013618A publication Critical patent/JP2022013618A/ja
Application granted granted Critical
Publication of JP7226743B2 publication Critical patent/JP7226743B2/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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

本開示の実施例は、コンピュータ、クラウドコンピューティング技術分野に関し、特に分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品に関するものである。
データの分散型記憶において、分散型計算エンジンSparkは、外部シャッフル(Shuffle)サービスによりジョブを実行する必要がある。具体的に、Sparkはデータを外部Shuffleサービスに絶えず送信し、外部Shuffleサービスはこれらのデータを統合して順序付けした後、分散型記憶システム(分散型ファイル記憶システムまたは分散型ファイルシステムとも言う)に送信して記憶する。データが分散型記憶システムに書き込まれることに成功した後、外部Shuffleサービスは、データ書き込みに成功したという応答情報をSparkの実行スレッド(Executorスレッド)に送信する。この過程は非効率的で時間がかかり、リソースの浪費がある。
本開示の実施例は、分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品を提供する。
第1の様態において、本開示の実施例は、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信するステップと、
前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正するステップと、
前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信するステップと、
を含む、分散型記憶方法を提供する。
いくつかの実施例において、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信する前記ステップは、
駆動スレッドのタスク要求に応答して前記データを読み取り、弾性分散データセットを構成するステップと、
前記弾性分散データセットを処理してシャッフルデータを得るステップと、
前記シャッフルデータを前記外部シャッフルサービスに書き込むステップと、
を含む。
いくつかの実施例において、前記外部シャッフルサービスへ前記データの送信を完了し、前記タスクの状態を完了待ち状態に修正した後に、前記分散型記憶方法は、
完了待ち状態にあるタスクの集合であるパイプラインタスクセットに、完了待ち状態にある前記タスクを加えるステップを含む。
いくつかの実施例において、パイプラインタスクセットに、完了待ち状態にある前記タスクを加える前記ステップの後に、前記分散型記憶方法は、
前記外部シャッフルサービスが返した応答情報に応答し、コールバック関数を呼び出して前記タスクに対しコールバック操作を行うステップと、
前記コールバック操作を実行する前記タスクを前記パイプラインタスクセットから除去するステップと、
をさらに含む。
いくつかの実施例において、パイプラインタスクセットに、完了待ち状態にある前記タスクを加える前記ステップの後に、前記分散型記憶方法は、
前記パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行うステップと、
終了状態にあるタスクを前記パイプラインタスクセットから取得するステップと、
失敗コールバック関数と完了コールバック関数を呼び出し、終了状態にある前記タスクに対しコールバック操作を行うステップと、
前記コールバック操作を実行した後の前記タスクを前記パイプラインタスクセットから除去するステップと、
をさらに含む。
いくつかの実施例において、前記パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行う前記ステップは、
予め設定された時間間隔通りに、または前記タスクの数量が所定値に達したとき、前記パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行うステップを含む。
いくつかの実施例において、前記終了状態は停止状態、タイムアウト状態および/または完了状態を含む。
第2の様態において、本開示の実施例は、
実行スレッドへタスク要求を送信して、前記実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させるステップと、
前記実行スレッドが返したタスクの状態が、前記実行スレッドが前記外部シャッフルサービスに前記データの送信を完了した後にタスクが置かれている状態である完了待ち状態であることに応答して、前記タスクに対応する実行スレッドを解放するステップと、
を含む分散型記憶方法を提供する。
第3の様態において、本開示の実施例は、
駆動スレッドのタスク要求に応答してデータを読み取るように配置されたデータ読み取りモジュールと、
前記データを外部シャッフルサービスに送信するように配置された第1送信モジュールと、
前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正するように配置された状態修正モジュールと、
前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信するように配置された第2送信モジュールと、を備える、分散型記憶装置を提供する。
第4の様態において、本開示の実施例は、
実行スレッドへタスク要求を送信して、前記実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させるように配置されたタスク送信モジュールと、
前記実行スレッドが返したタスクの状態を受信するように配置された受信モジュールと、
前記実行スレッドが返したタスクの状態が、前記実行スレッドが前記外部シャッフルサービスに前記データの送信を完了した後にタスクが置かれている状態である完了待ち状態であることに応答して、前記タスクに対応する実行スレッドを解放するように配置されたリソース解放モジュールと、
を備える、分散型記憶装置を提供する。
第5の様態において、本開示の実施例は、
1つまたは複数のプロセッサと、
1つまたは複数のプログラムが記憶され、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサが上記の何れか1つの分散型記憶方法を実現するメモリと、
前記プロセッサとメモリとの情報のやり取りを実現するように配置され、前記プロセッサとメモリとの間に接続された1つまたは複数のI/Oインターフェースと、を備える、電子機器を提供する。
第6の様態において、本開示の実施例は、コンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサによって実行されるときに上記の何れか1つの分散型記憶方法を実現する、コンピュータ可読媒体を提供する。
第7の様態において、本開示の実施例は、コンピュータプログラムを備え、前記コンピュータプログラムがプロセッサによって実行されるときに上記の何れか1つの分散型記憶方法を実現する、コンピュータプログラム製品を提供する。
本開示の実施例が提供する分散型記憶方法は、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信し、前記外部シャッフルサービスが前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正し、前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信し、すなわち、実行スレッドが外部シャッフルサービスへの送信を終了した後、該タスクが完了待ち状態にあることを駆動スレッドへ返し、駆動スレッドはすぐに該タスクに対応する実行スレッドを解放するため、該タスクが終了状態になるのを待ってから対応する実行スレッドを解放する必要はなく、実行スレッドリソースの浪費を低減し、タスクの実行効率を向上している。
図面は、本開示の実施例のさらなる理解を提供するために使用され、明細書の一部を構成し、本開示の実施例とともに本開示を解釈するために使用されるものであって、本開示に対する限定を構成するものではない。上記および他の特徴と利点は、図面を参照して詳細な例示的な実施例について説明することにより、当業者にとってより自明になる。
図1は、本開示の実施例が提供する、外部Shuffleサービスでデータを分散記憶するフロー模式図である。 図2は、本開示の実施例が提供する分散型記憶方法のフローチャートである。 図3は、本開示の実施例が提供する分散型記憶方法のうちの、駆動スレッドの動作フローチャートである。 図4は、本開示の実施例が提供する別の分散型記憶方法のフローチャートである。 図5は、本開示の実施例が提供する、Pipelineスレッドがパイプラインタスクセットを管理するフローチャートである。 図6は、本開示の実施例が提供する、別のPipelineスレッドがパイプラインタスクセットを管理するフローチャートである。 図7は、本開示の実施例が提供する、状態更新関数がタスク状態を更新するフローチャートである。 図8は、本開示の実施例において失敗コールバック関数でコールバック失敗を行うフローチャートである。 図9は、本開示の実施例において完了コールバック関数でコールバック完了を行うフローチャートである。 図10は、本開示の実施例が提供する分散型記憶方法のフローチャートである。 図11は、本開示の実施例が提供する分散型記憶装置の原理ブロック図である。 図12は、本開示の実施例が提供する分散型記憶装置の原理ブロック図である。 図13は、本開示の実施例が提供する電子機器の構成ブロック図である。
当業者が本開示の技術案をよりよく理解できるように、以下に、本開示が提供する分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品について、図面を組み合わせて詳細に説明する。
以下では、図面を参照して例示的な実施例をより充分に説明するが、前記例示的な実施例は、異なる形態で体現することができ、本文に記載する実施例に限定されると解釈されるべきではない。むしろ、これら実施例を提供する目的は、本開示を詳らかにおよび完全にし、当業者が本開示の範囲を十分に理解できるようにすることである。
矛盾しなければ、本開示の各実施例および実施例における各特徴は互いに組み合わせることができる。
本文で使用する、「および/または」という用語は、1つまたは複数の関連列挙項目の任意のおよびすべての組み合わせを含む。
本文で使用する用語は特定の実施例を説明するためのものに過ぎず、本開示を限定することを意図しない。本文で使用する、単数形の「1つ」および「該」は、前後の文で別途明瞭に指摘しない限り、複数形を含むことも意図している。本明細書にて「含む」および/または「……からなる」という用語を使用する場合、前記特徴、全体、ステップ、操作、素子および/またはコンポーネントの存在を指すが、1つまたは複数の他の特徴、全体、ステップ、操作、素子、コンポーネントおよび/またはそのグループの存在または追加を排除するものではないということも理解されたい。
特に限定しない限り、本文で使用する全ての用語(技術および科学用語を含む)は、当業者が一般的に理解するものと同じ意味を有する。常用字典で限定される用語は、それが関連技術および本開示の背景での意味と一致する意味を有すると解釈されるべきであり、かつ、本文で明確に定義しない限り、理想的または過度の形式的な意味を有すると解釈されないとさらに理解されたい。
Sparkがデータを外部Shuffleサービスに伝送するとき、外部Shuffleサービスはこれらデータを受信して統合し、簡単に順序付けし、データグループを生成し、また一定の分散型記憶条件に達したとき、これらデータグループを分散型記憶システムに送信し記憶する。
通常、分散型記憶条件には主に時間条件、数量条件およびシャッフル(Flush)命令がある。そのうち、時間条件は予め設定された時間閾値であり、外部Shuffleサービスの待ち時間が予め設定された時間閾値に達したとき、外部Shuffleサービスはデータグループを分散型記憶システムに送信して記憶する。数量条件は予め設定された数量閾値であり、外部Shuffleサービスで受信したデータ量が予め設定された数量閾値に達したとき、外部Shuffleサービスはデータグループを分散型記憶システムに送信して記憶する。Flush命令は強制的に実行するFlush命令であり、外部ShuffleサービスがFlush命令を強制的に実行することで、データグループを分散型記憶システムに送信して記憶する。
本実施例において、Sparkが具体的な機能を実現することをアプリケーション(Application)と言い、あるデータスライスを処理する具体的な実行ユニットをタスク(Task)と言い、タスクは、マップシャッフルタスク(Map Shuffle Task)と結果タスク(Result Task)との二種類に分けられる。マップシャッフルタスクは外部Shuffleサービスへデータを書き込み、外部Shuffleサービスはデータを分散型ファイルシステムに永続化する。結果タスクは分散型記憶システムからデータを読み取り統合し、順序付けする必要がある場合はデータを順序付けし、データグループを生成する。
図1は、本開示の実施例が提供する、外部Shuffleサービスでデータを分散記憶するフロー模式図である。図1に示すように、Sparkの1つのアプリケーションは1つの駆動(Driver)スレッド11を有するとともに、複数個の実行(Executor)スレッド12も有する。そのうち、駆動スレッド11は主にタスクのスケジューリングを担い、実行スレッド12は具体的なタスクの実行を担う。実行スレッド12は駆動スレッド11のスケジューリングの下で、外部Shuffleサービス13を介して分散型ファイル記憶システム14へデータを送信する。データが分散型ファイル記憶システムに送信されたとき、分散型ファイル記憶システムは複数個のコピーを書き込み、データが分散型記憶システムに書き込まれることに成功した後に、外部ShuffleサービスはSparkの実行スレッドへ応答情報を返す。明らかに、Sparkがデータを外部Shuffleサービスに送信してから書き込みに成功したという応答情報を受信するまでの期間内に、Sparkの実行スレッドは待ち状態のままであり、このことは実行スレッドの計算リソースを浪費し、後続のタスクの実行も妨げている。
本開示の実施例は、Sparkに対し外部Shuffleサービスを用いて分散型記憶の方法を実現することによって、外部Shuffleサービスのパイプライン機能を最適化する。リソースが同一の場合において、タスク実行の並行度を高め、これによってSparkの実行効率を向上させ、リソースの浪費を低減する。
第1の様態において、本開示の実施例は分散型記憶方法を提供する。図2は、本開示の実施例が提供する分散型記憶方法のフローチャートである。図2に示すように、分散型記憶方法はステップ201~203を含む。
ステップ201:駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信する。
そのうち、駆動スレッドは実行スレッドにタスクを割り当て、実行スレッドが駆動スレッドのタスク要求に応答して相応のタスクを実行し、データを分散型ファイルシステムに記憶する。
本実施例において、駆動スレッドは外部Shuffleサービスを介してデータを分散型ファイルシステムに記憶する。駆動スレッドで配布されたタスクを実行スレッドが受信したとき、実行スレッドはデータを読み取り、これらデータを外部Shuffleサービスに絶えず送信し、外部Shuffleサービスはさらにデータを分散型ファイルシステムに記憶する。
いくつかの実施例において、実行スレッドは、第1タスク Map Shuffle Taskと第2タスク Result Taskを実行する。そのうち、実行スレッドがMap Shuffle Taskを実行するステップは、Map Shuffle Taskが駆動スレッドのタスク要求に応答し、ユーザのデータを読み取り、データを弾性分散データセット(Resilient Distributed DataSet、略称RDD)に構成するステップと、その後ユーザの処理ロジックを呼び出してRDDを処理しシャッフルデータを得るステップと、最後に、シャッフルデータを外部シャッフルサービスに絶えず書き込むステップと、を含む。
ステップ202:外部シャッフルサービスへデータの送信を完了した後に、タスクの状態を完了待ち状態に修正する。
いくつかの実施例において、実行スレッドは、各タスクの現在の状態を付したタスクセットリストを用いてタスクを管理する。そのうち、タスク状態は、起動状態、実行状態、完了状態、失敗状態、停止状態、紛失状態および完了待ち状態を含む。そのうち、完了待ち状態は、実行スレッドが外部Shuffleサービスへデータの送信を終えたが、まだタスクが完了していない状態である。言い換えれば、データが既に外部Shuffleサービスに書き込まれたが、外部Shuffleサービスはまだこれらデータを分散型ファイルシステムに書き込んでおらず、タスクの状態は完了状態に属さず、すなわち、該タスクは実際に完全には終了していない。
本実施例では、もとのタスク状態を基に、データが既に外部Shuffleサービスに書き込まれており、外部Shuffleサービスがデータを分散型ファイルシステムに記憶するのを待っていることを示す完了待ち状態を加えている。このとき、実行スレッドは具体的に作業せず、リソースを占めなくなっている。
ステップ203:タスクに対応する実行スレッドを駆動スレッドが解放するために、完了待ち状態を駆動スレッドに送信する。
いくつかの実施例では、実行スレッドがデータを外部Shuffleサービスに書き込むとき、完了待ち状態を駆動スレッドへ送信する。タスクの状態が完了待ち状態であることを受信したとき、駆動スレッドは、該タスクに対応する実行スレッドを解放し、こうして駆動スレッドは該実行スレッドのためにタスクを改めて割り当てることができる。
図3は、本開示の実施例が提供する分散型記憶方法のうちの、駆動スレッドの動作フローチャートである。図3に示すように、実行スレッドが報告したタスク状態を駆動スレッドが受信した後、以下のステップ301~306を実行する。
ステップ301:実行スレッドが報告したタスク状態を受信する。
いくつかの実施例では、実行スレッドがデータを外部Shuffleサービスに書き込むとき、該タスクの状態が完了待ち状態であることを駆動スレッドに報告する。外部Shuffleサービスまたは分散型ファイルシステムが返した、データ記憶が完了したというリターン情報を実行スレッドが受信した後、該タスクの状態が完了状態であることを駆動スレッドに報告する。
ステップ302:タスクの状態が完了待ち状態であるかどうかを判定する。YESのときはステップ305を実行し、NOのときはステップ303を実行する。
いくつかの実施例において、駆動スレッドはタスクの状態を判定する。タスクの状態が完了待ち状態であるときはステップ305を実行する。タスクの状態が完了待ち状態でないときはステップ303を実行する。
ステップ303:タスクの状態が完了状態であるかどうかを判定する。YESのときはステップ304を実行し、NOのときはステップ306を実行する。
いくつかの実施例において、駆動スレッドは、タスクの状態が完了状態であるかどうかを判定する。タスクの状態が完了状態であると判定したときはステップ304を実行する。タスクの状態が完了状態でないと判定したときは実行スレッドのリソースをそのまま保持し、すなわち、実行スレッドを解放しない。
ステップ304:該タスク前の状態が完了待ち状態であるかどうかを判定する。YESのときはステップ306を実行し、NOのときはステップ305を実行する。
いくつかの実施例では、タスクが完了状態であると駆動スレッドが判定したとき、該タスク前の状態が完了待ち状態であるかどうかを再度判定する必要がある。タスク前の状態が完了待ち状態であるときはステップ306を実行する。タスク前の状態が完了待ち状態でないときはステップ305を実行する。
本実施例において、ステップ302とステップ304は、タスクの状態が完了待ち状態であるか否かを2回判定することで、完了待ち状態にあるタスクに対して駆動スレッドが実行スレッドを1回だけ解放することを確保し、ロジックの混乱により引き起こされる、実行スレッドのリソースを駆動スレッドが誤って解放することを回避する。
ステップ305:タスクに対応する実行スレッドを解放する。
いくつかの実施例では、該実行スレッドが新たなタスクを実行するのに便宜を図るために、駆動スレッド解放状態を、完了待ち状態のタスクに対応する実行スレッドのリソースとする。
本実施例において、駆動スレッドは、タスク状態が完了待ち状態であるとき、および、タスク状態が完了状態であるものの、前の状態が完了待ち状態でないとき、該タスクに対応する実行スレッドのリソースを解放する。
ステップ306:実行スレッドのリソースをそのまま保持する。
いくつかの実施例において、タスクの状態が完了状態でないとき、実行スレッドを解放せず、実行スレッドのリソースをそのまま保持する。タスクの状態が完了状態であるものの、該タスクの状態前が完了待ち状態であるとき、実行スレッドを解放せず、実行スレッドのリソースをそのまま保持する。
本実施例が提供する分散型記憶方法は、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信し、前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正し、前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信し、すなわち、実行スレッドが外部シャッフルサービスへの送信を完了した後、該タスクが完了待ち状態にあることを駆動スレッドへ返し、駆動スレッドはすぐに該タスクに対応する実行スレッドを解放するため、該タスクが終了状態になるのを待ってから対応する実行スレッドを解放する必要はなく、実行スレッドリソースの浪費を低減し、タスクの実行効率を向上している。
図4は、本実施例が提供する別の分散型記憶方法のフローチャートである。図4に示すように、分散型記憶方法はステップ401~404を含む。
ステップ401:駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信する。
そのうち、駆動スレッドは実行スレッドにタスクを割り当て、実行スレッドが駆動スレッドのタスク要求に応答して相応のタスクを実行し、データを分散型ファイルシステムに記憶する。
本実施例において、駆動スレッドは外部Shuffleサービスを介してデータを分散型ファイルシステムに記憶する。駆動スレッドで配布されたタスクを実行スレッドが受信したとき、実行スレッドはデータを読み取り、これらデータを外部Shuffleサービスに絶えず送信し、外部Shuffleサービスはさらにデータを分散型ファイルシステムに記憶する。
いくつかの実施例において、実行スレッドは、第1タスク Map Shuffle Taskと第2タスク Result Taskを実行する。そのうち、実行スレッドがMap Shuffle Taskを実行するステップは、Map Shuffle Taskが駆動スレッドのタスク要求に応答し、ユーザのデータを読み取り、データを弾性分散データセット(Resilient Distributed Data Set、略称RDD)に構成するステップと、その後ユーザの処理ロジックを呼び出してRDDを処理しシャッフルデータを得るステップと、最後にシャッフルデータを外部シャッフルサービスに絶えず書き込むステップと、を含む。
そのうち、弾性分散データセットRDDは分散型リードオンリーであり、且つ、区分されたセットオブジェクトである。これらのセットは柔軟なものであり、データセットが一部紛失した場合はこれらを再構築することができる。
ステップ402:外部シャッフルサービスへデータの送信を完了した後、タスクの状態を完了待ち状態に修正する。
いくつかの実施例において、実行スレッドは、各タスクの現在の状態を付したタスクセットリストを用いてタスクを管理する。そのうち、タスク状態は、起動状態、実行状態、完了状態、失敗状態、停止状態、紛失状態および完了待ち状態を含む。そのうち、完了待ち状態は、実行スレッドが外部Shuffleサービスへデータの送信を終えたが、まだ完了していない状態である。言い換えれば、データが既に外部Shuffleサービスに書き込まれたが、外部Shuffleサービスはまだこれらデータを分散型ファイルシステムに書き込んでおらず、タスクの状態は完了状態に属さず、すなわち、該タスクは実際に完全には終了していない。
本実施例では、もとのタスク状態を基に、データが既に外部Shuffleサービスに書き込まれており、外部Shuffleサービスがデータを分散型ファイルシステムに記憶するのを待っていることを示す完了待ち状態を加えている。このとき、実行スレッドは具体的に作業せず、リソースを占めなくなっている。
ステップ403:タスクに対応する実行スレッドを駆動スレッドが解放するために、完了待ち状態を駆動スレッドに送信する。
いくつかの実施例では、実行スレッドがデータを外部Shuffleサービスに書き込むとき、完了待ち状態を駆動スレッドへ送信する。タスクの状態が完了待ち状態であることを受信したとき、駆動スレッドは、該タスクに対応する実行スレッドを解放する。
ステップ404:完了待ち状態にあるタスクをパイプラインタスクセットに加える。
そのうち、パイプラインタスクセットは、実行スレッド管理状態が完了待ち状態であるタスクのセットであり、パイプラインタスクセットのうち、タスクはリストで管理され、すなわち、タスクとタスクの状態はリストにリストアップされる。
いくつかの実施例において、実行スレッドには、パイプラインタスクセットを維持管理するパイプラインスレッド(Pipelineスレッド)をその中に加えた外部Shuffleサービスプラグインが設けられている。実行スレッドがデータを外部Shuffleサービスに書き込むとき、該タスクをパイプラインタスクセットに加え、該タスクの状態を完了待ち状態に修正する。
本実施例において、Pipelineスレッドはパイプラインタスクセットを管理する。図5は、本開示の実施例が提供する、Pipelineスレッドがパイプラインタスクセットを管理するフローチャートである。図5に示すように、Pipelineスレッドがパイプラインタスクセットを管理することはステップ501、502を含む。
ステップ501:外部シャッフルサービスが返した応答情報に応答し、コールバック関数を呼び出してタスクに対しコールバック操作を行う。
そのうち、外部シャッフルサービスが返した応答情報は、外部シャッフルサービスがタスクを実行した後に返される情報であり、すなわち、外部シャッフルサービスはデータを分散型ファイルシステムに記憶した後に返される情報である。返される情報は通常、タスクの状態である。
いくつかの実施例では、外部シャッフルサービスがタスクを実行した結果は、停止、タイムアウト、および/または完了などを含み、対応するタスク状態は、停止状態、タイムアウト状態、および/または完了状態である。説明の便宜上、本実施例はこの何種類かの状態を一括して終了状態と言い、すなわち、タスクが既に終了したことを示す。言い換えれば、タスクの状態が停止状態、タイムアウト状態なのか、それとも完了状態なのかに関わらず、該タスクは既に終了したと見做す。
そのうち、コールバック関数は、失敗コールバック関数と完了コールバック関数を含み、各タスクはいずれも失敗コールバックと完了コールバックを実行する必要がある。
いくつかの実施例において、外部シャッフルサービスが返した応答情報を受信した後に、Pipelineスレッドは、相応のコールバック関数を呼び出す。
ステップ502:コールバック操作を実行した後のタスクをパイプラインタスクセットから除去する。
Pipelineスレッドがタスクに対しコールバック操作を行った後、該タスクをパイプラインタスクセットから除去する。
図6は、本開示の実施例が提供する、別のPipelineスレッドがパイプラインタスクセットを管理するフローチャートである。図6に示すように、Pipelineスレッドがパイプラインタスクセットを管理することはステップ601~604を含む。
ステップ601:パイプラインタスクセットのタスクに対しフラッシュ操作を行う。
いくつかの実施例において、Pipelineスレッドはフラッシュポリシーに従ってタスクをフラッシュする。フラッシュポリシーは、予め設定された時間間隔通りに、またはタスクの数量が所定値に達したとき、パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行ってよい。例えば、予め設定された時間間隔が10分である場合、Pipelineスレッドは10分毎にパイプラインタスクセットにおけるタスクに対し1回のフラッシュ操作を実行する。或いは、パイプラインタスクセットにおけるタスク数量が所定値に達したとき、Pipelineスレッドは、パイプラインタスクセットにおけるタスクに対し1回のフラッシュ操作を実行する。
なお、Pipelineスレッドは、フラッシュポリシーに従ってタスクに対しフラッシュ操作を行う。本実施例はフラッシュポリシーについて限定しない。
本実施例では、フラッシュポリシーを用いて分散型記憶過程における小さなファイルの数量を減らし、分散型記憶の圧力を下降させるとともに、分散型ファイルシステムのスループットを高めることができる。
ステップ602:終了状態にあるタスクをパイプラインタスクセットから取得する。
そのうち、終了状態は停止状態、タイムアウト状態および/または完了状態を含み、これに対応して、終了状態のタスクは停止したタスク、タイムアウトしたタスクおよび/または完了したタスクを含む。
いくつかの実施例では、パイプラインタスクセットにおけるタスクをフィルタリングし、停止したタスク、タイムアウトしたタスクおよび/または完了したタスクを取得する。
ステップ603:失敗コールバック関数と完了コールバック関数を呼び出し、終了状態にあるタスクに対しコールバック操作を行う。
いくつかの実施例では、失敗コールバック関数と完了コールバック関数をトリガしてタスクをコールバックする。例えば、停止状態のタスクに対し、失敗コールバック関数と完了コールバック関数をトリガしてタスクをコールバックする。タイムアウトしたタスクに対し、失敗コールバック関数と完了コールバック関数をトリガしてタスクをコールバックする。完成したタスクに対し、完了コールバック関数を触発してタスクをコールバックする。
なお、Pipelineスレッドのタスクコールバックに対する順序については限定しない。先に、停止状態のタスクをフィルタリングし、該タスクをコールバックし、さらに、タイムアウトしたタスクをフィルタリングし、該タスクをコールバックし、最後に、完了したタスクをフィルタリングし、該タスクをコールバックする。或いは、先に、タイムアウトしたタスクをフィルタリングし、該タスクをコールバックし、さらに、停止状態のタスクをフィルタリングし、該タスクをコールバックし、最後に、完了したタスクをフィルタリングし、該タスクをコールバックする。
ステップ604:コールバック操作を実行した後のタスクをパイプラインタスクセットから除去する。
そのうち、Pipelineスレッドはタスクをコールバックした後に、該タスクをパイプラインタスクセットから除去する。
いくつかの実施例において、Pipelineスレッドはコールバックするときに、状態更新関数(Status Update関数)を呼び出してタスクの状態と実行結果とを駆動スレッドに報告することができる。実行スレッドは、二種類のコールバック関数、すなわち、失敗コールバック関数および完了コールバック関数を支持することができる。
図7は、本開示の実施例が提供する、状態更新関数がタスク状態を更新するフローチャートである。図7に示すように、状態更新関数がタスク状態を更新するステップはステップ701~708を含む。
ステップ701:タスクの状態が完了待ち状態であるかどうかを判定する。
いくつかの実施例では、タスクの状態が完了待ち状態でないと判定したときにステップ708を実行する。タスクの状態が完了待ち状態であると判定したときにステップ702を実行する。タスクの状態が完了待ち状態でないときは、該タスクの状態が終了状態であると考えてよい。
ステップ702:タスクをパイプラインタスクセットに入れる。
タスクの状態が完了待ち状態である場合、該タスクをパイプラインタスクセットに加える。
ステップ703:失敗コールバック関数を登録する。
ステップ703では、失敗コールバック関数をpipelineスレッドに登録する。
ステップ704:完了コールバック関数を登録する。
ステップ704では、完了コールバック関数をpipelineスレッドに登録する。
ステップ705:タスクがパイプラインタスクセット内にあるかどうかを判定する。
いくつかの実施例では、タスクがパイプラインタスクセット内にあればステップ706を実行し、タスクがパイプラインタスクセット内になければステップ707を実行する。
ステップ706:タスクの状態を駆動スレッドへ報告する。
ステップ706では、タスクの完了待ち状態を駆動スレッドに報告する。
ステップ707:タスクを終了する。
ステップ707において、タスクがパイプラインタスクセット内になければ、該タスクのコールバック関数が既にトリガされたことを表し、完了待ち状態を再報告する必要はなく、タスクを直接終了すればよい。
ステップ708:タスクの終了状態を駆動スレッドに報告する。
なお、ステップ708において、実行スレッドはSparkフローに沿ってタスクの終了状態を駆動スレッドに直接報告する。
図8は、本開示の実施例において失敗コールバック関数でコールバック失敗を行うフローチャートである。図8に示すように、失敗コールバック関数を用いて失敗コールバックを行うステップはステップ801~804を含む。
ステップ801:パイプラインタスクセットからタスクを除去する。
パイプラインタスクセットにおけるタスクが完了待ち状態であるものの、外部Shuffleサービスが記憶を完了したとき、新たな状態を返し、実行スレッドは随時タスクの状態を更新する。よって、Flush操作時に、パイプラインタスクセットからタスクを除去することが必要となる。
ステップ802:タスクの状態が停止状態であるかどうかを判定する。
いくつかの実施例では、タスクの状態が停止状態であればステップ803を実行する。タスクの状態が停止状態でなければステップ804を実行する。タスクの状態が停止状態でなければ該タスクは失敗状態であると考えられる。
ステップ803:停止状態を駆動スレッドに報告する。
ステップ804:失敗を駆動スレッドに報告する。
図9は、本開示の実施例において完了コールバック関数でコールバック完了を行うフローチャートである。図9に示すように、完了コールバック関数を用いて完了コールバックを行うステップはステップ901~904を含む。
ステップ901:パイプラインタスクセット内にタスクがあるかどうかを判定する。
いくつかの実施の形態では、パイプラインタスクセット内にタスクがあるときはステップ902を実行する。パイプラインタスクセット内にタスクがないときはステップ904を実行する。
ステップ902:該タスクをパイプラインタスクセットから除去する。
ステップ903:該タスクの完了状態を駆動スレッドに報告する。
ステップ904:タスクを終了する。
ステップ904では、パイプラインタスクセット内にタスクがなければタスクはすべて失敗状態または停止状態であることを表し、駆動スレッドに報告する必要はなく、タスクを直接終了すればよい。
本開示の実施例が提供する分散型記憶方法は、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信し、前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正し、前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信し、すなわち、実行スレッドが外部シャッフルサービスへデータの送信を完了した後に、該タスクが完了待ち状態にあることを駆動スレッドに返し、駆動スレッドはすぐに該タスクに対応する実行スレッドを解放するため、このタスクが終了状態になるまで待ってから対応する実行スレッドを解放する必要はなく、実行スレッドリソースの浪費を低減し、タスクの実行効率を向上している。
第2の様態において、本開示の実施例は、Sparkの駆動スレッドに応用する分散型記憶方法を提供する。図10は、本開示の実施例が提供する分散型記憶方法のフローチャートである。図10に示すように、分散型記憶方法はステップ1001、1002を含む。
ステップ1001:実行スレッドへタスク要求を送信して、実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させる。
そのうち、駆動スレッドは実行スレッドにタスクを割り当て、実行スレッドが駆動スレッドのタスク要求に応答して相応のタスクを実行し、データを分散型ファイルシステムに記憶する。
本実施例において、駆動スレッドは外部Shuffleサービスを介してデータを分散型ファイルシステムに記憶する。駆動スレッドで配布されたタスクを実行スレッドが受信したとき、実行スレッドはデータを読み取り、これらデータを外部Shuffleサービスに絶えず送信し、外部Shuffleサービスはさらにデータを分散型ファイルシステムに記憶する。
いくつかの実施例において、実行スレッドは、第1タスク Map Shuffle Taskと第2タスク Result Taskを実行する。そのうち、実行スレッドがMap Shuffle Taskを実行するステップは、Map Shuffle Taskが駆動スレッドのタスク要求に応答し、ユーザのデータを読み取り、データを弾性分散データセット(Resilient Distributed DataSet、略称RDD)に構成するステップと、その後ユーザの処理ロジックを呼び出してRDDを処理しシャッフルデータを得るステップと、最後にシャッフルデータを外部シャッフルサービスに絶えず書き込むステップと、を含む。
ステップ1002:実行スレッドが返したタスクの状態が完了待ち状態であることに応答して、タスクに対応する実行スレッドを解放する。
そのうち、完了待ち状態は、実行スレッドが外部シャッフルサービスにデータの送信を完了した後にタスクが置かれている状態である。
いくつかの実施例において、実行スレッドがデータを外部Shuffleサービスに書き込むとき、完了待ち状態を駆動スレッドへ送信する。タスクの状態が完了待ち状態であることを受信したとき、駆動スレッドは、該タスクに対応する実行スレッドを解放し、こうして駆動スレッドは該実行スレッドのためにタスクを改めて割り当てることができる。
いくつかの実施例において、実行スレッドの具体的な動作フローは図3に示すフローチャートを参照してよく、ここでは説明を省略する。
本実施例が提供する分散型記憶方法は、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信し、前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正し、前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信し、すなわち、実行スレッドが外部シャッフルサービスへデータの送信を完了した後に、該タスクが完了待ち状態にあることを駆動スレッドに返し、駆動スレッドはすぐに該タスクに対応する実行スレッドを解放するため、該タスクが終了状態になるのを待ってから対応する実行スレッドを解放する必要はなく、実行スレッドリソースの浪費を低減し、タスクの実行効率を向上している。
第3の様態において、本開示の実施例は、実行スレッドに応用する分散型記憶装置を提供する。図11は、本開示の実施例が提供する分散型記憶装置の原理ブロック図である。図11に示すように、分散型記憶装置は、データ読み取りモジュール1101、第1送信モジュール1102、状態修正モジュール1103、第2送信モジュール1104を備える。
データ読み取りモジュール1101:駆動スレッドのタスク要求に応答してデータを読み取るように配置される。
そのうち、駆動スレッドは実行スレッドにタスクを割り当て、実行スレッドが駆動スレッドのタスク要求に応答して相応のタスクを実行し、データを分散型ファイルシステムに記憶する。
本実施例において、駆動スレッドは外部Shuffleサービスを介してデータを分散型ファイルシステムに記憶する。駆動スレッドで配布されたタスクを実行スレッドが受信したとき、実行スレッドはデータを読み取り、これらデータを外部Shuffleサービスに絶えず送信し、外部Shuffleサービスはさらにデータを分散型ファイルシステムに記憶する。
第1送信モジュール1102:データを外部シャッフルサービスに送信するように配置される。
いくつかの実施例では、データを外部シャッフルサービスへ送信する前に、実行スレッドはさらに、該データを処理することができる。具体的には、駆動スレッドのタスク要求に応答し、ユーザのデータを読み取り、データを弾性分散データセット(Resilient Distributed DataSet、略称RDD)に構成するステップと、その後ユーザの処理ロジックを呼び出してRDDを処理しシャッフルデータを得るステップと、最後にシャッフルデータを外部シャッフルサービスに絶えず書き込むステップと、を含む。
状態修正モジュール1103:外部シャッフルサービスへデータの送信を完了した後に、タスクの状態を完了待ち状態に修正するように配置される。
いくつかの実施例において、実行スレッドは、各タスクの現在の状態を付したタスクセットリストを用いてタスクを管理する。そのうち、タスク状態は、起動状態、実行状態、完了状態、失敗状態、停止状態、紛失状態および完了待ち状態を含む。そのうち、完了待ち状態は、実行スレッドが外部Shuffleサービスへデータの送信を終えたが、まだ完了していない状態である。言い換えれば、データが既に外部Shuffleサービスに書き込まれたが、外部Shuffleサービスはまだこれらデータを分散型ファイルシステムに書き込んでおらず、タスクの状態は完了状態に属さず、すなわち、該タスクは実際に完全には終了していない。
本実施例では、もとのタスク状態を基に、データが既に外部Shuffleサービスに書き込まれており、外部Shuffleサービスがデータを分散型ファイルシステムに記憶するのを待っていることを示す完了待ち状態を加えている。このとき、実行スレッドは具体的に作業せず、リソースを占めなくなっている。
第2送信モジュール1104:タスクに対応する実行スレッドを駆動スレッドが解放するために、完了待ち状態を駆動スレッドに送信するように配置される。
いくつかの実施例では、実行スレッドがデータを外部Shuffleサービスに書き込むとき、完了待ち状態を駆動スレッドへ送信する。タスクの状態が完了待ち状態であることを受信したとき、駆動スレッドは、該タスクに対応する実行スレッドを解放し、こうして駆動スレッドは該実行スレッドのためにタスクを改めて割り当てることができる。
本開示の実施例が提供する分散型記憶装置は、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信し、前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正し、前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信し、すなわち、実行スレッドが外部シャッフルサービスへデータの送信を完了した後に、このタスクが完了待ち状態にあることを駆動スレッドに返し、駆動スレッドはすぐに該タスクに対応する実行スレッドを解放するため、このタスクが終了状態になるのを待ってから対応する実行スレッドを解放する必要はなく、実行スレッドリソースの浪費を低減し、タスクの実行効率を向上している。
第4の様態において、本実施例は、駆動スレッドに応用する分散型記憶装置を提供する。図12は、本開示の実施例が提供する分散型記憶装置の原理ブロック図である。図12に示すように、分散型記憶装置は、タスク送信モジュール1201、受信モジュール1202、リソース解放モジュール1203を含む。
タスク送信モジュール1201:実行スレッドへタスク要求を送信して、実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させるように配置される。
そのうち、駆動スレッドは実行スレッドにタスクを割り当て、実行スレッドが駆動スレッドのタスク要求に応答して相応のタスクを実行し、データを分散型ファイルシステムに記憶する。
本実施例において、駆動スレッドは外部Shuffleサービスを介してデータを分散型ファイルシステムに記憶する。駆動スレッドで配布されたタスクを実行スレッドが受信したとき、実行スレッドはデータを読み取り、これらデータを外部Shuffleサービスに絶えず送信し、外部Shuffleサービスはさらにデータを分散型ファイルシステムに記憶する。
いくつかの実施例において、実行スレッドは、第1タスク Map Shuffle Taskと第2タスク Result Taskを実行する。そのうち、実行スレッドがMap Shuffle Taskを実行するステップは、Map Shuffle Taskが駆動スレッドのタスク要求に応答し、ユーザのデータを読み取り、データを弾性分散データセット(Resilient Distributed DataSet、略称RDD)に構成するステップと、その後ユーザの処理ロジックを呼び出してRDDを処理しシャッフルデータを得るステップと、最後にシャッフルデータを外部シャッフルサービスに絶えず書き込むステップと、を含む。
受信モジュール1202:実行スレッドが返したタスクの状態を受信するように配置される。
リソース解放モジュール1203:実行スレッドが返したタスクの状態が完了待ち状態であるとき、タスクに対応する実行スレッドを解放するように配置される。
このうち、完了待ち状態は、実行スレッドが外部シャッフルサービスにデータの送信を完了した後にタスクが置かれている状態である。
いくつかの実施例では、実行スレッドがデータを外部Shuffleサービスに書き込むとき、完了待ち状態を駆動スレッドへ送信する。タスクの状態が完了待ち状態であることを受信したとき、駆動スレッドは、該タスクに対応する実行スレッドを解放し、こうして駆動スレッドは該実行スレッドのためにタスクを改めて割り当てることができる。
本開示の実施例が提供する分散型記憶装置は、駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信し、前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正し、前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信し、すなわち、実行スレッドが外部シャッフルサービスへデータの送信を完了した後に、該タスクが完了待ち状態にあることを駆動スレッドへ返し、駆動スレッドはすぐに該タスクに対応する実行スレッドを解放するため、このタスクが終了状態になるのを待ってから対応する実行スレッドを解放する必要はなく、実行スレッドリソースの浪費を低減し、タスクの実行効率を向上している。
第5の様態において、図13を参照すると、本開示の実施例は、
1つまたは複数のプロセッサ1301と、
1つまたは複数のプログラムが記憶され、1つまたは複数のプログラムが1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサが上記の何れか一項に記載の分散型記憶方法を実現するメモリ1302と、
プロセッサとメモリとの情報のやり取りを実現するように配置され、プロセッサとメモリとの間に接続された1つまたは複数のI/Oインターフェース1303と、を備える電子機器を提供する。
そのうち、プロセッサ1301はデータ処理能力を具備する装置であり、中央処理ユニット(CPU)などを含むが、これに限定されない。メモリ1302はデータ記憶能力を具備する装置であり、ランダムアクセスメモリ(RAM、より具体的には、SDRAM、DDRなど)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM(登録商標))、フラッシュメモリ(FLASH(登録商標))を含むが、これに限定されない。I/Oインターフェース(読み取りおよび書き込みインターフェース)1303はプロセッサ1301とメモリ1302との間に接続され、プロセッサ1301とメモリ1302との情報のやり取りを実現することができ、データバス(Bus)などを含むが、これに限定されない。
いくつかの実施例では、プロセッサ1301と、メモリ1302と、I/Oインターフェース1303と、はバスを介して互いに接続され、さらに電子機器の他のコンポーネントと接続されている。
第6の様態において、本開示の実施例は、コンピュータプログラムが記憶され、プログラムがプロセッサによって実行されるときに上記の何れか1つの分散型記憶方法を実現する、コンピュータ可読媒体を提供する。
第7の様態において、本開示の実施例は、コンピュータプログラムを備え、当該コンピュータプログラムがプロセッサによって実行されるときに上記の何れか1つの分散型記憶方法を実現する、コンピュータプログラム製品をさらに提供する。
本開示の方法を実施するためのコンピュータプログラムは、1つまたは複数のプログラミング言語の任意の組み合わせで書くことができる。これらコンピュータプログラムは、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブルデータ処理装置のプロセッサまたはコントローラに提供でき、コンピュータプログラムがプロセッサまたはコントローラによって実行されるときに、フローチャートおよび/またはブロック図で規定された機能/操作が実施される。コンピュータプログラムは、完全にマシン上で実行されるか、一部がマシン上で実行されるか、独立したソフトウェアパッケージとして一部がマシン上で実行され且つ一部がリモートマシン上で実行されるか、或いは完全にリモートマシンまたはサーバー上で実行されることが可能である。
当業者は、上記で公開されている方法におけるステップ、システム、装置の機能モジュール/ユニットの全てまたはいくつかが、ソフトウェア、ファームウェア、ハードウェア、およびそれらの適切な組み合わせとして実施され得ると理解することができる。ハードウェアでの実施の形態において、上記記載で言及した機能モジュール/ユニットとの間の区分は、必ずしも物理的コンポーネントの区分に対応するとは限らない。例えば、1つの物理的コンポーネントは、複数の機能を具備してもよく、または1つの機能またはステップは、幾つかの物理的コンポーネントによって連携して実行されてもよい。ある物理的コンポーネントまたはすべての物理的コンポーネントは、中央処理装置、デジタル信号プロセッサ、もしくはマイクロプロセッサなどのプロセッサによって実行されるソフトウェアとして、またはハードウェアとして、あるいは専用集積回路などの集積回路として実施されてよい。このようなソフトウェアはコンピュータ可読媒体上に設けることができ、コンピュータ可読媒体はコンピュータ記憶媒体(または非一時的媒体)および通信媒体(または一時的媒体)を含んでよい。当業者が知っているように、コンピュータ記憶媒体という用語は、情報(コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど)を記憶するための任意の方法または技術で実施する揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、または所望の情報を記憶するために使用されるものであってよく、且つコンピュータによってアクセスできる任意の他の媒体を含むが、これらに限定されない。このほか、通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他の伝送機構などの変調データ信号内の他のデータを含み、任意の情報配信媒体を含むことができることが当業者に知られている。
本文では例示的な実施例を公開し、また具体的な用語を用いているが、それらは、一般的な例示的な意味のみに解釈されるべきであり、限定の目的で使用されない。いくつかの実例では、別途明確に指摘しない限り、特定の実施例と組み合わせて説明した特徴、特性および/または要素を単独で使用してよく、あるいは他の実施例と組み合わせて説明した特徴、特性および/または要素を組み合わせて使用してもよいということは、当業者にとって自明のことである。したがって、添付の請求項によって明らかにされた本開示の範囲から逸脱しなければ、様々な形態および詳細において変更を行うことができると当業者は理解するであろう。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信するステップと、
前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正するステップと、
前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信するステップと、
を含む、分散型記憶方法。
[C2]
駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信する前記ステップは、
駆動スレッドのタスク要求に応答して前記データを読み取り、前記データに基づいて弾性分散データセットを構成するステップと、
前記弾性分散データセットを処理してシャッフルデータを得るステップと、
前記シャッフルデータを前記外部シャッフルサービスに書き込むステップと、
を含む、C1に記載の方法。
[C3]
前記外部シャッフルサービスへ前記データの送信を完了し、前記タスクの状態を完了待ち状態に修正した後に、
完了待ち状態にあるタスクの集合であるパイプラインタスクセットに、完了待ち状態にある前記タスクを加えるステップを含む、
C1または2に記載の方法。
[C4]
パイプラインタスクセットに、完了待ち状態にある前記タスクを加える前記ステップの後に、
前記外部シャッフルサービスが返した応答情報に応答し、コールバック関数を呼び出して前記タスクに対しコールバック操作を行うステップと、
前記コールバック操作を実行する前記タスクを前記パイプラインタスクセットから除去するステップと、
をさらに含む、C3に記載の方法。
[C5]
パイプラインタスクセットに、完了待ち状態にある前記タスクを加える前記ステップの後に、
前記パイプラインタスクセットにおける前記タスクに対しフラッシュ操作を行うステップと、
終了状態にあるタスクを前記パイプラインタスクセットからフィルタリングするステップと、
失敗コールバック関数と完了コールバック関数を呼び出し、終了状態にある前記タスクに対しコールバック操作を行うステップと、
前記コールバック操作を実行した後の前記タスクを前記パイプラインタスクセットから除去するステップと、
をさらに含む、C3に記載の方法。
[C6]
前記パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行う前記ステップは、
予め設定された時間間隔通りに、または前記タスクの数量が所定値に達したとき、前記パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行うステップを含む、
C5に記載の方法。
[C7]
前記終了状態は停止状態、タイムアウト状態および/または完了状態
を含む、C5または6に記載の方法。
[C8]
実行スレッドへタスク要求を送信して、前記実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させるステップと、
前記実行スレッドが返したタスクの状態が、前記実行スレッドが前記外部シャッフルサービスに前記データの送信を完了した後に前記タスクが置かれている状態である完了待ち状態であることに応答して、前記タスクに対応する実行スレッドを解放するステップと、
を含む分散型記憶方法。
[C9]
駆動スレッドのタスク要求に応答してデータを読み取るように配置されたデータ読み取りモジュールと、
前記データを外部シャッフルサービスに送信するように配置された第1送信モジュールと、
前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正するように配置された状態修正モジュールと、
前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信するように配置された第2送信モジュールと、
を備える、分散型記憶装置。
[C10]
実行スレッドへタスク要求を送信して、前記実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させるように配置されたタスク送信モジュールと、
前記実行スレッドが返したタスクの状態を受信するように配置された受信モジュールと、
前記実行スレッドが返したタスクの状態が、前記実行スレッドが前記外部シャッフルサービスに前記データの送信を完了した後に前記タスクが置かれている状態である完了待ち状態であるとき、前記タスクに対応する実行スレッドを解放するように配置されたリソース解放モジュールと、
を備える、分散型記憶装置。
[C11]
1つまたは複数のプロセッサと、
1つまたは複数のプログラムが記憶され、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサがC1~8の何れか一項に記載の方法を実現するメモリと、
前記プロセッサとメモリとの情報のやり取りを実現するように配置され、前記プロセッサとメモリとの間に接続された1つまたは複数のI/Oインターフェースと、
を備える、電子機器。
[C12]
コンピュータプログラムが記憶され、前記プログラムがプロセッサによって実行されるときにC1~8の何れか一項に記載の方法を実現する、
コンピュータ可読媒体。
[C13]
コンピュータプログラムを備え、前記コンピュータプログラムがプロセッサによって実行されるときにC1~8の何れか一項に記載の方法を実現する、
コンピュータプログラム製品。

Claims (14)

  1. 駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信するステップと、
    前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正するステップと、
    前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信するステップと、
    を含み、
    ここにおいて、前記駆動スレッドは、前記タスクの前記状態が前記完了待ち状態ではなく前記タスクが完了されたことを示す完了状態であること、および前記タスクの前の状態が前記完了待ち状態であることを判定することに応答して、前記実行スレッドのリソースを保持する、および、
    前記駆動スレッドは、前記タスクの前記状態が前記完了待ち状態ではなく前記完了状態であること、および前記タスクの前記前の状態が前記完了待ち状態でないことを判定することに応答して、前記実行スレッドを解放する、
    分散型記憶方法。
  2. 駆動スレッドのタスク要求に応答し、データを読み取って外部シャッフルサービスに送信する前記ステップは、
    駆動スレッドのタスク要求に応答して前記データを読み取り、前記データに基づいて弾性分散データセットを構成するステップと、
    前記弾性分散データセットを処理してシャッフルデータを得るステップと、
    前記シャッフルデータを前記外部シャッフルサービスに書き込むステップと、
    を含む、請求項1に記載の方法。
  3. 前記外部シャッフルサービスへ前記データの送信を完了し、前記タスクの状態を完了待ち状態に修正した後に、
    完了待ち状態にあるタスクの集合であるパイプラインタスクセットに、完了待ち状態にある前記タスクを加えるステップを含む、
    請求項1に記載の方法。
  4. パイプラインタスクセットに、完了待ち状態にある前記タスクを加える前記ステップの後に、
    前記外部シャッフルサービスが返した応答情報に応答し、コールバック関数を呼び出して前記タスクに対しコールバック操作を行うステップと、
    前記コールバック操作を実行する前記タスクを前記パイプラインタスクセットから除去するステップと、
    をさらに含む、請求項3に記載の方法。
  5. パイプラインタスクセットに、完了待ち状態にある前記タスクを加える前記ステップの後に、
    前記パイプラインタスクセットにおける前記タスクに対しフラッシュ操作を行うステップと、
    終了状態にあるタスクを前記パイプラインタスクセットからフィルタリングするステップと、
    失敗コールバック関数と完了コールバック関数を呼び出し、終了状態にある前記タスクに対しコールバック操作を行うステップと、
    前記コールバック操作を実行した後の前記タスクを前記パイプラインタスクセットから除去するステップと、
    をさらに含む、請求項3に記載の方法。
  6. 前記パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行う前記ステップは、
    予め設定された時間間隔通りに、または前記タスクの数量が所定値に達したとき、前記パイプラインタスクセットにおけるタスクに対しフラッシュ操作を行うステップを含む、請求項5に記載の方法。
  7. 前記終了状態は停止状態、タイムアウト状態および/または完了状態
    を含む、請求項5または6に記載の方法。
  8. 前記駆動スレッドは、前記タスクの前記状態が前記完了待ち状態であることを判定することに応答して、前記実行スレッドを解放する、および、前記タスクの前記状態が前記完了待ち状態ではなく前記完了状態でもないことを判定することに応答して、前記実行スレッドの前記リソースを変わらず保持する、請求項1に記載の方法。
  9. 実行スレッドへタスク要求を送信して、前記実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させるステップと、
    前記実行スレッドが返したタスクの状態が、前記実行スレッドが前記外部シャッフルサービスに前記データの送信を完了した後に前記タスクが置かれている状態である完了待ち状態であることに応答して、前記タスクに対応する実行スレッドを解放するステップと、 前記実行スレッドが返した前記タスクの前記状態が前記完了待ち状態ではなく前記タスクが完了されたことを示す完了状態であること、および前記タスクの前の状態が前記完了待ち状態であることを判定することに応答して、前記実行スレッドのリソースを変わらず保持するステップと、
    前記実行スレッドが返した前記タスクの前記状態が前記完了待ち状態ではなく前記完了状態であること、および前記タスクの前記前の状態が前記完了待ち状態でないことを判定することに応答して、前記実行スレッドを解放するステップと、
    を含む分散型記憶方法。
  10. 駆動スレッドのタスク要求に応答してデータを読み取るように配置されたデータ読み取りモジュールと、
    前記データを外部シャッフルサービスに送信するように配置された第1送信モジュールと、
    前記外部シャッフルサービスへ前記データの送信を完了した後に、前記タスクの状態を完了待ち状態に修正するように配置された状態修正モジュールと、
    前記タスクに対応する実行スレッドを前記駆動スレッドが解放するために、前記完了待ち状態を前記駆動スレッドに送信するように配置された第2送信モジュールと、
    を備え、
    ここにおいて、前記駆動スレッドは、前記タスクの前記状態が前記完了待ち状態ではなく前記タスクが完了されたことを示す完了状態であること、および前記タスクの前の状態が前記完了待ち状態であることを判定することに応答して、前記実行スレッドのリソースを変わらず保持する、および、
    前記駆動スレッドは、前記タスクの前記状態が前記完了待ち状態でなく前記完了状態であること、および前記タスクの前記前の状態が前記完了待ち状態でないことを判定することに応答して、前記実行スレッドを解放する、
    分散型記憶装置。
  11. 実行スレッドへタスク要求を送信して、前記実行スレッドにデータを読み取らせて外部シャッフルサービスへ送信させるように配置されたタスク送信モジュールと、
    前記実行スレッドが返したタスクの状態を受信するように配置された受信モジュールと、前記実行スレッドが返したタスクの状態が、前記実行スレッドが前記外部シャッフルサービスに前記データの送信を完了した後に前記タスクが置かれている状態である完了待ち状態であるとき、前記タスクに対応する実行スレッドを解放し、
    前記実行スレッドが返した前記タスクの前記状態が前記完了待ち状態ではなく前記タスクが完了されたことを示す完了状態であること、および前記タスクの前の状態が前記完了待ち状態であることを判定することに応答して、前記実行スレッドのリソースを変わらず保持し、
    前記実行スレッドが返した前記タスクの前記状態が前記完了待ち状態ではなく前記完了状態であること、および前記タスクの前の状態が前記完了待ち状態でないことを判定することに応答して、前記実行スレッドを解放する
    ように配置されたリソース解放モジュールと、
    を備える、分散型記憶装置。
  12. 1つまたは複数のプロセッサと、
    1つまたは複数のプログラムが記憶され、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサが請求項1~9の何れか一項に記載の方法を実現する非一時的メモリと、
    前記プロセッサと前記非一時的メモリとの情報のやり取りを実現するように配置され、前記プロセッサと前記非一時的メモリとの間に接続された1つまたは複数のI/Oインターフェースと、
    を備える、電子機器。
  13. コンピュータプログラムが記憶され、前記プログラムがプロセッサによって実行されるときに請求項1~9の何れか一項に記載の方法を実現する、
    コンピュータ可読記憶媒体。
  14. ンピュータプログラムがプロセッサによって実行されるときに請求項1~9の何れか一項に記載の方法を実現する、
    コンピュータプログラム。
JP2021008733A 2020-06-30 2021-01-22 分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品 Active JP7226743B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010616643.4A CN111782367B (zh) 2020-06-30 2020-06-30 分布式存储方法及装置、电子设备、计算机可读介质
CN202010616643.4 2020-06-30

Publications (2)

Publication Number Publication Date
JP2022013618A JP2022013618A (ja) 2022-01-18
JP7226743B2 true JP7226743B2 (ja) 2023-02-21

Family

ID=72760428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021008733A Active JP7226743B2 (ja) 2020-06-30 2021-01-22 分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品

Country Status (5)

Country Link
US (1) US20210406067A1 (ja)
EP (1) EP3933582B1 (ja)
JP (1) JP7226743B2 (ja)
KR (1) KR102544755B1 (ja)
CN (1) CN111782367B (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185229A (ja) 2004-12-28 2006-07-13 Hitachi Ltd オンライン同期処理方法及び装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1976349A (zh) * 2001-10-05 2007-06-06 Bea系统公司 爪哇小服务程序和http客户机间异步消息接发的系统和方法
CN100395715C (zh) * 2001-11-30 2008-06-18 富士通天株式会社 微型计算机的逻辑开发装置
KR20090065232A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법
CN103279390B (zh) * 2012-08-21 2016-09-28 中国科学院信息工程研究所 一种面向小作业优化的并行处理系统
US9069790B2 (en) * 2013-03-14 2015-06-30 Stephen P. LORD Multi-threaded message passing journal
CN103605576B (zh) * 2013-11-25 2017-02-08 华中科技大学 一种基于多线程的MapReduce执行系统
KR101594830B1 (ko) * 2014-01-13 2016-02-17 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버
CN105373420B (zh) * 2014-08-28 2019-12-06 北京奇虎科技有限公司 数据传输方法及装置
CN105718244B (zh) * 2016-01-18 2018-01-12 上海交通大学 一种流水化数据洗牌传输的Spark任务调度与执行方法
KR20190069229A (ko) * 2017-12-11 2019-06-19 한국교통대학교산학협력단 분산 인메모리 이동 객체 관리 시스템 및 방법
CN108173924A (zh) * 2017-12-26 2018-06-15 北京永洪商智科技有限公司 一种基于分布式平台的大数据传输系统
CN109523455A (zh) * 2018-09-30 2019-03-26 平安科技(深圳)有限公司 一种图像数据异步传输方法、装置及计算机可读存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185229A (ja) 2004-12-28 2006-07-13 Hitachi Ltd オンライン同期処理方法及び装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
稲垣 英夫,Apache SparkのSerialize処理最適化による処理速度向上手法,情報処理学会 研究報告 システムソフトウェアとオペレーティング・システム(OS) ,日本,情報処理学会,2017年07月19日,2017-OS-141巻,第16号,pp.1-7

Also Published As

Publication number Publication date
CN111782367A (zh) 2020-10-16
EP3933582A1 (en) 2022-01-05
CN111782367B (zh) 2023-08-08
US20210406067A1 (en) 2021-12-30
JP2022013618A (ja) 2022-01-18
KR102544755B1 (ko) 2023-06-20
KR20220002056A (ko) 2022-01-06
EP3933582B1 (en) 2023-07-19

Similar Documents

Publication Publication Date Title
US11379272B2 (en) Autoscaling using file access or cache usage for cluster machines
CN109117260B (zh) 一种任务调度方法、装置、设备和介质
CN110941481A (zh) 资源调度方法、装置及系统
US20210064425A1 (en) Task Processing Method, Processing Apparatus, and Computer System
US9104501B2 (en) Preparing parallel tasks to use a synchronization register
US10067793B2 (en) Data processing method and apparatus for executing task code using reservation instruction and release instruction
US10379906B2 (en) Method and apparatus for system call command batch processing
CN107168777B (zh) 分布式系统中资源的调度方法以及装置
CN108874549B (zh) 资源复用方法、装置、终端和计算机可读存储介质
WO2013091219A1 (zh) 并发任务的处理方法及装置
WO2017193964A1 (zh) 一种组件升级方法、装置和系统
CN114816709A (zh) 任务调度方法、装置、服务器及可读存储介质
JP7226743B2 (ja) 分散型記憶方法および装置、電子機器、コンピュータ可読媒体およびコンピュータプログラム製品
WO2001082074A1 (fr) Systeme informatique et support d'enregistrement pouvant etre lu par ordinateur
CN113342554A (zh) Io多路复用方法、介质、设备和操作系统
CN110968406B (zh) 处理任务的方法、装置、存储介质和处理器
CN111666141A (zh) 任务调度方法、装置、设备及计算机存储介质
US20230393782A1 (en) Io request pipeline processing device, method and system, and storage medium
CN114327259A (zh) 一种闪存通道控制器运行方法、装置、设备及存储介质
CN109117278A (zh) 一种移动终端及其进程间通信的限制方法、存储介质
CN114691321A (zh) 一种任务调度方法、装置、设备及存储介质
US20230195523A1 (en) Semiconductor device, control method for the same, and program
CN107678838B (zh) 一种跟踪虚拟机操作的方法、装置及虚拟机管理平台
CN112199168A (zh) 任务处理方法、装置及系统和任务状态交互方法
CN116737331A (zh) 一种智能化任务流编排方法和平台

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230201

R150 Certificate of patent or registration of utility model

Ref document number: 7226743

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150