(57)【要約】【課題】インテリジェントデータストレージシステムを提供する。【解決手段】本発明に係るインテリジェントデータストレージシステムは、それぞれが１つ以上のプロセッサ、メモリ、およびソースデータを記憶するストレージ媒体を備える１つ以上のインテリジェントストレージデバイスと、それぞれが１つ以上のプロセッサとメモリを備え、１つ以上の前記デバイスに通信可能に結合され、少なくとも１つのデータフィルタリングパラメータを含む実行プランを生成し、実行プランを、前記データフィルタリングパラメータを含む１つ以上のフラグメントに分割し、前記フラグメントを１つ以上の前記デバイスに提供する１つ以上のアプリケーションホストとを備え、前記デバイスは、ソースデータに対して実行プランフラグメントを実行して、少なくとも１つのデータフィルタリングパラメータに基づいてソースデータから選択される結果データを生成する。【選択図】図１
2009181577.tif 000002
【特許請求の範囲】
【請求項１】
インテリジェントデータストレージシステム（１００）であって、
それぞれが１つまたは複数のプロセッサ（１３２）、メモリ（１３４）、およびソースデータを記憶するように構成されているストレージ媒体（１４０）を備える１つまたは複数のインテリジェントストレージデバイス（１３０）と、
それぞれが１つまたは複数のプロセッサ（１１２）およびメモリ（１７４）を備える１つまたは複数のアプリケーションホスト（１１０）であって、前記１つまたは複数のインテリジェントストレージデバイス（１３０）に通信可能に結合され、少なくとも１つのデータフィルタリングパラメータを含む実行プランを生成し、前記実行プランを、前記少なくとも１つのデータフィルタリングパラメータを含む１つまたは複数のフラグメントに分割すると共に、前記１つまたは複数のフラグメントを前記１つまたは複数のインテリジェントストレージデバイスに提供するように構成されている、１つまたは複数のアプリケーションホストと
を備え、
前記インテリジェントストレージデバイス（１３０）は、前記ソースデータに対して前記実行プランフラグメントを実行して、前記少なくとも１つのデータフィルタリングパラメータに基づいて前記ソースデータから選択される結果データを生成するように構成されている
インテリジェントデータストレージシステム。
【請求項２】
前記１つまたは複数のアプリケーションホスト（１１０）の前記１つまたは複数のプロセッサ（１１２）は、プロセス間通信（ＩＰＣ）ネットワーク（６１９）を介して互いに通信可能に結合されている
請求項１に記載のインテリジェントデータストレージシステム。
【請求項３】
前記１つまたは複数のインテリジェントストレージデバイス（１３０）に通信可能に結合された前記１つまたは複数のアプリケーションホスト（１１０）は、ネットワーク（１１８）を介して通信可能に結合されている
請求項１に記載のインテリジェントデータストレージシステム。
【請求項４】
前記アプリケーションホスト（１１０）のうちの１つまたは複数および前記１つまたは複数のインテリジェントストレージデバイス（３５０）に通信可能に結合されるストレージマネージャ（３３０）であって、
前記アプリケーションホストから前記１つまたは複数のフラグメントを受信し、
前記インテリジェントストレージデバイス（３５０）のうちの少なくとも１つへ少なくとも１つのフラグメントを送信し、
前記インテリジェントストレージデバイス（３５０）のうちの前記少なくとも１つから前記結果データを受信するように構成されているストレージマネージャ
をさらに備える
請求項１に記載のインテリジェントデータストレージシステム。
【請求項５】
前記ストレージマネージャ（３３０）は、ソフトウェアオブジェクトである
請求項４に記載のインテリジェントデータストレージシステム。
【請求項６】
前記ネットワーク（１１８）は、ワイドエリアネットワーク（１１８）を備える
請求項１に記載のインテリジェントデータストレージシステム。
【請求項７】
前記ネットワーク（１１８）は、ストレージエリアネットワーク（１１８）を備える
請求項２に記載のインテリジェントデータストレージシステム。
【請求項８】
前記データフィルタリングパラメータは、テキスト検索の検索語である
請求項１に記載のインテリジェントデータストレージシステム。
【請求項９】
前記データフィルタリングパラメータは、関係型データベースの検索述語である
請求項１に記載のインテリジェントデータストレージシステム。
【請求項１０】
前記データフィルタリングパラメータは、ＪＯＩＮデータベース演算子を含む
請求項１に記載のインテリジェントデータストレージシステム。
【請求項１１】
前記データフィルタリングパラメータは、ＳＥＬＥＣＴデータベース演算子を含む
請求項１に記載のインテリジェントデータストレージシステム。
【請求項１２】
前記インテリジェントストレージデバイス（１３０）は、前記結果を前記アプリケーションホストに返すように構成されている
請求項１に記載のインテリジェントデータストレージシステム。
【請求項１３】
前記アプリケーションホスト（１１０）の前記１つまたは複数のプロセッサ（１１２）は、前記データフィルタリングパラメータに基づいて、前記少なくとも１つのデータフィルタリングパラメータを含む前記実行プランフラグメントを前記１つまたは複数のインテリジェントストレージデバイス（１３０）のいずれへ送信するのかを判断するように構成されている
請求項１に記載のインテリジェントデータストレージシステム。
【請求項１４】
前記インテリジェントストレージデバイス（１３０）は、複数のストレージ媒体（１４０）を備える
請求項１に記載のインテリジェントデータストレージシステム。
【請求項１５】
インテリジェントデータストレージシステム（４００）からデータをリトリーブする方法であって、
アプリケーションホスト（１１０）から、１つまたは複数のプロセッサ（１３２）、メモリ（１３４）、およびソースデータを記憶するように構成されているストレージ媒体（１４０）を有するインテリジェントストレージデバイス（１３０）へ、データ要求を送信することであって、前記アプリケーションホスト（１１０）は、少なくとも１つのデータフィルタリングパラメータを含む実行プランを生成し、前記実行プランを、前記少なくとも１つのデータフィルタリングパラメータを含む１つまたは複数のフラグメントに分割し、前記１つまたは複数のフラグメントを前記インテリジェントストレージデバイスに提供するように構成されている、データ要求を送信することと、
前記１つまたは複数のインテリジェントストレージデバイス（１３０）からのソースデータを、前記インテリジェントストレージデバイス（１３０）の前記メモリ（１３４）内にコピーすること（４５６）と、
前記データフィルタリングパラメータを前記コピーされたソースデータに適用すること（４５８）によって結果データを生成すること（４６０）と、
前記結果データを前記アプリケーションホスト（１１０）へ送信すること（４６２）と
を含む方法。
【請求項１６】
前記データフィルタリングパラメータに基づいて、前記少なくとも１つのデータフィルタリングパラメータを含む前記実行プランフラグメントを前記１つまたは複数のインテリジェントストレージデバイス（１３０）のいずれへ送信するのかを判断することをさらに含む
請求項１５に記載の方法。
【請求項１７】
前記アプリケーションホスト（１１０）から第２のアプリケーションホスト（１１０）へデータ要求を送信することと、
前記第２のアプリケーションホスト（１１０）から結果データを受信することと
をさらに含む請求項１５に記載の方法。
【請求項１８】
プログラムが記録されているコンピュータ可読媒体であって、
前記プログラムは、インテリジェントデータストレージシステム（１００）を実施するためのプロシージャをコンピュータに実行させるように構成され、
前記プロシージャは、
アプリケーションホスト（１１０）から、１つまたは複数のプロセッサ（１３２）、メモリ（１３４）、およびソースデータを記憶するように構成されているストレージ媒体（１４０）を有するインテリジェントストレージデバイス（１３０）へ、データ要求を送信するステップであって、前記アプリケーションホスト（１１０）は、少なくとも１つのデータフィルタリングパラメータを含む実行プランを生成し、前記実行プランを、前記少なくとも１つのデータフィルタリングパラメータを含む１つまたは複数のフラグメントに分割し、前記１つまたは複数のフラグメントを前記インテリジェントストレージデバイスに提供するように構成されている、データ要求を送信するステップと、
前記１つまたは複数のインテリジェントストレージデバイス（１３０）からのソースデータを、前記インテリジェントストレージデバイス（１３０）の前記メモリ（１３４）内にコピーするステップ（４５６）と、
前記データフィルタリングパラメータを前記コピーされたソースデータに適用すること（４５８）によって結果データを生成するステップ（４６０）と、
前記結果データを前記アプリケーションホスト（１１０）へ送信するステップ（４６２）と
を含むコンピュータ可読媒体。
【請求項１９】
前記プロシージャは、前記データフィルタリングパラメータに基づいて、前記少なくとも１つのデータフィルタリングパラメータを含む前記実行プランフラグメントを前記１つまたは複数のインテリジェントストレージデバイス（１３０）のいずれへ送信するのかを判断するステップをさらに含む
請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記プロシージャは、
前記アプリケーションホスト（１１０）から第２のアプリケーションホスト（１１０）へデータ要求を送信するステップと、
前記第２のアプリケーションホスト（１１０）から結果データを受信するステップと
をさらに含む請求項１８に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、データストレージシステムに関し、より詳細には、インテリジェントデータストレージシステムに関する。
【背景技術】
【０００２】
コンピュータデータストレージシステムの分野では、多くの異なるタイプのデータがさまざまなフォーマットで記憶される。
たとえば、電子メール、ＨＴＭＬコード、ワープロ文書、及び他のテキストベースの情報等のテキストを記憶するには、テキストファイルを使用することができる。
また、たとえば、大量の情報を記憶するのに使用することができ、多くの場合、さまざまなカテゴリーに分けられているデータベースも、コンピュータデータストレージシステムに記憶することができる。
これらのタイプのデータ及び他のタイプのデータは、磁気ハードディスク等のストレージ媒体上に記憶することができ、後に、検索プログラム又はコンピュータアプリケーションがアクセスすることができる。
検索中のデータファイルのサイズ又はリトリーブされるデータの量に依存して、記憶されているデータにアクセスする検索プログラム又はアプリケーションは、膨大な量のデータを受け取る場合がある。
この大量のデータは、検索プログラム又はコンピュータアプリケーションに利用可能なメモリ及び／又はプロセッサの計算能力をかなり酷使する場合があるか、又はその計算能力を超える場合さえあり、データストレージシステムにさまざまな悪影響を引き起こす場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、インテリジェントデータストレージシステムを提供する。
【課題を解決するための手段】
【０００４】
本発明の一態様によれば、インテリジェントデータストレージシステムであって、それぞれが１つ又は複数のプロセッサ、メモリ、及びソースデータを記憶するように構成されているストレージ媒体を備える１つ又は複数のインテリジェントストレージデバイスと、それぞれが１つ又は複数のプロセッサ及びメモリを備える１つ又は複数のアプリケーションホストであって、上記１つ又は複数のインテリジェントストレージデバイスに通信可能に結合され、且つ、少なくとも１つのデータフィルタリングパラメータを含む実行プランを生成し、当該実行プランを、上記少なくとも１つのデータフィルタリングパラメータを含む１つ又は複数のフラグメントに分割すると共に、当該１つ又は複数のフラグメントを１つ又は複数のインテリジェントストレージデバイスに提供するように構成されている、１つ又は複数のアプリケーションホストを備え、上記インテリジェントストレージデバイスは、ソースデータに対して上記実行プランフラグメントを実行して、上記少なくとも１つのデータフィルタリングパラメータに基づいてソースデータから選択された結果データを生成するように構成されている、インテリジェントデータストレージシステムが提供される。
【０００５】
本発明の別の態様によれば、インテリジェントデータストレージシステムからデータをリトリーブする方法であって、アプリケーションホストから、１つ又は複数のプロセッサ、メモリ、及びソースデータを記憶するように構成されているストレージ媒体を有するインテリジェントストレージデバイスへ、データ要求を送信することであって、アプリケーションホストは、少なくとも１つのデータフィルタリングパラメータを含む実行プランを生成し、当該実行プランを、少なくとも１つのデータフィルタリングパラメータを含む１つ又は複数のフラグメントに分割すると共に、１つ又は複数のフラグメントをインテリジェントストレージデバイスに提供するように構成されている、データ要求を送信すること、１つ又は複数のインテリジェントストレージデバイスからのソースデータを、インテリジェントストレージデバイスのメモリ内にコピーすること、データフィルタリングパラメータをコピーされたソースデータに適用することによって結果データを生成すること、並びに結果データをアプリケーションホストへ送信することを含む、方法が提供される。
【０００６】
本発明の実施形態を添付図面と共に説明する。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態によるアタッチされたインテリジェントデータストレージシステムの概略ブロック図である。
【図２】本発明の一実施形態によるネットワーク化されたインテリジェントデータストレージシステムの概略ブロック図である。
【図３】記憶されているデータがインテリジェントにリトリーブされる本発明の一実施形態を示す高レベルのフローチャートである。
【図４】記憶されているデータがインテリジェントにリトリーブされる本発明の一実施形態を示すフローチャートである。
【図５】本発明の一実施形態による、単一のアプリケーションホストの場合のアタッチされたインテリジェントデータストレージシステムのブロック図である。
【図６】本発明の一実施形態による、２つのアプリケーションホストの場合の複数のアタッチされたインテリジェントデータストレージシステムのブロック図である。
【図７】本発明の一実施形態による、複数のアプリケーションホストに結合された複数のネットワーク化されたインテリジェントデータストレージのブロック図である。
【発明を実施するための形態】
【０００８】
本発明の実施形態は、アプリケーションホストがインテリジェントストレージデバイスにデータを要求するインテリジェントストレージシステムを対象とする。
アプリケーションホストは、検索要求をコンパイルして、１つ又は複数のフィルタリングパラメータを有する実行プランにする。
当業者には明らかなように、たとえば、データベースシステムでは、コンパイラが最適なプランを生成する。
このようなプランは、インテリジェントストレージレベルでフィルタリングを行うフラグメントを含む。
本明細書で使用されるように、フィルタリングパラメータは、ソースデータを選択又は操作するために、記憶されているソースデータに適用することができる検索演算子又はフィルタ演算子を含む。
実行プランが生成された後、実行プランは、１つ又は複数のフラグメントに分割され、フラグメントをインテリジェントストレージデバイスへ送信してインテリジェントストレージデバイスによって実行することができるようにされる。
インテリジェントストレージデバイスは、ローカルストレージ媒体上に記憶されているデータファイルからのソースデータをローカルメモリ内にコピーするために、インテリジェントストレージデバイスにローカルなプロセッサを使用する。
ローカルストレージ媒体は、磁気ハードディスクとすることができるが、光ドライブ等の他のタイプのストレージ媒体とすることもできる。
インテリジェントストレージデバイスのローカルプロセッサは、たとえば、アプリケーションホストに返される結果データを生成するために、ローカルメモリにコピーされたデータにフラグメントのフィルタリングパラメータを適用することによって、実行プランフラグメントに従い、コピーされたデータを操作する。
返された結果データは、ソースデータのフィルタリングされたサブセット又は選択されたサブセットであるため、その結果データは、通常、データサイズがソースデータよりも小さい。
多くの場合、結果データのサイズは、ソースデータのサイズよりも何桁も小さい。
より小さなサイズの結果データをアプリケーションホストに返すことによって得ることができるさまざまな利益がある。
本発明の一実施形態では、メモリスラッシング等の現象を削減又は実質的に除去することができる。
本発明の別の実施形態では、結果データの待ち時間を削減することができるか、又は超並列処理を向上させることができる。
本発明のさらに別の実施形態では、データ転送コストを削減することができる。
本発明の他の実施形態は、ネットワーク及び／又は他の通信リンクを介して検索要求からの大量の結果データを転送及び処理することに従来から関連しているこれらの問題及び他の問題について利益を提供することができる。
【０００９】
図１は、本発明の一実施形態によるインテリジェントデータストレージシステム１００の概略ブロック図である。
インテリジェントデータストレージシステム１００は、アプリケーションホスト１１０を備える。アプリケーションホスト１１０は、１つ又は複数のプロセッサ１１２Ａ〜１１２Ｃ（ＣＰＵとしても既知である）と、メモリ１７４と、インテリジェントストレージデバイス１３０と、図１にバス１１８として示す通信リンクとを備える。プロセッサ１１２Ａ〜１１２Ｃは、本明細書ではプロセッサ１１２と総称する。
プロセッサ１１２が、超並列処理（ＭＰＰ）環境において複数のプロセッサを備える場合、当業者に明らかなように、プロセッサ間の通信を容易にし、資源の共有を可能にすると共に管理し、複数のプロセッサのそれぞれによるオペレーション及び処理並びに複数のプロセッサのそれぞれの間のオペレーション及び処理を同期させ、且つ、他のさまざまなタスクの遂行を可能にするために、プロセス間通信（ＩＰＣ）ネットワーク（図１に図示せず）が、複数のプロセッサ１１２Ａ〜１１２Ｃを互いに通信可能に結合することができる。
アプリケーションホスト１１０は、プロセッサ１１２、メモリ１７４、インテリジェントストレージデバイス１３０等のさまざまなコンピュータコンポーネントを備えるものとして示されているが、アプリケーションホスト１１０は、それらのコンポーネント及び他のコンポーネント上でソフトウェア又はアプリケーションの実行によってインスタンス化又は作成される仮想システムをも指すことが理解されるべきである。
ストレージマネージャオブジェクトが、データストレージ機能の遂行を管理するためのルーチン又はプロセスを提供するように設計されたソフトウェアの実行によってインスタンス化される仮想オブジェクトとして理解されるべきであるという点で、同じことは、以下で詳述するストレージマネージャオブジェクトにも当てはまる。
【００１０】
インテリジェントストレージデバイス１３０は、アプリケーションホストデバイス１１０のプロセッサ１１２と物理資源を共有するという点で、アプリケーションホスト１１０にアタッチされている。
アタッチされたインテリジェントストレージデバイス１３０は、１つ又は複数のプロセッサ１３２Ａ〜１３２Ｃ、メモリ１３４、１つ又は複数のストレージ媒体１４０Ａ〜１４０Ｃ、及び図１にバス１３８として示す通信リンクを有する。
ストレージ媒体１４０Ａ〜１４０Ｃは、本明細書ではストレージ媒体１４０と総称する。
【００１１】
検索プログラム又はソフトウェアアプリケーションからの検索要求は、プロセッサ１１２によって処理される。
本明細書で使用されるように、検索要求は、データベース又はテキストファイル等の情報セット又はソースデータから生成される結果データの要求である。
本発明の一実施形態では、検索要求は、通常、少なくとも１つのフィルタリングパラメータを有する。このフィルタリングパラメータは、ソースデータの一部の選択、又は、アタッチされたインテリジェントストレージデバイス１３０のメモリ１３４内にコピーされたソースデータの操作若しくは削除を行うためにソースデータに適用される。
プロセッサ１１２は、検索要求をコンパイルして、実行プランを生成する。
実行プランは、アタッチされたインテリジェントストレージデバイス１３０によって実行可能であることができる１つ又は複数の部分を含むことができる。
これらの部分は、プロセッサ１１２によって１つ又は複数のフラグメントに分割される。
フラグメントは、インテリジェントストレージデバイス１３０によって実行される一組又は複数組の命令を含むことができる。
フラグメントは、テキスト検索演算子、又は、ＳＥＬＣＴ（選択）演算子、ＪＯＩＮ（結合）演算子等のデータベース述語若しくはデータベース演算子等の、１つ又は複数のフィルタリングパラメータも含むことができる。
たとえば、ソースデータがデータベースシステムである本発明の一実施形態では、実行プランは、テーブル「EMPLOYEE_PAY」内の、給料が１００，０００ドル以上のすべての従業員のデータを要求するフィルタリングパラメータを含むことができる。
ここで、そのテーブルは、ストレージ媒体１４０Ａに記憶されている。
このフィルタリングパラメータが、いくつかの生成されたフラグメントの１つと共に含まれると、そのフラグメントは、プロセッサ１１２からアタッチされたインテリジェントストレージデバイス１３０へ実行のために送信される。
インテリジェントストレージシステムがマルチプロセッサ環境で実施される本発明の他の実施形態では、当業者に明らかなように、フラグメントのそれぞれを１つ又は複数のプロセッサ１１２Ａ〜１１２Ｃによって並列形式で送信して実行することができる。
プロセッサ１１２Ａ〜１１２Ｃは、本明細書では、プロセッサ１１２と呼称する。
プロセッサ１１２のうちの１つのプロセッサは、ソフトウェアストレージマネージャオブジェクト（図示せず）を制御することもできる。
ソフトウェアストレージマネージャオブジェクトは、プロセッサ１１２からデータ要求を受信するように構成され、且つ、ストレージデバイスへのデータの記憶及び／又はストレージデバイスからのデータのリトリーブを行う高レベルの責任を前提とするように構成されているソフトウェアオブジェクトである。
ストレージマネージャオブジェクトは、データの記憶、及び／又は、アタッチされたインテリジェントストレージデバイス１３０等のローカルにアタッチされたストレージデバイス若しくはネットワーク化されたインテリジェントストレージデバイス（図１に図示せず）からのデータのリトリーブを管理するように構成することができる。
【００１２】
図１は、通信リンク１１８をバス１１８としてさらに示している。
このバス１１８には、プロセッサ１１２、メモリ１７４、及びアタッチされたインテリジェントストレージデバイス１３０が通信可能に結合され、それによって、互いに通信可能に結合されている。
バス１３８も、アタッチされたインテリジェントストレージデバイス１３０内でバス１３８に接続されたコンポーネントに関して同様に動作するように構成されている。
しかしながら、バス１１８及びバス１３８は、複数のコンポーネントが接続されると共に、各バスによって通信信号を送受信することを可能にする任意のタイプの通信リンクとすることができることが理解されるべきである。
さらに、図１には示していないが、さまざまなハードウェア及び／又はソフトウェアが、信号を制御し、同期させると共に、別の方法で信号を通信リンクを介して送信することを可能にする、通信リンクと共に実施されることも理解されるべきである。
本発明の一定の実施形態では、メモリ１７４は、１次メモリ（たとえば、不揮発性ＲＡＭ）を備えることができることが理解されるべきである。
この１次メモリは、当該１次メモリへのデータの転送及び当該１次メモリからのデータの転送を、より永続的なメモリよりも高速にすることを可能にする。
さらに、メモリ１７４は、２次メモリ（たとえば、磁気ディスク）も備えることができることが理解されるべきである。
この２次メモリは、より高速のアクセスを可能にすることができるメモリよりも大きなストレージ容量を有する。
本発明の実施形態では、メモリ１７４は、１次メモリ及び２次メモリの双方を備えることができる。
【００１３】
従来、ストレージデバイスからのデータを要求する検索要求は、検索されるデータファイル全体を単にリトリーブするだけである。
たとえば、３００，０００個のデータレコード又はデータ行を有する関係型データベースシステムのデータベーステーブルがクエリされている場合、その３００，０００個のデータレコード又はデータ行を有するテーブル全体が、データベースファイルからリトリーブされ、アプリケーションホストの１次メモリ（たとえば、ＲＡＭ）内にコピーされる。
それらの３００，０００個のデータレコード又はデータ行が、利用可能な１次メモリのかなりの部分を占める場合、メモリに記憶されているデータを１次メモリから２次メモリ（たとえば、磁気ハードディスク）に移動させることが必要となり得る。
結局、１次メモリから２次メモリへ移動されたデータが再び要求されるとき、又は、データベーステーブルからのデータが、１次メモリにもはや必要とされないと判断されたとき、今度は、移動されたデータが、再度、１次メモリに戻される。
１次メモリから２次メモリへデータを移動させ、再び２次メモリから１次メモリへデータを戻すといったこのような循環的な移動は、メモリスラッシングとして知られており、とりわけ１次メモリと比較して２次メモリが低速であることに起因して、プロセッサ及び／又はアプリケーションホストのオペレーションを大幅に低速化するおそれがある。
簡単化した方法でメモリスラッシングを上述したが、メモリスラッシングの詳細、並びに具体的な欠点、原因、及び副作用、並びに大量のデータを転送することに関連する他の現象は、当業者に知られている。
【００１４】
本発明の一実施形態では、フィルタリングパラメータを含む実行プランフラグメントが、アタッチされたインテリジェントストレージデバイス１３０へ送信される。
アタッチされたインテリジェントストレージデバイス１３０は、１つ又は複数のソースデータファイルを単に位置特定して、アプリケーションホスト１１０のメモリ１７４内にその全体をコピーするだけでなく、アタッチされたインテリジェントストレージデバイス１３０内で検索要求を実行し、アプリケーションホスト１１０のプロセッサ１１２へ結果データ（図１に図示せず）のみを返す。
アタッチされたインテリジェントストレージデバイス１３０のプロセッサ１３２は、実行プランフラグメントを処理し、ソースデータからデータを特定してリトリーブする。
本発明の一実施形態では、フィルタリングパラメータの対象となるデータファイル全体が、アタッチされたインテリジェントストレージデバイス１３０のメモリ１３４内にコピーされる。
プロセッサ１３２は、メモリ１３４のコピーされたデータにフィルタリングパラメータを適用して、結果データを生成する。
結果データは、その後、アプリケーションホスト１１０のプロセッサ１１２へ送信される。
【００１５】
図２は、図１に示すインテリジェントデータストレージシステム１００の一実施形態の概略ブロック図である。
このインテリジェントデータストレージシステムは、図２では、ネットワーク化されたインテリジェントデータストレージシステム２００と呼称される。
図２は、複数のアプリケーションホスト２１０Ａ〜２１０Ｃを示している。
各アプリケーションホストは、上述したようなＩＰＣネットワーク（図示せず）を介して互いに通信可能に結合されている。
アプリケーションホスト２１０Ａ〜２１０Ｃは、それぞれ、通信リンク２５０を介して複数のインテリジェントストレージデバイス２３０Ａ〜２３０Ｃに通信可能に結合されている。
アプリケーションホスト２１０Ａ〜２１０Ｃ及びインテリジェントストレージデバイス２３０Ａ〜２３０Ｃのそれぞれは、通信リンク２５０への信号の通信及び通信リンク２５０からの信号の通信を容易にするための通信インターフェース２１６及び２３６をそれぞれ備える。
当業者には知られているように、アプリケーションホスト２１０をＬＡＮ又はＷＡＮに接続するためのルータ又はスイッチ等のネットワークデバイス（図示せず）に通信インターフェース２１６上のコネクタ（図示せず）を接続するのに、ケーブルを使用することができる。
【００１６】
図１と共に説明した実施形態のオペレーションと同様に、アプリケーションホスト２１０Ａは、検索要求をコンパイル又は処理して、実行プランにすることができる。
実行プランは、１つ又は複数のフラグメントに分割することができる。
これらのフラグメントのうちの１つ又は複数は、フィルタリングパラメータを含むことができる。
プロセッサ２１２は、ストレージ媒体２４０Ａ〜２４０Ｃのそれぞれに記憶されているソースデータファイル又はデータベースファイルに関するコンテンツ及び他の情報に関する記憶データを利用して、１つ又は複数のフラグメントを１つ又は複数のインテリジェントストレージデバイス２３０Ａ〜２３０Ｃへ送信することができ、それによって上述したように、結果データを生成するためにフラグメントを実行することができるようにする。
結果データは、ソースデータのサブセットを選択するために、フィルタリングパラメータをデータに適用することによってソースデータから生成されるため、生成された結果データは、ソースデータよりも大幅に小さくすることができる。
【００１７】
図３は、図１に示すインテリジェントデータストレージシステム１００の一実施形態の高レベルフローチャートである。
このインテリジェントデータストレージシステムは、図３では、インテリジェントデータストレージシステム３００と呼称される。
図３は、図２に関して上述した、アプリケーションホスト３１０のプロセッサ（図示せず）及びソフトウェアストレージマネージャオブジェクト３３０に通信可能に結合された複数のインテリジェントストレージデバイス３５０を有する一実施形態を示している。
アプリケーションホスト３１０は、１つ又は複数のフィルタリングアルゴリズムを含むクエリフラグメントをストレージマネージャオブジェクト３３０へ送信する。
ストレージマネージャオブジェクト３３０は、複数のインテリジェントストレージデバイス３５０のいずれに１つ又は複数のフラグメントのうちの１つを送信するのかを、インテリジェントストレージデバイス３５０のコンテンツに基づいて判断し、図３で「サブフラグメント」と呼称される選ばれたフラグメントをインテリジェントストレージデバイス３５０へ送信する。
複数のインテリジェントストレージデバイス３５０が存在する場合、ストレージマネージャオブジェクト３３０は、アプリケーションホスト３１０から受信したフラグメントの一部のみを所与のインテリジェントストレージデバイス３５０へ送信すべきであると判断することができ、残りは、実行のために他の１つ又はさまざまなインテリジェントストレージデバイスへ送信される。デバイス３５０は、結果データを生成するために、ソースデータファイルをそのメモリ内にコピーし、次いで、ソースデータファイルを選択し、操作し、且つ／又はフィルタリングすることによって、フラグメントを実行する。
図３に示すように、結果データは、ソースデータよりも大幅に小さく、最終的には、アプリケーションホスト３１０へ返される。
アプリケーションホスト３１０は、その後、結果データにさらにフィルタリングオペレーションを適用することができる。
【００１８】
図４は、図１に示すインテリジェントデータストレージシステム１００の一実施形態のフローチャートである。
このインテリジェントデータストレージシステムは、図４では、インテリジェントデータストレージシステム４００と呼称される。
図４は、アプリケーションホスト４１０、ストレージマネージャオブジェクト４３０、及びインテリジェントストレージデバイス４５０によって行われるさまざまなステップを示している、図４に示すさまざまなステップは、本発明を実施するために行うことができるステップの簡単化した表現であることが理解されるべきである。
当業者には明らかなように、図４に示すステップに加えて多くのステップが、説明されるステップの適切な実行に重要又は有益である。
図４では、クエリ又は検索要求が、アプリケーションホスト４１０によって受信又は生成される（４１２）。
アプリケーションホスト４１０に通信可能に結合され、最終的にはアプリケーションホスト４１０からのデータ要求を受信するさまざまなコンピュータコンポーネントがデータ要求を実行するように、クエリ又は検索要求は、アプリケーションホスト４１０のプロセッサによってコンパイルされるか又は別方法で処理される（４１４）。
コンパイルされたクエリ又は検索要求は、最適化機能の中でも特に、クエリ又は検索要求の実行をより効率的又は効果的にするように最適化される（４１６）。
アプリケーションホスト４１０は、コンパイルされ最適化されたクエリ又は検索結果に基づいて実行プランを生成する（４１８）。
当業者には明らかなように、実行プランは、ノードのグラフとみなすことができる。ノードは、演算子（たとえば、ＳＱＬ演算子）とすることができ、アークは、それらのノード間のデータフローを定義する。
いくつかの実施形態では、実行プランは、１つのまとまりとして実行される。
代替的に、超並列処理（ＭＰＰ）プラットフォーム又はＭＰＰコンピューティング環境では特に、実行プランは、実行プランフラグメントに分割される（４２０）。
これらのフラグメントは、次に、全体のクエリ又は検索要求の応答時間を高速化するために、ＭＰＰの異なるプロセッサ上で並列に実行することができる。
通常、プランフラグメントは、ストレージマネージャオブジェクト４３０を介してソースデータベースからのソースデータにアクセスする。
図示するように、ストレージマネージャオブジェクト４３０は、本発明の一実施形態では、フラグメントの一部、すなわち、サブフラグメントをインテリジェントストレージデバイス４５０へ送信することができる（４３４）。
【００１９】
当業者に明らかなように、インテリジェントデータストレージデバイス４５０へ送信されたフラグメントは、通常、述語（たとえば、ＥＭＰＬＯＹＥＥテーブルから１年あたり１００，０００ドルよりも多くを得ているすべての行を返す）、ＳＥＬＥＣＴ及びＪＯＩＮ等のデータベース演算子（たとえば、ＥＭＰＬＯＹＥＥテーブル及びＰＡＹＲＯＬＬテーブルから５万ドルよりも多くを得ている、且つ（ＡＮＤ）男性であるすべての従業員を返す）等のフィルタリングパラメータを、それ以外のものに加えて含む。
インテリジェントストレージデバイス４５０は、フラグメント又はサブフラグメントを受信すると（４５４）、インテリジェントストレージデバイス４５０にある１つ又は複数のストレージ媒体からソースデータファイルをリトリーブする。フラグメントの実行（４５４）中、ソースデータが、インテリジェントストレージデバイス４５０のストレージ媒体からリトリーブされ、フィルタリングパラメータ及び他のオペレーションが、リトリーブされたデータに適用されて（４５８）、結果データが生成される。
結果データは、生成されて、インテリジェントストレージデバイス４５０のメモリ１３４に記憶される（４６０）。
加えて、結果データは、アプリケーションホスト１１０のメモリ１７４に記憶することもできる。
結果データは、同じクエリ又は検索要求が行われる場合にメモリ１３４又は１７４に記憶され、この場合、そのクエリ又は検索要求に対応する結果データは、そのクエリ又は検索要求の実行に関連する上述したようなさまざまなステップを行う必要なく、アクセスに対して直ちに利用可能である。
インテリジェントストレージデバイス４５０は、結果データをストレージマネージャオブジェクト４３０へ送信するか、又は、アプリケーションホスト４１０のプロセッサへ直接送信する（４６２）。
従来のシステムと異なり、本発明の実施形態は、インテリジェントストレージデバイス４５０内のメモリ１３４及びプロセッサ１３２を使用して、インテリジェントストレージデバイス４５０内に記憶されているソースデータにフィルタリングパラメータを適用し、通常はデータサイズがソースデータのデータサイズと比較して劇的に小さい結果データを生成することによって、インテリジェントストレージデバイス４５０によってアプリケーションホスト４１０へ転送されるデータの量を最小にする。
本発明の一定の実施形態では、ストレージマネージャオブジェクト４３０は、フィルタリングパラメータをさらに適用する（４３５）ように構成するか、又は受信された結果データを操作するように構成することができる。
これは、複数のインテリジェントストレージデバイス４５０又は従来の非インテリジェントストレージデバイスがストレージマネージャオブジェクト４３０によって管理されているときに特に有用となり得る。
このような場合、ストレージマネージャオブジェクト４３０が、受信されたデータにフィルタリングパラメータをさらに適用して、それ自体の結果データをメモリに生成した（４３７）後、結果データは、アプリケーションホスト４１０へ送信される（４３８）。
ストレージマネージャオブジェクトがフィルタリングパラメータをさらに適用することに酷似して、アプリケーションホスト４１０も、特に、アプリケーションホスト４１０に通信可能に結合された他のデバイスから結果データ及び他のデータを受信する状況では、受信した結果データにフィルタリングパラメータを適用することができる（４２６）。
【００２０】
図５は、図１に示すインテリジェントデータストレージシステム１００の一実施形態のブロック図である。
このインテリジェントデータストレージシステムは、図５では、インテリジェントデータストレージシステム５００と呼称される。
図５は、通信リンク５１８を介して単一のインテリジェントストレージデバイス５３０に通信可能に結合された単一のアプリケーションホスト５１０を示している。
インテリジェントストレージデバイス５３０は、図１にデバイス１３０として示すようなアタッチされたインテリジェントストレージデバイスとすることができる。
代替的に、インテリジェントストレージデバイス５３０は、ネットワーク化されたインテリジェントストレージデバイスとすることもでき、この場合、通信リンク５１８は、たとえば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）を介するネットワーク接続とすることができる。
代替的に、アプリケーションホスト５１０は、１つ又は複数のプロセッサを備えることができ、これらのプロセッサは、複数のプロセッサ間でＩＰＣ信号を渡すことを可能にする通信リンクを介して通信可能に結合することができることが理解されるべきである。
【００２１】
図６は、図１に示すインテリジェントデータストレージシステム１００の一実施形態のブロック図である。
このインテリジェントデータストレージシステムは、図６では、インテリジェントデータストレージシステム６００と呼称される。
図６は、２つのアプリケーションホスト６１０Ａ及び６１０Ｂを示している。
各アプリケーションホストは、本発明の一実施形態による１つ又は複数のインテリジェントストレージデバイス６３０Ａ〜６３０Ｃを有する。
アプリケーションホスト６１０Ａ及び６１０Ｂは、通信リンク６１８を介してインテリジェントストレージデバイス６３０Ａ〜６３０Ｃに通信可能に結合されている。
上述したように、通信リンク６１８は、インテリジェントストレージデバイス６３０をアプリケーションホスト６１０のプロセッサに直接接続することができ、この場合、インテリジェントストレージデバイス６３０は、アタッチされたインテリジェントストレージデバイス６３０とみなされる。
代替的に、通信リンク６１８は、ネットワークリンクとすることもでき、この場合、インテリジェントストレージデバイス６３０は、ネットワーク化されたインテリジェントストレージデバイス６３０となる。
図示するように、ＩＰＣリンク６１９は、アプリケーションホスト６１０Ａ及びアプリケーションホスト６１０Ｂのプロセッサがそれらの間でＩＰＣ通信信号を渡すためのパスを提供する。
また、アプリケーションホスト６１０Ａ及び６１０Ｂは、ネットワークリンク６５０を介して通信可能に結合されている。
ネットワークリンク６５０及びＩＰＣリンク６１９は、図６では別々に示されているが、当業者に明らかなように、これら２つは、通信プロトコルを通じて論理的には別々であるが、同じ物理接続を使用して実施することができることが理解されるべきである。
図６に示す本発明の例示の実施形態では、アプリケーションホスト６１０Ａは、図４に関して上述したように、クエリ又は検索要求を処理している場合があり、クエリ又は検索要求は、インテリジェントストレージデバイス６３０Ａ、６３０Ｂ、及び６３０Ｃからのソースデータを要求する。
その場合、アプリケーションホスト６１０Ａは、クエリ又は検索要求及び生成された実行プランに依存して、アプリケーションホスト６１０Ｂに結果データを要求することができる。
アプリケーションホスト６１０Ｂは、アプリケーションホスト６１０Ａから要求を受信すると、インテリジェントストレージデバイス６３０Ｃに結果データを要求する。
インテリジェントストレージデバイス６３０Ｃは、上述したような方法で結果データを生成する。
インテリジェントストレージデバイス６３０Ｃからの結果データは、上述したように、通常、結果データが生成される元となった、デバイス６３０Ｃに記憶されているソースデータよりも大幅に小さい。
【００２２】
アプリケーションホスト６１０Ｂが、アプリケーションホスト６１０Ａへ返すための結果データを生成している間、アプリケーションホスト６１０Ａは、インテリジェントストレージデバイス６３０Ａ及び６３０Ｂのそれぞれへフラグメントを送信することによって、クエリ又は検索要求を処理し続ける。
デバイス６３０Ａ及び６３０Ｂは、上述したようにフラグメントを実行して、アプリケーションホスト６１０Ａへ返信される結果データを生成する。
いくつかの場合には、アプリケーションホスト６３０Ａ及び６３０Ｂのそれぞれは、実行されるフラグメント内に、述語又はデータベース演算子等のフィルタリングパラメータを有することができ、それによって、それぞれからの結果データが、通常は、結果データを生成するのに使用されるソースデータよりも大幅に小さくなるようにされている。
一方、それ以外の場合には、おそらく、フィルタリングパラメータが、デバイス６３０Ａ又は６３０Ｂのいずれかからの結果データと共に他のインテリジェントストレージデバイスからの結果データを要求することに起因して、インテリジェントストレージデバイス６３０Ａ及び６３０Ｂの一方又は双方は、ソースデータ全体のコピーである結果データを単に要求するフラグメントを受信することができる。
【００２３】
本発明の一実施形態によるこの例示のシナリオでは、アプリケーションホスト６１０Ａは、インテリジェントストレージデバイス６３０Ａ及び６３０Ｂのそれぞれから結果データを受信し、アプリケーションホスト６１０Ｂを介してデバイス６３０Ｃから結果データを受信すると、フィルタリングパラメータ及び他のクエリ又は検索要求オペレーションを受信された結果データにさらに適用することができる。
【００２４】
図７は、図２に示すインテリジェントデータストレージシステム２００の一実施形態のブロック図である。
このインテリジェントデータストレージシステムは、図７では、インテリジェントデータストレージシステム７００と呼称される。
図７は、本発明の一実施形態による複数のインテリジェントストレージデバイス７３０Ａ〜７３０Ｃに通信可能に結合された複数のアプリケーションホスト７１０Ａ〜７１０Ｃを示している。
個々のアプリケーションホストについて上述したように、アプリケーションホスト７１０Ａ〜７１０Ｃのそれぞれは、超並列処理（ＭＰＰ）環境では複数のプロセッサを備えることができる。
図示するように、ＩＰＣリンク７１９は、アプリケーションホスト７１０Ａ〜７１０Ｃのプロセッサ間のＩＰＣ信号用の通信リンクを提供する。
さらに、アプリケーションホスト７１０Ａ〜７１０Ｃは、ネットワークリンク７５０を介して、互いに通信可能に結合され、且つ、複数のインテリジェントストレージデバイス７３０Ａ〜７３０Ｃに通信可能に結合される。
当業者には明らかであるように、ＩＰＣリンク６１９及びネットワークリンク６５０に関して上述したように、ＩＰＣリンク７１９及びネットワークリンク７５０は、さまざまなネットワークプロトコル及びオペレーティングシステム構成を使用して論理的には別々であるが、同じ物理ネットワークによって物理的に実施することができる。
【００２５】
アプリケーションホスト７１０Ａ〜７１０Ｃのそれぞれは、ネットワークリンク７５０を介して、インテリジェントストレージデバイス７３０Ａ〜７３０Ｃのそれぞれに直接アクセスする。
したがって、アプリケーションホスト７１０Ａ〜７１０Ｃのそれぞれは、クエリ又は検索要求のフラグメントを、インテリジェントストレージデバイス７３０Ａ〜７３０Ｃの１つ又は複数へ送信することができる。
結果データを複数のインテリジェントストレージデバイス６３０Ａ〜６３０Ｃに要求し、その後、複数のインテリジェントストレージデバイス６３０Ａ〜６３０Ｃから結果データを受信するアプリケーションホスト６１０Ａに関して上述したように、アプリケーションホスト７１０Ａ〜７１０Ｃのそれぞれは、さまざまなインテリジェントストレージデバイスから結果データを受信することができ、その後、受信した結果データにフィルタリングパラメータ又は他のオペレーションをさらに適用することができる。
【００２６】
上述したように、アプリケーションホスト７１０に返された結果データのサイズは、通常、結果データの生成される元となったソースデータのサイズよりも小さいため、上述したような本発明の他の有益な態様又は上記に基づいて当業者に明らかになるような本発明の他の有益な態様に加えて、本発明の実施形態は、超並列処理環境の並列処理又は分散環境を可能にするか又は改善するだけでなく、メモリスラッシング等の有害な現象を削減又は除去することもできる。
【００２７】
さまざまな検索要求タイプを上述したが、本発明の他の実施形態では、たとえば、データベース検索要求又はテキスト検索要求以外の他の検索要求タイプを要求することができることが理解されるべきである。さらに、現在知られているか又は今後開発される、ソフトウェア、ハードウェア、それらの構成、実施の詳細、及び実施の技法における他の変形、並びに、それらの均等物が、他の実施形態で使用することができ、本発明の一部とみなされることも理解されるべきである。
【符号の説明】
【００２８】
１００・・・インテリジェントデータストレージシステム
１１０・・・アプリケーションホスト
１１２・・・プロセッサ
１１８・・・バス
１３０・・・アタッチされたインテリジェントストレージデバイス
１３２・・・プロセッサ
１３４・・・メモリ
１３８・・・バス
１４０・・・ストレージ媒体
１７４・・・メモリ
２００・・・ネットワーク化されたインテリジェントデータストレージシステム
２１０・・・アプリケーションホスト
２１２・・・プロセッサ
２１４・・・メモリ
２１６・・・通信インターフェース
２３０・・・インテリジェントストレージデバイス
２３２・・・プロセッサ
２３４・・・メモリ
２３６・・・通信インターフェース
２４０・・・ストレージ媒体
２５０・・・通信リンク
３００・・・インテリジェントデータストレージシステム
３１０・・・アプリケーションホスト
３３０・・・ソフトウェアストレージマネージャオブジェクト
３５０・・・インテリジェントストレージデバイス
４００・・・インテリジェントデータストレージシステム
４１０・・・アプリケーションホスト
４３０・・・ストレージマネージャオブジェクト
４５０・・・インテリジェントストレージデバイス
５００・・・インテリジェントデータストレージシステム
５１０・・・アプリケーションホスト
５１８・・・通信リンク
５３０・・・インテリジェントストレージデバイス
６００・・・インテリジェントデータストレージシステム
６１０・・・アプリケーションホスト
６１８・・・通信リンク
６１９・・・ＩＰＣリンク
６３０・・・インテリジェントストレージデバイス
６５０・・・ネットワークリンク
７００・・・インテリジェントデータストレージシステム
７１０・・・アプリケーションホスト
７１９・・・ＩＰＣリンク
７３０・・・インテリジェントストレージデバイス
７５０・・・ネットワークリンク
【図１】
2009181577.tif 000003
【図２】
2009181577.tif 000004
【図３】
2009181577.tif 000005
【図４】
2009181577.tif 000006
【図５】
2009181577.tif 000007
【図６】
2009181577.tif 000008
【図７】
2009181577.tif 000009