(57)【要約】【課題】  データ転送中にデータアクセス要求を処理するための方法及びシステムを提供すること。【解決手段】  複数のストレージを含む散在ストレージネットワーク（ＤＳＮ）における方法であって、その方法は、符号化データスライスグループの符号化データスライスを、第１のバージョンの分散アグリーメント・プロトコルに基づく第１のストレージから、第２のバージョンの分散アグリーメント・プロトコルに基づく第２のストレージに移行することと、符号化データスライスグループの符号化データスライスを移行している間に、要求コンピューティング・デバイスから、符号化データスライスグループの符号化データスライスに関するデータアクセス要求を受け取ることと、符号化データスライスが、移行の結果として既に第２のストレージに転送されているか否か判定することと、第１のストレージが符号化データスライスを格納している場合、第１のストレージがデータアクセス要求を処理することと、第１のストレージが符号化データスライスを格納していない場合、要求コンピューティング・デバイスのためのプロキシとして第１のストレージが機能して、データアクセス要求を満たすことと、を含む。【選択図】      図１０
2018524705.tif 000002
【特許請求の範囲】
【請求項１】
散在ストレージネットワーク（ＤＳＮ）のストレージユニットによる実行のための方法であって、該方法は、
１つ又は複数の符号化データスライスグループのストレージを、旧バージョンの分散アグリーメント・プロトコルに基づくストレージから、新バージョンの分散アグリーメント・プロトコルに基づくストレージに移行することと、
前記１つ又は複数の符号化データスライスグループのストレージを移行している間に、
要求コンピューティング・デバイスから、前記１つ又は複数の符号化データスライスグループの符号化データスライスに関するデータアクセス要求を受け取ることと、
前記符号化データスライスが、前記移行の結果として既に転送されているか否か判定することと、
前記ストレージユニットが前記符号化データスライスを現在格納している場合、前記データアクセス要求を処理することと、
前記ストレージユニットが前記符号化データスライスを現在格納していない場合、前記要求コンピューティング・デバイスのためのプロキシとして機能して、前記データアクセス要求を満たすことと、
を含む、方法。
【請求項２】
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を受け取ることであって、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、前記ストレージユニットによって格納されている、ことと、
前記データアクセス要求を処理することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を受け取ることであって、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、別のストレージユニットによって格納されている、ことと、
前記ストレージユニットによって、前記データアクセス要求を前記他のストレージユニットに転送することと、
前記ストレージユニットによって、前記他のストレージユニットからのアクセス応答を受け取ることと、
前記ストレージユニットによって、前記アクセス応答を前記要求コンピューティング・デバイスに送ることと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記要求コンピューティング・デバイスから別のストレージユニットを介して前記データアクセス要求を受け取ることであって、ここで前記データアクセス要求は、前記新バージョンの分散アグリーメント・プロトコルに基づくものであり、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、前記ストレージユニットによって格納されており、ここで他のコンピューティング・デバイスは、前記ストレージユニットのためのプロキシとして機能している、ことと、
前記データアクセス要求を処理して、データアクセス応答を生成することと、
前記データアクセス応答を前記他のストレージユニットに送ることと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記１つ又は複数の符号化データスライスグループのストレージを移行することが、
前記新バージョンの分散アグリーメント・プロトコルを実行して、前記１つ又は複数の符号化データスライスグループを識別することを含み、ここで前記分散アグリーメント・プロトコルは、
複数のストレージユニット識別子、複数の対応するストレージユニット重み、及び前記１つ又は複数の符号化データスライスグループに対応する１つ又は複数のアセット識別子に基づいて、複数のスコアリング値を生成するように動作可能な複数の関数と、
前記複数のスコアリング値を処理して、前記１つ又は複数の符号化データスライスグループの１つ又は複数の符号化データスライスを転送すべき少なくとも１つの別のストレージユニットを識別する、ランキング関数と、
を含む、請求項１に記載の方法。
【請求項６】
前記１つ又は複数の符号化データスライスグループ内のグループが、複数の符号化データスライス集合に関するスライス名の範囲に基づくものである、請求項１に記載の方法。
【請求項７】
インタフェースと、
メモリと、
処理モジュールと、
を備えたストレージユニットであって、前記処理モジュールは、
１つ又は複数の符号化データスライスグループのストレージを、旧バージョンの分散アグリーメント・プロトコルに基づくストレージから、新バージョンの分散アグリーメント・プロトコルに基づくストレージに移行し、
前記１つ又は複数の符号化データスライスグループのストレージを移行している間に、
要求コンピューティング・デバイスから、前記１つ又は複数の符号化データスライスグループの符号化データスライスに関するデータアクセス要求を受け取り、
前記符号化データスライスが、前記移行の結果として既に転送されているか否か判定し、
前記ストレージユニットが前記符号化データスライスを現在格納している場合、前記データアクセス要求を処理し、
前記ストレージユニットが前記符号化データスライスを現在格納していない場合、前記要求コンピューティング・デバイスのためのプロキシとして機能して、前記データアクセス要求を満たす、
ように動作可能である、
ストレージユニット。
【請求項８】
前記処理モジュールは、さらに、
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を受け取るように機能し、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、前記ストレージユニットによって格納されており、
前記データアクセス要求を処理するように機能する、請求項７に記載のストレージユニット。
【請求項９】
前記処理モジュールは、さらに、
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を受け取るように機能し、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、別のストレージユニットによって格納されており、
前記ストレージユニットによって、前記データアクセス要求を前記他のストレージユニットに転送するように機能し、
前記ストレージユニットによって、前記他のストレージユニットからのアクセス応答を受け取るように機能し、ここで前記アクセス応答は、前記符号化データスライスを含み、
前記ストレージユニットによって、前記アクセス応答を前記要求コンピューティング・デバイスに送るように機能する、
請求項７に記載のストレージユニット。
【請求項１０】
前記処理モジュールは、さらに
前記要求コンピューティング・デバイスから別のストレージユニットを介して前記データアクセス要求を受け取るように機能し、ここで前記データアクセス要求は、前記新バージョンの分散アグリーメント・プロトコルに基づくものであり、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、前記ストレージユニットによって格納されており、ここで他のコンピューティング・デバイスは、前記ストレージユニットのためのプロキシとして機能しており、
前記データアクセス要求を処理して、データアクセス応答を生成するように機能し、
前記データアクセス応答を前記他のストレージユニットに送るように機能する、
請求項７に記載のストレージユニット。
【請求項１１】
前記処理モジュールは、前記１つ又は複数の符号化データスライスグループのストレージを、
前記新バージョンの分散アグリーメント・プロトコルを実行して、前記１つ又は複数の符号化データスライスグループを識別することによって移行するように機能し、ここで前記分散アグリーメント・プロトコルは、
複数のストレージユニット識別子、複数の対応するストレージユニット重み、及び１つ又は複数の前記符号化データスライスグループに対応する１つ又は複数のアセット識別子に基づいて、複数のスコアリング値を生成するように動作可能な複数の関数と、
前記複数のスコアリング値を処理して、前記１つ又は複数の符号化データスライスグループの１つ又は複数の符号化データスライスを転送すべき少なくとも１つの別のストレージユニットを識別する、ランキング関数と、
を含む、請求項７に記載のストレージユニット。
【請求項１２】
前記１つ又は複数の符号化データスライスグループ内のグループが、複数の符号化データスライス集合に関するスライス名の範囲に基づくものである、請求項７に記載のストレージユニット。
【請求項１３】
ストレージユニットによって実行されたとき、該ストレージユニットに、
１つ又は複数の符号化データスライスグループのストレージを、旧バージョンの分散アグリーメント・プロトコルに基づくストレージから、新バージョンの分散アグリーメント・プロトコルに基づくストレージに移行させる、
動作命令を格納する第１のメモリ要素と、
ストレージユニットによって実行されたとき、該ストレージユニットに、
前記１つ又は複数の符号化データスライスグループのストレージを移行している間に、
要求コンピューティング・デバイスから、前記１つ又は複数の符号化データスライスグループの符号化データスライスに関するデータアクセス要求を受け取らせ、
前記符号化データスライスが、前記移行の結果として既に転送されているか否か判定させ、
前記ストレージユニットが前記符号化データスライスを現在格納している場合、前記データアクセス要求を処理させ、
前記ストレージユニットが前記符号化データスライスを現在格納していない場合、前記要求コンピューティング・デバイスのためのプロキシとして機能させて、前記データアクセス要求を満たす、
動作命令を格納する第２のメモリ要素と、
を備える、
コンピュータ可読メモリデバイス。
【請求項１４】
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を受け取ることであって、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、前記ストレージユニットによって格納されている、ことと、
前記データアクセス要求を処理することと、
をさらに含む、請求項１３に記載のコンピュータ可読メモリデバイス。
【請求項１５】
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を受け取ることであって、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、別のストレージユニットによって格納されている、ことと、
前記ストレージユニットによって、前記データアクセス要求を前記他のストレージユニットに転送することと、
前記ストレージユニットによって、前記他のストレージユニットからのアクセス応答を受け取ることと、
前記ストレージユニットによって、前記アクセス応答を前記要求コンピューティング・デバイスに送ることと、
をさらに含む、請求項１３に記載のコンピュータ可読メモリデバイス。
【請求項１６】
前記要求コンピューティング・デバイスから別のストレージユニットを介して前記データアクセス要求を受け取ることであって、ここで前記データアクセス要求は、前記新バージョンの分散アグリーメント・プロトコルに基づくものであり、ここで前記符号化データスライスは、第１の符号化データスライスグループのものであり、ここで前記第１の符号化データスライスグループは、前記ストレージユニットによって格納されており、ここで他のコンピューティング・デバイスは、前記ストレージユニットのためのプロキシとして機能している、ことと、
前記データアクセス要求を処理して、データアクセス応答を生成することと、
前記データアクセス応答を前記他のストレージユニットに送ることと、
をさらに含む、請求項１３に記載のコンピュータ可読メモリデバイス。
【請求項１７】
前記第２のメモリ要素が、
前記新バージョンの分散アグリーメント・プロトコルを実行して、前記１つ又は複数の符号化データスライスグループを識別するようにさらに機能し、ここで前記分散アグリーメント・プロトコルは、
複数のストレージユニット識別子、複数の対応するストレージユニット重み、及び前記１つ又は複数の符号化データスライスグループに対応する１つ又は複数のアセット識別子に基づいて、複数のスコアリング値を生成するように動作可能な複数の関数と、
前記複数のスコアリング値を処理して、前記１つ又は複数の符号化データスライスグループの１つ又は複数の符号化データスライスを転送すべき少なくとも１つの別のストレージユニットを識別する、ランキング関数と、
を含む、請求項１３に記載のコンピュータ可読メモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータネットワークに関し、より具体的には、誤り符号化データを分散することに関する。
【背景技術】
【０００２】
コンピューティング・デバイスは、データを通信し、データを処理し、及び／又はデータを格納することが知られている。このようなコンピューティング・デバイスは、無線スマートフォン、ラップトップ、タブレット、パーソナルコンピュータ（ＰＣ）、ワークステーション及びビデオゲーム装置から、毎日数百万ものウェブ検索、株式取引、又はオンライン購入をサポートするデータセンタにまで及ぶ。一般に、コンピューティング・デバイスは、中央処理ユニット（ＣＰＵ）、メモリシステム、ユーザ入力／出力インタフェース、周辺装置インタフェース、及び相互接続バス構造を含む。
【０００３】
さらに知られているように、コンピュータは、「クラウド・コンピューティング」を用いて、１つ又は複数のコンピューティング機能（例えば、サービス、アプリケーション、アルゴリズム、演算論理関数、等）をそのコンピュータの代わりに行うことによって、そのＣＰＵを有効に拡張することができる。さらに、大規模なサービス、アプリケーション及び／又は機能に関しては、クラウド・コンピューティングを複数のクラウドコンピューティング・リソースによって分配方式で行って、サービス、アプリケーション、及び／又は関数の完了のための応答時間を改善することができる。例えば、Ｈａｄｏｏｐは、数千のコンピュータによるアプリケーション実行を可能にする分散アプリケーションをサポートする、オープンソース・ソフトウェアである。
【０００４】
クラウド・コンピューティングに加えて、コンピュータは、そのメモリシステムの一部として「クラウド・ストレージ」を用いることができる。知られているように、クラウド・ストレージは、ユーザがそのコンピュータを介して、ファイル、アプリケーション等をインターネット・ストレージシステム上に格納することを可能にする。インターネット・ストレージシステムは、誤り訂正スキームを用いてストレージ用にデータを符号化する、ＲＡＩＤ（独立ディスクの冗長アレイ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ））システム及び／又は散在ストレージシステムを含むことができる。
【０００５】
散在ストレージシステム（dispersed storage system）において、データは、その時々で、１つのストレージユニットから別のストレージユニットへ転送される。著しい量の転送すべきデータが存在する場合、データ転送を遂行するには時間がかかる。このようなデータの転送中に、転送中のデータに対するデータアクセス要求を受け取る可能性がある。
【図面の簡単な説明】
【０００６】
【図１】本発明による散在（ｄｉｓｐｅｒｓｅｄ）又は分散（ｄｉｓｔｒｉｂｕｔｅｄ）ストレージネットワーク（ＤＳＮ）の実施形態の略ブロック図である。
【図２】本発明によるコンピューティング・コアの実施形態の略ブロック図である。
【図３】本発明によるデータの散在ストレージ誤り符号化の一例の略ブロック図である。
【図４】本発明による誤り符号化関数の通則的な例の略ブロック図である。
【図５】本発明による誤り符号化関数の特定の例の略ブロック図である。
【図６】本発明による符号化データスライス（ＥＤＳ：ｅｎｃｏｄｅｄ  ｄａｔａ  ｓｌｉｃｅ）のスライス名の一例の略ブロック図である。
【図７】本発明によるデータの散在ストレージ誤り復号の一例の略ブロック図である。
【図８】本発明による誤り復号関数の通則的な例の略ブロック図である。
【図９】本発明による複数のストレージユニット集合の実施形態の略ブロック図である。
【図１０】本発明によるストレージユニット間での符号化データスライスグループの転送の一例の略ブロック図である。
【図１１】本発明による拡散（ｄｅｃｅｎｔｒａｌｉｚｅｄ）又は分散（ｄｉｓｔｒｉｂｕｔｅｄ）アグリーメント・プロトコルの実施形態の略ブロック図である。
【図１２】本発明によるデータ転送中にデータアクセス要求を処理する方法の一例の論理図である。
【発明を実施するための形態】
【０００７】
図１は、複数のコンピューティング・デバイス１２−１６、管理ユニット１８、保全性処理ユニット２０、及びＤＳＮメモリ２２を含む、散在、あるいは分散ストレージネットワーク（ＤＳＮ）１０の実施形態の略ブロック図である。ＤＳＮ１０の構成要素は、ネットワーク２４に結合されており、該ネットワークは、１つ又は複数の無線及び／又は有線通信システム、１つ又は複数の非公開イントラネットシステム及び／又は公開インターネットシステム、及び／又は１つ又は複数のローカルエリアネットワーク（ＬＡＮ）及び／又は広域ネットワーク（ＷＡＮ）を含むことができる。
【０００８】
ＤＳＮメモリ２２は、地理的に異なる場所（例えば、１つがシカゴ、１つがミルウォーキー等）、共通の場所、又はその組合せに設置することができる、複数のストレージユニット３６を含む。例えば、ＤＳＮメモリ２２が８つのストレージユニット３６を含む場合、各ストレージユニットは、異なるサイトに設置される。別の例として、ＤＳＮメモリ２２が８つのストレージユニット３６を含む場合、８つ全てのストレージユニットが同じ場所に設置される。さらに別の例として、ＤＳＮメモリ２２が８つのストレージユニット３６を含む場合、第１のストレージユニット対は、第１の共通場所にあり、第２のストレージユニット対は、第２の共通場所にあり、第３のストレージユニット対は、第３の共通場所にあり、第４のストレージユニット対は、第４のストレージ場所にある。ＤＳＮメモリ２２は、８より多い又は少ないストレージユニット３６を含むことができることに留意されたい。各ストレージユニット３６は、コンピューティング・コア（図２に示すような、又はその構成要素）と、分散された誤り符号化データを格納するための複数のメモリデバイスとを含むことに、さらに留意されたい。
【０００９】
コンピューティング・デバイス１２−１６、管理ユニット１８、及び保全性処理ユニット２０の各々は、コンピューティング・コア２６を含み、これはネットワークインタフェース３０−３３を含む。コンピューティング・デバイス１２−１６は、各々、携帯型コンピューティング・デバイス及び／又は据付型コンピューティング・デバイスとすることができる。携帯型コンピューティング・デバイスは、ソーシャルネットワーキング装置、ゲーム装置、携帯電話、スマートフォン、デジタルアシスタント、デジタル音楽プレーヤ、デジタルビデオプレーヤ、ラップトップコンピュータ、手持ち式コンピュータ、タブレット、ビデオゲームコントローラ、及び／又はコンピューティング・コアを含む他の任意の携帯型デバイスとすることができる。据付型コンピューティング・デバイスは、コンピュータ（ＰＣ）、コンピュータサーバ、ケーブル・セットトップボックス、衛星受信機、テレビジョンセット、プリンタ、ファックス機、家庭用娯楽機器、ビデオゲームコンソール、及び／又はあらゆる型式の家庭用又はオフィス用コンピューティング機器とすることができる。管理ユニット１８及び保全性処理ユニット２０の各々は、別個のコンピューティング・デバイスであってもよく、共通のコンピューティング・デバイスであってもよく、及び／又は、１つ又は複数のコンピューティング・デバイス１２−１６及び／又は１つ又は複数のストレージユニット３６に組み込まれてもよいことに留意されたい。
【００１０】
各インタフェース３０、３２及び３３は、ネットワーク２４を介して間接的に及び／又は直接的に１つ又は複数の通信リンクをサポートする、ソフトウェア及びハードウェアを含む。例えば、インタフェース３０は、コンピューティング・デバイス１４と１６との間の通信リンク（例えば、有線、無線、直接、ＬＡＮ経由、ネットワーク２４経由等）をサポートする。別の例として、インタフェース３２は、コンピューティング・デバイス１２及び１６とＤＳＮメモリ２２との間の通信リンク（例えば、有線接続、無線接続、ＬＡＮ接続、及び／又は他の任意の型式のネットワーク２４への／からの接続）をサポートする。さらに別の例として、インタフェース３３は、管理ユニット１８及び保全性処理ユニット２０の各々について、ネットワーク２４への通信リンクをサポートする。
【００１１】
コンピューティング・デバイス１２及び１６は、散在ストレージ（ＤＳ）クライアント・モジュール３４を含み、これは、図３〜図８の１つ又は複数を参照して後で説明するように、コンピューティング・デバイスがデータ（例えばデータ４０）を散在ストレージ誤り符号化及び復号することを可能にする。この例示的な実施形態において、コンピューティング・デバイス１６は、コンピューティング・デバイス１４のための散在ストレージ処理エージェントとして機能する。この役割において、コンピューティング・デバイス１６は、コンピューティング・デバイス１４の代理として、データを散在ストレージ誤り符号化及び復号する。散在ストレージ誤り符号化及び復号を使用すると、ＤＳＮ１０は、データを損失することなく且つデータの冗長及びバックアップコピーを要することなく、著しい数のストレージユニット故障（故障の数は、散在ストレージ誤り符号化関数のパラメータに基づく）に対してトレラントになる。さらに、ＤＳＮ１０は、データを損失せずにセキュアな方式で無期限にデータを格納する（例えば、システムは、権限なくデータにアクセスする試行に対して極めて耐性である）。
【００１２】
動作時、管理ユニット１８は、ＤＳ管理サービスを行う。例えば、管理ユニット１８は、個別に又はユーザデバイスグループの一部として、コンピューティング・デバイス１２−１４のための分散データストレージ・パラメータ（例えば、ヴォールト（ｖａｕｌｔ）作成、分散ストレージ・パラメータ、セキュリティ・パラメータ、課金情報、ユーザプロファイル情報等）を確立する。特定の例として、管理ユニット１８は、ユーザデバイス、デバイスグループ、又は公開アクセスのためにＤＳＮメモリ２２内のヴォールト（例えば、ＤＳＮの全ネーム空間の一部に関連付けられた仮想メモリブロック）の作成を調整し、且つ、ヴォールト毎にヴォールト用の散在ストレージ（ＤＳ）誤り符号化パラメータを確立する。管理ユニット１８は、ＤＳＮ１０のレジストリ情報を更新することによって、各ヴォールト用のＤＳ誤り符号化パラメータのストレージを促進し、ここでレジストリ情報は、ＤＳＮメモリ２２、コンピューティング・デバイス１２−１６、管理ユニット１８、及び／又は保全性処理ユニット２０内に格納することができる。
【００１３】
管理ユニット１８は、ローカルメモリ内及び／又はＤＳＮメモリ２２のメモリ内で、ユーザプロファイル情報（例えば、アクセス制御リスト（ＡＣＬ））を作成し及び格納する。ユーザプロファイル情報は、認証情報、許可、及び／又はセキュリティ・パラメータを含む。セキュリティ・パラメータは、暗号化／解読スキーム、１つ又は複数の暗号化鍵、鍵生成スキーム、及び／又はデータ符号化／復号スキームを含むことができる。
【００１４】
管理ユニット１８は、特定のユーザ、ユーザグループ、ヴォールトアクセス、公開ヴォールトアクセス等のための課金情報を作成する。例えば、管理ユニット１８は、ユーザが非公開ヴォールト及び／又は公開ヴォールトにアクセスした回数を追跡し、これを用いてアクセス毎の課金情報を生成することができる。別の事例において、管理ユニット１８は、ユーザデバイス及び／又はユーザグループによって格納された及び／又は取得されたデータの量を追跡し、これを用いてデータ量毎の課金情報を生成することができる。
【００１５】
別の例として、管理ユニット１８は、ネットワーク動作、ネットワーク管理、及び／又はネットワーク保守を行う。ネットワーク動作は、ユーザデータ割当て要求（例えば、読出し及び／又は書込み要求）を認証すること、ヴォールトの作成を管理すること、ユーザデバイス用の認証証明書を確立すること、ＤＳＮ１０から構成要素（例えば、ユーザデバイス、ストレージユニット、及び／又はＤＳクライアント・モジュール３４を有するコンピューティング・デバイス）を追加／削除すること、及び／又はストレージユニット３６用の認証証明書を確立することを含む。ネットワーク管理は、デバイス及び／又はユニットの故障を監視すること、ヴォールト情報を維持すること、デバイス及び／又はユニット起動ステータスを判定すること、デバイス及び／又はユニットのローディングを判定すること、及び／又はＤＳＮ１０の性能レベルに影響を及ぼす他の何らかのシステムレベルを判定することを含む。ネットワーク保守は、ＤＳＮ１０のデバイス及び／又はユニットの交換、更新、修理、及び／又は拡張を促進することを含む。
【００１６】
保全性処理ユニット２０は、「不良」又は欠落した符号化データスライスの再構築を行う。高位において、保全性処理ユニット２０は、ＤＳＮメモリ２２からの符号化データスライス及び／又は符号化データスライスのスライス名の取得／リスト化を周期的に試行することによって、再構築を行う。取得された符号化スライスに関して、これらは、データ破損、期限切れのバージョン等に起因する誤りに関してチェックされる。あるスライスが誤りを含む場合、これに「不良」スライスとしてフラグが立てられる。取得されなかった及び／又はリスト化されなかった符号化データスライスに関して、これらには欠落スライスとしてフラグが立てられる。不良及び／又は欠落スライスは、その後、良スライスと思われる他の取得された符号化データスライスを用いて再構築され、再構築スライスを生成する。再構築スライスは、ＤＳＮメモリ２２内に格納される。
【００１７】
図２は、処理モジュール５０、メモリコントローラ５２、主メモリ５４、ビデオグラフィックス処理ユニット５５、入力／出力（ＩＯ）コントローラ５６、周辺コンポーネント相互接続（ＰＣＩ）インタフェース５８、ＩＯインタフェース・モジュール６０、少なくとも１つのＩＯデバイス・インタフェース・モジュール６２、読出し専用メモリ（ＲＯＭ）基本入出力システム（ＢＩＯＳ）６４、及び１つ又は複数のメモリ・インタフェース・モジュールを含む、コンピューティング・コア２６の実施形態の略ブロック図である。１つ又は複数のメモリ・インタフェース・モジュールは、ユニバーサルシリアルバス（ＵＳＢ）インタフェース・モジュール６６、ホストバスアダプタ（ＨＢＡ）インタフェース・モジュール６８、ネットワーク・インタフェース・モジュール７０、フラッシュ・インタフェース・モジュール７２、ハードドライブ・インタフェース・モジュール７４、及びＤＳＮインタフェース・モジュール７６のうちの１つ又は複数を含む。
【００１８】
ＤＳＮインタフェース・モジュール７６は、従来のオペレーティングシステム（ＯＳ）ファイルシステム・インタフェース（例えば、ネットワーク・ファイルシステム（ＮＦＳ）、フラッシュ・ファイルシステム（ＦＦＳ）、ディスク・ファイルシステム（ＤＦＳ）、ファイル転送プロトコル（ＦＴＰ）、ウェブベース分散オーサリング及びバージョニング（ＷｅｂＤＡＶ）等）及び／又はブロックメモリ・インタフェース（例えば、小型コンピュータシステム・インタフェース（ＳＣＳＩ）、インターネット小型コンピュータシステム・インタフェース（ｉＳＣＳＩ）等）を模倣するように機能する。ＤＳＮインタフェース・モジュール７６及び／又はネットワーク・インタフェース・モジュール７０は、図１のインタフェース３０−３３のうちの１つ又は複数として機能することができる。ＩＯデバイス・インタフェース・モジュール６２及び／又はメモリ・インタフェース・モジュール６６−７６は、まとめて又は個別にＩＯポートと呼ぶことができることに留意されたい。
【００１９】
図３は、データの散在ストレージ誤り符号化の一例の略ブロック図である。コンピューティング・デバイス１２又は１６が格納すべきデータを有するとき、これは、該データを、散在ストレージ誤り符号化パラメータに基づく散在ストレージ誤り符号化プロセスに従って、分散ストレージ誤り符号化する。散在ストレージ誤り符号化パラメータは、符号化関数（例えば、情報分散アルゴリズム、リード−ソロモン（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）、コーシー・リード−ソロモン（Ｃａｕｃｈｙ  Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）、系統的符号化、非系統的符号化、オンライン・コード等）、データセグメント化プロトコル（例えば、データセグメントサイズ、固定、可変等）、及びデータセグメント毎符号化値を含む。データセグメント毎符号化値は、データセグメントの符号化当たりの（すなわち符号化データスライス集合内の）符号化データスライスの総数、あるいはピラー（ｐｉｌｌａｒ）幅数（Ｔ）；データセグメントを回復するのに必要な符号化データスライス集合の符号化データスライスの復号閾値数（Ｄ）；データセグメントを復号するためにストレージから読み出すべき集合当たりの符号化データスライスの数を示す、符号化データスライスの読出し閾値数（Ｒ）；及び／又は符号化データセグメントが適正に格納されたと見なされるまでに正確に格納されなければならない集合当たりの符号化データスライスの数を示す、書込み閾値数（Ｗ）を含む。散在ストレージ誤り符号化パラメータは、スライス情報（例えば、各データセグメントに対して作成されることになる符号化データスライスの数）及び／又はスライス・セキュリティ情報（例えば、符号化データスライス毎の、暗号化、圧縮、保全性チェックサム等）をさらに含むことができる。
【００２０】
本例においては、符号化関数としてコーシー・リード−ソロモンが選択され（通則的な例を図４に示し、特定の例を図５に示す）、データセグメント化プロトコルは、データオブジェクトを固定サイズのデータセグメントに分割することであり、データセグメント毎符号化値は、ピラー幅５、復号閾値３、読出し閾値４、及び書込み閾値４を含む。データセグメント化プロトコルに従って、コンピューティング・デバイス１２又は１６は、データ（例えば、ファイル（例えば、テキスト、ビデオ、音声等）、データオブジェクト、又は他のデータ配列）を複数の固定サイズのデータセグメント（例えば、キロバイトからテラバイト又はそれ以上の範囲の、固定サイズ１からＹまで）に分割する。作成されるデータセグメントの数は、データのサイズ及びデータセグメント化プロトコルに依存する。
【００２１】
コンピューティング・デバイス１２又は１６は、次に、選択された符号化関数（例えば、コーシー・リード−ソロモン）を用いてデータセグメントを分散ストレージ誤り符号化して、符号化データスライス集合を生成する。図４は、通則的なコーシー・リード−ソロモン符号化関数を示し、これは、符号化（ｅｎｃｏｄｉｎｇ）行列（ＥＭ）、データ行列（ＤＭ）、及びコード化（ｃｏｄｅｄ）行列（ＣＭ）を含む。符号化行列（ＥＭ）のサイズは、選択されたデータセグメント当たりの符号化値のピラー幅数（Ｔ）及び復号閾値数（Ｄ）に依存する。データ行列（ＤＭ）を生成するために、データセグメントは、複数のデータブロックに分割され、データブロックは、１行当たりＺデータブロックを有する数Ｄの行に配列される。Ｚは、データセグメントから作成されるデータブロックの数及び復号閾値数（Ｄ）の関数であることに留意されたい。コード化行列は、データ行列に符号化行列を行列乗算することによって生成される。
【００２２】
図５は、ピラー数（Ｔ）が５及び復号閾値数が３の、コーシー・リード−ソロモン符号化の特定の例を示す。この例において、第１のデータセグメントは、１２個のデータブロック（Ｄ１−Ｄ１２）に分割される。コード化行列は、５行のコード化データブロックを含み、ここで第１の行Ｘ１１−Ｘ１４は、第１の符号化データスライス（ＥＤＳ１＿１）に対応し、第２の行Ｘ２１−Ｘ２４は、第２の符号化データスライス（ＥＤＳ２＿１）に対応し、第３の行Ｘ３１−Ｘ３４は、第３の符号化データスライス（ＥＤＳ３＿１）に対応し、第４の行Ｘ４１−Ｘ４４は、第４の符号化データスライス（ＥＤＳ４＿１）に対応し、第５の行Ｘ５１−Ｘ５４は、第５の符号化データスライス（ＥＤＳ５＿１）に対応する。ＥＤＳの名称の２番目の数は、データセグメント数に対応することに留意されたい。
【００２３】
図３の検討に戻ると、コンピューティング・デバイスはまた、符号化データスライス集合内の各符号化データスライス（ＥＤＳ）に対してスライス名（ＳＮ）も作成する。スライス名８０の典型的な形式を図６に示す。図示したように、スライス名（ＳＮ）８０は、符号化データスライスのピラー数（例えば、１−Ｔのうちの１つ）、データセグメント数（例えば、１−Ｙのうちの１つ）、ヴォールト識別子（ＩＤ）、データオブジェクト識別子（ＩＤ）、を含み、さらに符号化データスライスのリビジョン（改訂）レベル情報を含むことができる。スライス名は、少なくとも部分的に、ＤＳＮメモリ２２への格納及びそこからの取得のための符号化データスライス用のＤＳＮアドレスとして機能する。
【００２４】
符号化の結果として、コンピューティング・デバイス１２又は１６は、複数の符号化データスライス集合を生成し、これらには、格納用のストレージユニットに対するそれぞれのスライス名が与えられる。図示したように、第１の符号化データスライス集合は、ＥＤＳ１＿１からＥＤＳ５＿１までを含み、第１のスライス名集合は、ＳＮ１＿１からＳＮ５＿１までを含み、最後の符号化データスライス集合は、ＥＤＳ１＿ＹからＥＤＳ５＿Ｙまでを含み、最後のスライス名集合は、ＳＮ１＿ＹからＳＮ５＿Ｙまでを含む。
【００２５】
図７は、図４の例において散在ストレージ誤り符号化されて格納されたデータオブジェクトの、散在ストレージ誤り復号の一例の略ブロック図である。この例において、コンピューティング・デバイス１２又は１６は、ストレージユニットからデータセグメント毎に少なくとも復号閾値数の符号化データスライスを取得する。特定の例として、コンピューティング・デバイスは、読出し閾値数の符号化データスライスを取得する。
【００２６】
復号閾値数の符号化データスライスからデータセグメントを回復するために、コンピューティング・デバイスは、図８に示すような復号関数を用いる。図示したように、復号関数は、本質的に図４の符号化関数の逆関数である。コード化行列は、復号閾値数（例えば、この例では３）の行を含み、復号行列は、コード化行列の対応する行を含む符号化行列の逆行列である。例えば、コード化行列が行１、２及び４を含む場合、符号化行列を行１、２及び４に減らし、次いで逆行列にして、復号行列を生成する。
【００２７】
図９は、複数のストレージユニット集合として配列された、ＤＳＮ１０の複数のストレージユニット３６の略ブロック図である。第１のストレージユニット集合は、ＳＵ＃１−ＡからＳＵ＃５−Ａまでを含み、別の集合は、ＳＵ＃１−ＸからＳＵ＃５−Ｘまでを含む。この例において、各集合は、５つのストレージユニットを含むが、より多くても少なくてもよく、集合当たりのストレージユニットの数は、集合毎に変化してもよい。各ストレージユニット集合は、符号化データスライス集合を格納する。例えば、ストレージユニット集合Ａは、符号化データスライス１からＺまでの集合を格納しており、ストレージユニット１−Ａが符号化データスライスＡ１＿１からＡ１＿Ｚまでを格納し、ストレージユニット２−Ａが符号化データスライスＡ２＿１からＡ２＿Ｚまでを格納し、以下同様である。別の例として、ストレージユニット集合Ｘは、符号化データスライス１からＹまでの集合を格納しおり、ストレージユニット１−Ｘが符号化データスライスＸ１＿１からＸ１＿Ｙまでを格納し、ストレージユニット２−Ｘが符号化データスライスＸ２＿１からＸ２＿Ｙまでを格納し、以下同様である。
【００２８】
分散アグリーメント・プロトコルは、ＤＳＮ内で、ある符号化データスライス集合がどこに格納されるかを決定するために用いられる。その時々で、分散アグリーメント・プロトコルは、ストレージユニットをＤＳＮに追加すること、ストレージユニットをＤＳＮから除去すること、既存のストレージユニットにメモリを追加することの結果として、及び／又は他の多様な理由で、変化することになる。分散アグリーメント・プロトコルに対する変更が生じると、幾つかの符号化データスライスが１つのストレージユニットから別のストレージユニットへ転送される必要があり得る。分散アグリーメント・プロトコルは、図１０を参照してより詳細に説明される。
【００２９】
図１０は、分散アグリーメント・プロトコルに対する変更の結果として、ストレージユニットＳＵ１−ＡとＳＵ１−Ｘとの間で符号化データスライスグループを転送する一例の略ブロック図である。変更前、ＳＵ１−Ａは、第４の符号化データスライスグループ（ＥＤＳ１＿ｃ１からＥＤＳ１＿ｃｍまで及びＥＤＳ１＿ｄ１からＥＤＳ１＿ｄｆまで）を格納するように定められている。ストレージユニット内の符号化データスライスグループは、データオブジェクト、データオブジェクトの一部、又は複数のデータオブジェクト由来のものとすることができることに留意されたい。ストレージユニット集合内の各ストレージユニットは、対応する符号化データスライスグループを格納することに更に留意されたい。例えば、ストレージユニットＳＵ２−Ａは、第４の符号化データスライスグループ（ＥＤＳ２＿ｃ１からＥＤＳ２＿ｃｍまで及びＥＤＳ２＿ｄ１からＥＤＳ２＿ｄｆまで）を格納する。
【００３０】
この例において、分散アグリーメント・プロトコルに対する変更は、符号化データスライスグループ４の、ＳＵ１−ＡからＳＵ１−Ｘへの転送を引き起こす。また、対応する符号化データスライスグループ４が、ＳＵ２−ＡからＳＵ２−Ｘへ、ＳＵ３−ＡからＳＵ３−Ｘへ、ＳＵ４−ＡからＳＵ４−Ｘへ、及びＳＵ５−ＡからＳＵ５−Ｘへ転送されることになる。この例は、ＳＵ１−ＡからＳＵ１−Ｘへの符号化データスライスの転送が進行中であることをさらに示す。例えば、符号化データスライス１＿ｃ１から１＿ｃｍまでは、既に転送が成功しており、一方、符号化データスライス１＿ｄ１から１＿ｄｆまでは、まだ転送されていない。符号化データスライスの転送が途中の間に、グループ４内の符号化データスライスに対して１つ又は複数のデータアクセス要求を受け取る場合がある。グループは、少なくともスライス名の一部に基づいて（例えば、オブジェクトＩＤ、ピラー数、データセグメント数、リビジョン情報、ヴォールトＩＤ及び／又は識別情報に基づいて）識別可能な、１つ又は複数の符号化データスライスを含み得ることに留意されたい。データ転送中のデータアクセス要求を処理するための方法は、図１１を参照して論じる。
【００３１】
図１１は、拡散、あるいは分散のアグリーメント・モジュール８０の略ブロック図であり、これは、決定論的関数１−Ｎの集合、正規化関数１−Ｎの集合、スコアリング関数１−Ｎの集合、及びランキング関数８４を含む。決定論的関数、正規化関数、スコアリング関数及びランキング関数８４の各々は、図２の処理モジュール５０を利用して実装することができる。拡散アグリーメント・モジュール８０は、散在ストレージネットワーク（ＤＳＮ）のいずれかのモジュール、コンピューティング・デバイス、及び／又はユニットを利用して実装することができる。
【００３２】
拡散、あるいは分散のアグリーメント・モジュール８０は、ランク付きスコアリング情報要求８１を受け取り、ランク付きスコアリング情報要求８１及び他の情報に基づいて、ランク付きスコアリング情報８６を生成するように機能する。ランク付きスコアリング情報要求８１は、該要求に関連付けられたアセットのアセット識別子（ＩＤ）８２（例えば、符号化データスライスグループの符号化データスライスを識別するための情報）、アセット型インジケータ、ＤＳＮに関連付けられた位置の１つ又は複数の位置識別子、１つ又は複数の対応する位置重み、及び要求エンティティＩＤのうちの１つ又は複数を含む。アセットは、データオブジェクト、データレコード、符号化データスライス、データセグメント、符号化データスライス集合、及び複数の符号化データスライス集合を含む１つ又は複数のアセット型を含む、ＤＳＮに関連付けられたデータのいずれかの部分を含む。それゆえ、アセットのアセットＩＤ８２は、データ名、データレコード識別子、ソース名、スライス名、及び複数のスライス名集合のうちの１つ又は複数を含む。
【００３３】
ＤＳＮの各位置は、ＤＳＮリソースの態様を含む。位置の例は、ストレージユニット、ストレージユニットのメモリデバイス、サイト、ストレージユニットのストレージプール、情報分散アルゴリズム（ＩＤＡ）によって生成された符号化データスライス集合の各符号化データスライスに関連付けられたピラー索引、コンピューティング・デバイス１２−１６、保全性処理ユニット２０、及び／又は管理ユニット１８のうちの１つ又は複数を含む。
【００３４】
各位置は、利用スキームのリソース優先順位付け及びＤＳＮの物理的構成のうちの１つ又は複数に基づいて、位置重みに関連付けられる。位置重みは、あるアセットがその位置にマッピングされる確率が、その位置重みを比較する全ての位置の全ての位置重みの合計で除したものと等しくなるように、関連付けられた位置に対する選択の割合を調整する任意のバイアスを含む。例えば、複数のストレージプールの各ストレージプールは、ストレージ能力に基づいて、位置重みに関連付けられる。例えば、ストレージ能力がより大きいストレージプールは、他のものよりも高い位置重みに関連付けられる。他の情報は、位置識別子集合、及び該位置識別子集合に関連付けられた位置重み集合を含むことができる。例えば、要求エンティティが、特定の符号化データスライス（例えば、ここでアセットＩＤは特定の符号化データスライスのスライス名を含む）にアクセスするために、拡散アグリーメント・モジュール８０を利用して、メモリデバイス集合のメモリデバイスの選択に関してランク付きスコアリング情報８６を生成する場合、他の情報は、位置識別子と、ストレージユニットのメモリデバイス集合に関連付けられた位置重みとを含むことができる。
【００３５】
拡散アグリーメント・モジュール８０は、実質的に同一内容のランク付きスコアリング情報要求を含む各ランク付きスコアリング情報要求に対して、実質的に同一のランク付きスコアリング情報を出力する。例えば、第１の要求エンティティは、拡散アグリーメント・モジュール８０に対して第１のランク付きスコアリング情報要求を発行し、第１のランク付きスコアリング情報を受け取る。第２の要求エンティティは、拡散アグリーメント・モジュールに対して第２のランク付きスコアリング情報要求を発行し、第２のランク付きスコアリング情報を受け取る。第２のランク付きスコアリング情報は、第２のランク付きスコアリング情報要求が第１のランク付きスコアリング情報要求と実質的に同じである場合、第１のランク付きスコアリング情報と実質的に同じである。
【００３６】
それゆえ、２以上の要求エンティティは、拡散アグリーメント・モジュール８０を利用して、実質的に同一のランク付きスコアリング情報を判定することができる。特定の例として、第１の要求エンティティは、拡散アグリーメント・モジュール８０を利用して、符号化データスライス集合を格納するために複数のストレージプールのうちの第１のストレージプールを選択し、第２の要求エンティティは、拡散アグリーメント・モジュール８０を利用して、符号化データスライス集合を取得するために複数のストレージプールのうちの第１のストレージプールを識別する。
【００３７】
動作の一例において、拡散アグリーメント・モジュール８０は、ランク付きスコアリング情報要求８１を受け取る。各決定論的関数は、ランク付きスコアリング情報要求８１のアセットＩＤ８２と、位置ＩＤ集合の関連付けられた位置ＩＤとの組合せ及び／又は連接（例えば、追加（ａｄｄ）、後ろに付加（ａｐｐｅｎｄ）、インターリーブ）に対して、決定論的関数を実行して暫定結果を生成する。決定論的関数は、ハッシング関数、ハッシュベースのメッセージ認証コード関数、マスク生成関数、周期的冗長コード関数、多数の位置のハッシングモジュール、無矛盾ハッシング、ランデブーハッシング、及びスポンジ関数のうちの少なくとも１つを含む。特定の例として、決定論的関数２は、ストレージプール２の位置ＩＤ２をアセットＩＤとしてのソース名の後ろに付加して組合せ値を生成し、この組合せ値に対してマスク生成関数を実行して、暫定結果２を生成する。
【００３８】
暫定結果１−Ｎの集合を用いて、各正規化関数は、対応する暫定結果に対して正規化関数を実行して、対応する正規化暫定結果を生成する。正規化関数を実行することは、暫定結果を決定論的関数の出力の可能な順列の数で除して、正規化暫定結果を生成することを含む。例えば、正規化関数２は、暫定結果２に対して正規化関数を実行して、正規化暫定結果２を生成する。
【００３９】
正規化暫定結果１−Ｎの集合を用いて、各スコアリング関数は、対応する正規化暫定結果に対してスコアリング関数を実行して、対応するスコアを生成する。スコアリング関数を実行することは、関連付けられた位置重みを、正規化暫定結果の負の対数（ｎｅｇａｔｉｖｅ  ｌｏｇ）で除すことを含む。例えば、スコアリング関数２は、（例えば、位置ＩＤ２に関連付けられた）ストレージプール２の位置重み２を、正規化暫定結果２の負の対数で除して、スコア２を生成する。
【００４０】
スコア１−Ｎの集合を用いて、ランキング関数８４は、スコア１−Ｎの集合に対してランキング関数を実行して、ランク付きスコアリング情報８６を生成する。ランキング関数は、スコア１−Ｎの集合の各スコアを他のスコアに対してランク順位付けすることを含み、ここで最高スコアが第１位にランク付けされる。それゆえ、最高スコアに関連付けられた位置は、リソース利用（例えば、要求の所与のアセットにアクセスする、これを格納する、取得する、等）に関して最高優先度の位置と見なすことができる。ランク付きスコアリング情報８６が生成されると、拡散アグリーメント・モジュール８０は、ランク付きスコアリング情報８６を要求エンティティに対して出力する。
【００４１】
図１２は、旧バージョン（ｐｒｅｖｉｏｕｓ  ｖｅｒｓｉｏｎ）の分散アグリーメント・プロトコル（例えば、図１１で用いる、以前の係数集合）から新バージョンの分散アグリーメント・プロトコル（例えば、図１１で用いる新たな係数集合）に基づくストレージへの移行の間の、データアクセス要求の処理の一例を示すフローチャートである。方法は、ステップ１００で開始し、ここで散在ストレージネットワークのストレージユニット（例えば、ＳＵ１−Ａ）は、１つ又は複数の符号化データスライスグループのストレージを、旧バージョンの分散アグリーメント・プロトコルに基づくストレージから新バージョンの分散アグリーメント・プロトコルに基づくストレージへ（例えば、ＳＵ１−Ｘへ）移行している最中である。この一例は、図１０に提示されている。
【００４２】
方法は、ステップ１０２に続き、ここで、１つ又は複数の符号化データスライスグループのストレージを移行している間に、ストレージユニットは、要求コンピューティング・デバイスから、１つ又は複数の符号化データスライスグループの符号化データスライスに関するデータアクセス要求を受け取る。例えば、データアクセス要求は、旧バージョンの分散アグリーメント・プロトコルに基づくものである。
【００４３】
方法は、ステップ１０４に続き、ここでストレージユニットは、符号化データスライスが、移行の結果として既に転送されたかどうか判定する。転送されていなければ、方法はステップ１０６に続き、ここでストレージユニットは、データアクセス要求（例えば、読出し、書込み、リスト、ステータス等）を処理する。符号化データスライスが既に転送されていた場合、方法は、ステップ１０８に続き、ここでストレージユニットは、他のストレージユニットを介してデータアクセス要求をプロキシする。
【００４４】
例えば、他のストレージユニットが符号化データスライスの転送を受け取っていた場合、ストレージユニットは、データアクセス要求を受け取る。符号化データスライスが既に転送されていることを知っているので、ストレージユニットは、データアクセス要求を他のストレージユニットに転送し、応答を該ストレージユニットに又は要求エンティティに戻すよう要求する。該要求が、応答をストレージユニットに送ることを含む場合、該ストレージユニットは、アクセス応答（例えば、読出し動作用の符号化データスライス、成功書込み応答、等）を他のストレージユニットから受け取る。ストレージユニットは、次に、要求コンピューティング・デバイス（例えば、コンピューティング・デバイス１２−１６のうちの１つ）にアクセス応答を送る。
【００４５】
代替的な例として、ストレージユニットは、要求コンピューティング・デバイスから別のストレージユニットを介してデータアクセス要求を受け取る。この例において、データアクセス要求は、新バージョンの分散アグリーメント・プロトコルに基づくものであり、符号化データスライスは、まだ他のストレージユニットに転送されていない。この代替法は、続行し、ストレージユニットは、データアクセス要求を処理してデータアクセス応答（例えば、読出し動作用の符号化データスライス、成功した書込み応答、等）を生成する。ストレージユニットは、次に、データアクセス応答を他のストレージユニットに送り、該他のストレージユニットは、要求コンピューティング・デバイスに応答を転送する。
【００４６】
本明細書で使用し得るように、ビットストリーム、ストリーム、信号シーケンス等（又はその均等物）などの用語は、そのコンテンツが多数の所望の型式（例えば、いずれも一般に「データ」と称することができるデータ、ビデオ、スピーチ、音声等）のいずれかに対応するデジタル情報を記述するために互換的に用いられていることに留意されたい。
【００４７】
本明細書で使用し得るように、「実質的に」及び「およそ、ほぼ」という用語は、それに対応する用語及び／又は項目間の相対性に関して、工業的に容認される許容差を与える。このような工業的に容認される許容差は、１パーセント未満から５０パーセントまでの範囲にわたり、限定されないが、構成要素値、集積回路プロセス変動、温度変動、立上がり及び立下がり時間、及び／又は熱雑音に対応する。このような項目間の相対性は、数パーセントの差から等級（ｍａｇｎｉｔｕｄｅ）差までの範囲にわたる。さらにまた本明細書で使用し得るように、「構成された」、「動作可能に結合した」、「結合した」及び／又は「結合」という用語は、項目間の直接結合及び／又は介在項目を介した項目間の間接結合を含み（例えば、項目は、限定されないが、構成要素、要素、回路、及び／又はモジュールを含む）、ここで間接結合の例の場合、介在項目は、信号の情報を改変しないが、その電流レベル、電圧レベル、及び／又は電力レベルを調整し得る。さらに本明細書で使用し得るように、推論された結合（すなわち、推論により１つの要素がもう１つの要素に結合している場合）は、「結合した」と同じ意味で２つの項目間の直接及び間接結合を含む。さらにまた本明細書で使用し得るように、「構成された」、「動作可能」、「結合した」、又は「動作可能に結合した」という用語は、ある項目が、動力接続、入力、出力等のうちの１つ又は複数を含み、起動されたときに、１つ又は複数のその対応する機能を実行すること、及び、１つ又は複数の他の項目に対する推論された結合をさらに含み得ることを示す。さらになお本明細書で使用され得るように、「関連付けられた」という用語は、分離した項目の直接及び／又は間接結合、及び／又は１つの項目が別の項目内に埋め込まれていること含む。
【００４８】
本明細書で使用され得るように、「比較して有利（ｃｏｍｐａｒｅｓ  ｆａｖｏｒａｂｌｙ）」という用語は、２以上の項目、信号等の間の比較が所望の関係を与えることを示す。例えば、所望の関係が、信号１が信号２より大きい等級を有するものである場合、有利な比較は、信号１の等級が信号２の等級より大きいとき又は信号２の等級が信号１の等級より小さいときに達成され得る。本明細書で使用し得るように、「比較して不利（ｃｏｍｐａｒｅｓ  ｕｎｆａｖｏｒａｂｌｙ）」という用語は、２以上の項目、信号等の間の比較が所望の関係を与えないことを示す。
【００４９】
さらに本明細書で使用し得るように、「処理モジュール」、「処理回路」、「プロセッサ」及び／又は「処理ユニット」という用語は、単一の処理デバイス及び／又は複数の処理デバイスであり得る。このような処理デバイスは、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、マイクロコンピュータ、中央処理ユニット、フィールドプログラム可能ゲートアレイ、プログラム可能論理デバイス、状態機械、論理回路、アナログ回路、デジタル回路、及び／又は、回路のハードコーディング及び／又は動作命令に基づいて信号（アナログ及び／又はデジタル）を操作するあらゆるデバイスとすることができる。処理モジュール、モジュール、処理回路、及び／又は処理ユニットは、メモリ及び／又は集積メモリ要素とすることができ、又はこれらをさらに含むことができ、これらは、単一のメモリデバイス、複数のメモリデバイス、及び／又は、他の処理モジュール、モジュール、処理回路、及び／又は処理ユニットの埋込回路とすることができる。このようなメモリデバイスは、読出し専用メモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、静的メモリ、動的メモリ、フラッシュメモリ、キャッシュメモリ、及び／又はデジタル情報を格納するあらゆる装置とすることができる。処理モジュール、モジュール、処理回路、及び／又は処理ユニットが１つより多くの処理デバイスを含む場合、これら処理デバイスは、集中配置される（例えば、有線及び／又は無線バス構造を介して互いに直接結合される）場合もあり、又は分配配置される（例えば、ローカルエリアネットワーク及び／又は広域ネットワークを介した間接結合によるクラウド・コンピューティング）場合もあることに留意されたい。さらに、処理モジュール、モジュール、処理回路、及び／又は処理ユニットが、その１つ又は複数の機能を、状態機械、アナログ回路、デジタル回路、及び／又は論理回路によって実装する場合、対応する動作命令を格納するメモリ及び／又はメモリ要素は、その状態機械、アナログ回路、デジタル回路、及び／又は論理回路を含む回路内に埋め込まれてもよく、又はその外部にあってもよいことに留意されたい。メモリ要素は、１つ又は複数の図面に示されたステップ及び／又は機能の少なくともいくつかに対応するハードコード化及び／又は動作命令を格納することができ、処理モジュール、モジュール、処理回路、及び／又は処理ユニットは、該命令を実行することができることにもさらに留意されたい。このようなメモリデバイス又はメモリ要素は、製品内に含めることができる。
【００５０】
１つ又は複数の実施形態を、指定した機能の性能及びそれらの関係を示す方法ステップの助けを借りて上記で説明した。これらの機能構築ブロック及び方法ステップの境界及び順番は、本明細書において説明の便宜上、任意に定めたものである。指定した機能及び関係が適切に実行される限りにおいて、代替的な境界及び順番を定めることができる。それゆえ、このような代替的な境界又は順番はいずれも、特許請求の範囲及び思想内にある。さらに、これらの機能構築ブロックの境界は、説明の便宜上、任意に定めたものである。特定の有意な機能が適切に実行される限りにおいて、代替的な境界を定めることができる。同様に、フロー図のブロックもまた、特定の有意な機能を示すために、本明細書において随意に定めたものであり得る。
【００５１】
用いた範囲で、フロー図のブロックの境界及び順番は、別様に定めることができ、それでもなお特定の有意な機能を実行する。それゆえ、このような機能構築ブロック及びフロー図ブロックの両方の代替的な定義は、特許請求の範囲及び思想内にある。当業者はまた、機能構築ブロック、及び本明細書における他の例証的なブロック、モジュール及び構成要素は、図示した通りに実装することもでき、又は離散的な構成要素、特定用途向け集積回路、適切なソフトウェアを実行するプロセッサ等若しくはそれらのいずれかの組合せによって実装することもできることを認識するであろう。
【００５２】
加えて、フロー図は、「開始」及び／又は「続行」の表示を含むことができる。「開始」及び「続行」表示は、提示されたステップを他のルーティンに任意に組み込むことができること又は別様に他のルーティンと関連して用いることできることを反映する。この文脈において、「開始」は、提示された最初のステップの始まりを示すものであり、具体的に示されていない他の活動がその前に先立っていてもよい。さらに、「続行」表示は、提示されたステップを複数回実行することができること、及び／又は具体的に示されていない他の活動がその後に続いていてもよいことを反映する。さらに、フロー図は、ステップの特定の順序を示すが、因果律が維持される条件で、他の順序も同様に可能である。
【００５３】
１つ又は複数の実施形態は、本明細書において１つ又は複数の態様、１つ又は複数の特徴、１つ又は複数の概念、及び／又は１つ又は複数の例を示すために用いられる。装置、製品、機械、及び／又はプロセスの物理的実施形態は、本明細書で論じた１つ又は複数の実施形態を参照して説明される態様、特徴、概念、例などのうちの１つ又は複数を含むことができる。さらに、図面から図面にわたって、実施形態は、同じ又は異なる符号を用い得る、同じ又は類似の名称の機能、ステップ、モジュール等を組み入れている場合があり、それゆえ、これら機能、ステップ、モジュール等は、同じ若しくは類似の機能、ステップ、モジュール等であってもよく、又は異なるものであってもよい。
【００５４】
相反する特段の断りのない限り、本明細書に提示されたいずれの図面の図においても、要素に対する、要素からの、及び／又は要素間の信号は、アナログ又はデジタル、連続時間又は離散時間、及び単一端又は差動の信号であり得る。例えば、信号路が単一端路として示されている場合、これは差動信号路も表す。同様に、信号路が差動路として示されている場合、これは単一端信号路も表す。本明細書には１つ又は複数の特定のアーキテクチャが記載されているが、当業者に認識されるように、明示的に示されていない１つ又は複数のデータバス、要素間の直接接続、及び／又は他の要素間の間接結合を使用する他のアーキテクチャも同様に実装することができる。
【００５５】
「モジュール」という用語が、１つ又は複数の実施形態の説明において使用されている。モジュールは、１つ又は複数の機能を、プロセッサ若しくは他の処理デバイス、又は動作命令を格納するメモリを含むことができる若しくは該メモリと関連して動作することができる他のハードウェアなどのデバイスを介して、実装する。モジュールは、独立して、及び／又は、ソフトウェア及び／又はファームウェアと共に動作することができる。また本明細書で用いられるように、モジュールは、その各々が１つ又は複数のモジュールであり得る１つ又は複数のサブモジュールを含むことができる。
【００５６】
本明細書においてさらに使用し得るように、コンピュータ可読メモリは、１つ又は複数のメモリ要素を含む。メモリ要素は、別個のメモリデバイス、複数のメモリデバイス、又はメモリデバイス内のメモリ位置の集合とすることができる。このようなメモリデバイスは、読出し専用メモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、静的メモリ、動的メモリ、フラッシュメモリ、キャッシュメモリ、及び／又はデジタル情報を格納するあらゆるデバイスとすることができる。メモリデバイスは、固体メモリ、ハードドライブメモリ、クラウドメモリ、サムドライブ、サーバメモリ、コンピューティング・デバイスメモリ、及び／又はデジタル情報を格納するための他の物理媒体の形態とすることができる。
【００５７】
１つ又は複数の実施形態の種々の機能及び特徴の特定の組合せを本明細書において明示的に説明したが、これらの特徴及び機能のその他の組合せも同様に可能である。本開示は、本明細書で開示した特定の例に限定されず、これらの他の組合せを明示的に組み入れる。
【図１】
2018524705.tif 000003
【図２】
2018524705.tif 000004
【図３】
2018524705.tif 000005
【図４】
2018524705.tif 000006
【図５】
2018524705.tif 000007
【図６】
2018524705.tif 000008
【図７】
2018524705.tif 000009
【図８】
2018524705.tif 000010
【図９】
2018524705.tif 000011
【図１０】
2018524705.tif 000012
【図１１】
2018524705.tif 000013
【図１２】
2018524705.tif 000014
【手続補正書】
【提出日】平成30年1月10日(2018.1.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のストレージを含む散在ストレージネットワーク（ＤＳＮ）における方法であって、該方法は、
符号化データスライスグループの符号化データスライスを、旧バージョンの分散アグリーメント・プロトコルに基づく第１のストレージから、新バージョンの分散アグリーメント・プロトコルに基づく第２のストレージに移行することと、
前記符号化データスライスグループの前記符号化データスライスを移行している間に、
要求コンピューティング・デバイスから、前記符号化データスライスグループの前記符号化データスライスに関するデータアクセス要求を受け取ることと、
前記符号化データスライスが、前記移行の結果として既に前記第２のストレージに転送されているか否か判定することと、
前記第１のストレージが前記符号化データスライスを格納している場合、当該第１のストレージが前記データアクセス要求を処理することと、
前記第１のストレージが前記符号化データスライスを格納していない場合、前記要求コンピューティング・デバイスのためのプロキシとして当該第１のストレージが機能して、前記データアクセス要求を満たすことと、
を含む、方法。
【請求項２】
前記分散アグリーメント・プロトコルは、前記符号化データスライスがどのストレージに格納されるかを決定するために用いられる、請求項１に記載の方法。
【請求項３】
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を前記第１のストレージが受け取ることであって、ここで前記符号化データスライスは、前記第１のストレージによって格納されている、ことと、
前記第１のストレージが前記データアクセス要求を処理することと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記旧バージョンの分散アグリーメント・プロトコルに基づく前記データアクセス要求を前記第１のストレージが受け取ることであって、ここで前記符号化データスライスは移行により前記第２のストレージによって格納されている、ことと、
前記第１のストレージによって、前記データアクセス要求を前記第２のストレージに転送することと、
前記第１のストレージによって、前記第２のストレージからのアクセス応答を受け取ることと、
前記第１のストレージによって、前記アクセス応答を前記要求コンピューティング・デバイスに送ることと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記要求コンピューティング・デバイスから前記第２のストレージを介して前記第１のストレージが前記データアクセス要求を受け取ることであって、ここで前記データアクセス要求は、前記新バージョンの分散アグリーメント・プロトコルに基づくものであり、ここで前記符号化データスライスは、前記第１のストレージによって格納されており、ここで前記第２のストレージは、前記要求コンピューティング・デバイスのためのプロキシとして機能している、ことと、
前記第１のストレージによって、前記データアクセス要求を処理して、データアクセス応答を生成することと、
前記第１のストレージによって、前記データアクセス応答を前記第２のストレージに送ることと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記符号化データスライスグループの前記符号化データスライスを移行することが、
前記新バージョンの分散アグリーメント・プロトコルを実行して、前記符号化データスライスグループを識別することを含み、ここで前記分散アグリーメント・プロトコルは、
複数のストレージ識別子、複数の対応するストレージ重み、及び前記符号化データスライスグループに対応するアセット識別子に基づいて、複数のスコアリング値を生成する複数の関数と、
前記複数のスコアリング値を処理して、前記符号化データスライスグループの前記符号化データスライスを転送すべき少なくとも１つの第２のストレージユニットを識別する、ランキング関数と、
を含む、請求項１に記載の方法。
【請求項７】
前記符号化データスライスグループが、複数の符号化データスライスの集合であり、かつ、当該複数の符号化データスライスそれぞれのスライス名を含むものである、請求項１に記載の方法。
【請求項８】
インタフェースと、
メモリと、
処理モジュールと、
を備えたストレージであって、前記処理モジュールは、
符号化データスライスグループの符号化データスライスを、旧バージョンの分散アグリーメント・プロトコルに基づく前記ストレージから、新バージョンの分散アグリーメント・プロトコルに基づく移行先ストレージに移行し、
前記符号化データスライスグループの前記符号化データスライスを移行している間に、
要求コンピューティング・デバイスから、前記符号化データスライスグループの前記符号化データスライスに関するデータアクセス要求を受け取り、
前記符号化データスライスが、前記移行の結果として既に前記移行先ストレージに転送されているか否か判定し、
前記ストレージが前記符号化データスライスを格納している場合、前記データアクセス要求を処理し、
前記ストレージが前記符号化データスライスを格納していない場合、前記要求コンピューティング・デバイスのためのプロキシとして機能して、前記データアクセス要求を満たす、
ように動作可能である、
ストレージ。
【請求項９】
ストレージの処理モジュールに、
符号化データスライスグループの符号化データスライスを、旧バージョンの分散アグリーメント・プロトコルに基づく前記ストレージから、新バージョンの分散アグリーメント・プロトコルに基づく移行先ストレージに移行すること、
前記符号化データスライスグループの前記符号化データスライスを移行している間に、
要求コンピューティング・デバイスから、前記符号化データスライスグループの前記符号化データスライスに関するデータアクセス要求を受け取ること、
前記符号化データスライスが、前記移行の結果として既に前記移行先ストレージに転送されているか否か判定すること、
前記ストレージが前記符号化データスライスを格納している場合、前記データアクセス要求を処理すること、
前記ストレージが前記符号化データスライスを格納していない場合、前記要求コンピューティング・デバイスのためのプロキシとして機能して、前記データアクセス要求を満たすこと、
を実行させるためのプログラムを記憶するコンピュータ可読メモリデバイス。
【国際調査報告】
2018524705.tif 000015