(57)【要約】【課題】散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上の処理モジュールによる実行のための方法を提供する。【解決手段】本方法は、ＤＳＮが、データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信するステップから開始される。次に、ＤＳＮが、該データ・オブジェクトの１つ以上のデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを判断する。次に、ＤＳＮは、部分更新処理の過程で、影響を受けないであろう部分更新の対象となり得る一切のＥＤＳを除外しながら、対象となり得るＥＤＳ対する部分更新処理を実行する。【選択図】図１
2020510256.tif 000002
【特許請求の範囲】
【請求項１】
散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上コンピューティング・デバイスの１つ以上の処理モジュールによる実行のための方法であって、前記方法は、
データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信するステップと、
前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが、部分更新の対象となり得るかどうかを判断するステップと、
更新対象の前記データ・オブジェクトの前記データ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得る場合、前記１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択するステップと、
前記１つ以上のＥＤＳに前記部分更新処理が適用される過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう前記少なくとも１つの他のＥＤＳを除外しながら、前記部分更新処理の過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう前記少なくとも１つのＥＤＳに対する前記部分更新処理を実行するステップと、
を含む、方法。
【請求項２】
部分更新の対象となり得る前記１つ以上のＥＤＳの、部分更新処理が実行される前記少なくとも１つのＥＤＳに対する改訂番号を更新するステップ、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記部分更新処理が、部分更新の対象になり得る前記１つ以上のＥＤＳの少なくとも１つのＥＤＳに適用されるとき、前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する、前記複数のＥＤＳの前記（ＥＤＳ）の各々に対する改訂番号を更新するステップ、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記データ・オブジェクトの前記データ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを前記判断するステップが、埋込みコンテンツを含む前記データ・オブジェクトに基づく、請求項１に記載の方法。
【請求項５】
部分更新の対象となり得る前記１つ以上のＥＤＳの、前記少なくとも１つのＥＤＳに対する前記部分更新処理を前記実行するステップが、部分更新が実行される前記ＥＤＳの各々の中に少なくとも１つのオフセットを含めるオペレーションを含む、請求項１に記載の方法。
【請求項６】
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、更新コンテンツが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に、前記部分更新処理を前記実行するステップの以前に存在したコンテンツに上書きすることなく、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入される、請求項５に記載の方法。
【請求項７】
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、前記部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入される更新コンテンツが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中の前記部分更新処理を前記実行するステップの以前に存在した少なくとも一部のコンテンツに上書きされる、請求項５に記載の方法。
【請求項８】
部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの終端位置があり、前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に前記部分更新処理を前記実行するステップの以前に存在したコンテンツの、前記少なくとも１つのオフセットと前記終端位置との間を除去するステップを含む、請求項５に記載の方法。
【請求項９】
部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの範囲があり、前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に前記部分更新処理を前記実行するステップの以前に存在したコンテンツの、前記少なくとも１つのオフセットから開始される前記範囲を除去するステップを含む、請求項５に記載の方法。
【請求項１０】
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを前記判断するステップが、更新対象の前記データ・オブジェクトの特定のデータ・セグメントの散在ストレージ・エラー符号化関数の積である、更新対象の前記データ・オブジェクトの前記特定のデータ・セグメントに関連する前記１つ以上の符号化データ・スライス（ＥＤＳ）に基づく、請求項１に記載の方法。
【請求項１１】
ネットワークにインターフェース接続するためのインターフェースと、
メモリと、
前記インターフェースおよび前記メモリに動作可能に連結された第一処理モジュールと、
を含むコンピューティング・デバイスであって、前記第一処理モジュールは、
データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信し、
前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象になり得るかどうかを判断し、
更新対象の前記データ・オブジェクトの前記データ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが、部分更新の対象となり得る場合、前記１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択し、
前記１つ以上のＥＤＳに前記部分更新処理が適用される過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう前記少なくとも１つの他のＥＤＳを除外しながら、前記部分更新処理の過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう前記少なくとも１つのＥＤＳに対する前記部分更新処理を実行する、
ように動作可能である、
コンピューティング・デバイス。
【請求項１２】
前記第一処理モジュールが、
部分更新が実行される、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳに対する改訂番号を更新する、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１３】
前記第一処理モジュールが、
部分更新の対象となり得る前記１つ以上のＥＤＳの少なくとも１つのＥＤＳに、前記部分更新処理が適用されるとき、前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する前記複数のＥＤＳの前記（ＥＤＳ）の各々に対する改訂番号を更新する、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１４】
前記第一処理モジュールが、
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを、埋込みコンテンツを含む前記データ・オブジェクトに基づいて判断する、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１５】
前記第一処理モジュールが、
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含めるオペレーションを含む、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１６】
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含める、前記オペレーションが、
部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に、前記少なくとも１つのオフセットを挿入するステップを含み、更新コンテンツを、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に、前記部分更新処理の前記実行の以前に存在したコンテンツに上書きすることなく、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入するステップをさらに含む、請求項１５に記載のコンピューティング・デバイス。
【請求項１７】
前記第一処理モジュールが、
部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入し、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入される更新コンテンツを、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に、前記部分更新処理の前記実行の以前に存在した少なくとも一部のコンテンツに上書きする、
ようにさらに動作可能である、請求項１５に記載のコンピューティング・デバイス。
【請求項１８】
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含める前記オペレーションが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、且つ、部分更新が実行される前記ＥＤＳの少なくとも１つ対し終端位置を挿入するステップをさらに含み、
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中の、前記部分更新処理の前記実行の以前に存在したコンテンツの、前記少なくとも１つのオフセットと前記終端位置との間を除去するステップを含む、
請求項１５に記載のコンピューティング・デバイス。
【請求項１９】
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含める前記オペレーションが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、且つ、部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの範囲をさらに含み、前記部分更新処理を前記実行するステップが、前記部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に、前記部分更新処理の前記実行の以前に存在したコンテンツの、前記少なくとも１つのオフセットから開始される前記範囲を除去するステップを含む、請求項１５に記載のコンピューティング・デバイス。
【請求項２０】
前記第一処理モジュールが、
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを、更新対象の前記データ・オブジェクトの特定のデータ・セグメントの散在ストレージ・エラー符号化関数の積である、更新対象の前記データ・オブジェクトの前記特定のデータ・セグメントに関連する前記１つ以上の符号化データ・スライス（ＥＤＳ）に基づいて判断する、ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項２１】
具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令は、散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上のコンピューティング・デバイスによって、
データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信するステップと、
前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを判断するステップと、
更新対象の前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得る場合、前記１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択するステップと、
前記１つ以上のＥＤＳに前記部分更新処理が適用される過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう前記少なくとも１つの他のＥＤＳを除外しながら、前記部分更新処理の過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう前記少なくとも１つのＥＤＳに対する前記部分更新処理を実行するステップと、
を行うように実行可能である、コンピュータ・プログラム製品
【請求項２２】
前記プログラム命令が、散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上のコンピューティング・デバイスによって、
部分更新の対象となり得る前記１つ以上のＥＤＳの、部分更新処理が実行される前記少なくとも１つのＥＤＳに対する改訂番号を更新するステップ、
をさらに行うために実行可能である、請求項２１に記載のコンピュータ・プログラム製品。
【請求項２３】
前記プログラム命令が、散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上のコンピューティング・デバイスによって、
前記部分更新処理が、部分更新の対象になり得る前記１つ以上のＥＤＳの少なくとも１つのＥＤＳに適用されるとき、前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する、前記複数のＥＤＳの前記（ＥＤＳ）の各々に対する改訂番号を更新するステップ、
をさらに行うために実行可能である、請求項２１に記載のコンピュータ・プログラム製品。
【請求項２４】
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを前記判断するステップが、埋込みコンテンツを含む前記データ・オブジェクトに基づく、請求項２１に記載のコンピュータ・プログラム製品。
【請求項２５】
部分更新の対象となり得る前記１つ以上のＥＤＳの、前記少なくとも１つのＥＤＳに対する前記部分更新処理を前記実行するステップが、部分更新が実行される前記ＥＤＳの各々の中に少なくとも１つのオフセットを含めるオペレーションを含む、請求項２１に記載のコンピュータ・プログラム製品。
【請求項２６】
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、更新コンテンツが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に、前記部分更新処理を前記実行するステップの以前に存在したコンテンツに上書きすることなく、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入される、請求項２５に記載のコンピュータ・プログラム製品。
【請求項２７】
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、前記部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入された更新コンテンツが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に、前記部分更新処理を前記実行するステップの以前に存在した少なくとも一部のコンテンツに上書きされる、請求項２５に記載のコンピュータ・プログラム製品。
【請求項２８】
部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの終端位置があり、前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に、前記部分更新処理を前記実行するステップの以前に存在したコンテンツの、前記少なくとも１つのオフセットと前記終端位置との間を除去するステップを含む、請求項２５に記載のコンピュータ・プログラム製品。
【請求項２９】
部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの範囲があり、前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に、前記部分更新処理を前記実行するステップの以前に存在したコンテンツの、前記少なくとも１つのオフセットから開始される前記範囲を除去するステップを含む、請求項２５に記載のコンピュータ・プログラム製品。
【請求項３０】
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを判断するステップが、更新対象の前記データ・オブジェクトの特定のデータ・セグメントの散在ストレージ・エラー符号化関数の積である、更新対象の前記データ・オブジェクトの前記特定のデータ・セグメントに関連する前記１つ以上の符号化データ・スライス（ＥＤＳ）に基づく、請求項２１に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータ・ネットワークに関し、さらに具体的には散在エラー符号化データに関する。
【背景技術】
【０００２】
コンピューティング・デバイスが、データを通信し、データを処理し、もしくはデータを格納し、またはこれらの組合せを実行することは言うまでもない。かかるコンピューティング・デバイスは、ワイヤレス・スマートホン、ラップトップ、タブレット、パーソナル・コンピュータ（ＰＣ：ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、ワーク・ステーション、およびビデオ・ゲーム機から、日毎に、数百万のウェブ検索、株式売買、またはオンライン購買を支えるデータセンタまでに及ぶ。一般に、コンピューティング・デバイスは、中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、メモリ・システム、ユーザ入力／出力インターフェース、周辺装置インターフェース、および相互接続バス構造を含む。
【０００３】
さらに知られているように、コンピュータは、当該コンピュータに代わって１つ以上のコンピューティング機能（例えば、サービス、アプリケーション、アルゴリズム、論理演算機能など）を実行するため「クラウド・コンピューティング」を用いて、そのＣＰＵを効果的に拡張することが可能である。さらに、大規模なサービス、アプリケーション、もしくは機能、またはこれらの組合せに対しては、それらサービス、アプリケーション、もしくは機能、またはこれらの組合せの完了に対する応答時間を改善するために、分散的な仕方で、複数のクラウド・コンピューティング・リソースによってクラウド・コンピューティングを行うことも可能である。例えば、Ｈａｄｏｏｐは、数千のコンピュータによるアプリケーションの実行を可能にする、分散型アプリケーションをサポートするオープン・ソースのソフトウェア・フレームワークである。
【０００４】
クラウド・コンピューティングに加えて、コンピュータは、そのメモリ・システムの一部として「クラウド・ストレージ」を用いることができる。知られるように、クラウド・ストレージは、ユーザが、そのコンピュータを介して、ファイル、アプリケーションなどをインターネット・ストレージ・システム上に格納することを可能にする。インターネット・ストレージ・システムは、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ（独立ディスクの冗長アレイ））システム、もしくは、ストレージのためのデータを符号化するのにエラー訂正スキームを使用する散在ストレージ・システム、またはその両方を含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
散在ストレージ・ネットワーク（ＤＳＮ：ｄｉｓｐｅｒｓｅｄ  ｓｔｏｒａｇｅ  ｎｅｔｗｏｒｋ）のための方法、コンピューティング・デバイス、およびコンピュータ・プログラム製品を提供する。
【課題を解決するための手段】
【０００６】
一態様によれは、散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上のコンピューティング・デバイスの１つ以上の処理モジュールによる実行のための方法が提供され、本方法は、データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信するステップと、該データ・オブジェクトの１つ以上のデータ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ；ｅｎｃｏｄｅｄ  ｄａｔａ  ｓｌｉｃｅ）の１つ以上のＥＤＳが、部分更新の対象となり得るかどうかを判断するステップと、更新対象のデータ・オブジェクトのデータ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得る場合、それら１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択するステップと、それら１つ以上のＥＤＳに部分更新処理が適用される過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けないであろう該少なくとも１つの他のＥＤＳを除外しながら、部分更新処理の過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けるであろう該少なくとも１つのＥＤＳに対する部分更新処理を実行するステップと、を含む。
【０００７】
別の態様によれば、コンピューティング・デバイスが提供され、該コンピューティング・デバイスは、ネットワークにインターフェース接続するためのインターフェースと、メモリと、該インターフェースおよび該メモリに動作可能に連結された第一処理モジュールと、を含み、該第一処理モジュールは、データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信し、該データ・オブジェクトの１つ以上のデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが、部分更新の対象になり得るかどうかを判断し、更新対象のデータ・オブジェクトのデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得る場合、それら１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択し、それら１つ以上のＥＤＳに部分更新処理が適用される過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けないであろう該少なくとも１つの他のＥＤＳを除外しながら、部分更新処理の過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けるであろう該少なくとも１つのＥＤＳに対する部分更新処理を実行する、ように動作可能である。
【０００８】
別の実施形態によれば、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品が提供され、該プログラム命令は、散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上のコンピューティング・デバイスによって、データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信するステップと、データ・オブジェクトの１つ以上のデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを判断するステップと、更新対象のデータ・オブジェクトのデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得る場合、それら１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択するステップと、それら１つ以上のＥＤＳに部分更新処理が適用される過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けないであろう該少なくとも１つの他のＥＤＳを除外しながら、部分更新処理の過程で、部分更新の対象となり得る１つ以上のＥＤＳの、影響を受けるであろう該少なくとも１つのＥＤＳに対する部分更新処理を実行するステップと、を行うように実行可能である。
【０００９】
単なる例示として、添付の図面を参照しながら以降に本発明の諸実施形態を説明する。
【図面の簡単な説明】
【００１０】
【図１】本発明の或る実施形態による、散在または分散ストレージ・ネットワーク（ＤＳＮ）の概略ブロック図である。
【図２】本発明の或る実施形態による、コンピューティング・コアの概略ブロック図である。
【図３】本発明の或る実施形態による、データの散在ストレージ・エラー符号化の例の概略ブロック図である。
【図４】本発明の或る実施形態による、エラー符号化関数の一般的な例の概略ブロック図である。
【図５】本発明の或る実施形態による、エラー符号化関数の具体的な例の概略ブロック図である。
【図６】本発明の或る実施形態による、符号化データ・スライス（ＥＤＳ）のスライス名の一例の概略ブロック図である。
【図７】本発明の或る実施形態による、データの散在ストレージ・エラー復号の一例の概略ブロック図である。
【図８】本発明の或る実施形態による、エラー復号関数の一般的な例の概略ブロック図である。
【図９】本発明の或る実施形態による、部分更新処理からもたらされたＥＤＳの概略図である。
【図１０】本発明の或る実施形態による、オフセットの使用に基づく部分更新処理からもたらされたＥＤＳの別の例の概略図である。
【図１１】本発明の或る実施形態による、オフセットの使用に基づく部分更新処理からもたらされたＥＤＳの別の例の概略図である。
【図１２】本発明の或る実施形態による、ＤＳＮコンテンツを部分更新する方法の一例の論理図である。
【発明を実施するための形態】
【００１１】
図１は、複数のコンピューティング・デバイス１２〜１６、管理ユニット１８、完全性処理ユニット(integrity processing unit)２０、およびＤＳＮメモリ２２を含む、散在または分散ストレージ・ネットワーク（ＤＳＮ）１０の或る実施形態の概略ブロック図である。ＤＳＮ１０の諸構成部は、ネットワーク２４に連結されており、該ネットワークは、１つ以上のワイヤレスもしくは有線またはその両方の通信システム、１つ以上の非公共イントラネット・システムもしくは公共インターネット・システムまたはその両方、または、１つ以上のローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）もしくは広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）またはその両方、あるいはこれらの組合せを含むことができる。
【００１２】
ＤＳＮメモリ２２は、地理的に相異なるサイト（例えば、１つはシカゴに、１つはミルウォーキーになど）にでも、共通の一サイトにでも、またはこれらの組合せにでも配置されてよい複数のストレージ・ユニット３６を含む。例えば、ＤＳＮメモリ２２が８つのストレージ・ユニット３６を含む場合、各ストレージ・ユニットは相異なるサイトに配置される。別の例として、ＤＳＮメモリ２２が８つのストレージ・ユニット３６を含む場合、全８つのストレージ・ユニットが同じサイトに配置される。さらに別の例として、ＤＳＮメモリ２２が８つのストレージ・ユニット３６を含む場合、ストレージ・ユニットの第一対は第一共通サイトにあり、ストレージ・ユニットの第二対は第二共通サイトにあり、ストレージ・ユニットの第三対は第三共通サイトにあり、ストレージ・ユニットの第四対は第四共通サイトにある。なお、ＤＳＮメモリ２２は、８つより多い、または少ないストレージ・ユニット３６を含んでよい。各ストレージ・ユニット３６が、コンピューティング・コア（図２に示されたようなコア、またはその構成部分）および散在エラー符号化データを格納するための複数のメモリ・デバイスを含むことにさらに留意する。
【００１３】
コンピューティング・デバイス１２〜１６の各々、管理ユニット１８、および完全性処理ユニット２０は、コンピューティング・コア２６を含み、該コアはネットワーク・インターフェース３０〜３３を含む。コンピューティング・デバイス１２〜１６は、それぞれ、携帯型コンピューティング・デバイスもしくは固定型コンピューティング・デバイスまたはその両方とすることができる。携帯型コンピューティング・デバイスは、ソーシャル・ネットワーキング・デバイス、ゲーム・デバイス、携帯電話、スマートフォン、情報端末、デジタル音楽プレイヤ、デジタル・ビデオ・プレイヤ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、タブレット、ビデオ・ゲーム・コントローラ、もしくはコンピューティング・コアを含む任意の他の携帯型デバイスのいずれであっても、またはこれらの組合せであってもよい。固定型コンピュータは、コンピュータ（ＰＣ）、コンピュータ・サーバ、ケーブル・セットトップ・ボックス、衛星受信機、テレビジョン・セット、プリンタ、ファクス・マシン、家庭用娯楽装置、ビデオ・ゲーム・コンソール、もしくは任意の種類の家庭用／業務用コンピューティング装置のいずれであっても、またはこれらの組合せであってもよい。なお、管理ユニット１８および完全性処理ユニット２０の各々は、別個のコンピューティング・デバイスであってもよく、共用のコンピューティング・デバイスであってもよく、もしくは、コンピューティング・デバイス１２〜１６の１つ以上の中にもしくはストレージ・ユニット３６の１つ以上の中にまたはそれら両方の中に組み込まれてもよく、あるいはこれらの組合せであってもよい。
【００１４】
各インターフェース３０、３２、および３３は、間接的にもしくは直接にまたはその両方でネットワーク２４を介する１つ以上の通信リンクをサポートするためのソフトウェアおよびハードウェアを含む。例えば、インターフェース３０は、コンピューティング・デバイス１４と１６との間の（例えば、有線の、ワイヤレスの、直接の、ＬＡＮ経由の、ネットワーク２４経由などの）通信リンクをサポートする。別の例として、インターフェース３２は、コンピューティング・デバイス１２および１６とＤＳＮメモリ２２との間の（例えば、有線接続の、ワイヤレス接続の、ＬＡＮ接続の、もしくはネットワーク２４を往来する任意の他の種類の接続の、またはこれらの組合せの）通信リンクをサポートする。さらに別の例として、インターフェース３３は、管理ユニット１８および完全性処理ユニット２０の各々に対し、ネットワーク２４への通信リンクをサポートする。
【００１５】
コンピューティング・デバイス１２および１６は、散在ストレージ（ＤＳ：ｄｉｓｐｅｒｓｅｄ  ｓｔｏｒａｇｅ）クライアント・モジュール３４を含み、これは、後記で図３〜８の１つ以上を参照しながら説明するように、コンピューティング・デバイスがデータ（例えばデータ４０）を散在ストレージ・エラー符号化および復号することを可能にする。この例示の実施形態において、コンピューティング・デバイス１６は、コンピューティング・デバイス１４に対する散在ストレージ処理エージェントとして機能する。この役割において、コンピューティング・デバイス１６は、コンピューティング・デバイス１４のために、データを散在ストレージ・エラー符号化および復号する。散在ストレージ・エラー符号化および復号の使用によって、ＤＳＮ１０は、データの喪失なく、且つデータの冗長またはバックアップ・コピーの必要なくして、相当数のストレージ・ユニットの故障に耐える（この故障の数は散在ストレージ・エラー符号化関数のパラメータに基づく）。さらに、ＤＳＮ１０は、データを、データ喪失なく安全な仕方で（例えば、このシステムは、許可のないデータへのアクセスの試みに高い抵抗力がある）無期限の期間格納する。
【００１６】
作動中、管理ユニット１８は、ＤＳ管理サービスを行う。例えば、管理ユニット１８は、別個に、またはユーザ・デバイスのグループの一部として、コンピューティング・デバイス１２〜１４に対する分散データ・ストレージ・パラメータ（例えば、保管庫の生成、分散ストレージ・パラメータ、セキュリティ・パラメータ、課金情報、ユーザ・プロフィール情報など）を設定する。具体的な例として、管理ユニット１８は、ユーザ・デバイス、デバイスのグループに対するまたは公衆アクセスに対する、ＤＳＮメモリ２２内の保管庫（例えば、ＤＳＮの全体的名前空間の一部に関連付けられた仮想メモリ・ブロック）の生成を調整し、保管庫ごとに、保管庫に対する散在ストレージ（ＤＳ）エラー符号化パラメータを設定する。管理ユニット１８は、ＤＳＮ１０のレジストリ情報を更新することによって、各保管庫へのＤＳエラー符号化パラメータの保管を容易にし、このレジストリ情報は、ＤＳＮメモリ２２、コンピューティング・デバイス１２〜１６、管理ユニット１８もしくは完全性処理ユニット２０、またはこれらの組合せの中に格納されてよい。
【００１７】
管理ユニット１８は、ローカル・メモリ中、もしくはＤＳＮメモリ２２のメモリ内またはその両方にユーザ・プロフィール情報（例えば、アクセス制御リスト（ＡＣＬ：ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ  ｌｉｓｔ））を生成し、格納する。このユーザ・プロフィール情報は、認証情報、諸認可、もしくはセキュリティ・パラメータまたはこれらの組合せを含む。セキュリティ・パラメータは、暗号化／解読スキーム、１つ以上の暗号鍵、鍵生成スキーム、もしくはデータ符号化／複合スキーム、またはこれらの組合せを含んでよい。
【００１８】
管理ユニット１８は、或る特定のユーザ、ユーザ・グループ、保管庫アクセス、公衆の保管庫アクセスなどに対する課金情報を生成する。例えば、管理ユニット１８は、ユーザの非公開保管庫もしくは公開保管庫またはその両方へのアクセスの回数を追跡し、これは、アクセスごとの課金情報を生成するために用いることができる。別の例では、管理ユニット１８は、ユーザ・デバイスもしくはユーザ・グループまたはその両方によって、格納されもしくは読み出されたまたはその両方のデータの量を追跡し、これはデータ量ごとの課金情報を生成するために用いることが可能である。
【００１９】
別の例として、管理ユニット１８は、ネットワーク運用、ネットワーク管理、もしくはネットワーク保全、またはこれらの組合せを実行する。ネットワーク運用は、ユーザのデータ割振り要求（例えば、読取りもしくは書込みまたはその両方の要求）を認証すること、保管庫の生成を管理すること、ユーザ・デバイスに対する認証証明書を設定すること、ＤＳＮ１０へのまたはこれからの構成部分（例えば、ユーザ・デバイス、ストレージ・ユニット、もしくはＤＳクライアント・モジュール３４を備えたコンピューティング・デバイス、またはこれらの組合せ）の追加／削除をすること、もしくはストレージ・ユニット３６に対する認証証明書を設定すること、またはこれらの組合せを含む。ネットワーク管理は、デバイスもしくはユニットまたはその両方の故障を監視すること、保管庫の情報を維持すること、デバイスもしくはユニットまたはその両方のアクティブ化状態を判断すること、デバイスもしくはユニットまたはその両方の負荷を判断すること、もしくは、ＤＳＮ１０の達成レベルに影響する一切の他のシステム・レベルの運用を判断すること、またはこれらの組合せを含む。ネットワーク保全は、ＤＳＮ１０のデバイスもしくはユニットまたはその両方の、交換、改良、修理、もしくは拡張またはこれらの組合せを促進することを含む。
【００２０】
完全性処理ユニット２０は、「間違った」または失われた符号化データ・スライスの再構築を行う。高レベルで、完全性処理ユニット２０は、符号化データ・スライス、もしくは符号化データ・スライスのスライス名またはその両方を、ＤＳＮメモリ２２から、定期的に読み出し／リストする試みをすることによって再構築を実行する。読み出された符号化スライスに対して、それらは、データ破損、期限の過ぎたバージョンなどによるエラーについてチェックがされる。或るスライスがエラーを含んでいる場合、それには「間違った」スライスとしてフラグが付される。受信されなかったもしくはリストされなかった、またはその両方の符号化データ・スライスに対しては、それらは失われたスライスとしてフラグが付される。続いて、間違ったもしくは失われたまたはその両方のスライスが、再構築スライスを生成するために有用なスライスと考えられる、他の読み出された符号化データ・スライスを使って再構築される。それら再構築されたスライスはＤＳＮメモリ２２に格納される。
【００２１】
図２は、処理モジュール５０と、メモリ・コントローラ５２と、主メモリ５４と、ビデオ・グラフィクス処理ユニット５５と、入力／出力（ＩＯ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）コントローラ５６と、周辺コンポーネント相互接続（ＰＣＩ：ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）インターフェース５８と、ＩＯインターフェース・モジュール６０と、少なくとも１つのＩＯデバイス・インターフェース・モジュール６２と、読取り専用メモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）基本入力出力システム（ＢＩＯＳ：ｂａｓｉｃ  ｉｎｐｕｔ  ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）６４と、１つ以上のメモリ・インターフェース・モジュールと、を含むコンピューティング・コア２６の一実施形態の概略ブロック図である。１つ以上のメモリ・インターフェース・モジュール（群）は、１つ以上のユニバーサル・シリアル・バス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）インターフェース・モジュール６６と、ホスト・バス・アダプタ（ＨＢＡ：ｈｏｓｔ  ｂｕｓ  ａｄａｐｔｅｒ）インターフェース・モジュール６８と、ネットワーク・インターフェース・モジュール７０と、フラッシュ・インターフェース・モジュール７２と、ハード・ドライブ・インターフェース・モジュール７４と、ＤＳＮインターフェース・モジュール７６と、を含む。
【００２２】
ＤＳＮインターフェース・モジュール７６は、従来式のオペレーティング・システム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）ファイル・システム・インターフェース（例えば、ネットワーク・ファイル・システム（ＮＦＳ：ｎｅｔｗｏｒｋ  ｆｉｌｅ  ｓｙｓｔｅｍ）、フラッシュ・ファイル・システム（ＦＦＳ：ｆｌａｓｈ  ｆｉｌｅ  ｓｙｓｔｅｍ）、ディスク・ファイル・システム（ＤＦＳ：ｄｉｓｋ  ｆｉｌｅ  ｓｙｓｔｅｍ）、ファイル転送プロトコル（ＦＴＰ：ｆｉｌｅ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）、Ｗｅｂ分散オーサリングおよびバージョン管理（ＷｅｂＤＡＶ：ｗｅｂ−ｂａｓｅｄ  ｄｉｓｔｒｉｂｕｔｅｄ  ａｕｔｈｏｒｉｎｇ  ａｎｄ  ｖｅｒｓｉｏｎｉｎｇ）など）、もしくは、ブロック・メモリ・インターフェース（例えば、小型コンピュータシステムインターフェース（ＳＣＳＩ：ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）、インターネット・スモール・コンピュータ・システム・インターフェイス（ｉＳＣＳＩ：ｉｎｔｅｒｎｅｔ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）など）、またはこれらの組合せなど）を模擬するように機能する。ＤＳＮインターフェース・モジュール７６もしくはネットワーク・インターフェース・モジュール７０、またはその両方は、図１のインターフェース３０〜３３の１つ以上として機能することが可能である。なお、ＩＯデバイス・インターフェース・モジュール６２もしくはメモリ・インターフェース・モジュール６６〜７６、またはその両方は、包括的にまたは個別にＩＯポートと称されることもある。
【００２３】
図３は、データの散在ストレージ・エラー符号化の例の概略ブロック図である。コンピューティング・デバイス１２または１６が格納すべきデータを有するとき、該デバイスは、そのデータを、散在ストレージ・エラー符号化パラメータに基づき、散在ストレージ・エラー符号化処理によって散在ストレージ・エラー符号化する。散在ストレージ・エラー符号化パラメータは、符号化関数（例えば、情報分散アルゴリズム、リード−ソロモン、コーシー・リード−ソロモン、系統的符号化(systematic encoding)、非系統的符号化、オンライン符号など）、データ分割プロトコル(data segmenting protocol)（例えば、データ・セグメント・サイズ、固定式、可変式など）、およびデータ・セグメント当たりの符号化値を含む。このデータ・セグメント当たりの符号化値は、全体またはピラー幅、データ・セグメントの符号化当たりの（すなわち、符号化されるデータ・スライスのセット中の）符号化データ・スライスの数（Ｔ）、データ・セグメントを再生するために必要な、符号化データ・スライスのセットの符号化データ・スライスの復号閾値数（Ｄ）、データ・セグメントの復号のため、ストレージから読み取られることになるセット当たりの符号化データ・スライスの数を示すための符号化データ・スライスの読み取り閾値数（Ｒ）、もしくは、符号化データ・セグメントが適切に格納されたと見なされる前に、正確に格納されなければならないセット当たりの符号化データ・スライスの数を示す書込み閾値数（Ｗ）、またはこれらの組合せを含む。散在ストレージ・エラー符号化パラメータは、スライス化情報（例えば、各データ・セグメントに対し生成されることになる符号化データ・スライスの数）もしくはスライス・セキュリティ情報（例えば、符号化データ・スライス暗号化、圧縮、完全性チェックサムなどについて）またはその両方の情報をさらに含んでよい。
【００２４】
本例では、符号化関数としてコーシー・リード−ソロモンが選択されており（一般的な例が図４中に示され、具体的な例が図５に示されている）、データ分割プロトコルが、データ・オブジェクトを一定サイズのデータ・セグメントに分割することになり、データ・セグメント当たりの符号化値は、５のピラー幅、３の復号閾値、４の読み取り閾値、および４の書込み閾値を含む。このデータ分割プロトコルによれば、コンピューティング・デバイス１２または１６は、データ（例えば、ファイル（例えば、テキスト、ビデオ、オーディオなど）、データ・オブジェクト、または他のデータ配置）を、複数の一定サイズのデータ・セグメント（例えば、キロバイト〜テラバイト以上の範囲の固定サイズの１〜Ｙ）に分割する。生成されるデータ・セグメントの数は、データのサイズおよびデータ分割プロトコルにより決まる。
【００２５】
コンピューティング・デバイス１２または１６は、次いで、符号化データ・スライスのセットを生成するため、選択された符号化関数（例えば、コーシー・リード−ソロモン）を用いて、データ・セグメントを散在ストレージ・エラー符号化する。図４は、一般的なコーシー・リード−ソロモン符号化関数を図示し、これは、符号化マトリックス（ＥＭ：ｅｎｃｏｄｉｎｇ  ｍａｔｒｉｘ）、データ・マトリックス（ＤＭ：ｄａｔａ  ｍａｔｒｉｘ）、およびコード化マトリックス（ＣＭ：ｃｏｄｅｄ  ｍａｔｒｉｘ）を含む。符号化マトリックス（ＥＭ）のサイズは、選択されたデータ・セグメント当たりの符号化値のピラー幅数（Ｔ）および復号閾値数（Ｄ）により決まる。データ・マトリックス（ＤＭ）を生成するために、データ・セグメントは複数のデータ・ブロックに分割され、これらデータ・ブロックは、行あたりＺのデータ・ブロックを備えるＤ数の行の中に配置される。なお、Ｚは、データ・セグメントから生成されたデータ・ブロックの数、および復号閾値数（Ｄ）の関数である。コード化マトリックスは、データ・マトリックスを符号化マトリックスに乗じたマトリックスによって生成される。
【００２６】
図５は、５のピラー数（Ｔ）および３の復号閾値数によるコーシー・リード−ソロモン符号化の具体的な一例を表す。この例では、第一データ・セグメントは、１２のデータ・ブロック（Ｄ１〜Ｄ１２）に分割されている。このコード化マトリックスは、コード化データ・ブロックの５つの行を含み、Ｘ１１〜Ｘ１４の第一行は第一符号化データ・スライス（ＥＤＳ１＿１）に対応し、Ｘ２１〜Ｘ２４の第二行は第二符号化データ・スライス（ＥＤＳ２＿１）に対応し、Ｘ３１〜Ｘ３４の第三行は第三符号化データ・スライス（ＥＤＳ３＿１）に対応し、Ｘ４１〜Ｘ４４の第四行は第四符号化データ・スライス（ＥＤＳ４＿１）に対応し、且つＸ５１〜Ｘ５４の第五行は第五符号化データ・スライス（ＥＤＳ５＿１）に対応する。なお、ＥＤＳの記号の２番目の数字はデータ・セグメント数に対応する。
【００２７】
図３の説明に戻って、このコンピューティング・デバイスは、また、符号化データ・スライスのセット中の各符号化データ・スライス（ＥＤＳ）に対するスライス名（ＳＮ：ｓｌｉｃｅ  ｎａｍｅ）も生成する。スライス名８０に対する典型的なフォーマットが図６中に示されている。図示のように、スライス名（ＳＮ）８０は、符号化データ・スライスのピラー数（例えば１〜Ｔのうちの１つ）、データ・セグメント数（例えば１〜Ｙのうちの１つ）、保管庫識別子（ＩＤ：ｉｄｅｎｔｉｆｉｅｒ）、データ・オブジェクト識別子（ＩＤ：ｉｄｅｎｔｉｆｉｅｒ）を含み、当該符号化データ・スライスの改訂レベル情報をさらに含むことが可能である。このスライス名は、少なくとも部分的に、符号化データ・スライスの、ストレージおよびＤＳＮメモリ２２からの読出しのためのＤＳＮアドレスとして機能する。
【００２８】
符号化の結果として、コンピューティング・デバイス１２または１６は、符号化データ・スライスの複数のセットを生成し、これらは、そのストレージのためのストレージ・ユニットに、それらそれぞれのスライス名が付与される。図示のように、符号化データ・スライスの第一セットは、ＥＤＳ１＿１〜ＥＤＳ５＿１を含み、スライス名の第一セットは、ＳＮ１＿１〜ＳＮ５＿１を含み、符号化データ・スライスの最後のセットは、ＥＤＳ１＿Ｙ〜ＥＤＳ５＿Ｙを含み、スライス名の最後のセットは、ＳＮ１＿Ｙ〜ＳＮ５＿Ｙを含む。
【００２９】
図７は、図４の例において。散在ストレージ・エラー符号化され、格納されたデータ・オブジェクトの散在ストレージ・エラー復号の一例の概略ブロック図である。この例において、コンピューティング・デバイス１２または１６は、ストレージ・ユニットから、データ・セグメント毎に符号化されたデータ・スライスの少なくとも復号閾値数を読み出す。具体例として、このコンピューティング・デバイスは、符号化データ・スライスの読取り閾値数を読み出す。
【００３０】
符号化データ・スライスの復号閾値数からデータ・セグメントを再生するために、コンピューティング・デバイスは、図８に示されるように、復号関数を用いる。図示のように、この復号関数は必然的に図４の符号化関数の逆処理となる。コード化マトリックスは、行の復号閾値数（例えば、この例では３）および、コード化マトリックスの対応する行を含む符号化マトリックスの逆処理の復号マトリックスを含む。例えば、コード化マトリックスが行１、２、および４を含む場合、符号化マトリックスは、行１、２、および４に減じられ、次いで復号マトリックスを生成するために反転される。
【００３１】
再度、図３を参照すると、データ・オブジェクトを、データ・セグメント当たりの符号化値を持つより小さなセグメントに分割するために、データ分割プロトコルが使用される。データ分割は、以下に限らないが、パフォーマンスの向上、アクセスの改善、システム効率の向上を含め、多くの利点を提供することが可能である。メタデータ、インデックス・ノード、または他の構造化データなど、いくつかのデータ型は、漸次に更新され、しかして、部分更新処理に対する適応性がある。例えば、ＤＳＮは、データ・オブジェクトに対するメタデータと一緒にデータの第一セグメントを格納することができる。この例において、データの第一バイトへのアクセスは、システムがオブジェクトに対するメタデータをロードできるようにすることによって、システムが残りのバイトの効率的なストリーミングを行うことを可能にしつつ、より迅速なアクセスが可能である。
【００３２】
埋込みコンテンツを備えたオブジェクトの属性を更新するとき、ＤＳユニットが、再構成をし、益々増えるデータ量を送信し、さらに、簡単な属性の修正をなど些細なオペレーションを実行する際にあってもデータ・オブジェクトからの関連メタデータを構文解釈する必要があり得るので、システムのパフォーマンスが悪影響を受け得る。この型の構造化データは、例えば、オブジェクト・ストレージにＰＯＳＩＸワークフローをエミュレートすれば、共通にすることができ、データ・オブジェクト・アクセス制御、もしくはタイム・スタンプまたはその両方は、アクセス過程毎の頻度で操作することが可能である。図９〜１１は、オフセットの使用に基づく部分更新処理から得られた部分的に更新されたＥＤＳの該略図である。この部分更新処理は、例えば、図９〜１１に詳記されたオペレーションを伴うｄｓｎｅｔプロトコルの拡張と見なすことができる。一具体例として、図９では、この部分更新処理は、定められたオフセット位置にオフセットを、且つ、該部分更新処理の前に存在していた既存のデータ・コンテンツ９２に上書きすることなく、オフセット箇所のＥＤＳ１＿１の中に新規コンテンツ９４を挿入する（すなわち、既存のデータ・コンテンツ９２は、新規データ・コンテンツ９４の後ろに押される）。
【００３３】
図１０は、オフセットの使用に基づいた部分更新処理から得られたＥＤＳの別の例の概略図である。この例において、部分更新処理で、定められたオフセット位置にオフセットが挿入され、新規データ・コンテンツ９４が、該新規データ・コンテンツ９４の長さの最大限まで、既存のデータ・コンテンツ９２に置換わって、既存データ・コンテンツ９２の中に挿入される。
【００３４】
図１１は、オフセットの使用に基づいた部分更新処理から得られたＥＤＳの別の例の概略図である。一具体例として、この部分更新処理においては、オフセットと、データ範囲もしくは終端位置とが設けられ、この部分更新処理では、既存のデータ・コンテンツ９２から、データ・コンテンツ除去部９６が除去される。この例において、この部分更新処理は、オフセット位置にオフセットを挿入し、且つ終了点が受信されるまで、もしくはデータの指定範囲が除去されるまで、データを除去する。
【００３５】
図１２は、本発明の或る実施形態による、ＤＳＮコンテンツを部分更新する方法の一例の論理図である。一具体例として、ステップ３００で、ＤＳＮは、データ・オブジェクトの１つ以上のデータ・セグメントを部分的に更新する要求を受信する。ステップ３０２で、ＤＳＮは、更新対象のデータ・セグメントに部分更新に対する適応性があるかどうかを判断し、更新対象のデータ・セグメントに部分更新に対する適応性がある場合、ステップ３０４で、ＤＳＮは、該更新対象のデータ・セグメントに関連するどのＥＤＳが部分更新による影響を受けることになるかをさらに判断する。図５を参照すると、ＤＳＮは、コーシー・リード−ソロモン符号化の具体例を用い、マトリックス演算の積に基づいて、どのＥＤＳが部分更新によって影響されることになるかを判断することができる。図５の例では、Ｘ１１〜Ｘ１４の第一行が、第一符号化データ・スライス（ＥＤＳ１＿１）に対応し、Ｘ１１＝ａＤ１＋ｂＤ５＋Ｄ９である。しかして、Ｄ１だけが部分更新の対象の場合、Ｄ１を含む一切の符号化データ・スライスとともに、第一符号化データ・スライス（ＥＤＳ１＿１）を部分更新する必要があることになる。
【００３６】
当該部分更新により影響を受けるＥＤＳが判断されたならば、ステップ３０６でＤＳＮは、ＥＤＳスライス名、修正されるＥＤＳ（スライス）の改訂＃、および新規の（部分更新された）ＥＤＳの改訂＃を含むプロトコル・メッセージをＳＵに送信し、ステップ３０８で、影響のあるＥＤＳの中にオフセットを挿入することができ、新規のコンテンツをプリペンドし、付加し、挿入することが可能で、ステップ３１０で、ＤＳＮの判断により用済みのデータは削除することができる。ステップ３１２で、影響のあったＥＤＳの改訂＃が更新される。別の例において、部分的に更新されたデータ・セグメントに関連付けられた全てのＥＤＳに対し、たとえ１つ以上のＥＤＳが部分更新の影響を受けなかったとしても、新規の改訂＃が付与され得る。この例を使って、修正の実行を必要とする集合体データが、更新されたデータ・ソースに依存する代わりに、実際の修正それ自体に相関付けされる。
【００３７】
なお、ビット・ストリーム、ストリーム、信号シーケンス（またはこれらの等価語）など、本明細書で使用され得る用語は、そのコンテンツがいくつかの望まれる種類（例えば、データ、ビデオ、スピーチ、オーディオなど、これらのいずれもが、広く「データ」と称され得る）のいずれかに対応するデジタル情報を表すために、互換的に使用されている。
【００３８】
本明細書で用いられる場合、用語「ほぼ」および「おおよそ」は、それが対応する用語もしくは品目の間の相対性またはその両方に対する業界容認の許容差(industry-accepted tolerance)を表す。かかる業界容認の許容差は、１パーセント未満から５０パーセントまでに亘り、以下に限らないが、部品の値、集積回路加工のバラツキ、温度の変動、上昇および下降時間、もしくは熱雑音、またはこれらの組合せに対応する。品目の間のかかる相対性は、僅かなパーセントの差から大きな相違までの範囲に亘る。同様に本明細書で用いられる場合、用語（群）「するように構成される」、「に動作可能に連結される」、「に連結される」もしくは「連結している」またはこれらの組合せは、品目の間の直接の連結、もしくは介在する品目を介しての品目の間の間接的連結、またはその両方を含み（例えば、品目は、以下に限らないが、部品、素子、回路、もしくはモジュール、またはこれらの組合せを含む）、間接的連結の例については、介在する品目は、信号の情報を変更することはないが、その電流レベル、電圧レベル、もしくは電力レベルまたはこれらの組合せを調節することが可能である。さらに本明細書で用いられる場合、因果法則（すなわち、１つの素子が推定によって別の素子に結合されること）は、「に連結される」と同じ仕方での２つの品目の間の直接および間接の連結を含む。さらになお、本明細書で用いられる場合、「するように構成される」、「を動作可能に」、「に連結される」または「動作可能に連結される」は、或る品目が、起動されたとき、１つ以上のその対応する機能を実行し、１つ以上の他の品目への推定結合をさらに含むことができるように、電力接続部、入力端（群）、出力端（群）などの１つ以上を含んでいることを示す。さらにまだ、本明細書で用いられる場合、用語「に関連付けられた」は、別々の品目の直接もしくは間接のまたはその両方の連結、もしくは別の品目内に組み込まれている一品目、またはこれらの両方を含む。
【００３９】
本明細書で用いられる場合、用語「望ましい比較」は、２つ以上の品目、信号などの間の比較が、望ましい関係を呈していることを示す。例えば、望ましい関係が、信号１が信号２よりも大きな強度を有することである場合、望ましい比較は、信号１の強度が信号２のものよりも大きいとき、または信号２の強度が信号１のものよりも小さいときに成就が可能である。本明細書で用いられる場合、用語「望ましくない比較」は、２つ以上の品目、信号などの間の比較が、望ましい関係を呈し損ねたことを示す。
【００４０】
同様に本明細書で用いられる場合、用語「処理モジュール」、「処理回路」、「プロセッサ」、もしくは「処理ユニット」またはこれらの組合せは、単一の処理デバイスのことも、複数の処理デバイスのこともある。かかる処理デバイスは、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、マイクロコンピュータ、中央処理装置、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・ロジック・デバイス、状態マシン、論理回路、アナログ回路、デジタル回路、もしくは、回路のハードのコード化もしくは動作命令またはその両方に基づいて信号（アナログもしくはデジタルまたはその両方）を操作する任意のデバイス、またはこれらの組合せであってよい。これら処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはこれらの組合せは、メモリもしくは集積メモリ素子またはその両方であってよく、またはこれらをさらに含んでもよく、これらは、単一のメモリ・デバイス、複数のメモリ・デバイス、もしくは、別の処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはこれらの組合せに組み込まれた回路、またはこれらの組合せであってよい。かかるメモリ・デバイスは、読み取り専用メモリ、ランダム・アクセス・メモリ、揮発性メモリ、不揮発性メモリ、スタティック・メモリ、ダイナミック・メモリ、フラッシュ・メモリ、キャッシュ・メモリ、もしくはデジタル情報を格納する任意のデバイス、またはこれらの組合せであってよい。なお、処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはこれらの組合せが、複数の処理デバイスを含む場合、それら処理デバイスは、（例えば、有線もしくはワイヤレスまたはその両方のバス構成を介して直接一緒に連結されて）中央に配置されてもよく、あるいは（例えば、ローカル・エリア・ネットワークもしくは広域ネットワークまたはその両方を経由する間接的連結を介したクラウド・コンピューティングなどに）分散して配置されてもよい。処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはこれらの組合せが、その機能の１つ以上を、状態マシン、アナログ回路、デジタル回路、もしくは論理回路またはこれらの組合せを介して実行する場合、対応する動作命令を格納するメモリもしくはメモリ素子またはその両方は、これら状態マシン、アナログ回路、デジタル回路、もしくは論理回路またはこれらの組合せを含む回路機構内に組み込まれてもその外部にあってもよいことに、さらに留意する。メモリ素子が、上記の諸図の１つ以上に示されたステップもしくは機能またはその両方の少なくとも一部に対応するハード化コードもしくは動作命令またはその両方を格納することができ、処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはこれらの組合せが、それを実行することにも、さらになお留意する。かかるメモリ・デバイスまたはメモリ素子は、製造品の中に含めることができる。
【００４１】
規定された諸機能のパフォーマンスおよびそれらの関係性を表す方法ステップを用いて、１つ以上の実施形態を上記で説明してきた。本明細書では、これら機能の構成ブロックおよび方法ステップの境界およびシーケンスは、説明の便宜上随意的に定義されている。規定された諸機能および関係性が適切に遂行される限りにおいて、これらと別の区切りおよびシーケンスを定義することが可能である。一切のかかる別の区切りまたはシーケンスは、しかして本特許請求の範囲および趣旨内にある。さらに、これら機能の構成ブロックの区切りは、説明の便宜上随意的に定義されている。特定の重要な機能が適切に遂行される限りにおいて、別の区切りを定義することができよう。同様に、本明細書では、特定の重要な機能性を示すために、流れ図のブロックも随意的に定義されてい得る。
【００４２】
使用の範囲によって、流れ図ブロックの区切りおよびシーケンスは別途に定義できようし、それでもなお特定の重要な機能性を遂行できるであろう。機能の構成ブロックおよび流れ図のブロック、ならびにシーケンス両方のかかる別の諸定義は、しかして本特許請求の範囲および趣旨内にある。また、当業者は、本明細書中の機能構成ブロック、および他の図解ブロック、モジュールおよびコンポーネントが、図示したように、あるいはディスクリート部品、特定用途向け集積回路、適切なソフトウェアを実行するプロセッサなどまたはこれらの組合せによって、実装可能であることを認識するであろう。
【００４３】
さらに、流れ図は、「開始」もしくは「続く」の表示またはその両方を含むことがある。「開始」および「続く」の表示は、提示されたステップが、任意に他のルーティンに組み込まれる、またはそれと併せて使用できることを示している。この文脈において、「開始」は提示された最初のステップを始めることを示し、具体的に示されていない他の活動に後続していてもよい。さらに、「続く」の表示は、提示されたステップが、複数回行われることであってもよく、もしくは具体的に示されていない他の活動へ続いてもよく、またはその両方であってもよいことを示す。さらに、流れ図がある特定のステップの順序を示していても、因果法則が保たれている限り、他の順序付けも同じように可能である。
【００４４】
本明細書では、１つ以上の態様、１つ以上の特徴、１つ以上の構想、もしくは１つ以上の事例、またはこれらの組合せを例証するために１つ以上の実施形態が用いられている。装置、製造品、機械、もしくは工程、またはこれらの組合せの物理的実施形態は、本明細書で考察された諸実施形態の１つ以上を参照しながら説明された１つ以上の態様、特徴、構想、もしくは事例などを含み得る。さらに、各々の図において、諸実施形態は、同じまたは異なる参照符号を使用してい得る、同一にまたは類似に名付けられた機能、ステップ、モジュールなどを組み入れていることがあり、しかして、これら機能、ステップ、モジュールなどは、同じまたは類似の機能、ステップ、モジュールなどであることも、相異なっていることもある。
【００４５】
そうでないことが具体的に述べられている場合を除き、本明細書で提示された諸図のどの図においても、諸素子の信号の出入り、もしくはそれらの間の信号またはこれらの組合せは、アナログまたはデジタル、連続時間または離散時間、およびシングルエンド形または差動形であり得る。例えば、或る信号経路がシングルエンド形経路として示されている場合でも、それは差動信号経路をも合わせ表す。同様に、或る信号経路が差動形経路として示されている場合でも、それはシングルエンド形信号経路をも合わせ表す。本明細書では、１つ以上の特定のアーキテクチャが説明されているが、当業者なら認識するように、明示されていない１つ以上のデータ・バス、素子間の直接接続性、もしくは他の素子との間の間接的連結、またはこれらの組合せを使った、違ったアーキテクチャも同様に実装することが可能である。
【００４６】
実施形態の１つ以上の説明において、用語「モジュール」が用いられている。モジュールは、プロセッサもしくは他の処理デバイス、または動作命令を格納するメモリを含む、またはそれと関連して動作することが可能な他のハードウェアなどのデバイスを介して１つ以上の機能を実行する。モジュールは、独立して、あるいは、ソフトウェアもしくはファームウェアまたはその両方と協働して、またはその両方で動作することが可能である。また本明細書での使用において、モジュールは、１つ以上のサブモジュールを包含することができ、それらサブモジュールの各々も１つ以上のモジュールであってよい。
【００４７】
さらに本明細書での使用において、コンピュータ可読メモリは、１つ以上のメモリ素子を含む。メモリ素子は、個別のメモリ・デバイス、複数のメモリ・デバイス、またはメモリ・デバイス内のメモリ位置の一組であってよい。かかるメモリ・デバイスは、読み取り専用メモリ、ランダム・アクセス・メモリ、揮発性メモリ、不揮発性メモリ、スタティック・メモリ、ダイナミック・メモリ、フラッシュ・メモリ、キャッシュ・メモリ、もしくはデジタル情報を格納する任意のデバイス、またはこれらの組合せであってよい。このメモリ・デバイスは、ソリッド・ステート・メモリ、ハード・ドライブ・メモリ、クラウド・メモリ、サム・ドライブ、サーバ・メモリ、コンピューティング・デバイス・メモリ、もしくはデジタル情報を格納するための他の物理媒体、またはこれらの組合せの形であってよい。
【００４８】
本明細書で、１つ以上の実施形態の様々な機能および特徴の特定の組合せを明示で説明してきたが、これらの特徴および機能の他の組合せも同様に可能である。本開示は、本明細書で開示された特定の例に限定されず、これら他の組合せを明示で組み入れている。
【図１】
2020510256.tif 000003
【図２】
2020510256.tif 000004
【図３】
2020510256.tif 000005
【図４】
2020510256.tif 000006
【図５】
2020510256.tif 000007
【図６】
2020510256.tif 000008
【図７】
2020510256.tif 000009
【図８】
2020510256.tif 000010
【図９】
2020510256.tif 000011
【図１０】
2020510256.tif 000012
【図１１】
2020510256.tif 000013
【図１２】
2020510256.tif 000014
【手続補正書】
【提出日】令和1年12月27日(2019.12.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
散在ストレージ・ネットワーク（ＤＳＮ）の１つ以上コンピューティング・デバイスの１つ以上の処理モジュールによる実行のための方法であって、前記方法は、
データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信するステップと、
前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが、部分更新の対象となり得るかどうかを判断するステップと、
前記複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得る場合、前記１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択するステップと、
前記１つ以上のＥＤＳに前記部分更新処理が適用される過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう前記少なくとも１つの他のＥＤＳを除外しながら、前記部分更新処理の過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう前記少なくとも１つのＥＤＳに対する前記部分更新処理を実行するステップと、
を含む、方法。
【請求項２】
部分更新の対象となり得る前記１つ以上のＥＤＳの、部分更新処理が実行される前記少なくとも１つのＥＤＳに対する改訂番号を更新するステップ、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記部分更新処理が、部分更新の対象になり得る前記１つ以上のＥＤＳの少なくとも１つのＥＤＳに適用されるとき、前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する、前記複数のＥＤＳの前記（ＥＤＳ）の各々に対する改訂番号を更新するステップ、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記データ・オブジェクトの前記データ・セグメントに関連する複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを前記判断するステップが、埋込みコンテンツを含む前記データ・オブジェクトに基づく、請求項１に記載の方法。
【請求項５】
部分更新の対象となり得る前記１つ以上のＥＤＳの、前記少なくとも１つのＥＤＳに対する前記部分更新処理を前記実行するステップが、部分更新が実行される前記ＥＤＳの各々の中に少なくとも１つのオフセットを含めるオペレーションを含む、請求項１に記載の方法。
【請求項６】
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、更新コンテンツが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に、前記部分更新処理を前記実行するステップの以前に存在したコンテンツに上書きすることなく、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入される、請求項５に記載の方法。
【請求項７】
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、前記部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入される更新コンテンツが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中の前記部分更新処理を前記実行するステップの以前に存在した少なくとも一部のコンテンツに上書きされる、請求項５に記載の方法。
【請求項８】
部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの終端位置があり、前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に前記部分更新処理を前記実行するステップの以前に存在したコンテンツの、前記少なくとも１つのオフセットと前記終端位置との間を除去するステップを含む、請求項５に記載の方法。
【請求項９】
部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの範囲があり、前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に前記部分更新処理を前記実行するステップの以前に存在したコンテンツの、前記少なくとも１つのオフセットから開始される前記範囲を除去するステップを含む、請求項５に記載の方法。
【請求項１０】
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを前記判断するステップが、更新対象の前記データ・オブジェクトの特定のデータ・セグメントの散在ストレージ・エラー符号化関数の積である、更新対象の前記データ・オブジェクトの前記特定のデータ・セグメントに関連する前記１つ以上の符号化データ・スライス（ＥＤＳ）に基づく、請求項１に記載の方法。
【請求項１１】
ネットワークにインターフェース接続するためのインターフェースと、
メモリと、
前記インターフェースおよび前記メモリに動作可能に連結された第一処理モジュールと、
を含むコンピューティング・デバイスであって、前記第一処理モジュールは、
データ・オブジェクトの１つ以上のデータ・セグメントを更新する要求を受信し、
前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象になり得るかどうかを判断し、
前記複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得る場合、前記１つ以上のＥＤＳに部分更新処理を適用する過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう少なくとも１つのＥＤＳ、および部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう少なくとも１つの他のＥＤＳを選択し、
前記１つ以上のＥＤＳに前記部分更新処理が適用される過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けないであろう前記少なくとも１つの他のＥＤＳを除外しながら、前記部分更新処理の過程で、部分更新の対象となり得る前記１つ以上のＥＤＳの、影響を受けるであろう前記少なくとも１つのＥＤＳに対する前記部分更新処理を実行する、
ように動作可能である、
コンピューティング・デバイス。
【請求項１２】
前記第一処理モジュールが、
部分更新が実行される、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳに対する改訂番号を更新する、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１３】
前記第一処理モジュールが、
部分更新の対象となり得る前記１つ以上のＥＤＳの少なくとも１つのＥＤＳに、前記部分更新処理が適用されるとき、前記データ・オブジェクトの前記１つ以上のデータ・セグメントに関連する前記複数のＥＤＳの前記（ＥＤＳ）の各々に対する改訂番号を更新する、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１４】
前記第一処理モジュールが、
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを、埋込みコンテンツを含む前記データ・オブジェクトに基づいて判断する、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１５】
前記第一処理モジュールが、
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含めるオペレーションを含む、
ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項１６】
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含める、前記オペレーションが、
部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に、前記少なくとも１つのオフセットを挿入するステップを含み、更新コンテンツを、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に、前記部分更新処理の前記実行の以前に存在したコンテンツに上書きすることなく、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入するステップをさらに含む、請求項１５に記載のコンピューティング・デバイス。
【請求項１７】
前記第一処理モジュールが、
部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入し、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に挿入される更新コンテンツを、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に、前記部分更新処理の前記実行の以前に存在した少なくとも一部のコンテンツに上書きする、
ようにさらに動作可能である、請求項１５に記載のコンピューティング・デバイス。
【請求項１８】
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含める前記オペレーションが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、且つ、部分更新が実行される前記ＥＤＳの少なくとも１つ対し終端位置を挿入するステップをさらに含み、
前記部分更新処理を前記実行するステップが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中の、前記部分更新処理の前記実行の以前に存在したコンテンツの、前記少なくとも１つのオフセットと前記終端位置との間を除去するステップを含む、
請求項１５に記載のコンピューティング・デバイス。
【請求項１９】
少なくとも１つのオフセットを、部分更新が実行される前記ＥＤＳの各々の中に含める前記オペレーションが、部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳの中に前記少なくとも１つのオフセットを挿入するステップを含み、且つ、部分更新が実行される前記ＥＤＳの少なくとも１つ対する少なくとも１つの範囲をさらに含み、前記部分更新処理を前記実行するステップが、前記部分更新の対象となり得る前記１つ以上のＥＤＳの前記少なくとも１つのＥＤＳ中に、前記部分更新処理の前記実行の以前に存在したコンテンツの、前記少なくとも１つのオフセットから開始される前記範囲を除去するステップを含む、請求項１５に記載のコンピューティング・デバイス。
【請求項２０】
前記第一処理モジュールが、
前記データ・オブジェクトの前記データ・セグメントに関連する、複数の符号化データ・スライス（ＥＤＳ）の１つ以上のＥＤＳが部分更新の対象となり得るかどうかを、更新対象の前記データ・オブジェクトの特定のデータ・セグメントの散在ストレージ・エラー符号化関数の積である、前記１つ以上の符号化データ・スライス（ＥＤＳ）に基づいて判断する、ようにさらに動作可能である、請求項１１に記載のコンピューティング・デバイス。
【請求項２１】
プロセッサに、請求項１ないし１０のいずれか一項に記載の方法を実行させるためのプログラム。
【国際調査報告】
2020510256.tif 000015
2020510256.tif 000016