(57)【特許請求の範囲】
【請求項１】
少なくとも構成情報に基づいて、分散データストレージ・処理システム（ＤＤＳＰＳ）についての構成を決定し、
前記ＤＤＳＰＳのベースライン構成に基づいて、前記ＤＤＳＰＳの前記構成を調整し、
前記ＤＤＳＰＳの通常動作から得られるサンプル情報を決定し、
前記サンプル情報に基づいて訓練された機械学習モデルを用いて前記ＤＤＳＰＳの性能モデルを生成し、前記性能モデルが前記ＤＤＳＰＳの性能を予測するための数学モデルを含んでおり、
前記ＤＤＳＰＳの通常動作中に、前記性能モデルを用いて、前記ＤＤＳＰＳの構成の変更が前記ＤＤＳＰＳの性能を向上させることが予測されるかを判断し、
前記構成の変更が前記ＤＤＳＰＳの性能を向上させることが予測される場合に、前記ＤＤＳＰＳの通常動作中に、前記ＤＤＳＰＳに前記構成の変更を実装する
よう構成されたチューナモジュールを少なくとも備える、デバイス。
【請求項２】
前記サンプル情報は、前記サンプル情報が前記ＤＤＳＰＳの通常動作を反映するように、直接検索アルゴリズムを用いて取得される
請求項１に記載のデバイス。
【請求項３】
前記チューナモジュールは、
ソフトウェアコンポーネント
を備え、
前記デバイスは、
前記デバイス中のメモリ内に格納されたプログラムコードを実行するよう構成された少なくとも１つのプロセッサ
をさらに備え、
前記プログラムコードの前記実行が、前記ソフトウェアコンポーネントを生成する
請求項１又は２に記載のデバイス。
【請求項４】
前記チューナモジュールは、前記ＤＤＳＰＳについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定するよう構成されている、
請求項１から３のいずれか一項に記載のデバイス。
【請求項５】
前記チューナモジュールは、ネットワーク構成、システム構成、又は、前記ＤＤＳＰＳ内の少なくとも１つのデバイスの構成のうちの少なくとも１つを調整するよう構成されている、
請求項１から４のいずれか一項に記載のデバイス。
【請求項６】
前記ＤＤＳＰＳは、少なくとも１つのＨａｄｏｏｐクラスタを備え、
前記チューナモジュールは、
前記デバイスで利用可能な、前記少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されている、
請求項１から５のいずれか一項に記載のデバイス。
【請求項７】
前記サンプル情報は、１つ又は複数のサンプルを備え、
各サンプルは、
前記少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、前記ワークロードに対応するジョブログ、及び前記ワークロードに対応するリソース使用情報を少なくとも含む、
請求項６に記載のデバイス。
【請求項８】
前記チューナモジュールは、前記性能モデルを用いて複数の構成を構成空間にわたって検索することによってシステム性能を最適化するよう構成されている、
請求項１から７のいずれか一項に記載のデバイス。
【請求項９】
前記チューナモジュールは、提示された前記構成の変更を含むサマリを提供するよう構成されている、
請求項１から８のいずれか一項に記載のデバイス。
【請求項１０】
少なくとも構成情報に基づいて、分散データストレージ・処理システム（ＤＤＳＰＳ）についての構成を決定する段階と、
前記ＤＤＳＰＳのベースライン構成に基づいて、前記ＤＤＳＰＳの前記構成を調整する段階と、
前記ＤＤＳＰＳの通常動作から得られるサンプル情報を決定する段階と、
前記サンプル情報に基づいて訓練された機械学習モデルを用いて前記ＤＤＳＰＳの性能モデルを生成する段階であって、前記性能モデルが前記ＤＤＳＰＳの性能を予測するための数学モデルを含んでいる、段階と、
前記ＤＤＳＰＳの通常動作中に、前記性能モデルを用いて、前記ＤＤＳＰＳの構成の変更が前記ＤＤＳＰＳの性能を向上させることが予測されるかを判断する段階と、
前記構成の変更が前記ＤＤＳＰＳの性能を向上させることが予測される場合に、前記ＤＤＳＰＳの通常動作中に、前記ＤＤＳＰＳに前記構成の変更を実装する段階と
を備える方法。
【請求項１１】
前記ＤＤＳＰＳの通常動作から得られるサンプル情報を決定する段階は、
前記サンプル情報が前記ＤＤＳＰＳの通常動作を反映するように、前記サンプル情報を直接検索アルゴリズムを用いて取得する段階
を備える、請求項１０に記載の方法。
【請求項１２】
前記ＤＤＳＰＳについての前記構成を決定する段階は、
前記ＤＤＳＰＳについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定する段階
を備える、請求項１０又は１１に記載の方法。
【請求項１３】
前記ＤＤＳＰＳの前記構成を調整する段階は、
ネットワーク構成、システム構成、又は、前記ＤＤＳＰＳ内の少なくとも１つのデバイスの構成のうちの少なくとも１つを調整する段階
を備える、請求項１０から１２のいずれか一項に記載の方法。
【請求項１４】
前記ＤＤＳＰＳは、少なくとも１つのＨａｄｏｏｐクラスタを備え、
サンプル情報を決定する段階は、
前記少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階
を備える、請求項１０から１３のいずれか一項に記載の方法。
【請求項１５】
前記サンプル情報は、１つ又は複数のサンプルを備え、
各サンプルは、
前記少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、前記ワークロードに対応するジョブログ、及び前記ワークロードに対応するリソース使用情報を少なくとも含む、
請求項１４に記載の方法。
【請求項１６】
前記性能モデルを用いて複数の構成を構成空間にわたって検索することによってシステム性能を最適化する段階
をさらに備える、請求項１０から１５のいずれか一項に記載の方法。
【請求項１７】
提示された前記構成の変更を含むサマリを提供する段階
をさらに備える、請求項１０から１６のいずれか一項に記載の方法。
【請求項１８】
システムであって、
少なくともチューナモジュールを備えるデバイスを含み、
前記システムは、請求項１０から１７のいずれか一項に記載の前記方法を実行するよう設けられたシステム。
【請求項１９】
請求項１０から１７のいずれか一項に記載の前記方法を実行するよう設けられるチップセット。
【請求項２０】
請求項１０から１７のいずれか一項に記載の前記方法をコンピュータに実行させるためのプログラム。
【請求項２１】
請求項２０に記載の前記プログラムを格納するコンピュータ可読記録媒体。
【請求項２２】
請求項１０から１７のいずれか一項に記載の前記方法を実行するよう設けられたＤＤＳＰＳをチューニングするよう構成されたデバイス。
【請求項２３】
請求項１０から１７のいずれか一項に記載の前記方法を実行する手段を持つデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、分散システムの最適化、より具体的には、分散データストレージ・処理システムの構成をチューニングするための複数のシステムに関する。
【背景技術】
【０００２】
現代社会のバーチャル化（例えば、インターネットを通じて実行される個人及びビジネスのインタラクションの両方についての増大傾向）は、全面的なオンラインインタラクションから生成される大量の情報を管理する方法において少なくとも１つの課題を生んだ。増大する複数のオンライン企業をサポートするために必要なストレージスペース及び／又は処理の複数の要件は、単一の装置（例えば、サーバ）の複数の能力をほぼ直ちに超え得るので、情報を管理するためにサーバのグループが必要となり得る。より大きい企業は、多くのサーバラックを用い得る。各サーバラックは、全て企業データを格納及び処理することが課された複数のサーバを備える。その結果、連携されるべきサーバの数は、かなり多くなり得る。
【０００３】
複数の解決策は時には他の複数の問題を生むので、情報が速やかに処理され、安全に格納され得ることを確実にすることを支援すべく、多数のサーバを管理するための方法が考えられなければならない。多数のサーバを管理するために使用され得る存在する解決策の少なくとも１つの例は、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎによって提供されるＨａｄｏｏｐソフトウェアライブラリである。Ｈａｄｏｏｐは、複数のクラスタ（例えば、複数のコンピュータのグループ）にわたる大量の情報の分散処理を可能にするフレームワークを提供する。例えば、Ｈａｄｏｏｐは、複数のタスクを、当該タスクを処理するのに適した（例えば、当該タスクを完了するために必要な情報を備える）複数のサーバに割り当てるよう構成されてよい。また、Ｈａｄｏｏｐは、サーバ又はさらにはラックが失われることが情報へのアクセスが失われることを意味しないことを保証するために、情報の複数のコピーを管理してよい。Ｈａｄｏｏｐ及び他の類似の複数の管理ソリューションは、分散データストレージ・処理システムの効率を最大化するそれらの能力において大きな潜在能力を持ち得るものの、それらの潜在能力は、正確な構成を通じてのみ実現されることができる。現在、構成は、システムアーキテクチャの知識を持つ複数のオペレータによる頻繁なシステム「調整」の処理を通じて、手動で実行されなければならない。
【図面の簡単な説明】
【０００４】
請求された主題の様々な実施形態の複数の特徴及び複数の利点が、以下の詳細な説明が進むにつれて、及び、複数の図面を参照することで、明らかになるだろう。ここで、同様の数字は同様の部分を示す。
【図１】本開示の少なくとも１つの実施形態に係るチューナモジュールを含む分散データストレージ・処理システムの例を示す。
【図２】本開示の少なくとも１つの実施形態に係る、チューナモジュールが存在し得るデバイスについての構成の例を示す。
【図３】本開示の少なくとも１つの実施形態に係る、分散データストレージ・処理システムをチューニングするための複数の動作の例のフローチャートを示す。
【図４】図３に関して以前に開示された複数の動作の例において使用され得る情報、及び／又は、図３に関して以前に開示された複数の動作の例の間に実行され得る複数のタスクの複数の例を示す。  以下の詳細な説明が、例示の実施形態を参照しながら行われ、多くの変更例、変形例、及び代替例が当業者には明らかであろう。
【発明を実施するための形態】
【０００５】
この開示は、分散データストレージ・処理システムのためのチューニングに関する複数のシステム及び複数の方法を説明する。最初に、用語「情報」及び「データ」は、この開示を通じて交換可能に使用されている。「分散データストレージ・処理システム」（ＤＤＳＰＳ）は、本明細書中で参照されるように、１つ又は複数のネットワークによって接続された複数のデバイスを備えてよい。複数のデバイスは、データの格納又はデータの処理の少なくとも１つをするよう構成される。複数のデバイスは、複数の特定の状況において、ジョブ（例えば、単一のデータコンシューマ）のためにデータを処理及び／又は格納するよう共同して動作してよい。例えば、複数のデバイスは、複数の処理リソース（例えば、１つ又は複数のプロセッサ）及び複数のストレージリソース（例えば、電子機械式又はソリッドステート記憶デバイス）を備える複数のコンピューティングデバイス（例えば、複数のサーバ）を備えてよい。典型的にはＨａｄｏｏｐに関連付けられる複数の構造、用語等が、本明細書中で説明のために参照され得るものの、開示された様々な実施形態がＨａｄｏｏｐを用いるＤＤＳＰＳのみの実装に限定されることを意図していない。それどころか、複数の実施形態は、本開示に整合性のある機能を可能にするあらゆるＤＤＳＰＳ管理システムで実装されてよい。
【０００６】
一実施形態では、デバイスは、チューナモジュールを備えてよい。チューナモジュールは、例えば、部分的又は全体的にデバイス内で実行可能なソフトウェアとして具現されてよい。概して、チューナモジュールは、最終的にＤＤＳＰＳについて推奨構成に導く複数の機能を実行するよう構成されてよい。例えば、チューナモジュールは、構成情報に少なくとも基づいてＤＤＳＰＳ構成を決定し、その後、ベースライン構成に基づいてＤＤＳＰＳ構成を調整するよう構成されてよい。チューナモジュールは、その後に、実際のＤＤＳＰＳ動作から得られたＤＤＳＰＳについてのサンプル情報を決定し、ＤＤＳＰＳの性能モデルの生成にサンプル情報を使用するようさらに構成されてよい。チューナモジュールは、その後、性能モデルに基づいてシステムに対する複数の構成変更を評価し、評価に基づいて推奨構成を決定するようさらに構成されてよい。
【０００７】
ＤＤＳＰＳに対する構成を決定することは、例えば、システムプロビジョニング構成及びシステムパラメータ構成を決定することを備えてよい。Ｈａｄｏｏｐ  ＤＤＳＰ（例えば、少なくとも１つのＨａｄｏｏｐクラスタを持つＤＤＳＰＳ）では、ＨＤＳＰＳ構成は、Ｈａｄｏｏｐ分散ファイルシステム（ＨＤＦＳ）及びＨａｄｏｏｐ  ＭａｐＲｅｄｕｃｅエンジンの複数の設定ファイルに基づいて決定されてよい。ＤＤＳＰＳ構成を調整することは、例えばネットワーク構成、システム構成又はＤＤＳＰＳ内の少なくとも１つデバイスの構成を調整することを備えてよい。Ｈａｄｏｏｐ  ＤＤＳＰ上で動作する場合、チューナモジュールは、１つ又は複数のサンプルを決定するよう構成されてよい。１つ又は複数のサンプルの各々は、Ｈａｄｏｏｐクラスタ内でワークロードを動作させるための構成、ワークロードに対応するジョブログ及びワークロードに対応するリソース使用情報を少なくとも含んでよい。ＤＤＳＰＳに対して性能モデルを生成することは、１つ又は複数のサンプルに基づくＤＤＳＰＳの数学モデルを構築するよう構成されたチューナモジュールを備えてよい。数学モデルは、システム性能及び複数のシステム依存性の少なくとも１つを記述する。
【０００８】
チューナモジュールは、その後、性能モデルを評価するよう構成されてよい。例えば、チューナモジュールは、構成空間を検索すること及び可能な性能モデルを用いて複数の構成を評価することによって、推奨構成を決定するようさらに構成されてよい。一実施形態では、推奨構成を決定すると、チューナモジュールはまた、推奨構成がＤＤＳＰＳ内に実装されるようにするよう構成されてよい。同一又は異なる実施形態において、チューナモジュールはまた、ＤＤＳＰＳの構成を変更するのに必要な複数の提示された変更を含むサマリを推奨構成内に提供するよう構成されてよい。
【０００９】
図１は、本開示の少なくとも１つの実施形態に係るチューナモジュール１１４を含むＤＤＳＰＳ１００の例を示す。Ｈａｄｏｏｐアーキテクチャに一般に関連付けられた用語を用いて、ＤＤＳＰＳ１００は、例えば、マスタ１０２及びＨＤＦＳクラスタ１０４を備えてよい。マスタは、例えば、ジョブトラッカ１０６、ネームノード１０８及びチューナモジュール１１４を含んでよい。各クラスタ１...ｎは、例えば、複数のワーカＡ...ｎを含んでよい。各ワーカは、対応するタスクトラッカ１１０Ａ...ｎ及びデータノード１１２Ａ...ｎを含む。システム１００を可視化するために使用可能な物理レイアウトの例は、クラスタ１０４が、１つ又は複数のサーバラックと、１つ又は複数のサーバラック内の複数のコンピューティングデバイス（例えば、複数のサーバ）に対応するワーカＡ...ｎとを備えてよい。
【００１０】
マスタ１０２は、クラスタ１０４の構成を管理するよう、また、クラスタ１０４内のワーカＡ...ｎに複数のタスクを分散するよう構成されてよい。Ｈａｄｏｏｐにおいて、クラスタ１...ｎ内のワーカＡ...ｎへの複数のタスクの分散はＨａｄｏｏｐ  ＭａｐＲｅｄｕｃｅエンジン又はジョブトラッカ１０６によって決定され得るものの、クラスタ１０４のデータ管理は、ＨＤＦＳによって実行されてよい。ＨＤＦＳは、各ワーカＡ...ｎに格納された情報を監視するよう構成されてよい。例えば、データノード１１２Ａ...ｎの情報コンテンツを記述するメタデータは、ワーカＡ...ｎ内のデータノード１１２Ａ...ｎから、マスタ１０２内のネームノード１０８に通知され得る。この情報を有することで、ＨＤＦＳは、データが存在する場所を認識し得るだけでなく、また、サーバ／ラックが機能停止している間に継続的なデータアクセスを保証することを支援するためにデータの複製も管理し得る。例えば、ＨＤＦＳは、サーバラックが（例えば、不具合、メンテナンス等によって）停止した場合に引き続きＤＤＳＰＳ１００内でデータを利用可能であることを保証するために、同一データの複数のコピーが同一サーバラック内に存在しないようにしてよい。ワーカＡ...ｎの位置及び構成はまた、複数のタスクをワーカＡ...ｎに割り当てるためにＭａｐＲｅｄｕｃｅエンジンによって使用されてよい。ＭａｐＲｅｄｕｃｅは、複数のジョブを、処理するためにワーカＡ...ｎに分散され得る複数のより小さいタスクに分割するよう構成されてよい。各タスクが完了すると、ワーカＡ...ｎは、各タスクの複数の結果をマスタに返却してよい。ここで、複数の結果は、ジョブについて複数の結果にまとめられてよい。例えば、ジョブトラッカ１０６は、システム１００によって実行される複数のジョブをスケジュールするよう、及び、データ位置を認識してタスクトラッカ１１０Ａ...ｎのために複数のジョブを複数のタスクに分割するよう構成されてよい。例えば、データノード（例えば、データノード１１２Ｂ）内に格納されているデータを要求するタスクについての処理は、対応するサーバ（例えば、ワーカＢ）に割り当てられてよい。このことは、ワーカＡ...ｎの間の不要な複数のデータ転送を排除することによってネットワークトラフィックを削減し得る。
【００１１】
チューナモジュール１１４は、ＤＤＳＰＳ１００から受信した構成情報の組み合わせ及びＤＤＳＰＳ１００の実際の動作に基づくモデルに基づいてＤＤＳＰＳ１００の構成をチューニングするよう構成されてよい。例えば、チューナモジュール１１４は、ＤＤＳＰＳ１００についての複数の設定ファイルにアクセスすることを可能にするためにマスタ内にインストールされてよい。ＤＤＳＰＳ１００を管理するためにＡｐａｃｈｅ  Ｈａｄｏｏｐが用いられるある例において、複数のＨＤＦＳ設定ファイル及び少なくともジョブトラッカ１０６は、チューナモジュール１１４にアクセス可能であってよい。選択肢として、チューナモジュール１１４はさらに、ジョブトラッカ１０６及びネームノード１０８の両方と連携するよう構成されてよい。ネームノード１０８との選択肢としての連携は、例えば、ＤＤＳＰＳ１００について推奨構成を決定するためにチューナモジュール１１４によって必要とされる情報、推奨構成の実装態様（例えば、手動又は自動）等に依存してよい。
【００１２】
図２は、本開示の少なくとも１つの実施形態に係る、チューナモジュール１１４が存在し得るデバイスについての構成の例を示す。一般的に言うと、デバイス２００は、ＤＤＳＰＳ１００のための管理ソフトウェア（例えば、Ａｐａｃｈｅ  Ｈａｄｏｏｐ）に加えてチューナモジュール１１４を実行するための適切な複数のリソース（例えば、処理能力及びメモリ）を持つあらゆるコンピューティングデバイスであってよい。複数のデバイスの例は、複数のタブレットコンピュータ、複数のラップトップコンピュータ、複数のデスクトップ型コンピュータ、複数のサーバ等を含んでよい。ＤＤＳＰＳ１００のマスタは、例えば大規模なＤＤＳＰＳ１００を制御するために必要な複数のリソースのために複数のデバイスで構成されてよいものの、チューナモジュール１１４は、装置の１つのみに存在してよい。Ｈａｄｏｏｐが採用される場合、少なくとも複数のＨＤＦＳ設定ファイル、複数のＭａｐＲｅｄｕｃｅ設定ファイル、及びジョブトラッカ１０６がインストールされるのは同一のデバイスであってよい。デバイス２００は、例えば、デバイス２００における複数の動作を管理するよう構成され得るシステムモジュール２０２を備えてよい。システムモジュール２０２は、例えば、処理モジュール２０４、メモリモジュール２０６、電力モジュール２０８、ユーザインタフェースモジュール２１０、及び、通信モジュール２１４と連携するよう構成されてよい通信インタフェースモジュール２１２を含んでよい。示される実施形態において、チューナモジュール１１４は、メモリモジュール２０６内に存在するソフトウェアで主として構成されるものとして表されている。しかしながら、本明細書中で開示される様々な実施形態は、この実装のみに限定されず、チューナモジュール１１４がハードウェア及びソフトウェアの両方の要素を備える複数の実装を含んでよい。さらに、システムモジュール２００外に示される通信モジュール２１４は、単に本明細書中の説明のために過ぎない。通信モジュール２１４に関連付けられた機能のいくつか又は全てはまた、システムモジュール２０２に組み込まれてよい。
【００１３】
デバイス２００において、処理モジュール２０４は、別個のコンポーネントに位置する１つ又は複数のプロセッサを備えてよく、又は代替的に、単一のコンポーネント内（例えば、システムオンチップ（ＳＯＣ）構成内）に具現された１つ又は複数の処理コア及びあらゆるプロセッサ関連補助回路（例えば、複数のブリッジインタフェース等）を備えてよい。複数のプロセッサの例は、インテル社から入手可能な、Ｐｅｎｔｉｕｍ（登録商標），  Ｘｅｏｎ，  Ｉｔａｎｉｕｍ，  Ｃｅｌｅｒｏｎ，  Ａｔｏｍ，  Ｃｏｒｅ  ｉシリーズの製品ファミリーのマイクロプロセッサを含む、ｘ８６ベースの様々なマイクロプロセッサを含んでよい。補助回路の複数の例は、処理モジュール２０４が、デバイス２００において異なるスピードで動作、異なるバス上で動作等してよい他の複数のシステムコンポーネントと連携し得るインタフェースを提供するよう構成された複数のチップセット（例えば、インテル社から入手可能なノースブリッジ、サウスブリッジ等）を含んでよい。補助回路に一般に関連付けられた機能のいくつか又は全てはまた、プロセッサと同一の物理パッケージ（例えば、インテル社から入手可能なＳａｎｄｙ  Ｂｒｉｄｇｅ集積回路のようなＳＯＣパッケージ）に含まれてよい。一実施形態では、処理モジュール２０４は、単一のハードウェアプラットフォームで複数の仮想マシン（ＶＭ）の実行を可能にする仮想化技術（例えば、インテル社から入手可能ないくつかのプロセッサ及びチップセットで利用可能なＶＴ−ｘテクノロジ）が装備されてよい。例えば、ＶＴ−ｘテクノロジはまた、ハードウェア強化されたｍｅａｓｕｒｅｄ  ｌａｕｎｃｈ  ｅｎｖｉｒｏｎｍｅｎｔ（ＭＬＥ）とともにソフトウェアベースの保護を強化するよう構成されたトラステッド・エグゼキューション・テクノロジ（ＴＸＴ）を実装しよい。
【００１４】
処理モジュール２０４は、デバイス２００内で複数の命令を実行するよう構成されてよい。複数の命令は、データ読み出し、データ書き込み、データ処理、データ形成、データ転換、データ変換等に関連する複数のアクティビティを処理モジュール２０４に実行させるよう構成されたプログラムコードを含んでよい。情報（例えば、複数の命令、データ等）は、メモリモジュール２０６内に格納されてよい。メモリモジュール２０６は、固定又はリムーバブル式のランダムアクセスメモリ（ＲＡＭ）又はリードオンリメモリ（ＲＯＭ）を備えてよい。ＲＡＭは、デバイス２００の動作中に情報を保持するよう構成された、例えばスタティックＲＡＭ（ＳＲＡＭ）又はダイナミックＲＡＭ（ＤＲＡＭ）などのメモリを含んでよい。ＲＯＭは、デバイス２００が稼働するときに複数の命令を提供するよう構成されたＢＩＯＳメモリ、複数の電子的プログラマブルＲＯＭ（複数のＥＰＲＯＭ）などの複数のプログラマブルメモリ、フラッシュ等のような、複数のメモリを含んでよい。他の固定及び／又はリムーバブルメモリは、例えば複数のフロッピー（登録商標）ディスク、複数のハードドライブ等のような複数の磁気メモリ、ソリッドステートフラッシュメモリ（例えば、ｅｍｂｅｄｄｅｄ  ｍｕｌｔｉｍｅｄｉａ  ｃａｒｄ（ｅＭＭＣ）等）などの複数の電子メモリ、複数のリムーバブルメモリカード又はスティック（例えば、マイクロストレージデバイス（ｕＳＤ）、ＵＳＢ等）、コンパクトディスクベースＲＯＭ（ＣＤ−ＲＯＭ）などの複数の光学メモリ等を含んでよい。電力モジュール２０８は、複数の内部電源（例えば、バッテリ）及び／又は複数の外部電源（例えば、電子機械式又は太陽発電、電力グリッド等）、並びに、動作するために必要な電力をデバイス２００に供給するよう構成された関連回路含んでよい。
【００１５】
ユーザインタフェースモジュール２１０は、複数のユーザが、例えば様々な入力機構（例えば複数のマイクロフォン、複数のスイッチ、複数のボタン、複数のノブ、複数のキーボード、複数のスピーカ、複数の接触感知表面、複数の画像を取得する、及び／又は、近接度、距離、動き、複数のジェスチャーを検知するよう構成されている１つ又は複数のセンサ等）、及び、出力機構（例えば、複数のスピーカ、複数のディスプレイ、複数の光／フラッシュインジケータ、振動、動きのための複数の電気機械コンポーネント等）などのデバイス２００と連携することを可能にするよう構成されている回路を含んでよい。通信インタフェースモジュール２１２は、有線及び／又は無線通信をサポートするよう構成された複数のリソースを含み得る通信モジュール２１４のためにパケットルーティング及び他の複数の制御機能を処理するよう構成されてよい。複数の有線通信は、例えばイーサネット（登録商標）、ユニバーサルシリアルバス（ＵＳＢ）、ファイアワイア、デジタルビジュアルインタフェース（ＤＶＩ）、高精細度マルチメディアインタフェース（ＨＤＭＩ（登録商標））等のようなシリアル及びパラレルの有線媒体を含んでよい。複数の無線通信は、例えば、複数の近接近無線媒体（例えば、近距離通信（ＮＦＣ）規格に基づくなどの無線周波数（ＲＦ）、赤外（ＩＲ）、光学文字認識（ＯＣＲ）、磁気文字検出等）、複数の近距離無線媒体（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷＬＡＮ、Ｗｉ−Ｆｉ等）、及び長距離無線媒体（例えば、セルラー、衛星等）を含んでよい。一実施形態では、通信インタフェースモジュール２１２は、通信モジュール２１４においてアクティブな複数の無線通信が互いに干渉することを防ぐよう構成されてよい。この機能の実行において、通信インタフェースモジュール２１２は、例えば送信を待つ複数のメッセージの相対的な優先順位に基づいて、通信モジュール２１４についての複数のアクティビティをスケジュールしてよい。
【００１６】
動作中の間、チューナモジュール１１４は、デバイス２００に関して上述したモジュールのいくつか又は全てと連携してよい。例えば、チューナモジュール１１４は、いくつかの例において、ＤＤＳＰＳ１００内の他の複数のデバイスとの通信に通信モジュール２１４を用いてよい。ＤＤＳＰＳ１００内の他の複数のデバイスとの通信は、例えば、ＤＤＳＰＳ１００についての構成情報を取得するため、ＤＤＳＰＳ１００におけるプロビジョニングを決定するため、ＤＤＳＰＳ１００についての推奨構成を実装するため等に行われてよい。一実施形態では、チューナモジュール１１４はまた、例えばＤＤＳＰＳ１００に推奨構成を実装するために必要な複数の変更を集約するために、ユーザインタフェースモジュール２１０と連携するよう構成されてよい。
【００１７】
図３は、本開示の少なくとも１つの実施形態に係る、ＤＤＳＰＳ１００をチューニングするための複数の動作の例のフローチャートを示す。オペレーション３００におけるスタートアップに続いて、チューナモジュール１１４は、オペレーション３０２及び３０４において、最初に、ＤＤＳＰＳ１００の構成を評価するよう構成されてよい。一実施形態では、構成はプロビジョニング構成及びパラメータ構成に分けられてよい。オペレーション３０２において、ＤＤＳＰＳ１００のプロビジョニング構成は、評価されてよく、必要であれば再構成されてよい。図４の４００に示されるように、プロビジョニング構成は、ＤＤＳＰＳ１００の物理構成に基づいてよい。物理構成は、例えば、ＤＤＳＰＳ１００内の複数のデバイス（例えば、複数のサーバ）、各デバイスの複数の機能（例えば、処理、ストレージ等）、各デバイスの位置（例えば、ビルディング、ラック等）、及び複数のデバイスを結んでいるネットワークの複数の機能（例えば、スループット、安定性等）を含む。この情報に基づいて、チューナモジュール１１４は、例えば、より大きい処理能力又はより豊富なストレージリソースを持つ複数のデバイスの利点を得るため、処理／ストレージリソースを利用すべく特定の複数の位置（例えば、同一のラック）で動作している複数のリソースを統合するため、より遅い複数のネットワークリンク、より遅い複数のデバイスを通じて実行される必要がある負荷を最小化するため等に、ＤＤＳＰＳ１００を再構成してよい。例えば、強力なマルチコアプロセッサ及びより小容量のソリッドステートドライブを持つデバイスは、時間的制約のある複数のトランザクションを処理するために使用されてよい。これに対し、より小さいパワーのプロセッサ及び大容量の磁気ディスクドライブを持つデバイスは、大量の情報を保管するために使用されてよい。行われ得る特定の複数の変更の複数の例は、例えば、ＤＤＳＰＳ１００についてのＨＤＦＳデータ及びＨａｄｏｏｐ中間データのストレージ位置を構成すること、インクリメンタルなデータサイズ（例えば、ＨａｄｏｏｐのようなＪａｖａ（登録商標）プログラミング言語に基づく複数のシステムのためのＪａｖａ（登録商標）仮想マシン（ＪＶＭ）のヒープサイズ）を構成すること、フォールトトレランス（例えば、データが利用不可能になることを避けるべくデータが複製される複数の位置、データが複製される度合い等）を構成することを含んでよい。
【００１８】
オペレーション３０４において、チューナモジュール１１４は、ＤＤＳＰＳ１００のパラメータ構成を評価してよい。パラメータ構成の評価において、チューナモジュール１１４は、ＤＤＳＰＳ１００及びＤＤＳＰＳ１００を構成する複数のデバイスの両方の設定ファイルにアクセスするよう構成されてよい。チューナモジュール１１４は、その後、ＤＤＳＰＳ１００についての「ベースライン」構成に対する両方のパラメータ構成を評価してよく、それに従ってＤＤＳＰＳ１００内の様々なパラメータを再構成してよい。本明細書中で言及されるようなベースラインは、ＤＤＳＰＳ１００を単に（例えば、実質的にエラーのない状態で）動作させるのに要求され得る、選択された複数のネットワークレベル構成、選択された複数のシステムレベル構成、選択された複数のデバイスレベル構成等を備えてよい。例えば、ＤＤＳＰＳ１００についてのベースライン構成は、管理ソフトウェアの提供者（例えば、Ａｐａｃｈｅ  Ｈａｄｏｏｐ）によって指示されてよい。
【００１９】
図４の４０２に示されるように、チューナモジュール１１４によって評価及び／又は再構成されてよい複数のパラメータの複数の例は、例えば、ＤＤＳＰＳ１００内の１つ又は複数のデバイスの複数のファイルシステム属性をイネーブル又はディセーブルすること（例えば、ここで「ｌｏｃａｌ」はデバイスレベル構成を表す）、ローカルな複数のオペレーティングシステム（ＯＳ）における複数のファイルキャッシュ及びプリフェッチをイネーブル又はディセーブルすること、不必要なローカルセキュリティ及び／又はバックアップ保護をイネーブル又はディセーブルすること、重複するローカルアクティビティをディセーブルすること等を含んでよい。例えば、ＤＤＳＰＳ１００におけるパラメータの評価に続いて、チューナモジュール１１４は、ＤＤＳＰＳ１００についての管理ソフトウェアがＤＤＳＰＳ１００を構成する複数のデバイスにおける複数のストレージリソースにアクセスすることから防ぎ得るセキュリティ対策をディセーブルしてよく、複数のデバイス間の情報転送を遅らせることができる任意の複数のローカルアクセス構成をディセーブルしてよく、ＤＤＳＰＳ１００についての管理システムが類似の保護（例えば、Ｈａｄｏｏｐは、ＤＤＳＰＳ１００内の異なる複数の位置におけるデータ複製をサポートする）を含むのでローカライズされた任意の障害保護（例えば、複数のサーバＲＡＩＤシステム）をディセーブルしてよい。
【００２０】
初期の構成フェーズの後、チューナモジュール１１４は、ＤＤＳＰＳ１００の動作から得られたサンプル情報に基づいて性能モデルを決定するよう構成されてよく、性能モデルを用いて構成空間にわたる検索に基づいてＤＤＳＰＳ１００についての推奨構成を決定するよう構成されてよい。  本明細書中で参照されるように、構成空間にわたる検索は、例えば、最初に、性能モデルについての全ての可能なパラメータ構成を決定すること（例えば、構成空間を決定する）、その後、以前の複数のシステム構成と比較してシステムが実行する方法を決定するべく（例えば、最適化アルゴリズムに基づいて）様々なパラメータの組み合わせを試行することによって構成空間「にわたって検索」することを備えてよい。実際の動作から複数のサンプルを得ることから実現され得る少なくとも１つの利点は、チューナモジュール１１４がＤＤＳＰＳ１００の通常の動作の間にチューニングを実行し得ることである。例えば、チューナモジュール１１４がＤＤＳＰＳ１００についての推奨構成を自動的に実装するよう構成される複数の例において、チューニングは、ＤＤＳＰＳ１００の複数のオペレータにトランスペアレントな態様で継続的に実行されてよい。性能モデルの決定は、オペレーション３０６においてサンプル情報を収集することを含んでよい。ここで、サンプル情報は、ＤＤＳＰＳ１００から得られる１つ又は複数のサンプルを含んでよい。ＤＤＳＰＳ１００を管理するためにＨａｄｏｏｐが採用される例では、各サンプルは、例えば、ＤＤＳＰＳ１００内でワークロードを動作するための構成、ワークロードに対応するジョブログ（例えば、ジョブトラッカ１０２に関連付けられた複数のジョブログファイルから取得される）、ワークロードに対応するリソース使用情報等を含んでよい。ＤＤＳＰＳ１００の構成／パラメータ空間は、相当に大きくてよく、したがって、少なくとも１つの実施形態において複数のサンプルが「スマート」サンプリングを用いて選択されてよい。スマートサンプリングは、パラメータ空間にわたって複数のサンプルをインテリジェントに収集する（例えば、上述したワークロード情報の複数のセット）ための、例えば複数の遺伝的アルゴリズム、シミュレーテッド・アニーリング、複数のシンプレックス法、勾配降下、再帰ランダムサンプリング等に基づく直接検索アルゴリズムを用いることを含んでよい。（例えば、ＤＤＳＰＳ１００の通常の動作を好適に反映する）特定の複数のサンプルを選択することは、ＤＤＳＰＳ１００の動作の挙動を正確に表すために必要なサンプルの総数を低減し得る。
【００２１】
一実施形態では、性能モデルは、オペレーション３０６で収集された複数のサンプルに基づいてオペレーション３０８で訓練された機械学習モデルであってよい。例えば、性能モデルは、ＤＤＳＰＳ１００の性能をエミュレートしてよい複数の設定可能パラメータを含む数学モデルであってよい。性能モデルの構築は、例えば、異なるパラメータの間の非線形な相互作用／依存性を効率的にモデルするよう構成されてよい管理された機械学習アルゴリズムに、オペレーション３０６においてＤＤＳＰＳ１００から取得された複数のサンプルを入力することからもたらされてよい。管理された機械学習アルゴリズムの例は、複数の人工ニューラルネットワーク（複数のＡＮＮ）、Ｍ５決定木、サポートベクトル回帰（ＳＶＲ）等を含んでよい。性能モデルは、様々なパラメータを用いてＤＤＳＰＳ１００のシステム性能を記述してよい。  図４の４０４で示されるように、Ｈａｄｏｏｐによって管理されている場合のＤＤＳＰＳ１００に関する複数のパラメータの例は、例えば、Ｍａｐ及びＲｅｄｕｃｅのタスクレベルパラメータ、複数のシャッフルパラメータ、ジョブ及び／又はタスクの完成時間の複数の関係性、ワーカノードリソースアクティビティ及び分散システム（例えば、ＤＤＳＰＳ１００）リソースのプロビジョニングを含んでよい。オペレーション３１０において、サンプリング及び訓練は、ＤＤＳＰＳ１００の性能をエミュレートするのに必要な正確度を持つ複数の性能モデルの結果まで続いてよい。正確度は、例えば、ワークロードの複数のパラメータを性能モデルにセットすること、及び、性能モデルの性能予測がＤＤＳＰＳ１００から取得された複数のサンプルにおいて観測された実際の複数の結果に十分に近接している（例えば、許容誤差内）かを判断することによって、検証されてよい。
【００２２】
オペレーション３０８及び３１０において性能モデルが訓練された後、チューナモジュール１１４は、ＤＤＳＰＳ１００についての推奨構成に到達することを最終目標として、性能モデルを用いてＤＤＳＰＳ１００に対する複数の可能な構成変更を検索するよう構成されてよい。オペレーション３１２において、チューナモジュール１１４は、構成空間を検索するために最適化検索アルゴリズムを用いてよく、ＤＤＳＰＳ１００についての最適構成を決定するために性能モデルを用いて構成をテストしてよい。例えば、オペレーション３１６及び３１８において、チューナモジュール１１４は、最適化アルゴリズムに基づいて複数のパラメータ構成を選択するよう、及び、モデルを用いてパラメータ構成の性能をテストするよう構成されてよい。パラメータ構成の性能は、ＤＤＳＰＳ１００の性能が複数の変更の結果として向上するかを判断するために、以前の複数の構成と比較されてよい。検索アルゴリズムは、例えば、システム性能の複数の問題（例えば、複数の関連性、複数のボトルネック、複数の依存性等）を、複数の性能問題を軽減するために実装され得る複数のパラメータ構成の決定において、考慮してよい。
【００２３】
オペレーション３１８において最適構成が達成された場合、オペレーション３２０においてチューナモジュール１１４は、推奨構成に作用してよい。一実施形態では、チューナモジュール１１４は、ＤＤＳＰＳ１００に推奨構成を自動的に自訴ストライプするよう構成されてよい。  推奨構成を自動的に実装することは、例えば、ＤＤＳＰＳ１００内の管理ソフトウェア（例えば、Ａｐａｃｈｅ  Ｈａｄｏｏｐ）に、推奨構成に達するために複数の変更を実装させることを含んでよい。これは、ＨＤＦＳ及びＭａｐＲｅｄｕｃｅ設定ファイル内の情報の変更又は更新、ローカルな複数の構成を変更するためのＤＤＳＰＳ１００内の複数の特定デバイスとの通信、複数のネットワーク構成を変更するための複数のネットワークデバイスとの通信等を行うチューナモジュール１１４によって行われてよい。同一又は異なる実施形態において、チューナモジュール１１４はまた、複数の提示された変更を、推奨構成を実装するためにＤＤＳＰＳ１００の構成に集約するよう構成されてよい。例えば、チューナモジュール１１４は、推奨の再構成のいくつか又は全てを自動的に実装させることができなくてよく、代わりに、必要な複数の変更を、例えば報告形式で集約してよい（例えば、報告を表示又は紙に印刷するためにそれを提供してよい）。報告は、例えば、再構成されるべきＤＤＳＰＳ１００の複数の部分、場合によってはＤＤＳＰＳ１００にこれらの変更を加えるための方法を示してよい。再構成の提示だけ又は組み合わせで、報告はまた、特定の複数のデバイス、ネットワーク装置等をＤＤＳＰＳ１００における複数のボトルネックとして特定してよく、問題のある複数のデバイス、ネットワーク装置等のアップグレード又はリプレースを推奨してよい。
【００２４】
図３は実施形態における様々な動作を示しているものの、図３に示される全ての動作が他の複数の実施形態で必要というわけではない点を理解されたい。実際に、本明細書中において、本開示の複数の他の実施形態では、図３に示された複数のオペレーション及び／又は本明細書中に記載された他の複数のオペレーションは、どの図面のいずれにも明示的に示されない態様で組み合わされてよいが依然として本開示に完全に整合し得ることが十分に理解される。したがって、１つの図面に厳密に示されていない複数の特徴及び／又は複数の動作に向けられた複数の請求項は、本開示の範囲及び内容の内にあるとみなされる。
【００２５】
本明細書中の任意の実施形態で使用されるような「モジュール」という用語は、上述した複数の動作のいずれかを実行するよう構成されたソフトウェア、ファームウェア及び／又は回路のことを指していてよい。ソフトウェアは、複数の非一時的コンピュータ可読ストレージ媒体に格納される、ソフトウェアパッケージ、コード、複数の命令、複数の命令セット及び／又はデータとして具現されてよい。ファームウェアは、複数のメモリデバイスにハードコードされた（例えば、不揮発性である）、コード、複数の命令又は複数の命令セット及び／又はデータとして具現されてよい。本明細書中の任意の実施形態で使用されるような「回路」は、例えば、ハードワイヤード回路、１つ又は複数の個別の命令処理コアを備える複数のコンピュータプロセッサなどのプログラマブル回路、ステートマシン回路、及び／又は、プログラマブル回路によって実行される複数の命令を格納するファームウェアを単体で又は任意に組み合わせて備えてよい。複数のモジュールは、まとめて又は個別に、例えば集積回路（ＩＣ）、システムオンチップ（ＳｏＣ）、複数のデスクトップ型コンピュータ、複数のラップトップコンピュータ、複数のタブレットコンピュータ、複数のサーバ、複数のスマートフォン等のより大きなシステムの一部を形成する回路として具現されてよい。
【００２６】
本明細書中に記載された動作のいずれも、１つ又は複数のプロセッサによって実行された場合に、複数の方法を実行する複数の命令を、個別に又は組み合わせて格納している１つ又は複数の記憶媒体を含むシステム内に実装され得る。ここで、プロセッサは、例えば、サーバのＣＰＵ、モバイルデバイスのＣＰＵ、及び／又は他のプログラマブル回路を含んでよい。また、本明細書中に記載された複数の動作は、１つより多くの異なる物理的位置での複数の処理構造などの複数の物理デバイスにわたって分散されてよいことが意図される。記憶媒体は、例えば、複数のハードディスク、複数のフロッピー（登録商標）ディスク、複数の光ディスク、複数のコンパクトディスクリードオンリメモリ（複数のＣＤ−ＲＯＭ）、複数の書き換え可能コンパクトディスク（複数のＣＤ−ＲＷ）及び複数の光磁気ディスクを含む任意のタイプのディスク、複数のリードオンリメモリ（複数のＲＯＭ）、複数のダイナミック及びスタティックＲＡＭなどの複数のランダムアクセスメモリ（複数のＲＡＭ）、複数の消去可能プログラマブルリードオンリメモリ（複数のＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（複数のＥＥＰＲＯＭ）、複数のフラッシュメモリ、複数のソリッドステートディスク（複数のＳＳＤ）、複数のｅｍｂｅｄｄｅｄ  ｍｕｌｔｉｍｅｄｉａ  ｃａｒｄ（複数のｅＭＭＣ）、複数のｓｅｃｕｒｅ  ｄｉｇｉｔａｌ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  （ＳＤＩＯ）カードなどの複数の半導体デバイス、複数の磁気又は光カード、又は複数の電子命令を格納するための適切な任意のタイプの媒体である、任意のタイプの有形の媒体を含んでよい。複数の他の実施形態は、プログラマブル制御デバイスによって実行されるソフトウェアモジュールとして実装されてよい。
【００２７】
したがって、本開示は、分散データ及びストレージ・処理システムについてのチューニングを記載する。デバイスは、分散データ及びストレージ・処理システムの構成をデバイス内で利用可能な構成情報に少なくとも基づいて決定し、ベースライン構成に基づいて、分散データ及びストレージ・処理システムの構成を調整するよう構成されたチューナモジュールを備えてよい。チューナモジュールは、その後、分散データ及びストレージ・処理システムについての、分散データ及びストレージ・処理システムの実際の動作から得られるサンプル情報を決定し、分散データ及びストレージ・処理システムの性能モデルを生成するのにサンプル情報を使用するよう、さらに構成されてよい。チューナモジュールは、その後、性能モデルに基づいてシステムに対する複数の構成変更を評価し、評価に基づいて、分散データ及びストレージ・処理システムの推奨構成を決定するよう、さらに構成されてよい。
【００２８】
以下の複数の例は、複数のさらなる実施形態に関する。例示的な一実施形態において、デバイスが提供される。デバイスは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定し、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整し、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定し、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成し、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価し、構成変更の評価に基づいて推奨構成を決定するよう構成されたチューナモジュールを少なくとも含んでよい。
【００２９】
上記の例示のデバイスは、チューナモジュールが、ソフトウェアコンポーネントを備え、デバイスが、デバイス中のメモリ内に格納されたプログラムコードを実行するよう構成された少なくとも１つのプロセッサをさらに備え、プログラムコードの実行が、ソフトウェアコンポーネントを生成するよう、さらに構成されてよい。
【００３０】
上記の例示のデバイスは、分散データストレージ・処理システムについての構成を決定するよう構成されたチューナモジュールが、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００３１】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を調整するよう構成されたチューナモジュールが、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも１つのデバイスの構成のうちの少なくとも１つを調整するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００３２】
上記の例示のデバイスは、分散データストレージ・処理システムが、少なくとも１つのＨａｄｏｏｐクラスタを備え、サンプル情報を決定するよう構成されるチューナモジュールが、デバイスで利用可能な、少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示のデバイスは、サンプル情報が、１つ又は複数のサンプルを備え、各サンプルが、少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のデバイスは、分散データストレージ・処理システムの性能モデルを生成するよう構成されたチューナモジュールが、１つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築するよう構成されたチューナモジュールを備え、数学モデルが、システム性能及び複数のシステム依存性のうちの少なくとも１つを記述するよう、さらに構成されてよい。
【００３３】
上記の例示のデバイスは、分散データストレージ・処理システムに対する複数の構成変更を評価するよう構成されたチューナモジュールが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００３４】
上記の例示のデバイスは、分散データストレージ・処理システムに推奨構成を実装させるよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００３５】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供するよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００３６】
別の例示の実施形態では、方法が提供される。方法は、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する段階と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する段階と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する段階と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する段階と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する段階と、構成変更の評価に基づいて推奨構成を決定する段階とを含んでよい。
【００３７】
上記の例示の方法は、分散データストレージ・処理システムについての構成を決定する段階が、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定する段階を備えるよう、さらに構成されてよい。
【００３８】
上記の例示の方法は、分散データストレージ・処理システムの構成を調整する段階が、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも１つのデバイスの構成のうちの少なくとも１つを調整する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００３９】
上記の例示の方法は、分散データストレージ・処理システムが、少なくとも１つのＨａｄｏｏｐクラスタを備え、サンプル情報を決定する段階が、少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示の方法は、サンプル情報が、１つ又は複数のサンプルを備え、各サンプルは、少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示の方法は、分散データストレージ・処理システムの性能モデルを生成する段階が、１つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築する段階を備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも１つを記述するよう、さらに構成されてよい。
【００４０】
上記の例示の方法は、分散データストレージ・処理システムに対する複数の構成変更を評価する段階が、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００４１】
上記の例示の方法は、分散データストレージ・処理システムに推奨構成を実装させる段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００４２】
上記の例示の方法は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００４３】
別の例示の実施形態では、システムであって、少なくともチューナモジュールを備えるデバイスを含み、上記の例示の複数の方法のいずれかを実行するよう設けられたシステムが提供される。
【００４４】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行するよう設けられるチップセットが提供される。
【００４５】
別の例示の実施形態では、コンピューティングデバイスで実行されることに応じて、コンピューティングデバイスに、上記の例示の複数の方法のいずれかを実行させる複数の命令を備える少なくとも１つの機械可読媒体が提供される。
【００４６】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行するよう設けられた分散データストレージ・処理システムをチューニングするよう構成されたデバイスが提供される。
【００４７】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行する手段を持つデバイスが提供される。
【００４８】
別の例示の実施形態では、１つ又は複数のプロセッサによって実行された場合に、システムに、上記の例示の複数の方法のいずれかを実行することをもたらす複数の命令を単独で又は組み合わせで格納する少なくとも１つの機械可読記憶媒体を備えるシステムが提供される。
【００４９】
別の例示の実施形態では、デバイスが提供される。デバイスは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定し、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整し、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定し、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成し、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価し、構成変更の評価に基づいて推奨構成を決定するよう構成されたチューナモジュールを少なくとも含んでよい。
【００５０】
上記の例示のデバイスは、分散データストレージ・処理システムが、少なくとも１つのＨａｄｏｏｐクラスタを備え、サンプル情報を決定するよう構成されるチューナモジュールが、デバイスで利用可能な、少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されたチューナモジュールを備えるよう、さらに構成されてよい。この構成において、例示のデバイスは、サンプル情報が、１つ又は複数のサンプルを備え、各サンプルが、少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のデバイスは、分散データストレージ・処理システムの性能モデルを生成するよう構成されたチューナモジュールが、１つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築するよう構成されたチューナモジュールを備え、数学モデルが、システム性能及び複数のシステム依存性のうちの少なくとも１つを記述するよう、さらに構成されてよい。
【００５１】
上記の例示のデバイスは、分散データストレージ・処理システムに対する複数の構成変更を評価するよう構成されたチューナモジュールが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００５２】
上記の例示のデバイスは、分散データストレージ・処理システムに推奨構成を実装させること、又は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供することの少なくとも１つをするよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００５３】
別の例示の実施形態では、方法が提供される。方法は、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する段階と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する段階と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する段階と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する段階と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する段階と、構成変更の評価に基づいて推奨構成を決定する段階とを含んでよい。
【００５４】
上記の例示の方法は、分散データストレージ・処理システムが、少なくとも１つのＨａｄｏｏｐクラスタを備え、サンプル情報を決定する段階が、少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階を備えるよう、さらに構成されてよい。この構成において、例示の方法は、サンプル情報が、１つ又は複数のサンプルを備え、各サンプルは、少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示の方法は、分散データストレージ・処理システムの性能モデルを生成する段階が、１つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築する段階を備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも１つを記述するよう、さらに構成されてよい。
【００５５】
上記の例示の方法は、分散データストレージ・処理システムに対する複数の構成変更を評価する段階が、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００５６】
上記の例示の方法は、分散データストレージ・処理システムに推奨構成を実装させる段階、又は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する段階の少なくとも１つを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００５７】
別の例示の実施形態では、システムであって、少なくともチューナモジュールを備えるデバイスを含み、上記の例示の複数の方法のいずれかを実行するよう設けられたシステムが提供される。
【００５８】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行するよう設けられるチップセットが提供される。
【００５９】
別の例示の実施形態では、コンピューティングデバイスで実行されることに応じて、コンピューティングデバイスに、上記の例示の複数の方法のいずれかを実行させる複数の命令を備える少なくとも１つの機械可読媒体が提供される。
【００６０】
別の例示の実施形態では、デバイスが提供される。デバイスは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定し、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整し、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定し、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成し、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価し、構成変更の評価に基づいて推奨構成を決定するよう構成されたチューナモジュールを少なくとも含んでよい。
【００６１】
上記の例示のデバイスは、チューナモジュールが、ソフトウェアコンポーネントを備え、デバイスが、デバイス中のメモリ内に格納されたプログラムコードを実行するよう構成された少なくとも１つのプロセッサをさらに備え、プログラムコードの実行が、ソフトウェアコンポーネントを生成するよう、さらに構成されてよい。
【００６２】
上記の例示のデバイスは、分散データストレージ・処理システムについての構成を決定するよう構成されたチューナモジュールが、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００６３】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を調整するよう構成されたチューナモジュールが、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも１つのデバイスの構成のうちの少なくとも１つを調整するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００６４】
上記の例示のデバイスは、分散データストレージ・処理システムが、少なくとも１つのＨａｄｏｏｐクラスタを備え、サンプル情報を決定するよう構成されるチューナモジュールが、デバイスで利用可能な、少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示のデバイスは、サンプル情報が、１つ又は複数のサンプルを備え、各サンプルが、少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のデバイスは、分散データストレージ・処理システムの性能モデルを生成するよう構成されたチューナモジュールが、１つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築するよう構成されたチューナモジュールを備え、数学モデルが、システム性能及び複数のシステム依存性のうちの少なくとも１つを記述するよう、さらに構成されてよい。
【００６５】
上記の例示のデバイスは、分散データストレージ・処理システムに対する複数の構成変更を評価するよう構成されたチューナモジュールが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００６６】
上記の例示のデバイスは、分散データストレージ・処理システムに推奨構成を実装させるよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００６７】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供するよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００６８】
別の例示の実施形態では、方法が提供される。方法は、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する段階と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する段階と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する段階と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する段階と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する段階と、構成変更の評価に基づいて推奨構成を決定する段階とを含んでよい。
【００６９】
上記の例示の方法は、分散データストレージ・処理システムについての構成を決定する段階が、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定する段階を備えるよう、さらに構成されてよい。
【００７０】
上記の例示の方法は、分散データストレージ・処理システムの構成を調整する段階が、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも１つのデバイスの構成のうちの少なくとも１つを調整する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００７１】
上記の例示の方法は、分散データストレージ・処理システムが、少なくとも１つのＨａｄｏｏｐクラスタを備え、サンプル情報を決定する段階が、少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示の方法は、サンプル情報が、１つ又は複数のサンプルを備え、各サンプルは、少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示の方法は、分散データストレージ・処理システムの性能モデルを生成する段階が、１つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築する段階を備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも１つを記述するよう、さらに構成されてよい。
【００７２】
上記の例示の方法は、分散データストレージ・処理システムに対する複数の構成変更を評価する段階が、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００７３】
上記の例示の方法は、分散データストレージ・処理システムに推奨構成を実装させる段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００７４】
上記の例示の方法は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００７５】
別の例示の実施形態では、システムが提供される。システムは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する手段と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する手段と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する手段と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する手段と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する手段と、構成変更の評価に基づいて推奨構成を決定する手段とを含んでよい。
【００７６】
上記の例示のシステムは、分散データストレージ・処理システムについての構成を決定することが、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定することを備えるよう、さらに構成されてよい。
【００７７】
上記の例示のシステムは、分散データストレージ・処理システムの構成を調整することが、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも１つのデバイスの構成のうちの少なくとも１つを調整することを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００７８】
上記の例示のシステムは、分散データストレージ・処理システムが、少なくとも１つのＨａｄｏｏｐクラスタを備え、サンプル情報を決定することが、少なくとも１つのＨａｄｏｏｐクラスタに対応する複数のジョブログファイルに少なくともアクセスすることを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示のシステムは、サンプル情報が、１つ又は複数のサンプルを備え、各サンプルは、少なくとも１つのＨａｄｏｏｐクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のシステムは、分散データストレージ・処理システムの性能モデルを生成することが、１つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築することを備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも１つを記述するよう、さらに構成されてよい。
【００７９】
上記の例示のシステムは、分散データストレージ・処理システムに対する複数の構成変更を評価することが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化することを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【００８０】
上記の例示のシステムは、分散データストレージ・処理システムに推奨構成を実装させる手段を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００８１】
上記の例示のシステムは、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する手段を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【００８２】
本明細書中で使用されている複数の用語及び複数の語句は、説明のための複数の用語として使用されており、限定のための複数の用語として使用されているものではない。そして、そのような複数の用語及び複数の語句の使用において、示され説明された複数の特徴（又はその複数の部分）についての任意の均等物を排除することを意図していない。そして、様々な変更が特許請求の範囲内で可能であることが認識される。したがって、特許請求の範囲は、そのような均等物全てを包含するように意図される。
【図１】
0006031196.tif 000002
【図２】
0006031196.tif 000003
【図３】
0006031196.tif 000004
【図４】
0006031196.tif 000005