(57)【要約】コンポーネント論理スレッドの数を調節する方法及び装置が提供される。本方法は、コンポーネントによって呼び出し可能な複数の論理スレッドを取得すること（Ｓ１１）と、それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断することであって、負荷状態は通常負荷状態及び異常負荷状態を含む、判断すること（Ｓ１２）と、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断すること（Ｓ１３）と、コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節すること（Ｓ１４）と、を含む。本方法及び本装置を使用することによって、データの実時間算出を保証しながらもリソースの利用率は改善される。
2019500700.tif 000002
【特許請求の範囲】
【請求項１】
コンポーネントの論理スレッドの数を調節する方法であって、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得することと、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断することであって、前記負荷状態は通常負荷状態及び異常負荷状態を含む、前記判断することと、
前記コンポーネントの前記論理スレッドの負荷状態に従って、前記コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断することと、
前記コンポーネントの前記論理スレッドの数が調節される必要があるとの判断に応答して前記判断の結果に従って前記コンポーネントの前記論理スレッドの数を調節することと、を含む、前記方法。
【請求項２】
前記判断の結果に従って前記コンポーネントの前記論理スレッドの数を調節することは、
前記コンポーネントの現在の論理スレッドの数＊１秒当たりに送出装置によって送られるデータの量／１秒当たりに前記コンポーネントによって受信されるデータの量となるように、前記コンポーネントの前記論理スレッドの数を調節することであって、前記送出装置はデータを前記コンポーネントに送る装置である、前記調節することを含む、請求項１に記載の方法。
【請求項３】
前記異常負荷状態は高負荷状態及び低負荷状態を含み、
前記利用率は、メッセージキューに記憶されるデータによって占有される空間／前記メッセージキューの事前割り当てされた記憶空間に等しく、
それぞれの論理スレッドに対応する前記データ処理キューの前記利用率に従ってそれぞれの論理スレッドの前記負荷状態を判断することは、
論理スレッドに対応する前記データ処理キューの前記利用率が第１の事前設定閾値より大きいかどうかを判断することと、
前記利用率が前記第１の事前設定閾値より大きいとの判断に応答して、前記論理スレッドが前記高負荷状態にあると判断することと、
前記論理スレッドに対応する前記データ処理キューの前記利用率が前記第１の事前設定閾値より大きくないとの判断に応答して、前記利用率が第２の事前設定閾値より小さいかどうかを判断することと、
前記利用率が前記第２の事前設定閾値より小さいとの判断に応答して、前記論理スレッドが前記低負荷状態にあると判断することと、を含む、請求項１または２に記載の方法。
【請求項４】
前記コンポーネントの前記論理スレッドの前記負荷状態に従って、前記コンポーネントの前記論理スレッドの数が調節される必要があるかどうかを判断することは、
前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの中で、前記高負荷状態の論理スレッドの数、及び前記低負荷状態の論理スレッドの数をそれぞれ数えることと、
高負荷確率算出式及び低負荷確率算出式をそれぞれ使用することによって、前記コンポーネントの高負荷確率及び低負荷確率を算出することであって、前記高負荷確率算出式＝前記高負荷状態の前記論理スレッドの数／前記コンポーネントによって呼び出し可能な全ての論理スレッドの数、及び前記低負荷確率算出式＝前記低負荷状態の前記論理スレッドの数／前記コンポーネントによって呼び出し可能な全ての論理スレッドの数である、前記算出することと、
前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも１つは第３の事前設定閾値より大きいかどうかを判断することと、
前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも１つが前記第３の事前設定閾値より大きいとの判断に応答して、前記コンポーネントの前記論理スレッドの数は調節される必要があると判断することと、を含む、請求項３に記載の方法。
【請求項５】
前記論理スレッドは動作プロセスにおいて実行し、
前記方法は、
前記コンポーネントに対して調節される必要がある前記論理スレッドの数、及び前記現在の論理スレッドの数に従って、前記論理スレッドが前記コンポーネントに対して追加または削除される必要があるかどうかを判断することと、
前記論理スレッドが追加される必要があるとの判断に応答して、前記現在の論理スレッドに関連付けられた前記動作プロセスにおいて論理スレッドが追加されることが許容可能であるかどうかを判断することと、
前記論理スレッドが前記動作プロセスに追加されることが許容可能であるとの判断に応答して、関連付けられた前記動作プロセスに前記論理スレッドを追加することと、
前記論理スレッドが前記動作プロセスに追加されることが許容可能ではないとの判断に応答して、追加される必要がある動作プロセスの数を判断することと、
対応する前記論理スレッドが削除される必要があるとの判断に応答して、前記動作プロセスにおいて論理スレッドを削除することと、をさらに含む、請求項１、２、及び４のいずれか１項に記載の方法。
【請求項６】
前記論理スレッドが、前記現在の論理スレッドに関連付けられた前記動作プロセスに追加されることが許容可能であるかどうかを判断することは、
前記現在の論理スレッドに関連付けられた複数の動作プロセスを判断することと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断することであって、前記事前設定された増加式は、前記動作プロセスに追加されることが許容可能である論理スレッドの数＝（前記動作プロセスの事前割り当てされた全リソース／論理スレッドを実行するために前記動作プロセスによって占有されるリソース＊第４の事前設定値−１）＊前記現在の動作プロセスにおいて実行する論理スレッドの数である、前記判断することと、
全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えることと、
追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるかどうかを判断することと、
追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるとの判断に応答して、前記論理スレッドは前記関連付けられた動作プロセスに追加されることが許容可能であると判断することと、を含む、請求項５に記載の方法。
【請求項７】
追加される必要がある前記動作プロセスの数を判断することは、
事前設定された負荷閾値下で、前記関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Ｑを取得することと、
動作プロセス算出式を使用することによって、追加される必要がある前記動作プロセスの数を算出することであって、前記動作プロセス算出式は、追加される動作プロセスの数＝（Ｎ−Ｔ）／Ｑ＋１であり、式中、Ｎは前記コンポーネントに追加される必要がある論理スレッドの数であり、Ｔは前記関連付けられた動作プロセスに追加されることが許容可能である前記論理スレッドの数であり、Ｔ、Ｎ、及びＱは正の整数である、前記算出することと、を含む、請求項６に記載の方法。
【請求項８】
事前設定された時間の間隔で、前記コンポーネントの上流コンポーネントによって呼び出し可能な第１の論理スレッド、及び前記コンポーネントの下流コンポーネントによって呼び出し可能な第２の論理スレッドを判断することと、
前記コンポーネントによって呼び出し可能な第３の論理スレッドと、前記第１の論理スレッドとの間の通信接続、及び、前記第３の論理スレッドと前記第２の論理スレッドとの間の通信接続を確立することと、をさらに含む、請求項１、２、４、６、及び７のいずれか１項に記載の方法。
【請求項９】
論理スレッドが前記コンポーネントに関連付けられた動作プロセスに存在するかどうかを逐次に判断することと、
前記動作プロセスに論理スレッドが存在しないとの判断に応答して、前記動作プロセスを削除することと、をさらに含む、請求項１、２、４、６、及び７のいずれ１項に記載の方法。
【請求項１０】
コンポーネント論理スレッドの数を調節する装置であって、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得するように構成された取得モジュールと、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するように構成された第１の判断モジュールであって、前記負荷状態は通常負荷状態及び異常負荷状態を含む、前記第１の判断モジュールと、
前記コンポーネントの前記論理スレッドの負荷状態に従って、前記コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断するように構成された第１の判定モジュールと、
前記コンポーネントの前記論理スレッドの数が調節される必要があるとの判断に応答して判断結果の結果に従って前記コンポーネントの前記論理スレッドの数を調節するように構成された調節モジュールと、を含む、前記装置。
【請求項１１】
前記調節モジュールは、
前記コンポーネントの前記論理スレッドの数を、前記コンポーネントの現在の論理スレッドの数＊１秒当たりに送出装置によって送られるデータの量／１秒当たりに前記コンポーネントによって受信されるデータの量となるように調節するように構成された調節ユニットであって、前記送出装置はデータを前記コンポーネントに送る装置である、前記調節ユニットを含む、請求項１０に記載の装置。
【請求項１２】
前記異常負荷状態は高負荷状態及び低負荷状態を含み、
前記利用率は、メッセージキューに記憶されたデータによって占有される空間／前記メッセージキューの事前割り当てされた記憶空間に等しく、
前記判断モジュールは、
論理スレッドに対応するデータ処理キューの利用率が第１の事前設定閾値より大きいかどうかを判断するように構成された第１の判断ユニットと、
前記利用率が前記第１の事前設定閾値より大きいとの判断に応答して、前記論理スレッドが前記高負荷状態にあると判断するように構成された高負荷状態判断ユニットと、
前記論理スレッドに対応する前記データ処理キューの前記利用率が、前記第１の事前設定閾値より大きくないとの判断に応答して、前記利用率が第２の事前設定閾値より小さいかどうかを判断するように構成された第２の判断ユニットと、
前記利用率が前記第２の事前設定閾値より小さいとの判断に応答して、前記論理スレッドが前記低負荷状態にあると判断するように構成された低負荷状態判断ユニットと、を含む、請求項１０または１１に記載の装置。
【請求項１３】
前記判定モジュールは、
前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの中で、前記高負荷状態の論理スレッドの数、及び前記低負荷状態の論理スレッドの数をそれぞれ数えるように構成された第１の計数ユニットと、
高負荷確率算出式及び低負荷確率算出式をそれぞれ使用することによって、前記コンポーネントの高負荷確率及び低負荷確率を算出するように構成された第１の算出ユニットであって、前記高負荷確率算出式＝前記高負荷状態の前記論理スレッドの数／前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの数であり、前記低負荷確率算出式＝前記低負荷状態の前記論理スレッドの数／前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの数である、前記第１の算出ユニットと、
前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも１つは第３の事前設定閾値より大きいかどうかを判断するように構成された第３の判断ユニットと、
前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも１つが前記第３の事前設定閾値より大きいとの判断に応答して、前記コンポーネントの論理スレッドの数が調節される必要があることを判断するように構成された第１の判断ユニットと、を含む、請求項１２に記載の装置。
【請求項１４】
前記装置は、
前記コンポーネントが調節される必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドが前記コンポーネントに対して追加または削除される必要があるかどうかを判断するように構成された第２の判断モジュールと、
前記論理スレッドが追加される必要があるとの判断に応答して、前記現在の論理スレッドに関連付けられた動作プロセスに論理スレッドが追加されることが許容可能であるかどうかを判断するように構成された第２の判定モジュールと、
前記論理スレッドが前記現在の論理スレッドに関連付けられた前記動作プロセスに追加されることが許容可能であるとの判断に応答して、前記現在の論理スレッドに関連付けられた前記動作プロセスに前記論理スレッドを追加するように構成された追加モジュールと、
前記論理スレッドが前記現在の論理スレッドに関連付けられた前記動作プロセスに追加されることが許容可能でないとの判断に応答して、追加される必要がある動作プロセスの数を判断するように構成された第３の判断モジュールと、
対応する前記論理スレッドが削除される必要があるとの判断に応答して、前記動作プロセスにおいて論理スレッドを削除するように構成された削除モジュールと、をさらに含む、請求項１０、１１、及び１３のいずれか１項に記載の装置。
【請求項１５】
前記第２の判定モジュールは、
前記現在の論理スレッドに関連付けられた複数の動作プロセスを判断するように構成された第２の判断ユニットと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断するように構成された第３の判断ユニットであって、前記増加式は、前記動作プロセスに追加されることが許容可能である前記論理スレッドの数＝（前記動作プロセスの事前割り当てされた全リソース／論理スレッドを実行するために前記動作プロセスによって占有されるリソース＊第４の事前設定値−１）＊前記現在の動作プロセスにおいて実行する論理スレッドの数である、前記第３の判断ユニットと、
全ての関連付けられた前記動作プロセスに追加されることが許容可能である論理スレッドの総数を数えるように構成された第２の計数ユニットと、
追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるかどうかを判断するように構成された第４の判定ユニットと、
追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるとの判断に応答して、前記論理スレッドは前記関連付けられた動作プロセスに追加されることが許容可能であると判断するように構成された第３の判断ユニットと、を含む、請求項１４に記載の装置。
【請求項１６】
前記第３の判断ユニットは、
事前設定された負荷閾値下で前記関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Ｑを取得するように構成された取得サブユニットと、
動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出するように構成された算出サブユニットであって、前記動作プロセス算出式は、追加される動作プロセスの数＝（Ｎ−Ｔ）／Ｑ＋１であり、式中、Ｎは前記コンポーネントに追加される必要がある前記論理スレッドの数であり、Ｔは前記関連付けられた動作プロセスに追加されることが許容可能である前記論理スレッドの数であり、Ｔ、Ｎ、及びＱは正の整数である、前記算出サブユニットと、を含む、請求項１５に記載の装置。
【請求項１７】
事前設定された時間の間隔で、前記コンポーネントの上流コンポーネントによって呼び出し可能な第１の論理スレッド、及び前記コンポーネントの下流コンポーネントによって呼び出し可能な第２の論理スレッドを判断するように構成された第４の判断モジュールと、
前記コンポーネントによって呼び出し可能な第３の論理スレッドと、前記第１の論理スレッドとの間の通信接続、及び、前記第３の論理スレッドと前記第２の論理スレッドとの間の通信接続を確立するように構成された確立モジュールと、をさらに含む、請求項１０、１１、１３、１５、及び１６のいずれか１項に記載の装置。
【請求項１８】
論理スレッドが前記コンポーネントに関連付けられた動作プロセスに存在するかどうかを逐次に判断するように構成された第３の判定モジュールと、
前記動作プロセスに論理スレッドが存在しないとの判断に応答して、前記動作プロセスを削除するように構成された削除モジュールと、をさらに含む、請求項１０、１１、１３、１５、及び１６のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、インターネットの分野に関し、より詳細には、コンポーネント論理スレッドの数を調節するための方法及び装置に関する。
【背景技術】
【０００２】
一般的に、コンピュータクラスタは分散実時間計算システムに配設されてよい。データの実時間計算は、コンピュータクラスタを使用することによって実施されてよい。典型的には、マスタデバイス及び複数のスレーブデバイスがクラスタに配設されてよい。実時間計算プログラムはマスタデバイスに記憶される。処理される必要があるデータがある時（すなわち、外部データが分散実時間計算システムに入力される時）、マスタデバイスにおける実時間計算プログラムはデータ計算を実施するためにスレーブデバイスにおいてリソースを起動することになる。
【０００３】
実際のアプリケーションでは、実時間計算プログラムは複数のコンポーネントから構成され、それぞれのコンポーネントは特定的なタスクを実行する。スレーブデバイスはマスタデバイスが呼び出す複数の論理スレッドリソースを提供してよい。従って、マスタデバイスは一般的に、一定の論理スレッドリソースを実時間計算プログラムにおけるそれぞれのコンポーネントに予め割り当てる。処理される必要があるデータがある時、実時間計算プログラムにおけるそれぞれのコンポーネントは事前割り当てされた論理スレッドリソースを呼び出してタスクを実行することで、データの計算を完了することになる。
【０００４】
実時間計算システムにおいて、外部から入力されるデータのデータ量は一定でないが、それぞれのコンポーネントに割り当てられる論理スレッドリソースは一定である。大量の外部データが入力される時、それぞれのコンポーネントは処理する多くのタスクを有する。この場合、少数の論理スレッドリソースが１つのコンポーネントに事前割り当てされる場合、コンポーネントの実行効率は低くなるため、データの実時間計算に影響を及ぼす。同様に、少量の外部データが入力されるが、多くの論理スレッドリソースが１つのコンポーネントに事前割り当てされる場合、リソースは浪費されることになる。従って、コンポーネント論理スレッドの数を調節するための方法及び装置が、データの実時間計算を保証しながらもリソースの利用率を改善するために、従来の技術において至急必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示の例示の実施形態は、データの実時間計算を保証しながらもリソースの利用率を改善するための、コンポーネント論理スレッドの数を調節するための方法及び装置を提供する。
【課題を解決するための手段】
【０００６】
前述の技術的問題を解決するために、本開示の例示の実施形態は以下の技術的解決策を開示する。
【０００７】
一態様では、本開示は、コンポーネント論理スレッドの数を調節する方法であって、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得することと、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断することであって、負荷状態は通常負荷状態及び異常負荷状態を含む、判断することと、
コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断することと、
コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節することと、を含む方法を開示する。
【０００８】
オプションとして、判断結果に従ってコンポーネントの論理スレッドの数を調節するステップは、
コンポーネントの現在の論理スレッドの数＊１秒当たりに送出装置によって送られるデータのデータ量／１秒当たりにコンポーネントによって受信されるデータのデータ量となるように、コンポーネントの論理スレッドの数を調節することであって、送出装置はデータをコンポーネントに送る装置である、調節することを含む。
【０００９】
オプションとして、異常負荷状態は高負荷状態及び低負荷状態を含み、利用率は、メッセージキューに記憶されるデータによって占有される空間／メッセージキューの事前割り当てされた記憶空間に等しく、それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するステップは、
論理スレッドに対応するデータ処理キューの利用率が第１の事前設定閾値より大きいかどうかを判断することと、
利用率が第１の事前設定閾値より大きい場合、論理スレッドが高負荷状態にあると判断することと、
現在の論理スレッドに対応するデータ処理キューの利用率が、第１の事前設定閾値より大きくない場合、該利用率が第２の事前設定閾値より小さいかどうかを判断することと、
利用率が第２の事前設定閾値より小さい場合、論理スレッドが低負荷状態にあることを判断することと、を含む。
【００１０】
オプションとして、コンポーネントの論理スレッドの数がコンポーネントの全ての論理スレッドの負荷状態に従って調節される必要があるかどうかを判断するステップは、
コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ数えることと、
高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出することであって、高負荷確率算出式＝高負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数、及び低負荷確率算出式＝低負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である、算出することと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも１つは第３の事前設定閾値より大きいかどうかを判断することと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも１つが第３の事前設定閾値より大きい場合、コンポーネントの論理スレッドの数が調節される必要があると判断することと、を含む。
【００１１】
オプションとして、論理スレッドは動作プロセスにおいて実行し、本方法は、
コンポーネントが調節される必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドがコンポーネントに対して追加または削除される必要があるかどうかを判断することと、
論理スレッドが、追加される必要がある場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドは追加されることが許容可能であるかどうかを判断することと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能である場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドを追加することと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加できない場合、追加される必要がある動作プロセスの数を判断することと、
対応する論理スレッドが削除される必要がある場合、動作プロセスにおいて論理スレッドを削除することと、をさらに含む。
【００１２】
オプションとして、論理スレッドが、現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能であるかどうかを判断するステップは、
現在の論理スレッドに関連付けられた複数の動作プロセスを判断することと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断することであって、増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数＝（動作プロセスの事前割り当てされた全リソース／論理スレッドを実行するために動作プロセスによって占有されるリソース＊第４の事前設定値−１）＊現在の動作プロセスにおいて実行する論理スレッドの数である、判断することと、
全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えることと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断することと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上である場合、論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であると判断することと、を含む。
【００１３】
オプションとして、追加される必要がある動作プロセスの数を判断するステップは、事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Ｑを取得することと、
動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出することであって、動作プロセス算出式は、追加される動作プロセスの数＝（Ｎ−Ｔ）／Ｑ＋１であり、式中、Ｎはコンポーネントに追加される必要がある論理スレッドの数であり、Ｔは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、Ｔ、Ｎ、及びＱは正の整数である、算出することと、を含む。
【００１４】
オプションとして、本方法は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第１の論理スレッド、及び下流コンポーネントによって呼び出し可能な第２の論理スレッドを判断することと、
現在のコンポーネントによって呼び出し可能な第３の論理スレッドと、第１の論理スレッドとの間の通信接続、及び、第３の論理スレッドと第２の論理スレッドとの間の通信接続を確立することと、をさらに含む。
【００１５】
オプションとして、本方法は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断することと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除することと、をさらに含む。
【００１６】
別の態様では、本開示は、コンポーネント論理スレッドの数を調節するための装置であって、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得するように構成された取得モジュールと、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するように構成された第１の判断モジュールであって、負荷状態は通常負荷状態及び異常負荷状態を含む、第１の判断モジュールと、
コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断するように構成された第１の判定モジュールと、
コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節するように構成された調節モジュールと、を含む装置をさらに開示する。
【００１７】
オプションとして、調節モジュールは、
コンポーネントの論理スレッドの数を、コンポーネントの現在の論理スレッドの数＊１秒当たりに送出装置によって送られるデータのデータ量／１秒当たりにコンポーネントによって受信されるデータのデータ量となるように、コンポーネントの論理スレッドの数を調節するように構成された調節ユニットであって、送出装置はデータをコンポーネントに送る装置である、調節ユニットを含む。
【００１８】
オプションとして、異常負荷状態は高負荷状態及び低負荷状態を含み、利用率は、メッセージキューに記憶されたデータによって占有される空間／メッセージキューの事前割り当てされた記憶空間に等しく、判断モジュールは、
論理スレッドに対応するデータ処理キューの利用率が第１の事前設定閾値より大きいかどうかを判断するように構成された第１の判定ユニットと、
利用率が第１の事前設定閾値より大きい場合、論理スレッドが高負荷状態にあると判断するように構成された高負荷状態判断ユニットと、
現在の論理スレッドに対応するデータ処理キューの利用率が第１の事前設定閾値より大きくない場合、該利用率が第２の事前設定閾値より小さいかどうかを判断するように構成された第２の判定ユニットと、
利用率が第２の事前設定閾値より小さい場合、論理スレッドが低負荷状態にあると判断するように構成された低負荷状態判断ユニットと、を含む。
【００１９】
オプションとして、判断モジュールは、
コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ数えるように構成された第１の計数ユニットと、
高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出するように構成された第１の算出ユニットであって、高負荷確率算出式＝高負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数であり、低負荷確率算出式＝低負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である、第１の算出ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも１つは第３の事前設定閾値より大きいかどうかを判断するように構成された第３の判定ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも１つが第３の事前設定閾値より大きい場合、コンポーネントの論理スレッドの数が調節される必要があると判断するように構成された第１の判断ユニットと、を含む。
【００２０】
オプションとして、本装置は、
コンポーネントが調節される必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドがコンポーネントに対して追加または削除される必要があるかどうかを判断するように構成された第２の判断モジュールと、
論理スレッドが、追加される必要がある場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドが追加されることが許容可能であるかどうかを判断するように構成された第２の判定モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能である場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドを追加するように構成された追加モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加できない場合、追加される必要がある動作プロセスの数を判断するように構成された第３の判断モジュールと、
対応する論理スレッドが削除される必要がある場合、動作プロセスにおいて論理スレッドを削除するように構成された削除モジュールと、をさらに含む。
【００２１】
オプションとして、第２の判定モジュールは、
現在の論理スレッドに関連付けられた複数の動作プロセスを判断するように構成された第２の判断ユニットと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断するように構成された第３の判断ユニットであって、増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数＝（動作プロセスの事前割り当てされた全リソース／論理スレッドを実行するために動作プロセスによって占有されるリソース＊第４の事前設定値−１）＊現在の動作プロセスにおいて実行する論理スレッドの数である、第３の判断ユニットと、
全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えるように構成された第２の計数ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断するように構成された第４の判定ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上である場合、論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であることを判断するように構成された第３の判断ユニットと、を含む。
【００２２】
オプションとして、第３の判断ユニットは、
事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Ｑを取得するように構成された取得サブユニットと、
動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出するように構成された算出サブユニットであって、動作プロセス算出式は、追加される動作プロセスの数＝（Ｎ−Ｔ）／Ｑ＋１であり、式中、Ｎはコンポーネントに追加される必要がある論理スレッドの数であり、Ｔは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、Ｔ、Ｎ、及びＱは正の整数である、算出サブユニットと、を含む。
【００２３】
オプションとして、装置は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第１の論理スレッド、及び下流コンポーネントによって呼び出し可能な第２の論理スレッドを判断するように構成された第４の判断モジュールと、
現在のコンポーネントによって呼び出し可能な第３の論理スレッドと、第１の論理スレッドとの間の通信接続、及び、第３の論理スレッドと第２の論理スレッドとの間の通信接続を確立するように構成された確立モジュールと、をさらに含む。
【００２４】
オプションとして、装置は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断するように構成された第３の判定モジュールと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除するように構成された削除モジュールと、をさらに含む。
【００２５】
上記の技術的解決策から示されるように、本開示の例示の実施形態において、最初に、それぞれの論理スレッドの負荷状態はそれぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断され、負荷状態は通常負荷状態及び異常負荷状態を含む。次いで、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。最後に、コンポーネントの論理スレッドの数が調節される必要がある場合、コンポーネントの論理スレッドの数は判断結果に従って調節される。本開示の例示の実施形態では、コンポーネントによって呼び出し可能な論理スレッドの数は、論理スレッドの負荷状態に従って調節されてよく、それによって、コンポーネントによって呼び出されてよい論理スレッドが過大または不十分にならないようにするため、データの実時間処理を保証しながらも論理スレッドリソースの利用率を改善する。
【００２６】
本開示の例示の実施形態、または従来の技術における技術的解決策をより明確に示すために、例示の実施形態または従来の技術を説明するための添付の図面について以下で簡潔に紹介する。当業者が創意工夫なくこれらの添付の図面から他の図面を得ることができることは明らかである。
【図面の簡単な説明】
【００２７】
【図１】本開示の例示の実施形態による、コンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。
【図２】本開示の例示の実施形態によるデータ処理キューの概略図である。
【図３】本開示の例示の実施形態による論理スレッドの概略図である。
【図４】本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。
【図５】本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。
【図６】本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。
【図７】本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。
【図８】本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。
【図９】本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための装置の概略的なモジュール図である。
【発明を実施するための形態】
【００２８】
本開示の例示の実施形態における技術的解決策について、本開示の例示の実施形態における添付の図面を参照して明確にかつ完全に後述する。説明される例示の実施形態が、本開示の全ての例示の実施形態ではなく一部の例示の実施形態を単に表していることは明らかである。本開示の例示の実施形態に基づいて、創意工夫なく当業者によって得られる他の例示の実施形態全ては、本開示の保護範囲に属するものとする。
【００２９】
本開示は、コンポーネント論理スレッドの数を調節するための方法を開示する。図１に示されるように、本方法は、少なくとも以下のステップを含む。
【００３０】
ステップＳ１１：コンポーネントによって呼び出し可能な複数の論理スレッドを取得する。
【００３１】
ステップＳ１２：それぞれの論理スレッドの負荷状態を、それぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断し、負荷状態は、通常負荷状態及び異常負荷状態を含む。
【００３２】
本開示の例示の実施形態では、それぞれの論理スレッド内にデータ処理キューがある。データ処理キューは、対応する論理スレッドによって処理される必要があるデータを記憶するために使用される。本開示の例示の実施形態では、データ処理キューは、具体的には図２に示されるようなものであってよく、陰影部は、処理キューに記憶されたデータによって既に占有されている占有空間を表す。
【００３３】
本開示の例示の実施形態では、メッセージキューの利用率＝メッセージキューに記憶されたデータによって占有される空間／メッセージキューの事前割り当てされた記憶空間である。よって、対応する論理スレッドの負荷状態、すなわち、通常負荷状態または異常負荷状態は、メッセージキューの利用率に従って判断されてよい。異常負荷状態は、具体的には、非常に高い利用率による高負荷状態、及び非常に低い利用率による低負荷状態を含んでよく、論理スレッドは、データの実時間処理を保証することはできない。低負荷状態において、コンポーネントに割り当てられた論理スレッドリソースは浪費されることになる。
【００３４】
ステップＳ１３：コンポーネントの論理スレッドの数が調節される必要があるかどうかを、コンポーネントの論理スレッドの負荷状態に従って判断し、はいの場合、ステップＳ１４が行われ、その他の場合は、手続きを終了する。
【００３５】
本開示の例示の実施形態では、コンポーネントの論理スレッドの数が調節される必要があるかどうかは、コンポーネントによって呼び出し可能な全ての論理スレッドにおける通常負荷状態または異常負荷状態の論理スレッドの割合に従って、具体的に判断されてよい。例えば、通常負荷状態の論理スレッドがコンポーネントによって呼ばれてよい論理スレッドの８０％を占める場合、コンポーネントの論理スレッドの数は調節される必要がないと判断されてよい。異常負荷状態の論理スレッドが８０％を占める場合、コンポーネントの論理スレッドの数は調節される必要があると判断されてよい。
【００３６】
ステップＳ１４：コンポーネントの論理スレッドの数を判断結果に従って調節する。
【００３７】
本開示の例示の実施形態では、コンポーネントの論理スレッドの数は、具体的には、コンポーネントの現在の論理スレッドの数＊１秒当たりに送出装置によって送られるデータのデータ量／１秒当たりにコンポーネントによって受信されるデータのデータ量となるように、調節されてよく、送出装置はデータをコンポーネントに送る装置である。
【００３８】
本開示の例示の実施形態では、実時間計算プログラムは、一般的に、スパウト（メッセージソース）コンポーネント及びボルト（メッセージ処理）コンポーネントから構成される。複数のコンポーネントがデータを繰り返し処理してよい。図３に示されるように、例えば、実時間計算プログラムは、１つのスパウトコンポーネント及び２つのボルトコンポーネントから構成され、２つのボルトコンポーネントは、それぞれ、第１のボルトコンポーネント及び第２のボルトコンポーネントである。本開示の例示の実施形態では、スパウトコンポーネントは、メッセージソースから送られたデータを受信し、かつデータを処理するために事前割り当てされた論理スレッドを呼び出してよい。処理が完了すると、スパウトコンポーネントは、下流コンポーネントとしての役割を果たす第１のボルトコンポーネントにデータを送るための上流コンポーネントとしての役割を果たす。同様に、データ処理が完了すると、第１のボルトコンポーネントは、下流コンポーネントとしての役割を果たす第２のボルトコンポーネントにデータを送るための上流コンポーネントとしての役割を果たすことになる。本開示の例示の実施形態では、現在のコンポーネントがスパウトコンポーネントである場合、送出装置は、メッセージソースデバイスであってよい。現在のコンポーネントがボルトコンポーネントである場合、送出装置は現在のコンポーネントの上流コンポーネントであってよい。
【００３９】
上記の技術的解決策から示されるように、本開示の例示の実施形態において、最初に、それぞれの論理スレッドの負荷状態はそれぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断され、負荷状態は通常負荷状態及び異常負荷状態を含む。次いで、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。最後に、コンポーネントの論理スレッドの数が調節される必要がある場合、コンポーネントの論理スレッドの数は判断結果に従って調節される。本開示の例示の実施形態では、コンポーネントによって呼び出されてよい論理スレッドの数は、論理スレッドの負荷状態に従って調節されてよく、それによって、コンポーネントによって呼び出されてよい論理スレッドが過大または不十分にならないようにするため、データの実時間処理を保証しながらも論理スレッドリソースの利用率を改善する。
【００４０】
本開示の別の実施可能な例示の実施形態では、図４に示されるように、前述の例示の実施形態全てにおけるステップＳ１２は、以下のステップを含んでよい。
【００４１】
ステップＳ４１：論理スレッドに対応するデータ処理キューの利用率が第１の事前設定閾値より大きいかどうかを判断し、はいの場合、ステップＳ４２を行い、その他の場合、ステップＳ４３を行う。
【００４２】
本開示の例示の実施形態において、ユーザは、第１の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第１の事前設定閾値は８０％である。
【００４３】
ステップＳ４２：論理スレッドは高負荷状態にあると判断する。
【００４４】
本開示の例示の実施形態では、論理スレッドに対応するデータ処理キューの利用率が第１の事前設定閾値より大きい時、論理スレッドは処理されるべき大量のデータを有し、実時間でデータを処理できないことを示し、論理スレッドは高負荷状態にあると判断される。
【００４５】
ステップＳ４３：現在の論理スレッドに対応するデータ処理キューの利用率が第２の事前設定閾値より小さいかどうかを判断し、はいの場合、ステップＳ４４を行い、その他の場合、ステップＳ４５を行う。
【００４６】
本開示の例示の実施形態では、ユーザはまた、第２の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第２の事前設定閾値は２０％である。
【００４７】
ステップＳ４４：論理スレッドは低負荷状態にあると判断する。
【００４８】
本開示の例示の実施形態では、論理スレッドに対応するデータ処理キューの利用率が第２の事前設定閾値より小さい時、論理スレッドはアイドル状態であり、かつ、リソースを浪費していることを示し、論理スレッドは低負荷状態であると判断される。
【００４９】
ステップＳ４５：論理スレッドは通常負荷状態にあると判断する。
【００５０】
本開示の例示の実施形態では、論理スレッドに対応するデータ処理キューの利用率が第２の事前設定閾値以上であり、かつ、第１の事前設定閾値以下である時、論理スレッドは通常にデータを処理してよい、すなわち、論理スレッドはリソースを浪費することなくデータの実時間処理を保証し得ることを示す。よって、論理スレッドは通常負荷状態にあると判断される。
【００５１】
上記から示されるように、本開示の例示の実施形態における方法を使用することによって、論理スレッドの負荷状態が判断されてよく、次いで、コンポーネントによって呼び出されてよい全ての論理スレッドの負荷状態が判断されてよい。
【００５２】
本開示の別の実施可能な例示の実施形態では、図５に示されるように、前述の例示の実施形態全てにおけるステップＳ１３は、以下のステップを含んでよい。
【００５３】
ステップＳ５１：コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ、数える。
【００５４】
ステップＳ５２：高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出し、高負荷確率算出式＝高負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数、及び低負荷確率算出式＝低負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である。
【００５５】
本開示の例示の実施形態において、精度を改善するために、現在のコンポーネントにおける全ての論理スレッドの負荷状態は、事前設定された時間の間隔で収集されてよい。全ての論理スレッドの負荷状態が事前設定された回数収集された後、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数が数えられる。その後、コンポーネントの高負荷確率及び低負荷確率は、以下の算出式を使用することによって算出される：高負荷確率算出式＝高負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数＊事前設定された回数、及び、低負荷確率算出式＝低負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数＊事前設定された回数。
【００５６】
ステップＳ５３：コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも１つが第３の事前設定閾値より大きいかどうかを判断し、はいの場合、ステップＳ５４を行い、その他の場合、ステップＳ５５を行う。
【００５７】
本開示の例示の実施形態では、ユーザは、第３の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第３の事前設定閾値は８０％に設定されてよい。
【００５８】
本開示の例示の実施形態では、ステップＳ５４は、コンポーネントの高負荷確率が第３の事前設定閾値より大きい時に行われてよい、またはステップＳ５４は、コンポーネントの低負荷確率が第３の事前設定閾値より大きい時に行われてよい、またはステップＳ５４は、コンポーネントの高負荷確率及び低負荷確率の両方が第３の事前設定閾値より大きい時に行われてよい。
【００５９】
ステップＳ５４：調節される必要があるコンポーネントの論理スレッドの数を判断する。
【００６０】
ステップＳ５５：調節される必要がないコンポーネントの論理スレッドの数を判断する。
【００６１】
上記から示されるように、本開示の例示の実施形態では、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。
【００６２】
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態の全てにおける論理スレッドは全て、動作プロセスにおいて実行する。図６に示されるように、全ての前述の例示の実施形態における方法は、以下のステップをさらに含んでよい。
【００６３】
ステップＳ６１：コンポーネントに対して追加または削除される必要がある論理スレッドを、調節される必要があるコンポーネントの論理スレッドの数、及び現在の論理スレッドの数に従って、判断する。
【００６４】
本開示の例示の実施形態では、コンポーネントの論理スレッドの数は、前述の方法を使用することによる算出時に３に調節される必要があり、コンポーネントの現在の論理スレッドの数は５であるとする。この場合に、コンポーネントの２つの論理スレッドは現時点で削除される必要があると判断されてよい。
【００６５】
ステップＳ６２：論理スレッドが追加される必要がある場合、論理スレッドが、現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能であるかどうかを判断し、はいの場合、ステップＳ６３を行い、その他の場合、ステップＳ６４を行う。
【００６６】
本開示の例示の実施形態では、現在の論理スレッドに関連付けられた動作プロセスは、現在の論理スレッドが配置されるコンピュータクラスタにおける全ての動作プロセスを含む。
【００６７】
ステップＳ６３：論理スレッドを、現在の論理スレッドに関連付けられた動作プロセスに追加する。
【００６８】
ステップＳ６４：追加される必要がある動作プロセスの数を判断する。
【００６９】
ステップＳ６５：対応する論理スレッドが削除される必要がある場合、論理スレッドを動作プロセスにおいて削除する。
【００７０】
本開示の例示の実施形態では、コンポーネントの全ての論理スレッドは同じレベルにある。従って、本開示の例示の実施形態では、削除される必要がある論理スレッドの数は、コンポーネントの現在の論理スレッドの数と調節後の論理スレッドの数との間の差に従って判断されてよい。この場合に、論理スレッドの対応する数が、現在のコンポーネントから無作為に削除される。
【００７１】
よって、本開示の例示の実施形態では、現在のコンポーネントの論理スレッドが具体的には、追加または削除されてよいことは、明確である。
【００７２】
本開示の別の実施可能な例示の実施形態では、図７に示されるように、前述の例示の実施形態全てにおけるステップＳ６２は以下のステップを含んでよい。
【００７３】
ステップＳ７１：現在の論理スレッドに関連付けられた複数の動作プロセスを判断する。
【００７４】
本開示の例示の実施形態では、上記のように、複数の関連付けられた動作プロセスは、コンポーネントが配置されるコンピュータクラスタにおける全ての動作プロセスを含む。
【００７５】
ステップＳ７２：それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を、事前設定された増加式に従って判断する。この増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数＝（動作プロセスの事前割り当てされた全リソース／論理スレッドを実行するために動作プロセスによって占有されるリソース＊第４の事前設定値−１）＊現在の動作プロセスにおいて実行する論理スレッドの数である。
【００７６】
本開示の例示の実施形態では、動作プロセスの事前割り当てされた全リソースは、動作プロセスに事前割り当てされたＣＰＵリソース、または記憶空間であってよく、論理スレッドを実行するために動作プロセスによって占有されるリソースは、論理スレッドを実行するために動作プロセスによって占有されるＣＰＵリソース、または記憶空間であってよい。
【００７７】
本開示の例示の実施形態では、ユーザは、第３の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第３の事前設定閾値は８０％に設定されてよい。
【００７８】
ステップＳ７３：全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数える。
【００７９】
本開示の例示の実施形態では、現在のコンポーネントが配置されるコンピュータクラスタに３つの動作プロセスがあり、この動作プロセスはそれぞれ、第１の動作プロセス、第２の動作プロセス、及び第３の動作プロセスであるとし、ステップＳ７２において提供される方法を使用することによって、２つの論理スレッドは第１の動作プロセスに追加されることが許容可能であり、３つの論理スレッドは第２の動作プロセスに追加されることが許容可能であり、３つの論理スレッドは第３の動作プロセスに追加されることが許容可能であると判断される。この場合に、コンピュータクラスタ全体に追加されることが許容可能である論理スレッドの総数は、８＝２＋３＋３である。
【００８０】
ステップＳ７４：追加されることが許容可能である論理スレッドの総数はコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断し、はいの場合、ステップＳ７５を行い、その他の場合、ステップＳ７６を行う。
【００８１】
ステップＳ７５：論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であると判断する。
【００８２】
ステップＳ７６：論理スレッドは関連付けられた動作プロセスに追加されることが許容可能でないと判断する。
【００８３】
よって、本開示の例示の実施形態では、現在のコンポーネントに関連付けられた動作プロセスに、現在のコンポーネントに追加される必要がある論理スレッドを追加するどうかが判断されてよい。
【００８４】
本開示のさらに別の実施可能な例示の実施形態では、図８に示されるように、前述の例示の実施形態全てにおけるステップＳ６４は、以下のステップを含んでよい。
【００８５】
ステップＳ８１：事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Ｑを取得する。
【００８６】
本開示の例示の実施形態では、事前設定された負荷閾値は、具体的には、動作プロセスの負荷限度の８０％であってよい。
【００８７】
ステップＳ８２：追加される必要がある動作プロセスの数を、動作プロセス算出式を使用することによって、算出する。動作プロセス算出式は、追加される動作プロセスの数＝（Ｎ−Ｔ）／Ｑ＋１であり、式中、Ｎはコンポーネントに追加される必要がある論理スレッドの数であり、Ｔは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、Ｔ、Ｎ、及びＱは正の整数である。
【００８８】
よって、追加される必要がある動作プロセスの数は、前述の方法を使用することによって判断されてよい。
【００８９】
本開示のさらに別の実施可能な例示の実施形態では、第１のコンポーネント及び第２のコンポーネントがデータを送信する時、前述の例示の実施形態全てにおける方法は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第１の論理スレッド、及び下流コンポーネントによって呼び出し可能な第２の論理スレッドを判断することと、
現在のコンポーネントによって呼び出し可能な第３の論理スレッドと、第１の論理スレッドとの間の通信接続、及び、第３の論理スレッドと第２の論理スレッドとの間の通信接続を確立することと、をさらに含んでよい。
【００９０】
上記のように、コンポーネントは、上流コンポーネント及び下流コンポーネントを含んでよい。それぞれのコンポーネントによって呼び出されてよい論理スレッドの数は、本開示の例示の実施形態における方法を使用することによって変動する。上流コンポーネントと下流コンポーネントとの間の論理スレッドの通常のデータ送信は、本開示に開示される方法を使用することによって判断されてよい。
【００９１】
本開示のさらに別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける方法は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断することと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除することと、をさらに含んでよい。
【００９２】
本開示の例示の実施形態では、論理スレッドを削除する動作が行われる時、動作プロセスに論理スレッドをなくならせるようにしてよい。この場合、動作プロセスはいずれのタスクも実行しない。動作プロセスによって占有されるリソースは本開示に開示される方法を使用することによって時間的に解放されてよい。
【００９３】
上記の方法の例示の実施形態の説明から、本開示は、ソフトウェアと必要な汎用ハードウェアプラットフォームとを併せることによって実装されてよく、また間違いなく、ハードウェアによって実装されてもよいことを当業者は明確に理解し得る。しかしながら、ほとんどの状況下で前者が好ましい実施態様である。このような理解に基づいて、本質的にまたは部分的に従来の技術に貢献する本開示の技術的解決策はソフトウェア製品の形態で具現化されてよい。コンピュータソフトウェア製品は、記憶媒体に記憶されてよく、本開示の例示の実施形態に説明される方法のステップの全てまたは一部を行うように（パーソナルコンピュータ、サーバ、ネットワークデバイスなどであってよい）コンピュータデバイスに命令するためのいくつかの命令を含む。前述の記憶媒体は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク、または光学ディスクなど、プログラムコードを記憶し得る任意の媒体を含む。
【００９４】
本開示において提供されるコンポーネント論理スレッドの数を調節するための方法の例示の実施形態に対応して、本開示は、コンポーネント論理スレッドの数を調節するための装置をさらに提供する。図９に示されるように、装置は、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得するように構成された取得モジュール９１と、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するように構成された第１の判断モジュール９２であって、負荷状態は通常負荷状態及び異常負荷状態を含む、第１の判断モジュール９２と、
コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断するように構成された第１の判定モジュール９３と、
コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節するように構成された調節モジュール９４と、を含む。
【００９５】
本開示の例示の実施形態では、調節モジュール９４の機能は、具体的には、調節ユニットによって実施されてよい。調節ユニットは、コンポーネントの現在の論理スレッドの数＊１秒当たりに送出装置によって送られるデータのデータ量／１秒当たりにコンポーネントによって受信されるデータのデータ量となるように、コンポーネントの論理スレッドの数を調節するように構成され、送出装置はデータをコンポーネントに送る装置である。
【００９６】
上記の技術的解決策から示されるように、本開示の例示の実施形態では、最初に、それぞれの論理スレッドの負荷状態はそれぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断され、負荷状態は通常負荷状態及び異常負荷状態を含む。次いで、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。最後に、コンポーネントの論理スレッドの数が調節される必要がある場合、コンポーネントの論理スレッドの数は判断結果に従って調節される。本開示の例示の実施形態では、コンポーネントによって呼び出されてよい論理スレッドの数は、論理スレッドの負荷状態に従って調節されてよく、それによって、コンポーネントによって呼び出されてよい論理スレッドが過大または不十分にならないようにするため、データの実時間処理を保証しながらも論理スレッドリソースの利用率を改善する。
【００９７】
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける異常負荷状態は高負荷状態及び低負荷状態を含み、利用率は、メッセージキューに記憶されるデータによって占有される空間／メッセージキューの事前割り当てされた記憶空間に等しく、判断モジュールは、
論理スレッドに対応するデータ処理キューの利用率が第１の事前設定閾値より大きいかどうかを判断するように構成された第１の判定ユニットと、
利用率が第１の事前設定閾値より大きい場合、論理スレッドが高負荷状態にあると判断するように構成された高負荷状態判断ユニットと、
現在の論理スレッドに対応するデータ処理キューの利用率が、第１の事前設定閾値より大きくない場合、該利用率が第２の事前設定閾値より小さいかどうかを判断するように構成された第２の判定ユニットと、
利用率が第２の事前設定閾値より小さい場合、論理スレッドが低負荷状態にあると判断するように構成された低負荷状態判断ユニットと、を含む。
【００９８】
よって、本開示の例示の実施形態において、論理スレッドの負荷状態が判断されてよいことは、明確である。
【００９９】
本開示のさらに別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける判定モジュールは、
コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ数えるように構成された第１の計数ユニットと、
高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出するように構成された第１の算出ユニットであって、高負荷確率算出式＝高負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数であり、低負荷確率算出式＝低負荷状態の論理スレッドの数／現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である、第１の算出ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも１つは第３の事前設定閾値より大きいかどうかを判断するように構成された第３の判定ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも１つが第３の事前設定閾値より大きい場合、コンポーネントの論理スレッドの数が調節される必要があることを判断するように構成された第１の判断ユニットと、を含む。
【０１００】
よって、本開示の例示の実施形態において、コンポーネントの論理スレッドの数は調節される必要があるかどうかが判断されてよいことは、明確である。
【０１０１】
本開示のさらに別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける装置は、
コンポーネントが調節後に有する必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドがコンポーネントに対して追加または削除される必要があるかどうかを判断するように構成された第２の判断モジュールと、
論理スレッドが追加される必要がある場合、現在の論理スレッドに関連付けられた動作プロセスにおいて論理スレッドは追加されることが許容可能であるかどうかを判断するように構成された第２の判定モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能である場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドを追加するように構成された追加モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加できない場合、追加される必要がある動作プロセスの数を判断するように構成された第３の判断モジュールと、
対応する論理スレッドが削除される必要がある場合、動作プロセスにおいて論理スレッドを削除するように構成された削除モジュールと、をさらに含んでよい。
【０１０２】
よって、本開示の例示の実施形態において、論理スレッドが追加または削除されることが許容可能であることは、明確である。
【０１０３】
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける第２の判定モジュールは、
現在の論理スレッドに関連付けられた複数の動作プロセスを判断するように構成された第２の判断ユニットと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断するように構成された第３の判断ユニットであって、増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数＝（動作プロセスの事前割り当てされた全リソース／論理スレッドを実行するために動作プロセスによって占有されるリソース＊第４の事前設定値−１）＊現在の動作プロセスにおいて実行する論理スレッドの数である、第３の判断ユニットと、
全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えるように構成された第２の計数ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断するように構成された第４の判定ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上である場合、論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であると判断するように構成された第３の判断ユニットと、を含む。
【０１０４】
よって、本開示の例示の実施形態において、論理スレッドが関連付けられた動作プロセスに追加されることが許容可能であるかどうかが判断されてよいことは、明確である。
【０１０５】
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける第３の判断ユニットは、
事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Ｑを取得するように構成された取得サブユニットと、
動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出するように構成された算出サブユニットであって、動作プロセス算出式は、追加される動作プロセスの数＝（Ｎ−Ｔ）／Ｑ＋１であり、式中、Ｎはコンポーネントに追加される必要がある論理スレッドの数であり、Ｔは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、Ｔ、Ｎ、及びＱは正の整数である、算出サブユニットと、を含む。
【０１０６】
よって、本開示の例示の実施形態では、新しく追加された動作プロセスの数が判断されてよいことは、明確である。
【０１０７】
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける装置は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第１の論理スレッド、及び下流コンポーネントによって呼び出し可能な第２の論理スレッドを判断するように構成された第４の判断モジュールと、
現在のコンポーネントによって呼び出し可能な第３の論理スレッドと、第１の論理スレッドとの間の通信接続、及び、第３の論理スレッドと第２の論理スレッドとの間の通信接続を確立するように構成された確立モジュールと、をさらに含む。
【０１０８】
よって、本開示の例示の実施形態では、上流コンポーネントと下流コンポーネントとの間の通常の通信が保証され得ることは、明確である。
【０１０９】
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける装置は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断するように構成された第３の判定モジュールと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除するように構成された削除モジュールと、をさらに含む。
【０１１０】
よって、本開示の例示の実施形態では、空き動作プロセスが削除されてよいことは、明確である。
【０１１１】
「第１」及び「第２」などの関連用語は、単に、一つの実体または動作を他の実体または動作と区別するために使用されており、必ずしもこのような実体または動作の間の実際の関係または順序を必要とする、また暗示するものではないことは、留意されるべきである。さらに、「ｉｎｃｌｕｄｅ（含む）」、「ｃｏｍｐｒｉｓｅ（備える）」、またはこれらの他の変形の用語は、非排他的な包含を対象として含むことを意図し、一連の要素を含むプロセス、方法、物品、またはデバイスは、要素を含むだけでなく、明確に列挙されていない他の要素も含む、または、プロセス、方法、物品、またはデバイスの固有の要素をさらに含む。さらなる限定がなく、「〜を含む（ｉｎｃｌｕｄｉｎｇ  ａ／ａｎ）」によって定義される要素は、その要素を含むプロセス、方法、物品、またはデバイスが他の同一の要素をさらに有することを除外するものではない。
【０１１２】
上記の説明は、当業者が本開示を理解または実施可能とする、単なる本開示の特定的な実施態様である。例示の実施形態に対するさまざまな修正は当業者には明白であろう。本文で定義される一般的な原理は、本開示の趣旨または範囲を逸脱することなく、他の例示の実施形態において実装されてよい。従って、本開示は、本文に示される例示の実施形態に限定されることはなく、本文に開示される原理及び新規性と一致する最も広い範囲に従うものになる。
【図１】
2019500700.tif 000003
【図２】
2019500700.tif 000004
【図３】
2019500700.tif 000005
【図４】
2019500700.tif 000006
【図５】
2019500700.tif 000007
【図６】
2019500700.tif 000008
【図７】
2019500700.tif 000009
【図８】
2019500700.tif 000010
【図９】
2019500700.tif 000011
【国際調査報告】
2019500700.tif 000012
2019500700.tif 000013
2019500700.tif 000014
2019500700.tif 000015