(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022117451
(43)【公開日】2022-08-10
(54)【発明の名称】変更タスクを実行する方法、装置、電子機器、及び読み取り可能な記憶媒体
(51)【国際特許分類】
G06F 13/14 20060101AFI20220803BHJP
G06F 11/07 20060101ALI20220803BHJP
【FI】
G06F13/14 330E
G06F11/07 157
G06F11/07 140M
【審査請求】有
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2022005542
(22)【出願日】2022-01-18
(31)【優先権主張番号】202110129933.0
(32)【優先日】2021-01-29
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ワン、イフェイ
(72)【発明者】
【氏名】ワン、ヤン
(72)【発明者】
【氏名】ワン、ユ
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA36
5B042JJ15
(57)【要約】 (修正有)
【課題】構成センターによって生成された変換タスクがストレージノードによって順次実行できることを確保し、タスク配信の精度と変更タスクの実行効率を向上させる装置、方法及びプログラムを提供する。
【解決手段】方法は、構成センターが変更タスクを受信して実行し、変更後の状態データ及び/又は構成データをローカルに記憶するステップと、変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、変換タスクを各ストレージノードに対応する非同期タスクキューにそれぞれ追加するステップと、ストレージノードによって送信されたハートビートパケットを受信するステップと、当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信するステップと、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
構成センターで実行される、変更タスクを実行する方法であって、
ユーザから送信された変更タスクを受信して実行し、変更後の状態データ及び/又は構成データをローカルに記憶するステップと、
前記変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、構成センターによって予め設定された各ストレージノードに対応する非同期タスクキューに前記変換タスクをそれぞれ追加するステップと、
ストレージノードによって送信されたハートビートパケットを受信するステップと、
当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにするステップと、を含む、
変更タスクを実行する方法。
【請求項2】
当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得するステップは、
当該ストレージノードに対応する非同期タスクキュー内の各変換タスクのタスクタイプを決定するステップと、
同じタスクタイプに対応する変換タスクから最新に追加された変換タスクをそれぞれ取得するステップと、を含む、
請求項1に記載の変更タスクを実行する方法。
【請求項3】
前記取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信するステップは、
取得された変換タスクのタスクタイプを決定するステップと、
取得された変換タスクと、変換タスクのタスクタイプをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信するステップと、を含む、
請求項1又は2に記載の変更タスクを実行する方法。
【請求項4】
報告タスクを生成するステップと、
前記報告タスクを各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信するステップと、
各ストレージノードによって送信された状態データ及び/又は構成データを受信するステップと、
各ストレージノードによって送信された状態データ及び/又は構成データを、ローカルに記憶された状態データ及び/又は構成データと比較して、各ストレージノードに対応する補償タスクを生成し、各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信するステップと、をさらに含む、
請求項1から3のいずれか一項に記載の変更タスクを実行する方法。
【請求項5】
ストレージノードで実行される、変更タスクを実行する方法であって、
構成センターにハートビートパケットを送信するステップと、
前記構成センターによって送信されたハートビートパケットの返信メッセージを受信するステップであって、前記ハートビートパケットの返信メッセージには、変換タスクが含まれ、前記変換タスクは、変更後の状態データ及び/又は構成データに基づいて前記構成センターによって生成されるステップと、
前記変換タスクをストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するステップと、を含む、
変更タスクを実行する方法。
【請求項6】
前記変換タスクを非同期タスク受信キューに追加して順次実行するステップは、
異なるタスクタイプに対応する非同期タスク受信キューを予め設定するステップと、
前記変換タスクのタスクタイプを決定するステップと、
前記変換タスクを前記タスクタイプに対応する非同期タスク受信キューに追加して順次実行するステップと、を含む、
請求項5に記載の変更タスクを実行する方法。
【請求項7】
前記構成センターによって送信された報告タスクを受信した後、ローカルに記憶された状態データ及び/又は構成データを取得するステップと、
取得された状態データ及び/又は構成データを前記構成センターに送信するステップと、をさらに含む、
請求項5又は6に記載の変更タスクを実行する方法。
【請求項8】
取得された状態データ及び/又は構成データを前記構成センターに送信した後、前記構成センターによって送信された補償タスクを受信するステップと、
前記補償タスクを前記非同期タスク受信キューに追加して順次実行するステップと、をさらに含む、
請求項7に記載の変更タスクを実行する方法。
【請求項9】
構成センターに配置される、変更タスクを実行する装置であって、
ユーザから送信された変更タスクを受信して実行し、変更後の状態データ及び/又は構成データをローカルに記憶するための変更ユニットと、
前記変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、構成センターによって予め設定された各ストレージノードに対応する非同期タスクキューに前記変換タスクをそれぞれ追加するための生成ユニットと、
ストレージノードによって送信されたハートビートパケットを受信するための第1の受信ユニットと、
当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにするための処理ユニットと、を含む、
変更タスクを実行する装置。
【請求項10】
前記処理ユニットは、当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得する時、具体的には、
当該ストレージノードに対応する非同期タスクキュー内の各変換タスクのタスクタイプを決定し、
同じタスクタイプに対応する変換タスクから最新に追加された変換タスクをそれぞれ取得することを実行する、
請求項9に記載の変更タスクを実行する装置。
【請求項11】
前記処理ユニットは、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信する時、具体的には、
取得された変換タスクのタスクタイプを決定し、
取得された変換タスクと、変換タスクのタスクタイプをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信することを実行する、
請求項9又は10に記載の変更タスクを実行する装置。
【請求項12】
補償ユニットをさらに含み、前記補償ユニットは、
報告タスクを生成し、
前記報告タスクを各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信し、
各ストレージノードによって送信された状態データ及び/又は構成データを受信し、
各ストレージノードによって送信された状態データ及び/又は構成データを、ローカルに記憶された状態データ及び/又は構成データと比較して、各ストレージノードに対応する補償タスクを生成し、各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信することを実行するために用いられる、
請求項9から11のいずれか一項に記載の変更タスクを実行する装置。
【請求項13】
ストレージノードに配置される、変更タスクを実行する装置であって、
構成センターにハートビートパケットを送信するための送信ユニットと、
前記構成センターによって送信されたハートビートパケットの返信メッセージを受信するための第2の受信ユニットであって、前記ハートビートパケットの返信メッセージには、変換タスクが含まれ、前記変換タスクは、変更後の状態データ及び/又は構成データに基づいて前記構成センターによって生成される第2の受信ユニットと、
前記変換タスクをストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するための実行ユニットと、を含む、
変更タスクを実行する装置。
【請求項14】
前記実行ユニットは、前記変換タスクを非同期タスク受信キューに追加して順次実行する時、具体的には、
異なるタスクタイプに対応する非同期タスク受信キューを予め設定し、
前記変換タスクのタスクタイプを決定し、
前記変換タスクを前記タスクタイプに対応する非同期タスク受信キューに追加して順次実行することを実行する、
請求項13に記載の変更タスクを実行する装置。
【請求項15】
第3の受信ユニットをさらに含み、前記第3の受信ユニットは、
前記構成センターによって送信された報告タスクを受信した後、ローカルに記憶された状態データ及び/又は構成データを取得し、
取得された状態データ及び/又は構成データを前記構成センターに送信することを実行するために用いられる、
請求項13又は14に記載の変更タスクを実行する装置。
【請求項16】
前記第3の受信ユニットは、さらに、
取得された状態データ及び/又は構成データを前記構成センターに送信した後、前記構成センターによって送信された補償タスクを受信し、
前記補償タスクを前記非同期タスク受信キューに追加して順次実行することを実行するために用いられる、
請求項15に記載の変更タスクを実行する装置。
【請求項17】
電子機器であって、
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサと通信接続されたメモリと、を含み、
前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが請求項1~8のいずれか一つに記載の変更タスクを実行する方法を実行する、
電子機器。
【請求項18】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令は、コンピュータに請求項1~8のいずれか一つに記載の変更タスクを実行する方法を実行させる、
非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項19】
プロセッサによって実行される時に請求項1~8のいずれか一つに記載の方法を実現する、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ技術分野に関し、特に、ディープラーニング、知識グラフ、ビッグデータ技術分野の変更タスクを実行する方法、装置、電子機器、及び読み取り可能な記憶媒体に関する。
【背景技術】
【0002】
分散グラフデータベースアーキテクチャでは、構成センター、ストレージクラスタと計算クラスタを含み、ストレージクラスタは、ストレージノードを含み、計算クラスタは、計算ノードを含む。
【0003】
データはストレージクラスタに分散して格納されており、ストレージクラスタの状態及び/又は構成の変換は、すべて構成センターを介して変換タスクをストレージノードに配信して実行する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、変更タスクを実行する方法、装置、電子機器、及び読み取り可能な記憶媒体を提供して、構成センターによって生成された変換タスクがストレージノードによって順次実行できることを確保し、タスク配信の精度と変更タスクの実行効率を向上させる。
【課題を解決するための手段】
【0005】
本開示の第1の態様によれば、変更タスクを実行する方法を提供し、前記方法は、構成センターで実行され、ユーザから送信された変更タスクを受信して実行し、変更後の状態データ及び/又は構成データをローカルに記憶するステップと、前記変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、構成センターによって予め設定された各ストレージノードに対応する非同期タスクキューに前記変換タスクをそれぞれ追加するステップと、ストレージノードによって送信されたハートビートパケットを受信するステップと、当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにするステップと、を含む。
【0006】
本開示の第2の態様によれば、変更タスクを実行する方法を提供し、前記方法は、ストレージノードで実行され、構成センターにハートビートパケットを送信するステップと、前記構成センターによって送信されたハートビートパケットの返信メッセージを受信するステップであって、前記ハートビートパケットの返信メッセージには、変換タスクが含まれ、前記変換タスクは、変更後の状態データ及び/又は構成データに基づいて前記構成センターによって生成されるステップと、前記変換タスクをストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するステップと、を含む。
【0007】
本開示の第3の態様によれば、変更タスクを実行する装置を提供し、前記装置は構成センターに配置され、ユーザから送信された変更タスクを受信して実行し、変更後の状態データ及び/又は構成データをローカルに記憶するための変更ユニットと、前記変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、構成センターによって予め設定された各ストレージノードに対応する非同期タスクキューに前記変換タスクをそれぞれ追加するための生成ユニットと、ストレージノードによって送信されたハートビートパケットを受信するための第1の受信ユニットと、当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにするための処理ユニットと、を含む。
【0008】
本開示の第4の態様によれば、変更タスクを実行する装置を提供し、前記装置はストレージノードに配置され、構成センターにハートビートパケットを送信するための送信ユニットと、前記構成センターによって送信されたハートビートパケットの返信メッセージを受信するための第2の受信ユニットであって、前記ハートビートパケットの返信メッセージには、変換タスクが含まれ、前記変換タスクは、変更後の状態データ及び/又は構成データに基づいて前記構成センターによって生成される第2の受信ユニットと、前記変換タスクをストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するための実行ユニットと、を含む。
【0009】
本開示の第5の態様によれば、電子機器を提供し、少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサと通信接続されたメモリと、を含み、前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが上記の方法を実行させる。
【0010】
本開示の第6の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ命令は、前記コンピュータに上記の方法を実行させる。
【0011】
本開示の第7の態様によれば、コンピュータプログラム製品を提供し、コンピュータプログラムを含み、前記コンピュータプログラムがプロセッサによって実行される時に上記の方法を実現する。
【0012】
上記の技術案により分かるように、本開示は、構成センターに非同期タスクキューを設置し、ストレージノードに非同期タスク受信キューを設置する方式によって、構成センターによって生成された変換タスクがストレージノードによって順次実行できることを確保することができ、タスク配信の精度と変更タスクの実行効率を向上させることができる。
【0013】
本明細書で説明された内容は、本開示の実施例のキー又は重要な特徴を特定することを意図しておらず、本開示の範囲を制限するためにも使用されないことを理解されたい。本開示の他の特徴は、以下の明細書を通じて容易に理解できる。
【図面の簡単な説明】
【0014】
図面は、本開示をより良く理解するためのものであり、本開示を限定しない。
【
図5】本開示の実施例の変更タスクを実行する方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0015】
以下、図面に基づいて、本開示の例示の実施例を表現する。理解を容易にするために、本開示の実施例の様々な詳細が含まれており、それらは単なる例示と見なされるべきである。従って、当業者は、本開示の範囲及び精神から逸脱することなく、本明細書に記載の実施形態に対して様々な変更及び修正を行うことができることを認識するはずである。類似として、簡明のために、以下の表現では、よく知られた機能と構造の表現は省略される。
【0016】
図1は、本開示の第1の実施例による概略図である。
図1に示すように、本実施例の変更タスクを実行する方法は、構成センターで実行され、具体的には、以下のようなステップを含むことができる。
S101、ユーザから送信された変更タスクを受信して実行し、変更後の状態データ及び/又は構成データをローカルに記憶し、
S102、前記変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、構成センターによって予め設定された各ストレージノードに対応する非同期タスクキューに前記変換タスクをそれぞれ追加し、
S103、ストレージノードによって送信されたハートビートパケットを受信し、
S104、当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにする。
【0017】
本実施例の変更タスクを実行する方法の実行主体は、構成センターであり、当該構成センターは、分散グラフデータベースにあり、分散グラフデータベース内のストレージクラスタに含まれるストレージノードを管理して対応するタスクを実行し、構成センターに非同期タスクキューを設置し、ストレージノードに非同期タスク受信キューを設置する方式によって、構成センターが変更命令によって生成された変換タスクに基づいてストレージノードによって順次実行されることができることを確保し、タスク配信の精度を向上させる。
【0018】
本実施例の構成センターは、S101を実行して受信されたユーザから送信された変更タスクは、ユーザが送信したストレージクラスタの状態及び/又は構成を変更することに対応する命令であってもよく、受信された変更命令を実行し、すなわちストレージクラスタの状態データ及び/又は構成データに対する変換を完了することができる。
【0019】
本実施例の構成センターは、S101を実行して受信された変更タスクを実行した後、変更後のストレージクラスタの状態データ及び/又は構成データをローカルに記憶し、すなわち構成センターは、ストレージクラスタの最新の状態データと構成データを記録する。
【0020】
また、本実施例の構成センターが変更タスクを成功的に実行できない場合、構成センターは、ユーザに変更失敗のメッセージを返して、ユーザに変更タスクの実行に失敗したことを提示することもできる。
【0021】
本実施例の構成センターは、S101を実行して変更後の状態データ及び/又は構成データをローカルに記憶した後、S102を実行して変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、生成された変換タスクを各ストレージノードに対応する非同期タスクキューにそれぞれ追加し、各ストレージノードに対応する非同期タスクキューは、構成センターによって予め設定される。
【0022】
また、本実施例の構成センターは、各ストレージノードに対して一つの非同期タスクキューを予め設置することができ、すなわち異なる非同期タスクキューは、異なるストレージノードに対応する。
【0023】
本実施例の構成センターによって生成された変換タスクは、各ストレージノードの変更後の状態及び/又は構成が構成センターによって受信された変更タスクに適合するように、各ストレージノードが現在の状態及び/又は構成を変更するために用いられることを理解することができる。
【0024】
例えば、構成センターによって受信された変更タスクが変換マスターノードのタスクである場合、当該変更タスクが具体的には元のマスターノードであるストレージノードAをスレーブノードに変換し、元のスレーブノードであるストレージノードBをマスターノードに変換する場合、構成センターは、変更後の状態データ(マスターノードがストレージノードBである、スレーブノードがストレージノードAである)をローカルに記憶した後、変更後の状態データに基づいて変換タスクを生成して(ストレージノードBをマスターノードに変換し、ストレージノードAをスレーブノードに変換する)各ストレージノードに配信して、各ストレージノードに対する状態変換を実現する。
【0025】
本実施例の構成センターは、S102を実行して生成された変換タスクを各ストレージノードに対応する非同期タスクキューにそれぞれ追加した後、S103を実行してストレージノードによって送信されたハートビートパケットを受信する。つまり、本実施例の構成センターは、ストレージノードに変換タスクを送信することは、ストレージノードが構成センターにハートビートパケットを送信することによってトリガされ、構成センターは、ハートビートパケットを送信するストレージノードにのみ変換タスクを送信する。
【0026】
本実施例の構成センターは、S103を実行して受信されたハートビートパケットは、ストレージノードによって周期的に送信されるハートビートパケットであってもよく、ストレージノードが構成センターに自体の状態を通知するために用いられる。
【0027】
本実施例の構成センターは、S103を実行してストレージノードによって送信されたハートビートパケットを受信した後、S104を実行して当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにする。
【0028】
ストレージノードは、構成センターにハートビートパケットを周期的に送信するため、構成センターは、各ハートビートパケットを受信する時に時間間隔があり、当該時間間隔内に、構成センターは複数の変換タスクを生成することができる。複数の変換タスクに同じタスクタイプを有する変換タスクが存在するため、タスク配信の精度を向上させ、ストレージノード計算リソースの浪費を回避するために、本実施例の構成センターは、S104を実行して当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得する時、使用できる選択可能な実現方式は、当該ストレージノードに対応する非同期タスクキューに追加された各変換タスクのタスクタイプを決定し、同じタスクタイプに対応する変換タスクから最新に追加された変換タスクをそれぞれ取得する。
【0029】
また、本実施例の構成センターは、S104を実行して当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得する時、当該非同期タスクキューからすべての実行されていない変換タスクを取得することもできる。
【0030】
本実施例の構成センターは、S104を実行して取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信する時、使用できる選択可能な実現方式は、取得された変換タスクのタスクタイプを決定し、取得された変換タスクと、変換タスクのタスクタイプをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信する。
【0031】
実際のシナリオでは、ストレージノード自体がハングアップしたり、ストレージノードにネットワークエラーが発生したりして変換タスクが完了できなくなることが存在するため、ストレージクラスタは状態が不一致する状況になる。
【0032】
ストレージクラスタが状態不一致の状況が発生することを回避するために、本実施例の構成センターは、以下の内容を実行することもでき、報告タスクを生成し、生成された報告タスクを各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信して、各ストレージノードがノードの状態データ及び/又は構成データを収集するようにし、各ストレージノードによって送信された状態データ及び/又は構成データを受信し、各ストレージノードによって送信された状態データ及び/又は構成データを、ローカルに記憶された状態データ及び/又は構成データと比較して、各ストレージノードに対応する補償タスクを生成し、各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信して、各ストレージノードが対応する補償タスクを実行してストレージクラスタ内の状態及び/又は構成の一致性を確保するようにする。
【0033】
その中、本実施例の構成センターは、報告タスクを生成する時、ストレージノードに最初のハートビートパケットを送信する時に報告タスクを生成し、非同期タスクキューに追加することができ、周期的に報告タスクを生成して、非同期タスクキューに追加することもでき、構成センターは、向ストレージノードに報告タスクを送信する時、主動に送信することができるし、非同期タスクキュー内の報告タスクをハートビートパケットの返信メッセージに追加して送信することもできる。
【0034】
つまり、本実施例の構成センターは、報告タスクを生成する方式は、ストレージクラスタにおける各ストレージノードの状態及び/又は構成の一致性を実現することができる。
【0035】
上記の実施例により提供される方法に基づいて、構成センターに非同期タスクキューを設置し、ストレージノードに非同期タスク受信キューを設置する方式によって、構成センターが変更命令によって生成された変換タスクに基づいてストレージノードによって順次実行されることができることを確保し、タスク配信の精度を向上させ、変更命令の実行効率をさらに向上させる。
【0036】
図2は、本開示の第2の実施例による概略図である。
図2に示すように、本実施例の変更タスクを実行する方法は、ストレージノードで実行され、具体的には、以下のようなステップを含むことができる。
S201、構成センターにハートビートパケットを送信し、
S202、前記構成センターによって送信されたハートビートパケットの返信メッセージを受信し、前記ハートビートパケットの返信メッセージには、変換タスクが含まれ、前記変換タスクは、変更後の状態データ及び/又は構成データに基づいて前記構成センターによって生成され、
S203、前記変換タスクをストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行する。
【0037】
本実施例のストレージノードは、S201を実行して構成センターにハートビートパケットを送信する時、構成センターにハートビートパケットを周期的に送信して、構成センター自体の状態を通知することができる。
【0038】
本実施例のストレージノードは、S201を実行して構成センターにハートビートパケットを送信した後、S202を実行して構成センターによって送信されたハートビートパケットの返信メッセージを受信し、受信されたハートビートパケットの返信メッセージには、変換タスクが含まれる。
【0039】
本実施例のストレージノードは、S202を実行して構成センターによって送信されたハートビートパケットの返信メッセージを受信した後、S203を実行して変換タスクを非同期タスク受信キューに追加して順次実行し、その中、本実施例の非同期タスク受信キューは、ストレージノードによって予め設定される。
【0040】
本実施例のストレージノードは、非同期タスク受信キューを予め設定して構成センターによって送信された変換タスクを格納することができ、ストレージノードは、一つの非同期タスク受信キューのみを予め設定することができるし、変換タスクのタスクタイプに基づいて複数の非同期タスク受信キューを設置することもでき、変換タスク実行時の同時実行性を向上させることを理解することができる。
【0041】
本実施例のストレージノードは、S203を実行して変換タスクを非同期タスク受信キューに追加して順次実行する時、使用できる選択可能な実現方式は、変換タスクのタスクタイプを決定し、変換タスクをタスクタイプに対応する非同期タスク受信キューに追加して順次実行し、異なるタスクタイプに対応する非同期タスク受信キューは、ストレージノードによって予め設定される。
【0042】
本実施例のストレージノードは、構成センターによって送信された報告タスクを受信した後、ローカルに記憶された状態データ及び/又は構成データを取得するステップと、取得された状態データ及び/又は構成データを構成センターに送信するステップと、をさらに含むことができ、送信された上記のデータは、構成センターが比較して、ストレージノード内の状態及び/又は構成が構成センターの状態及び/又は構成と同じであるか否かを決定するために用いられる。
【0043】
本実施例のストレージノードは、取得された状態データ及び/又は構成データを構成センターに送信した後、構成センターによって送信された補償タスクを受信し、受信された補償タスクを非同期タスク受信キューに追加して順次実行することをさらに含むことができる。
【0044】
本実施例のストレージノードによって受信された補償タスクは、ストレージノードが自体と構成センターとの記憶された異なる状態データ及び/又は構成データを変更して、ストレージノードの状態及び/又は構成と構成センターの状態及び/又は構成が同じであることを確保することにより、ストレージノードが自身の原因で変換タスクが完了しないことによってデータの非同期化の技術的問題を回避する。
【0045】
図3は、本開示の第3の実施例による概略図である。
図3に示すように、本実施例の変更タスクを実行する装置300は、構成センターに配置され、
ユーザから送信された変更タスクを受信して実行し、変更後の状態データ及び/又は構成データをローカルに記憶するための変更ユニット301と、
前記変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、構成センターによって予め設定された各ストレージノードに対応する非同期タスクキューに前記変換タスクをそれぞれ追加するための生成ユニット302と、
ストレージノードによって送信されたハートビートパケットを受信するための第1の受信ユニット303と、
当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにするための処理ユニット304と、を含む。
【0046】
本実施例の変更ユニット301によって受信された変更タスクは、ユーザが送信したストレージクラスタの状態及び/又は構成を変更することに対応する命令であってもよく、変更ユニット301が受信された変更タスクを実行し、すなわちストレージクラスタの状態データ及び/又は構成データに対する変換を完了することができる。
【0047】
本実施例の変更ユニット301によって受信された変更タスクを実行した後、変更後のストレージクラスタの状態データ及び/又は構成データをローカルに記憶し、すなわち構成センターは、ストレージクラスタの最新の状態データと構成データを記録する。
【0048】
また、本実施例の変更ユニット301が変更タスクを成功的に実行できない場合、変更ユニット301は、ユーザに変更失敗のメッセージを返して、ユーザに変更タスクの実行に失敗したことを提示することもできる。
【0049】
本実施例の構成センターは、変更ユニット301が変更後の状態データ及び/又は構成データをローカルに記憶した後、生成ユニット302が変更後の状態データ及び/又は構成データに基づいて変換タスクを生成し、生成された変換タスクを各ストレージノードに対応する非同期タスクキューにそれぞれ追加し、本実施例の各ストレージノードに対応する非同期タスクキューは、構成センターによって予め設定される。
【0050】
本実施例の生成ユニット302によって生成された変換タスクは、各ストレージノード変更後の状態及び/又は構成が構成センターによって受信された変更命令に適合するように、各ストレージノードが現在の状態及び/又は構成を変更するために用いられることを理解することができる。
【0051】
本実施例の構成センターは、生成ユニット302が生成された変換タスクを各ストレージノードに対応する非同期タスクキューにそれぞれ追加した後、第1の受信ユニット303がストレージノードによって送信されたハートビートパケットを受信する。
【0052】
本実施例の構成センターは、第1の受信ユニット303によって受信されたハートビートパケットは、ストレージノードによって周期的に送信されるハートビートパケットであってもよく、ストレージノードが構成センターに自体の状態を通知するために用いられる。
【0053】
本実施例の構成センターは、第1の受信ユニット303がストレージノードによって送信されたハートビートパケットを受信した後、処理ユニット304が当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得し、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信して、当該ストレージノードが前記ハートビートパケットの返信メッセージに含まれる変換タスクを当該ストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するようにする。
【0054】
ストレージノードは、構成センターにハートビートパケットを送信する時に時間間隔があり、当該時間間隔内に、構成センターは複数の変換タスクを生成することができる。複数の変換タスクに同じタスクタイプを有する変換タスクが存在するため、タスク配信の精度を向上させ、ストレージノード計算リソースの浪費を回避するために、本実施例の処理ユニット304は、当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得する時、使用できる選択可能な実現方式は、当該ストレージノードに対応する非同期タスクキューに追加された各変換タスクのタスクタイプを決定し、同じタスクタイプに対応する変換タスクから最新に追加された変換タスクをそれぞれ取得する。
【0055】
また、本実施例の処理ユニット304は、当該ストレージノードに対応する非同期タスクキューから追加された変換タスクを取得する時、当該非同期タスクキューからすべての実行されていない変換タスクを取得することもできる。
【0056】
本実施例の処理ユニット304は、取得された変換タスクをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信する時、使用できる選択可能な実現方式は、取得された変換タスクのタスクタイプを決定し、取得された変換タスクと、変換タスクのタスクタイプをハートビートパケットの返信メッセージに追加して当該ストレージノードに送信する。
【0057】
実際のシナリオでは、ストレージノード自体がハングアップしたり、ストレージノードにネットワークエラーが発生したりして変換タスクが完了できなくなるため、ストレージクラスタは状態が不一致する状況になる。
【0058】
ストレージクラスタが状態不一致の状況が発生することを回避するために、本実施例の変更命令を実行する装置300は、補償ユニット305をさらに含むことができ、前記補償ユニット305は、以下の内容を実行するために用いられ、報告タスクを生成し、生成された報告タスクを各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信して、各ストレージノードがノードの状態データ及び/又は構成データを収集するようにし、各ストレージノードによって送信された状態データ及び/又は構成データを受信し、各ストレージノードによって送信された状態データ及び/又は構成データを、ローカルに記憶された状態データ及び/又は構成データと比較して、各ストレージノードに対応する補償タスクを生成し、各ストレージノードに対応する非同期タスクキューに追加して、各ストレージノードに送信して、各ストレージノードが対応する補償タスクを実行してストレージクラスタ内の状態及び/又は構成の一致性を確保するようにする。
【0059】
その中、本実施例の補償ユニット305が報告タスクを生成する時、ストレージノードに最初のハートビートパケットを送信する時に報告タスクを生成し、非同期タスクキューに追加することができ、周期的に報告タスクを生成して、非同期タスクキューに追加することもでき、補償ユニット305がストレージノードに報告タスクを送信する時、主動に送信することができるし、非同期タスクキュー内の報告タスクをハートビートパケットの返信メッセージに追加して送信することもできる。
【0060】
つまり、本実施例の構成センターは、補償ユニット305によって報告タスクを生成する方式は、ストレージクラスタにおける各ストレージノードの状態及び/又は構成の一致性を実現することができる。
【0061】
図4は、本出願の第4の実施例による概略図である。
図4に示すように、本実施例の変更タスクを実行する装置は、ストレージノードに配置され、
構成センターにハートビートパケットを送信するための送信ユニット401と、
前記構成センターによって送信されたハートビートパケットの返信メッセージを受信するための第2の受信ユニット402であって、前記ハートビートパケットの返信メッセージには、変換タスクが含まれ、前記変換タスクは、変更後の状態データ及び/又は構成データに基づいて前記構成センターによって生成される第2の受信ユニット402と、
前記変換タスクをストレージノードによって予め設定された非同期タスク受信キューに追加して順次実行するための実行ユニット403と、を含む。
【0062】
本実施例のストレージノードは、送信ユニット401によって構成センターにハートビートパケットを送信する時、構成センターにハートビートパケットを周期的に送信して、構成センター自体の状態を通知することができる。
【0063】
本実施例のストレージノードは、送信ユニット401が構成センターにハートビートパケットを送信した後、第2の受信ユニット402が構成センターによって送信されたハートビートパケットの返信メッセージを受信し、受信されたハートビートパケットの返信メッセージには、変換タスクが含まれる。
【0064】
本実施例のストレージノードは、第2の受信ユニット402が構成センターによって送信されたハートビートパケットの返信メッセージを受信した後、実行ユニット403が変換タスクを非同期タスク受信キューに追加して順次実行し、その中、本実施例の非同期タスク受信キューは、ストレージノードによって予め設定される。
【0065】
本実施例のストレージノードは、非同期タスク受信キューを予め設定して構成センターによって送信された変換タスクを格納することができ、ストレージノードは、一つの非同期タスク受信キューのみを予め設定することができるし、変換タスクのタスクタイプに基づいて複数の非同期タスク受信キューを設置することもでき、変換タスク実行時の同時実行性を向上させることを理解することができる。
【0066】
本実施例のストレージノードは、実行ユニット403によって変換タスクを非同期タスク受信キューに追加して順次実行する時、使用できる選択可能な実現方式は、変換タスクのタスクタイプを決定し、変換タスクをタスクタイプに対応する非同期タスク受信キューに追加して順次実行し、異なるタスクタイプに対応する非同期タスク受信キューは、ストレージノードによって予め設定される。
【0067】
本実施例のストレージノードに配置された変更命令を実行する装置400は、第3の受信ユニット404をさらに含むことができ、構成センターによって送信された報告タスクを受信した後、ローカルに記憶された状態データ及び/又は構成データを取得し、取得された状態データ及び/又は構成データを構成センターに送信することを実行するために用いられ、送信された上記のデータは、構成センターが比較して、ストレージノード内の状態及び/又は構成が構成センターの状態及び/又は構成と同じであるか否かを決定するために用いられる。
【0068】
本実施例のストレージノードは、第3の受信ユニット404によって取得された状態データ及び/又は構成データを構成センターに送信した後、構成センターによって送信された補償タスクを受信し、受信された補償タスクを非同期タスク受信キューに追加して順次実行することをさらに含むことができる。
【0069】
本実施例のストレージノードは、第3の受信ユニット404によって受信された補償タスクは、ストレージノードが自体と構成センターとの記憶された異なる状態データ及び/又は構成データを変更して、ストレージノードの状態及び/又は構成と構成センターの状態及び/又は構成が同じであることを確保することにより、ストレージノードが自身の原因で変換タスクが完了しないことによってデータの非同期化の技術的問題を回避する。
【0070】
本開示の実施例によれば、本開示は、電子機器、読み取り可能な記憶媒体、及びコンピュータプログラム製品をさらに提供する。
【0071】
図5に示すように、変更タスクを実行する方法の電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタル処理、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様の計算デバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。
【0072】
図5に示すように、機器500は計算ユニット501を含み、計算ユニット501は、読み取り専用メモリ(ROM)502に記憶されているコンピュータプログラム又は記憶ユニット508からランダムアクセスメモリ(RAM)503にロードされたコンピュータプログラムに基づいて、様々な適切な動作と処理を実行することができる。RAM503には、機器500が動作するに必要な様々なプログラムとデータも記憶することができる。計算ユニット501、ROM502、及びRAM503は、バス504を介してお互いに接続される。入出力(I/O)インターフェース505もバス504に接続される。
【0073】
機器500内の複数のコンポーネントは、I/Oインターフェース505に接続されており、キーボード、マウスなどの入力ユニット506と、様々なタイプのディスプレイ、スピーカなどの出力ユニット507と、ディスク、光ディスクなどの記憶ユニット508と、及びネットワークカード、モデム、無線通信トランシーバなどの通信ユニット509と、を含む。通信ユニット509は、電子機器500が、インターネットなどのコンピュータネットワーク、及び/又は様々な電気通信ネットワークを介して他の機器と情報/データを交換することを可能にする。
【0074】
計算ユニット501は、様々な処理と計算能力を備える汎用及び/又は専用の処理コンポーネントである。計算ユニット501のいくつかの例は、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、様々な専用の人工知能(AI)計算チップ、様々な機械学習モデルアルゴリズムを実行する計算ユニット、デジタル信号プロセッサ(DSP)、及び任意の適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット501は、変更タスクを実行する方法などの上記の様々な方法と処理を実行する。例えば、いくつかの実施例では、変更タスクを実行する方法は、記憶ユニット508などの機械読み取り可能な媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現することができる。
【0075】
いくつかの実施例では、コンピュータプログラムの一部又は全部は、ROM502及び/又は通信ユニット509を介して電子機器500にロード及び/又はインストールされる。コンピュータプログラムがRAM503にロードされて計算ユニット501によって実行される場合、上記の変更タスクを実行する方法の一つ又は複数のステップを実行することができる。代替的に、他の実施例では、計算ユニット501は、他の任意の適切な方式(例えば、ファームウェアによって)を介して変更タスクを実行する方法を実行するように構成されることができる。
【0076】
本明細書で説明されるシステムと技術の様々な実施方式は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、ロードプログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施方式は、一つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該一つ又は複数のコンピュータプログラムは、少なくとも一つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも一つの入力装置、及び少なくとも一つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも一つの入力装置、及び当該少なくとも一つの出力装置に伝送することができる。
【0077】
本開示の方法を実施するためのプログラムコードは、一つ又は複数のプログラミング言語の任意の組み合わせを使用して作成することができる。これらのプログラムコードは、プログラムコードがプロセッサ又はコントローラによって実行される時にフローチャート及び/又はブロック図に規定された機能/動作が実施されるように、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサ又はコントローラに提供することができる。プログラムコードは、完全に機械上で実行されたり、部分的に機械上で実行されたり、独立したソフトウェアパッケージとして部分的に機械上で実行され、部分的にリモート機械上実行されたり、又は完全にリモート機械又はサーバ上で実行されたりすることができる。
【0078】
本開示の文脈において、機械読み取り可能な媒体は、命令実行システム、装置、又は機器の使用、又は命令実行システム、装置又は機器と組み合わせて使用するプログラムを含むか、又は記憶することができる有形の媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置又は機器、又は上記の内容の任意の適切な組み合わせを含むが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例は、一つ又は複数のワイヤに基づく電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM 又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は上記の内容の任意の適切な組み合わせを含む。
【0079】
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するために用いられることもでき、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0080】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含む計算システム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含む計算システム(例えば、アプリケーションサーバー)、又はフロントエンドコンポーネントを含む計算システム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施方式とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含む計算システムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、ブロックチェーンネットワークと、を含む。
【0081】
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。
【0082】
上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0083】
上記の具体的な実施方式は、本開示に対する保護範囲の制限を構成するものではない。当業者は、設計要求と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれなければならない。