(57)【要約】【課題】向上した性能を有するストレージ装置を提供する。【解決手段】本発明の側面によれば、スマートストレージ装置はアプリケーションによって伝達されるデータ位置以外の属性を含む情報に基づいて知能的にデータを選択し、そしてこのようなデータを読み出し、スクラビングを遂行し、そして結果をアプリケーションに報告する。【選択図】図１
2018028905.tif 000002
【特許請求の範囲】
【請求項１】
スクラビング（ｓｃｒｕｂｂｉｎｇ）検索基準を受信するように構成されるストレージ制御器を含み、
前記ストレージ制御器は、
コンピュータにより読み出される媒体に含まれたデータ要素と連関されたデータ属性客体にアクセスするように構成されるデータ分析エンジンと、
ここで、各データ要素は、データ属性客体と連関されて格納され、前記各データ要素は、データ客体及びエラー訂正客体を含み、前記データ分析エンジンは、前記スクラビング検索基準に対応するデータ属性客体と連関された前記コンピュータにより読み出される媒体に含まれたデータ要素を検索するようにさらに構成され、
前記スクラビング検索基準に対応するデータ属性客体と連関して検索された各データ要素に対して、前記データ客体を前記エラー訂正客体と比較して前記データ客体がエラーを含むか否かを判断するように構成されるエラー検出エンジンと、を含むことを特徴とする電子装置。
【請求項２】
前記コンピュータにより読み出される媒体をさらに含むことを特徴とする請求項１に記載の電子装置。
【請求項３】
前記エラー検出エンジンは、どのデータ要素がエラーを含むデータ客体を含むかを示す報告を出力するようにさらに構成されることを特徴とする請求項１に記載の電子装置。
【請求項４】
前記ストレージ制御器は、識別されたバッファ位置を受信するようにさらに構成され、
前記エラー検出エンジンは、前記報告を前記識別されたバッファ位置に出力するようにさらに構成されることを特徴とする請求項３に記載の電子装置。
【請求項５】
前記データ属性客体に含まれた各属性に対する属性インデックスをさらに含み、
前記データ分析エンジンは、前記属性インデックスへのアクセスによって、データ要素と連関されたデータ属性客体にアクセスし、そして
前記データ分析エンジンは、前記属性インデックスの活用によって、前記スクラビング検索基準に対応するデータ属性客体と連関されたデータ要素を検索してどのデータ要素が前記スクラビング検索基準に対応するかを判断することを特徴とする請求項１に記載の電子装置。
【請求項６】
前記属性インデックスは、整列されたツリー（ｓｏｒｔｅｄ  ｔｒｅｅ）形態であることを特徴とする請求項５に記載の電子装置。
【請求項７】
前記ストレージ制御器は、データ及び前記データを記述する属性値を受信するようにさらに構成され、そして
前記ストレージ制御器は、新しいデータ要素及び前記新しいデータ要素と連関された新しいデータ属性客体を生成するように構成され、前記新しいデータ属性客体は、前記受信された属性値を含み、前記新しいデータ要素のデータ客体は、前記受信されたデータを含むことを特徴とする請求項１に記載の電子装置。
【請求項８】
前記ストレージ制御器は、１つ以上の属性値を生成するようにさらに構成され、
前記新しいデータ要素と連関された前記新しいデータ属性客体は、前記１つ以上の生成された属性値を含むことを特徴とする請求項７に記載の電子装置。
【請求項９】
前記ストレージ制御器は、前記受信したデータに対応するエラー訂正値を生成するようにさらに構成され、
前記新しいデータ要素の前記エラー訂正客体は、前記エラー訂正値を含むことを特徴とする請求項７に記載の電子装置。
【請求項１０】
前記データ属性客体に含まれた各属性に対する属性インデックスをさらに含み、前記ストレージ制御器は、前記新しいデータ要素に対応するノードを含むように各データ属性インデックスを更新するようにさらに構成されることを特徴とする請求項７に記載の電子装置。
【請求項１１】
データストレージ装置においてスクラビング（ｓｃｒｕｂｂｉｎｇ）を遂行する方法において、
１つ以上のデータ要素が前記データストレージ装置に格納され、各データ要素は、１つ以上のデータ属性と連関されて格納され、各データ要素は、データ客体及びエラー訂正客体を含み、
前記方法は、
プロセッサによってスクラビング検索基準を受信する段階と、
前記プロセッサによって前記スクラビング検索基準に対応するデータ属性と連関されたデータ要素の位置を検索する段階と、
前記プロセッサによって、前記スクラビング検索基準に対応する前記データ属性を有し前記位置が検索されたデータ要素の各々がスクラビングを必要とするか否かを判断する段階と、
前記プロセッサによって、どのデータ要素がそれらのデータ客体にエラーを含むかを示す報告を出力する段階を含むことを特徴とする方法。
【請求項１２】
前記データ要素は、コンピュータにより読み出される媒体に含まれることを特徴とする請求項１１に記載の方法。
【請求項１３】
識別されたバッファ位置を受信する段階をさらに含み、
前記報告を出力する段階は、前記報告を前記識別されたバッファ位置に出力する段階を含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記スクラビング検索基準に対応するデータ属性と連関されたデータ要素の位置を検索する段階は、前記スクラビング検索基準に対応するノードに対する属性インデックスを検索する段階を含むことを特徴とする請求項１１に記載の方法。
【請求項１５】
前記属性インデックスは、整列されたツリー（ｓｏｒｔｅｄ  ｔｒｅｅ）形態であることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記プロセッサによってデータ及び前記データを記述する属性値を受信する段階と、
前記プロセッサによって新しいデータ要素を生成する段階と、をさらに含み、
前記新しいデータ要素は、前記受信された属性値及び前記受信されたデータを含む新しいデータ要素のデータ客体と連関されて格納されることを特徴とする請求項１１に記載の方法。
【請求項１７】
前記プロセッサによって１つ以上の属性値を生成する段階をさらに含み、
前記新しいデータ要素は、前記１つ以上の生成された属性値と連関されて格納されることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記プロセッサによって前記受信されたデータに対応するエラー訂正値を生成する段階をさらに含み、
前記新しいデータ要素の前記エラー訂正客体は、前記エラー訂正値を含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記プロセッサによって前記新しいデータ要素に対応するノードを含むように属性インデックスを更新する段階をさらに含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
データ要素を含むコンピュータにより読出し可能な媒体と、
各データ要素は、データ属性客体と連関されて格納され、前記各データ要素は、データ客体及びエラー訂正客体を含み、各データ属性客体は、定められた数の属性を含み、
データ属性客体に含まれた各属性に対する属性インデックスと、
スクラビング（ｓｃｒｕｂｂｉｎｇ）検索基準及び識別されたバッファ位置を受信するように構成されるストレージ制御器と、を含み、
前記ストレージ制御器は、
属性インデックスを活用して前記スクラビング検索基準に対応するデータ属性客体と連関されて前記コンピュータにより読出し可能な媒体に格納されたデータ要素を検索するように構成されるデータ分析エンジンと、
前記スクラビング検索基準に対応するデータ属性客体と連関されて検索された各データ要素に対して前記データ客体を前記エラー訂正客体と比較して前記データ客体がエラーを含むか否かを判断し、そしてどのデータ要素がエラーを含むデータ客体を含むかを示す報告を前記識別されたバッファ位置に出力するようにさらに構成されるエラー検出エンジンと、を含むことを特徴とするデータスクラビング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子装置、方法、及びデータストレージ装置に係り、特にデータスクラビング（ｓｃｒｕｂｂｉｎｇ）を実行する電子装置、方法、及びデータスクラビング装置に関する。
【背景技術】
【０００２】
データスクラビング（ｄａｔａ  ｓｃｒｕｂｂｉｎｇ）は周期的にエラーについてメモリ又はストレージをチェックし、そしてチェックサム（ｃｈｅｃｋｓｕｍｓ）、エラー訂正コード、又はデータのコピーの形態にある冗長データ（ｒｅｄｕｎｄａｎｔ  ｄａｔａ）を利用してエラーを訂正する背景作業である。
【０００３】
多くのアプリケーション（ａｐｐｌｉｃａｔｉｏｎｓ）がデータスクラビングを使用する。例えば、ファイルシステムはストレージ装置に格納されたデータの無欠性（ｉｎｔｅｇｒｉｔｙ）をチェックするためにデータスクラビングを活用し、そしてデータベースはデータベース記録の無欠性をチェックするためにデータスクラビングを活用する。
【０００４】
データスクラビング動作の一例として、アプリケーションは一般的にデータの位置（例えば、開始論理ブロックアドレス及び長さ）をストレージ装置に伝達することによって、どのデータにおいてスクラビングを遂行するかを識別する。その後ストレージ装置は指定されたデータを読み出し、そしてその無欠性をチェックする。
【０００５】
この背景技術について記載した上述の情報は発明の背景技術の理解を助けるためのものであり、この分野に一般的な技術を有する者に既に公知の従来技術にない情報を含み得る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第９，０８１，６９３号公報
【特許文献２】米国特許第８，５４３，５５６号公報
【特許文献３】米国特許第８，２８０，８５８号公報
【特許文献４】米国特許第８，３０７，２５９号公報
【特許文献５】米国特許第７，６６１，０４５号公報
【特許文献６】米国特許公開第２０１４／０００６８５９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、データスクラビングを実行する電子装置、方法、及びデータスクラビング装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の側面によれば、スマートストレージ装置はアプリケーション（ａｐｐｌｉｃａｔｉｏｎｓ）によって伝達される情報（データ位置以外の属性を含む）に基づいて知能的にデータを選択し、そしてこのようなデータにスクラビング（例えば、読出しスクラビング）を遂行し、そして結果をアプリケーションに報告する。
【０００９】
本発明の一側面によれば、電子装置が提供される。電子装置はスクラビング検索基準を受信するように構成されるストレージ制御器を含む。ストレージ制御器はデータ分析エンジン及びエラー検出エンジンを含む。データ分析エンジンはコンピュータにより読み出される媒体に含まれたデータ要素と連関されたデータ属性客体にアクセスするように構成される。各データ要素はデータ属性客体と連関されて格納され、各データ要素はデータ客体及びエラー訂正客体を含み、前記データ分析エンジンは前記スクラビング検索基準に対応するデータ属性客体と連関された前記コンピュータにより読み出される媒体に含まれたデータ要素を検索するようにさらに構成される。エラー検出エンジンは前記スクラビング検索基準に対応するデータ属性客体と連関して検索された各データ要素に対して、前記データ客体を前記エラー訂正客体と比較して前記データ客体がエラーを含むか否かを判断するように構成される。
【００１０】
一実施形態において、電子装置は前記コンピュータにより読み出される媒体をさらに含む。
【００１１】
一実施形態において、前記エラー検出エンジンはどのデータ要素がエラーを含むデータ客体を含むかを示す報告を出力するようにさらに構成される。
【００１２】
一実施形態において、前記ストレージ制御器は識別されたバッファ位置を受信するようにさらに構成され、前記エラー検出エンジンは前記報告を前記識別されたバッファ位置に出力するようにさらに構成される。
【００１３】
一実施形態において、前記データ属性客体に含まれた各属性に対する属性インデックスをさらに含む。前記データ分析エンジンは前記属性インデックスへのアクセスによって、データ要素と連関されたデータ属性客体にアクセスする。そして、前記データ分析エンジンは前記属性インデックスの活用によって、前記スクラビング検索基準に対応するデータ属性客体と連関されたデータ要素を検索してどのデータ要素が前記スクラビング検索基準に対応するか否かを判断する。
【００１４】
一実施形態において、前記属性インデックスは整列されたツリー（ｓｏｒｔｅｄ  ｔｒｅｅ）形態である。
【００１５】
一実施形態において、前記ストレージ制御器はデータ及び前記データを記述する属性値を受信するようにさらに構成され、そして前記ストレージ制御器は新しいデータ要素及び前記新しいデータ要素と連関された新しいデータ属性客体を生成するように構成され、前記新しいデータ属性客体は前記受信された属性値を含み、前記新しいデータ要素の前記データ客体は前記受信されたデータを含む。
【００１６】
一実施形態において、前記ストレージ制御器は１つ以上の属性値を生成するようにさらに構成され、前記新しいデータ要素と連関された前記新しいデータ属性客体は前記１つ以上の生成された属性値を含む。
【００１７】
一実施形態において、前記ストレージ制御器は前記受信したデータに対応するエラー訂正値を生成するようにさらに構成され、前記新しいデータ要素の前記エラー訂正客体は前記エラー訂正値を含む。
【００１８】
一実施形態において、前記データ属性客体に含まれた各属性に対する属性インデックスをさらに含み、前記ストレージ制御器は前記新しいデータ要素に対応するノードを含むように各データ属性インデックスを更新するようにさらに構成される。
【００１９】
本発明のその他の側面において、データストレージ装置においてスクラビングを遂行する方法が提供される。１つ以上のデータ要素が前記データストレージ装置に格納され、各データ要素は１つ以上のデータ属性と連関されて格納され、各データ要素はデータ客体及びエラー訂正客体を含む。方法はプロセッサによってスクラビング検索基準を受信する段階、前記プロセッサによって前記スクラビング検索基準に対応するデータ属性と連関されたデータ要素の位置を検索する段階、前記プロセッサによって前記スクラビング検索基準に対応する前記データ属性を有する前記位置が検索されたデータ要素の各々がスクラビングを必要とするかを判断する段階、そして前記プロセッサによってどのデータ要素がそれらのデータ客体にエラーを含むか否かを示す報告を出力する段階を含む。
【００２０】
本発明のその他の側面において、データスクラビング装置が提供される。データスクラビング装置はデータ要素を含むコンピュータにより読出し可能な媒体を含み、各データ要素はデータ属性客体と連関されて格納され、各データ要素はデータ客体及びエラー訂正客体を含み、各データ属性客体は定められた数の属性を含む。データスクラビング装置は、またデータ属性客体に含まれた各属性に対する属性インデックスを含む。データスクラビング装置は、またスクラビング（ｓｃｒｕｂｂｉｎｇ）検索基準及び識別されたバッファ位置を受信するように構成されるストレージ制御器を含む。ストレージ制御器はデータ分析エンジン及びエラー検出エンジンを含む。データ分析エンジンは属性インデックスを活用して前記スクラビング検索基準に対応するデータ属性客体と連関されて前記コンピュータにより読出し可能な媒体に格納されたデータ要素を検索するように構成される。エラー検出エンジンは前記スクラビング検索基準に対応するデータ属性客体と連関されて検索された各データ要素に対して前記データ客体を前記エラー訂正客体と比較して前記データ客体がエラーを含むか否かを判断し、そしてどのデータ要素がエラーを含むデータ客体を含むかを示す報告を前記識別されたバッファ位置に出力するようにさらに構成される。
【発明の効果】
【００２１】
本発明によれば、スクラビングはスマートストレージ装置において遂行される。したがって、スマートストレージ装置の性能が向上し、スマートストレージ装置を使用するホストの作業負荷が減少する。
【図面の簡単な説明】
【００２２】
詳細な説明と共に、添付した図面は本発明の例示的な実施形態を示し、詳細な説明と共に本発明の原理を説明する。
【図１】本発明の実施形態に係るストレージ装置のブロック図である。
【図２】本発明の実施形態に係るデータ属性客体のダイヤグラムである。
【図３】本発明の一部の実施形態に係る第１及び第２属性インデックスのダイヤグラムである。
【図４】本発明の実施形態に係ってスクラブするデータの位置を検索する手続を説明する順序図である。
【図５】本発明の実施形態に係る外部制御器からストレージ制御器１１０によって受信される書込みコマンドのダイヤグラムである。
【図６】本発明の実施形態に係るデータのストレージ装置への書き込みを説明する順序図である。
【発明を実施するための形態】
【００２３】
以下の詳細な説明において、本発明の特定な例示的な実施形態、例示的な方法を図示及び説明する。この分野に熟練した者が分かるように、本発明は数多くの異なる形態により具現でき、ここに提示した実施形態に限定されると解釈されてはならない。各例示的な実施形態の特性又は側面の説明は通常的に他の例示的な実施形態の他の類似な特性又は側面に対して可能であると看做される。類似な参照番号は詳細な説明にわたって類似な要素を称する。
【００２４】
本記載はスマートストレージ装置に係る。スマートストレージ装置は属性（ａｔｔｒｉｂｕｔｅ）値と連関してデータを格納する。属性値はデータ及びデータが汚染された（ｃｏｒｒｕｐｔ）か否かを判断するのに使用されるエラー訂正値を記述する。スマートストレージ装置は外部の装置又はアプリケーション（ａｐｐｌｉｃａｔｉｏｎ）からスクラビング（ｓｃｒｕｂｂｉｎｇ）検索基準を受信する。スクラビング検索基準はスクラブ（ｓｃｒｕｂ）されるデータに属する属性を記述するが、スクラブされるデータの位置を含まないことがあり得る。スマートストレージ装置はスクラビング検索基準に適合する（ｍｅｅｔ）データに対してデータスクラビングを遂行し、スマートストレージ装置に格納されたどのデータがスクラビング検索基準に適合し、汚染されたかを示す報告を出力する。
【００２５】
図１は本発明の実施形態に係るストレージ装置のブロック図である。ストレージ装置１００はストレージ制御器１１０（例えば、ディスク制御器）及びストレージ媒体１２０を含む。ストレージ制御器１１０は外部制御器１３０と通信する。一部の実施形態において、外部制御器１３０はストレージ媒体１２０に保管されたデータを管理するファイルシステムを実行する。他の実施形態において、外部制御器１３０はストレージ媒体１２０に保管されたデータをデータベースとして管理する。
【００２６】
データはストレージ媒体１２０にデータ要素１２５ａ乃至１２５ｄ（総称して、‘‘データ要素１２５’’と称する）の形態により格納される。各データ要素１２５はデータ属性客体１２１ａ乃至１２１ｄ（総称して、‘‘データ属性客体１２１’’と称する）、データ客体１２２ａ乃至１２２ｄ（総称して、‘‘データ客体１２２’’と称する）、そしてエラー訂正客体１２３ａ乃至１２３ｄ（総称して、‘‘エラー訂正客体１２３’’と称する）（例えば、チェックサム（ｃｈｅｃｋｓｕｍ）値）を含む。
【００２７】
データ客体１２２は、外部制御器１３０のような装置がストレージ媒体１２０に格納した実質的なデータを含む。
【００２８】
エラー訂正客体１２３は対応するデータ客体１２２に含まれたデータに対する冗長データを含む（例えば、エラー訂正客体１２３ａはデータ客体１２２ａに含まれたデータに対する冗長データを含み、エラー訂正客体１２３ｂはデータ客体１２２ｂに格納されたデータに対する冗長データを含む等）。一部の実施形態において、例えば、エラー訂正客体１２３はチェックサム値を含む。実施形態において、エラー訂正客体１２３は循環冗長チェック（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ）、消去コード、ハッシュ（ｈａｓｈ）コード、ＢＣＨコード、ハミングコード、及び／又は他のエラー検出又は訂正方法論より導出される値を含む。‘‘冗長データ’’を説明したが、多様な実施形態において、エラー訂正客体１２３に格納されたデータは対応するデータ客体１２２に含まれたデータ又はデータの部分を含まないことがあることに注意しなければならない。多様な実施形態において、冗長データは対応するデータ客体１２２に含まれたデータより小さいか、又は大きい。すなわち、  ‘‘冗長データ’’はデータ客体１２２に含まれたデータより大きいことがあり得る。エラー訂正客体１２３に含まれたデータはデータ客体１２２が汚染されたか否かを判断するために対応するデータ客体１２２に含まれたデータと比較される。この発明の明細書の提出時にこの分野において通常の技術を有する者はエラー訂正客体１２３に対する多数の可能な構成に精通している。
【００２９】
データ客体１２２及びエラー訂正客体１２３は別の客体として示したが、一部の実施形態においてデータ客体１２２に格納されたデータ及びエラー訂正客体１２３に格納された冗長データは分離不可能な単一データの形態を有する。例えば、多様なエラー検出又はエラー訂正コード又は前記方法論により、冗長データはデータ内に配置されるか、又は冗長データはデータを変換するのに使用されて、データ及び冗長データがデータ客体の分離不可能な構成要素の形成をもたらす。
【００３０】
データ属性客体１２１は、対応するデータ客体１２２を説明する属性に対する値を含む（例えば、データ属性客体１２１ａはデータ客体１２２ａを説明する値を含み、データ属性客体１２１ｂはデータ客体１２２ｂを説明する値を含む）。一部の実施形態において、データ属性客体１２１はデータ客体１２２に含まれたデータの生成日、最終修正日、及び／又はサイズを示す値を含む。一部の実施形態において、データ属性客体１２１はデータ客体１２２に含まれたデータを生成した使用者又はプログラム、又はデータ客体１２２に含まれたデータをストレージ媒体１２０に格納しようとした使用者又はプログラムを示す。
【００３１】
一実施形態において、データ属性客体１２１はデータ客体１２２に含まれたデータの敏感度属性に対する値を含む。敏感度は任意のレベルに分割される。重要データ、又は小さい汚染エラーが大きな問題となるデータにはさらに高い敏感度レベルが割当される。一部の実施形態において、さらに高い敏感度レベルを有するデータはさらに頻繁にスクラブされる。
【００３２】
一部の実施形態において、データ属性客体１２１はデータ客体１２２に含まれたデータをスクラビングした最後の時間及び日付を示す値を含む。
【００３３】
図２は本発明の実施形態に係るデータ属性客体２００の一実施形態のダイヤグラムである。データ属性客体２００は次のブロック２０６のサイズを示す値を含むブロック２０４を含む。ブロック２０６はデータ属性客体２００を含むデータ要素１２５に対する固有識別子（以後、‘‘ＵＩＤ’’と称することもある）である値を含む。ストレージ媒体の各データ要素１２５は固有のＵＩＤを有する。
【００３４】
ブロック２０８は次のブロック２１０のサイズを示す値を含む。ブロック２１０は第１属性として説明されるデータ属性客体２００に対応するデータ客体１２２の属性（又は、例えば、それに含まれたデータの属性）を記述する値を含む。
【００３５】
データ属性客体２００のようなデータ属性客体の実施形態は多様な多数の属性を含む。各属性は次のブロックのサイズを示す値を含むブロック、及び属性の値を含むブロックを含む。例えば、データ属性客体２００はＸ個の属性を含む。したがって、データ属性客体２００は、第Ｘ属性を記述する値のサイズを示す値を含むブロック２０８’及び第Ｘ属性を記述する値を含むブロック２１０’を含む。
【００３６】
例示的なデータ属性客体２００において、対応するデータ客体を記述する属性に対する値は可変的なサイズを有する。代案的な実施形態において、各値は特定の（ｓｐｅｃｉｆｉｅｄ）長さを有する。したがって、このような実施形態において、データ属性客体は値のサイズを記述するブロックを含まなくともよい。
【００３７】
再び図１を参照すると、ストレージ制御器１１０はファームウェア１１２、エラー検出エンジン１１４、そしてデータ分析エンジン１１６を含む。
【００３８】
ストレージ制御器１１０は外部制御器１３０からスクラビング検索基準を受信する。スクラビング検索基準は少なくとも１つの特定の属性、特定の属性の値、そして関係識別子（例えば、より小さい、より大きい、等しい、同一であるか又はより大きい、あるいは等しいか、又はより小さい）を含む。一部の実施形態において、スクラビング検索基準は複数の特定の属性、対応する属性値、そして対応する関係識別子、そして‘‘論理積（ＡＮＤ）’’、‘‘論理和（ＯＲ）’’、‘‘排他的論理和（ＸＯＲ）’’又は各々の間の他の関係を含む。これと共に、受信された任意のスクラビング検索基準及び対応する関係識別子はデータ整合規則を形成する。データ属性客体１２１に含まれた属性値がデータ整合規則と比較されて、データ属性客体１２１がデータ整合規則に相応しいか否かが判断される。
【００３９】
例えば、スクラビング検索規則は、「第１属性（ファイルサイズに対応）が５０ＭＢより小さく」、論理積（ＡＮＤ）、「第２属性（生成日に対応）が２０１６／０１／０１以後であり」、論理積（ＡＮＤ）「第２属性が２０１６／０１／３１以前である」場合を含む。したがって、２０１６年１月中に生成され、５０ＭＢより小さいデータを含むデータ客体１２２に対応するデータ属性客体１２１はデータ整合規則を満足する。２０１６年１月に生成されないデータを含むか、又は５０ＭＢより大きいデータを含むデータ客体１２２に対応するデータ属性客体１２１はデータ整合規則を満足しない。
【００４０】
データ分析エンジン１１６はデータ属性客体１２１に含まれた値にアクセスする。ストレージ制御器１１０がスクラビング検索基準を受信する時、データ分析エンジン１１６はどのデータ要素１２５がデータ整合規則に相応しいデータ属性客体１２１を含むか否かを判断する。データ分析エンジン１１６はデータ整合規則に相応しいデータ属性客体１２１を有すると検索されたデータ要素１２５をエラー検出エンジン１１４に通知する。これは各データ要素１２５のＵＩＤをエラー検出エンジン１１４に伝達することによって、又は少なくともデータ客体１２２に含まれたデータ、及びエラー訂正客体１２３を含むデータ要素１２５に含まれたデータのエラー検出エンジン１１４への直接伝達によって達成される。
【００４１】
エラー検出エンジン１１４は、エラー訂正客体１２３に含まれたデータ及びデータ客体１２２に含まれたデータの比較に基づいて、データ整合規則に相応しいデータ要素１２５のいずれかがエラーを含むか、即ち汚染されたかを、判断する。例えば、エラー訂正客体１２３に含まれたデータ及びデータ客体１２２に含まれたデータの比較は、エラー訂正客体１２３に含まれたデータを生成するのに使用されるコーディングスキームによって要求されるエラー検出方法又はメカニズムの形態を取る。この分野において通常の技術を有する者はこのような比較を遂行するための方法又はメカニズムに精通している。このような方法又はメカニズムはチェックサム、循環冗長チェック、消去コード、ハッシュコード、ＢＣＨコード、又はハミングコードを含むが、これに限定されない。一部の実施形態において、エラー検出エンジン１１４はチェックサムエンジンである。
【００４２】
一部の実施形態において、エラー検出エンジン１１４は、（１）データ整合規則に相応しいデータ属性客体１２１を含み、そして（２）比較された時に、データ客体１２２に含まれたデータが汚染されたことを示すデータ客体１２２及びエラー訂正客体１２３を全て含むデータ要素１２５を識別する報告を生成する。一部の実施形態において、外部制御器１３０はスクラビング基準と共にバッファを識別し、ストレージ制御器１１０は報告を識別されたバッファに書き込む。外部制御器１３０は識別されたバッファから報告を読み出す。外部制御器１３０は識別された汚染されたデータを補修する段階を有する。
【００４３】
一部の実施形態において、エラー訂正客体１２３は、汚染されたと判断された時にデータ客体１２２に含まれたデータを補修するのに充分な冗長データを含む。例えば、エラー訂正客体１２３はハミングコードまで導出される値を含む。このような実施形態において、データ客体１２２に格納されたデータが汚染されたと判断することによって、エラー検出エンジン１１４は可能であれば、汚染されたデータを補修する。一部のこのような実施形態において、報告は（１）エラーが検索され、修正されたか、又は（２）エラーが検索され、修正不可能であるかを示す。
【００４４】
図３は本発明の一部の実施形態に係る第１属性インデックス３１０及び第２属性インデックス３２０のダイヤグラムである。一部の実施形態において、ストレージ装置１００はストレージ媒体１２０に格納されたデータ要素１２５のデータ属性客体１２１に含まれた各属性に対する１つの属性インデックスを含む。例えば、図３において、データ属性客体１２１は第１属性及び第２属性に対する値を含む。したがって、ストレージ装置１００は第１属性に対応する第１属性インデックス３１０及び第２属性に対応する第２属性インデックス３２０を含む。このような実施形態において、データ分析エンジン１１６はデータ属性インデックスを利用してどのデータ要素１２５がデータ整合規則に相応しいデータ属性客体１２１を含むかを判断する。
【００４５】
属性インデックスはストレージ媒体１２０に格納された各データ要素１２５に対するノード（ｎｏｄｅ）を含む。特定のデータ要素１２５に対するノードは特定のデータ要素１２５のデータ属性客体１２１に含まれた属性インデックスの対応する属性に対する値を含む（例えば、第１属性に対応する第１属性インデックス３１０のノードは各データ属性客体１２１に格納された第１属性値を含む）。各ノードは、またＵＩＤ又はストレージ媒体１２０上のデータ要素の位置に対するポインターのような特定のデータ要素１２５の固有識別子を含む。
【００４６】
属性インデックスはノードに含まれた属性の値に基づいて整列される。一部の実施形態において、属性インデックスは整列されたツリー（ｓｏｒｔｅｄ  ｔｒｅｅ）形態である。データ分析エンジン１１６は特定の属性を有するスクラビング検索基準を受信する時、データ分析エンジン１１６は、特定の属性及び関係識別子の値を満足する特定の属性に対応する属性の値を有するすべてのデータ要素１２５の固有識別子（ＵＩＤのような）を作成するために特定の属性に対応する属性インデックスを使用する。
【００４７】
一部の実施形態において、属性インデックスのノードはデータ属性客体１２１である。そのような実施形態において、データ要素１２５は属性インデックスに格納されたデータ属性客体１２１と連関されるが、データ要素１２５はデータ属性客体１２１を含まず、データ客体１２２に含まれたデータを記述する属性はデータ要素１２５に格納されない。
【００４８】
図４は本発明の実施形態に係ってスクラブするデータの位置を検索する手続を説明する順序図である。この手続は、例えば図１の装置によって遂行される。
【００４９】
Ｓ４０２段階において、スクラビング検索基準が受信される。スクラビング検索基準はデータ整合規則を含む。例えば、スクラビング検索基準は少なくとも１つの特定の属性、特定の属性の特定な値、そして関係識別子（より小さい、より大きい、等しい、同一であるか、又はより大きい、あるいは等しいか又はより小さいのような）を含む。一部の実施形態において、スクラビング検索基準は複数の特定の属性、対応する属性値、そして対応する関係識別子、そして‘‘論理積（ＡＮＤ）’’、‘‘論理和（ＯＲ）’’、‘‘排他的論理和（ＸＯＲ）’’又はデータ整合規則に適合するために必ず満足しなければならない各々の間に定義された他の関係を含む。一部の実施形態において、識別されたバッファの位置もまたＳ４０２段階において受信される。Ｓ４０２段階は、例えば、ストレージ制御器１１０（又はストレージ制御器１１０と連関されたプロセッサ）によって遂行される。
【００５０】
Ｓ４０４段階において、データ整合規則に相応しいデータ要素１２５の位置が検索される。Ｓ４０４段階は、例えばデータ分析エンジン１１６（又は、データ分析エンジン１１６と連関されたプロセッサ）によって遂行される。
【００５１】
一部の実施形態において、データ要素１２５の位置は図３を参照して説明したような属性インデックスを利用して検索される。データ整合規則により各特定のアクセス項目に対して、特定の属性の特定の値及び関係識別子を満足するノードに対して同一の属性に対応する属性インデックスが検索される。一実施形態において、例えば属性インデックスは整列されたツリー（ｓｏｒｔｅｄ  ｔｒｅｅ）形態である。特定の属性及び関係識別子を満足するノードに対する属性インデックスを検索するために、特定の属性に対する特定の値に対応する新しいノードが整列されたツリーに追加され、ルート（ｒｏｏｔ）ノードにより作られる。ルートノードの左側又は右側のノードに含まれたＵＩＤのような固有識別子の全てが、関係識別子（例えば、より小さい、又はより大きい）に依存して、特定の属性の特定の値及び関係識別子を満足するデータ要素１２５を示すように作成される。特定の属性の多重の特定の値が単一データ整合規則に含まれる時、一旦、各々を満足するデータ要素１２５が検索されれば、データ要素１２５の目録が‘‘論理積（ＡＮＤ）’’、‘‘論理和（ＯＲ）’’、‘‘排他的論理和（ＸＯＲ）’’又は各々の間の他の関係に基づいて比較されて、全体データ整合規則を満足するデータ要素１２５の目録が確立される。
【００５２】
代案的な実施形態において、ストレージ媒体１２０に含まれた各データ要素１２５のデータ属性客体１２１はそれがデータ整合規則を満足するか否かを判断するためにチェックされる。
【００５３】
Ｓ４０６段階において、Ｓ４０４段階における位置が検索されたデータ整合規則を満足するデータ要素１２５がエラーを含むか否かを判断される。Ｓ４０６段階は、例えば、エラー検出エンジン１１４（又はエラー検出エンジン１１４と連関されたプロセッサ）によって遂行される。データ客体１２２に含まれたデータはエラー訂正客体１２３に含まれた冗長データと比較される。この比較に基づいて、データ客体１２２に含まれたデータが汚染されたか、即ち、エラーを有するかが判断される。エラーを含む各データ要素１２５の固有識別子（ストレージ媒体１２０上のデータ要素１２５の位置に対するポインター又はＵＩＤのような）の目録（ｌｉｓｔ）が作成される。
【００５４】
Ｓ４０８段階において、位置が検索されたデータ要素１２５の状態が報告される。Ｓ４０８段階は、例えば、ストレージ制御器１１０（又はストレージ制御器１１０と連関されたプロセッサ）によって遂行される。一部の実施形態において、データ要素１２５の目録が生成される。目録は（格納媒体１２０上のデータ要素１２５の位置に対するポインター又はＵＩＤのような）各データ要素１２５の固有識別子を含む。一部の実施形態において、目録はエラーを有すると検索された各データ要素１２５を含む。エラーは修正されない可能性がある。代案的な実施形態において、目録はデータ整合規則を満足した各データ要素１２５及び各データ要素１２５の状態（例えば、エラーを含むか、又は含まないか）を含む。
【００５５】
バッファが識別される一部の実施形態において、Ｓ４０８段階にて、報告が識別されたバッファ位置に格納される。エラー訂正客体１２３が充分な冗長データを含む一部の実施形態において、データ客体１２３に格納されたデータの任意の検出されたエラーは補修される。
【００５６】
図５は本発明の実施形態に係る外部制御器１３０からストレージ制御器１１０によって受信される書込みコマンド５００のダイヤグラムである。コマンドはどんな行動が遂行されるかをストレージ制御器１１０に示す値を含む操作ブロック５０２（ｏｐｅｒａｔｉｏｎ  ｂｌｏｃｋ）を含む。ここで、操作ブロック５０２内の値はストレージ制御器が書込みコマンド５００に応答してストレージ媒体にデータを書き込むべきであることを示す。
【００５７】
ブロック５０４は第１属性に対する値を含む。ブロック５０６は第２属性に対する値を含む。ブロック５０８は第３属性に対する値を含む。一部の実施形態において、属性に対する値を含むブロックの数が設定され、各書込みコマンドは各属性に対する値を含む必要がある。ブロック５１０はストレージ媒体１２０に格納されるデータを含む。第１属性、第２属性、及び第３属性のような属性の値はブロック５１０に含まれたデータを記述する。
【００５８】
図６は本発明の実施形態に係るデータのストレージ装置１００への書き込みを説明する順序図である。この手続は、例えば図１の装置によって遂行される。
【００５９】
Ｓ６０２段階において、書込みコマンドが受信される。書込みコマンドは、例えば、図５の書込みコマンド５００である。Ｓ６０２段階はストレージ制御器１１０（又はストレージ制御器１１０と連関されたプロセッサ）によって遂行される。書込みコマンドはストレージ媒体１２０に書き込まれるデータ及びデータの属性を記述する属性値を含む。
【００６０】
Ｓ６０４段階において、エラー訂正値が生成される。Ｓ６０４段階はストレージ制御器１１０（又はストレージ制御器１１０と連関されたプロセッサ）によって遂行される。生成によって、エラー訂正値はストレージ媒体１２０に格納されるデータの値に対応する。その後、データが汚染されたか、即ちエラーを含むと、エラー訂正値のデータとの比較はデータが汚染されたか、即ち、最初の形態から不適切に変更されたことを示す。一部の実施形態において、エラー訂正値はチェックサム値である。代案的な実施形態において、エラー訂正値はデータのコピー又はデータの部分である。他の代案的な実施形態において、エラー訂正値は循環冗長チェック、消去コード、ハッシュコード、ＢＣＨコード、ハミングコード、及び／又は他のエラー検出又は訂正方法論によって導出される。
【００６１】
代案的な実施形態において、エラー訂正値は書込みコマンドの一部としてＳ６０２段階において受信される。
【００６２】
Ｓ６０６段階において、データ要素１２５が生成される。Ｓ６０６段階は、例えば、ストレージ制御器１１０（又はストレージ制御器１１０と連関されたプロセッサ）によって遂行される。
【００６３】
データ要素１２５はデータ属性客体１２１を含む。データ属性客体１２１はデータ要素１２５に格納されるデータを記述する属性値を含む。一部の実施形態において、データ属性客体１２１に含まれた属性値はＳ６０２段階において受信された書込みコマンドに含まれた属性値である。一部の実施形態において、データ属性客体１２１は書込みコマンドにより受信されない属性値を追加的に含む。例えば、データ属性客体１２１はストレージ媒体１２０に追加された日付及び時間、データがエラーに対してチェックされた最後日付及び時間、データがスクラブされた最後時間、又は書込み命令から受信せずに分かる他のデータ属性に対する属性値を含む。
【００６４】
データ属性客体１２１に続いて、データ要素１２５はデータ客体１２２を含む。データ客体１２２はＳ６０２段階において書込みコマンドの一部として受信されたストレージ媒体１２０に格納されるデータを含む。データ客体１２２に続いて、データ要素１２５はエラー訂正客体１２３を含む。エラー訂正客体１２３はＳ６０４段階において生成されたエラー訂正値を含む。
【００６５】
Ｓ６０８段階において、生成されたデータ要素１２５がストレージ媒体１２０に格納される。Ｓ６０８段階はストレージ制御器１１０（又はストレージ制御器１１０と連関されたプロセッサ）によって遂行される。
【００６６】
Ｓ６１０段階において、ストレージ装置１００がデータ客体１２５の位置を検索するのに使用するためのデータ属性インデックスを含む一部の実施形態において、各属性インデックスが生成されたデータ要素１２５に対応する新しいノードに更新される。各新しいノードは属性インデックスに対応するデータ属性客体１２１に含まれた値、そしてＵＩＤ又はストレージ媒体１２０上のデータ要素の位置に対するポインターのような特定のデータ要素１２５の固有識別子を含む。属性インデックスがツリー形態に整列される実施形態のような属性インデックスの整列実施形態により、属性インデックスは整列を維持するように更新される。
【００６７】
‘‘第１’’、‘‘第２’’、‘‘第３’’等の用語を多様な要素、構成要素、領域、階層、及び／又はセクションを説明するために、ここで使用するが、このような要素構成要素、領域、階層、及び／又はセクションはこのような用語によって限定されないと理解されるべきである。このような用語は１つの要素、構成要素、領域、階層又はセクションをその他の１つの要素、構成要素、領域、階層又はセクションから区別するために使用される。したがって、以下において記述する第１要素、構成要素、領域、階層又はセクションは本発明の技術思想及び範囲から逸脱せず、第２要素、構成要素、領域、階層、又はセクションと称する。
【００６８】
１つの要素又は階層がその他の１つの要素又は階層の‘‘上に’’、‘‘連結’’、又は‘‘結合’’されると言及されれば、これは他の要素又は階層の直ちに上に、連結又は結合されるか、又は１つ以上の挟まれた要素又は階層が存在する。また、１つの要素又は階層が２つの要素又は階層の‘‘間’’にあると言及すれば、これは２つの要素又は階層の間の唯一の要素又は階層であるか、又は１つ以上の挟まれた要素又は階層が、また存在する。
【００６９】
ここに使用する用語は具体的な実施形態を記述する目的のためであり、本発明の制限を意図しない。ここで使用するように、単数形態は文脈が特に指摘しなければ、複数形態もまた含む。この明細書において使用される時に、‘‘含む’’、‘‘含んでいる’’は言及した特性、整数、段階、動作、要素、及び／又は構成要素の存在を明示し、１つ以上の他の特性、整数、段階、動作、要素、構成要素、及び／又はこれらのグループの存在又は追加を排除しない。ここで使用する、‘‘及び／又は’’の用語は連関された羅列された項目の１つ以上の任意のそしてすべての組合せを含む。要素の羅列に先行する時に、‘‘少なくとも１つの’’のような表現は要素の全体羅列を修飾し、羅列の個別要素を修飾しない。
【００７０】
ここで使用する‘‘実質的に’’、‘‘大略’’、そして類似な用語は簡易化の用語として使用し、程度の用語として使用せず、この分野において通常の技術を有する者によって認識される特定の又は計算された値の自明な変更を説明するように意図する。また、本発明の実施形態を説明する時に、‘‘することができる’’の使用は‘‘本発明の１つ以上の実施形態’’を参照する。ここで、使用するように、‘‘使用する’’、‘‘使用している’’、そして‘‘使用される’’の用語は‘‘活用する’’、‘‘活用している’’、そして、‘‘活用される’’の用語と各々同意語であると看做される。また、‘‘模範的な’’の用語は例又は例示を参照すると意図される。
【００７１】
ここで記述する本発明の実施形態に係る電子又は電気装置及び／又は任意の他の連関された装置又は構成要素は適切なハードウェア、ファームウェア（例えば、注文形半導体（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ））、ソフトウェア、又はソフトウェア、ファームウェア、そしてハードウェアの組合せにより具現される。例えば、このような装置の多様な構成要素は１つの集積回路（ＩＣ）チップに又は別のＩＣチップに形成される。また、このような装置の多様な構成要素はフレキシブル印刷回路フィルム（ｆｌｅｘｉｂｌｅ  ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｆｉｌｍ）、テープキャリヤーパッケージ（ＴＣＰ）（ｔａｐｅ  ｃａｒｒｉｅｒ  ｐａｃｋａｇｅ）、印刷回路基板（ＰＣＢ）（ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｂｏａｒｄ）、又は１つの基板に具現される。また、このような装置の多様な構成要素はコンピュータプログラム命令を実行し、ここに記述した多様な機能を遂行するために他のシステム構成要素と相互作用する１つ以上のコンピューティング装置の１つ以上のプロセッサにより駆動されるプロセス又はスレッドである。例えば、ストレージ制御器１１０はファームウェア１１２、エラー検出エンジン１１４、そしてデータ分析エンジン１１６が具現される１つのプロセッサを含む。そうでなければ、ストレージ制御器１１０はファームウェア１１２が具現される第１プロセッサ、エラー検出エンジン１１４が具現される第２プロセッサ、そしてデータ分析エンジン１１６が具現される第３プロセッサを含む。コンピュータプログラム命令はコンピューティング装置において、例えばランダムアクセスメモリ（ＲＡＭ）のような標準メモリ装置を利用して具現されるメモリに格納される。コンピュータプログラム命令は、例えばＣＤＲＯＭ、フラッシュドライブ等の他の非臨時的なコンピュータ読出し可能な媒体にまた格納される。また、この分野に熟練した者は本発明の例示的な実施形態の技術思想及び範囲から逸脱せず、多様なコンピューティング装置の機能が単一コンピュータ装置に組合されるか、又は集積されるか、又は特定なコンピューティング装置の機能が１つ以上の他のコンピューティング装置に分散されることを認識できる。
【００７２】
この発明を例示的な実施形態を具体的に参照して詳細に記述したが、ここに記述した実施形態は完全であり、又は本発明の範囲を記述された正確な形態に限定すると意図しない。以下の請求項及びそれと等価的なものにより説明するように、この分野及びこの発明が存在する技術に熟練した者は記述した構造そして組立及び動作の方法の変更及び修正がこの発明の原理、技術思想、そして範囲から意味あるように逸脱せずに、実施されることを理解すべきである。
【符号の説明】
【００７３】
１００  ストレージ装置
１１０  ストレージ制御器
１１２  ファームウェア
１１４  エラー検出エンジン
１１６  データ分析エンジン
１２０  ストレージ媒体
１２１、２００  データ属性客体
１２２  データ客体
１２３  エラー訂正客体
１２５  データ要素
１３０  外部制御器
２０４、２０６、２０８、２０８’、２１０、２１０’、５０４、５０６、５０８、５１０  ブロック
３１０  第１属性インデックス
３２０  第２属性インデックス
５００  書込みコマンド
５０２  操作ブロック
【図１】
2018028905.tif 000003
【図２】
2018028905.tif 000004
【図３】
2018028905.tif 000005
【図４】
2018028905.tif 000006
【図５】
2018028905.tif 000007
【図６】
2018028905.tif 000008