(57)【要約】  障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための、開示されたコンピュータ実施方法は、（１）コンピューティングデバイスにおいて、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信することと、（２）パリティチャンクを記憶する障害ドメインごとに、別のストライプからのパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信することと、（３）データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成することと、（４）少なくとも１つの新しいパリティチャンクが、パリティチャンクの組み合わせと一致しない場合に、障害ドメイン内のビット腐敗の存在を識別することと、を含んでもよい。様々な別の方法、システム、及びコンピュータ可読媒体もまた開示される。
2021515935.tif 000002
【特許請求の範囲】
【請求項１】
障害ドメインを有する分散型記憶デバイスにおいてビット腐敗を検出するためのコンピュータ実施方法であって、前記方法の少なくとも一部は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
前記コンピューティングデバイスにおいて、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信することと、
パリティチャンクを記憶する障害ドメインごとに、前記別のストライプからパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信することと、
前記データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成することと、
前記少なくとも１つの新しいパリティチャンクが、前記受信されたパリティチャンクの組み合わせと一致しない場合に、前記障害ドメイン内のビット腐敗の存在を識別することと、を含む、方法。
【請求項２】
データチャンクを記憶する前記障害ドメインにコマンドを送信して、前記データチャンクの組み合わせを作成することをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
パリティチャンクを記憶する前記障害ドメインにコマンドを送信して、前記パリティチャンクの組み合わせを作成することをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
少なくとも１つの新しいパリティチャンクを作成することは、データチャンクの各組み合わせにそれぞれの重みを乗じることと、その結果の積を加算することと、をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
ビット腐敗が識別されると、少なくとも１つのデータチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項６】
ビット腐敗が識別されると、少なくとも１つのパリティチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
前記ビット腐敗を識別することに呼応して、前記分散型記憶デバイスに関連付けられた潜在的なセキュリティリスクを識別することと、
前記潜在的なセキュリティリスクを識別することに呼応して、前記潜在的なセキュリティリスクを改善しようと試みるセキュリティアクションを実施することと、をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項８】
障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するためのシステムであって、前記システムは、
メモリに記憶された、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信する、第１の受信モジュールと、
前記メモリに記憶された、パリティチャンクを記憶する障害ドメインごとに、前記別のストライプからのパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信する、第２の受信モジュールと、
前記メモリに記憶された、前記データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成する、作成モジュールと、
前記メモリに記憶された、少なくとも１つの新しいパリティチャンクが、受信したパリティチャンクの組み合わせと一致しない場合に、前記障害ドメイン内のビット腐敗の存在を識別する、識別モジュールと、
前記第１の受信モジュール、前記第２の受信モジュール、前記作成モジュール、及び前記識別モジュールを実行する、少なくとも１つの物理プロセッサと、を備える、システム。
【請求項９】
前記メモリに記憶された、データチャンクを記憶する前記障害ドメインにコマンドを送信して、前記データチャンクの組み合わせを作成する、送信モジュールをさらに備える、請求項８に記載のシステム。
【請求項１０】
前記メモリに記憶された、パリティチャンクを記憶する前記障害ドメインにコマンドを送信して、前記パリティチャンクの組み合わせを作成する、送信モジュールをさらに備える、請求項８に記載のシステム。
【請求項１１】
少なくとも１つの新しいパリティチャンクを作成することは、データチャンクの各組み合わせにそれぞれの重みを乗じることと、その結果の積を加算することと、をさらに含む、請求項８に記載のシステム。
【請求項１２】
前記メモリに記憶された、ビット腐敗が識別されたときに、少なくとも１つのデータチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直す、書き直しモジュールをさらに備える、請求項８に記載のシステム。
【請求項１３】
前記メモリに記憶された、ビット腐敗が識別されたときに、少なくとも１つのパリティチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直す、書き直しモジュールをさらに備える、請求項８に記載のシステム。
【請求項１４】
前記メモリに記憶された、前記ビット腐敗を識別することに呼応して、前記分散型記憶デバイスに関連付けられた潜在的なセキュリティリスクを識別する、識別モジュールと、
前記メモリに記憶された、前記潜在的セキュリティリスクを識別することに呼応して、前記潜在的なセキュリティリスクを改善しようと試みるセキュリティアクションを実施する、実施モジュールと、をさらに備える、請求項８に記載のシステム。
【請求項１５】
１つ以上のコンピュータ実行可能命令を備える非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
前記コンピューティングデバイスにおいて、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを加算することによって作成されたデータチャンクの組み合わせを受信することと、
パリティチャンクを記憶する障害ドメインごとに、前記別のストライプからのパリティチャンクを加算することによって作成されたパリティチャンクの組み合わせを受信することと、
前記データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成することと、
前記少なくとも１つの新しいパリティチャンクが、前記受信したパリティチャンクの組み合わせと一致しない場合に、前記障害ドメイン内のビット腐敗の存在を識別することと、を行わせる、１つ以上のコンピュータ実行可能命令を含む非一過性コンピュータ可読媒体。
【請求項１６】
前記コンピュータ実行可能命令は、前記コンピューティングデバイスに、
データチャンクを記憶する前記障害ドメインにコマンドを送信して、前記データチャンクの組み合わせを作成することを行わせる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１７】
前記コンピュータ実行可能命令は、前記コンピューティングデバイスに、
パリティチャンクを記憶する前記障害ドメインにコマンドを送信して、前記パリティチャンクの組み合わせを作成することを行わせる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１８】
少なくとも１つの新しいパリティチャンクを作成することは、データチャンクの各組み合わせにそれぞれの重みを乗じることと、その結果の積を加算することと、をさらに含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１９】
前記コンピュータ実行可能命令は、前記コンピューティングデバイスに、
ビット腐敗が識別されると、少なくとも１つのデータチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことを行わせる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項２０】
前記コンピュータ実行可能命令は、前記コンピューティングデバイスに、
ビット腐敗が識別されると、少なくとも１つのパリティチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことを行わせる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ビット腐敗とは、記憶媒体のデータ完全性のゆっくりとした劣化である。ビット腐敗はまた、ビット減衰、データ腐敗、データ減衰及び／又はサイレント破損としても既知である場合がある。ビット腐敗は、ハードドライブ上のビットが状態をランダムに変更するときに生じるおそれがある。（例えば、アーカイブ使用のために）最近のデータ記憶容量が増えていること、及びデータが記憶媒体上に存在する時間が長くなっていることにより、特定のデータがビット腐敗によって影響を受ける可能性が高まっている。したがって、ビット腐敗を検出して補正するためのシステム及び方法の必要性がますます高まっている。ビット腐敗を検出するための従来の方法では、リモート分析を行うために、全てのデータチャンク及び全てのパリティチャンクをネットワークを通じて送信する。この結果、検出に長い期間がかかり、大量のネットワーク帯域幅が必要となっている。したがって、本開示は、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するためのシステム及び方法の必要性を識別し、それに対処する。
【発明の概要】
【０００２】
以下により詳細に記載されるように、本開示は、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための様々なシステム及び方法を説明する。
【０００３】
一実施形態では、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための方法は、（１）コンピューティングデバイスにおいて、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信することと、（２）パリティチャンクを記憶する障害ドメインごとに、別のストライプからのパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信することと、（３）データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成することと、（４）少なくとも１つの新しいパリティチャンクが、受信したパリティチャンクの組み合わせと一致しない場合に、障害ドメイン内のビット腐敗の存在を識別することと、を含んでもよい。
【０００４】
例では、方法は、データチャンクを記憶する障害ドメインにコマンドを送信して、データチャンクの組み合わせを作成することを含んでもよい。実施形態では、方法は、パリティチャンクを記憶する障害ドメインにコマンドを送信して、パリティチャンクの組み合わせを作成することを含んでもよい。
【０００５】
一例では、少なくとも１つの新しいパリティチャンクを作成することは、データチャンクの各組み合わせにそれぞれの重みを乗じることと、その結果の積を加算することと、をさらに含む。
【０００６】
実施形態では、方法は、ビット腐敗が識別されたときに、少なくとも１つのデータチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことを含んでもよい。いくつかの例では、方法は、ビット腐敗が識別されたとき、少なくとも１つのパリティチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことを含んでもよい。
【０００７】
さらなる実施形態では、方法は、（１）ビット腐敗を識別することに呼応して、分散型記憶デバイスに関連付けられた潜在的なセキュリティリスクを識別することと、（２）潜在的セキュリティリスクを識別することに呼応して、潜在的なセキュリティリスクを改善しようと試みるセキュリティアクションを実行することと、を含んでもよい。
【０００８】
一例では、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するためのシステムは、（１）メモリに記憶された、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信する、第１の受信モジュールと、（２）メモリに記憶された、パリティチャンクを記憶する障害ドメインごとに、別のストライプからのパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信する、第２の受信モジュールと、（３）メモリに記憶された、データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成する、作成モジュールと、（４）メモリに記憶された、少なくとも１つの新しいパリティチャンクが、受信したパリティチャンクの組み合わせと一致しない場合に、障害ドメイン内のビット腐敗の存在を識別する、識別モジュールと、を含む、メモリに記憶されたいくつかのモジュールを含んでもよい。システムはまた、第１の受信モジュール、第２の受信モジュール、作成モジュール、及び識別モジュールを実行する、少なくとも１つの物理プロセッサを含んでもよい。
【０００９】
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイスに、（１）コンピューティングデバイスにおいて、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを加算することによって作成されたデータチャンクの組み合わせを受信することと、（２）パリティチャンクを記憶する障害ドメインごとに、別のストライプからのパリティチャンクを加算することによって作成されたパリティチャンクの組み合わせを受信することと、（３）データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成することと、（４）少なくとも１つの新しいパリティチャンクが、受信したパリティチャンクの組み合わせと一致しない場合に、障害ドメイン内のビット腐敗の存在を識別することと、を行わせる、１つ以上のコンピュータ実行可能命令を含んでもよい。
【００１０】
上記で述べた実施形態のうちのいずれかからの特性は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【００１１】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
【図１】障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための例示的なシステムのブロック図である。
【図２】障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するためのさらなる例示的なシステムのブロック図である。
【図３】障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための例示的な方法のフロー図である。
【図４】ユーザ表示デバイス上に表示されてもよい例示的な警告のブロック図である。
【００１２】
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１３】
本開示は、概して、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するためのシステム及び方法を対象とする。いくつかの例では、本明細書に記載されるシステム及び方法は、データチャンクの組み合わせ及びパリティチャンクの組み合わせを分析するビット腐敗を検出するための技術を提供してもよい。サーバ及び／又は分散型記憶デバイスは、異なるストライプからのデータチャンクのそれぞれの組み合わせ及び／又はパリティチャンクのそれぞれの組み合わせを作成する。これらの組み合わせは、リモート分析のためにネットワークを介して全てのデータチャンク及び全てのパリティチャンクを送信する従来の方法とは対照的に、ネットワークを介してコンピューティングデバイスに送信される。コンピューティングデバイスは、データチャンクの組み合わせから新しいパリティチャンクを計算し、新しいパリティチャンクを受信したパリティチャンクの組み合わせと比較して、一致の有無を識別する。一致していない場合、ビット腐敗は、データチャンクのそれぞれ組み合わせ及びパリティチャンクの組み合わせに起因するストライプのうちの少なくとも１つに存在する。
【００１４】
このようにして、本明細書に記載されるシステム及び方法は、従来技術と比較した場合、ネットワークを通じてよりデータ送信を減らすことを可能にすること、ネットワークトラフィックを低減すること、及びビット腐敗のより高速な検出を可能にすることによって、コンピューティングデバイスの機能を改善してもよい。本明細書に記載されるシステム及び方法はまた、分散型記憶デバイスに関連付けられたセキュリティリスクを軽減してもよい。さらに、本明細書に記載されるシステム及び方法は、分散型記憶デバイスに記憶された情報の信頼性を高めることによって、コンピューティングデバイスの機能を改善してもよい。
【００１５】
以下では、図１〜図２及び図４を参照して、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実施方法についての詳細な説明もまた、図３に関連して提供される。
【００１６】
図１は、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための例示的なシステム１００のブロック図である。この図に例解されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含んでもよい。以下でより詳細に説明するように、モジュール１０２は、第１の受信モジュール１０４と、第２の受信モジュール１０６と、作成モジュール１０８と、識別モジュール１１０と、を含んでもよい。別個の要素として例解されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【００１７】
特定の実施形態では、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、１つ以上のタスクを実施させてもよい１つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下でより詳細に説明するように、１つ以上のモジュール１０２は、図２に例示したデバイスなど１つ以上のコンピューティングデバイス（例えば、コンピューティングデバイス２０２）上で記憶され、動作するように構成されているモジュールを表し得る。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成された１つ以上の特殊目的のコンピュータの全て又は一部分を表してもよい。
【００１８】
図１に示されるように、例示的なシステム１００はまた、記憶デバイス１２０など、１つ以上の記憶デバイスも含んでもよい。記憶デバイス１２０は、概して、データ及び／又はコンピュータ可読命令を記憶できる、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一例では、記憶デバイス１２０は、データチャンクの組み合わせ１２１、パリティチャンクの組み合わせ１２２及び／又は新しいパリティチャンク１２３のうちの１つ以上を示す情報を記憶、ロード、かつ／又は維持してもよい。記憶デバイス１２０の例としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられるが、これらに限定されない。
【００１９】
図１に示されているように、例示的なシステム１００はまた、物理プロセッサ１３０など、１つ以上の物理プロセッサも含み得る。物理プロセッサ１３０は、概して、コンピュータ可読命令を解釈でき、かつ／又は実行できる任意の種類又は形式のハードウェア実施処理ユニットを表す。一例では、物理プロセッサ１３０は、メモリ１４０に記憶されているモジュール１０２のうちの１つ以上にアクセスし得、かつ／又はこれらを修正し得る。追加的に又は代替的に、物理プロセッサ１３０は、障害ドメインを有する分散型記憶デバイス内のビット腐敗の検出を容易にするために、モジュール１０２のうちの１つ以上を実行してもよい。物理プロセッサ１３０の例としては、マイクロプロセッサ、マイクロコントローラ、中央処理ユニット（ＣＰＵ）、ソフトコアプロセッサを実装しているフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、これらのうちの１つ以上の部分、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適な物理プロセッサが挙げられるが、これらに限定されない。
【００２０】
図１に示されているように、例示的なシステム１００はまた、メモリ１４０など、１つ以上のメモリデバイスも含み得る。メモリ１４０は、概して、データ及び／又はコンピュータ可読命令を記憶できる、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一例では、メモリ１４０は、モジュール１０２のうちの１つ以上を記憶、ロード、及び／又は維持し得る。メモリ１４０の例としては、限定することなく、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられる。
【００２１】
本明細書で使用する場合、用語「障害ドメイン」は、概して、ビット腐敗の影響を受けやすいおそれがある情報を記憶することが可能な、記憶デバイス（例えば、図２の第１の分散型記憶デバイス２０８、図２の第２の分散型記憶デバイス２１２）の少なくとも一部を指す。いくつかの実施形態では、障害ドメインは、概して、データ及び／又はコンピュータ可読命令を記憶できる、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体であってもよい。一例では、障害ドメインは、データチャンク及び／又はパリティチャンクのうちの１つ以上を示す情報を記憶、ロード、かつ／又は維持してもよい。障害ドメインの例としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられてもよいが、これらに限定されない。
【００２２】
図１の例示的なシステム１００は、様々な態様で実装され得る。例えば、例示的なシステム１００の全て又は一部分は、図２の例示的なシステム２００の部分を表し得る。図２に示すように、システム２００は、ネットワーク２０４を介する第１のサーバ２０６及び／又はネットワーク２０４を介する第２のサーバ２１０と通信する、コンピューティングデバイス２０２を含んでもよい。一例では、モジュール１０２の機能性の全て又は一部分は、コンピューティングデバイス２０２及び／又は任意の他の好適なコンピューティングシステムによって実施されてもよい。以下でより詳細に説明するように、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２の少なくとも１つのプロセッサによって実行されると、コンピューティングデバイス２０２が分散型記憶デバイスの中のビット腐敗を検出できるようにしてもよい。
【００２３】
コンピューティングデバイス２０２は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。いくつかの例では、コンピューティングデバイス２０２は、ユーザ側ソフトウェアを実行するコンピュータを表してもよい。コンピューティングデバイス２０２の追加例としては、ノートブック、タブレット、デスクトップ、サーバ、携帯電話、個人情報機器（ＰＤＡ）、マルチメディアプレイヤー、組み込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、スマートビークル、ＩｏＴデバイス（例えば、スマート家電など）、ゲーム機、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２４】
ネットワーク２０４は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。一例では、ネットワーク２０４は、コンピューティングデバイス２０２と、第１のサーバ２０６と、第２のサーバ２１０との間の通信を容易にしてもよい。この例では、ネットワーク２０４は、無線及び／又は有線接続を使用して、通信又はデータ転送を容易にし得る。ネットワーク２０４の例としては、限定するものではないが、イントラネット、ワイドエリアネットワーク（Wide Area Network、ＷＡＮ）、ローカルエリアネットワーク（Local Area Network、ＬＡＮ）、パーソナルエリアネットワーク（Personal Area Network、ＰＡＮ）、インターネット、電力線通信（Power Line Communication、ＰＬＣ）、セルラネットワーク（例えば、汎欧州デジタル移動電話方式（Global System for Mobile Communications、ＧＳＭ）ネットワーク）、１つ以上の上記の部分、上記のうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なネットワークを含む。
【００２５】
第１のサーバ２０６は、概して、第１の分散型記憶デバイス２０８内に情報を記憶することが可能な、任意の種類又は形式の少なくとも１つのコンピューティングデバイスを表す。第１のサーバ２０６のさらなる例としては、特定のソフトウェアアプリケーションを動作させ、かつ／又は様々なストレージ、データベース、及び／又はウェブサービスを提供するように構成された、ストレージサーバ、データベースサーバ、アプリケーションサーバ、及び／又はウェブサーバが挙げられるが、これらに限定されない。図２において単一体として例解されるが、第１のサーバ２０６は、互いに連動して稼動し、かつ／又は動作する複数のサーバを含んでもよい、かつ／又は表してもよい。
【００２６】
第１の分散型記憶デバイス２０８は、概して、情報を記憶することができる任意の種類又は形式の少なくとも１つの記憶デバイスを表す。例では、第１の分散型記憶デバイス２０８の少なくとも一部は、障害ドメインであってもよい。第１の分散型記憶デバイス２０８は、概して、ビット腐敗の影響を受けやすいおそれがあるデータ及び／又はコンピュータ可読命令の記憶が可能な、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一例では、第１の分散型記憶デバイス２０８は、データチャンク及び／又はパリティチャンクのうちの１つ以上を示す情報を記憶、ロード、かつ／又は維持してもよい。第１の分散型記憶デバイス２０８の例としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、及び／又は任意の他の好適なストレージメモリが挙げられるが、これらに限定されない。
【００２７】
第２のサーバ２１０は、概して、第２の分散型記憶デバイス２１２内に情報を記憶することが可能な、任意の種類又は形式の少なくとも１つのコンピューティングデバイスを表す。第２のサーバ２１０のさらなる例としては、特定のソフトウェアアプリケーションを動作させ、かつ／又は様々なストレージ、データベース、及び／若しくはウェブサービスを提供するように構成された、ストレージサーバ、データベースサーバ、アプリケーションサーバ、及び／又はウェブサーバが挙げられるが、これらに限定されない。図２において単一体として例解されるが、第２のサーバ２１０は、互いに連動して稼動し、かつ／又は動作する複数のサーバを含んでもよい、かつ／又は表してもよい。
【００２８】
第２の分散型記憶デバイス２１２は、概して、情報を記憶することができる任意の種類又は形式の少なくとも１つの記憶デバイスを表す。例では、第２の分散型記憶デバイス２１２の少なくとも一部は、障害ドメインであってもよい。第２の分散型記憶デバイス２１２は、概して、ビット腐敗の影響を受けやすいおそれがあるデータ及び／又はコンピュータ可読命令の記憶が可能な、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一例では、第２の分散型記憶デバイス２１２は、１つ以上のデータチャンク及び／又はパリティチャンクを示す情報を記憶、ロード、かつ／又は維持してもよい。第２の分散型記憶デバイス２１２としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、及び／又は任意の他の好適なストレージメモリが挙げられるが、これらに限定されない。
【００２９】
第１のサーバ２０６及び第２のサーバ２１０が図２に示されているが、例では、システム２００は、少なくとも１つの分散型記憶デバイス（すなわち、第３の分散型記憶デバイスなど）に連結され、ネットワーク２０４に連結された少なくとも１つの追加のサーバ（すなわち、第３のサーバなど）を実装してもよい。
【００３０】
多くの他のデバイス又はサブシステムは、図１のシステム１００及び／又は図２のシステム２００に接続され得る。逆に、図１及び図２に示す構成要素及びデバイスの全てが、本明細書において説明及び／又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図２に示すものとは異なる様式で相互接続されてもよい。システム１００及び２００はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの１つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、及び／又はコンピュータ制御論理とも称される）としてコード化され得る。
【００３１】
「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びＢＬＵ−ＲＡＹディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュ媒体）などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【００３２】
図３は、障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するための例示的なコンピュータ実施方法３００のフロー図である。図３に示されている工程は、図１のシステム１００、図２のシステム２００、及び／又はこれらのうちの１つ以上の変形若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施され得る。一例では、図３に示されている工程のそれぞれは、複数の副工程を含む及び／又はそれらによって表される構造を有するアルゴリズムを表すものであり得、これらの例を以下に詳細に示す。
【００３３】
方法３００を実施する詳細な例は、以下に示す工程３０８の説明に従う。
【００３４】
図３に示すように、工程３０２において、本明細書に記載されるシステムのうちの１つ以上は、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信してもよい。本明細書に記載のシステムは、様々な方法で工程３０２を実施してもよい。例えば、第１の受信モジュール１０４は、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせ１２１を受信してもよい。
【００３５】
さらなる例では、方法３００は、データチャンクを記憶する障害ドメインにコマンドを送信して、データチャンクの組み合わせを作成することを含んでもよい。それに呼応して、データチャンクを記憶する障害ドメインは、異なるストライプからデータチャンクを追加することによって、データチャンクの組み合わせを作成してもよい。次いで、データチャンクを記憶する障害ドメインは、ネットワークを介してデータチャンクの組み合わせを送信してもよい。例えば、コンピューティングデバイス２０２は、データチャンクのそれぞれの組み合わせ１２１を送信するために、第１のサーバ２０６及び第２のサーバ２１０にコマンドを送信してもよい。第１のサーバ２０６及び第２のサーバ２１０は、コマンドを受信し、第１の分散型コンピューティングデバイス２０８及び第２の分散型コンピューティングデバイス２１２からそれぞれの構成データチャンクを取り出し、ネットワーク２０４を介してコンピューティングデバイス２０２に送信されるデータチャンクのそれぞれの組み合わせ１２１を作成する。
【００３６】
本明細書で使用する場合、用語「ストライプ」は、概して、記憶されたデータの論理シーケンシャルセグメントを指す。ストライプ化により、複数の記憶デバイスにわたってデータを拡散してアクセス時間を低減し、記憶信頼性を向上させ、ストレージ性能を向上させてもよい。
【００３７】
図３に示すように、工程３０４において、本明細書に記載されるシステムのうちの１つ以上は、パリティチャンクを記憶する障害ドメインごとに、別のストライプからパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信してもよい。本明細書に記載のシステムは、様々な方法で工程３０４を実施してよい。例えば、第２の受信モジュール１０６は、パリティチャンクを記憶する障害ドメインごとに、別のストライプからのパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせ１２２を受信してもよい。
【００３８】
さらなる例では、方法３００は、パリティチャンクを記憶する障害ドメインにコマンドを送信して、パリティチャンクの組み合わせを作成することを含んでもよい。それに呼応して、パリティチャンクを記憶する障害ドメインは、異なるストライプからパリティチャンクを追加することによって、パリティチャンクの組み合わせを作成してもよい。次いで、パリティチャンクを記憶する障害ドメインは、ネットワークを介してパリティチャンクの組み合わせを送信してもよい。例えば、コンピューティングデバイス２０２は、第１のサーバ２０６及び第２のサーバ２１０にコマンドを送信して、パリティチャンクのそれぞれの組み合わせ１２２を送信してもよい。第１のサーバ２０６及び第２のサーバ２１０は、コマンドを受信し、第１の分散型コンピューティングデバイス２０８及び第２の分散型コンピューティングデバイス２１２からそれぞれの構成パリティチャンクを取り出し、ネットワーク２０４を介してコンピューティングデバイス２０２に送信されるパリティチャンクのそれぞれの組み合わせ１２２を作成する。
【００３９】
図３に示すように、工程３０６において、本明細書に記載されるシステムのうちの１つ以上は、データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成してもよい。本明細書に記載のシステムは、様々な方法で工程３０６を実施してもよい。例えば、作成モジュール１０６は、データチャンクの組み合わせ１２１から少なくとも１つの新しいパリティチャンク１２３を作成してもよい。
【００４０】
さらなる例では、方法３００は、データチャンクの組み合わせにそれぞれの重みを乗じて、その結果の積を加算することによって、少なくとも１つの新しいパリティチャンクを作成することを含んでもよい。
【００４１】
図３に示すように、工程３０８において、本明細書に記載されるシステムのうちの１つ以上は、少なくとも１つの新しいパリティチャンクが、受信されたパリティチャンクの組み合わせと一致しない場合に、障害ドメイン内のビット腐敗の存在を識別してもよい。本明細書に記載のシステムは、様々な方法で工程３０８を実施してもよい。例えば、識別モジュール１１０は、少なくとも１つの新しいパリティチャンク１２３が、受信したパリティチャンクの組み合わせ１２２と一致しない場合に、障害ドメイン内のビット腐敗の存在を識別してもよい。
【００４２】
さらなる例では、方法３００は、ビット腐敗が識別されたときに、データチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことを含んでもよい。いくつかの実施形態では、方法３００は、ビット腐敗が識別されたときに、パリティチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことを含んでもよい。
【００４３】
さらなる例では、方法３００は、（１）ビット腐敗を識別することに呼応して、分散型記憶デバイスに関連付けられた潜在的なセキュリティリスクを識別することと、（２）潜在的なセキュリティリスクを識別することに呼応して、潜在的なセキュリティリスクを改善しようと試みるセキュリティアクションを実行することと、を含んでもよい。
【００４４】
さらなる例では、方法３００は、ビット腐敗の存在について警告を表示することをさらに含んでもよい。図４は、システム１００に連結されたユーザ表示デバイス４００の一例を示す。この例では、ユーザ表示デバイス４００は、ビット腐敗を検出すると、検出されたビット腐敗４０２の存在に関する警告をディスプレイ４０４を介して表示してもよい。検出されたビット腐敗の存在に関する警告４０２により、検出されたビット腐敗の存在のユーザ表示デバイス４００のユーザに警告してもよい。いくつかの実施形態では、検出されたビット腐敗の存在に関する警告４０２により、どのように続行するかに関する選択肢を表示してもよい、かつ／又はどのように続行するかに関する入力の受信を可能にしてもよい。いくつかの例では、続行するためのこれらの選択肢は、データ情報及び／又はパリティ情報を書き直すことを含んでもよい。
【００４５】
以下の方法３００を実施する詳細な非限定的な例を以下に示す。データチャンクＤ（ｘ，ｙ）及びパリティチャンクＰ（ｘ，ｙ）は、複数の分散型記憶デバイス（例えば、第１の第１の分散型コンピューティングデバイス２０８及び第２の分散型コンピューティングデバイス２１２）にわたってストライプに記憶される。このアレイは、このような構成を示す。
Ｄ１１  Ｄ１２  Ｄ１３  Ｄ１４  Ｐ１１  Ｐ１２
Ｄ２１  Ｄ２２  Ｄ２３  Ｄ２４  Ｐ２１  Ｐ２２
Ｄ３１  Ｄ３２  Ｄ３３  Ｄ３４  Ｐ３１  Ｐ３２
Ｄ４１  Ｄ４２  Ｄ４３  Ｄ４４  Ｐ４１  Ｐ４２
【００４６】
列は、同じ分散型記憶デバイス（ノードとしても知られる）に記憶されたデータチャンク及びパリティチャンクを識別する。行はストライプに対応する。例えば、第１の分散型記憶デバイスは、データチャンクＤ１１、Ｄ２１、Ｄ３１、及びＤ４１を記憶し、一方、第２の分散型記憶デバイスは、データチャンクＤ１２、Ｄ２２、Ｄ３２、及びＤ４２を記憶する。第５の分散型記憶デバイスは、パリティチャンクＰ１１、Ｐ２１、Ｐ３１、及びＰ４１を記憶する。パリティチャンクは、それぞれのデータチャンクに線形方程式を適用することによって形成してもよい。例えば、
Ｐ１＝Ｄ１＋Ｄ２＋Ｄ３＋Ｄ４
Ｐ２＝Ｄ１＋（２＊Ｄ２）＋（４＊Ｄ３）＋（８＊Ｄ４）
したがって、
Ｐ１１＝Ｄ１１＋Ｄ１２＋Ｄ１３＋Ｄ１４
Ｐ１２＝Ｄ１１＋（２＊Ｄ１２）＋（４＊Ｄ１３）＋（８＊Ｄ１４）
【００４７】
この例を続けると、第１のストライプは、Ｄ１１、Ｄ１２、Ｄ１３、Ｄ１４、Ｐ１１、及びＰ１２を含む。第２のストライプは、Ｄ２１、Ｄ２２、Ｄ２３、Ｄ２４、Ｐ２１、及びＰ２２を含む。第３のストライプは、Ｄ３１、Ｄ３２、Ｄ３３、Ｄ３４、Ｐ３１、及びＰ３２を含む。第４のストライプは、Ｄ４１、Ｄ４２、Ｄ４３、Ｄ４４、Ｐ４１、及びＰ４２を含む。４つのデータチャンク及び２つのパリティチャンクのこの配置は、２つの障害に耐えて、データ完全性を維持してもよい。
【００４８】
この例では、従来のビット腐敗検出技術は、ネットワークを介して２４個全てのデータチャンク及びパリティチャンクを送信するが、これは多くの時間及び帯域幅を消費する。しかしながら、この例では、提供された技術は、ネットワークトラフィックを７５％低減する６つのチャンクのみを送信する。
【００４９】
この例では、提供された技術は、データ及びパリティチャンクの組み合わせ（例えば、データチャンクの組み合わせ１２１及びパリティチャンクの組み合わせ１２２）を送信する。データチャンクの組み合わせ（Ｃ１１、Ｃ２１，Ｃ３１、及びＣ４１）は、以下のように（例えば、第１のサーバ１０６及び第２のサーバ２１０によって）計算される。
ノード１  Ｃ１１＝Ｄ１１＋Ｄ２１＋Ｄ３１＋Ｄ４１
ノード２  Ｃ２１＝Ｄ１２＋Ｄ２２＋Ｄ３２＋Ｄ４２
ノード３  Ｃ３１＝Ｄ１３＋Ｄ２３＋Ｄ３３＋Ｄ４３
ノード４  Ｃ４１＝Ｄ１４＋Ｄ２４＋Ｄ３４＋Ｄ４４
【００５０】
この例では、パリティチャンクの組み合わせ（Ｃ５１及びＣ６１）は、以下のように計算される。
ノード５  Ｃ５１＝Ｐ１１＋Ｐ２１＋Ｐ３１＋Ｐ４１
ノード６  Ｃ６１＝Ｐ１２＋Ｐ２２＋Ｐ３２＋Ｐ４２
【００５１】
データチャンクの組み合わせ及びパリティチャンクの組み合わせを作成した後、各ノード（例えば、第１のサーバ１０６及び第２のサーバ２１０）は、それらのそれぞれのデータチャンクの組み合わせ及びパリティチャンクの組み合わせを、ネットワーク（例えば、ネットワーク２０４）を介して、コンピューティングデバイス（例えば、コンピューティングデバイス２０２）に送信する。したがって、ネットワークを介して６つのチャンクのみが送信される。即ち、ノード１は、Ｃ１１を送信し、ノード２は、Ｃ２１を送信し、ノード３は、Ｃ３１を送信し、ノード４は、Ｃ４１を送信し、ノード５は、Ｃ５１を送信し、ノード６は、Ｃ６１を送信する。
【００５２】
コンピューティングデバイスは、工程３０２を実行することなどによって、ネットワークを介してデータチャンクの組み合わせを受信する。コンピューティングデバイスはまた、工程３０４を実行することなどによって、ネットワークを介してパリティチャンクの組み合わせを受信する。受信時に、コンピューティングデバイスは、工程３０６を実行することなどによって、データチャンクの組み合わせ（例えば、データチャンクの組み合わせ１２１）から、少なくとも１つの新しいパリティチャンク（例えば、新しいパリティチャンク１２３）を計算する。この例では、新しいパリティチャンク（Ｃ５１’及びＣ６１’）は、以下のように計算される。
Ｃ５１’＝Ｃ１１＋Ｃ２１＋Ｃ３１＋Ｃ４１
Ｃ６１’＝Ｃ１１＋（２＊Ｃ２１）＋（４＊Ｃ３１）＋（８＊Ｃ４１）
【００５３】
新しいパリティチャンクは、工程３０８を実行することなどによって、受信されたパリティチャンクの組み合わせと（例えば、コンピューティングデバイス２０２によって）比較されて、障害ドメイン内のビット腐敗の存在を識別する。換言すれば、Ｃ５１は、Ｃ５１’と比較される。さらに、Ｃ６１は、Ｃ６１’と比較される。パリティが一致する場合、４つのストライプのうちのいずれにおいてもビット腐敗は存在しない。パリティが一致しない場合、ビット腐敗は、４つのストライプのうちの少なくとも１つに存在するおそれがある。例では、ビット腐敗を検出すると、各ストライプは、それに続いて、ビット腐敗について個々にチェックされて、腐敗したデータ及び書き直されたデータの特定の位置を識別してもよい。他の実施形態では、データチャンクの組み合わせ及びパリティチャンクの組み合わせに起因するストライプの群全体を書き直してもよい。
【００５４】
上記したように、図３の方法３００に概説される工程は、データチャンクの組み合わせとパリティチャンクの組み合わせを分析するビット腐敗を検出及び補正するための技術を提供することができる。このようにして、本明細書に記載されるシステム及び方法は、従来技術と比較した場合、ネットワークを通じてよりデータ送信を減らすことを可能にすること、及び／又はビット腐敗のより高速な検出を可能にしてもよい。
【００５５】
非限定的な実用的なアプリケーションでは、ビット腐敗について４００ＧＢのボリュームを分析するための従来技術では、３３分超にわたって６００ＧＢを転送する必要があった。提供された技術で同じボリュームを分析するには、１１分未満で１５０ＧＢのみの転送が必要であった。
【００５６】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び／又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせ）構成を使用して、個々に、かつ／又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成してもよいため、事実上、例として見なされるべきである。
【００５７】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他のリモートインターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【００５８】
種々の実施形態によれば、図１の例示的なシステム１００の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び／又はデータは、仮想マシン内に存在し得る、かつ／又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ（例えば、ハイパーバイザ）によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。
【００５９】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、モバイルコンピューティング環境の部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス（例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス）、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なモバイルコンピューティングデバイスを含む、広範なモバイルコンピューティングデバイスによって実装され得る。一部の例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に１つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、かつ／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を制限する、制限されたプラットフォーム、アプリケーションのインストールを制限する（例えば、承認されたアプリケーションストアのみから得る）管理などを含む、１つ以上の異なる特性を含んでもよい。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、かつ／又はモバイルコンピューティング環境と相互作用し得る。
【００６０】
本明細書において説明及び／又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させてもよい。例えば、本明細書において例解及び／又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び／又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの１つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【００６１】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び／又は例解されているが、これらの例示的な実施形態のうちの１つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するモジュールを使用して、実装され得る。これらのモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのモジュールは、本明細書において開示される例示的な実施形態のうちの１つ以上を実施するように、コンピューティングシステムを構成し得る。
【００６２】
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、網羅的であることを意図するものでも、開示されたいずれかの正確な形態に限定されることを意図するものでもない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
【００６３】
別途記載されない限り、「〜に接続される（connected to）」及び「〜に連結される（coupled to）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、直接的及び間接的（即ち、他の要素又は構成要素を介した）接続の両方を許容するとして解釈されるものとする。加えて、「ａ」又は「ａｎ」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも１つ（at least one of）」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む（including）」及び「有する（having）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、「備える（comprising）」という語と同義的であり、かつ同じ意味を有する。
【図１】
2021515935.tif 000003
【図２】
2021515935.tif 000004
【図３】
2021515935.tif 000005
【図４】
2021515935.tif 000006
【手続補正書】
【提出日】令和2年9月1日(2020.9.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
障害ドメインを有する分散型記憶デバイスにおいてビット腐敗を検出するためのコンピュータ実施方法であって、前記方法の少なくとも一部は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
前記コンピューティングデバイスにおいて、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信することと、
パリティチャンクを記憶する障害ドメインごとに、前記別のストライプからパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信することと、
前記データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成することと、
前記少なくとも１つの新しいパリティチャンクが、前記受信されたパリティチャンクの組み合わせと一致しない場合に、前記障害ドメイン内のビット腐敗の存在を識別することと、を含む、方法。
【請求項２】
データチャンクを記憶する前記障害ドメインにコマンドを送信して、前記データチャンクの組み合わせを作成することをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
パリティチャンクを記憶する前記障害ドメインにコマンドを送信して、前記パリティチャンクの組み合わせを作成することをさらに含む、請求項１又は請求項２に記載のコンピュータ実施方法。
【請求項４】
少なくとも１つの新しいパリティチャンクを作成することは、データチャンクの各組み合わせにそれぞれの重みを乗じることと、その結果の積を加算することと、をさらに含む、請求項１又は請求項２又は請求項３に記載のコンピュータ実施方法。
【請求項５】
ビット腐敗が識別されると、少なくとも１つのデータチャンクを、それぞれの分散型記憶デバイス内のそれぞれの障害ドメインに対して書き直すことをさらに含む、請求項１又は請求項２又は請求項３又は請求項４に記載のコンピュータ実施方法。
【請求項６】
前記ビット腐敗を識別することに呼応して、前記分散型記憶デバイスに関連付けられた潜在的なセキュリティリスクを識別することと、
前記潜在的なセキュリティリスクを識別することに呼応して、前記潜在的なセキュリティリスクを改善しようと試みるセキュリティアクションを実施することと、をさらに含む、請求項１又は請求項２又は請求項３又は請求項４又は請求項５に記載のコンピュータ実施方法。
【請求項７】
障害ドメインを有する分散型記憶デバイス内のビット腐敗を検出するためのシステムであって、前記システムは、
メモリに記憶された、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを追加することによって作成されたデータチャンクの組み合わせを受信する、第１の受信手段と、
前記メモリに記憶された、パリティチャンクを記憶する障害ドメインごとに、前記別のストライプからのパリティチャンクを追加することによって作成されたパリティチャンクの組み合わせを受信する、第２の受信手段と、
前記メモリに記憶された、前記データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成する、作成手段と、
前記メモリに記憶された、少なくとも１つの新しいパリティチャンクが、前記受信したパリティチャンクの組み合わせと一致しない場合に、前記障害ドメイン内のビット腐敗の存在を識別する、識別手段と、
前記第１の受信手段、前記第２の受信手段、前記作成手段、及び前記識別手段を実行する、少なくとも１つの物理プロセッサと、を備える、システム。
【請求項８】
前記メモリに記憶された、データチャンクを記憶する前記障害ドメインにコマンドを送信して、前記データチャンクの組み合わせを作成する、送信手段をさらに備える、請求項７に記載のシステム。
【請求項９】
前記メモリに記憶された、パリティチャンクを記憶する前記障害ドメインにコマンドを送信して、前記パリティチャンクの組み合わせを作成する、送信手段をさらに備える、請求項７又は請求項８に記載のシステム。
【請求項１０】
少なくとも１つの新しいパリティチャンクを作成することは、データチャンクの各組み合わせにそれぞれの重みを乗じることと、その結果の積を加算することと、をさらに含む、請求項７又は請求項８又は請求項９に記載のシステム。
【請求項１１】
前記メモリに記憶された、前記ビット腐敗を識別することに呼応して、前記分散型記憶デバイスに関連付けられた潜在的なセキュリティリスクを識別する、識別手段と、
前記メモリに記憶された、前記潜在的セキュリティリスクを識別することに呼応して、前記潜在的なセキュリティリスクを改善しようと試みるセキュリティアクションを実施する、実施手段と、をさらに備える、請求項７又は請求項８又は請求項９又は請求項１０に記載のシステム。
【請求項１２】
１つ以上のコンピュータ実行可能命令を備える非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
前記コンピューティングデバイスにおいて、データチャンクを記憶する障害ドメインごとに、別のストライプからのデータチャンクを加算することによって作成されたデータチャンクの組み合わせを受信することと、
パリティチャンクを記憶する障害ドメインごとに、前記別のストライプからのパリティチャンクを加算することによって作成されたパリティチャンクの組み合わせを受信することと、
前記データチャンクの組み合わせから少なくとも１つの新しいパリティチャンクを作成することと、
前記少なくとも１つの新しいパリティチャンクが、前記受信したパリティチャンクの組み合わせと一致しない場合に、前記障害ドメイン内のビット腐敗の存在を識別することと、を行わせる、１つ以上のコンピュータ実行可能命令を含む非一過性コンピュータ可読媒体。
【請求項１３】
前記コンピュータ実行可能命令は、前記コンピューティングデバイスに、
データチャンクを記憶する前記障害ドメインにコマンドを送信して、前記データチャンクの組み合わせを作成することを行わせる、コンピュータ実行可能命令を含む、請求項１２に記載の非一過性コンピュータ可読媒体。
【請求項１４】
前記コンピュータ実行可能命令は、前記コンピューティングデバイスに、
パリティチャンクを記憶する前記障害ドメインにコマンドを送信して、前記パリティチャンクの組み合わせを作成することを行わせる、コンピュータ実行可能命令を含む、請求項１２又は請求項１３に記載の非一過性コンピュータ可読媒体。
【請求項１５】
少なくとも１つの新しいパリティチャンクを作成することは、データチャンクの各組み合わせにそれぞれの重みを乗じることと、その結果の積を加算することと、をさらに含む、請求項１２又は請求項１３又は請求項１４に記載の非一過性コンピュータ可読媒体。
【国際調査報告】
2021515935.tif 000007
2021515935.tif 000008