(57)【要約】本開示の実施例はリソース制御方法、機器、システム、ならびにセンタサーバを開示する。前記方法は、クライアントから送信される第１の入出力（Ｉ／Ｏ）要求を受信するステップと、センタサーバから取得される第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てるステップと、第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップと、第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングするステップと、を含む。
2021518002.tif 000002
【特許請求の範囲】
【請求項１】
クライアントから送信される第１の入出力（Ｉ／Ｏ）要求を受信するステップと、
センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるステップと、
前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップと、
前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を含むリソーススケジューリング方法。
【請求項２】
前記センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、
前記第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、
前記第１の番号区間に少なくとも１つの空き番号が存在することに応答して、前記少なくとも１つの空き番号のうち、最小番号を前記第１のＩ／Ｏ要求の要求番号とするステップと、を含む請求項１に記載の方法。
【請求項３】
前記センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、
前記第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための番号要求を前記センタサーバに送信するステップと、
前記センタサーバが前記番号要求に基づいて送信する、前記第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を含む請求項１または２に記載の方法。
【請求項４】
前記センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、
前記第１の番号区間に空き番号が存在しないことに応答して、前記第１の番号区間における最大番号に基づいて前記第１のＩ／Ｏ要求の要求番号を決定するステップを含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定する前記ステップは、
前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップであって、前記第２のＩ／Ｏ要求は、前記第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップを含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定する前記ステップは、
前記第１のＩ／Ｏ要求の要求番号と前記第２のＩ／Ｏ要求の要求番号との間の差値、前記第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップを含む、請求項５に記載の方法。
【請求項７】
前記第１のＩ／Ｏ要求のタグ値は、リザーブタグ値、閾値タグ値、および重みタグ値の少なくとも１種を含む請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングする前記ステップは、
前記第１のＩ／Ｏ要求のタグ値に基づいて、Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位を決定するステップと、
Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を含む請求項１から７のいずれか一項に記載の方法。
【請求項９】
サーバに適用されるリソーススケジューリング方法であって、
第１のリソーススケジューリング機器から送信される、クライアントの番号区間を要求するための第１の番号要求を受信するステップと、
第２の番号要求に割り当てられた第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記第１のリソーススケジューリング機器に送信するステップであって、前記第２の番号要求は、前記サーバが前回受信した、第２のリソーススケジューリング機器から送信される前記クライアントの番号要求であるステップと、を含むリソーススケジューリング方法。
【請求項１０】
クライアントから送信される第１のＩ／Ｏ要求を受信するように構成される要求受信ユニットと、
センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるように構成される番号区間取得ユニットと、
前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するように構成されるタグ値決定ユニットと、
前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするように構成されるリソーススケジューリングユニットと、を含むリソーススケジューリング機器。
【請求項１１】
前記番号区間取得ユニットは、前記第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、前記第１の番号区間に少なくとも１つの空き番号が存在することに応答して、前記少なくとも１つの空き番号のうち、最小番号を前記第１のＩ／Ｏ要求の要求番号とするステップと、を実行するように構成される請求項１０に記載の機器。
【請求項１２】
前記番号区間取得ユニットは、前記第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための番号要求を前記センタサーバに送信するステップと、前記センタサーバが前記番号要求に基づいて送信する、前記第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を実行するように構成される請求項１０または１１に記載の機器。
【請求項１３】
前記番号区間取得ユニットは、前記第１の番号区間に空き番号が存在しないことに応答して、前記第１の番号区間における最大番号に基づいて前記第１のＩ／Ｏ要求の要求番号を決定するように構成される、請求項１０から１２のいずれか一項に記載の機器。
【請求項１４】
前記タグ値決定ユニットは、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップであって、前記第２のＩ／Ｏ要求は、前記第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップを実行するように構成される、請求項１０から１３のいずれか一項に記載の機器。
【請求項１５】
前記タグ値決定ユニットは、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、前記第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するように構成される、請求項１４に記載の機器。
【請求項１６】
前記第１のＩ／Ｏ要求のタグ値は、リザーブタグ値、閾値タグ値、および重みタグ値の少なくとも１種を含む、請求項１０から１５のいずれか一項に記載の機器。
【請求項１７】
前記リソーススケジューリングユニットは、前記第１のＩ／Ｏ要求のタグ値に基づいて、Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位を決定するステップと、Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される請求項１０から１６のいずれか一項に記載の機器。
【請求項１８】
第１のリソーススケジューリング機器から送信される、クライアントの番号区間を要求するための第１の番号要求を受信するように構成される要求受信ユニットと、
第２の番号要求に割り当てられた第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記第１のリソーススケジューリング機器に供与するステップであって、前記第２の番号要求は、前記サーバが前回受信した、第２のリソーススケジューリング機器から送信される前記ユーザの番号要求であるステップを実行するように構成される番号区間供与ユニットと、を含むサーバ。
【請求項１９】
クライアントの番号区間を要求するための第１の番号要求を前記センタサーバに送信するように構成される複数のリソーススケジューリング機器と、
前記第１の番号要求および前回、前記クライアントに供与した第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記リソーススケジューリング機器に送信するように構成される複数のセンタサーバと、を含むリソーススケジューリングシステム。
【請求項２０】
前記リソーススケジューリング機器はさらに、
前記クライアントから送信される第１のＩ／Ｏ要求を受信するステップと、前記第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるステップと、前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される、請求項１９に記載のシステム。
【請求項２１】
前記リソーススケジューリング機器は、前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップと、前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される、請求項２０に記載のシステム。
【請求項２２】
前記リソーススケジューリング機器は、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップであって、前記第２のＩ／Ｏ要求は、前記第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップを実行するように構成される、請求項２１に記載のシステム。
【請求項２３】
前記リソーススケジューリング機器はさらに、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、前記第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するように構成される、請求項２２に記載のシステム。
【請求項２４】
前記リソーススケジューリング機器は、前記第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、前記第１の番号区間に少なくとも１つの空き番号が存在することに応答して、前記少なくとも１つの空き番号のうち、最小番号を前記第１のＩ／Ｏ要求の要求番号とするステップと、を実行するように構成される、請求項２０から２３のいずれか一項に記載のシステム。
【請求項２５】
前記リソーススケジューリング機器は、前記第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための第２の番号要求を前記センタサーバに送信するステップと、前記センタサーバが前記第２の番号要求に基づいて送信する、前記第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を実行するように構成される請求項１９から２４のいずれか一項に記載のシステム。
【請求項２６】
前記リソーススケジューリング機器は、前記第１の番号区間に空き番号が存在しないことに応答して、前記第１の番号区間における最大番号に基づいて前記第１のＩ／Ｏ要求の要求番号を決定するように構成される、請求項２４または２５に記載のシステム。
【請求項２７】
前記リソーススケジューリング機器はゲートウェイインスタンスである、請求項１９から２６のいずれか一項に記載のシステム。
【請求項２８】
実行可能コマンドを記憶するためのメモリと、
前記メモリと通信して前記実行可能コマンドを実行することで請求項１から８のいずれか一項に記載のリソーススケジューリング方法のステップを実現するために、または、前記メモリと通信して前記実行可能コマンドを実行することで請求項９に記載のリソーススケジューリング方法のステップを実現するために用いられるプロセッサと、を含む電子機器。
【請求項２９】
コンピュータ可読コマンドを記憶するためのコンピュータ可読記憶媒体であって、前記コンピュータ可読コマンドが実行されるとき、請求項１から８のいずれか一項に記載のリソーススケジューリング方法のステップを実行するか、または、請求項９に記載のリソーススケジューリング方法のステップを実行する、コンピュータ可読記憶媒体。
【請求項３０】
コンピュータ可読コードを含むコンピュータプログラム製品であって、前記コンピュータ可読コードが機器によって実行されるとき、前記機器内のプロセッサに、請求項１から８のいずれか一項に記載のリソーススケジューリング方法を実現するためのコマンドを実行させるか、または、請求項９に記載のリソーススケジューリング方法を実現するためのコマンドを実行させる、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本開示は、出願番号２０１９１０１７２６７８．０、出願日２０１９年３月７日の中国特許出願に基づくものであり、その優先権を主張し、その開示の全てが参照によって本開示に組み込まれる。
【０００２】
本開示は、リソース制御技術に関し、特にリソーススケジューリング方法、機器、システム、ならびにセンタサーバに関する。
【背景技術】
【０００３】
人工知能（ＡＩ：Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）深層学習モデルのトレーニングは、複数ノード、複数ユーザから記憶リソースへの並行アクセスを伴うことがあり、モデルトレーニングの速度を保証するには、グラフィクスプロセッサ（ＧＰＵ：Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のチップ性能に加えて、入出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）性能も非常に重要な役割を果たしている。一方、実際の使用中に、リソース割り当てが極端に不均等であることがあり、例えば、一部のユーザがＩ／Ｏリソースの大半を占め、結果として、他のユーザのトレーニング速度が極端に低下したり、トレーニングできなくなったり、極端な場合、記憶システムがダウンしてしまうことがある。
【発明の概要】
【０００４】
本開示の実施例は、リソーススケジューリング技術を提供する。
【０００５】
本開示の実施例の第１の態様によれば、クライアントから送信される第１のＩ／Ｏ要求を受信するステップと、センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるステップと、前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップと、前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を含むリソーススケジューリング方法を提供する。
【０００６】
任意選択的に、本開示の上記いずれかの方法の実施例では、センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、前記第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、前記第１の番号区間に少なくとも１つの空き番号が存在することに応答して、前記少なくとも１つの空き番号のうち、最小番号を前記第１のＩ／Ｏ要求の要求番号とするステップと、を含む。
【０００７】
任意選択的に、本開示の上記いずれかの方法の実施例では、センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、前記第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための番号要求を前記センタサーバに送信するステップと、前記センタサーバが前記番号要求に基づいて送信する、前記第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を含む。
【０００８】
任意選択的に、本開示の上記いずれかの方法の実施例では、センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップはさらに、前記第１の番号区間に空き番号が存在しないことに応答して、前記第１の番号区間における最大番号に基づいて前記第１のＩ／Ｏ要求の要求番号を決定するステップ、を含む。
【０００９】
任意選択的に、本開示の上記いずれかの方法の実施例では、前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定する前記ステップは、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップであって、前記第２のＩ／Ｏ要求は、前記第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップ、を含む。
【００１０】
任意選択的に、本開示の上記いずれかの方法の実施例では、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定する前記ステップは、前記第１のＩ／Ｏ要求の要求番号と前記第２のＩ／Ｏ要求の要求番号との間の差値、前記第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップ、を含む。
【００１１】
任意選択的に、本開示の上記いずれかの方法の実施例では、前記第１のＩ／Ｏ要求のタグ値は、リザーブタグ値、閾値タグ値、および重みタグ値の少なくとも１種を含む。
【００１２】
任意選択的に、本開示の上記いずれかの方法の実施例では、前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングする前記ステップは、前記第１のＩ／Ｏ要求のタグ値に基づいて、Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位を決定するステップと、Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を含む。
【００１３】
本開示の実施例の第２の態様によれば、サーバに適用され、第１のリソーススケジューリング機器から送信される、クライアントの番号区間を要求するための第１の番号要求を受信するステップと、第２の番号要求に割り当てられた第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記第１のリソーススケジューリング機器に供与するステップであって、前記第２の番号要求は、前記サーバが前回受信した、第２のリソーススケジューリング機器から送信される前記クライアントの番号要求であるステップと、を含むリソーススケジューリング方法を提供する。
【００１４】
本開示の実施例の第３の態様によれば、クライアントから送信される第１のＩ／Ｏ要求を受信するように構成される要求受信ユニットと、センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるように構成される番号区間取得ユニットと、前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するように構成されるタグ値決定ユニットと、前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするように構成されるリソーススケジューリングユニットと、を含むリソーススケジューリング機器を提供する。
【００１５】
本開示の実施例の第４の態様によれば、第１のリソーススケジューリング機器から送信される、クライアントの番号区間を要求するための第１の番号要求を受信するように構成される要求受信ユニットと、第２の番号要求に割り当てられた第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記第１のリソーススケジューリング機器に供与するステップであって、前記第２の番号要求は、前記サーバが前回受信した、第２のリソーススケジューリング機器から送信される前記クライアントの番号要求であるステップを実行するように構成される番号区間供与ユニットと、を含むサーバを提供する。
【００１６】
本開示の実施例の第５の態様によれば、クライアントの番号区間を要求するための第１の番号要求を前記センタサーバに送信するように構成される複数のリソーススケジューリング機器と、前記第１の番号要求および前回、前記クライアントに送信した第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記リソーススケジューリング機器に供与するように構成される複数のセンタサーバと、を含むリソーススケジューリングシステムを提供する。
【００１７】
本開示の実施例の第６の態様によれば、実行可能コマンドを記憶するためのメモリと、前記メモリと通信して前記実行可能コマンドを実行することで上記第１の態様または第２の態様に記載のリソーススケジューリング方法のステップを実現するためのプロセッサと、を含む電子機器を提供する。
【００１８】
本開示の実施例の第７の態様によれば、実行されると上記いずれか一項に記載のリソーススケジューリング方法の操作を実行するコンピュータ可読コマンドを、記憶するためのコンピュータ可読記憶媒体を提供する。
【００１９】
本開示の実施例の第８の態様によれば、機器上で実行されると、前記機器内のプロセッサが上記第１の態様または第２の態様に記載のリソーススケジューリング方法を実現するためのコマンドを実行するコンピュータ可読コードを、含むコンピュータプログラム製品を提供する。
【００２０】
本開示の上記実施例は、クライアントから送信される第１のＩ／Ｏ要求を受信するステップと、センタサーバから取得される第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てるステップと、第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップと、第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングするステップと、を含むリソーススケジューリング方法、機器、システム、ならびにセンタサーバを提供する。本開示の実施例では、要求番号に基づいてタグ値を決定し、そしてタグ値に基づいて第１のＩ／Ｏ要求をスケジューリングし、これにより、リソース割り当てが不均等である問題が解決され、システムの並行性に応じたＩ／Ｏ要求の数および並行数の制御が実現される。
【００２１】
以下、図面および実施例を通じて本開示の技術的手段をさらに詳しく説明する。
【図面の簡単な説明】
【００２２】
明細書の一部を構成する図面は、本開示の実施例を説明し、その説明と共に本開示の原理を解釈するために用いられる。
【００２３】
図面を参照し、以下の詳細な説明により本開示をより明瞭に理解することができる。
【図１】本開示の実施例により提供されるリソーススケジューリング方法のフローチャートである。
【図２】本開示の実施例により提供されるリソーススケジューリング方法の別のフローチャートである。
【図３】本開示の実施例により提供されるリソーススケジューリング機器の構成模式図である。
【図４】本開示の実施例により提供されるリソーススケジューリング方法のさらに別のフローチャートである。
【図５】本開示の実施例により提供されるサーバの構成模式図である。
【図６】本開示の実施例により提供されるリソーススケジューリングシステムの構成模式図である。
【図７】本開示の実施例により提供されるリソーススケジューリングシステムの対話フローチャートである。
【図８】本開示の実施例により提供されるリソーススケジューリングシステムの適用例の構成図である。
【図９】本開示の実施例を実現するのに適する端末機器またはサーバのような電子機器の構成模式図である。
【発明を実施するための形態】
【００２４】
ここで、図面を参照しながら本開示の様々な例示的な実施例を詳細に説明する。なお、特に断らない限り、これらの実施例で記述した部材およびステップの相対的配置、数式および値は本開示の実施例の保護範囲を限定するものではないことに注意すべきである。
【００２５】
同時に、説明の便宜上、図面に示した各部分の寸法は実際の比例関係に従って描いたものではないことを理解すべきである。
【００２６】
以下の少なくとも一つの例示的な実施例に対する説明は実際に説明的なものに過ぎず、本開示およびその適用または使用へのなんらの制限にもならない。
【００２７】
関連分野の当業者に既知の技術、方法および機器については、詳細に説明しない場合があるが、場合によって、前記技術、方法および機器は明細書の一部と見なすべきである。
【００２８】
なお、類似する符号および英文字は以下の図面において類似項目を表し、従って、ある一項が一つの図面において定義されれば、以降の図面においてそれをさらに説明する必要がないことに注意すべきである。
【００２９】
リソースへのアクセスの並行性を高めるためには、オブジェクト記憶システムに複数のゲートウェイインスタンスを配置してユーザに記憶サービスを提供することが一般的である。しかし、複数のゲートウェイインスタンスはそれぞれ独立して記憶サービスを提供し、互いに通信していないため、ユーザに対する有効な制御、例えばＩＯＰＳ制限、速度制限等の実現は困難である。
【００３０】
図１は、本開示の実施例により提供されるリソーススケジューリング方法のフローチャートである。
【００３１】
ステップ１１０では、クライアントから送信される第１のＩ／Ｏ要求を受信する。
【００３２】
いくつかの選択的な実施例では、第１のＩ／Ｏ要求は、クライアントから送信される、リソースに対する操作を要求するためのものであってよい。例えば、第１のＩ／Ｏ要求は、ユーザがクライアントで送信する、ユーザのためのリソース要求を行うためのものであってよい。ここで、第１のＩ／Ｏ要求が要求する操作のタイプは、ファイルや他のオブジェクトの取得、ファイルや他のオブジェクトの照会、ファイルや他のオブジェクトのアップロード等を含むが、これらに限定されない。
【００３３】
選択的な実施例では、クライアントから送信される第１のＩ／Ｏ要求を受信した後、前記方法はさらに、少なくとも１つの第１のＩ／Ｏ要求を解析し、解析結果に基づいて、第１のＩ／Ｏ要求を送信する少なくとも１つのクライアントに対応するユーザの基本情報を得るステップを含んでもよい。
【００３４】
ここで、各クライアントは少なくとも１つの第１のＩ／Ｏ要求に対応し得る。任意選択的に、ユーザ基本情報は、第１のＩ／Ｏ要求を送信するクライアントのＩＰアドレス情報、ログイン識別子（ＩＤ）、ユーザ名、暗号鍵、Ｉ／Ｏ要求の操作タイプ情報等の少なくとも１つを含んでもよいが、これらに限定されない。
【００３５】
いくつかの選択的な実施例では、リソーススケジューリング機器内の負荷分散ソフトウェア層は、少なくとも１つの第１のＩ／Ｏ要求を受信し、各ゲートウェイインスタンスの負荷状況および／または他の因子に応じて、そのうちの１つのゲートウェイインスタンスを選択して第１のＩ／Ｏ要求を処理させるようにしてもよい。このとき、ゲートウェイインスタンスは任意選択的に、第１のＩ／Ｏ要求的ハイパー・テキスト転送プロトコル（ＨＴＴＰ、Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のヘッダ（ｈｅａｄｅｒ）を解析することで、ユーザ基本情報を得る。ユーザ基本情報取得の目的は、第１のＩ／Ｏ要求を区別および分析することであり、第１のＩ／Ｏ要求に対応するリソースを取得した後、ユーザ基本情報中のＩＰアドレス情報に基づいて取得されたリソースをフィードバックし、すなわち、割り当てられたリソースを第１のＩ／Ｏ要求に対応するＩＰアドレス情報の対応クライアントにフィードバックする。
【００３６】
ステップ１２０では、センタサーバから取得される第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てる。
【００３７】
いくつかの選択的な実施例では、第１のＩ／Ｏ要求の各々は１つの要求番号に対応する。
【００３８】
いくつかの選択的な実施例では、センタサーバによって第１のＩ／Ｏ要求に要求番号を割り当てることができる。一例として、センタサーバから設定数の番号が含まれる第１の番号区間、例えば番号２１から番号４０の２０個の番号が含まれる第１の番号区間＜２１，４０＞を取得する。第１の番号区間に含まれる番号に基づいて第１のＩ／Ｏ要求に番号を付けることができ、例えば、第１の番号区間における１つの空き番号（空き番号は未割り当ての番号を意味する）を１つの第１のＩ／Ｏ要求に割り当てる。現在第１の番号区間に空き番号がない場合、第１のＩ／Ｏ要求の要求番号としてローカルの仮番号を割り当てることができ、例えば、割り当てられるローカルの仮番号は、１つ前の第１のＩ／Ｏ要求に割り当てられた要求番号に１を加算するものであってよい。また、任意選択的に、センタサーバに新たな番号区間の取得を要求し、新たな番号区間を取得した後、新たな番号区間内の番号をそのまま用いて第１のＩ／Ｏ要求に要求番号を割り当てるようにしてもよい。これにより、番号付けの待ち時間が低減され、処理効率が向上する。
【００３９】
ステップ１３０では、第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定する。
【００４０】
いくつかの選択的な実施例では、ｍＣｌｏｃｋアルゴリズムを利用して第１のＩ／Ｏ要求のタグ値を取得するようにしてもよい。ここで、ｍＣｌｏｃｋアルゴリズムは、トリプルと対応するスケジューリングを組み合わせることで多次元の有効制御を実現する。上記トリプル（３つのタグ）は例えば以下のとおりである。
【００４１】
Ｒｅｓｅｒｖａｔｉｏｎ
例えば、１秒当たりに読み書き可能な回数（ＩＯＰＳ、Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｏｐｅｒａｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）を２５０／ｓに制限するように、性能の絶対量の制限をリザーブする必要があることを示す。これはシステム帯域幅、ＩＯＰＳが正常の範囲内にある場合に一般的に使用される。
【００４２】
Ｌｉｍｉｔ
このような制限も性能の絶対量に対する制限、例えばＩＯＰＳの使用上限に対する制限である。例えば、アンチウイルス・アプリケーションｖｉｒｕｓ  ｓｃａｎｎｅｒｓ、仮想ハードディスクの移行（ｖｉｒｔｕａｌ−ｄｉｓｋ  ｍｉｇｒａｔｉｏｎｓ）アプリケーション、バックアップ（ｂａｃｋｕｐ）アプリケーション等のような入出力を集中的に行うアプリケーション（ＩＯ  Ｉｎｔｅｎｓｉｖｅ  Ａｐｐｌｉｃａｔｉｏｎ）が、オンラインサービスに影響を与えることを防止するために用いられる。
【００４３】
Ｓｈａｒｅｓ
相対比率を制御することで（重み）、基礎となるリソースの要求および使用を制御する。
【００４４】
本開示の実施例では、３つのタグによって第１のＩ／Ｏ要求のタグ値を決定することができ、例えば、タグ値は、リザーブタグ（Ｒｅｓｅｒｖａｔｉｏｎに対応）、閾値タグ（Ｌｉｍｉｔに対応）、および重みタグ（Ｓｈａｒｅｓに対応）の１つまたは２つ以上を含む。
【００４５】
ｍＣｌｏｃｋアルゴリズムによる、現在クラスタ内の仮想マシン（ＶＭ）からバックエンド個々のサービス能力エンティティへのアクセスに対する制御と異なり、本開示の実施例によれば、ユーザが複数のノードにログインした場面では、バックエンド複数のサービス能力エンティティに対する上記３つの次元（３つのタグに対応）における有効制御が実現される。
【００４６】
ステップ１４０では、第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングする。
【００４７】
いくつかの選択的な実施例では、第１のＩ／Ｏ要求に対応するタグ値の大きさに応じて第１のＩ／Ｏ要求の順位付けを行い、順位付けの結果に基づいて第１のＩ／Ｏ要求をスケジューリングする。例えば、タグ値の大きい順に第１のＩ／Ｏ要求の順位付けを行い、その後、第１のＩ／Ｏ要求を送信するクライアントに要求するリソースを割り当てる。
【００４８】
クライアントから送信される第１のＩ／Ｏ要求を受信するステップと、センタサーバから取得される第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てるステップと、第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップと、第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングするステップと、を含む本開示の上記実施例に提供されるリソーススケジューリング方法によれば、要求番号に基づいてタグ値を決定し、そしてタグ値に基づいて第１のＩ／Ｏ要求をスケジューリングし、これにより、リソース割り当てが不均等である問題が解決され、システムの並行性に応じたＩ／Ｏ要求の数および並行数の制御が実現される。
【００４９】
図２は、本開示の実施例により提供されるリソーススケジューリング方法の別のフローチャートであり、図２に示すように、前記方法は以下を含む。
【００５０】
ステップ２１０では、クライアントから送信される第１のＩ／Ｏ要求を受信する。
【００５１】
ステップ２２０では、第１の番号区間に未割り当ての空き番号が存在するか否かを判断する。
【００５２】
第１のＩ／Ｏ要求に要求番号を割り当てる必要がある場合、まず、現在機器がセンタサーバから取得した第１の番号区間に未割り当ての空き番号が存在するか否かを判断する。空き番号とは、第１の番号区間に要求番号として第１のＩ／Ｏ要求に割り当てていない番号を意味する。例えば、第１の番号区間＜２１，４０＞には２０個の番号が含まれ、そのうち番号２１−３０が要求番号として第１のＩ／Ｏ要求に割り当てられた場合、番号３１−４０を前記第１の番号区間内の空き番号とし、第１のＩ／Ｏ要求を受信した場合、要求番号として番号３１を前記第１のＩ／Ｏ要求に割り当てることができる。
【００５３】
ステップ２３０では、第１の番号区間に少なくとも１つの空き番号が存在することに応答して、少なくとも１つの空き番号のうち、最小番号を第１のＩ／Ｏ要求の要求番号とする。
【００５４】
第１の番号区間には設定数の番号が含まれ、各番号の値の大きさが異なり、例えば、第１の番号区間＜２１，４０＞に２０個の番号が含まれ、そのうち最小番号は２１、最大番号は４０である。任意選択的に、第１の番号区間内の番号を第１のＩ／Ｏ要求に割り当てる際に、番号値の小さい順に割り当てる。例えば、上記例における番号２１−３０が要求番号として第１のＩ／Ｏ要求に割り当てられた場合、番号３１−４０を前記第１の番号区間内の空き番号とし、第１のＩ／Ｏ要求を受信した場合、要求番号として番号３１を前記第１のＩ／Ｏ要求に割り当てる。
【００５５】
いくつかの選択的な実施例では、第１の番号区間に第１のＩ／Ｏ要求に割り当てできる空き番号がない場合、ローカルの仮番号を自動的に割り当て、例えば、割り当てられるローカルの仮番号は、１つ前の第１のＩ／Ｏ要求に割り当てた要求番号に１を加算するものであってよい。また、センタサーバに新たな番号区間の取得を要求し、新たな番号区間を取得した後、新たな番号区間内の番号をそのまま用いて第１のＩ／Ｏ要求に要求番号を割り当てるようにしてもよい。これにより、番号付けの待ち時間が低減され、処理効率が向上する。
【００５６】
ステップ２４０では、第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定する。
【００５７】
本開示の実施例では、ｍＣｌｏｃｋアルゴリズムによって第１のＩ／Ｏ要求のタグ値を取得してもよく、または第１のＩ／Ｏ要求の要求番号を基礎として、他の方法により第１のＩ／Ｏ要求のタグ値を取得してもよく、本開示の実施例は、第１のＩ／Ｏ要求のタグ値を取得する具体的な方法を制限しない。
【００５８】
ステップ２５０では、第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングする。
【００５９】
本開示の実施例では、ローカルに取得された第１の番号区間に基づいて第１のＩ／Ｏ要求に要求番号を割り当て、要求番号の高速取得を実現し、各クライアント（ユーザ）に対するリソース割り当てを実現し、ユーザの要求数および並行数を効果的に制御する。
【００６０】
１つ以上の選択的な実施例では、センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップ２２０は、第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための番号要求をセンタサーバに送信するステップと、センタサーバが番号要求に基づいて送信する、前記第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を含む。
【００６１】
本開示の実施例では、第１の番号区間に空き番号が存在せず、すなわち第１の番号区間内の全ての番号が要求番号として第１のＩ／Ｏ要求に割り当てられた場合また、第１のＩ／Ｏ要求を受信したら、新たな番号区間を要求するための番号要求をセンタサーバに送信する必要がある。センタサーバが番号要求を受信した後、番号要求に応じて、第１の番号区間と少なくとも１つの番号区間を隔てた、設定数の番号が含まれる第２の番号区間をリソーススケジューリング機器に送信する。
【００６２】
いくつかの選択的な実施例では、第２の番号区間の取得を要求する待ち時間に、処理効率を向上させるためには、リソーススケジューリング機器が受信された第１のＩ／Ｏ要求にローカルの仮要求番号を割り当てるようにしてもよい。このためには、ローカルの仮要求番号に空きスペースを確保する必要があり、よって、本開示の実施例では、リソーススケジューリング機器により割り当てられるローカルの仮要求番号の番号区間として、第２の番号区間と第１の番号区間との間に少なくとも１つの番号区間を確保する。
【００６３】
いくつかの選択的な実施例では、前記方法はさらに、第１の番号区間に空き番号が存在しないことに応答して、第１の番号区間における最大番号に基づいて第１のＩ／Ｏ要求の要求番号を決定するステップを含む。例えば、第１の番号区間を＜２１，４０＞とし、第１の番号区間内の全ての番号が要求番号として第１のＩ／Ｏ要求に割り当てられた場合また、第１のＩ／Ｏ要求を受信したら、センタサーバに第２の番号区間を要求すると同時に、１つ前の第１のＩ／Ｏ要求に割り当てられた要求番号が番号４０であると特定したら、番号４０に１を加算し、新たに受信された第１のＩ／Ｏ要求にローカルの仮要求番号として番号４１を割り当てる（すなわち、第１のＩ／Ｏ要求の要求番号となる）。
【００６４】
いくつかの選択的な実施例では、センタサーバから取得される第２の番号区間は、番号６１−番号８０が含まれる＜６１，８０＞であってよい。無論、本実施例における第２の番号区間はこれに限定されるものではなく、＜８１，１１０＞等であってもよい。
【００６５】
本開示の１つ以上の選択的な実施例では、ステップ１３０は、第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップであって、第２のＩ／Ｏ要求は、第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップを含む。
【００６６】
任意選択的に、各第１のＩ／Ｏ要求に対応するタグ値を決定するには、２つの第１のＩ／Ｏ要求の要求番号の差値、すなわち同一のクライアントが前回送信した第２のＩ／Ｏ要求に対応する要求番号と、前記クライアントが今回送信した第１のＩ／Ｏ要求に対応する要求番号との間の差値をそれぞれ決定し、その後、前記差値に基づいて前記第１のＩ／Ｏ要求のタグ値を計算する必要がある。クライアントごとに送信されるＩ／Ｏ要求についてタグ値を計算することで、各クライアントのＩ／Ｏ要求の数に対する制御が実現され、一部のクライアントからの大量の要求により他のクライアントがリソースを取得できなくなるという問題が低減される。
【００６７】
いくつかの選択的な実施例では、第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップは、第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップを含む。
【００６８】
いくつかの選択的な実施例では、第１のＩ／Ｏ要求のタグ値は、リザーブタグ値、閾値タグ値、および重みタグ値の少なくとも１種を含むが、これらに限定されない。第１のＩ／Ｏ要求のタグ値を決定するプロセスは以下のステップを含んでもよい。第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、第２のＩ／Ｏ要求のタグ値、クライアントに対応するリザーブタグの既存タグ値、および現時刻（現時刻は、第１のＩ／Ｏ要求を取得する時間である）に基づいて計算し、第１のＩ／Ｏ要求に対応するリザーブタグのタグ値を取得する。
【００６９】
第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、第２のＩ／Ｏ要求のタグ値、クライアントに対応する閾値タグの既存タグ値、および現時刻（現時刻は、第１のＩ／Ｏ要求を取得する時間である）に基づいて計算し、第１のＩ／Ｏ要求に対応する閾値タグのタグ値を取得する。
【００７０】
第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、第２のＩ／Ｏ要求のタグ値、クライアントに対応する重みタグの既存タグ値、および現時刻（現時刻は、第１のＩ／Ｏ要求を取得する時間である）に基づいて計算し、第１のＩ／Ｏ要求に対応する重みタグのタグ値を取得する。
【００７１】
リザーブタグ値、閾値タグ値および重みタグ値は、例えば以下の式を用いて取得できる。
【００７２】
2021518002.tif 000003
式（１）
2021518002.tif 000004
式（２）
2021518002.tif 000005
式（３）
【００７３】
上記式において、
2021518002.tif 000006
はｉ番目のクライアントのｒ要求（第１のＩ／Ｏ要求に対応）のリザーブタグ値を表し、
2021518002.tif 000007
はｉ番目のクライアントのｒ要求（第１のＩ／Ｏ要求に対応）の閾値タグ値を表し、
2021518002.tif 000008
はｉ番目のクライアントのｒ要求（第１のＩ／Ｏ要求に対応）の重みタグ値を表す。
【００７４】
2021518002.tif 000009
、
2021518002.tif 000010
はそれぞれ、ｉ番目のクライアントに対応するリザーブタグの既存タグ値、閾値タグの既存タグ値および重みタグの既存タグ値を表し、ｔは現時刻を表す。ｃｏｕｎｔｅｒは、ｉ番目のクライアントの１つ前のＩ／Ｏ要求（第２のＩ／Ｏ要求に対応）と現在のＩ／Ｏ要求（第１のＩ／Ｏ要求に対応）との要求番号の差値を表す。上記公式によれば各第１のＩ／Ｏ要求に対応する３種のタグのタグ値を得ることができる。
【００７５】
本開示の１つ以上の選択的な実施例では、ステップ１４０は、第１のＩ／Ｏ要求のタグ値に基づいて、Ｉ／Ｏ要求キュー内の第１のＩ／Ｏ要求の順位を決定するステップと、Ｉ／Ｏ要求キュー内の第１のＩ／Ｏ要求の順位に基づいて、第１のＩ／Ｏ要求をスケジューリングするステップと、を含んでもよい。
【００７６】
任意選択的に、タグ値による順位付け、および第１のＩ／Ｏ要求に対するスケジューリングは、以下の擬似コードにより実現できる。
【００７７】
【数１】
2021518002.tif 000011
本開示のいくつかの選択的な実施例では、タグ値は、リザーブタグ値、閾値タグ値、および重みタグ値の少なくとも１種を含み得ることから、第１のＩ／Ｏ要求のＩ／Ｏ要求キュー内の順位を決定するステップは、リザーブタグ値が現時刻より小さい少なくとも１つの第１のＩ／Ｏ要求を取得し、リザーブタグ値に基づいて、取得された少なくとも１つの第１のＩ／Ｏ要求の順位付けを行い、第１の序列を取得するステップ、および、閾値タグ値が現時刻より小さい少なくとも１つの第１のＩ／Ｏ要求を取得し、取得された少なくとも１つの第１のＩ／Ｏ要求に対応する少なくとも１つの重みタグ値に基づいて、取得された前記少なくとも１つの第１のＩ／Ｏ要求の順位付けを行い、第２の序列を取得するステップの少なくとも１つを含んでもよい。さらに、第１の序列および／または第２の序列に基づいて、少なくとも１つの第１のＩ／Ｏ要求にＩ／Ｏ要求されたリソースを割り当てる。
【００７８】
例えば、リザーブタグ値の小さい順に第１のＩ／Ｏ要求の順位付けを行い、第１の序列を取得してもよく、また例えば、閾値タグ値が現時刻より小さい少なくとも１つの第１のＩ／Ｏ要求について、重みタグ値の小さい順に少なくとも１つの第１のＩ／Ｏ要求の順位付けを行い、第２の序列を取得する。
【００７９】
本開示のいくつかの選択的な実施例では、第１の序列および第２の序列に基づいて、少なくとも１つの第１のＩ／Ｏ要求にＩ／Ｏ要求されたリソースを割り当てるステップは、第１の序列から設定数の第１のＩ／Ｏ要求を順に取得し、設定数の第１のＩ／Ｏ要求の、第１の序列内の順位に基づいて、設定数の第１のＩ／Ｏ要求に要求されるリソースを割り当てるステップと、第１の序列内の残りの第１のＩ／Ｏ要求の、第２の序列内の順位を取得し、設定数の第１のＩ／Ｏ要求の、第２の序列内の順位に基づいて、設定数の第１のＩ／Ｏ要求に要求されるリソースを割り当てるステップと、を含む。
【００８０】
任意選択的に、本開示の実施例では、バックエンドのサービスエンティティは、ｍＣｌｏｃｋアルゴリズムを利用してリソースの割り当てを実現し、３種のタグに基づいて第１の序列および／または第２の序列を取得し、第１の序列および／または第２の序列に基づいてリソースを割り当てる。例えばこれは以下のように実現される。
【００８１】
ｍＣｌｏｃｋアルゴリズムがリソーススケジューリングを実現するプロセスは、以下のステップを含んでもよいが、これらに限定されない。第１のＩ／Ｏ要求に３種のタグ（ｔａｇ）を設置し、本開示の実施例では、３種のタグは、リザーブタグｒｉ（Ｒｅｓｅｒｖａｔｉｏｎ  ｔａｇに対応）、閾値タグｌｉ（Ｌｉｍｉｔ  ｔａｇに対応）、および重みタグｗｉ（Ｓｈａｒｅ  ｏｒ  ｗｅｉｇｈｔ  ｔａｇに対応）を含む。
【００８２】
ここで、まずＲｅｓｅｒｖａｔｉｏｎを極力最優先とし、例えば、トレーニングサービスをサポートするよう、あるクライアントがＩＯＰＳ  １ｗを確保できるようにする。なお、説明すべきものとして、全てのクライアントの予約（Ｒｅｓｅｒｖａｔｉｏｎ）を確保できるために、基礎となるシステムが提供できるリソースの総和は、全てのクライアントに必要とされるＲｅｓｅｒｖａｔｉｏｎの和より大きくしなければならない。Ｌｉｍｉｔ＆Ｓｈａｒｅ（例えば、上記ｗｅｉｇｈｔ  ｔａｇ）について、Ｌｉｍｉｔを超えないことが確保された以上、統一的にＳｈａｒｅの比率に従ってリソースを割り当てる。
【００８３】
３種のタグ値およびスケジューリング機器の切り替えによって第１のＩ／Ｏ要求のスケジューリングを実現する。
【００８４】
上記式（１）、（２）、（３）においてＭａｘを取る理由は、クライアントアイドル状態（ｉｄｌｅ）の場合に発生するｉｄｌｅ積分の現象を回避することである。例えば、１つ前のＩ／Ｏ要求を早々に受信して、後のＩ／Ｏ要求のＲ値が
2021518002.tif 000012
である場合、結果として、明らかに、
2021518002.tif 000013
は場合により、現時刻（ｃｕｒｒｅｎｔ−Ｔｉｍｅ）よりはるかに小さいことになりやすい。スケジューリング優先度の点で、スケジューリング機器は、優先的にＲ値が最小のＩ／Ｏ要求をスケジューリングすることになるが、その結果として、ｉｄｌｅからアクティブ状態（Ａｃｔｉｖｅ）に入った直後の他のクライアントのＲ値Ｉ／Ｏ要求は、この前のクライアントよりはるかに大きくなり、ａｃｔｉｖｅに入った直後のクライアントのＩ／Ｏ要求のスタベーションをもたらすことになる。
【００８５】
Ｌｉｍｉｔ  ＆ｓｈａｒｅについて、Ｌｉｍｉｔタグ値が大きいほど、Ｉ／Ｏ要求キューにおける密度は大きく、占有比率は大きい。しかし、ｓｈａｒｅ  ｔａｇの優先度が確実にＬｉｍｉｔを超えないＩ／Ｏ要求に基づいて、ｓｈａｒｅの比重に従ってスケジューリングを行うことになる。
【００８６】
任意選択的な一実施例では、本開示の実施例により提供されるリソース制御方法は、以下のいくつかの仕組みを組み合わせて実現してもよい。上記仕組みは、アプリケーション層（マルチマシン・マルチカードによるトレーニング）、センタサーバ（要求番号の管理を担当し、ゲートウェイインスタンスの番号要求を受信した度に、１つの連続した番号区間、例えば＜１，１００＞  ＜１０１，２００＞…を返す）、多重ゲートウェイインスタンス層、バックエンド記憶層等を含むが、これらに限定されない。
【００８７】
上記いくつかの要素によってリソース制御を実現するプロセスは以下のステップを含んでもよい。アプリケーション層は、分散型深層学習モデルトレーニングを行い、シングルマシン・マルチカード、マルチマシン・マルチカードのシーンに分けて、Ｉ／Ｏ要求（本開示の実施例の第１のＩ／Ｏ要求に対応）の開始を担うようにしてもよい。Ｉ／Ｏ要求が負荷分散ソフトウェア層に到着した後、各ゲートウェイインスタンスの負荷状況に応じて、そのうちの１つのゲートウェイインスタンスを選択してＩ／Ｏ要求を処理させる。Ｉ／Ｏ要求がゲートウェイインスタンスに到着した後、ゲートウェイインスタンスは、Ｉ／Ｏ要求のｈｔｔｐ  ｈｅａｄｅｒを解析して、ユーザ基本情報を取得し、そして現在空き番号が存在するか否かを判断する。空き番号が存在する場合、要求番号としてＩ／Ｏ要求に１つの空き番号を割り当てる。空き番号が存在しない場合、番号要求の開始を担うバックグラウンドスレッドをアクティブ化させ、センタサーバに番号要求を開始して新たな番号区間を取得する。性能向上のためには、このとき、Ｉ／Ｏ要求は、次ロットの番号を待つことなく、１つのローカルの仮要求番号が直接割り当てられる。番号を取得した後、Ｉ／Ｏ要求に対してタグ付けの操作を行い（対応するタグ値を保有するリザーブタグ、閾値タグ、重みタグの少なくとも１種が含まれる）、Ｉ／Ｏ要求をｍＣｌｏｃｋ順位付けキューに転送する。ｍＣｌｏｃｋ順位付けキューは、Ｉ／Ｏ要求が保有するタグ値に基づいて、キュー内のＩ／Ｏ要求の順位を調整する。Ｉ／Ｏ要求処理スレッドプールは、ｍＣｌｏｃｋキューからＩ／Ｏ要求を取得した後、Ｉ／Ｏ要求を解析し、Ｉ／Ｏ要求のタイプに応じてバックグラウンド記憶層に提出して実行される。バックグラウンド記憶層の処理が完了した後、処理結果をオブジェクト記憶ゲートウェイインスタンスにフィードバックし、ゲートウェイインスタンスからアプリケーション層プログラムにフィードバックする。
【００８８】
当業者であれば、上記各方法の実施例を実現する全てまたは一部のステップはプログラムによって関連ハードウェアに命令を出すことにより完了できることを理解でき、前記プログラムは、ＲＯＭ、ＲＡＭ、磁気ディスクまたは光ディスクなどのプログラムコードを記憶可能である様々な媒体を含むコンピュータ読み取り可能記憶媒体に記憶可能であり、前記プログラムは実行される時に、上記各方法の実施例を含むステップを実行する。
【００８９】
図３は、本開示の実施例により提供されるリソーススケジューリング機器の構成模式図である。前記実施例の機器は、本開示の上記各方法の実施例を実現するために用いてもよい。図３に示すように、前記実施例の機器は、
クライアントから送信される第１のＩ／Ｏ要求を受信するように構成される要求受信ユニット３１と、
センタサーバから取得される第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てるように構成される番号区間取得ユニット３２と、
第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定するように構成されるタグ値決定ユニット３３と、
第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングするように構成されるリソーススケジューリングユニット３４と、を含む。
【００９０】
本開示の上記実施例により提供されるリソーススケジューリング機器によれば、要求番号に基づいてタグ値を決定し、そしてタグ値に基づいて第１のＩ／Ｏ要求をスケジューリングし、これにより、リソース割り当てが不均等である問題が解決され、システムの並行性に応じたＩ／Ｏ要求の数および並行数の制御が実現される。
【００９１】
任意選択的に、番号区間取得ユニット３２は、第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、第１の番号区間に少なくとも１つの空き番号が存在することに応答して、少なくとも１つの空き番号のうち、最小番号を第１のＩ／Ｏ要求の要求番号とするステップと、を実行するように構成される。
【００９２】
任意選択的に、番号区間取得ユニット３２は、第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための番号要求をセンタサーバに送信するステップと、センタサーバが番号要求に基づいて送信する、第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を実行するように構成される。
【００９３】
任意選択的に、番号区間取得ユニット３２は、第１の番号区間に空き番号が存在しないことに応答して、第１の番号区間における最大番号に基づいて第１のＩ／Ｏ要求の要求番号を決定するように構成される。
【００９４】
１つ以上の選択的な実施例では、タグ値決定ユニット３３は、第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップであって、第２のＩ／Ｏ要求は、前記第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップ、を実行するように構成される。
【００９５】
任意選択的に、各第１のＩ／Ｏ要求に対応するタグ値を決定するには、各第１のＩ／Ｏ要求の番号の差値、すなわち同一のクライアントが前回送信した第２のＩ／Ｏ要求に対応する要求番号と、前記クライアントが今回送信した第１のＩ／Ｏ要求に対応する要求番号との間の差値をそれぞれ決定し、その後、前記差値に基づいて前記第１のＩ／Ｏ要求のタグ値を計算する必要がある。ユーザごとに送信されるＩ／Ｏ要求についてタグ値を計算することで、各クライアントに対応するＩ／Ｏ要求の数に対する制御が実現され、一部のユーザからの大量の要求により他のユーザがリソースを取得できなくなるという問題が低減される。
【００９６】
任意選択的に、タグ値決定ユニット３３は、第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、第１のＩ／Ｏ要求のタグ値を決定するように構成される。
【００９７】
任意選択的に、第１のＩ／Ｏ要求のタグ値は、リザーブタグ値、閾値タグ値、および重みタグ値の少なくとも１種を含む。
【００９８】
任意選択的に、リソーススケジューリングユニット３４は、第１のＩ／Ｏ要求のタグ値に基づいて、Ｉ／Ｏ要求キュー内の第１のＩ／Ｏ要求の順位を決定するステップと、Ｉ／Ｏ要求キュー内の第１のＩ／Ｏ要求の順位に基づいて、第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される。
【００９９】
図４は、本開示の実施例により提供されるリソーススケジューリング方法のさらに別のフローチャートであり、前記方法はサーバに適用されてもよく、図４に示すように、前記方法は以下のステップを含む。
【０１００】
ステップ４１０では、第１のリソーススケジューリング機器から送信される、クライアントの番号区間を要求するための第１の番号要求を受信する。
【０１０１】
任意選択的に、前記第１の番号要求は以下のことに由来する。第１のリソーススケジューリング機器がクライアントからＩ／Ｏ要求を受信し、受信されたＩ／Ｏ要求に要求番号を割り当てる必要があることから、センタサーバに番号区間の取得を要求する必要があり、これにより、取得された番号区間に基づいてＩ／Ｏ要求に要求番号を割り当て、さらにクライアントにリソースをスケジューリングすることを実現する。
【０１０２】
ステップ４２０では、第２の番号要求に割り当てられた第３の番号区間に基づいて、第３の番号区間の後にある第１の番号区間を第１のリソーススケジューリング機器に送信する。ここで、第２の番号要求は、センタサーバが前回受信した、第２のリソーススケジューリング機器から送信されるクライアントの番号要求である。
【０１０３】
任意選択的に、本開示の実施例により提供されるサーバは、複数のリソーススケジューリング機器（例えば、第１のリソーススケジューリング機器および第２のリソーススケジューリング機器等を含む）に対応する。この前番号要求を送信した第２のリソーススケジューリング機器に第３の番号区間を割り当てた後、現在番号要求を送信している第１のリソーススケジューリング機器に第１の番号区間を割り当てる時、第３の番号区間に基づいて累加し、第１の番号区間の具体的な数値範囲を得るようにしてもよい。例えば、第３の番号区間を＜１，２０＞とする場合、第１の番号区間を＜２１，４０＞とする。
【０１０４】
任意選択的に、前記方法はさらに、第１のリソーススケジューリング機器に第１の番号区間を供与する前に、クライアントのサービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ：ＱｏＳ）等の情報から決定できる、リソーススケジューリング機器（第１のリソーススケジューリング機器を含む）に対応するクライアントの番号総数を取得するステップを含んでもよい。
【０１０５】
任意選択的に、前記方法はさらに以下のステップを含んでもよい。クライアントの番号総数を取得した後、クライアントの番号総数に基づいて、第１のリソーススケジューリング機器に送信する第１の番号区間に含まれる番号数を決定し、すなわち、クライアントの番号総数に基づいて、今回前記第１のリソーススケジューリング機器に送信する第１の番号区間の番号数を決定し、送信する第１の番号区間の番号数を番号総数より小さくすることで、システムの並行性に応じた要求数および並行数の有効な制御が実現され、過大な負荷によるシステムクラッシュ、ダウンの現象が低減される。
【０１０６】
本開示の実施例により提供されるリソーススケジューリング方法は、サーバによってリソーススケジューリング機器から送信される第１の番号要求を受信し、リソーススケジューリング機器に設定数の番号が含まれる番号区間を送信し、リソーススケジューリング機器はそれに基づいて、受信されたＩ／Ｏ要求に要求番号を割り当て、これにより、複数のリソーススケジューリング機器に対するリソーススケジューリングを実現する。
【０１０７】
当業者であれば、上記各方法の実施例を実現する全てまたは一部のステップはプログラムによって関連ハードウェアに命令を出すことにより完了できることを理解でき、前記プログラムは、ＲＯＭ、ＲＡＭ、磁気ディスクまたは光ディスクなどのプログラムコードを記憶可能である様々な媒体を含むコンピュータ読み取り可能記憶媒体に記憶可能であり、前記プログラムは実行される時に、上記各方法の実施例を含むステップを実行する。
【０１０８】
図５は、本開示の実施例により提供されるサーバの構成模式図である。前記実施例のサーバは、本開示の上記各方法の実施例を実現するために用いてもよい。図５に示すように、前記実施例のサーバは、
第１のリソーススケジューリング機器から送信される、クライアントの番号区間を要求するための第１の番号要求を受信するように構成される要求受信ユニット５１と、
第２の番号要求に割り当てられた第３の番号区間に基づいて、第３の番号区間の後にある第１の番号区間を第１のリソーススケジューリング機器に供与するステップであって、第２の番号要求は、サーバが前回受信した、第２のリソーススケジューリング機器から送信されるクライアントの番号要求であるステップを、行うように構成される番号区間供与ユニット５２と、を含む。
【０１０９】
本開示の実施例により提供されるサーバは、リソーススケジューリング機器から送信される第１の番号要求を受信し、リソーススケジューリング機器に設定数の番号が含まれる番号区間を割り当て、リソーススケジューリング機器はそれに基づいて、受信されたＩ／Ｏ要求に要求番号を割り当て、これにより、複数のリソーススケジューリング機器に対するリソーススケジューリングを実現する。
【０１１０】
図６は、本開示の実施例により提供されるリソーススケジューリングシステムの構成模式図である。前記リソーススケジューリングシステムは、
ユーザの番号区間を要求するための第１の番号要求をセンタサーバに送信するように構成される複数のリソーススケジューリング機器６１と、
第１の番号要求、および前回クライアントに送信した第３の番号区間に基づいて、第３の番号区間の後にある第１の番号区間をリソーススケジューリング機器に送信するように構成される複数のセンタサーバ６２と、を含む。
【０１１１】
任意選択的に、本開示の実施例に用いられるリソーススケジューリング機器６１は、上記いずれかの実施例に提供されるリソーススケジューリング機器であってよく、上記図１または２に示す実施例に提供されるリソーススケジューリング方法を実現できる。本開示の実施例は、リソーススケジューリング機器６１の具体的なタイプおよびその適用方法を制限しない。本開示の実施例では、クライアントのＩ／Ｏ要求（例えば第１のＩ／Ｏ要求）に対するリソーススケジューリング機器６１によるスケジューリングを実現するために、センタサーバ６２に番号区間の取得を要求し、取得された番号区間に基づいてクライアントに番号を付ける。
【０１１２】
任意選択的に、本開示の実施例に用いられるセンタサーバ６２は、上記いずれかの実施例に提供されるセンタサーバであってよく、上記図３に示す実施例に提供されるリソーススケジューリング方法を実現できる。本開示の実施例は、センタサーバ６２の具体的なタイプおよびその適用方法を制限しない。任意選択的に、センタサーバ６２が今回クライアントに供与した第１の番号区間内の番号は、前回クライアントに供与した第３の番号区間内の番号に基づいて決定され、例えば、前回取得された第３の番号区間が＜１，１００＞である場合、今回取得される第１の番号区間は＜３０１，４００＞であり得、第１の番号区間は第３の番号区間の後にあり、第１の番号区間と第３の番号区間は必ずしも連続しているとは限らない。
【０１１３】
本開示の上記実施例に提供されるリソーススケジューリングシステムによれば、センタサーバからリソーススケジューリング機器へ番号区間を供与する方法によって、複数のゲートウェイインスタンスはそれぞれ独立して記憶サービスを提供し、互いに通信していないことから生じる、ユーザに対する有効な制御の実現が困難であるという問題が解決され、ユーザの要求数および並行数に対する制御は、番号区間によって実現でき、リソース割り当てが不均等である問題が解決される。
【０１１４】
任意選択的に、リソーススケジューリング機器６１はさらに、クライアントから送信される第１のＩ／Ｏ要求を受信するステップと、第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てるステップと、第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される。
【０１１５】
任意選択的に、リソーススケジューリング機器６１は、第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップと、第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される。
【０１１６】
任意選択的に、リソーススケジューリング機器６１は、第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、第１のＩ／Ｏ要求のタグ値を決定するステップであって、第２のＩ／Ｏ要求は、第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップを、行うように構成される。
【０１１７】
任意選択的に、リソーススケジューリング機器６１はさらに、第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、第１のＩ／Ｏ要求のタグ値を決定するように構成される。
【０１１８】
任意選択的に、リソーススケジューリング機器６１は、第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、第１の番号区間に少なくとも１つの空き番号が存在することに応答して、少なくとも１つの空き番号のうち、最小番号を第１のＩ／Ｏ要求の要求番号とするステップと、を実行するように構成される。
【０１１９】
任意選択的に、リソーススケジューリング機器６１は、第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための第２の番号要求をセンタサーバに送信するステップと、センタサーバが第２の番号要求に基づいて送信する、第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を実行するように構成される。
【０１２０】
任意選択的に、リソーススケジューリング機器６１はさらに、第１の番号区間に空き番号が存在しないことに応答して、第１の番号区間における最大番号に基づいて第１のＩ／Ｏ要求の要求番号を決定するように構成される。
【０１２１】
図７は、本開示の実施例により提供されるリソーススケジューリングシステムの対話フローチャートである。図７に示すように、本開示の実施例では、リソーススケジューリング機器６１は、ゲートウェイインスタンスであってよい。
【０１２２】
前記実施例では、リソーススケジューリングシステムは、クライアントから送信される第１のＩ／Ｏ要求を受信するためのゲートウェイインスタンスを含む。クライアント、ゲートウェイインスタンスおよびセンタサーバの対話フローは以下を含む。ゲートウェイインスタンスは、クライアントの番号区間を要求するための第１の番号要求を送信し、第１の番号要求をセンタサーバに送信する。センタサーバは、第１の番号要求、および前回前記クライアントに供与した第３の番号区間に基づいて第１の番号区間を決定し、第１の番号区間をゲートウェイインスタンスにフィードバックする。ゲートウェイインスタンスは、第１の番号区間を受信する。クライアントは、第１のＩ／Ｏ要求をゲートウェイインスタンスに送信する。ゲートウェイインスタンスは、第１のＩ／Ｏ要求を受信し、第１の番号区間に基づいて第１のＩ／Ｏ要求に要求番号を割り当て、そして割り当てられた要求番号に基づいて第１のＩ／Ｏ要求のタグ値を決定し、第１のＩ／Ｏ要求のタグ値に基づいて第１のＩ／Ｏ要求に対するスケジューリングを実現する。
【０１２３】
図８は、本開示の実施例により提供されるリソーススケジューリングシステムの適用例の構成図である。図８に示すように、ユーザは、シングルマシン・マルチカード、マルチマシン・マルチカードのタスクを提出してＩ／Ｏ要求を開始し、オブジェクト記憶ゲートウェイ（リソーススケジューリング機器に対応）は、Ｉ／Ｏ要求を受信した後、現在番号区間内の番号が全て割り当てたか否か（すなわち、空き番号が含まれるか否か）を判断する。空き番号が存在する場合、Ｉ／Ｏ要求の要求番号として１つの番号を取得する（現在のＩ／Ｏ要求の要求番号は、前回のＩ／Ｏ要求の番号に１を加算するものであってよい）。空き番号が存在しない場合、新たな番号区間を取得するように（このとき取得される番号区間と前に取得された番号区間は必ずしも連続しているとは限らず、例えば、前の区間が＜１，１００＞である場合、現在取得される区間は＜３０１，４００＞であってもよい）、バックグラウンドスレッドをアクティブ化してセンタサーバに番号要求を送信し、そしてＩ／Ｏ要求に要求番号としてローカルの仮要求番号を割り当てる。ｍＣｌｏｃｋアルゴリズム、例えば式（１）、（２）、（３）の少なくとも１つによってタグ値（リザーブタグ（ｒｅｓｅｒｖａｔｉｏｎ）値、閾値タグ（ｌｉｍｉｔ）値、重みタグ（ｗｅｉｇｈｔ）値の少なくとも１種）を取得し、「タグ付け」によってタグ値をＩ／Ｏ要求に保有させるようにしてもよい。
【０１２４】
「タグ付け」が完了したＩ／Ｏ要求を要求キューにプッシュ（ｐｕｓｈ）し、タグ値に基づいて順位付けを行う。Ｉ／Ｏ要求処理スレッドプールは、順位付けの結果に基づいて要求キューからＩ／Ｏ要求を取得し、バックグラウンド記憶層（すなわち、図８におけるバックエンド記憶機器）に提出して処理させ、バックグラウンド記憶層の処理が完了した後、実行結果をアプリケーション層にフィードバックする。
【０１２５】
本開示の実施例はさらに、実行可能コマンドを記憶するためのメモリと、メモリと通信して実行可能コマンドを実行することで上記いずれかの実施例に提供されるリソーススケジューリング方法のステップを実現するためのプロセッサと、を含む電子機器を提供する。
【０１２６】
本開示の実施例はさらに、実行されると上記いずれかの実施例に提供されるリソーススケジューリング方法の操作を実行するコンピュータ可読コマンド、を記憶するためのコンピュータ可読記憶媒体を提供する。
【０１２７】
本開示の実施例はさらに、機器上で実行されると、機器内のプロセッサが上記いずれかの実施例に提供されるリソーススケジューリング方法を実現するためのコマンドを実行するコンピュータ可読コードを、含むコンピュータプログラム製品を提供する。
【０１２８】
前記コンピュータプログラム製品は具体的にはハードウェア、ソフトウェアまたはそれらの組合せにより実現可能である。選択可能な一例において、前記コンピュータプログラム製品は具体的にはコンピュータ記憶媒体として実現され、別の選択可能な一例において、コンピュータプログラム製品は具体的には、例えばソフトウェア開発キット（ＳＤＫ：Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）などのソフトウェア製品として実現される。
【０１２９】
本開示の実施例における「第１の」、「第２の」などの用語は区別するためのものに過ぎず、本開示の実施例に対する限定と理解してはならないことを理解すべきである。
【０１３０】
さらに、本開示の実施例では、「複数の」は２つまたは２つ以上を指してよく、「少なくとも１つの」は１つ、２つまたは２つ以上を指してよいことを理解すべきである。
【０１３１】
さらに、本開示の実施例に言及された任意の部材、データまたは構造は、明確に限定されまたは明細書の前後で反対的に示唆された場合でなければ、一般的には１つまたは複数と理解してよいことを理解すべきである。
【０１３２】
さらに、本開示ではそれぞれの実施例についての説明はそれぞれの実施例の相違点を重点として強調し、その同一または類似的な点について相互に参照してよく、簡単化するために、ここで一つずつに繰り返して説明しないことを理解すべきである。
【０１３３】
本開示の実施例は、例えば、携帯端末、パーソナルコンピュータ（ＰＣ）、タブレット型コンピュータ、サーバなどであってよい電子機器をさらに提供する。以下、本開示の実施例の端末機器またはサーバを実現するのに適する電子機器９００の構造模式図を示す図９を参照し、図９に示すように、電子機器９００は１つまたは複数のプロセッサ、通信部などを含み、前記１つまたは複数のプロセッサは、例えば、１つまたは複数の中央処理ユニット（ＣＰＵ）９０１、および／または１つまたは複数の画像プロセッサ（ＧＰＵ）９１３などであり、プロセッサは、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２に記憶された実行可能コマンドまたは記憶部９０８からランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３にロードされた実行可能コマンドによって各種の適切な動作および処理を実現することができる。通信パート９１２はネットワークカードを含んでよいが、それに限定されなく、前記ネットワークカードはＩＢ（Ｉｎｆｉｎｉｂａｎｄ）ネットワークカードを含んでよいが、それに限定されない。
【０１３４】
プロセッサはＲＯＭ９０２および／またはＲＡＭ９０３と通信して実行可能コマンドを実行し、通信バス９０４を介して通信パート９１２に接続され、通信パート９１２を介して他のターゲット機器と通信してよく、それにより本開示の実施例で提供されるいずれか一項の方法に対応する操作を完了し、例えば、クライアントから送信される第１のＩ／Ｏ要求を受信する。センタサーバから取得される第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てる。第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定する。第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングし、要求番号に基づいてタグ値を決定し、そしてタグ値に基づいて第１のＩ／Ｏ要求をスケジューリングする。
【０１３５】
また、ＲＡＭ９０３には、装置の動作に必要な各種のプログラムやデータが記憶されていてもよい。ＣＰＵ９０１、ＲＯＭ９０２およびＲＡＭ９０３は、通信バス９０４を介して相互に接続される。ＲＡＭ９０３を有する場合に、ＲＯＭ９０２は選択可能なモジュールである。ＲＡＭ９０３は実行可能コマンドを記憶するか、または動作時に実行可能コマンドをＲＯＭ９０２に書き込み、実行可能コマンドによってプロセッサ９０１に上記通信方法に対応する操作を実行させる。Ｉ／Ｏインタフェース９０５も通信バス９０４に接続される。通信パート９１２は、統合的に設置されてもよく、複数のサブモジュール（例えば複数のＩＢネットワークカード）を有し、通信バスのリンク上にあるように設置されてもよい。
【０１３６】
キーボード、マウスなどを含む入力部９０６と、陰極線管（ＣＲＴ、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、液晶ディスプレイー（ＬＣＤ、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などおよびスピーカなどを含む出力部９０７と、ハードディスクなどを含む記憶部９０８と、ＬＡＮカード、モデムなどのネットワークインタフェースカードを含む通信部９０９とがＩ／Ｏインタフェース９０５に接続されている。通信部９０９は例えばインターネットのようなネットワークを介して通信処理を行う。ドライブ９１０も必要に応じてＩ／Ｏインタフェース９０５に接続される。磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブル媒体９１１は、必要に応じてドライブ９１０上に装着され、そこから読み出されたコンピュータプログラムを必要に応じて記憶部９０８にインストールする。
【０１３７】
なお、図９に示す構造は選択可能な一実施形態に過ぎず、具体的な実践過程では、実際の必要に応じて上記図９の部品の数および種類を選択、削除、追加、または置換することができ、異なる機能部品の設置上でも、分離設置または統合設置などの実施形態を採用でき、例えばＧＰＵ９１３とＣＰＵ９０１は分離設置するかまたはＧＰＵ９１３をＣＰＵ９０１に統合するようにしてよく、通信部は分離設置するか、またはＣＰＵ９０１やＧＰＵ９１３に統合設置することなども可能であることを説明する必要がある。これらの置換可能な実施形態はいずれも本開示の保護範囲に属する。
【０１３８】
特に、本開示の実施例によれば、フローチャートを参照しながら上述したプロセスはコンピュータソフトウェアプログラムとして実現できる。例えば、本開示の実施例はコンピュータプログラム製品を含み、それは機械可読媒体に有形に具現化された、フローチャートに示す方法を実行するためのプログラムコードを含むコンピュータプログラムを含み、プログラムコードは本開示の実施例により提供される方法のステップを対応して実行する対応のコマンドを含んでよく、例えば、クライアントから送信される第１のＩ／Ｏ要求を受信する。センタサーバから取得される第１の番号区間に基づいて、第１のＩ／Ｏ要求に要求番号を割り当てる。第１のＩ／Ｏ要求の要求番号に基づいて、第１のＩ／Ｏ要求のタグ値を決定する。第１のＩ／Ｏ要求のタグ値に基づいて、第１のＩ／Ｏ要求をスケジューリングし、要求番号に基づいてタグ値を決定し、そしてタグ値に基づいて第１のＩ／Ｏ要求をスケジューリングする。このような実施例では、前記コンピュータプログラムは通信部９０９によってネットワークからダウンロードおよびインストールされ、および／またはリムーバブル媒体９１１からインストールされ得る。ＣＰＵ９０１によって前記コンピュータプログラムを実行する時に、本開示の方法で限定された上記機能の操作を実行する。
【０１３９】
本開示の方法および装置は、様々な形態で実現され得る。例えば、ソフトウェア、ハードウェア、ファームウェアまたはソフトウェア、ハードウェア、ファームウェアの任意の組合せによって本開示の方法および装置を実現することができる。前記方法のステップのための上記順序は説明することのみを目的とし、本開示の方法のステップは、特に断らない限り、以上で具体的に説明した順序に限定されない。また、いくつかの実施例では、本開示は記録媒体に記憶されたプログラムとしてもよく、これらのプログラムは本開示の方法を実現するための機械可読コマンドを含む。従って、本開示は本開示の方法を実行するためのプログラムが記憶された記録媒体も含む。
【０１４０】
本開示の説明は、例示および説明のために提示されたものであり、網羅的なものでありもしくは開示された形式に本開示を限定するというわけでない。当業者にとっては多くの修正および変形を加えることができるのは明らかであろう。実施例は本開示の原理および実際応用をより明瞭に説明するため、かつ当業者が本開示を理解して特定用途に適した各種の修正を加えた各種の実施例を設計可能にするように選択され説明されたものである。
【図１】
2021518002.tif 000014
【図２】
2021518002.tif 000015
【図３】
2021518002.tif 000016
【図４】
2021518002.tif 000017
【図５】
2021518002.tif 000018
【図６】
2021518002.tif 000019
【図７】
2021518002.tif 000020
【図８】
2021518002.tif 000021
【図９】
2021518002.tif 000022
【手続補正書】
【提出日】令和2年7月15日(2020.7.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアントから送信される第１の入出力（Ｉ／Ｏ）要求を受信するステップと、
センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるステップと、
前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップと、
前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を含むリソーススケジューリング方法。
【請求項２】
前記センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、
前記第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、
前記第１の番号区間に少なくとも１つの空き番号が存在することに応答して、前記少なくとも１つの空き番号のうち、最小番号を前記第１のＩ／Ｏ要求の要求番号とするステップと、を含む請求項１に記載の方法。
【請求項３】
前記センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、
前記第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための番号要求を前記センタサーバに送信するステップと、
前記センタサーバが前記番号要求に基づいて送信する、前記第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を含む請求項１または２に記載の方法。
【請求項４】
前記センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てる前記ステップは、
前記第１の番号区間に空き番号が存在しないことに応答して、前記第１の番号区間における最大番号に基づいて前記第１のＩ／Ｏ要求の要求番号を決定するステップを含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定する前記ステップは、
前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップであって、前記第２のＩ／Ｏ要求は、前記第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップを含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定する前記ステップは、
前記第１のＩ／Ｏ要求の要求番号と前記第２のＩ／Ｏ要求の要求番号との間の差値、前記第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップを含む、請求項５に記載の方法。
【請求項７】
前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングする前記ステップは、
前記第１のＩ／Ｏ要求のタグ値に基づいて、Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位を決定するステップと、
Ｉ／Ｏ要求キュー内の前記第１のＩ／Ｏ要求の順位に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を含む請求項１から６のいずれか一項に記載の方法。
【請求項８】
クライアントから送信される第１のＩ／Ｏ要求を受信するように構成される要求受信ユニットと、
センタサーバから取得される第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるように構成される番号区間取得ユニットと、
前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するように構成されるタグ値決定ユニットと、
前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするように構成されるリソーススケジューリングユニットと、を含むリソーススケジューリング機器。
【請求項９】
第１のリソーススケジューリング機器から送信される、クライアントの番号区間を要求するための第１の番号要求を受信するように構成される要求受信ユニットと、
第２の番号要求に割り当てられた第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記第１のリソーススケジューリング機器に供与するステップであって、前記第２の番号要求は、前記サーバが前回受信した、第２のリソーススケジューリング機器から送信される前記ユーザの番号要求であるステップを実行するように構成される番号区間供与ユニットと、を含むサーバ。
【請求項１０】
クライアントの番号区間を要求するための第１の番号要求を前記センタサーバに送信するように構成される複数のリソーススケジューリング機器と、
前記第１の番号要求および前回、前記クライアントに供与した第３の番号区間に基づいて、前記第３の番号区間の後にある第１の番号区間を前記リソーススケジューリング機器に送信するように構成される複数のセンタサーバと、を含むリソーススケジューリングシステム。
【請求項１１】
前記リソーススケジューリング機器はさらに、
前記クライアントから送信される第１のＩ／Ｏ要求を受信するステップと、前記第１の番号区間に基づいて、前記第１のＩ／Ｏ要求に要求番号を割り当てるステップと、前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される、請求項１０に記載のシステム。
【請求項１２】
前記リソーススケジューリング機器は、前記第１のＩ／Ｏ要求の要求番号に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップと、前記第１のＩ／Ｏ要求のタグ値に基づいて、前記第１のＩ／Ｏ要求をスケジューリングするステップと、を実行するように構成される、請求項１１に記載のシステム。
【請求項１３】
前記リソーススケジューリング機器は、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するステップであって、前記第２のＩ／Ｏ要求は、前記第１のＩ／Ｏ要求に対応するクライアントが前回送信したＩ／Ｏ要求であるステップを実行するように構成される、請求項１２に記載のシステム。
【請求項１４】
前記リソーススケジューリング機器はさらに、前記第１のＩ／Ｏ要求の要求番号と第２のＩ／Ｏ要求の要求番号との間の差値、前記第２のＩ／Ｏ要求のタグ値、および現時刻に基づいて、前記第１のＩ／Ｏ要求のタグ値を決定するように構成される、請求項１３に記載のシステム。
【請求項１５】
前記リソーススケジューリング機器は、前記第１の番号区間に未割り当ての空き番号が存在するか否かを判断するステップと、前記第１の番号区間に少なくとも１つの空き番号が存在することに応答して、前記少なくとも１つの空き番号のうち、最小番号を前記第１のＩ／Ｏ要求の要求番号とするステップと、を実行するように構成される、請求項１１から１４のいずれか一項に記載のシステム。
【請求項１６】
前記リソーススケジューリング機器は、前記第１の番号区間に空き番号が存在しないことに応答して、新たな番号区間を要求するための第２の番号要求を前記センタサーバに送信するステップと、前記センタサーバが前記第２の番号要求に基づいて送信する、前記第１の番号区間と少なくとも１つの番号区間を隔てた第２の番号区間を受信するステップと、を実行するように構成される請求項１０から１５のいずれか一項に記載のシステム。
【請求項１７】
前記リソーススケジューリング機器は、前記第１の番号区間に空き番号が存在しないことに応答して、前記第１の番号区間における最大番号に基づいて前記第１のＩ／Ｏ要求の要求番号を決定するように構成される、請求項１５または１６に記載のシステム。
【請求項１８】
前記リソーススケジューリング機器はゲートウェイインスタンスである、請求項１０から１７のいずれか一項に記載のシステム。
【請求項１９】
実行可能コマンドを記憶するためのメモリと、
前記メモリと通信して前記実行可能コマンドを実行することで請求項１から７のいずれか一項に記載のリソーススケジューリング方法のステップを実現するために用いられるプロセッサと、を含む電子機器。
【請求項２０】
コンピュータ可読コマンドを記憶するためのコンピュータ可読記憶媒体であって、前記コンピュータ可読コマンドが実行されるとき、請求項１から７のいずれか一項に記載のリソーススケジューリング方法のステップを実行する、コンピュータ可読記憶媒体。
【請求項２１】
コンピュータに、請求項１から７のいずれか一項に記載のリソーススケジューリング方法を実行させるためのコンピュータプログラム。
【国際調査報告】
2021518002.tif 000023
2021518002.tif 000024
2021518002.tif 000025
2021518002.tif 000026