JP2021515295A - 分散ストレージ・ネットワークにおける動的認可バッチ処理 - Google Patents

分散ストレージ・ネットワークにおける動的認可バッチ処理 Download PDF

Info

Publication number
JP2021515295A
JP2021515295A JP2020542135A JP2020542135A JP2021515295A JP 2021515295 A JP2021515295 A JP 2021515295A JP 2020542135 A JP2020542135 A JP 2020542135A JP 2020542135 A JP2020542135 A JP 2020542135A JP 2021515295 A JP2021515295 A JP 2021515295A
Authority
JP
Japan
Prior art keywords
queue
request
authorization
utilization
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020542135A
Other languages
English (en)
Other versions
JP7167174B2 (ja
Inventor
ランバ、アミット
オーバー、ブライアン、フレデリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021515295A publication Critical patent/JP2021515295A/ja
Application granted granted Critical
Publication of JP7167174B2 publication Critical patent/JP7167174B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

【課題】分散ストレージおよびタスク(DST)処理ユニットによる実行のための方法を提供する。【解決手段】分散ストレージおよびタスク(DST)処理ユニットによる実行のための方法は、第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、受信した動作要求に対応する認可要求をキューに入れるステップを含む。第1の要求キューが第1のキュー制限条件と比べて好ましくないと判定したことに応答して、アイデンティティおよびアクセス管理(IAM)システムへの送信のために、キューに入れられた認可要求を含む第1のバッチ認可要求が生成される。第2のシステム利用率データに基づいて、第1のキュー制限条件とは異なる第2のキュー制限条件が定められる。第2の要求キューが第2のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求が生成される。【選択図】図9

Description

本発明は一般的にコンピュータ・ネットワークに関し、より具体的には分散するエラー符号化データに関する。
コンピュータ・デバイスはデータを通信するか、データを処理するか、もしくはデータを保存するか、またはその組み合わせを行うことが公知である。こうしたコンピュータ・デバイスはワイヤレス・スマート・フォン、ラップトップ、タブレット、パーソナル・コンピュータ(PC:personal computers)、ワーク・ステーション、およびビデオ・ゲーム・デバイスから、毎日何百万ものウェブ・サーチ、株式取引、またはオンライン購入をサポートするデータ・センタまでの範囲にわたっている。一般的に、コンピュータ・デバイスは中央処理ユニット(CPU:central processing unit)と、メモリ・システムと、ユーザ入力/出力インターフェースと、周辺デバイス・インターフェースと、相互接続バス構造とを含む。
さらに公知であるとおり、コンピュータは、1つ以上のコンピューティング機能(例、サービス、アプリケーション、アルゴリズム、算術論理機能など)を行うためにコンピュータの代わりに「クラウド・コンピューティング」を用いることによって、自身のCPUを効果的に拡張してもよい。さらに、大きいサービス、アプリケーション、もしくは機能、またはその組み合わせに対しては、そのサービス、アプリケーション、もしくは機能、またはその組み合わせの完了のための応答時間を改善するために、クラウド・コンピューティングが複数のクラウド・コンピューティング・リソースによって分散型の方式で行われてもよい。たとえばHadoop(R)は、何千ものコンピュータによるアプリケーション実行を可能にする分散型アプリケーションをサポートするオープン・ソース・ソフトウェア・フレームワークである。
クラウド・コンピューティングに加えて、コンピュータは「クラウド・ストレージ」を自身のメモリ・システムの一部として用いてもよい。公知であるとおり、クラウド・ストレージは、ユーザがそのコンピュータを介してファイル、アプリケーションなどをインターネット・ストレージ・システムに保存することを可能にする。インターネット・ストレージ・システムは、ストレージに対するデータを符号化するためにエラー訂正スキームを用いるRAID(独立ディスクの冗長アレイ(redundant array of independent disks))システムもしくは分散ストレージ・システム、またはその両方を含んでもよい。
出願人の出願である特許文献1は、DST実行ユニットによる実行のための方法を開示しており、この方法は、ネットワークを介してコンピュータ・デバイスから認可トークンを含むアクセス要求を受信するステップと、アクセス要求に基づいて認可データを生成するステップと、アクセス要求を実行するステップと、認可データが検証インジケータを含むときにはアクセス要求の結果をネットワークを介してコンピュータ・デバイスに送信するステップとを含む。認可データが無効トークン・インジケータを含むときは、コンピュータ・デバイスへの送信のために無効トークン通知が生成される。
出願人の出願である特許文献2は、処理システムによる分散ストレージ・ネットワーク(DSN:dispersed storage network)の分散ストレージおよびタスク(DST:dispersed storage and task)実行ユニットの第1の適切なサブセットの選択を開示している。この処理システムは、DSNのDST実行ユニットの第1の適切なサブセットによる期間にわたってアクセス要求をバッチ処理することで、その期間中のDSNのDST実行ユニットの第1の適切なサブセットに対するアクセス要求を制限する。
出願人の米国特許である特許文献3は、ネットワークを通じて安全なアクセス制御リスト情報を一斉送信および更新するネットワークに接続される管理ユニットを開示している。ターゲット・デバイスが一斉送信を受信するとき、ターゲット・デバイスは、もしその一斉送信がアクセス制御リスト情報を更新するための有効な要求であれば同じ一斉送信を受信したはずであるすべての他のシステム・デバイスに対して、アクセス制御リスト変更通知メッセージを作成および送信する。ターゲット・デバイスは他のシステム・デバイスからの応答を待つことで、一斉送信に従ってローカル・データを演算的に変更する動作を行う前に、他のシステム・デバイスの閾値数に一斉送信が適切に送られたことを確認する。
こうしたシステムと本開示とを比較することによって、従来の伝統的アプローチの限界および不利益が当業者に明らかになるだろう。
米国特許出願公開第20170060459号 米国特許出願公開第20170315735号 米国特許第9798621号
本発明は、プロセッサを含む分散ストレージ・ネットワーク(DSN)の分散ストレージおよびタスク(DST)処理ユニットによる実行のための方法を提供する。
本発明の1つの態様によると、プロセッサを含む分散ストレージ・ネットワーク(DSN)の分散ストレージおよびタスク(DST)処理ユニットによる実行のための方法が提供され、この方法は、第1のシステム利用率データを定めるステップと、第1の動作要求を受信するステップと、第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、第1の動作要求に対応する第1の認可要求を含む第1の要求キューを生成するステップと、第1のシステム利用率データに基づいて、第1の要求キューを生成するステップに応答して第1のキュー制限条件を定めるステップと、第1の後続動作要求を受信するステップと、第1の後続動作要求に対応する第1の後続認可要求を第1の要求キューに付加するステップと、第1の要求キューが第1のキュー制限条件と比べて好ましくないと判定したことに応答して、第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求を生成するステップと、アイデンティティおよびアクセス管理(IAM:Identity and Access Management)システムに第1のバッチ認可要求を送信するステップと、第1の要求キューの第1の複数の認可要求に対応する第1の複数の認可応答をIAMシステムから受信するステップと、認可成功を示す第1の複数の認可応答の第1のサブセットを識別するステップと、第1の複数の認可応答の第1のサブセットに対応する複数の動作要求のサブセットの実行を促進するステップと、第2のシステム利用率データを定めるステップと、第2の動作要求を受信するステップと、第2のシステム利用率データが正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、第2の動作要求に対応する第2の認可要求を含む第2の要求キューを生成するステップであって、第2の利用率レベルは第1の利用率レベルとは異なる、ステップと、第2のシステム利用率データに基づいて、第2の要求キューを生成するステップに応答して第2のキュー制限条件を定めるステップであって、第2のキュー制限条件は第1のキュー制限条件とは異なる、ステップと、第2の後続動作要求を受信するステップと、第2の後続動作要求に対応する第2の後続認可要求を第2の要求キューに付加するステップと、第2の要求キューが第2のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップと、IAMシステムに第2のバッチ認可要求を送信するステップとを含む。
本発明による分散(dispersed)または分散型(distributed)ストレージ・ネットワーク(DSN)の実施形態を示す概略ブロック図である。 本発明によるコンピューティング・コアの実施形態を示す概略ブロック図である。 本発明によるデータの分散ストレージ・エラー符号化の例を示す概略ブロック図である。 本発明によるエラー符号化機能の一般的な例を示す概略ブロック図である。 本発明によるエラー符号化機能の特定の例を示す概略ブロック図である。 本発明による符号化データ・スライス(EDS:encoded data slice)のスライス名の例を示す概略ブロック図である。 本発明によるデータの分散ストレージ・エラー復号の例を示す概略ブロック図である。 本発明によるエラー復号機能の一般的な例を示す概略ブロック図である。 本発明による分散または分散型ストレージ・ネットワーク(DSN)の実施形態を示す概略ブロック図である。 本発明による分散または分散型ストレージ・ネットワーク(DSN)の実施形態を示す概略ブロック図である。 本発明によるネットワーク・スイッチの実施形態を示す概略ブロック図である。 本発明による分散または分散型ストレージ・ネットワーク(DSN)の実施形態を示す概略ブロック図である。 本発明による動的認可バッチ処理の方法の例を示す論理図である。 本発明による動的認可バッチ処理の方法の例を示す論理図である。 本発明による動的認可バッチ処理の方法の例を示す論理図である。
図1は分散または分散型ストレージ・ネットワーク(DSN)10の実施形態の概略ブロック図であり、この分散または分散型ストレージ・ネットワーク(DSN)10は複数のコンピュータ・デバイス12〜16と、管理ユニット18と、完全性処理ユニット20と、DSNメモリ22とを含む。DSN10のコンポーネントはネットワーク24に結合されており、ネットワーク24は1つ以上のワイヤレスおよび/もしくは有線通信システム、1つ以上の非公共イントラネット・システムおよび/もしくは公共インターネット・システム、および/または1つ以上のローカル・エリア・ネットワーク(LAN:local area networks)および/もしくは広域ネットワーク(WAN:wide area networks)を含んでもよい。
DSNメモリ22は複数のストレージ・ユニット36を含み、これらのストレージ・ユニット36は地理的に異なる場所(例、1つはシカゴ(Chicago)、1つはミルウォーキー(Milwaukee)など)、共通の場所、またはその組み合わせに位置してもよい。たとえば、DSNメモリ22が8つのストレージ・ユニット36を含むとき、各ストレージ・ユニットは異なる場所に位置する。別の例として、DSNメモリ22が8つのストレージ・ユニット36を含むとき、8つのストレージ・ユニットすべてが同じ場所に位置する。さらに別の例として、DSNメモリ22が8つのストレージ・ユニット36を含むとき、ストレージ・ユニットの第1の対は第1の共通の場所にあり、ストレージ・ユニットの第2の対は第2の共通の場所にあり、ストレージ・ユニットの第3の対は第3の共通の場所にあり、ストレージ・ユニットの第4の対は第4の共通の場所にある。なお、DSNメモリ22は、8つよりも多いかまたは少ないストレージ・ユニット36を含んでもよい。さらに注記すると、各ストレージ・ユニット36はコンピューティング・コア(図2に示されるもの、またはそのコンポーネント)と、分散エラー符号化データを保存するための複数のメモリ・デバイスとを含む。
さまざまな実施形態において、各々のストレージ・ユニットは分散型ストレージおよびタスク(DST)実行ユニットとして動作し、分散エラー符号化データを保存するか、もしくはデータに対する1つ以上のタスクを分散型の方式で実行するか、またはその両方のために動作可能である。タスクは単純な機能(例、数学関数、論理関数、認識機能、発見機能、サーチ・エンジン機能、置換機能など)、複雑な機能(例、圧縮、人間もしくはコンピュータまたはその両方の言語の翻訳、テキストから音声への変換、音声からテキストへの変換など)、複数の単純もしくは複雑またはその両方の機能、1つ以上のアルゴリズム、1つ以上のアプリケーションなどであってもよい。以後、ストレージ・ユニットは分散ストレージおよびタスク(DST)実行ユニットと取り換え可能に呼ばれることがあり、ストレージ・ユニットのセットはDST実行ユニットのセットと取り換え可能に呼ばれることがある。
コンピュータ・デバイス12〜16、管理ユニット18、および完全性処理ユニット20の各々はコンピューティング・コア26を含み、このコンピューティング・コア26はネットワーク・インターフェース30〜33を含む。コンピュータ・デバイス12〜16の各々は、ポータブル・コンピュータ・デバイスもしくは固定コンピュータ・デバイスまたはその両方であってもよい。ポータブル・コンピュータ・デバイスはソーシャル・ネットワーク形成デバイス、ゲーム・デバイス、携帯電話、スマート・フォン、デジタル・アシスタント、デジタル音楽プレーヤ、デジタル・ビデオ・プレーヤ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、タブレット、ビデオ・ゲーム・コントローラ、もしくはコンピューティング・コアを含む任意のその他のポータブル・デバイス、またはその組み合わせであってもよい。固定コンピュータ・デバイスはコンピュータ(PC)、コンピュータ・サーバ、ケーブル・セットトップ・ボックス、衛星受信機、テレビジョン・セット、プリンタ、ファックス機、家庭用娯楽機器、ビデオ・ゲーム・コンソール、または任意のタイプの家庭用もしくはオフィス用コンピューティング機器、あるいはその組み合わせであってもよい。なお、各々の管理ユニット18および完全性処理ユニット20は別々のコンピュータ・デバイスであってもよいし、共通のコンピュータ・デバイスであってもよいし、かつ/またはコンピュータ・デバイス12〜16の1つ以上および/もしくはストレージ・ユニット36の1つ以上に統合されてもよい。さまざまな実施形態において、コンピュータ・デバイス12〜16はユーザ・デバイスを含み得るか、もしくはアクセス要求を生成する要求エンティティによって使用され得るか、またはその両方であり、このアクセス要求はDSN内のストレージ・ユニットに対するデータの読取りまたは書込みの要求を含み得る。
各インターフェース30、32、および33は、ネットワーク24を介した1つ以上の通信リンクを間接的もしくは直接的またはその両方でサポートするためのソフトウェアおよびハードウェアを含む。たとえば、インターフェース30はコンピュータ・デバイス14および16の間の通信リンク(例、有線、ワイヤレス、直接、LAN経由、ネットワーク24経由など)をサポートする。別の例として、インターフェース32は、コンピュータ・デバイス12および16とDSNメモリ22との間の通信リンク(例、有線接続、ワイヤレス接続、LAN接続、もしくはネットワーク24へ/からの任意のその他のタイプの接続、またはその組み合わせ)をサポートする。さらに別の例として、インターフェース33は、各々の管理ユニット18および完全性処理ユニット20のネットワーク24に対する通信リンクをサポートする。
コンピュータ・デバイス12および16は分散ストレージ(DS)クライアント・モジュール34を含み、これは図3〜8の1つ以上を参照して後で説明するとおり、コンピュータ・デバイスがデータを分散ストレージ・エラー符号化および復号することを可能にする。この実施形態例において、コンピュータ・デバイス16は、コンピュータ・デバイス14に対する分散ストレージ処理エージェントとして機能する。この役割において、コンピュータ・デバイス16はコンピュータ・デバイス14の代わりにデータを分散ストレージ・エラー符号化および復号する。分散ストレージ・エラー符号化および復号の使用によって、DSN10はデータの損失なく、かつデータの冗長またはバックアップ・コピーを必要とせずに顕著な数のストレージ・ユニットの故障に耐える(故障の数は分散ストレージ・エラー符号化関数のパラメータに基づく)。さらに、DSN10はデータ損失なしに安全な方式で無限の期間にわたってデータを保存する(例、このシステムはデータにアクセスする未認可の試みに対して非常に抵抗性が高い)。
動作中に、管理ユニット18はDS管理サービスを行う。たとえば、管理ユニット18はコンピュータ・デバイス12〜14に対する分散型データ・ストレージ・パラメータ(例、ボールト作成、分散型ストレージ・パラメータ、セキュリティ・パラメータ、請求情報、ユーザ・プロファイル情報など)を個別に、またはユーザ・デバイスのグループの一部として確立する。特定の例として、管理ユニット18は、ユーザ・デバイス、デバイスのグループ、または公共アクセスに対するDSNメモリ22内のボールト(例、DSNのネームスペース全体の一部分に関連する仮想メモリ・ブロック)の作成を調整し、ボールトごとにボールトに対する分散ストレージ(DS)エラー符号化パラメータを確立する。管理ユニット18は、DSN10のレジストリ情報を更新することによって各ボールトに対するDSエラー符号化パラメータのストレージを促進し、このレジストリ情報はDSNメモリ22、コンピュータ・デバイス12〜16、管理ユニット18、もしくは完全性処理ユニット20、またはその組み合わせに保存されてもよい。
DSN管理ユニット18は、ユーザ・プロファイル情報(例、アクセス制御リスト(ACL:access control list))を作成して、ローカル・メモリもしくはDSNメモリ22のメモリまたはその両方の中に保存する。ユーザ・プロファイル情報は認証情報、許可、もしくはセキュリティ・パラメータ、またはその組み合わせを含む。セキュリティ・パラメータは暗号化/復号スキーム、1つ以上の暗号化キー、キー生成スキーム、もしくはデータ符号化/復号スキーム、またはその組み合わせを含んでもよい。
DSN管理ユニット18は、特定のユーザ、ユーザ・グループ、ボールト・アクセス、公共ボールト・アクセスなどに対する請求情報を作成する。たとえば、DSN管理ユニット18はユーザが非公共ボールトもしくは公共ボールトまたはその両方にアクセスした回数を追跡し、それを用いてアクセスごとの請求情報を生成できる。別の場合には、DSN管理ユニット18はユーザ・デバイスもしくはユーザ・グループまたはその両方によって保存もしくは検索またはその両方がなされたデータの量を追跡し、それを用いてデータ量ごとの請求情報を生成できる。
別の例として、管理ユニット18はネットワーク動作、ネットワーク管理、もしくはネットワーク・メンテナンス、またはその組み合わせを行う。ネットワーク動作は、ユーザ・データ割り当て要求(例、読取りもしくは書込みまたはその両方の要求)の認証、ボールトの作成の管理、ユーザ・デバイスに対する認証証明書の確立、DSN10へ/からのコンポーネント(例、ユーザ・デバイス、ストレージ・ユニット、もしくはDSクライアント・モジュール34を有するコンピュータ・デバイス、またはその組み合わせ)の追加/除去、もしくはストレージ・ユニット36に対する認証証明書の確立、またはその組み合わせを含む。ネットワーク管理は、デバイスおよび/もしくはユニットの故障のモニタ、ボールト情報の維持、デバイスおよび/もしくはユニットの活動化状態の判定、デバイスおよび/もしくはユニットの負荷の判定、またはDSN10の性能レベルに影響する任意のその他のシステム・レベル動作の判定、あるいはその組み合わせを含む。ネットワーク・メンテナンスは、DSN10のデバイスもしくはユニットまたはその両方の交換、アップグレード、修理、もしくは拡張、またはその組み合わせの促進を含む。
完全性処理ユニット20は、「不良」または紛失した符号化データ・スライスの再構築を行う。高レベルにおいて、完全性処理ユニット20は、DSNメモリ22から符号化データ・スライスもしくは符号化データ・スライスのスライス名またはその両方を検索/リストすることを定期的に試みることによって、再構築を行う。検索された符号化スライスに対して、データ破損、古いバージョンなどによるエラーがチェックされる。もしスライスがエラーを含んでいれば、それは「不良」スライスとフラグ付けされる。受信されなかったか、もしくはリストされなかったか、またはその両方である符号化データ・スライスに対して、それらは紛失スライスとフラグ付けされる。不良もしくは紛失またはその両方のスライスはその後、再構築スライスを生成するための良好スライスとみなされた他の検索符号化データ・スライスを用いて再構築される。再構築されたスライスは、DSNメモリ22に保存される。
図2はコンピューティング・コア26の実施形態の概略ブロック図であり、このコンピューティング・コア26は処理モジュール50と、メモリ・コントローラ52と、メイン・メモリ54と、ビデオ・グラフィックス処理ユニット55と、入力/出力(IO:input/output)コントローラ56と、ペリフェラル・コンポーネント・インターコネクト(PCI:peripheral component interconnect)インターフェース58と、IOインターフェース・モジュール60と、少なくとも1つのIOデバイス・インターフェース・モジュール62と、リード・オンリ・メモリ(ROM:read only memory)基本入出力システム(BIOS:basic input output system)64と、1つ以上のメモリ・インターフェース・モジュールとを含む。1つ以上のメモリ・インターフェース・モジュール(単数または複数)は、ユニバーサル・シリアル・バス(USB:universal serial bus)インターフェース・モジュール66、ホスト・バス・アダプタ(HBA:host bus adapter)インターフェース・モジュール68、ネットワーク・インターフェース・モジュール70、フラッシュ・インターフェース・モジュール72、ハード・ドライブ・インターフェース・モジュール74、およびDSNインターフェース・モジュール76のうちの1つ以上を含む。
DSNインターフェース・モジュール76は、従来のオペレーティング・システム(OS:operating system)ファイル・システム・インターフェース(例、ネットワーク・ファイル・システム(NFS:network file system)、フラッシュ・ファイル・システム(FFS:flash file system)、ディスク・ファイル・システム(DFS:disk file system)、ファイル転送プロトコル(FTP:file transfer protocol)、ウェブ・ベースの分散型オーサリングおよびバージョン管理(WebDAV:web−based distributed authoring and versioning)など)、もしくはブロック・メモリ・インターフェース(例、小型コンピュータ・システム・インターフェース(SCSI:small computer system interface)、インターネット小型コンピュータ・システム・インターフェース(iSCSI:internet small computer system interface)など)、またはその両方を模倣するように機能する。DSNインターフェース・モジュール76もしくはネットワーク・インターフェース・モジュール70またはその両方は、図1のインターフェース30〜33の1つ以上として機能してもよい。なお、IOデバイス・インターフェース・モジュール62もしくはメモリ・インターフェース・モジュール66〜76またはその両方は、集合的または個別にIOポートと呼ばれることがある。
図3は、データの分散ストレージ・エラー符号化の例の概略ブロック図である。コンピュータ・デバイス12または16が保存すべきデータを有するとき、そのコンピュータ・デバイスは分散ストレージ・エラー符号化パラメータに基づく分散ストレージ・エラー符号化プロセスに従ってデータを分散ストレージ・エラー符号化する。ここでコンピュータ・デバイスはデータ・オブジェクト40を保存し、このデータ・オブジェクト40はファイル(例、テキスト、ビデオ、オーディオなど)またはその他のデータ配置を含み得る。分散ストレージ・エラー符号化パラメータは、符号化関数(例、情報分散アルゴリズム(IDA:information dispersal algorithm)、リード・ソロモン(Reed−Solomon)、コーシー・リード・ソロモン(Cauchy Reed−Solomon)、系統的符号化、非系統的符号化、オンライン・コードなど)、データ・セグメント化プロトコル(例、データ・セグメント・サイズ、固定、可変など)、およびデータ・セグメントごとの符号化値を含む。データ・セグメントごとの符号化値は、データ・セグメントの符号化ごとの(すなわち符号化データ・スライスのセット内の)符号化データ・スライスの合計またはピラー幅の数(T)、データ・セグメントを回復させるために必要な符号化データ・スライスのセットの符号化データ・スライスの復号閾値数(D)、データ・セグメントを復号するためにストレージから読取るべきセットごとの符号化データ・スライスの数を示すための符号化データ・スライスの読取り閾値数(R)、もしくは符号化データ・セグメントが適切に保存されたとみなされる前に正確に保存される必要のあるセットごとの符号化データ・スライスの数を示すための書込み閾値数(W)、またはその組み合わせを含む。分散ストレージ・エラー符号化パラメータはさらに、スライス情報(例、各データ・セグメントに対して作成されることとなる符号化データ・スライスの数)、もしくはスライス・セキュリティ情報(例、符号化データ・スライス暗号化、圧縮、完全性チェックサムなどに対するもの)、またはその両方を含んでもよい。
本例においては、符号化関数としてコーシー・リード・ソロモンが選択されており(一般的な例が図4に示され、特定の例が図5に示されている)、そのデータ・セグメント化プロトコルはデータ・オブジェクトを固定サイズのデータ・セグメントに分割することであり、データ・セグメントごとの符号化値はピラー幅5と、復号閾値3と、読取り閾値4と、書込み閾値4とを含む。データ・セグメント化プロトコルによると、コンピュータ・デバイス12または16はデータ・オブジェクト40を複数の固定サイズのデータ・セグメント(例、キロバイトからテラバイト以上の範囲の固定サイズの1からY)に分割する。作成されるデータ・セグメントの数は、データのサイズおよびデータ・セグメント化プロトコルに依存する。
コンピュータ・デバイス12または16は、次いで選択された符号化関数(例、コーシー・リード・ソロモン)を用いてデータ・セグメントを分散ストレージ・エラー符号化して、符号化データ・スライスのセットを生成する。図4は一般的なコーシー・リード・ソロモン符号化関数を示しており、この符号化関数は符号化行列(EM:encoding matrix)と、データ行列(DM:data matrix)と、コード行列(CM:coded matrix)とを含む。符号化行列(EM)のサイズは、選択されたデータ・セグメントごとの符号化値のピラー幅数(T)および復号閾値数(D)に依存する。データ行列(DM)を生成するために、データ・セグメントは複数のデータ・ブロックに分割され、それらのデータ・ブロックは1行当りZのデータ・ブロックを有するD数の行に配置される。なお、Zはデータ・セグメントから作成されるデータ・ブロックの数と、復号閾値数(D)との関数である。コード行列は、データ行列に符号化行列を掛けた行列によって生成される。
図5は、ピラー数(T)5および復号閾値数3によるコーシー・リード・ソロモン符号化の特定の例を示す。この例において、第1のデータ・セグメントは12のデータ・ブロック(D1〜D12)に分割される。コード行列は5行のコード・データ・ブロックを含み、ここで第1の行X11〜X14は第1の符号化データ・スライス(EDS1_1)に対応し、第2の行X21〜X24は第2の符号化データ・スライス(EDS2_1)に対応し、第3の行X31〜X34は第3の符号化データ・スライス(EDS3_1)に対応し、第4の行X41〜X44は第4の符号化データ・スライス(EDS4_1)に対応し、第5の行X51〜X54は第5の符号化データ・スライス(EDS5_1)に対応する。なお、EDS名称の2番目の数はデータ・セグメント番号に対応する。
図3の考察に戻って、コンピュータ・デバイスは、符号化データ・スライスのセット内の各符号化データ・スライス(EDS:encoded data slice)に対してスライス名(SN:slice name)も作成する。スライス名80に対する典型的なフォーマットを図6に示す。示されるとおり、スライス名(SN)80は符号化データ・スライスのピラー番号(例、1〜Tの1つ)と、データ・セグメント番号(例、1〜Yの1つ)と、ボールト識別子(ID:identifier)と、データ・オブジェクト識別子(ID)とを含み、さらに符号化データ・スライスのリビジョン・レベル情報を含んでもよい。スライス名は、ストレージおよびDSNメモリ22からの検索のための符号化データ・スライスに対するDSNアドレスの少なくとも一部として機能する。
符号化の結果として、コンピュータ・デバイス12または16は符号化データ・スライスの複数のセットを生成し、それらにはストレージのためのストレージ・ユニットに対するそれぞれのスライス名が提供される。示されるとおり、符号化データ・スライスの第1のセットはEDS1_1からEDS5_1を含み、スライス名の第1のセットはSN1_1からSN5_1を含み、符号化データ・スライスの最終セットはEDS1_YからEDS5_Yを含み、スライス名の最終セットはSN1_YからSN5_Yを含む。
図7は、図4の例において分散ストレージ・エラー符号化されて保存されたデータ・オブジェクトの分散ストレージ・エラー復号の例の概略ブロック図である。この例において、コンピュータ・デバイス12または16は、ストレージ・ユニットからデータ・セグメント当り少なくとも復号閾値数の符号化データ・スライスを検索する。特定の例として、コンピュータ・デバイスは読取り閾値数の符号化データ・スライスを検索する。
復号閾値数の符号化データ・スライスからデータ・セグメントを回復させるために、コンピュータ・デバイスは図8に示される復号関数を用いる。示されるとおり、復号関数は本質的に図4の符号化関数の逆関数である。コード行列は復号閾値数の行(例、この例においては3)を含み、復号行列はコード行列の対応する行を含む符号化行列の逆行列である。たとえば、コード行列が行1、2、および4を含むとき、符号化行列は行1、2、および4に縮小され、次いで逆行列にされて復号行列を生成する。
図9は分散ストレージ・ネットワーク(DSN)の別の実施形態の概略ブロック図であり、この分散ストレージ・ネットワーク(DSN)はDST処理ユニット910と、複数のリクエスタ920と、複数のストレージ・ユニット1〜nと、アイデンティティおよびアクセス管理(IAM)システム930と、図1のネットワーク24とを含む。DST処理ユニット910、いくつかまたはすべてのリクエスタ920、いくつかまたはすべてのストレージ・ユニット1〜n、およびIAMシステム930は、図1のインターフェース32、図1のコンピューティング・コア26、もしくは図1のDSクライアント・モジュール34、またはその組み合わせを含み得る。DSNのDST処理ユニット910は、IAMシステム930に送信される認証もしくは認証要求またはその両方をバッチ処理することによってネットワーク輻輳およびシステム利用率を軽減させるように機能するか、もしくは利用率と待ち時間とのトレードオフを最適化するようにその挙動を動的に調整できるか、またはその両方である。
各ストレージ・ユニットは、図1のDSNメモリ22のストレージ・ユニット36を使用して実現され得る。DST処理ユニット910は、たとえば前述のとおりコンピュータ・デバイス14に対する分散ストレージ処理エージェントとして機能するコンピュータ・デバイス16を使用して実現され得るか、もしくはたとえば分散ストレージおよびタスク・ユニットとして機能する1つ以上のストレージ・ユニット36を使用して実現され得るか、またはその両方である。加えてDST処理ユニットは、DSNメモリ22のいくつかまたはすべてのストレージ・ユニット36に対するアクセス要求およびその他の動作要求の実行を促進するために動作可能であるか、DSNメモリ22の利用率をモニタするために動作可能であるか、かつ/あるいはネットワーク24の輻輳もしくはネットワーク利用率またはその両方をモニタするために動作可能である、プロセッサおよびメモリを含む任意のシステムを使用して実現され得る。いくつかまたはすべてのリクエスタ920は、コンピュータ・デバイス12、14、または16を使用して実現され得るか、ユーザ・デバイスに対応し得るか、かつ/またはネットワーク24を介してDST処理ユニットに動作要求を送信する責を負うプロセッサおよびメモリを含む任意のシステムを使用して実現され得る。IAMシステム930は、コンピュータ・デバイス16、図1の管理ユニット18、完全性処理ユニット20、またはプロセッサおよびメモリを含みかつDST処理ユニット910に対する動作要求を認証および/または認可するために動作可能なネットワーク24と通信する任意のシステムを使用して実現され得る。
リクエスタ920がDSNメモリへの動作を開始するとき、そのリクエスタはこうした動作を行うことが許可されていることを確実にするために認可される必要がある。IAMシステム930は、こうした認可を行うために動作可能である。正常利用率条件において、この認可は各動作とインラインで行われ得る。言い換えると、動作が行われるときに直ちに認可が生じる。
しかし、可用性もしくは信頼性またはその両方に影響することを避けるために、IAMシステムに対するトラフィックを低減することが有利または必要であるような状況が起こることがある。一例は、IAMシステムが過負荷条件であって、トラフィックの低減がその利用率の低減を助けると考えられるときである。別の例は、ネットワークが異常な輻輳を経験していて、全体のネットワーク・トラフィックの低減がこうした輻輳の軽減を助けると考えられるときである。本明細書に記載される「動的認可バッチ処理の適用(Applying Dynamic Authorization Batching)」は、こうした条件下でIAMシステムに対するトラフィックを低減するように自身を自動的に調整できる。
「動的認可バッチ処理の適用」は、以下の主要な態様の少なくとも1つを含み得る。(1)DST処理ユニット910、もしくはDSNメモリ22の別のエレメント、またはその両方がシステムの現在の容量および利用率の理解を得るためのプロセス、(2)将来の認可要求のフロー制御を最適化するためのその理解の適用、および(3)こうした最適化をモニタしてその利益を定量可能に測定すること。
現在のシステム容量および利用率を理解することの一部として、DST処理ユニット910は最初に、たとえばネットワーク24のネットワーク・スイッチもしくはその他のルーティング・コンポーネント、IAMシステム930、ストレージ・ユニット1〜n、またはDSNのその他のコンポーネント、あるいはその組み合わせなど、認可プロセスに関与する異なるシステム・コンポーネントおよびそれらの潜在的容量を認識し得る。こうした情報は、構成および/または動的コンポーネントならびにネットワーク・トポロジ―発見を介して得られてもよい。
次に、DSNメモリは各システム・コンポーネントの現在の利用率と、それがどのようにそれら全体の能力に影響するかとを動的に認識し得る。たとえば、DST処理ユニット910は、定期的な容量広告を介してIAMシステム930の容量および利用パーセンテージに関して動的に学習し得る。代替的または付加的に、DST処理ユニット910は、認可プロセスの間に横断されるネットワーク24のいくつかまたはすべてのネットワーク・スイッチもしくはその他のさまざまなネットワーク・エレメントまたはその両方の輻輳および利用率を定期的に問い合わせ得る。
たとえば図10に示されるとおり、DST処理ユニット910からIAMシステム930への認可要求は、ネットワーク24の複数のネットワーク・スイッチ1〜nを介してルーティングされ得る。いくつかまたはすべてのネットワーク・スイッチ1〜nは、図11のスイッチ960を使用して実現でき、このスイッチ960は少なくとも1つのネットワーク・インターフェース962と、メモリ964と、処理システム966とを含み、これらすべてがバス968を介して接続されている。スイッチ1〜nはメモリ964に実行可能な命令を保存するために動作可能であってもよく、その命令は処理システム966によって実行されるとき、スイッチ960に少なくとも1つのネットワーク・インターフェース962の1つ以上のポートを介して、ネットワーク24の他のスイッチもしくはその他のコンポーネントまたはその両方に対する有線もしくはワイヤレスまたはその両方の接続を介したネットワーク・トラフィックを送信および受信させる。加えて、いくつかまたはすべてのネットワーク・スイッチ1〜nは、たとえば経験したネットワーク・トラフィックもしくは輻輳またはその両方などに基づいて、利用率データをモニタしてDST処理ユニットに送信するために動作可能であり得る。代替的に、いくつかまたはすべてのネットワーク・スイッチ1〜nに対するネットワーク・トラフィックもしくは輻輳またはその両方は、DST処理ユニット910への送信のためにDSNの他のエンティティによってモニタされ得る。
いくつかの実施形態において、DST処理ユニットは、IAMシステムもしくはネットワーク・エレメントまたはその両方から受信した複数の利用率レベルに基づいて現在の利用率データを生成し、ここでたとえば利用率データは、受信した利用率レベルの合計、平均、もしくは集計分析、またはその組み合わせに基づいて生成される。複数の利用率レベルは、DST処理ユニット910によって生成されてDSNメモリの複数のコンポーネントに送信される複数の利用率レベル要求に応答して受信され得る。DST処理ユニット910は、予め定められた時間間隔で、要求を受信したことに応答して、システム利用率が変化したと判定したことに応答して、IAMシステム930から要求もしくはその他の情報を受信したことに応答して、かつ/または他の要素に基づく決定によって、複数の利用率レベルを要求することを決定できる。DST処理ユニット910は、たとえば認可プロセスに異なるコンポーネントが関与していると判定したことなどに応答して、後の時間における利用率データのその後の決定において利用率レベルを要求すべき異なる複数のコンポーネントを決定できる。さまざまな実施形態において、DSNの1つ以上の他のエレメントは報告される利用率の収集もしくは利用率データの決定またはその両方に対する責を負い、DST処理ユニット910は1つ以上の他のエレメントからの利用率データを要求し得るか、もしくは別様に利用率データを受信し得るか、またはその両方である。
現在のシステム容量が学習されると、DSNメモリはその理解を適用して認可要求に対する動的バッチ処理を行い得る。バッチ処理法は、システム輻輳の期間中のリクエスタ感知待ち時間の最適化を(リクエスタ感知待ち時間を犠牲にして)優先し得る。代替的または付加的に、バッチ処理法はシステム輻輳の深刻度に依存して、いくつの要求をともにバッチ処理するかの点でより積極的になり得る。
動作の一例において、リクエスタ920は、認可を必要とする動作要求をDST処理ユニット910に送信し得る。たとえば動作要求は、分散ストレージ・エラー符号化されて複数のストレージ・ユニット1〜nに保存されたデータ・オブジェクトに関与する読取り要求、書込み要求、アクセス要求、または別のタイプの要求などを含み得る。DST処理ユニット910は、システムが正常利用率条件内にあると判定したことに応答して、動作要求を受信するとIAMシステム930に認可要求を自動的に送信し得る。たとえばDST処理ユニット910は、現在の利用率データのシステム利用率レベルを構成された正常利用率閾値と比較でき、システム利用率レベルが正常利用率閾値と比べて好ましいときには、そのシステム利用率レベルが正常システム利用率を示すと判定できる。IAMシステム930は、受信した認可要求に基づいてリクエスタからの動作要求が認可されるかどうかを判定でき、応答において認可成功または認可失敗を送信できる。IAMシステム930から認可成功を受信するとき、DST処理ユニット910はそれによって動作要求を実行できる。認可失敗を受信するとき、DST処理ユニットは要求の実行を控えることができ、かつ/またはリクエスタおよび/もしくは動作要求に示されるデータの責を負うとみなされるエンティティへの送信のための認可失敗通知を生成できる。
時間とともに、たとえば複数のDSNコンポーネントの複数のその後の利用率レベルに基づいて生成されるその後の利用率データに基づいて、DST処理ユニット910はシステムが過剰利用されていると判定し得る。たとえばDST処理ユニットは、利用率データが正常利用率閾値と比べて好ましくないと判定することで、システムが過剰利用されていると判定し得る。システムが過剰利用されていると判定したことに応答して、1つ以上のリクエスタ920からDST処理ユニットに新たな動作要求が送信されるときに、対応する認可要求は直接IAMシステム930に送信されるのではなく、キューに入れられる。たとえば認可要求は、キャッシュもしくはたとえばDST処理ユニット910のコンピューティング・コアのメモリ54などのローカル・メモリ、またはその両方のキュー915に保存され得る。
その後DST処理ユニット910は、キュー内のいくつかまたはすべての認可要求をバッチ要求として送信することを決定し得る。DST処理ユニットは、応答においてキュー内の要求に対応する認可要求情報を含ませるための単一のバッチ要求を生成でき、その単一のバッチ要求をIAMシステム930に送信できる。DST処理ユニット910は、要求キューがキュー制限条件と比べて好ましくないと判定したことに基づいて、キュー要求を送信するというこの決定を行い得る。たとえばDST処理ユニット910は、キュー内の認可要求の数がキュー・サイズ閾値と一致するか、またはそれを超えていると判定したことに応答して、キューに入れられた認可要求をバッチ要求として送信できる。代替的または付加的に、DST処理ユニット910は、キュー内の第1の要求を受信してからの時間がキュー時間制限と一致するか、またはそれを超えていると判定したことに応答して、キュー内の認可要求をバッチ要求として送信することを決定できる。さまざまな実施形態において、DST処理ユニット910は、これらの条件のいずれかが起こったことに応答するか、もしくは複数のキュー制限条件のうちの最初に引き起こされた1つに応答するか、またはその両方に応答して、キュー内の認可要求をバッチ要求として送信することを決定する。本明細書において考察されるとおり、要求キューのバッチ処理および送信を自動的に引き起こすこのキュー制限条件は、現在のシステム利用率データに基づいてDST処理ユニット910によって定められ得る。
IAMシステム930は、バッチ要求内の対応する複数の要求の各々に対する認可要求情報を抽出して、バッチ要求の複数の要求の各々に対する認可の成功または失敗を判定できる。IAMシステム930は、バッチ要求の複数の認可要求の各々の成功または失敗を示すバッチ応答を生成し得る。たとえば、各要求に対する成功または失敗を示す認可応答が定められるとき、IAMシステム930によってそれらの認可応答がキューに入れられ得る。バッチ要求の各々の要求に対する認可応答が生成されるとき、IAMシステム930はそのキュー内の認可応答を単一のバッチ応答としてDST処理ユニット910に送り返し得る。代替的に、IAMシステム930は認可応答が生成されたときに、それを一度に1つずつDST処理ユニット910に送り返し得る。
いくつかの実施形態において、IAMシステム930は、たとえば自身のサイズ閾値もしくはキュー時間制限またはその両方などの、自身のキュー制限条件に基づいてバッチ応答を生成し得る。たとえばIAMシステム930は、バッチ要求内の要求の一部のみに対する応答を示すバッチ応答をDST処理ユニット910に送信することを決定し得る。反対にIAMシステム930は、すべての要求が処理された後もキュー内の応答を保って、DST処理ユニット910からのさらなるバッチ要求が受信されてキューに含まれるように処理されるのを待つことを決定してもよく、複数のバッチ要求に対応する応答のキューを単一のバッチ応答として送信し得る。
DST処理ユニット910は、たとえば利用率データを正常利用率閾値と比較することなどによって、システムが正常利用率レベルに戻ったことを判定でき、リクエスタから対応する動作要求を受信した際に、バッチ処理なしでIAMシステムに認可要求を再び送信することを決定し得る。
バッチ処理の有効性は、DST処理ユニットまたはDSN内の1つ以上の他のエンティティによって、経時的にDSNのコンポーネントによって報告されるシステム容量およびその他の統計を観察することによって測定され得る。たとえばDST処理ユニット910は、DST処理ユニット910とIAMシステム930との間の認可要求速度をモニタし得る。代替的または付加的に、DST処理ユニット910は、輻輳または輻輳に関連する速度制限のために起こる失敗認可要求をモニタし得る。代替的または付加的に、DST処理ユニット910は、いくつかまたはすべてのリクエスタの感知待ち時間をモニタし得る。正常利用率の条件下で、リクエスタ感知待ち時間は短いはずであり、認可要求速度は高いはずである。システムがより高い利用率レベルになるとき、リクエスタ感知待ち時間は増加するはずであり、認可要求速度は減少するはずである。この自己調整は、システムを正常利用率に戻すこと、正常なユーザ感知待ち時間に戻すこと、もしくは低い認可失敗率を維持すること、またはその組み合わせを助け得る。
この自己調整を行うために、たとえばDST処理ユニット910もしくはIAMシステム930またはその両方のキュー・サイズ閾値もしくはキュー時間制限またはその両方などのキュー制限条件は、変化するシステム利用率に基づいて異なる値に設定されてもよく、よって更新された利用率データを受信する際の利用率データの関数であり得る。たとえば、システム利用率が大過剰利用率から低減してほんのわずかな過剰利用になったと判定したことに応答して、DST処理ユニット910は、より小さいバッチ要求の送信もしくはより頻度の高いバッチ要求の送信またはその両方を開始し得る。反対に、システム利用率がわずかな過剰利用率から増加して大過剰利用になったと判定したことに応答して、DST処理ユニット910は、より大きいバッチ要求の送信もしくはより頻度の低いバッチ要求の送信またはその両方を開始し得る。システムが正常利用率レベルにあると判定したことに応答して、DST処理ユニットは認可要求をバッチ処理なしで直ちに送信し得る。IAMシステム930は、変化するシステム利用率に基づいて、より大きいバッチ応答およびより小さいバッチ応答の送信、または頻度がより高いかもしくは低いバッチ応答の送信、あるいはその両方を類似のやり方で決定し得る。システム利用率が経時的に変化するとき、たとえばDSNコンポーネントの新たな利用率レベルが収集されて更新利用率データが生成されるときなどに、それに従って応答においてDST処理ユニット910もしくはIAMシステム930またはその両方によって、キュー・サイズ閾値もしくはキュー時間制限またはその両方が更新され得る。
いくつかの実施形態において、たとえばキュー・サイズ閾値もしくはキュー時間制限またはその両方などのキュー制限条件は、システムの測定された有効性、いくつかもしくはすべてのリクエスタの感知待ち時間要件、またはたとえば輻輳もしくは輻輳に関連する速度制限などによって起こる失敗認可要求の数もしくは割合、あるいはその組み合わせの関数でもあり得る。たとえば、失敗認可要求の割合が閾値を超えるとき、DST処理ユニット910は、キュー・サイズ閾値もしくはキュー時間制限またはその両方を増加させることを決定し得る。別の例として、いくつかまたはすべてのリクエスタのリクエスタ感知待ち時間が待ち時間の時間制限を超えるとき、DST処理ユニットは、キュー・サイズ閾値もしくはキュー時間制限またはその両方を減少させることを決定し得る。キュー制限条件はこれらの要素のいくつかまたはすべての関数であってもよく、これらの要素には重みが割り当てられてもよく、その重みはこの自己調整の一部として経時的に変化し得る。いくつかの実施形態において、キュー制限条件を定めることは、これらの割り当てられた重みを使用することによって、それに従ってリクエスタ感知待ち時間、ネットワーク利用率、IAM輻輳、もしくは失敗認可要求の割合、またはその組み合わせの間のトレードオフを最適化するための最適化機能を行うことを含み得る。
いくつかの実施形態において、利用率データのシステム利用率レベルは、たとえば報告される利用率の集合体と、複数のシステム利用率レベル閾値とを比較することなどによって定められ得る。たとえば、利用率データをNのシステム利用率レベルと比較することによって、そのシステムの利用率が利用率増加中のNのシステム利用率レベルの1つの中にあることが定められ得る。キュー・サイズ閾値もしくはキュー時間制限またはその両方は、Nの増加関数であり得るか、もしくは別様にシステム利用率レベルの増加関数であり得るか、またはその両方である。最低レベルは正常利用率レベルに相当してもよく、ここでキュー・サイズ閾値は1に設定されるか、もしくはキュー時間制限は動作要求を受信したときに認可要求を送信することを示すか、またはその両方である。
代替的または付加的に、利用率レベルはシステムの過剰利用率の値を示してもよく、これは正常利用率閾値からの利用率データの利用率の差を算出することによって定められ得る。たとえば、利用率データの集計利用率値から正常利用率閾値を引いて利用率の差を計算でき、ここで集計利用率値は複数の受信した利用率レベルに基づいて算出される。利用率データが正常利用率閾値と比べて好ましくないとき、キュー・サイズ閾値もしくはキュー時間制限またはその両方は、利用率の差の増加関数であり得る。利用率データが正常利用率閾値と比べて好ましく、正常利用率レベルを示しているとき、キュー・サイズ閾値は1に設定され得るか、もしくはキュー時間制限は動作要求を受信したときに認可要求を送信することを示し得るか、またはその両方である。過剰利用率はDST処理ユニット910によって、複数の利用率レベルの重み付き和、重み付き平均、もしくはその他の重み付き関数、またはその組み合わせとして計算されてもよく、ここで各々の受信利用率レベルの対応する重みは、対応するDSNコンポーネントがどれほどシステム待ち時間に影響すると判定されるかに基づいている。
IAMシステム930によって定められる利用率データもしくは対応するキュー制限条件またはその両方は、たとえばDST処理ユニットにとって未知であるか、またはDST処理ユニットに無関係であるIAMシステムの輻輳要素の結果として、DST処理ユニット910とは異なるものであり得る。たとえば図12に示されるとおり、いくつかの実施形態は、IAMシステム930に認可要求を送信する複数のDST処理ユニット910を含み得る。こうした実施形態において、IAMシステムは、すべてが自身のバッチ認可要求または非バッチ認可要求を送信しているシステム内の複数のDST処理ユニット910から受信したトラフィックに基づいて、自身の利用率データを定め得る。単一のDST処理ユニット910は、他のDST処理ユニット910によって引き起こされたこのトラフィックを自身のキュー制限条件を定めるときに考慮しないかもしれず、かつ/または、たとえば異なる輻輳および/もしくは利用率データ、リクエスタの優先度および/もしくは異なる感知リクエスタ待ち時間要件、あるいはIAMシステム930にとって未知であるか、もしくはIAMシステム930と無関係のその他の要素などの異なる要素を考慮するかもしれず、それによって異なるキュー・サイズ閾値もしくは異なるキュー時間制限またはその両方がもたらされるかもしれない。代替的にIAMシステム930は、複数のDST処理ユニット910からのトラフィックに基づく容量情報、ネットワーク・トラフィック・データ、もしくは輻輳情報を、いくつかまたはすべてのDST処理ユニット910に送信し得る。いくつかまたはすべてのDST処理ユニット910は、自身の利用率データを定めるときにこの情報を用いることを定め得る。こうした実施形態において、この戦略は、たとえばシステム全体の利用率の変化などに応答して、IAMシステムといくつかまたはすべてのDST処理ユニット910との間でキュー・サイズ閾値もしくはキュー時間制限またはその両方を同期させるために用いられ得る。代替的にIAMシステム930は、デフォルトで対応するDST処理ユニットのバッチ要求の数と一致するように自身のバッチ応答を生成でき、よって自身のキュー制限条件を定めることがない。
いくつかの実施形態において、DST処理ユニット910は、キュー内の1つ以上の要求が緊急もしくは別様に優先度の高い動作タイプに対応するか、または優先度の高いリクエスタに対応するか、あるいはその両方であると判定したことに応答して、キュー内の認可要求をバッチ要求として送信することを決定し得る。いくつかの実施形態において、優先度の高い動作はキュー制限条件より優先でき、ここで要求キュー内のいくつかまたはすべての要求は、キュー制限条件に達する前にバッチ処理されて送信される。たとえばDST処理ユニット910は、要求を受信した際に受信した要求の優先度が高いか否かを判定し得る。その要求の優先度が高いと判定したことに応答して、DST処理ユニット910は、優先度の高い動作に対応する認可要求をすでにキュー内にある認可要求とともにIAMシステムへの送信のためにバッチ処理することを決定してもよいし、キュー内に他の認可要求がないときには優先度の高い動作に対応する単一の認可要求を送信することを決定してもよい。別の例として、キュー内のいくつかまたはすべての要求は、対応する動作期限もしくは認可期限またはその両方を有してもよく、それはDST処理ユニットによって定められるか、もしくは要求に含まれるか、またはその両方である。DST処理ユニットは、認可キュー内の任意の要求の動作期限もしくは認可期限またはその両方が近づいていると判定したことに応答し、かつ/あるいは現在の時間が動作期限もしくは認可期限またはその両方と比べて好ましくないと別様に判定したことに応答して、キュー内のすべての要求によるバッチ認可要求の生成を進めて、そのバッチ認可要求をIAMシステムに送信し得る。
リクエスタ920のこうした優先度決定は、リクエスタ感知待ち時間がキュー制限条件の決定に使用される要素であるような実施形態において使用され得る。キュー制限条件は、複数のリクエスタ920のリクエスタ感知待ち時間の関数であってもよく、それはリクエスタ920に割り当てられた優先度、もしくはリクエスタ920によって送信された動作要求に割り当てられた優先度、またはその両方によって重み付けされ得る。たとえば、より優先度の高いリクエスタ920により高い重みが割り当てられることによって、キュー・サイズ閾値もしくはキュー時間制限またはその両方がより大きく低減し、結果として優先度の高いリクエスタの感知待ち時間がより大きく低減する(おそらくはIAMシステム930に対するシステム利用率もしくは輻輳またはその両方が犠牲になる)。一方で、より優先度の低いリクエスタは同じやり方で優先されなくてもよく、感知待ち時間の改善はもっと少ないか、または改善されない。
さまざまな実施形態において、分散ストレージおよびタスク(DST)処理ユニットの処理システムは少なくとも1つのプロセッサと、動作命令を保存するメモリとを含み、この動作命令は少なくとも1つのプロセッサによって実行されるときに、処理システムが第1のシステム利用率データを定めるようにさせる。第1の動作要求が受信され、第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、第1の動作要求に対応する第1の認可要求を含む第1の要求キューが生成される。第1のシステム利用率データに基づいて第1の要求キューを生成することに応答して、第1のキュー制限条件が定められる。第1の後続動作要求に対応する第1の後続認可要求が受信されて、第1の要求キューに付加される。第1の要求キューが第1のキュー制限条件と比べて好ましくないと判定したことに応答して、第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求が生成される。第1の要求キューの第1の複数の認可要求に対応して、IAMシステムに対する第1のバッチ認可要求および第1の複数の認可応答がIAMシステムから受信される。認可成功を示す第1の複数の認可応答の第1のサブセットが識別され、第1の複数の認可応答の第1のサブセットに対応する複数の動作要求のサブセットの実行が促進される。
第2のシステム利用率データが定められ、第2の動作要求が受信される。第2のシステム利用率データが正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、第2の動作要求に対応する第2の認可要求を含む第2の要求キューが生成され、ここで第2の利用率レベルは第1の利用率レベルとは異なる。第2のシステム利用率データに基づいて第2の要求キューを生成することに応答して第2のキュー制限条件が定められ、ここで第2のキュー制限条件は第1のキュー制限条件とは異なる。第2の後続動作要求に対応する第2の後続認可要求が受信されて、第2の要求キューに付加される。
さまざまな実施形態において、第2の要求キューが第2のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求が生成され、第2のバッチ認可要求はIAMシステムに送信される。
さまざまな実施形態において、第3のシステム利用率データが定められる。第3のシステム利用率データに基づいて第3のキュー制限条件が定められ、ここで第3のキュー制限条件は第2のキュー制限条件とは異なる。第3のキュー制限条件を定めることに応答し、かつ第2の要求キューが第3のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求が生成され、ここで第2の要求キューは第2のキュー制限条件と比べて好ましい。第2のバッチ認可要求はIAMシステムに送信される。
図13〜15は、動的認可バッチ処理の例を示す流れ図である。特に図13は、図1〜12とともに説明した1つ以上の機能および特徴と関連して用いるための方法を提供するものであり、この方法は、プロセッサを含む分散ストレージおよびタスク(DST)処理ユニットによる実行か、または少なくとも1つのプロセッサと、以下に説明されるステップを行うようにその単数もしくは複数のプロセッサを構成する命令を保存するメモリとを含む分散ストレージ・ネットワークの別の処理システムを介した実行のためのものである。
ステップ1002は、第1のシステム利用率データを定めるステップを含む。ステップ1004は、第1の動作要求を受信するステップを含む。ステップ1006は、第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、第1の動作要求に対応する第1の認可要求を含む第1の要求キューを生成するステップを含む。ステップ1008は、第1のシステム利用率データに基づいて第1の要求キューを生成するステップに応答して、第1のキュー制限条件を定めるステップを含む。
ステップ1010は、第1の後続動作要求を受信するステップを含む。ステップ1012は、第1の後続動作要求に対応する第1の後続認可要求を第1の要求キューに付加するステップを含む。ステップ1014は、第1の要求キューが第1のキュー制限条件と比べて好ましくないと判定したことに応答して、第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求を生成するステップを含む。ステップ1016は、第1のバッチ認可要求をアイデンティティおよびアクセス管理(IAM)システムに送信するステップを含む。ステップ1018は、第1の要求キューの第1の複数の認可要求に対応する第1の複数の認可応答をIAMシステムから受信するステップを含む。ステップ1020は、認可成功を示す第1の複数の認可応答の第1のサブセットを識別するステップを含む。ステップ1022は、第1の複数の認可応答の第1のサブセットに対応する複数の動作要求のサブセットの実行を促進するステップを含む。
ステップ1024は、第2のシステム利用率データを定めるステップを含む。ステップ1026は、第2の動作要求を受信するステップを含む。ステップ1028は、第2のシステム利用率データが正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、第2の動作要求に対応する第2の認可要求を含む第2の要求キューを生成するステップを含み、ここで第2の利用率レベルは第1の利用率レベルとは異なる。ステップ1030は、第2のシステム利用率データに基づいて第2の要求キューを生成するステップに応答して第2のキュー制限条件を定めるステップを含み、ここで第2のキュー制限条件は第1のキュー制限条件とは異なる。ステップ1032は、第2の後続動作要求を受信するステップを含む。
図13のステップ1032の後、この方法は図14に示されるステップ1034に続き得る。ステップ1034は、第2の後続動作要求に対応する第2の後続認可要求を第2の要求キューに付加するステップを含む。ステップ1036は、第2の要求キューが第2のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップを含む。ステップ1038は、第2のバッチ認可要求をIAMシステムに送信するステップを含む。
図15に示されるとおり、さまざまな実施形態において、図13の方法は図13のステップ1032からステップ1034に続くことができ、ステップ1034は再び、第2の後続動作要求に対応する第2の後続認可要求を第2の要求キューに付加するステップを含む。この方法はステップ1034からステップ1040に続くことができ、ステップ1040は第3のシステム利用率データを定めるステップを含む。ステップ1042は、第3のシステム利用率データに基づいて第3のキュー制限条件を定めるステップを含み、ここで第3のキュー制限条件は第2のキュー制限条件とは異なる。ステップ1044は、第3のキュー制限条件を定めるステップに応答し、かつ第2の要求キューが第3のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップを含み、ここで第2の要求キューは第2のキュー制限条件と比べて好ましい。ステップ1046は、第2のバッチ認可要求をIAMシステムに送信するステップを含む。
さまざまな実施形態において、第3のシステム利用率データが定められ、第3の動作要求が受信される。第3のシステム利用率データが正常利用率閾値と比べて好ましいシステム利用率レベルを示していると判定したことに応答して、第3の動作要求に対応する第3の認可要求を単一の認可要求としてIAMシステムに送信することが決定される。第3の認可要求に対応する単一の認可応答がIAMシステムから受信される。単一の認可応答が認可成功を示すとき、第3の動作要求の実行が促進される。
さまざまな実施形態において、認可失敗を示す第1の複数の認可応答の第2のサブセットが識別され、ここで第1の複数の認可応答の第2のサブセットと、第1の複数の認可応答の第1のサブセットとの共通部分は空である。第1の複数の認可応答の第2のサブセットに対応する複数の動作要求の第2のサブセットを送信した複数のリクエスタのサブセットが識別される。その複数のリクエスタのサブセットへの送信のために、認可失敗通知が生成される。
さまざまな実施形態において、IAMシステムによって生成された第1のバッチ認可応答において、第1の複数の認可応答が受信される。さまざまな実施形態において、第1の複数の認可応答の少なくとも1つの第1の応答は第1の時間の第1の送信において受信され、第1の複数の認可応答の少なくとも1つの第2の応答は第2の時間の第2の送信において受信され、第1の時間は第2の時間とは異なる。
さまざまな実施形態において、第1の動作要求はデータ・オブジェクトを示す読取り要求を含み、ここではDSNのストレージ・ユニットのセットに保存される符号化データ・スライスのセットを生成するために、データ・オブジェクトのデータ・セグメントに対して分散ストレージ・エラー符号化機能が行われている。第1の動作要求に対応する認可応答は認可成功を示し、第1の動作要求を実行するステップは、ストレージ・ユニットのセットから読取り閾値数の符号化データ・スライスのセットを検索するステップと、読取り閾値数の符号化データ・スライスのセットに対して分散ストレージ・エラー復号機能を行ってデータ・セグメントを再生するステップとを含む。
さまざまな実施形態において、DSNのネットワーク・コンポーネントのセットから第1の複数のネットワーク利用率レベルが受信され、この第1の複数のネットワーク利用率レベルに基づいて第1のシステム利用率データが生成される。DSNのネットワーク・コンポーネントのセットから第2の複数のネットワーク利用率レベルが受信され、この第2の複数のネットワーク利用率レベルに基づいて第2のシステム利用率データが生成される。さまざまな実施形態において、DSNのネットワーク・コンポーネントのセットは、DSNの複数のネットワーク・コンポーネントのサブセットである。ネットワーク・コンポーネントのセットは、DSNの複数のネットワーク・コンポーネントのうち動作要求の認可に関与しているものを識別することに基づいて定められる。DSNのネットワーク・コンポーネントのセットに送信するための第1の複数のネットワーク利用率レベル要求が生成され、この第1の複数のネットワーク利用率レベル要求に応答して第1の複数のネットワーク利用率レベルが受信される。さまざまな実施形態において、ネットワーク・コンポーネントのセットは、認可要求をDST処理ユニットからIAMシステムにルーティングするように定められた複数のネットワーク・スイッチを含む。
さまざまな実施形態において、IAMシステムから第1のIAM利用率レベルが受信され、この第1のIAM利用率レベルに基づいて第1のシステム利用率データが生成される。IAMシステムから第2のIAM利用率レベルが受信され、この第2のIAM利用率レベルに基づいて第2のシステム利用率データが生成される。第1のIAM利用率レベルおよび第2のIAM利用率レベルは、IAMシステムに対するネットワーク・トラフィックに基づいてIAMによって生成される。
さまざまな実施形態において、第1のキュー制限条件は第1のキュー・サイズ閾値を示し、第2のキュー制限条件は第2のキュー・サイズ閾値を示す。第1の利用率レベルが第2の利用率レベルよりも深刻な過剰利用を示していることに基づいて、第1のキュー・サイズ閾値は第2のキュー・サイズ閾値よりも大きい。応答において、第1のバッチ認可要求の第1の複数の認可要求の第1の数は、第2のバッチ認可要求の第2の複数の認可要求の第2の数よりも大きい。さまざまな実施形態において、第1のキュー制限条件を定めるステップは、第1の利用率レベルに対する機能を行うことによって第1のキュー・サイズ閾値を算出するステップを含み、第2のキュー制限条件を定めるステップは、第2の利用率レベルに対する機能を行うことによって第2のキュー・サイズ閾値を算出するステップを含む。この機能は、利用率レベルの単調増加関数としてキュー・サイズ閾値を算出する。
さまざまな実施形態において、第1のキュー制限条件は第1のキュー時間制限を示し、第2のキュー制限条件は第2のキュー時間制限を示す。第2の利用率レベルが第1の利用率レベルよりも深刻でない過剰利用を示していることに基づいて、第1のキュー時間制限は第2のキュー時間制限よりも短い。応答において、第1の要求キューの生成から第1のバッチ認可要求の生成までに経過した第1の時間は、第2の要求キューの生成から第2のバッチ認可要求の生成までに経過した第2の時間よりも短い。さまざまな実施形態において、第1のキュー制限条件を定めるステップは、第1の利用率レベルに対する機能を行うことによって第1のキュー時間制限を算出するステップを含み、第2のキュー制限条件を定めるステップは、第2の利用率レベルに対する機能を行うことによって第2のキュー時間制限を算出するステップを含む。この機能は、利用率レベルの単調増加関数としてキュー時間制限を算出する。さまざまな実施形態において、第1のキュー制限条件は第1のキュー時間制限を含み、第2のキュー制限条件は第2のキュー時間制限を含み、第1のキュー時間制限がリクエスタ感知待ち時間要件と比べて好ましくないと判定したことに応答して、第2のキュー時間制限は第1のキュー時間制限よりも短くなるように定められる。
さまざまな実施形態において、第2のキュー制限条件を定めるステップはさらに、第1の複数の認可応答の失敗認可応答の割合が失敗応答閾値と比べて好ましくないと判定したことに基づく。
さまざまな実施形態において、非一時的コンピュータ可読ストレージ媒体は、動作命令を保存する少なくとも1つのメモリ・セクションを含み、この動作命令は、プロセッサおよびメモリを含む分散ストレージ・ネットワーク(DSN)の処理システムによって実行されるときに、処理システムが第1のシステム利用率データを定めるようにさせる。第1の動作要求が受信され、第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、第1の動作要求に対応する第1の認可要求を含む第1の要求キューが生成される。第1のシステム利用率データに基づいて第1の要求キューを生成することに応答して、第1のキュー制限条件が定められる。第1の後続動作要求に対応する第1の後続認可要求が受信されて、第1の要求キューに付加される。第1の要求キューが第1のキュー制限条件と比べて好ましくないと判定したことに応答して、第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求が生成される。第1の要求キューの第1の複数の認可要求に対応して、IAMシステムに対する第1のバッチ認可要求および第1の複数の認可応答がIAMシステムから受信される。認可成功を示す第1の複数の認可応答の第1のサブセットが識別され、第1の複数の認可応答の第1のサブセットに対応する複数の動作要求のサブセットの実行が促進される。
第2のシステム利用率データが定められ、第2の動作要求が受信される。第2のシステム利用率データが正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、第2の動作要求に対応する第2の認可要求を含む第2の要求キューが生成され、ここで第2の利用率レベルは第1の利用率レベルとは異なる。第2のシステム利用率データに基づいて第2の要求キューを生成することに応答して第2のキュー制限条件が定められ、ここで第2のキュー制限条件は第1のキュー制限条件とは異なる。第2の後続動作要求に対応する第2の後続認可要求が受信されて、第2の要求キューに付加される。
さまざまな実施形態において、第2の要求キューが第2のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求が生成され、第2のバッチ認可要求はIAMシステムに送信される。
さまざまな実施形態において、第3のシステム利用率データが定められる。第3のシステム利用率データに基づいて第3のキュー制限条件が定められ、ここで第3のキュー制限条件は第2のキュー制限条件とは異なる。第3のキュー制限条件を定めることに応答し、かつ第2の要求キューが第3のキュー制限条件と比べて好ましくないと判定したことに応答して、第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求が生成され、ここで第2の要求キューは第2のキュー制限条件と比べて好ましい。第2のバッチ認可要求はIAMシステムに送信される。
なお、本明細書において用いられることがあるたとえばビット・ストリーム、ストリーム、信号配列などの用語(またはそれらと同等の用語)は、いくつかの所望のタイプ(例、データ、ビデオ、音声、オーディオなど、そのいずれも一般的に「データ」と呼ばれることがある)のいずれかに対応する内容を有するデジタル情報を説明するために、交換可能に用いられたものである。
本明細書において用いられることがある「実質的に」および「約」という用語は、その対応する用語に対する産業上受容される許容差、もしくは項目間の相対性、またはその両方を提供する。こうした産業上受容される許容差は、1パーセント未満から50パーセントの範囲であり、成分値、集積回路プロセス変動、温度変動、立ち上がりおよび立ち下がり時間、もしくは熱雑音、またはその組み合わせに対応するが、それに限定されない。こうした項目間の相対性は、数パーセントの差から大きな差までの範囲である。加えて、本明細書において用いられることがある「構成される」、「動作的に結合される」、「結合される」、もしくは「結合する」、またはその組み合わせの用語(単数または複数)は、項目間の直接的結合、もしくは介在項目(例、コンポーネント、エレメント、回路、もしくはモジュール、またはその組み合わせを含むがそれに限定されない項目)を介した項目間の間接的結合、またはその両方を含み、ここで間接的結合の例に対する介在項目は、信号の情報を変更することはないが、信号の電流レベル、電圧レベル、もしくは電力レベル、またはその組み合わせを調整してもよい。本明細書においてさらに用いられることがある推論結合(すなわち、1つのエレメントが推論によって別のエレメントに結合されるとき)は、「結合される」と同じ方式での2つの項目間の直接的および間接的結合を含む。本明細書においてまださらに用いられることがある「構成される」、「動作可能である」、「結合される」、または「動作可能に結合される」という用語は、ある項目が電力接続、入力(単数または複数)、出力(単数または複数)などの1つ以上を含んで、活動化されたときに1つ以上の自身の対応する機能を行うこと、およびさらに1つ以上の他の項目に対する推論結合を含んでもよいことを示す。本明細書においてまださらに用いられることがある「関連する」という用語は、別個の項目の直接的もしくは間接的またはその両方の結合か、または1つの項目が別の項目に埋め込まれていることか、あるいはその両方を含む。
本明細書において用いられることがある「比べて好ましい」という用語は、2つ以上の項目、信号などの比較が所望の関係を提供することを示す。たとえば、所望の関係とは信号1の大きさが信号2よりも大きいことであるとき、信号1の大きさが信号2の大きさよりも大きいとき、または信号2の大きさが信号1の大きさよりも小さいときに好ましい比較が達成されてもよい。本明細書において用いられることがある「比べて好ましくない」という用語は、2つ以上の項目、信号などの比較が所望の関係を提供しないことを示す。
加えて、本明細書において用いられることがある「処理システム」、「処理モジュール」、「処理回路」、「プロセッサ」、もしくは「処理ユニット」という用語、またはその組み合わせは交換可能に用いられてもよく、かつ単一の処理デバイスまたは複数の処理デバイスであってもよい。こうした処理デバイスはマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、マイクロコンピュータ、中央処理ユニット、フィールド・プログラマブル・ゲート・アレイ、プログラマブル論理デバイス、状態機械、論理回路、アナログ回路、デジタル回路、および/または、回路のハード・コーディングもしくは動作命令またはその両方に基づいて信号(アナログもしくはデジタルまたはその両方)を操作する任意のデバイスであってもよい。処理システム、処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはその組み合わせは、メモリもしくは集積メモリ・エレメントまたはその両方であるか、またはそれをさらに含んでもよく、それは単一のメモリ・デバイスであるか、複数のメモリ・デバイスであるか、あるいは別の処理システム、処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはその組み合わせの埋め込み回路であるか、あるいはその組み合わせであってもよい。こうしたメモリ・デバイスはリード・オンリ・メモリ、ランダム・アクセス・メモリ、揮発性メモリ、不揮発性メモリ、スタティック・メモリ、ダイナミック・メモリ、フラッシュ・メモリ、キャッシュ・メモリ、もしくはデジタル情報を保存する任意のデバイス、またはその組み合わせであってもよい。なお、処理システム、処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはその組み合わせが2つ以上の処理デバイスを含むとき、それらの処理デバイスは中央に位置してもよいし(例、有線もしくはワイヤレスまたはその両方のバス構造を介してともに直接結合される)、分散的に位置してもよい(例、ローカル・エリア・ネットワークもしくは広域ネットワークまたはその両方を介した間接的結合を介したクラウド・コンピューティング)。さらに注記すると、処理システム、処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはその組み合わせが状態機械、アナログ回路、デジタル回路、もしくは論理回路、またはその組み合わせを介して自身の機能の1つ以上を実現するとき、対応する動作命令を保存するメモリもしくはメモリ・エレメントまたはその両方は、状態機械、アナログ回路、デジタル回路、もしくは論理回路、またはその組み合わせを含む回路内に埋め込まれるか、またはその外部にあってもよい。なおさらに注記すると、図面の1つ以上に示されるステップもしくは機能またはその両方の少なくともいくつかに対応するハード・コード命令もしくは動作命令またはその両方を、メモリ・エレメントが保存してもよく、かつ処理システム、処理モジュール、モジュール、処理回路、もしくは処理ユニット、またはその組み合わせが実行する。こうしたメモリ・デバイスまたはメモリ・エレメントは、製造物品に含まれ得る。
指定された機能の実行およびそれらの関係を示す方法ステップの助けによって、1つ以上の実施形態を上に説明した。これらの機能構成要素および方法ステップの境界および配列は、本明細書において説明の簡便さのために任意に定められたものである。指定された機能および関係が適切に実行される限り、代替的な境界および配列が定められ得る。よって、任意のこうした代替的な境界または配列は、請求項の範囲および思想の内にある。さらに、これらの機能構成要素の境界は、説明の簡便さのために任意に定められたものである。特定の重要な機能が適切に実行される限り、代替的な境界が定められ得るだろう。同様に流れ図のブロックも、本明細書において特定の重要な機能を示すために任意に定められたものであってもよい。
使用される範囲に対して、流れ図のブロック境界および配列は、別様に定められても特定の重要な機能を行い得るだろう。よって、機能構成要素ならびに流れ図のブロックおよび配列の両方のこうした代替的な定義は、請求項の範囲および思想の内にある。加えて当業者は、本明細書における機能構成要素、ならびにその他の例示的ブロック、モジュール、およびコンポーネントを例示されるとおりに実現することもできるし、個別のコンポーネント、特定用途向け集積回路、適切なソフトウェアを実行するプロセッサなど、またはその任意の組み合わせによって実現することもできることを認識するだろう。
加えて、流れ図は「開始」もしくは「続く」またはその両方の表示を含むことがある。「開始」および「続く」の表示は、提示されるステップが任意に他のルーチンに組み込まれるか、または別様に他のルーチンとともに用いられ得ることを反映する。この状況において、「開始」は提示される第1のステップの始まりを示し、具体的に示されていない他の活動が先行していてもよい。さらに、「続く」の表示は、提示されるステップが複数回行われ得るか、もしくは具体的に示されていない他の活動に後続され得るか、またはその両方であることを反映する。さらに、流れ図はステップの特定の順序を示すが、因果の原理が維持されていれば、他の順序も同様に可能である。
本明細書においては、1つ以上の態様、1つ以上の特徴、1つ以上の概念、もしくは1つ以上の例、またはその組み合わせを示すために1つ以上の実施形態を用いている。装置、製造物品、機械、もしくはプロセス、またはその組み合わせの物理的実施形態は、本明細書において考察される実施形態の1つ以上を参照して説明される態様、特徴、概念、例などの1つ以上を含んでもよい。さらに、実施形態は複数の図面にわたって同じかまたは類似の名称の機能、ステップ、モジュールなどを取り入れてもよく、それらは同じかまたは異なる参照番号を用いてもよく、よってそれらの機能、ステップ、モジュールなどは同じかまたは類似の機能、ステップ、モジュールなどであってもよいし、異なるものであってもよい。
反対のことが具体的に述べられていない限り、本明細書において提供される任意の図面の図面におけるエレメントへの信号、エレメントからの信号、もしくはエレメント間の信号、またはその組み合わせは、アナログまたはデジタル、連続時間または離散時間、およびシングルエンドまたは差分であってもよい。たとえば、信号経路がシングルエンド経路として示されるとき、それは差分信号経路も表している。同様に、信号経路が差分経路として示されるとき、それはシングルエンド信号経路も表している。本明細書には1つ以上の特定のアーキテクチャが記載されているが、当業者に認識されるとおり、明示的に示されていない1つ以上のデータ・バス、エレメント間の直接接続、もしくは他のエレメント間の間接的結合、またはその組み合わせを用いるその他のアーキテクチャも同様に実現され得る。
1つ以上の実施形態の説明において、「モジュール」という用語が用いられている。モジュールは、動作命令を保存するメモリを含むかまたはそれとともに動作し得る、たとえばプロセッサなどのデバイスまたはその他の処理デバイスもしくはその他のハードウェアを介して、1つ以上の機能を実現する。モジュールは独立して動作するか、あるいはソフトウェアもしくはファームウェアまたはその両方とともに動作するか、あるいはその両方であってもよい。加えて、本明細書で用いられるモジュールは1つ以上のサブモジュールを含んでもよく、サブモジュールの各々は1つ以上のモジュールであってもよい。
さらに、本明細書で用いられることのあるコンピュータ可読メモリは、1つ以上のメモリ・エレメントを含む。メモリ・エレメントは別個のメモリ・デバイスであるか、複数のメモリ・デバイスであるか、またはメモリ・デバイス内のメモリ場所のセットであってもよい。こうしたメモリ・デバイスはリード・オンリ・メモリ、ランダム・アクセス・メモリ、揮発性メモリ、不揮発性メモリ、スタティック・メモリ、ダイナミック・メモリ、フラッシュ・メモリ、キャッシュ・メモリ、もしくはデジタル情報を保存する任意のデバイス、またはその組み合わせであってもよい。メモリ・デバイスは固体メモリ、ハード・ドライブ・メモリ、クラウド・メモリ、サム・ドライブ、サーバ・メモリ、コンピュータ・デバイス・メモリ、もしくはデジタル情報を保存するためのその他の物理的媒体、またはその組み合わせの形であってもよい。
本明細書において、1つ以上の実施形態のさまざまな機能および特徴の特定の組み合わせを明示的に説明しているが、これらの特徴および機能のその他の組み合わせも同様に可能である。本開示は本明細書において開示される特定の実施例によって限定されず、これらのその他の組み合わせも明確に包含する。

Claims (25)

  1. プロセッサを含む分散ストレージ・ネットワーク(DSN)の分散ストレージおよびタスク(DST)処理ユニットによる実行のための方法であって、前記方法は、
    第1のシステム利用率データを定めるステップと、
    第1の動作要求を受信するステップと、
    前記第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、前記第1の動作要求に対応する第1の認可要求を含む第1の要求キューを生成するステップと、
    前記第1のシステム利用率データに基づいて、前記第1の要求キューを生成するステップに応答して、第1のキュー制限条件を定めるステップと、
    第1の後続動作要求を受信するステップと、
    前記第1の後続動作要求に対応する第1の後続認可要求を前記第1の要求キューに付加するステップと、
    前記第1の要求キューが前記第1のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求を生成するステップと、
    前記第1のバッチ認可要求をアイデンティティおよびアクセス管理(IAM)システムに送信するステップと、
    前記第1の要求キューの前記第1の複数の認可要求に対応する第1の複数の認可応答を前記IAMシステムから受信するステップと、
    認可成功を示す前記第1の複数の認可応答の第1のサブセットを識別するステップと、
    前記第1の複数の認可応答の前記第1のサブセットに対応する複数の動作要求のサブセットの実行を促進するステップと、
    第2のシステム利用率データを定めるステップと、
    第2の動作要求を受信するステップと、
    前記第2のシステム利用率データが前記正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、前記第2の動作要求に対応する第2の認可要求を含む第2の要求キューを生成するステップであって、前記第2の利用率レベルは前記第1の利用率レベルとは異なる、ステップと、
    前記第2のシステム利用率データに基づいて、前記第2の要求キューを生成するステップに応答して第2のキュー制限条件を定めるステップであって、前記第2のキュー制限条件は前記第1のキュー制限条件とは異なる、ステップと、
    第2の後続動作要求を受信するステップと、
    前記第2の後続動作要求に対応する第2の後続認可要求を前記第2の要求キューに付加するステップと、
    前記第2の要求キューが前記第2のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップと、
    前記第2のバッチ認可要求を前記IAMシステムに送信するステップと
    を含む、方法。
  2. 第3のシステム利用率データを定めるステップと、
    第3の動作要求を受信するステップと、
    前記第3のシステム利用率データが正常利用率閾値と比べて好ましいシステム利用率レベルを示していると判定したことに応答して、前記第3の動作要求に対応する第3の認可要求を単一の認可要求として前記IAMシステムに送信することを決定するステップと、
    前記第3の認可要求に対応する単一の認可応答を前記IAMシステムから受信するステップと、
    前記単一の認可応答が認可成功を示すとき、前記第3の動作要求の実行を促進するステップと
    をさらに含む、請求項1に記載の方法。
  3. 認可失敗を示す前記第1の複数の認可応答の第2のサブセットを識別するステップであって、前記第1の複数の認可応答の前記第2のサブセットと、前記第1の複数の認可応答の前記第1のサブセットとの共通部分は空である、ステップと、
    前記第1の複数の認可応答の前記第2のサブセットに対応する前記複数の動作要求の第2のサブセットを送信した複数のリクエスタのサブセットを識別するステップと、
    前記複数のリクエスタの前記サブセットへの送信のための認可失敗通知を生成するステップと
    をさらに含む、請求項1に記載の方法。
  4. 前記IAMシステムによって生成された第1のバッチ認可応答において、前記第1の複数の認可応答が受信される、請求項1に記載の方法。
  5. 前記第1の複数の認可応答の少なくとも1つの第1の応答は第1の時間の第1の送信において受信され、前記第1の複数の認可応答の少なくとも1つの第2の応答は第2の時間の第2の送信において受信され、前記第1の時間は前記第2の時間とは異なる、請求項1に記載の方法。
  6. 前記第1の動作要求はデータ・オブジェクトを示す読取り要求を含み、前記DSNのストレージ・ユニットのセットに保存される符号化データ・スライスのセットを生成するために、前記データ・オブジェクトのデータ・セグメントに対して分散ストレージ・エラー符号化機能が行われており、前記第1の動作要求に対応する認可応答は認可成功を示し、前記第1の動作要求を実行するステップは、
    前記ストレージ・ユニットのセットから読取り閾値数の前記符号化データ・スライスのセットを検索するステップと、
    前記読取り閾値数の前記符号化データ・スライスのセットに対して分散ストレージ・エラー復号機能を行って前記データ・セグメントを再生するステップと
    を含む、請求項1に記載の方法。
  7. 前記DSNのネットワーク・コンポーネントのセットから第1の複数のネットワーク利用率レベルを受信するステップと、
    前記第1の複数のネットワーク利用率レベルに基づいて前記第1のシステム利用率データを生成するステップと、
    前記DSNの前記ネットワーク・コンポーネントのセットから第2の複数のネットワーク利用率レベルを受信するステップと、
    前記第2の複数のネットワーク利用率レベルに基づいて前記第2のシステム利用率データを生成するステップと
    をさらに含む、請求項1に記載の方法。
  8. 前記DSNの前記ネットワーク・コンポーネントのセットは、前記DSNの複数のネットワーク・コンポーネントのサブセットであり、前記方法はさらに、
    前記DSNの前記複数のネットワーク・コンポーネントのうち動作要求の認可に関与しているものを識別することに基づいて前記ネットワーク・コンポーネントのセットを定めるステップと、
    前記DSNの前記ネットワーク・コンポーネントのセットへの送信のための第1の複数のネットワーク利用率レベル要求を生成するステップであって、前記第1の複数のネットワーク利用率レベル要求に応答して前記第1の複数のネットワーク利用率レベルが受信される、ステップと
    を含む、請求項7に記載の方法。
  9. 前記ネットワーク・コンポーネントのセットは、認可要求を前記DST処理ユニットから前記IAMシステムにルーティングするように定められた複数のネットワーク・スイッチを含む、請求項8に記載の方法。
  10. 前記IAMシステムから第1のIAM利用率レベルを受信するステップと、
    前記第1のIAM利用率レベルに基づいて前記第1のシステム利用率データを生成するステップと、
    前記IAMシステムから第2のIAM利用率レベルを受信するステップと、
    前記第2のIAM利用率レベルに基づいて前記第2のシステム利用率データを生成するステップと
    をさらに含み、
    前記第1のIAM利用率レベルおよび前記第2のIAM利用率レベルは、前記IAMシステムに対するネットワーク・トラフィックに基づいて前記IAMによって生成される、請求項1に記載の方法。
  11. 前記第1のキュー制限条件は第1のキュー・サイズ閾値を示し、前記第2のキュー制限条件は第2のキュー・サイズ閾値を示し、前記第1の利用率レベルが前記第2の利用率レベルよりも深刻な過剰利用を示していることに基づいて、前記第1のキュー・サイズ閾値は前記第2のキュー・サイズ閾値よりも大きく、応答において、前記第1のバッチ認可要求の前記第1の複数の認可要求の第1の数は、前記第2のバッチ認可要求の前記第2の複数の認可要求の第2の数よりも大きい、請求項1に記載の方法。
  12. 前記第1のキュー制限条件を定めるステップは、前記第1の利用率レベルに対する機能を行うことによって前記第1のキュー・サイズ閾値を算出するステップを含み、前記第2のキュー制限条件を定めるステップは、前記第2の利用率レベルに対する前記機能を行うことによって前記第2のキュー・サイズ閾値を算出するステップを含み、前記機能は、利用率レベルの単調増加関数としてキュー・サイズ閾値を算出する、請求項11に記載の方法。
  13. 前記第1のキュー制限条件は第1のキュー時間制限を示し、前記第2のキュー制限条件は第2のキュー時間制限を示し、前記第2の利用率レベルが前記第1の利用率レベルよりも深刻でない過剰利用を示していることに基づいて、前記第1のキュー時間制限は前記第2のキュー時間制限よりも短く、応答において、前記第1の要求キューの生成から前記第1のバッチ認可要求の生成までに経過した第1の時間は、前記第2の要求キューの前記生成から前記第2のバッチ認可要求の前記生成までに経過した第2の時間よりも短い、請求項1に記載の方法。
  14. 前記第1のキュー制限条件を定めるステップは、前記第1の利用率レベルに対する機能を行うことによって前記第1のキュー時間制限を算出するステップを含み、前記第2のキュー制限条件を定めるステップは、前記第2の利用率レベルに対する前記機能を行うことによって前記第2のキュー時間制限を算出するステップを含み、前記機能は、利用率レベルの単調増加関数としてキュー時間制限を算出する、請求項13に記載の方法。
  15. 前記第1のキュー制限条件は第1のキュー時間制限を含み、前記第2のキュー制限条件は第2のキュー時間制限を含み、前記第1のキュー時間制限がリクエスタ感知待ち時間要件と比べて好ましくないと判定したことに応答して、前記第2のキュー時間制限は前記第1のキュー時間制限よりも短くなるように定められる、請求項13に記載の方法。
  16. 前記第2のキュー制限条件を定めるステップはさらに、前記第1の複数の認可応答の失敗認可応答の割合が失敗応答閾値と比べて好ましくないと判定したことに基づく、請求項1に記載の方法。
  17. 分散ストレージおよびタスク(DST)処理ユニットの処理システムであって、
    少なくとも1つのプロセッサと、
    動作命令を保存するメモリと
    を含み、前記動作命令は前記少なくとも1つのプロセッサによって実行されるときに、前記処理システムに
    第1のシステム利用率データを定めるステップと、
    第1の動作要求を受信するステップと、
    前記第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、前記第1の動作要求に対応する第1の認可要求を含む第1の要求キューを生成するステップと、
    前記第1のシステム利用率データに基づいて、前記第1の要求キューを生成するステップに応答して、第1のキュー制限条件を定めるステップと、
    第1の後続動作要求を受信するステップと、
    前記第1の後続動作要求に対応する第1の後続認可要求を前記第1の要求キューに付加するステップと、
    前記第1の要求キューが前記第1のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求を生成するステップと、
    前記第1のバッチ認可要求をアイデンティティおよびアクセス管理(IAM)システムに送信するステップと、
    前記第1の要求キューの前記第1の複数の認可要求に対応する第1の複数の認可応答を前記IAMシステムから受信するステップと、
    認可成功を示す前記第1の複数の認可応答の第1のサブセットを識別するステップと、
    前記第1の複数の認可応答の前記第1のサブセットに対応する複数の動作要求のサブセットの実行を促進するステップと、
    第2のシステム利用率データを定めるステップと、
    第2の動作要求を受信するステップと、
    前記第2のシステム利用率データが前記正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、前記第2の動作要求に対応する第2の認可要求を含む第2の要求キューを生成するステップであって、前記第2の利用率レベルは前記第1の利用率レベルとは異なる、ステップと、
    前記第2のシステム利用率データに基づいて、前記第2の要求キューを生成するステップに応答して第2のキュー制限条件を定めるステップであって、前記第2のキュー制限条件は前記第1のキュー制限条件とは異なる、ステップと、
    第2の後続動作要求を受信するステップと、
    前記第2の後続動作要求に対応する第2の後続認可要求を前記第2の要求キューに付加するステップと、
    前記第2の要求キューが前記第2のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップと、
    前記第2のバッチ認可要求を前記IAMシステムに送信するステップと
    を行わせる、処理システム。
  18. 前記動作命令は前記少なくとも1つのプロセッサによって実行されるときに、前記処理システムにさらに
    第3のシステム利用率データを定めるステップと、
    第3の動作要求を受信するステップと、
    前記第3のシステム利用率データが正常利用率閾値と比べて好ましいシステム利用率レベルを示していると判定したことに応答して、前記第3の動作要求に対応する第3の認可要求を単一の認可要求として前記IAMシステムに送信することを決定するステップと、
    前記第3の認可要求に対応する単一の認可応答を前記IAMシステムから受信するステップと、
    前記単一の認可応答が認可成功を示すとき、前記第3の動作要求の実行を促進するステップと
    を行わせる、請求項17に記載の処理システム。
  19. 前記動作命令は前記少なくとも1つのプロセッサによって実行されるときに、前記処理システムにさらに
    ネットワーク・コンポーネントのセットから第1の複数のネットワーク利用率レベルを受信するステップと、
    前記第1の複数のネットワーク利用率レベルに基づいて前記第1のシステム利用率データを生成するステップと、
    前記ネットワーク・コンポーネントのセットから第2の複数のネットワーク利用率レベルを受信するステップと、
    前記第2の複数のネットワーク利用率レベルに基づいて前記第2のシステム利用率データを生成するステップと
    を行わせる、請求項17に記載の処理システム。
  20. 前記動作命令は前記少なくとも1つのプロセッサによって実行されるときに、前記処理システムにさらに
    前記IAMシステムから第1のIAM利用率レベルを受信するステップと、
    前記第1のIAM利用率レベルに基づいて前記第1のシステム利用率データを生成するステップと、
    前記IAMシステムから第2のIAM利用率レベルを受信するステップと、
    前記第2のIAM利用率レベルに基づいて前記第2のシステム利用率データを生成するステップとを行わせ、
    前記第1のIAM利用率レベルおよび前記第2のIAM利用率レベルは、前記IAMシステムに対するネットワーク・トラフィックに基づいて前記IAMによって生成される、請求項17に記載の処理システム。
  21. 前記第1のキュー制限条件は第1のキュー・サイズ閾値を示し、前記第2のキュー制限条件は第2のキュー・サイズ閾値を示し、前記第1の利用率レベルが前記第2の利用率レベルよりも深刻な過剰利用を示していることに基づいて、前記第1のキュー・サイズ閾値は前記第2のキュー・サイズ閾値よりも大きく、応答において、前記第1のバッチ認可要求の前記第1の複数の認可要求の第1の数は、前記第2のバッチ認可要求の前記第2の複数の認可要求の第2の数よりも大きい、請求項17に記載の処理システム。
  22. 前記第1のキュー制限条件は第1のキュー時間制限を示し、前記第2のキュー制限条件は第2のキュー時間制限を示し、前記第2の利用率レベルが前記第1の利用率レベルよりも深刻でない過剰利用を示していることに基づいて、前記第1のキュー時間制限は前記第2のキュー時間制限よりも短く、応答において、前記第1の要求キューの生成から前記第1のバッチ認可要求の生成までに経過した第1の時間は、前記第2の要求キューの前記生成から前記第2のバッチ認可要求の前記生成までに経過した第2の時間よりも短い、請求項17に記載の処理システム。
  23. コンピュータ可読ストレージ媒体であって、
    動作命令を保存する少なくとも1つのメモリ・セクションを含み、前記動作命令は、プロセッサおよびメモリを含む分散ストレージ・ネットワーク(DSN)の処理システムによって実行されるときに、前記処理システムに
    第1のシステム利用率データを定めるステップと、
    第1の動作要求を受信するステップと、
    前記第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、前記第1の動作要求に対応する第1の認可要求を含む第1の要求キューを生成するステップと、
    前記第1のシステム利用率データに基づいて、前記第1の要求キューを生成するステップに応答して、第1のキュー制限条件を定めるステップと、
    第1の後続動作要求を受信するステップと、
    前記第1の後続動作要求に対応する第1の後続認可要求を前記第1の要求キューに付加するステップと、
    前記第1の要求キューが前記第1のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求を生成するステップと、
    前記第1のバッチ認可要求をアイデンティティおよびアクセス管理(IAM)システムに送信するステップと、
    前記第1の要求キューの前記第1の複数の認可要求に対応する第1の複数の認可応答を前記IAMシステムから受信するステップと、
    認可成功を示す前記第1の複数の認可応答の第1のサブセットを識別するステップと、
    前記第1の複数の認可応答の前記第1のサブセットに対応する複数の動作要求のサブセットの実行を促進するステップと、
    第2のシステム利用率データを定めるステップと、
    第2の動作要求を受信するステップと、
    前記第2のシステム利用率データが前記正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、前記第2の動作要求に対応する第2の認可要求を含む第2の要求キューを生成するステップであって、前記第2の利用率レベルは前記第1の利用率レベルとは異なる、ステップと、
    前記第2のシステム利用率データに基づいて、前記第2の要求キューを生成するステップに応答して第2のキュー制限条件を定めるステップであって、前記第2のキュー制限条件は前記第1のキュー制限条件とは異なる、ステップと、
    第2の後続動作要求を受信するステップと、
    前記第2の後続動作要求に対応する第2の後続認可要求を前記第2の要求キューに付加するステップと、
    前記第2の要求キューが前記第2のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップと、
    前記第2のバッチ認可要求を前記IAMシステムに送信するステップと
    を行わせる、コンピュータ可読ストレージ媒体。
  24. プロセッサを含む分散ストレージ・ネットワーク(DSN)の分散ストレージおよびタスク(DST)処理ユニットによる実行のための方法であって、前記方法は、
    第1のシステム利用率データを定めるステップと、
    第1の動作要求を受信するステップと、
    前記第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、前記第1の動作要求に対応する第1の認可要求を含む第1の要求キューを生成するステップと、
    前記第1のシステム利用率データに基づいて、前記第1の要求キューを生成するステップに応答して、第1のキュー制限条件を定めるステップと、
    第1の後続動作要求を受信するステップと、
    前記第1の後続動作要求に対応する第1の後続認可要求を前記第1の要求キューに付加するステップと、
    前記第1の要求キューが前記第1のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求を生成するステップと、
    前記第1のバッチ認可要求をアイデンティティおよびアクセス管理(IAM)システムに送信するステップと、
    前記第1の要求キューの前記第1の複数の認可要求に対応する第1の複数の認可応答を前記IAMシステムから受信するステップと、
    認可成功を示す前記第1の複数の認可応答の第1のサブセットを識別するステップと、
    前記第1の複数の認可応答の前記第1のサブセットに対応する複数の動作要求のサブセットの実行を促進するステップと、
    第2のシステム利用率データを定めるステップと、
    第2の動作要求を受信するステップと、
    前記第2のシステム利用率データが前記正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、前記第2の動作要求に対応する第2の認可要求を含む第2の要求キューを生成するステップであって、前記第2の利用率レベルは前記第1の利用率レベルとは異なる、ステップと、
    前記第2のシステム利用率データに基づいて、前記第2の要求キューを生成するステップに応答して第2のキュー制限条件を定めるステップであって、前記第2のキュー制限条件は前記第1のキュー制限条件とは異なる、ステップと、
    第2の後続動作要求を受信するステップと、
    前記第2の後続動作要求に対応する第2の後続認可要求を前記第2の要求キューに付加するステップと、
    第3のシステム利用率データを定めるステップと、
    前記第3のシステム利用率データに基づいて、第3のキュー制限条件を定めるステップであって、前記第3のキュー制限条件は前記第2のキュー制限条件とは異なる、ステップと、
    前記第3のキュー制限条件を定めるステップに応答し、かつ前記第2の要求キューが前記第3のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップであって、前記第2の要求キューは前記第2のキュー制限条件と比べて好ましい、ステップと、
    前記第2のバッチ認可要求を前記IAMシステムに送信するステップと
    を含む、方法。
  25. 分散ストレージおよびタスク(DST)処理ユニットの処理システムであって、
    少なくとも1つのプロセッサと、
    動作命令を保存するメモリと
    を含み、前記動作命令は前記少なくとも1つのプロセッサによって実行されるときに、前記処理システムに
    第1のシステム利用率データを定めるステップと、
    第1の動作要求を受信するステップと、
    前記第1のシステム利用率データが正常利用率閾値と比べて好ましくない第1の利用率レベルを示していると判定したことに応答して、前記第1の動作要求に対応する第1の認可要求を含む第1の要求キューを生成するステップと、
    前記第1のシステム利用率データに基づいて、前記第1の要求キューを生成するステップに応答して、第1のキュー制限条件を定めるステップと、
    第1の後続動作要求を受信するステップと、
    前記第1の後続動作要求に対応する第1の後続認可要求を前記第1の要求キューに付加するステップと、
    前記第1の要求キューが前記第1のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第1の要求キューの第1の複数の認可要求を含む第1のバッチ認可要求を生成するステップと、
    前記第1のバッチ認可要求をアイデンティティおよびアクセス管理(IAM)システムに送信するステップと、
    前記第1の要求キューの前記第1の複数の認可要求に対応する第1の複数の認可応答を前記IAMシステムから受信するステップと、
    認可成功を示す前記第1の複数の認可応答の第1のサブセットを識別するステップと、
    前記第1の複数の認可応答の前記第1のサブセットに対応する複数の動作要求のサブセットの実行を促進するステップと、
    第2のシステム利用率データを定めるステップと、
    第2の動作要求を受信するステップと、
    前記第2のシステム利用率データが前記正常利用率閾値と比べて好ましくない第2の利用率レベルを示していると判定したことに応答して、前記第2の動作要求に対応する第2の認可要求を含む第2の要求キューを生成するステップであって、前記第2の利用率レベルは前記第1の利用率レベルとは異なる、ステップと、
    前記第2のシステム利用率データに基づいて、前記第2の要求キューを生成するステップに応答して第2のキュー制限条件を定めるステップであって、前記第2のキュー制限条件は前記第1のキュー制限条件とは異なる、ステップと、
    第2の後続動作要求を受信するステップと、
    前記第2の後続動作要求に対応する第2の後続認可要求を前記第2の要求キューに付加するステップと、
    第3のシステム利用率データを定めるステップと、
    前記第3のシステム利用率データに基づいて、第3のキュー制限条件を定めるステップであって、前記第3のキュー制限条件は前記第2のキュー制限条件とは異なる、ステップと、
    前記第3のキュー制限条件を定めるステップに応答し、かつ前記第2の要求キューが前記第3のキュー制限条件と比べて好ましくないと判定したことに応答して、前記第2の要求キューの第2の複数の認可要求を含む第2のバッチ認可要求を生成するステップであって、前記第2の要求キューは前記第2のキュー制限条件と比べて好ましい、ステップと、
    前記第2のバッチ認可要求を前記IAMシステムに送信するステップと
    を行わせる、処理システム。
JP2020542135A 2018-02-28 2019-02-07 分散ストレージ・ネットワークにおける動的認可バッチ処理 Active JP7167174B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/907,785 US10592340B2 (en) 2018-02-28 2018-02-28 Dynamic authorization batching in a dispersed storage network
US15/907,785 2018-02-28
PCT/IB2019/050992 WO2019166895A1 (en) 2018-02-28 2019-02-07 Dynamic authorization batching in a dispersed storage network

Publications (2)

Publication Number Publication Date
JP2021515295A true JP2021515295A (ja) 2021-06-17
JP7167174B2 JP7167174B2 (ja) 2022-11-08

Family

ID=67685928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020542135A Active JP7167174B2 (ja) 2018-02-28 2019-02-07 分散ストレージ・ネットワークにおける動的認可バッチ処理

Country Status (6)

Country Link
US (2) US10592340B2 (ja)
JP (1) JP7167174B2 (ja)
CN (1) CN111788560B (ja)
DE (1) DE112019000309B4 (ja)
GB (1) GB2584065B (ja)
WO (1) WO2019166895A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592340B2 (en) 2018-02-28 2020-03-17 International Business Machines Corporation Dynamic authorization batching in a dispersed storage network
KR102654689B1 (ko) * 2019-05-24 2024-04-03 삼성에스디에스 주식회사 트랜잭션 실패 확률을 고려한 트랜잭션 가속 처리 장치 및 그 방법
US11138328B2 (en) * 2019-05-30 2021-10-05 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11153315B2 (en) 2019-05-30 2021-10-19 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11165777B2 (en) 2019-05-30 2021-11-02 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
KR20200139033A (ko) * 2019-06-03 2020-12-11 삼성에스디에스 주식회사 트랜잭션 가속 처리 장치 및 그 방법
CN113783786A (zh) * 2020-06-10 2021-12-10 深圳市中兴微电子技术有限公司 一种交换网络流量控制方法、设备及储存介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211549A (ja) * 2009-03-11 2010-09-24 Fujitsu Ltd 管理プログラム、管理装置および管理方法
JP2017515215A (ja) * 2014-03-31 2017-06-08 アマゾン・テクノロジーズ・インコーポレーテッド 分散格納システムにおける名前空間管理

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026758B2 (en) 2005-09-30 2015-05-05 Cleversafe, Inc. Memory device utilization in a dispersed storage network
US9632722B2 (en) * 2010-05-19 2017-04-25 International Business Machines Corporation Balancing storage unit utilization within a dispersed storage network
US8782086B2 (en) 2009-08-27 2014-07-15 Cleversafe, Inc. Updating dispersed storage network access control information
US8554994B2 (en) 2009-09-29 2013-10-08 Cleversafe, Inc. Distributed storage network utilizing memory stripes
US8689354B2 (en) 2009-09-29 2014-04-01 Cleversafe, Inc. Method and apparatus for accessing secure data in a dispersed storage system
US9369526B2 (en) 2009-12-29 2016-06-14 International Business Machines Corporation Distributed storage time synchronization based on retrieval delay
US10353774B2 (en) 2015-10-30 2019-07-16 International Business Machines Corporation Utilizing storage unit latency data in a dispersed storage network
US8549579B2 (en) * 2011-07-06 2013-10-01 International Business Machines Corporation Dynamic data-protection policies within a request-reply message queuing environment
US8782491B2 (en) 2011-08-17 2014-07-15 Cleversafe, Inc. Detecting intentional corruption of data in a dispersed storage network
US9430286B2 (en) 2011-12-12 2016-08-30 International Business Machines Corporation Authorizing distributed task processing in a distributed storage network
SG11201403482TA (en) * 2011-12-21 2014-07-30 Ssh Comm Security Oyj Automated access, key, certificate, and credential management
US9736034B2 (en) * 2012-09-19 2017-08-15 Oracle International Corporation System and method for small batching processing of usage requests
US10241866B2 (en) * 2013-01-04 2019-03-26 International Business Machines Corporation Allocating rebuilding queue entries in a dispersed storage network
US9043499B2 (en) 2013-02-05 2015-05-26 Cleversafe, Inc. Modifying a dispersed storage network memory data access response plan
US9405609B2 (en) 2013-05-22 2016-08-02 International Business Machines Corporation Storing data in accordance with a performance threshold
CN103491075B (zh) 2013-09-09 2016-07-06 中国科学院计算机网络信息中心 动态调整dns递归服务器缓存资源记录的方法和系统
US9612882B2 (en) 2014-04-30 2017-04-04 International Business Machines Corporation Retrieving multi-generational stored data in a dispersed storage network
US9363255B2 (en) * 2014-06-04 2016-06-07 Sonos, Inc. Cloud queue playhead
US10466914B2 (en) 2015-08-31 2019-11-05 Pure Storage, Inc. Verifying authorized access in a dispersed storage network
US10007444B2 (en) 2016-04-29 2018-06-26 International Business Machines Corporation Batching access requests in a dispersed storage network
US9838377B1 (en) * 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10878079B2 (en) * 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10534666B2 (en) * 2016-07-14 2020-01-14 International Business Machines Corporation Determining storage requirements based on licensing right in a dispersed storage network
US10592340B2 (en) 2018-02-28 2020-03-17 International Business Machines Corporation Dynamic authorization batching in a dispersed storage network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211549A (ja) * 2009-03-11 2010-09-24 Fujitsu Ltd 管理プログラム、管理装置および管理方法
JP2017515215A (ja) * 2014-03-31 2017-06-08 アマゾン・テクノロジーズ・インコーポレーテッド 分散格納システムにおける名前空間管理

Also Published As

Publication number Publication date
US10592340B2 (en) 2020-03-17
US20190266052A1 (en) 2019-08-29
WO2019166895A1 (en) 2019-09-06
CN111788560B (zh) 2024-01-30
US20190340073A1 (en) 2019-11-07
DE112019000309B4 (de) 2021-11-11
JP7167174B2 (ja) 2022-11-08
GB2584065A (en) 2020-11-18
GB2584065B (en) 2021-06-16
US10901849B2 (en) 2021-01-26
DE112019000309T5 (de) 2020-10-22
GB202014955D0 (en) 2020-11-04
CN111788560A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
JP6955571B2 (ja) 分散型ストレージ・ネットワーク内のゾーンにおけるデータの順次記憶
JP7167174B2 (ja) 分散ストレージ・ネットワークにおける動的認可バッチ処理
US10901618B1 (en) Storage unit (SU) operative within non-disruptive and performant migration
US10735545B2 (en) Routing vault access requests in a dispersed storage network
US20190065316A1 (en) Utilizing request deadlines in a dispersed storage network
JP2019536125A (ja) 標準及び非標準分散ストレージ・ネットワーク・データ・アクセスの方法およびコンピュータ可読メモリ
JP6951410B2 (ja) 所望のストレージ・ユニット・セットを特定するためのディストリビューテッド・アグリーメント・プロトコルの操作
US20230328136A1 (en) Rebuilding Encoded Data Slices for Rotating Active and Inactive Storage Units
JP2018524705A (ja) データ転送中にデータアクセス要求を処理するための方法及びシステム
US11113009B1 (en) Computing device facilitating prioritization of task execution within a distributed storage network (DSN)
US20170118288A1 (en) Modifying information dispersal algorithm configurations in a dispersed storage network
US10942684B2 (en) Assigning prioritized rebuild resources optimally
US10642687B2 (en) Pessimistic reads and other smart-read enhancements with synchronized vaults
US11010093B2 (en) Delegating an access request to address load imbalances in a dispersed storage network
US20220261155A1 (en) Utilizing Memories of Different Operational Speeds in a Vast Storage Network
US10503591B2 (en) Selecting retrieval locations in a dispersed storage network
US10585748B2 (en) Scalable cloud—assigning scores to requesters and treating requests differently based on those scores
US20170131922A1 (en) Memory device down-time

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221026

R150 Certificate of patent or registration of utility model

Ref document number: 7167174

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150