(57)【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
実行可能な命令で構成される１つ以上のコンピュータシステムの制御下で、
データ記憶システムによって記憶されたデータオブジェクトに対応する第１の識別子を含む第１の電子メッセージを受け取ることと、
前記第１の電子メッセージの受け取りに応答して、前記データオブジェクトに関連するジョブを開始して、前記第１の電子メッセージに応答して前記ジョブに対応する第２の識別子を提供することと、
前記第１の電子メッセージを受け取った後の時点で、前記第２の識別子を含む第２の電子メッセージを受け取ることと、
前記第２の電子メッセージの受け取りに応答して、前記ジョブに関連付けられた情報を提供することと、を含み、
前記第１の電子メッセージが、前記データ記憶システムの顧客の顧客コンピュータシステムに由来し、
前記第１の電子メッセージが、さらに、前記顧客コンピュータシステムによって提供されたメタデータを含み、
前記ジョブに関連付けられた前記情報が、さらに、前記メタデータの少なくとも一部分を含む、コンピュータ実装方法。
【請求項２】
前記データオブジェクトが、論理データコンテナに格納され、
前記第１の識別子が、前記論理データコンテナの識別子である、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記ジョブに関連付けられた前記情報が、各々が前記論理データコンテナに格納された１つ以上のデータオブジェクトを識別する１つ以上の識別子の集合体を含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記ジョブに関連付けられた前記情報が、前記論理データコンテナに格納された前記データオブジェクトに関連して遂行された１つ以上のアクションのログを含む、請求項２に記載のコンピュータ実装方法。
【請求項５】
データ記憶サービスにアクセスすることを提供するためのシステムであって、
１つ以上のプロセッサと、
メモリであって、前記１つ以上のプロセッサによって実行されるとき、前記システムに少なくとも、
前記データ記憶サービスによって記憶されたデータの識別子を符号化する電子メッセージを受け取り、応答して、ジョブを開始して、前記開始されたジョブに対応するジョブ識別子を提供し、
前記開始されたジョブに対応する前記提供されたジョブ識別子を含む電子要求を受け取り、応答して、前記ジョブ識別子に対応する情報を提供するように構成された、
アプリケーションプログラミングインターフェースサブシステムを実施させる、実行可能な命令を含む、メモリと、を備え、
前記データ記憶サービスが、サービスプロバイダによって提供されたデータサービスの集合体の一つであり、
前記受け取られた電子メッセージが、さらに、前記データサービスの集合体の別のサービスにデータを伝送する要求を含み、
前記電子要求に応答して前記ジョブ識別子に対応する前記情報を提供することが、さらに、他方のサービスに、前記識別子に対応するデータを伝送することを含む、システム。
【請求項６】
データ記憶サービスにアクセスすることを提供するためのシステムであって、
１つ以上のプロセッサと、
メモリであって、前記１つ以上のプロセッサによって実行されるとき、前記システムに少なくとも、
前記データ記憶サービスによって記憶されたデータの識別子を符号化する電子メッセージを受け取り、応答して、ジョブを開始して、前記開始されたジョブに対応するジョブ識別子を提供し、
前記開始されたジョブに対応する前記提供されたジョブ識別子を含む電子要求を受け取り、応答して、前記ジョブ識別子に対応する情報を提供するように構成された、
アプリケーションプログラミングインターフェースサブシステムを実施させる、実行可能な命令を含む、メモリと、を備え、
前記メモリが、前記１つ以上のプロセッサによって実行されるとき、前記システムに、
前記開始されたジョブに対応する前記ジョブ識別子に関連付けられた永続性記憶装置から前記データのうちの少なくとも幾つかを獲得することと、
前記獲得されたデータの少なくとも一部分を提供することと、を行わせる実行可能な命令をさらに含む、システム。
【請求項７】
データ記憶サービスにアクセスすることを提供するためのシステムであって、
１つ以上のプロセッサと、
メモリであって、前記１つ以上のプロセッサによって実行されるとき、前記システムに少なくとも、
前記データ記憶サービスによって記憶されたデータの識別子を符号化する電子メッセージを受け取り、応答して、ジョブを開始して、前記開始されたジョブに対応するジョブ識別子を提供し、
前記開始されたジョブに対応する前記提供されたジョブ識別子を含む電子要求を受け取り、応答して、前記ジョブ識別子に対応する情報を提供するように構成された、
アプリケーションプログラミングインターフェースサブシステムを実施させる、実行可能な命令を含む、メモリと、を備え、
前記メモリが、前記１つ以上のプロセッサによって実行されるとき、前記システムに、
前記開始されたジョブに対応する前記ジョブ識別子に関連付けられた永続性記憶装置から前記データのうちの少なくとも幾つかを獲得することと、
前記獲得されたデータの少なくとも一部分を提供することと、を行わせる実行可能な命令をさらに含み、
前記データの前記少なくとも一部分が、前記データの真のサブセットであり、
前記真のサブセットが破損しているかどうかを判定するように使用可能なデータ確証値を提供することである、システム。
【請求項８】
データ記憶サービスにアクセスすることを提供するためのシステムであって、
１つ以上のプロセッサと、
メモリであって、前記１つ以上のプロセッサによって実行されるとき、前記システムに少なくとも、
前記データ記憶サービスによって記憶されたデータの識別子を符号化する電子メッセージを受け取り、応答して、ジョブを開始して、前記開始されたジョブに対応するジョブ識別子を提供し、
前記開始されたジョブに対応する前記提供されたジョブ識別子を含む電子要求を受け取り、応答して、前記ジョブ識別子に対応する情報を提供するように構成された、
アプリケーションプログラミングインターフェースサブシステムを実施させる、実行可能な命令を含む、メモリと、を備え、
前記データのうちの少なくとも１つが、１つ以上のデータオブジェクトを含む論理データコンテナを含み、
前記電子要求への前記応答が、前記１つ以上のデータオブジェクトを識別する情報を含む前記論理データコンテナのインベントリを識別し、
前記受け取られた電子メッセージが、別のコンピュータシステムによって提供されたメタデータを含み、
前記電子要求への前記応答が、前記メタデータを含む、システム。
【請求項９】
前記データのうちの少なくとも１つが、１つ以上のデータオブジェクトを格納する論理データコンテナである、請求項５から８のいずれか一項に記載のシステム。
【請求項１０】
前記アプリケーションプログラミングインターフェースサブシステムが、前記開始されたジョブに関連して、通知のためのパラメータを受け取り、
前記受け取られたパラメータに従って通知を伝送させるように更に構成される、請求項５から８のいずれか一項に記載のシステム。
【請求項１１】
前記アプリケーションプログラミングインターフェースサブシステムが、前記ジョブ識別子を含むジョブステータス要求を受け取り、前記電子要求に応答して、ジョブステータス情報を提供させるように更に構成される、請求項１０に記載のシステム。
【請求項１２】
前記電子要求への前記応答が、前記開始されたジョブのためのステータス情報を含む、請求項５から８のいずれか一項に記載のシステム。
【請求項１３】
システムであって、
１つ以上のプロセッサと、
メモリであって、前記１つ以上のプロセッサによって実行されるとき、前記システムに、
記憶システムによって記憶されたデータに対応する第１の識別子を含む第１の電子メッセージを受け取ることと、
前記第１の電子メッセージの受け取りに応答して、前記データに関連するジョブを開始することと、
前記第１の電子メッセージを受け取った後の時点で、前記ジョブに対応する第２の識別子を含む第２の電子メッセージを受け取ることであって、前記第２の識別子は、前記ジョブに関連付けられ、前記第１の識別子に対応する前記データを検索することに用いることができる、ことと、
前記第２の電子メッセージの受け取りに応答して、前記ジョブに関連付けられた情報を提供することと、
前記第２の識別子を含む第３の電子メッセージを受け取ることと、
前記第３の電子メッセージの受け取りに応答して、ダウンロードのために前記データの少なくとも一部を提供することと、
を実行させる実行可能な命令を記憶する、メモリと、
を備え、
前記第１の電子メッセージが、前記記憶システムの顧客の顧客コンピュータシステムに由来し、
前記第１の電子メッセージが、前記顧客コンピュータシステムによって提供されたメタデータをさらに含み、
前記ジョブに関連付けられた前記情報が、前記メタデータの少なくとも一部分をさらに含む、システム。
【請求項１４】
コンピュータ実装方法であって、
記憶システムによって記憶されたデータに対応する第１の識別子を含む第１の電子メッセージを受け取ることと、
前記データに関連するジョブを開始することであって、第２の識別子は、前記ジョブに関連付けられ、前記ジョブに関連付けられた情報と前記記憶システムによって記憶されたデータとを検索することに用いることができる、ことと、
前記第２の識別子を含む第２の電子メッセージを受け取ることと、
前記第２の電子メッセージの受け取りの結果として、前記記憶システムによって記憶されたデータが前記ジョブと関連付けられていることを判定することと、
前記判定された前記記憶システムによって記憶されたデータを提供することと、
を含み、
前記第１の電子メッセージが、前記記憶システムの顧客の顧客コンピュータシステムに由来し、
前記第１の電子メッセージが、前記顧客コンピュータシステムによって提供されたメタデータをさらに含み、
前記ジョブに関連付けられた前記情報が、前記メタデータの少なくとも一部分をさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１２年８月８日に出願された発明の名称「ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＡＰＰＬＩＣＡＴＩＯＮ  ＰＲＯＧＲＡＭＭＩＮＧ  ＩＮＴＥＲＦＡＣＥ」の米国特許出願第１３／５７０，０７４号（代理人整理番号９０２０４−８４６３７８（０５６２００ＵＳ）からの優先権およびその利益を主張するものである。本願は、本明細書と同時に出願され、発明の名称が「ＬＯＧ−ＢＡＳＥＤ  ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＯＮ  ＳＥＱＵＥＮＴＩＡＬＬＹ  ＷＲＩＴＴＥＮ  ＭＥＤＩＡ」である同時係属中の米国特許出願第１３／５６９，９８４号（代理人整理番号９０２０４−８４１８０４（０５４８００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＭＡＮＡＧＥＭＥＮＴ  ＦＯＲ  ＳＥＱＵＥＮＴＩＡＬＬＹ  ＷＲＩＴＴＥＮ  ＭＥＤＩＡ」である同時係属中の米国特許出願第１３／５７０，０５７号（代理人整理番号９０２０４−８４１８１７（０５５３００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＤＡＴＡ  ＷＲＩＴＥ  ＣＡＣＨＩＮＧ  ＦＯＲ  ＳＥＱＵＥＮＴＩＡＬＬＹ  ＷＲＩＴＴＥＮ  ＭＥＤＩＡ」である同時係属中の米国特許出願第１３／５７０，００５号（代理人整理番号９０２０４−８４１８１２（０５５０００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＰＲＯＧＲＡＭＭＡＢＬＥ  ＣＨＥＣＫＳＵＭ  ＣＡＬＣＵＬＡＴＩＯＮＳ  ＯＮ  ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＤＥＶＩＣＥＳ」である同時係属中の米国特許出願第１３／５７０，０３０号（代理人整理番号９０２０４−８４１８１３（０５５２００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＡＲＣＨＩＶＡＬ  ＤＡＴＡ  ＩＤＥＮＴＩＦＩＣＡＴＩＯＮ」である同時係属中の米国特許出願第１３／５６９，９９４号（代理人整理番号  ９０２０４−８４１８０７  （０５４３００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＡＲＣＨＩＶＡＬ  ＤＡＴＡ  ＯＲＧＡＮＩＺＡＴＩＯＮ  ＡＮＤ  ＭＡＮＡＧＥＭＥＮＴ」である同時係属中の米国特許出願第１３／５７０，０２９号（代理人整理番号９０２０４−８４１８０８（０５４４００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＡＲＣＨＩＶＡＬ  ＤＡＴＡ  ＦＬＯＷ  ＭＡＮＡＧＥＭＥＮＴ」である同時係属中の米国特許出願第１３／５７０，０９２号（代理人整理番号９０２０４−８４１８０９（０５４５００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＡＲＣＨＩＶＡＬ  ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭ」である同時係属中の米国特許出願第１３／５７０，０８８号（代理人整理番号９０２０４−８４１８０６（０５４０００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＰＯＷＥＲ  ＭＡＮＡＧＥＭＥＮＴ」である同時係属中の特許出願第１３／５６９，５９１号（代理人整理番号９０２０４−８４１８１６（０５４９００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＳＰＡＣＥ  ＭＡＮＡＧＥＭＥＮＴ」である同時係属中の特許出願第１３／５６９，７１４号（代理人整理番号９０２０４−８４６２０２（０５６１００ＵＳ））、本明細書と同時に出願され、発明の名称が「ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＩＮＶＥ��ＴＯＲＹ  ＩＮＤＥＸＩＮＧ」である同時係属中の特許出願第１３／５６９，６６５号（代理人整理番号９０２０４−８４１８１１（０５４７００ＵＳ））、および本明細書と同時に出願され、発明の名称が「ＤＡＴＡ  ＳＴＯＲＡＧＥ  ＩＮＴＥＧＲＩＴＹ  ＶＡＬＩＤＡＴＩＯＮ」である同時係属中の特許出願第１３／５７０，１５１号（代理人整理番号９０２０４−８４１８１０（０５４６００ＵＳ））の完全な開示をその全ての目的のために参照により組み込む。
【背景技術】
【０００２】
情報のデジタル化の増加に伴い、耐久性があり信頼性があるアーカイブデータ記憶サービスに対する需要もまた増加している。アーカイブデータは、政府、事業所、図書館等により維持されるアーカイブ記録、バックアップファイル、メディアファイル等を含み得る。データのアーカイブ記憶は、いくつかの課題を提示している。例えば、記憶されるデータの潜在的に膨大な量は、多くの従来の技術を用いては法外に費用がかかるものとなり得る。また、アーカイブデータのための記憶の耐久性および信頼性が比較的高いことが多くの場合所望され、それがデータを記憶するために必要とされるリソースの量を更に増加させ、それによって費用が増加する。磁気テープ等の従来の技術は、その低費用のためデータバックアップシステムにおいて伝統的に使用されてきた。しかしながら、テープベースおよび他の記憶システムは、多くの場合、データ記憶システムの安全性、信頼性、および拡張性などを向上する、データ圧縮、エラー訂正等の記憶技術における進歩を十分に活用できていない。
【図面の簡単な説明】
【０００３】
以下、本開示に従う種々の実施態様を、図面を参照して説明する。
【図１】少なくとも１つの実施形態に従う、顧客とデータ記憶サービスとの間の通信を示す環境を例示する図である。
【図２】少なくとも１つの実施形態に従う、アーカイブデータ記憶サービスが実装され得る例示的な環境を例示する図である。
【図３】少なくとも１つの実施形態に従う、アーカイブデータ記憶システムの構成要素が接続され得る、相互接続ネットワークを例示する図である。
【図４】少なくとも１つの実施形態に従う、アーカイブデータ記憶システムの構成要素が接続され得る、相互接続ネットワークを例示する図である。
【図５】少なくとも１つの実施形態に従う、データを記憶するための例示的な過程を例示する図である。
【図６】少なくとも１つの実施形態に従う、データを検索するための例示的な過程を例示する図である。
【図７】少なくとも１つの実施形態に従う、データを削除するための例示的な過程を例示する図である。
【図８】少なくとも１つの実施形態に従う、データをアップロードすることおよび応答のための例示的なＡＰＩ呼び出しの図表示を例示する。
【図９】少なくとも１つの実施形態に従う、ジョブおよび応答を開始するための例示的なＡＰＩ呼び出しのグラフィカル表示を例示する。
【図１０】少なくとも１つの実施形態に従って、ジョブおよび応答についての情報を獲得するための例示的なＡＰＩ呼び出しの図表示を例示する。
【図１１】少なくとも１つの実施形態に従う、ジョブおよび応答の出力を獲得するための例示的なＡＰＩ呼び出しの図表示を例示する。
【図１２】少なくとも１つの実施形態に従う、データ記憶サービスのＡＰＩを用いてデータオブジェクトを獲得するための過程の図表示を例示する。
【図１３】少なくとも１つの実施形態に従う、データ記憶サービスのＡＰＩを用いてデータオブジェクトを獲得するための過程の図表示を例示する。
【図１４】少なくとも１つの実施形態に従う、データ記憶サービスのＡＰＩを用いてデータオブジェクトのインベントリを獲得するための過程の図表示を例示する。
【図１５】少なくとも１つの実施形態に従う、データ記憶サービスのＡＰＩを用いてアクセス／ミューテーションログを獲得するための過程の図表示を例示する。
【図１６】種々の実施形態を実装することができる環境を例示する図である。
【発明を実施するための形態】
【０００４】
以下の説明では、種々の実施形態が説明される。説明の目的で、実施形態の十分な理解を提供するように具体的な構成および詳細が説明される。しかしながら、実施形態が具体的な詳細なしに実施され得ることもまた当業者に明白である。更には、周知の特徴は、説明されている実施形態を不明瞭にしないように省略または簡略化され得る。
【０００５】
本開示の実施形態は、アーカイブデータ記憶サービスのようなデータ記憶サービスとの対話処理を可能にするための技術に関する。一実施形態では、データ記憶サービスは、データ記憶サービスの種々の性能にアクセスするようにデータ記憶サービスの顧客によって使用可能であるアプリケーションプログラミングインターフェース（ＡＰＩ）を通じてアクセス可能である。顧客は、例えば、データを記憶し、記憶されたデータを検索し、データに関連する他の操作を遂行するようにＡＰＩ使用し得る。
【０００６】
一実施形態では、データ記憶サービスのＡＰＩは、ユーザが記憶のためにデータをアップロードすることを可能にする。ＡＰＩ呼び出しは、例えば、その記憶のためのパラメータと一緒に記憶されるデータを含み得る。ＡＰＩは、例えば、データが利用可能なアップロード帯域幅に対して大きい場合に失敗の可能性を減少させるように、データがパーツに分けてアップロードされることも可能にし得る。同様に、ＡＰＩはまた、全体としてまたはパーツに分けてのいずれでも、データがダウンロードされることを可能にし得る。パーツに分ける場合、伝送は、パーツのためおよび完全なデータのためのチェックサムまたは他のデータ確証値を含み得る。この方式で、パーツがまとめられたときに完全なデータが検査され得るだけではなく、個別のパーツも検査され得、その結果、パーツの伝送が失敗した場合でも、伝送が、成功裏に伝送されたパーツを再伝送することなく再試行され得る。結果として、データのリソース集約型反復伝送（ｒｅｓｏｕｒｃｅ  ｉｎｔｅｎｓｉｖｅ  ｒｅｐｅａｔ  ｔｒａｎｓｍｉｓｓｉｏｎ）は、回避され得る。
【０００７】
一実施形態では、データ記憶サービスは、あるデータを非同期に提供する。例えば、アーカイブまたは他のデータ記憶サービスは、効率性および／または費用に関する様々な理由のため、非同期方式で要求されたデータを提供し得る。したがって、一実施形態では、データ記憶サービスのためのＡＰＩは、データ記憶サービスがデータを提供することを要求するようにユーザがＡＰＩ呼び出しを行うことを可能にする。応答して、データ記憶サービスは、要求元端末に、要求されたデータの検索に対応するジョブの識別子を提供し得る。データ記憶サービスは、要求されたデータを１つの記憶場所から獲得して、顧客にとってよりアクセスしやすい別の記憶場所に置いてもよい。ジョブが完了すると、例えば、データが、ステージングのためによりアクセスしやすいデータ記憶場所に移動されると、ジョブの識別子が、データのうちのいくつかまたは全てをダウンロードするためにＡＰＩ呼び出しにおいて提供され得る。
【０００８】
顧客は、１つ以上の方法でジョブ完了に気付き得る。例えば、ＡＰＩ呼び出しは、ジョブが完了したかまたは失敗したときのような、ジョブに関する通知のためのパラメータを指定し得る。顧客は、ジョブ完了が終了すると通知を受け取り得る。通知は、データを検索するようにＡＰＩ呼び出しを提出したコンピュータシステムによって、および／または、電子メールアドレス、インターネットプロトコル（ＩＰ）アドレス等によるもの等の、通知パラメータにおいて指定された別のコンピュータシステムによって、受け取られ得る。顧客は、１つ以上のジョブのステータスのためのデータ記憶サービスをポーリングするようにＡＰＩ呼び出しも提出し得る。そのようなＡＰＩ呼び出しは、１つ以上のジョブ識別子を含み得る。そのような呼び出しに応答して、データ記憶サービスは、呼び出しの識別子によって指定されたジョブのステータスを提供し得る。ステータスは、例えば、進行中のジョブが（場合により失敗の理由についての情報と共に）失敗したこと、ジョブが、完了されたこと、および／または他のステータスを指定し得る。顧客はまた、いくつかの実施形態では、ジョブが時間の経過後に完了したと仮定し得る。データ記憶サービスは、例えば、２４時間等(他の時間も本開示の範囲内である)の指定された期間中にあるジョブが完了することを指定するサービスレベル契約（ＳＬＡ）に準拠し得る。そのようなＳＬＡと共に（または場合によってはそれを用いずに）、顧客は、要求されたデータのようなジョブの出力を要求する前に適切な期間待機し得る。出力が用意されていない場合、要求は失敗に終わり得る。
【０００９】
通知は、ジョブ完了以外の事象にも提供され得る。例えば、一実施形態では、顧客は、ＡＰＩ呼び出しを介して、データ記憶サービスによって記憶されたデータのアクセスおよびミューテーションに関連する種々の通知を登録することができる。データ記憶サービスは、データアクセスおよびミューテーションに関する１つ以上のログを維持し得る。サービスは、それ自体のパラメータおよび／または顧客によって提供されたパラメータに従って、ログを維持し得る。顧客は、例えば、記憶システムが事象の記録を取るべきときのためのパラメータを、少なくとも部分的に、指定するようにＡＰＩ呼び出しを提供し得る。顧客は、例えば、ログが、記憶システムによって記憶されたメタデータから生成される頻度を指定し得る。顧客は、付加的にまたは代わりに他のパラメータを指定し得る。そのようなパラメータは、記録が取られるべき（例えば書き込みまたは削除は記録が取られるが、読み取りは記録が取られる必要がない）、一定の数の事象が起こったおよび／または一定の量のデータが変更された後にログが生成されるべきである等の、ある事象を指定し得る。ログは、データにアクセスするようにＡＰＩ呼び出しを提出したコンピュータシステムのＩＰアドレスのような、多数の種類のデータ、試みられた操作、操作が成功したか否か等を記録し得る。顧客は、生成されたログに関連して遂行され得るアクションも指定し得る。顧客は、例えば、異なる種類のデータ記憶サービスおよび／またはプログラムで管理されたコンピュータシステムサービス等にログを伝送する別のサービスを少なくとも部分的に指定するように、ＡＰＩ呼び出しを使用し得る。
【００１０】
いくつかの実施形態では、顧客は、ジョブに関連付けられた顧客自身の情報を提供することができる。顧客は、例えば、データ検索ジョブのようなジョブを開始するようにＡＰＩ呼び出しを提出し得る。ＡＰＩ呼び出しのパラメータは、顧客が関連付けられたジョブを開始させるように所望する情報を含み得る。データ記憶サービスは、例えば、ジョブが完了したときの通知において、および／またはジョブの出力を獲得するＡＰＩ呼び出しへの応答と共に、ジョブに関連して後に提供するため、ジョブとデータを関連付け得る。そのような顧客によって提供された情報は、種々の方法で使用され得る。例えば、顧客によって提供された情報は、データがダウンロードされると顧客がデータを挿入することを望むデータベースのためのデータベースキーを含み得る。別の実施例として、顧客によって提供された情報は、顧客コンピュータシステムに特定のアクションを遂行させる顧客コンピュータシステムによって認識可能なコンピュータシステムコードまたは他の情報を含み得る。いくつかの実施形態では、顧客によって提供されたデータは、記憶サービスの視点から、無作為であり得、それによって顧客視点から柔軟性と拡張性を提供する。
【００１１】
他の変形例も、本開示の範囲内であるとみなされる。例えば、種々のＡＰＩ呼び出しは、データ記憶サービスの高度な特徴を可能にし得る。ＡＰＩ呼び出しは、顧客が、データをコピーすること、別のサービスにデータを移動すること、データ記憶サービスによって機能される異なる地理的領域データを移動すること等を可能にし得る。他の変形例は、以下に説明される。
【００１２】
記述されるように、本開示の実施形態は、アーカイブデータ記憶システムのような、データ記憶システムの性能へのアクセスを可能にするための技術に関する。図１は、そのような技術が実装され得る例示的な環境１００を例示する例示されるように、顧客デバイス（以下に更に詳細に説明されるように「顧客」）は、インターネットのような通信ネットワーク１０４を通じて、記憶サービス１０６に通信する。顧客１０２は、例えば、記憶サービス１０６による記憶のためネットワーク１０４を通じて記憶サービス１０６にデータを伝送し得る。顧客１０２は、記憶されたデータ、インベントリに記憶されたデータにアクセスする要求、および／または以下に説明されるもののような他の操作を遂行する要求等、記憶サービス１０６によって記憶されたデータに関連する操作を遂行する要求も伝送し得る。顧客１０２は、記憶サービス１０６の視点から、例えば金銭等の価値と引き換えに記憶サービス１０６によって提供されたサービスを活用する第三者であるエンティティに関連付けられ得る。本開示の範囲は、顧客１０２のうちの１つ以上が記憶サービス１０６と同様に同一の組織に関連付けられる実施形態を含むことに注意されたい。例えば、顧客１０２のうちの１つ以上は、記憶サービス１０６を有するおよび／または動作する組織の一部であり得る。別の実施例として、記憶サービス１０６は、多数のコンピューティングサービスを提供する組織の一部であり得、顧客１０２は、組織によってホストされるコンピューティングリソースであり得るが、組織の顧客によってプログラム的に管理される。顧客１０２は、例示説明となる実施例として、組織によってホストされるが組織の第三者顧客エンティティによってプログラムで管理されるコンピュータシステム（仮想コンピュータシステムであり得る）であり得る。
【００１３】
記憶サービス１０６は、上に述べられ以下に更に詳細に説明されるように、データ記憶に関連する１つ以上のサービスを遂行するコンピュータシステムであり得る。顧客１０２は、ネットワーク１０４を通じて記憶サービス１０６に要求を伝送し得、記憶サービス１０６は、要求を処理し得、ネットワーク１０４を通じて顧客１０２に応答および他の情報（例えば通知）を提供し得る。記憶サービス１０６は、例えば、１つ以上のデータセンターに一緒にネットワーク化されてホストされた１つ以上のサブシステムを含み得る。記憶サービス１０６は、例示説明となる実施例として、以下に更に詳細に説明されるようなアーカイブデータ記憶サービスであり得る。
【００１４】
図１に例示されるように、記憶サービス１０６は、図１の考察の目的のため、ＡＰＩ以外の記憶サービス１０６の部分を備えるデータ記憶システム１１０によって提供されたサービスにアクセスするように使用されるアプリケーションプログラミングインターフェース（ＡＰＩ）を備え得る。顧客は、ＡＰＩに従って、記憶サービス１０６に電子メッセージを伝送し得る。変形例および他のＡＰＩが本開示の範囲内であるとみなされるが、ＡＰＩは、図２に関連して以下に説明されるように構成され得る。
【００１５】
種々の実施形態に従って、ＡＰＩは、顧客に記憶サービス１０６の種々の機能性にアクセスする能力を提供する。したがって、一実施形態では、ＡＰＩは、種々の機能性にアクセスするための複数の構成要素を含む。例えば、種々の実施形態では、ＡＰＩは、顧客に記憶サービス１０６によって記憶された情報を検索する能力を提供する検索構成要素を含む。いくつかの実施形態では、記憶サービスは、パーツに分けて情報を検索する能力を可能にする。パーツに分けて検索することは、例えば、大きいデータオブジェクトを検索するとき有用であり得る。例えば、単一の大きなデータ操作の検索操作が失敗した場合、検索操作が、繰り返される必要があり得、すでに伝送されたデータが、再伝送される必要があり得る。パーツに分けて検索することは、大きいデータオブジェクトの部分を検索（例えばダウンロード）する能力を提供し得、部分の伝送が失敗した場合でも、その部分のデータのみが再伝送される必要があり得る。したがって、実施形態に従って、ＡＰＩは、顧客がバイトの範囲を指定すること等によって（例えばデータの最初の１ＭＢまたはバイト１〜１，０４８，５７６、またはバイト１，０４８，５７７〜２，０９７，１５２等）、データオブジェクトの部分のみを要求することを可能にする範囲にわたる検索構成要素を含む。
【００１６】
顧客１０２が記憶サービス１０６にデータを伝送することを可能にするように、種々の実施形態では、記憶サービスＡＰＩ１０８は、ユーザがデータオブジェクトまたはそれらの部分（例えばデータオブジェクトの部分を検索することに類似の方式で）を伝送（アップロード）することを可能にし得る、ＰＵＴ構成要素を含む。ＰＵＴ構成要素の使用は、顧客の視点から、同期に見えるが、ＰＵＴ構成要素を用いる要求の完了は、非同期であり得る。例示説明となる実施例として、データオブジェクトを記憶するようにＡＰＩ呼び出しを置くことへの応答は、以下に更に詳細に論じられるように、データオブジェクトのために生成された識別子を含み得る。識別子は、データオブジェクトを検索するように使用可能であり得る。しかしながら、識別子は、データ記憶システム１１０が実際に永続的にアーカイブ記憶にデータオブジェクトを記憶する前に提供され得、それによって、ＡＰＩ呼び出しを行った顧客１０２に同期経験を提供する。
【００１７】
顧客１０２は、記憶サービス１０６を用いて多数のデータオブジェクトを記憶するＰＵＴ構成要素を利用し得る。したがって、本開示の種々の実施形態は、顧客が記憶サービス１０６によって記憶したオブジェクトについての情報を獲得することを可能にする。一実施例として、図１に例示されるように、記憶サービスＡＰＩ１０８は、データオブジェクトリスト構成要素を含み得る。データオブジェクトリスト構成要素へのＡＰＩ呼び出しを使用して、ＡＰＩ呼び出しを行った顧客のデータオブジェクトを識別するリスト（またはデータの他の組織）を獲得し得る。種々の実施形態では、そのようなＡＰＩ呼び出しを用いて行われた要求を処理することは、非同期に遂行され得る。例えば、データオブジェクトリストを獲得するＡＰＩ呼び出しに応答して、記憶システムは、要求元端末に提供するリストを実際に獲得する前にジョブ識別子を提供し得る。ジョブ識別子を使用して、（例えばＡＰＩ１０８のジョブステータス構成要素を用いて）ジョブのステータスを獲得するＡＰＩ呼び出しを行い得、ジョブが最終的に完了されるとリストを獲得し得る。
【００１８】
一般に、非同期データ処理技術が使用されるインスタンスでは、本開示の実施形態は、顧客１０２が種々のジョブ関連の事象のステータスに関する通知を登録することを可能にする。例えば、ジョブのステータスのためのデータ記憶システム１０２をポーリングすることの代わりにまたはそれに加えて、顧客１０２は、ジョブが完了すると通知を登録することができる。一実施例として、顧客１０２は、要求されたデータオブジェクトがダウンロードのために用意されたとき、データオブジェクトのリストが利用可能であるとき等に電子メッセージを受け取り得る。
【００１９】
加えて、本開示の種々の実施形態は、高度な機能性を可能にする。例えば、顧客１０２のユーザは、ＡＰＩ１０８のジョブタグ構成要素を用いて、顧客ＡＰＩ呼び出しに応答して作成されるジョブのための顧客自身のタグを提供することができ得る。タグは、予め定義され得、顧客１０２のユーザによって選択され得、および／またはユーザによって完全に構成され得る。例えば、顧客は、顧客１０２のシステムが通知メッセージを受け取るとき、システム（または顧客１０２の別のシステム）が情報を処理でき自動化された方式で１つ以上のアクションを遂行できるように、プログラミングコードおよび／または他の情報をタグに含み得る。例えば、顧客１０２は、顧客のコンピュータシステムによって処理されたとき、顧客のコンピュータシステムに（または顧客の別のコンピュータシステムに）検索ジョブが完了すると対応するデータオブジェクトをダウンロードさせる検索ジョブのための情報を含めるために、ジョブタグ構成要素を使用し得る。
【００２０】
図１に記述されるように、ＡＰＩ１０８は、図に例示されるそれらの構成要素に加えてまたは代わりに、そのうちの多くがより詳細に以下に説明される付加的な構成要素を含み得る。
【００２１】
図２は、少なくとも１つの実施形態に従う、アーカイブデータ記憶システムが実装され得る例示的な環境２００を例示する。１つ以上の顧客２０２は、ネットワーク２０４を介して、アーカイブデータ記憶システム２０６に接続する。上に含意されたように、文脈から明らかでない限り、用語「顧客」とは、本明細書に記載されるデータ記憶サービスを活用する顧客エンティティ（個人、会社、または他の団体等）のシステム（複数可）を指す。そのようなシステムは、データセンター、大型汎用機、個別コンピューティングデバイス、分散型コンピューティング環境およびその顧客アクセス可能インスタンス、またはアーカイブデータ記憶システムと通信できる任意の他のシステムを含んでもよい。いくつかの実施形態では、顧客は、アーカイブデータ記憶システムもまた提供するコンピューティングリソースプロバイダにより提供される分散型コンピューティングシステムのマシーンインスタンス（例えば、直接ハードウェアアクセスで）または仮想化インスタンスを指し得る。いくつかの実施形態では、アーカイブデータ記憶システムは、分散型コンピューティングシステムに不可欠であり、分散型コンピューティングシステムのインスタンス、仮想化またはマシンを含み得るか、または分散型コンピューティングシステムのインスタンス、仮想化またはマシンで実装され得る。種々の実施形態では、ネットワーク２０４は、インターネット、ローカルエリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、セルラーデータネットワーク、および／または他のデータネットワークを含み得る。
【００２２】
一実施形態では、アーカイブデータ記憶システム２０６は、各テナントまたは顧客が、顧客に割り当てられたデータ記憶空間のデータを記憶するか、検索するか、削除するか、または別様に管理するマルチテナントまたは複数顧客の環境を提供する。いくつかの実施形態では、アーカイブデータ記憶システム２０６は、複数のサブシステム、または各々がサービスまたは機能性の特定のセットを提供する「プレーン」を備える。例えば、図２に例示されるように、アーカイブデータ記憶システム２０６は、フロントエンド２０８、直接Ｉ／Ｏのための制御プレーン２１０、共有制御プレーン２１２、データプレーン２１４、およびメタデータプレーン２１６を含む。各サブシステムまたはプレーンは、機能性の特定のセットを集合的に提供する１つ以上の構成要素を含み得る。各構成要素は、コンピュータ、データ記憶デバイス等の１つ以上の物理的および／または論理的コンピューティングデバイスで実装され得る。各サブシステム内の構成要素は、同一サブシステム内の構成要素、他のサブシステム内の構成要素、または顧客等の外部エンティティと通信し得る。そのような対話処理のうちの少なくともいくつかは、図２に矢印によって示される。具体的には、アーカイブデータ記憶システム２０６の内外の主要バルクデータ転送経路は、太い矢印によって表される。種々の実施形態が図２に例示されるものよりも少ないかまたはより多くの数のシステム、サブシステム、および／またはサブ構成要素を有し得ることは、当業者により理解される。よって、図２の環境２００の描写は、本質的に、例示説明となるものであり、本開示の範囲を限定するものとみなすべきではない。
【００２３】
例示説明となる実施形態では、フロントエンド２０８は、アーカイブデータ記憶システム２０６と本明細書に記載される１つ以上の顧客２０２等の外部エンティティとの間のインターフェースを提供するサービスの一群を実装する。種々の実施形態では、フロントエンド２０８は、ユーザがアーカイブデータ記憶システムの種々の機能、構成要素、および性能とプログラムでインターフェース接続することを可能にするようにアプリケーションプログラミングインターフェース（「ＡＰＩ」）を提供する。そのようなＡＰＩは、グラフィカルユーザインターフェース（ＧＵＩ）、ウェブベースのインターフェース、アプリケーションプログラミングインターフェース（ＡＰＩ）および／またはインターフェース要素に対応するリモートプロシージャコール（ＲＰＣ）のセット等のプログラマチックインタフェース、インターフェース要素が通信プロトコルのメッセージに対応するメッセージングインターフェース、および／またはそれらの好適な組み合わせを含み得るユーザインターフェースに加わり得る。
【００２４】
アーカイブデータ記憶システム２０６により提供される性能は、データ記憶、データ検索、データ削除、メタデータ操作、種々の操作パラメータの構成等を含み得る。メタデータ操作は、特定の顧客のために記憶されたデータのカタログを検索する要求、データ回復要求、ジョブ照会等を含み得る。構成ＡＰＩは、顧客にアカウント情報、監査ログ、ポリシー、通知設定等を構成させ得る。顧客は、ＡＰＩ要求をアーカイブデータ記憶システムに送信することで上の操作のうちのいずれかの実施を要求し得る。同様に、アーカイブデータ記憶システムは、顧客要求への応答を提供し得る。そのような要求および応答は、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）、ファイル転送プロトコル（「ＦＴＰ」）等の任意の好適な通信プロトコル上で、ＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（「ＲＥＳＴ」）、シンプルオブジェクトアクセスプロトコル（「ＳＯＡＰ」）等の任意の好適なフォーマットで提出され得る。要求および応答は、例えば、暗号キー等で暗号化されたＢａｓｅ６４符号化を用いて符号化され得る。
【００２５】
いくつかの実施形態では、アーカイブデータ記憶システム２０６は、顧客に１つ以上のアーカイブデータオブジェクトを記憶する論理データコンテナのような１つ以上の論理構造を作成させる。本明細書に使用されるとき、データオブジェクトは、広く使用され、任意の特定の構造または他のデータへの関係を必ずしも暗示するものではない。データオブジェクトは、例えば、単にビットの配列であり得る。典型的に、そのような論理データ構造は、顧客のあるビジネス要件に見合うように作成され得、独立して、アーカイブデータ記憶システムに記憶されたデータの物理組織である。本明細書に使用されるとき、用語「論理データコンテナ」とは、データオブジェクトの群化を指す。例えば、特定の目的のためまたは特定の期間中に作成されたデータオブジェクトは、同一の論理データコンテナに記憶され得る。各論理データコンテナは、ネスト化されたデータコンテナまたはデータオブジェクトを含み得、コンテナのサイズ制限のような一式のポリシー、コンテナに記憶され得るデータオブジェクトの最大数、有効期限、アクセス制御リスト等と関連付けられ得る。種々の実施形態では、論理データコンテナは、例えば構成可能な情報に基づいて、ＡＰＩ要求を介して顧客によって、システム管理者によって、またはデータ記憶システムによって、作成されるか、削除されるか、または別様に修正され得る。例えば、次のＨＴＴＰ  ＰＵＴ要求を使用して、一実施形態では、アカウント識別子「ａｃｃｏｕｎｔＩｄ」により識別される顧客に関連付けられる名称「ｌｏｇｉｃａｌ−ｃｏｎｔａｉｎｅｒ−ｎａｍｅ」を有する論理データコンテナを作成し得る。
ＰＵＴ／｛ａｃｃｏｕｎｔＩｄ｝／ｌｏｇｉｃａｌ−ｃｏｎｔａｉｎｅｒ−ｎａｍｅ  ＨＴＴＰ／１．１
【００２６】
一実施形態では、アーカイブデータ記憶システム２０６は、データオブジェクトを論理データコンテナ内に記憶するように顧客のためにＡＰＩを提供する。例えば、次のＨＴＴＰ  ＰＯＳＴ要求は、例示説明となる実施形態では、所与の論理コンテナ内にデータオブジェクトを記憶するように使用され得る。一実施形態では、要求は、記憶場所の論理経路、データ長、データペイロードへの参照、データペイロードのデジタルダイジェスト、および他の情報を指定し得る。一実施形態では、ＡＰＩは、顧客に、１つの要求で複数のデータオブジェクトを１つ以上の論理データコンテナにアップロードさせ得る。データオブジェクトが巨大な別の実施形態では、ＡＰＩは、顧客に、各々がデータオブジェクトの一部分を有する複数のパーツにおいてデータオブジェクトをアップロードさせ得る。
ＰＯＳＴ／｛ａｃｃｏｕｎｔＩｄ｝／ｌｏｇｉｃａｌ−ｃｏｎｔａｉｎｅｒ−ｎａｍｅ／ｄａｔａ  ＨＴＴＰ／１．１
Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ：１１２８１９２
ｘ−ＡＢＣ−ｄａｔａ−ｄｅｓｃｒｉｐｔｉｏｎ：“ａｎｎｕａｌ−ｒｅｓｕｌｔ−２０１２．ｘｌｓ”
ｘ−ＡＢＣ−ｍｄ５−ｔｒｅｅ−ｈａｓｈ：６３４ｄ９ａ０６８８ａｆｆ９５ｃ
【００２７】
データ記憶要求に応答して、一実施形態では、アーカイブデータ記憶システム２０６は、データオブジェクトが成功裏に記憶された場合、データオブジェクト識別子を提供する。そのようなデータオブジェクト識別子を使用して、後続の要求において記憶されたデータオブジェクトを検索、削除、または別様に参照し得る。いくつかの実施形態では、そのようなデータオブジェクト識別子は、グローバル名前空間キーマップ（ｇｌｏｂａｌ  ｎａｍｅｓｐａｃｅ  ｋｅｙ  ｍａｐ）等の付加的なデータ構造を必要とせず、データオブジェクトの場所を特定するようにアーカイブデータ記憶システムにより使用され得る（例えば、暗号化の有無にかかわらず）記憶場所情報をそこに含む「自己記述型」であり得る。加えて、いくつかの実施形態では、データオブジェクト識別子は、ペイロードダイジェスト、エラー検出コード、アクセス制御データ、および後続の要求およびデータ整合性を検証するように使用され得る他の情報等の他の情報もまた符号化し得る。いくつかの実施形態では、アーカイブデータ記憶システムは、受信データをアーカイブデータ記憶に移動させる前にそれを一時耐久性データストアに記憶する。よって、顧客は、アップロードされた要求が完了されるとその瞬間データが耐久的に持続されたと見なし得るが、実際の長期持続されたデータストアへの記憶は、ある程度後（例えば、１２時間後）まで開始されない可能性がある。いくつかの実施形態では、実際の記憶のタイミングは、データオブジェクトのサイズ、概日周期中のシステムロード、顧客と記憶サービスプロバイダとの間のサービスレベル契約等の構成可能な情報、および他の要因によって様々であり得る。
【００２８】
いくつかの実施形態では、アーカイブデータ記憶システム２０６は、顧客がアーカイブデータ記憶システムに記憶されたデータを検索するためのＡＰＩを提供する。そのような実施形態では、顧客は、データ検索を遂行するようにジョブを開始し得、ジョブのステータスのために通知によってまたはシステムをポーリングすることによってジョブの完了を知り得る。本明細書に使用されるとき、「ジョブ」とは、要求が受け取られた時間から一時的に独立して遂行され得る顧客要求に対応するデータ関連アクティビティを指す。例えば、ジョブは、データを検索すること、記憶および削除すること、メタデータを検索すること等を含み得る。ジョブは、例えば、特定の顧客のための全てのジョブの中で一意であり得るジョブ識別子によって識別され得る。例えば、次のＨＴＴＰ  ＰＯＳＴ要求を使用して、例示説明となる実施形態では、データオブジェクト識別子「ｄａｔａＯｂｊｅｃｔＩｄ」によって識別されたデータオブジェクトを検索するジョブを開始し得る。他の実施形態では、データ検索要求は、複数のデータオブジェクト、論理データコンテナと関連付けられるデータオブジェクト等の検索を要求し得る。
ＰＯＳＴ／｛ａｃｃｏｕｎｔＩｄ｝／ｌｏｇｉｃａｌ−ｄａｔａ−ｃｏｎｔａｉｎｅｒ−ｎａｍｅ／ｄａｔａ／｛ｄａｔａＯｂｊｅｃｔＩｄ｝ＨＴＴＰ／１．１
【００２９】
要求に応答して、一実施形態では、アーカイブデータ記憶システム２０６は、次の応答においてジョブに割り当てられたジョブ識別子ｊｏｂ−ｉｄ」を提供する。この実施例では、応答は、検索されたデータが記憶される記憶場所までの経路を提供する。
ＨＴＴＰ／１．１  ２０２  ＡＣＣＥＰＴＥＤ
Ｌｏｃａｔｉｏｎ：／｛ａｃｃｏｕｎｔＩｄ｝／ｌｏｇｉｃａｌ−ｄａｔａ−ｃｏｎｔａｉｎｅｒ−ｎａｍｅ／ｊｏｂｓ／｛ｊｏｂ−ｉｄ｝
【００３０】
任意の時点で、アーカイブデータ記憶システムは、種々のデータ操作のために多くの保留中のジョブを有し得る。いくつかの実施形態では、アーカイブデータ記憶システムは、費用、性能、拡張性等のシステム規準を最適化するように、バッチ処理、ロード分散、ジョブ結合等のジョブ計画および最適化技術を用い得る。いくつかの実施形態では、実際のデータ検索のタイミングは、検索されたデータのサイズ、システムロードおよび容量、記憶デバイスの有効なステータス等の要因によって様々である。例えば、いくつかの実施形態では、アーカイブデータ記憶システムにおける少なくともいくつかのデータ記憶デバイスは、例えば、動作費用を削減するために電力管理スケジュールに従って有効にされ得るかまたは無効化され得る。よって、（回転ハードドライブ等の）現在有効な記憶デバイスに記憶されたデータの検索は、（回転を抑えた（ｓｐｉｎｎｅｄ−ｄｏｗｎ）ハードドライブ等の）現在無効の記憶デバイスに記憶されたデータの検索よりも速い可能性がある。
【００３１】
一実施形態では、データ検索ジョブが完了されると、検索されたデータは、ステージングデータストアに記憶されて顧客ダウンロードのために利用可能になる。いくつかの実施形態では、顧客は、構成可能な通知サービスによりジョブのステータスにおける変更を通知される。他の実施形態では、顧客は、ジョブ識別子を用いてシステムをポーリングすることによってジョブのステータスを知り得る。次のＨＴＴＰ  ＧＥＴ要求を使用して、一実施形態では、前に提供されたダウンロード経路を用いて、「ｊｏｂ−ｉｄ」によって識別されるジョブにより検索されるデータをダウンロードし得る。
ＧＥＴ／｛ａｃｃｏｕｎｔＩｄ｝／ｌｏｇｉｃａｌ−ｄａｔａ−ｃｏｎｔａｉｎｅｒ−ｎａｍｅ／ｊｏｂｓ／｛ｊｏｂ−ｉｄ｝／ｏｕｔｐｕｔ  ＨＴＴＰ／１．１
【００３２】
ＧＥＴ要求に応答して、例示説明となる実施形態では、アーカイブデータ記憶システム２０６は、次のＨＴＴＰ応答において確証目的のためのデータのツリーハッシュと共に、検索されたデータを提供し得る。
ＨＴＴＰ／１．１  ２００  ＯＫ
Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ：１１２８１９２
ｘ−ＡＢＣ−ａｒｃｈｉｖｅ−ｄｅｓｃｒｉｐｔｉｏｎ：“ｒｅｔｒｉｅｖｅｄ  ｓｔｕｆｆ”
ｘ−ＡＢＣ−ｍｄ５−ｔｒｅｅ−ｈａｓｈ：６９３ｄ９ａ７８３８ａｆｆ９５ｃ
［１１１２１９２バイトのユーザデータが続く］
【００３３】
一実施形態では、顧客は、データオブジェクトに関連付けられたデータオブジェクト識別子を指定することによりアーカイブデータ記憶システムに記憶されるデータオブジェクトの削除を要求し得る。例えば、例示説明となる実施形態では、データオブジェクト識別子「ｄａｔａＯｂｊｅｃｔＩｄ」を有するデータオブジェクトは、次のＨＴＴＰ要求を用いて削除され得る。別の実施形態では、顧客は、特定の論理データコンテナに関連付けられたもののような複数のデータオブジェクトの削除を要求し得る。
ＤＥＬＥＴＥ／｛ａｃｃｏｕｎｔＩｄ｝／ｌｏｇｉｃａｌ−ｄａｔａ−ｃｏｎｔａｉｎｅｒ−ｎａｍｅ／ｄａｔａ／｛ｄａｔａＯｂｊｅｃｔＩｄ｝ＨＴＴＰ／１．１
【００３４】
種々の実施形態では、データオブジェクトは、顧客要求に応答して削除され得るか、またはユーザ指定の有効期限または初期設定の有効期限に従って自動的に削除され得る。いくつかの実施形態では、データオブジェクトは、有効期間に応じて顧客がアクセスできないようにレンダリングされ得るが、有効期間を超える猶予期間中には回復可能状態で残る。種々の実施形態では、猶予期間は、顧客構成、サービスレベル契約条件等の構成可能な情報に基づき得る。いくつかの実施形態では、顧客は、保留データ削除のための通知を問い合わせるかまたは受け取る、および／または保留データ削除のうちの１つ以上をキャンセルする能力を提供され得る。例えば、一実施形態では、顧客は、顧客が論理データコンテナに関連付けられたある事象の通知を受け取るように論理データコンテナに関連付けられた通知構成を設定し得る。そのような事象は、データ検索ジョブ要求の完了、メタデータ要求の完了、データオブジェクトまたは論理データコンテナの削除等を含み得る。
【００３５】
一実施形態では、アーカイブデータ記憶システム２０６は、論理データコンテナに関連付けられたメタデータのようなメタデータを検索して管理するためにメタデータＡＰＩもまた提供する。種々の実施形態では、そのような要求は、（結果が後に戻される）非同期にかまたは（結果が直ぐに戻される）同期に処理され得る。
【００３６】
なおも図２を参照して、一実施形態では、上で論じたＡＰＩ要求のうちの少なくともいくつかは、フロントエンド２０８の一部としてＡＰＩ要求ハンドラ２１８によって処理される。例えば、ＡＰＩ要求ハンドラ２１８は、ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ（「ＵＲＩ」）、要求されたアクションおよび関連付けられたパラメータ、識別情報、データオブジェクト識別子等の情報を抽出するように受信ＡＰＩ要求を復号し得るおよび／または解析し得る。加えて、ＡＰＩ要求ハンドラ２１８は、必要な場合、ＡＰＩ要求を更に処理するように（以下に記載の）他のサービスを呼び出す。
【００３７】
一実施形態では、フロントエンド２０８は、ＡＰＩ要求を認証するように、例えば、ＡＰＩハンドラ２１８によって呼び出され得る認証サービス２２０を含む。例えば、いくつかの実施形態では、認証サービス２２０は、ユーザ名およびパスワードインターネットプロトコル（「ＩＰ）アドレス、クッキー、デジタル証明書、デジタル署名等のＡＰＩ要求と共に提出された識別情報を確証し得る。他の実施形態では、認証サービス２２０は、付加的な情報を提供するか、またはチャレンジレスポンス認証プロトコル等下で多元的認証スキームで要求されたような要求を認証するように更なるステップを遂行するように顧客に要求し得る。
【００３８】
一実施形態では、フロントエンド２０８は、要求に関連付けられたように決定された１つ以上のポリシーに従って要求されたアクセスが許可されるかどうかを判定するように、例えば、ＡＰＩハンドラ２１８によって呼び出され得る承認サービス２２２を含む。例えば、一実施形態では、承認サービス２２２は、要求されたアクセスが、要求元端末のそれ自体の論理データコンテナに含まれるデータオブジェクトに関するか、またはリクエスタが別様にアクセスするように承認されるかを確証する。いくつかの実施形態では、承認サービス２２２またはフロントエンド２０８の他のサービスは、データオブジェクト識別子によって符号化された検証情報のような要求に符号化された情報に少なくとも部分的に基づいてデータ要求の検証性および整合性を検査し得る。
【００３９】
一実施形態では、フロントエンド２０８は、使用されたデータ記憶空間、記憶されたデータオブジェクトの数、処理されたデータ要求等の各顧客のためのサービス使用情報を監視する計測サービス２２４を含む。一実施形態では、フロントエンド２０８は、例えば、計測サービス２２４によって収集される計測情報、顧客アカウント情報等に基づいて課金および請求に関連した機能性を遂行する課金サービス２２６もまた含む。例えば、顧客は、顧客により使用された記憶空間、データオブジェクトのサイズおよび数、提出された要求の種類および数、顧客アカウントの種類、サービスレベル契約等に基づいて料金を請求され得る。
【００４０】
一実施形態では、フロントエンド２０８は、いくつかのまたは全ての受信要求をバッチ処理する。例えば、フロントエンド２０８は、（例えば、認証、承認、課金等の）要求を処理する前に一定の数の要求が受け取られるまで待機し得る。そのような受信要求のバッチ処理を使用して、効率性を増加させ得る。
【００４１】
いくつかの実施形態では、フロントエンド２０８は、ＡＰＩ要求を更に処理するようにアーカイブデータ記憶システムの他のサブシステムによって提供されるサービスを呼び出し得る。例えば、フロントエンド２０８は、メタデータ要求を満たすようにメタデータプレーン２１６においてサービスを呼び出し得る。別の実施例には、フロントエンド２０８は、直接Ｉ／Ｏのための制御プレーン２１０の内外でそれぞれ、データ記憶および検索要求のためにデータを配信し得る。
【００４２】
ここで図２に例示される直接Ｉ／Ｏのための制御プレーン２１０を参照すると、種々の実施形態では、直接Ｉ／Ｏのための制御プレーン２１０は、顧客要求の結果として作成されたジョブを作成、トラック、および管理するサービスを提供する。上で論じられたように、ジョブは、データ検索、記憶、メタデータクエリー等の開始する要求に非同期に遂行され得る顧客開始型アクティビティを指す。一実施形態では、直接Ｉ／Ｏのための制御プレーン２１０は、ＡＰＩ要求ハンドラ２１８から受け取られたもののような顧客要求に対応するジョブ記録またはエントリーを作成しジョブの実行を監視するように構成される、ジョブトラッカー２３０を含む。種々の実施形態において、ジョブ記録は、顧客アカウント識別子、ジョブ識別子、データオブジェクト識別子、（以下に記載の）ペイロードデータキャッシュ２２８への参照、ジョブステータス、データ検証情報等のジョブの実行に関連する情報を含み得る。いくつかの実施形態では、ジョブトラッカー２３０は、複数の要求からジョブ記録を構成するのに必要な情報を収集し得る。例えば、大量のデータが記憶されるように要求されると、データアップロードは、複数の要求に細分化され得、各々がデータの一部分をアップロードする。そのような場合には、ジョブトラッカー２３０は、ジョブ記録が作成される前に全てのデータパーツが受け取られることを確実にするように、アップロードステータスのトラックを保管するように情報を維持し得る。いくつかの実施形態では、ジョブトラッカー２３０は、記憶されるデータに関連付けられたデータオブジェクト識別子もまた取得し、例えば、顧客に戻されるようにフロントエンドサービスにデータオブジェクト識別子を提供する。一実施形態では、そのようなデータオブジェクト識別子は、以下に記載される、記憶ノードマネージャ２４４、記憶ノードレジストラ２４８等のデータプレーン２１４サービスから取得され得る。
【００４３】
いくつかの実施形態では、直接Ｉ／Ｏのための制御プレーン２１０は、ジョブエントリーまたは記録を記憶するためにジョブトラッカーストア２３２を含む。種々の実施形態では、ジョブトラッカーストア２３２は、キーバリューデータストアのようなＮｏＳＱＬデータ管理システム、リレーショナルデータベース管理システム（「ＲＤＢＭＳ」）、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、ジョブトラッカーストア２３２に記憶されたデータは、特定の顧客に属するジョブの高速列挙を可能にし、効率的なバルク記録削除、サービスの別々のインスタンスによる並列処理等を容易にするように分割され得る。例えば、ジョブトラッカーストア２３２は、顧客アカウント識別子に従って分割され範囲キー（ｒａｎｇｅ  ｋｅｙｓ）としてジョブ識別子を使用する、テーブルを実装し得る。一実施形態では、ジョブトラッカーストア２３２は、ジョブの終了およびクリーンアップ動作を容易にするように、（ジョブ有効期間等の）時間に基づいて更に副次的に分割（ｓｕｂ−ｐａｒｔｉｔｉｏｎｅｄ）される。一実施形態では、ジョブトラッカーストア２３２に対するトランザクションは、トランザクションの合計数を削減するように集約され得る。例えば、いくつかの実施形態では、ジョブトラッカー２３０は、１つの単一の集約されたジョブをジョブトラッカーストア２３２内に挿入する前に、複数の要求に対応する集合的な複数のジョブを１つの単一の集約されたジョブ内に実施し得る。
【００４４】
一実施形態では、ジョブトラッカー２３０は、例えば、共有制御プレーン２１２におけるサービスによって、更なるジョブスケジューリングおよび計画のためのジョブを提出するように構成される。加えて、ジョブトラッカー２３０は、ジョブの実行を監視し、ジョブが完了されるとジョブトラッカーストア２３２の対応するジョブ記録を更新するように構成され得る。いくつかの実施形態では、ジョブトラッカー２３０は、ジョブステータスクエリーのような顧客クエリーを処理するように更に構成され得る。いくつかの実施形態では、ジョブトラッカー２３０は、顧客またはアーカイブデータ記憶システムの他のサービスにジョブステータス変更の通知も提供する。例えば、データ検索ジョブが完了すると、ジョブトラッカー２３０は、（例えば、通知サービスを用いて）データがダウンロード可能であると顧客に通知し得る。別の実施例として、データ記憶ジョブが完了すると、ジョブトラッカー２３０は、以下に記載の一時ペイロードデータキャッシュ２２８からデータ記憶ジョブに関連付けられるペイロードデータを消去するようにクリーンアップエージェント（ｃｌｅａｎｕｐ  ａｇｅｎｔ）２３４に通知し得る。
【００４５】
一実施形態では、直接Ｉ／Ｏのための制御プレーン２１０は、データプレーン２１４とフロントエンド２０８との間を通過するペイロードデータのための一時データ記憶サービスを提供するためにペイロードデータキャッシュ２２８を含む。そのようなデータは、記憶保留中の受信データおよび顧客のダウンロード待ちの送信データを含む。本明細書に使用されるとき、一時データストアは、データオブジェクトをそれらが本明細書に記載のアーカイブデータ記憶に記憶される前に記憶するかまたはアーカイブデータ記憶から検索されるデータオブジェクトを記憶するために使用されるデータストアを指す一時的データストアまたはステージングデータストアと同義に使用される。一時データストアは、揮発性または不揮発性（耐久性）の記憶を提供し得る。ほとんどの実施形態では、一時データストアは、永続的にデータを記憶するために潜在的に使用可能である一方で、アーカイブデータ記憶システムよりも短期間だけデータを記憶するように意図され、本明細書に記載のデータアーカイブ記憶システムよりも対費用効果が低い場合がある。一実施形態では、受信および送信データに提供された一時データ記憶サービスは、分化され得る。例えば、アーカイブデータ記憶にまだ持続されていない受信データのためのデータ記憶は、アーカイブデータ記憶にすでに持続されている送信（検索された）データのためのデータ記憶より高度な信頼性および耐久性を提供し得る。別の実施形態では、一時記憶は、受信データにとって任意であり得、それは、例えば、十分な帯域幅および／または記憶する容量を有するシステムが存在する場合、受信データは、ペイロードデータキャッシュ２２８等の一時データ記憶に記憶されることなくアーカイブデータ記憶に直接記憶され得るためである。
【００４６】
一実施形態では、直接Ｉ／Ｏのための制御プレーン２１０は、ジョブトラッカーストア２３２および／またはペイロードデータキャッシュ２２８を監視し、これ以上必要ないデータを消去するクリーンアップエージェント２３４もまた含む。例えば、データ記憶要求に関連付けられたペイロードデータは、データが永久記憶装置（例えば、データプレーン２１４）に持続された後で、ペイロードデータキャッシュ２２８から安全に消去され得る。リバース経路上で、顧客ダウンロードのためにステージされたデータは、利用可能な期間後（例えば、データがステージされてから３０日間）かまたは顧客がステージされたデータがこれ以上必要ないと示した後に、ペイロードデータキャッシュ２２８から消去され得る。
【００４７】
いくつかの実施形態では、クリーンアップエージェント２３４は、ジョブステータスがジョブが完了したかまたは強制終了したかを示すと、ジョブトラッカーストア２３２からジョブ記録を消去する。上で論じられたように、いくつかの実施形態では、ジョブトラッカーストア２３２は、より速いクリーンアップを可能にするように分割され得る。データが顧客アカウント識別子によって分割される一実施形態では、クリーンアップエージェント２３４は、個別のジョブを１つずつ削除することの代わりに、ジョブが完了したとき特定の顧客アカウントのためのジョブを記憶するテーブル全体を消去し得る。データがジョブ有効期間に基づいて更に副次的に分割される別の実施形態では、クリーンアップエージェント２３４は、分割された領域の全てのジョブの有効期限が切れた後でジョブの全部の分割された領域またはテーブルをバルク削除し得る。他の実施形態では、クリーンアップエージェント２３４は、クリーンアップエージェント２３４にジョブトラッカーストア２３２および／またはペイロードデータキャッシュ２２８からジョブ記録を消去させるジョブトラッカー２３０のような他のサービスから命令または（ジョブが完了した指標等の）制御メッセージを受け取り得る。
【００４８】
ここから図２に例示される共有制御プレーン２１２を参照する。種々の実施形態では、共有制御プレーン２１２は、Ｉ／Ｏのための制御プレーン２１０から入ってくる平均ロードレベル（ジョブ）までピークを弱め、データプレーン２１４に管理可能な作業負荷を送達するように待ち行列ベースのロードのレベリングサービスを提供する。一実施形態では、共有制御プレーン２１２は、上述のように、直接Ｉ／Ｏのための制御プレーン２１０のジョブトラッカー２３０によって作成されたジョブを受け取るためのジョブ要求待ち行列２３６、データプレーン２１４（例えば、記憶ノードマネージャ２４４）からのサービスが実行する作業を受け取る記憶ノードマネージャジョブストア２４０、およびジョブ要求待ち行列２３６から記憶ノードマネージャジョブストア２４０に知的な方式でジョブアイテムを転送するための要求分散装置２３８を含む。
【００４９】
一実施形態では、ジョブ要求待ち行列２３６は、待ち行列（例えば、先入先出法（ＦＩＦＯ）または先入後出法（ＦＩＬＯ））、セット、または任意の他の好適なデータ構造にアイテムを挿入する、およびそこからアイテムを消去するためのサービスを提供する。ジョブ要求待ち行列２３６のジョブエントリーは、上述のように、ジョブトラッカーストア２３２に記憶されたジョブ記録に類似してもよく、またはジョブ記録から異なってもよい。
【００５０】
一実施形態では、共有制御プレーン２１２は、データプレーン２１４（例えば、記憶ノードマネージャ２４４、反エントロピーウォッチャー２５２）からのサービスが、ジョブ計画の最適化、検査ポインティング、および回復を遂行することを可能にする耐久性がある高効率性ジョブストア、記憶ノードマネージャジョブストア２４０も提供する。例えば、一実施形態では、記憶ノードマネージャジョブストア２４０は、走査すること、問い合わせること、分類すること、または記憶ノードマネージャジョブストア２４０に記憶されたジョブアイテムを別様に操作することおよび管理することを支持することによって、バッチ処理、動作を結合すること等のジョブ最適化を可能にする。一実施形態では、記憶ノードマネージャ２４４は、受信ジョブを走査し、データ操作（例えば、読み出し、書き込み、または削除）の種類、記憶場所（例えば、ボリューム、ディスク）、顧客アカウント識別子等によってジョブを分類する。記憶ノードマネージャ２４４は、次いで、再順序付けするか、結合させるか、バッチにおいて群化させるか、または処理のためにジョブを別様に操作しスケジュールし得る。例えば、一実施形態では、記憶ノードマネージャ２４４は、全ての読み出しおよび削除操作の前に全ての書き込み操作をバッチ処理し得る。別の実施形態では、記憶ノードマネージャ２４４は、動作結合を遂行し得る。別の実施例には、記憶ノードマネージャ２４４は、同じオブジェクトのための複数の検索ジョブを１つのジョブに結合し得るか、または削除ジョブが記憶ジョブの後にくる同一のデータオブジェクトのための記憶ジョブおよび削除ジョブをキャンセルし得る。
【００５１】
一実施形態では、記憶ノードマネージャジョブストア２４０は、複数の記憶ノードマネージャ２４４の独立処理を可能にし、全ての関与する記憶ノードマネージャ２４４に受信作業負荷の均等分散を提供するように、例えば、ジョブ識別子に基づいて、分割される。種々の実施形態では、記憶ノードマネージャジョブストア２４０は、キーバリューデータストアのようなＮｏＳＱＬデータ管理システム、ＲＤＢＭＳ、または任意の他のデータ記憶システムにより実装され得る。
【００５２】
一実施形態では、要求分散装置２３８は、作業負荷の変動をならし、システム可用性を増加させるように、ジョブ要求待ち行列２３６から記憶ノードマネージャジョブストア２４０にジョブアイテムを転送するためのサービスを提供する。例えば、要求分散装置２３８は、記憶ノードマネージャストア２４０の作業負荷の比較的に持続可能なレベルを維持するように、ジョブ要求待ち行列２３６に入ってくるジョブ要求にサージが存在する場合、より低い速度で、またはより小さい粒度でジョブ要求待ち行列２３６からジョブアイテムを転送し得、入ってくるジョブ要求に小康状態が存在する場合である逆の場合も同様である。いくつかの実施形態では、作業負荷のそのような持続可能なレベルは、システムの平均作業負荷とほぼ同じかまたは下回る。
【００５３】
一実施形態では、完了したジョブアイテムは、記憶ノードマネージャジョブストア２４０から消去され、ジョブ結果待ち行列２４２に追加される。一実施形態では、データプレーン２１４サービス（例えば、記憶ノードマネージャ２４４）は、記憶ノードマネージャジョブストア２４０からジョブアイテムを消去して、それらをジョブ結果待ち行列２４２に追加することを担う。いくつかの実施形態では、上に論じられる、ジョブ要求待ち行列２４２は、ジョブ要求待ち行列２３６として類似の方式で実装され得る。
【００５４】
ここから図２に例示されるデータプレーン２１４を参照する。種々の実施形態では、データプレーン２１４は、長期アーカイブデータ記憶、検索および削除、データ管理および配置、反エントロピー動作等に関連するサービスを提供する。種々の実施形態では、データプレーン２１４は、データ記憶デバイス（テープドライブ、ハードディスクドライブ、ソリッドステートデバイス等）、記憶ノードまたはサーバ、データセンター等の任意の数および種類の記憶エンティティを含み得る。そのような記憶エンティティは、物理的か、仮想化か、またはそれらの任意の抽象化（例えば、分散型記憶および／またはコンピューティングシステムのインスタンス）であり得、階層型または段層式トポロジーを含む任意のトポロジー中に体系化される。同様に、データプレーンの構成要素は、分散されるか、ローカルか、またはそれらの任意の組み合わせであり得る。例えば、種々のコンピューティングまたは記憶構成要素は、任意の数のデータセンター、サーバ、またはデータ記憶デバイスに対してローカルかまたはリモートであり得、これらの任意の数のデータセンター、サーバ、またはデータ記憶デバイスは、互いに対してローカルかまたはリモートであり得る。種々の実施形態では、物理的な記憶エンティティは、有効である物理的なハードウェア（例えば、活発に回転しているハードドライブの数）の部分を制御することによって電力および冷却費用を最小化するために設計され得る。一実施形態では、物理的な記憶エンティティは、記憶容量を向上させるように瓦記録方式（ＳＭＲ）のような技術を実装する。
【００５５】
図２により例示される環境では、１つ以上の記憶ノードマネージャ２４４それぞれは、データおよび制御メッセージを送信することおよび受け取ることによって１つ以上の記憶ノード２４６を制御する。その結果、各記憶ノード２４６は、ハードディスクドライブのようなデータ記憶デバイスの（潜在的に大きい）集合体を制御する。種々の実施形態では、記憶ノードマネージャ２４４は、１つ以上の記憶ノード２４６と通信し得、記憶ノード２４６は、１つ以上の記憶ノードマネージャ２４４と通信し得る。一実施形態では、記憶ノードマネージャ２４４は、ダイジェスト計算、データ符号化および復号、ジョブ計画および最適化等の比較的複雑な計算を遂行できる１つ以上のコンピューティングデバイスによって実装される。いくつかの実施形態では、記憶ノード２４６は、記憶ノードマネージャ２４４より劣る計算性能を有する１つ以上のコンピューティングデバイスによって実装される。更に、いくつかの実施形態では、記憶ノードマネージャ２４４は、データ経路に含まれていない可能性がある。例えば、データは、ペイロードデータキャッシュ２２８から直接記憶ノード２４６に伝送され得るか、または１つ以上の記憶ノード２４６からペイロードデータキャッシュ２２８に伝送され得る。この方法で、記憶ノードマネージャ２４４は、ペイロードデータキャッシュ２２８および／または記憶ノード２４６から直接ペイロードを受け取ることなく、ペイロードデータキャッシュ２２８および／または記憶ノード２４６に命令を伝送し得る。種々の実施形態では、記憶ノードマネージャ２４４は、データの流れを導くように本明細書に記載のアーカイブデータ記憶システム２０６の任意の他の構成要素に命令または制御メッセージを送信し得る。
【００５６】
一実施形態では、記憶ノードマネージャ２４４は、共有制御プレーン２１２（例えば、記憶ノードマネージャジョブストア２４０）からジョブアイテムを選ぶこと、ペイロードデータキャッシュ２２８からステージされたデータを検索してデータ記憶ジョブのために必要なデータ符号化を遂行すること、およびデータを記憶、検索、または削除するように適切な記憶ノード２４６に要求することによって、データプレーン２１４に入ってきてデータプレーン２１４から出ていくジョブのためのエントリーポイントとして機能する。記憶ノード２４６が要求されたデータ操作を遂行することを終了すると、記憶ノードマネージャ２４４は、データ復号することおよびデータ検索ジョブのためにペイロードデータキャッシュ２２８に検索されたデータを記憶することのような付加的な処理を遂行し得、共有制御プレーン２１２においてジョブ記録を更新し得る（例えば、記憶ノードマネージャジョブストア２４０から終了したジョブを消去して、それらをジョブ結果待ち行列２４２に追加すること）。
【００５７】
一実施形態では、記憶ノードマネージャ２４４は、データ冗長性、安全性等を提供するデータ記憶の前に１つ以上のデータ符号化スキームに従ってデータ符号化を遂行する。そのようなデータ符号化スキームは、暗号化スキーム、消失訂正符号化のような冗長性符号化スキーム、独立ディスクの冗長アレイ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）（ＲＡＩＤ）符号化スキーム、複製等を含み得る。同様に、一実施形態では、記憶ノードマネージャ２４４は、元のデータを復元するデータ検索の後で、解読、消失訂正復号化等の対応するデータ復号スキームを遂行する。
【００５８】
記憶ノードマネージャジョブストア２４０に関連して上で論じられたように、記憶ノードマネージャ２４４は、効率性を高めるように、バッチ処理、動作結合等のジョブ計画および最適化を実装し得る。いくつかの実施形態では、ジョブは、分割された領域間にわずかの重複しか存在しないようにかまたは重複が存在しないように記憶ノードマネージャの間で分割される。そのような実施形態は、複数の記憶ノードマネージャによって、例えば、競合またはロッキングの確率を削減することによって、並列処理を容易にする。
【００５９】
種々の実施形態では、データプレーン２１４は、データ整合性を容易にするように実装される。例えば、記憶ノードマネージャ２４４および／または記憶ノード２４６のようなバルクデータの流れを処理する記憶エンティティは、記憶されたかまたは検索されたデータのダイジェストを検証し得、メタデータの整合性等を確実にするエラー検出コードを検査し得る。
【００６０】
種々の実施形態では、データプレーン２１４は、アーカイブデータ記憶システムの拡張性および信頼性を容易にするように実装される。例えば、一実施形態では、記憶ノードマネージャ２４４は、内部状態が追加されるか、消去されるか、または少しの不利な影響で変換され得るように、内部状態を維持しないかまたは少しの内部状態を維持する。一実施形態では、各記憶デバイスは、ユニット上に記憶されたデータについての情報を提供することができる自己完結型および自己記述型記憶ユニットである。そのような情報を使用して、データの損失の場合データ回復を容易にし得る。更には、一実施形態では、各記憶ノード２４６は、記憶ノードのネットワークの場所および１つ以上の記憶ノードレジストラ２４８および／または記憶ノードレジストラストア２５０に接続された記憶デバイスの記憶情報を含む記憶ノードについて、情報を収集することおよび報告することができる。いくつかの実施形態では、記憶ノード２４６は、システム開始時にそのような自己報告を遂行し、定期的に更新された情報を提供する。種々の実施形態では、そのような自己報告アプローチは、大量のデータオブジェクトがアーカイブデータシステムに記憶される場合に、実質的に増大できるグローバル名前空間キーマップまたはインデックスを維持する必要なく、動的および最新になったディレクトリ情報を提供する。
【００６１】
一実施形態では、データプレーン２１４は、記憶エンティティのためのディレクトリ情報およびそこに記憶されたデータ、データ配置サービス等を提供する１つ以上の記憶ノードレジストラ２４８も含み得る。記憶ノードレジストラ２４８は、記憶ノードレジストラ２４８のための記憶を提供する１つ以上の記憶ノードレジストラストア２５０へのフロントエンドサービスと通信し、フロントエンドサービスとして機能し得る。種々の実施形態では、記憶ノードレジストラストア２５０は、キーバリューデータストアのようなＮｏＳＱＬデータ管理システム、ＲＤＢＭＳ、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、記憶ノードレジストラストア２５０は、サービスの複数のインスタンスによる並列処理を可能にするように分割され得る。上で論じられたように、一実施形態では、記憶ノードレジストラストア２５０で記憶された情報は、記憶ノード２４６それ自体によって報告された情報に少なくとも部分的に基づく。
【００６２】
いくつかの実施形態では、記憶ノードレジストラ２４８は、例えば、データ記憶、検索、および削除操作のためにどの記憶ノード２４６に接触するかを決定したい記憶ノードマネージャ２４４にディレクトリサービスを提供する。例えば、記憶ノードマネージャ２４４によって提供されたボリューム識別子を所与として、記憶ノードレジストラ２４８は、記憶ノードレジストラストア２５０に維持されるマッピングに基づいて、ボリューム識別子に対応するボリューム構成要素をホストする記憶ノードのリストを提供し得る。具体的には、一実施形態では、記憶ノードレジストラストア２５０は、ボリュームまたはボリューム構成要素の識別子のリストと、ドメインネームシステム（ＤＮＳ）名称のような、ボリュームまたはボリューム構成要素をホストする記憶ノードのエンドポイントとの間にマッピングをストアする。
【００６３】
本明細書に使用されるとき、「ボリューム」とは、データオブジェクトがそこに記憶され得るデータ記憶システム内の論理記憶空間を指す。ボリュームは、ボリューム識別子によって識別され得る。ボリュームは、１つの物理的な記憶デバイス（例えば、ハードディスク）に存在し得るかまたは複数の記憶デバイスにわたって広がり得る。後者の場合には、ボリュームは、各々が異なる記憶デバイス上に存在する複数のボリューム構成要素を含む。本明細書に使用されるとき、「ボリューム構成要素」とは、記憶デバイスのような記憶エンティティに物理的に記憶されるボリュームの一部分を指す。同一のボリュームのためのボリューム構成要素は、異なる記憶エンティティ上に記憶され得る。一実施形態では、データが冗長性符号化スキーム（例えば、消失訂正符号化スキーム、ＲＡＩＤ、複製）によって符号化されるとき、各符号化されたデータ構成要素または「分割データベース」は、耐障害性および独立性を提供するように異なるボリューム構成要素に記憶され得る。いくつかの実施形態では、ボリューム構成要素は、ボリューム識別子および分割データベーススロット識別子を含むボリューム構成要素識別子によって識別される。本明細書に使用されるとき、分割データベーススロットは、冗長性符号化スキームにおいて特定の分割データベース、行、またはデータのストライプを識別する。例えば、一実施形態では、分割データベーススロットは、消失訂正符号化マトリクス行に対応する。いくつかの実施形態では、記憶ノードレジストラストア２５０は、合計、使用された空間および空き空間、記憶されたデータオブジェクトの数等のボリュームまたはボリューム構成要素についての情報も記憶する。
【００６４】
いくつかの実施形態では、データプレーン２１４は、データの独立性および耐障害性制約を満たすように、記憶ノードレジストラストア２５０によって維持される情報に少なくとも部分的に基づいて、記憶空間（例えば、ボリューム）を新たなデータオブジェクトを記憶する記憶ノード上に割り当てるための記憶アロケータ２５６も含む。いくつかの実施形態では、記憶アロケータ２５６は、人手の介入を必要とする。
【００６５】
いくつかの実施形態では、データプレーン２１４は、エントロピー効果を検出して反エントロピー訂正ルーチンを開始するための反エントロピーウォッチャー２５２も含む。例えば、反エントロピーウォッチャー２５２は、記憶ノード、ライブを調製すること、または維持されたデータを有する実際のデータ等の全ての記憶エンティティのアクティビティおよびステータスを監視することを担い得る。種々の実施形態では、エントロピー効果は、繰り返された書き込みまたは再書き込みサイクルからもたらされるデータ断片化が原因の性能低下、（例えば、磁気媒体の）ハードウェアウェア、ハードウェア／ソフトウェア異常が原因のデータ非可用性および／またはデータの損失、環境要因、ハードウェアの物理的な破壊、偶然または他の原因を含むが、これらに限定されない。反エントロピーウォッチャー２５２は、そのような効果を検出し得、いくつかの実施形態では、先制しておよび／または反応的に反エントロピー訂正ルーチンおよび／またはポリシーを導入する。
【００６６】
一実施形態では、反エントロピーウォッチャー２５２は、記憶ノード２４６に、記憶ノードに接続される記憶デバイス上で定期的な反エントロピー走査を実施させる。反エントロピーウォッチャー２５２は、情報を集め、データ等を回復するようにジョブ要求待ち行列２３６（および続いてジョブ結果待ち行列２４２）に要求も入れ得る。いくつかの実施形態では、反エントロピーウォッチャー２５２は、参照整合性を確実にするように、以下に記載の、例えば、コールドインデックスストア２６２および記憶ノード２４６上で走査を遂行し得る。
【００６７】
一実施形態では、記憶ノードレジストラストア２５０で記憶された情報は、記憶ノードレジストラ２４８、記憶アロケータ２５６、反エントロピーウォッチャー２５２等の様々なサービスによって使用される。例えば、記憶ノードレジストラ２４８は、データ記憶、検索、および削除中に、（例えば、記憶ノードマネージャ２４４に）データ場所および配置サービスを提供し得る。例えば、記憶されるデータオブジェクトのサイズおよび記憶ノードレジストラストア２５０によって維持される情報を所与として、記憶ノードレジストラ２４８は、データオブジェクトをどこに記憶するか（例えば、ボリューム）を決定し得、データオブジェクトに関連付けられたデータオブジェクト識別子を生成するように使用され得るデータオブジェクトの記憶場所の指標を提供する。別の実施例として、一実施形態では、記憶アロケータ２５６は、独立性および耐障害性制約を満たすように特定の記憶ノードに新たなボリュームのためのボリューム構成要素を作成して配置する記憶ノードレジストラストア２５０に記憶された情報を使用する。なおも別の実施例として、一実施形態では、反エントロピーウォッチャー２５２は、データの損失、ハードウェアの破損等のエントロピー効果を検出するように、記憶ノードレジストラストア２５０に記憶された情報を使用する。
【００６８】
いくつかの実施形態では、データプレーン２１４は、記憶システムのオーファンをトラック記録するように使用される、オーファンクリーンアップデータストア２５４も含む。本明細書に使用されるとき、オーファンは、任意の外部エンティティによって参照されない記憶されたデータオブジェクトである。種々の実施形態では、オーファンクリーンアップデータストア２５４は、キーバリューデータストアのようなＮｏＳＱＬデータ管理システム、ＲＤＢＭＳ、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、記憶ノードレジストラ２４８は、オーファンクリーンアップデータストア２５４にオブジェクト配置情報を記憶する。続いて、オーファンクリーンアップデータストア２５４に記憶された情報は、例えば、反エントロピーウォッチャー２５２によってメタデータプレーン２１６に維持された情報と比較され得る。オーファンが検出された場合、いくつかの実施形態では、オーファンを削除する要求が、共有制御プレーン２１２に挿入される。
【００６９】
ここから図２に例示されるメタデータプレーン２１６を参照する。種々の実施形態では、メタデータプレーン２１６は、インベントリおよび課金目的のための、顧客メタデータ照会等を満たすシステムに記憶されるデータオブジェクトについての情報を提供する。例示された実施形態では、メタデータプレーン２１６は、共有制御プレーン２１２のジョブ結果待ち行列２４２からのエントリーに基づいて実行されたトランザクションについての情報を記憶するメタデータマネジャジョブストア２５８を含む。種々の実施形態では、メタデータマネジャジョブストア２５８は、キーバリューデータストアのようなＮｏＳＱＬデータ管理システム、ＲＤＢＭＳ、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、メタデータマネジャジョブストア２５８は、例えば、論理データコンテナに基づいて、メタデータマネジャ２６０のようなサービスの複数のインスタンスによって並列処理を容易にするように、分割されて副次的に分割される。
【００７０】
例示説明となる実施形態では、メタデータプレーン２１６は、メタデータマネジャジョブストア２５８の記録に基づいて、（例えば、コールドインデックスストア２６２に記憶された）データオブジェクトのコールドインデックスを生成するために１つ以上のメタデータマネジャ２６０も含む。本明細書に使用されるとき、「コールド」インデックスとは、稀に更新されるインデックスを指す。種々の実施形態では、コールドインデックスは、諸費用を削減するために維持される。いくつかの実施形態では、複数のメタデータマネジャ２６０は、並列してメタデータマネジャジョブストア２５８の異なる分割された領域から定期的に記録を読み出し処理し得、コールドインデックスストア２６２に結果を記憶し得る。
【００７１】
いくつかの実施形態では、コールドインデックスストア２６２は、信頼でき耐久性のあるデータ記憶サービスによって実装され得る。いくつかの実施形態では、コールドインデックスストア２６２は、顧客によって開始されたメタデータ要求を処理するように構成される。例えば、顧客は、所与の論理データコンテナに含まれる全てのデータオブジェクトを列記する要求を発行し得る。そのような要求に応答して、コールドインデックスストア２６２は、コールドインデックス２６２によって維持された情報に基づいて、論理データコンテナに含まれる全てのデータオブジェクトの識別子のリストを提供し得る。いくつかの実施形態では、操作は、比較的長時間かかり得、顧客は、ジョブが終了したとき結果を検索するジョブ識別子を提供され得る。他の実施形態では、コールドインデックスストア２６２は、インベントリ、課金および請求目的のために、他のサービスからの、例えば、フロントエンド２０８からの照会を処理するように構成される。
【００７２】
いくつかの実施形態では、メタデータプレーン２１６は、コンテナ所有、ポリシー、使用量等の論理データコンテナについての情報を記憶するコンテナメタデータストア２６４も含み得る。そのような情報を使用して、例えば、フロントエンド２０８サービスによって、承認、計測、課金等を遂行し得る。種々の実施形態では、コンテナメタデータストア２６４は、キーバリューデータストアのようなＮｏＳＱＬデータ管理システム、ＲＤＢＭＳ、または任意の他のデータ記憶システムにより実装され得る。
【００７３】
本明細書に記載されるように、種々の実施形態では、本明細書に記載されるアーカイブデータ記憶システム２０６は、効率的で拡張性があるように実装される。例えば、一実施形態では、バッチ処理および要求の結合は、効率性を改善するように様々な段階（例えば、フロントエンド要求処理、制御プレーンジョブ要求処理、データプレーンデータ要求処理）で使用される。別の実施例には、一実施形態では、ジョブ、要求等のメタデータを処理することは、サービスの複数のインスタンスによって分割された領域の並列処理を容易にするように分割される。
【００７４】
一実施形態では、（以下に記載のデータ構成要素、ボリューム等の）アーカイブデータ記憶システムに記憶されたデータ要素は、グローバルインデックスデータ構造の必要性を避けるように自己記述型である。例えば、一実施形態では、システムに記憶されたデータオブジェクトは、記憶場所情報を符号化するデータオブジェクト識別子によってアドレス可能であり得る。別の実施例には、一実施形態では、ボリュームは、どのデータオブジェクトがボリュームに記憶されたかについての情報を記憶し得、記憶ノードおよびそのようなボリュームを記憶するデバイスは、集合的に、システムに記憶されたデータのグローバルな視聴を提供するように、そのインベントリおよびハードウェア情報を記録し得る（記憶ノードレジストラストア２５０に記憶される情報からも明らかなように）。そのような実施形態では、グローバルな視聴は、効率性のためのみに提供され、システムに記憶されたデータの場所を特定する必要はない。
【００７５】
種々の実施形態では、本明細書に記載のアーカイブデータ記憶システムは、データ信頼性および耐久性を改善するように実装され得る。例えば、一実施形態では、データオブジェクトは、冗長的に複数のデータ構成要素に符号化され、耐障害性を提供するように異なるデータ記憶エンティティにわたって記憶される。別の実施例には、一実施形態では、データ要素は、整合性検査の複数のレベルを有する。一実施形態では、親子関係は、常に、完全な参照整合性を確実にするように付加的な情報を有する。例えば、一実施形態では、バルクデータ伝送および記憶経路は、イニシエータに、伝送前にデータについてのダイジェストを事前計算させ、続いてデータと共にダイジェストを受信器に供給させることよって、バルクデータ伝送および記憶経路が保護される。データ伝送の受信器は、再計算、比較、および次いで再計算されたダイジェストを含む送信元へ確認応答することを担う。そのようなデータ整合性検査は、例えば、上に記載されるフロントエンドサービス、一時データ記憶サービス、データプレーン記憶エンティティ等によって実装され得る。
【００７６】
図３は、少なくとも１つの実施形態に従う、アーカイブデータ記憶システムの構成要素が接続され得る相互接続ネットワーク３００を例示する。具体的には、例示された実施例は、データプレーン構成要素が、どのように相互接続ネットワーク３００に接続されるかを示す。いくつかの実施形態では、相互接続ネットワーク３００は、リンク帯域幅が、より高くまたは「より太く」ツリーのルートに向かって増大する太いツリー相互接続ネットワークを含み得る。例示された実施例では、データプレーンは、１つ以上のデータセンター３０１を含む。各データセンター３０１は、各サーバラックが図２に関連して説明されるような記憶ノードマネージャの機能性を集合的に提供する１つ以上のサーバをホストする、１つ以上の記憶ノードマネージャサーバラック３０２を含み得る。他の実施形態では、各記憶ノードマネージャサーバラックは、２つ以上の記憶ノードマネージャをホストし得る。ラック当たりの記憶ノードマネージャの数、記憶ノードマネージャラックの数等の構成パラメータは、費用、拡張性、冗長性および性能要件、ハードウェアおよびソフトウェアリソース等の要因に基づいて決定され得る。
【００７７】
各記憶ノードマネージャサーバラック３０２は、相互接続ネットワーク３００に接続するように使用される相互接続３０８への記憶ノードマネージャラック接続３１４を有し得る。いくつかの実施形態では、接続３１４は、ラックの最上位のイーサネットスイッチまたは任意の他の種類のネットワークスイッチを含み得るネットワークスイッチ３０３を用いて実装される。種々の実施形態では、相互接続３０８は、広帯域幅および待ち時間の少ないバルクデータ転送を可能にするように使用される。例えば、相互接続は、Ｃｌｏｓネットワーク、太いツリー相互接続、非同期転送モード（ＡＴＭ）ネットワーク、ファストまたはギガビットイーサネット等を含み得る。
【００７８】
種々の実施形態では、記憶ノードマネージャラック接続３１４の帯域幅は、同一かまたは異なるデータセンター内に位置する記憶ノードマネージャと記憶ノードとの間で広帯域幅および待ち時間の少ない通信を可能にするように構成され得る。例えば、一実施形態では、記憶ノードマネージャラック接続３１４は、１秒当たり１０ギガビット（Ｇｂｐｓ）の帯域幅を有する。
【００７９】
いくつかの実施形態では、各データセンター３０１は、各サーバラックが図２に関連して説明されるような多数の記憶ノードの機能性を集合的に提供する１つ以上のサーバをホストする、１つ以上の記憶ノードサーバラック３０４も含み得る。ラック当たりの記憶ノードの数、記憶ノードラックの数、記憶ノードマネージャと記憶ノードとの間の配分等の構成パラメータは、費用、拡張性、冗長性および性能要件、ハードウェアおよびソフトウェアリソース等の要因に基づいて決定され得る。例えば、一実施形態では、記憶ノードサーバラック当たり３つの記憶ノード、データセンター当たり３０〜８０のラックが存在し、記憶ノードと記憶ノードマネージャとの比率は１０：１である。
【００８０】
各記憶ノードサーバラック３０４は、相互接続ネットワーク３００に接続するように使用される相互接続ネットワークスイッチ３０８への記憶ノードラック接続３１６を有し得る。いくつかの実施形態では、接続３１６は、ラックの最上位のイーサネットスイッチまたは任意の他の種類のネットワークスイッチを含み得るネットワークスイッチ３０５を用いて実装される。種々の実施形態では、記憶ノードラック接続３１６の帯域幅は、同一かまたは異なるデータセンター内に位置する記憶ノードマネージャと記憶ノードとの間で広帯域幅および待ち時間の少ない通信を可能にするように構成され得る。いくつかの実施形態では、記憶ノードラック接続３１６は、記憶ノードマネージャラック接続３１４よりも高い帯域幅を有する。例えば、一実施形態では、記憶ノードマネージャラック接続３１４が１０Ｇｂｐｓの帯域幅を有する一方で、記憶ノードラック接続３１６は、２０Ｇｂｐｓの帯域幅を有する。
【００８１】
いくつかの実施形態では、（記憶ノードマネージャおよび記憶ノードを含む）データセンター３０１は、図２に関連して説明されるように、接続３１０を介して、ペイロードデータキャッシュ２２８、記憶ノードマネージャジョブストア２４０、記憶ノードレジストラ２４８、記憶ノードレジストラストア３５０、オーファンクリーンアップデータストア２５４、メタデータマネジャジョブストア２５８等の他のコンピューティングリソースサービス３０６と通信する。
【００８２】
いくつかの実施形態では、１つ以上のデータセンター３０１は、データセンター間接続３１２を介して接続され得る。いくつかの実施形態では、接続３１０および３１２は、ハードウェアリソースの効率的な動作および使用を達成するように構成され得る。例えば、一実施形態では、接続３１０は、データセンター当たり３０〜１００Ｇｂｐｓの帯域幅を有し、データセンター間接続３１２は、１００〜２５０Ｇｂｐｓの帯域幅を有する。
【００８３】
図４は、少なくとも１つの実施形態に従う、アーカイブデータ記憶システムの構成要素が接続され得る相互接続ネットワーク４００を例示する。具体的には、例示された実施例は、非データプレーン構成要素が、相互接続ネットワーク３００にどのように接続されるかを示す。例示されるように、図２に関連して説明されるようなフロントエンドサービスは、１つ以上のフロントエンドサーバラック４０２によってホストされ得る。例えば、各フロントエンドサーバラック４０２は、１つ以上のウェブサーバをホストし得る。フロントエンドサーバラック４０２は、ネットワークスイッチ４０８を介して相互接続ネットワーク４００に接続し得る。一実施形態では、フロントエンドサービスの数、ラック当たりのサービスの数、フロントエンドサーバラック接続３１４のための帯域幅等の構成パラメータは、図３に関連して説明されるように、記憶ノードマネージャのためのものにおおよそ対応し得る。
【００８４】
いくつかの実施形態では、図２に関連して説明されるように制御プレーンサービスおよびメタデータプレーンサービスは、１つ以上のサーバラック４０４によってホストされ得る。そのようなサービスは、ジョブトラッカー２３０、メタデータマネジャ２６０、クリーンアップエージェント２３２、ジョブ要求分散装置２３８、および他のサービスを含み得る。いくつかの実施形態では、そのようなサービスは、頻繁なバルクデータ転送を処理しないサービスを含む。最終的に、本明細書に記載される構成要素は、図２に関連して説明されるように接続４１０を介して、ペイロードデータキャッシュ２２８、ジョブトラッカーストア２３２、メタデータマネジャジョブストア２５８等の他のコンピューティングリソースサービス４０６と通信し得る。
【００８５】
図５は、少なくとも１つの実施形態に従う、データを記憶するための例示的な過程５００を例示する。いくつかのまたは全ての過程５００（または本明細書に記載の任意の他の過程または変形例および／またはそれらの組み合わせ）は、実行可能な命令で構成される１つ以上のコンピュータシステムの制御下で遂行され得、ハードウェアまたはそれらの組み合わせによって、１つ以上のプロセッサ上で集合的に実行されるコード（例えば、実行可能な命令、１つ以上のコンピュータプログラム、または１つ以上のアプリケーション）として実装され得る。コードは、例えば、１つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータが読み出し可能な記憶媒体上に記憶され得る。コンピュータが読み出し可能な記憶媒体は、非一時的であり得る。一実施形態では、アーカイブデータ記憶システム２０６の１つ以上の構成要素は、図２に関連して説明されるように、過程５００を遂行し得る。
【００８６】
一実施形態では、過程５００は、文書、ビデオ、または音声ファイル等のアーカイブデータを記憶するデータ記憶要求を受け取ること５０２を含む。そのようなデータ記憶要求は、ペイロードデータのサイズおよびダイジェスト、ユーザ識別情報（例えば、ユーザ名、アカウント識別子等）、論理データコンテナ識別子等のペイロードデータおよびメタデータを含み得る。いくつかの実施形態では、過程５００は、各々がより大きいペイロードデータの一部分を含む複数の記憶要求を受け取ること５０２を含み得る。他の実施形態では、記憶要求は、アップロードされる複数のデータオブジェクトを含み得る。一実施形態では、過程５００のステップ５０２は、図２に関連して説明されるように、フロントエンド２０８のＡＰＩ要求ハンドラ２１８のようなサービスによって実装される。
【００８７】
一実施形態では、過程５００は、要求を受け取ること５０２に応じて、記憶要求を処理すること５０４を含む。そのような処理することは、例えば、受け取られたデータの整合性を確証すること、顧客を認証すること、アクセス制御ポリシーに対して要求されたアクセスを承認すること、計測および課金関連のアクティビティを遂行すること等を含み得る。一実施形態では、そのような処理することは、図２に関連して説明されるようなフロントエンド２０８のサービスによって遂行され得る。一実施形態では、そのような要求は、例えば、バッチモードにおいて他の要求に関連して処理され得る。
【００８８】
一実施形態では、過程５００は、記憶要求に関連付けられたデータをステージングデータストアに記憶すること５０６を含む。そのようなステージングデータストアは、図２に関連して説明されるように、ペイロードデータキャッシュ２２８によって提供されるような一時データストアを含み得る。いくつかの実施形態では、ペイロードデータのみがステージングストアに記憶される。他の実施形態では、ペイロードデータに関連するメタデータも、ステージングストアに記憶され得る。一実施形態では、データ整合性は、ステージングデータストアに記憶される前に（例えば、ダイジェストに基づいて）検証される。
【００８９】
一実施形態では、過程５００は、例えば、記憶要求への応答において、記憶されるデータに関連付けられたデータオブジェクト識別子を提供すること５０８を含む。上述されるように、データオブジェクト識別子を使用して、後続の要求によって記憶されたデータを検索、削除、または別様に参照し得る。一実施形態では、データオブジェクト識別子は、記憶されたデータオブジェクト、ペイロードデータの整合性を検証するように使用され得るサイズ、ダイジェスト、タイムスタンプ等のペイロード検証情報、データオブジェクト識別子それ自体およびデータオブジェクト識別子に符号化された情報のようなメタデータの整合性を検証するように使用され得るエラー検出コードのようなメタデータ検証情報等、の場所を特定するように使用され得る記憶場所情報を符号化し得る。一実施形態では、データオブジェクト識別子は、後続の顧客要求を検証するかまたは承認するように使用される情報も符号化し得る。例えば、データオブジェクト識別子は、データオブジェクトが記憶される論理データコンテナの識別子を符号化し得る。このデータオブジェクトを検索する後続の要求では、論理データコンテナ識別子を使用して、要求するエンティティが論理データコンテナおよびそれ故に論理データコンテナに含まれるデータオブジェクトへのアクセスを有するかどうかを判定し得る。いくつかの実施形態では、データオブジェクト識別子は、顧客（例えば、データオブジェクト等のためのグローバル一意識別子、ＧＵＩＤ）によって供給された情報および／または過程５００を実施しているシステムによって収集または計算された情報（例えば、記憶場所情報）に基づいて情報を符号化し得る。いくつかの実施形態では、データオブジェクト識別子を生成することは、暗号秘密キーを用いて上述の情報のいくつかまたは全てを暗号化することを含み得る。いくつかの実施形態では、暗号秘密キーは、定期的に回転され得る。いくつかの実施形態では、データオブジェクト識別子は、上述のものとは異なる時期に生成され得るおよび／または提供され得る。例えば、データオブジェクト識別子は、（以下に記載の）記憶ジョブが生成されたおよび／または完了した後に生成され得るおよび／または提供され得る。
【００９０】
一実施形態では、データオブジェクト識別子を提供すること５０８は、記憶場所を、データが実際にそこに記憶される前に、決定することを含み得る。例えば、そのような決定は、動作ステータス（例えば、有効かまたは無効か）、利用可能な記憶空間、データ独立性要件等の存在するデータ記憶エンティティについてのインベントリ情報に少なくとも部分的に基づき得る。図２によって例示される環境２００のような環境では、そのような決定は、図２に関連して上述されるように、記憶ノードレジストラ２４８のようなサービスによって実装され得る。いくつかの実施形態では、そのような決定は、図２に関連して説明されるように、記憶アロケータ２５６のようなサービスによって１つ以上の物理的な記憶デバイス上に新たな記憶空間（例えば、ボリューム）を割り当てることを含み得る。
【００９１】
一実施形態では、記憶場所識別子は、上で決定された記憶場所を表すように生成され得る。そのような記憶場所識別子は、例えば、ボリューム識別子構成要素およびデータオブジェクト識別子構成要素を含むボリューム参照オブジェクトを含み得る。ボリューム参照構成要素は、データが上に記憶されるボリュームを識別し得、データオブジェクト識別子構成要素は、ボリュームのどこにデータが記憶されるかを識別し得る。一般に、記憶場所識別子は、データが体系化される（階層のような）論理または物理的なデータ記憶トポロジー内の種々のレベルを識別する構成要素を含み得る。いくつかの実施形態では、記憶場所識別子は、実際のペイロードデータが記憶されるところかまたはデータが記憶されるところへの参照のチェーンを指し得る。
【００９２】
一実施形態では、データオブジェクト識別子は、ペイロードデータのような記憶されるデータの少なくとも一部分のダイジェスト（例えば、ハッシュ）を符号化する。いくつかの実施形態では、ダイジェストは、顧客によって提供されたダイジェストに少なくとも部分的に基づき得る。他の実施形態では、ダイジェストは、ペイロードデータに基づいて、最初から計算され得る。
【００９３】
一実施形態では、過程５００は、長期データストアへデータを持続するための記憶ジョブを作成すること５１０および実行のための記憶ジョブをスケジュールすること５１２を含む。図２に関連して説明されるように環境２００では、上述のように、ステップ５０８、５１０、および５１２は、直接Ｉ／Ｏのための制御プレーン２１０および共有制御プレーン２１２の構成要素によって少なくとも部分的に実装され得る。具体的には、一実施形態では、ジョブトラッカー２３０は、ジョブ記録を作成し、ジョブトラッカーストア２３２にジョブ記録を記憶する。上述されるように、ジョブトラッカー２３０は、ジョブトラッカーストア２３２に対するトランザクションの合計数を削減するようにバッチ処理を遂行し得る。加えて、ジョブトラッカーストア２３２は、並列処理、クリーンアップ動作等を容易にするように、分割され得るかまたは別様に最適化され得る。ジョブ記録は、上述のように、顧客アカウント識別子、ジョブ識別子、記憶場所識別子、ペイロードデータキャッシュ２２８に記憶されたデータへの参照、ジョブステータス、ジョブ作成および／または有効期間等のジョブ関連情報を含み得る。いくつかの実施形態では、記憶ジョブは、データオブジェクト識別子が生成されるおよび／または提供される前に作成され得る。例えば、記憶ジョブ識別子は、データオブジェクト識別子の代わりにかまたはデータオブジェクト識別子に加えて、上のステップ５０８で記憶要求に応答して提供され得る。
【００９４】
一実施形態では、実行のために記憶ジョブをスケジュールすること５１２は、図２の共有制御プレーン２１２に関連して説明されるように、待ち行列に基づくロードのレベリングまたは分散、ジョブ分割等のジョブ計画および最適化を遂行することを含む。例えば、一実施形態では、ジョブ要求分散装置２３８は、Ｉ／Ｏのための制御プレーン２１０から入ってくる平均ロードレベル（ジョブ）までピークを弱め、データプレーン２１４に管理可能な作業負荷を送達するために、スケジュールするアルゴリズムに従ってジョブ要求待ち行列２３６から記憶ノードマネージャジョブストア２４０にジョブアイテムを転送する。別の実施例として、記憶ノードマネージャジョブストア２４０は、記憶ノードマネージャ２４４のような複数のワーカーによってジョブの並列処理を容易にするように分割され得る。なおも別の実施例として、記憶ノードマネージャジョブストア２４０は、バッチ処理および他のジョブ最適化を容易にするように問い合わせること、分類すること、および他の機能性を提供し得る。
【００９５】
一実施形態では、過程５００は、図２に関連して説明されるように、記憶された記憶ノードマネージャジョブ２４０から例えば、記憶ノードマネージャ２４４によって実行するための記憶ジョブを選択すること５１４を含む。記憶ジョブは、バッチ処理のために他のジョブと共に選択され得るか（５１４）、または別様に上述のジョブ計画および最適化の結果として別様に選択され得る。
【００９６】
一実施形態では、過程５００は、図２に関連して上述のペイロードデータキャッシュ２２８のようなステージングストアからデータを取得すること５１６を含む。いくつかの実施形態では、データの整合性は、例えば、サイズ、ダイジェスト、エラー検出コード等を確証することによって、検査され得る。
【００９７】
一実施形態では、過程５００は、暗号化スキーム、消失訂正符号化のような冗長性符号化スキーム、独立ディスクの冗長アレイ（ＲＡＩＤ）符号化スキーム、複製等の１つ以上のデータ符号化スキームを取得すること５１８を含む。いくつかの実施形態では、そのような符号化スキームは、異なる要件に適合するように展開する。例えば、暗号キーは、定期的に回転され得、消失訂正符号化スキームの拡大要因は、長い期間をかけて異なるハードウェア構成、冗長性要件等に調整され得る。
【００９８】
一実施形態では、過程５００は、取得された符号化スキームで符号化すること５２０を含む。例えば、一実施形態では、データは暗号化され、暗号化されたデータは消失訂正符号化される。一実施形態では、図２に関連して説明される記憶ノードマネージャ２４４は、本明細書に記載のデータ符号化を遂行するように構成され得る。一実施形態では、そのような符号化スキームのアプリケーションは、耐障害性を提供するように、記憶デバイス、記憶ノード、データセンター等の異なる記憶エンティティにわたって記憶され得る複数の符号化されたデータ構成要素または分割データベースを生成する。データが複数のパーツ（複数パーツアップロードの場合等）を含み得る一実施形態では、各パーツは、本明細書に記載されるように、符号化されて記憶され得る。
【００９９】
一実施形態では、過程５００は、そのような符号化されたデータ構成要素のための記憶エンティティを決定すること５２２を含む。例えば、図２によって例示される環境２００では、記憶ノードマネージャ２４４は、ボリューム識別子を用いて記憶ノードレジストラ２４８に問い合わせることによって符号化されたデータ構成要素を記憶する複数の記憶ノード２４６を決定し得る。そのようなボリューム識別子は、記憶されるデータに関連付けられた記憶場所識別子に加わり得る。所与のボリューム識別子を有するクエリーに応答して、一実施形態では、記憶ノードレジストラ２４８は、符号化されたデータ構成要素を記憶する記憶ノード２４６のネットワークの場所（エンドポイント、ＤＮＳ名、ＩＰアドレス等を含む）のリストを戻す。図２に関連して説明されるように、記憶ノードレジストラ２４８は、自己報告され動的に提供されたおよび／または更新された記憶ノード２４６それら自体からのインベントリ情報に基づいてそのようなリストを決定し得る。いくつかの実施形態では、そのような決定は、データ独立性、耐障害性、ロード分散、電力節約、データ局所性、および他の検討事項に基づく。いくつかの実施形態では、記憶レジストラ２４８は、図２に関連して説明されるように、例えば、記憶アロケータ２５６を呼び出すことによって、新たな記憶空間を割り当てさせ得る。
【０１００】
一実施形態では、過程５００は、所定の記憶エンティティで符号化されたデータ構成要素（複数可）を記憶すること５２４を行わせることを含む。例えば、図２によって例示される環境２００では、記憶ノードマネージャ２４４は、は、所定の記憶場所でデータ構成要素を記憶するように上で決定された各記憶ノード２４６を要求し得る。データ構成要素を記憶する記憶ノードマネージャ２４４から記憶要求を受け取ることに応じて、各記憶ノード２４６は、接続された記憶デバイスにデータ構成要素を記憶させ得る。いくつかの実施形態では、データオブジェクト識別子の少なくとも一部分は、符号化された形態かまたは非符号化された形態かのいずれかでデータ構成要素のうちの全てまたはいくつかと共に記憶され得る。例えば、データオブジェクト識別子は、各データ構成要素のヘッダおよび／またはボリューム構成要素に記憶されたボリューム構成要素インデックスに記憶され得る。いくつかの実施形態では、記憶ノード２４６は、記憶ノードマネージャ２４４からの要求を処理するようにバッチ処理または他の最適化を遂行し得る。
【０１０１】
一実施形態では、記憶ノード２４６は、要求する記憶ノードマネージャ２４４にデータが成功裏に記憶されたかどうかを示す確認応答を送信する。いくつかの実施形態では、記憶ノード２４６は、何らかの理由のため、要求が満たされることができなかったとき、エラーメッセージを戻す。例えば、記憶ノードが同一の記憶場所に記憶する２つの要求受け取った場合、１つまたは両方の要求が失敗する可能性がある。一実施形態では、記憶ノード２４６は、データを記憶することに先駆けて検証検査を遂行し、検証検査が失敗に終わった場合はエラーを戻す。例えば、データ整合性は、エラー検出コードまたはダイジェストを検査することによって確証され得る。別の実施例として、記憶ノード２４６は、例えば、ボリュームインデックスに基づいて、記憶要求によって識別されたボリュームが記憶ノードによって記憶されること、および／またはボリュームがデータ構成要素を記憶するのに十分な空間を有すること、を確証し得る。
【０１０２】
いくつかの実施形態では、記憶ノードマネージャ２４４が要求された記憶ノード２４６の少なくともサブセット（記憶クォーラム）から肯定確認応答を受け取ると、データ記憶は、成功であるとみなされる。いくつかの実施形態では、記憶ノードマネージャ２４４は、ジョブを再試行するのに必要な状態を消去する前に、確認応答のクォーラムが受け取られるまで待機し得る。そのような状態情報は、確認応答が受け取られていない符号化されたデータ構成要素を含み得る。他の実施形態では、処理能力を改善するように、記憶ノードマネージャ２４４は、確認応答のクォーラムを受け取る前にジョブを再試行するのに必要な状態を消去し得る。
【０１０３】
一実施形態では、過程５００は、例えば、データプレーン２１４によって維持されたメタデータ（記憶デバイスのためのインデックスおよび記憶空間情報、記憶ノードレジストラストア２５０で記憶されたマッピング情報等）、制御プレーン２１０および２１２によって維持されたメタデータ（ジョブ関連情報等）、メタデータプレーン２１６によって維持されたメタデータ等（コールドインデックス等）を含むメタデータ情報５２６を更新することを含む。種々の実施形態では、そのようなメタデータ情報のいくつかは、性能および費用への影響を減少させるようにバッチ処理を介しておよび／または定期的に更新され得る。例えば、データプレーン２１４では、記憶ノードレジストラストア２５０によって維持される情報は、新たに記憶されたデータのボリューム識別子の付加的なマッピングを提供するように、そしてそのようなマッピングがまだそこに存在しない場合はデータ構成要素がその上に記憶される記憶ノード２４６を提供するように、更新され得る。別の実施例には、記憶デバイス上のボリュームインデックスは、新たに追加されたデータ構成要素を反映するように更新され得る。
【０１０４】
共有制御プレーン２１２では、完了したジョブのためのジョブエントリーは、図２に関連して説明されるように、記憶ノードマネージャジョブストア２４０から消去され得、ジョブ結果待ち行列２４２に追加され得る。直接Ｉ／Ｏのための制御プレーン２１０では、ジョブトラッカーストア２３２におけるジョブ記録のステータスは、例えば、ジョブ結果待ち行列２４２を監視するジョブトラッカー２３０によって更新され得る。種々の実施形態では、完了できないジョブは、何度も再試行されてもよい。例えば、一実施形態では、新たなジョブは、異なる場所でデータを記憶するように作成され得る。別の実施例として、（例えば、記憶ノードマネージャジョブストア２４０、ジョブトラッカーストア２３２等に）存在するジョブ記録は、同一ジョブの再試行を容易にするように更新され得る。
【０１０５】
Ｉメタデータプレーン２１６では、メタデータは、新たに記憶されたデータを反映するように更新され得る。例えば、完了したジョブは、ジョブ結果待ち行列２４２から呼び戻してメタデータマネジャジョブストア２５８に引き戻され得、コールドインデックスストア２６２に記憶されたような更新されたインデックスを生成するようにメタデータマネジャ２６０によってバッチ処理され得る。別の実施例には、顧客情報は、計測および課金目的のために変更を反映するように更新され得る。
【０１０６】
最終的に、いくつかの実施形態では、記憶ジョブが成功裏に完了されると、記憶ジョブに関連付けられたジョブ記録、ペイロードデータ、および他のデータは、図２に関連して説明されるように、例えば、クリーンアップエージェント２３４によって消去され得る。いくつかの実施形態では、そのような消去は、バッチ処理、並列処理等によって処理され得る。
【０１０７】
図６は、少なくとも１つの実施形態に従う、データを検索するための例示的な過程５００を例示する。一実施形態では、アーカイブデータ記憶システム２０６の１つ以上の構成要素は、図２に関連して説明されるように、集合的に過程６００を遂行し得る。
【０１０８】
一実施形態では、過程６００は、上述のように、過程５００によって記憶されたようなデータを検索するデータ検索要求を受け取ること６０２を含む。そのようなデータ検索要求は、上述のように、過程５００のステップ５０８によって提供されるようなデータオブジェクト識別子か、または検索されるデータを識別するように使用され得る任意の他の情報を含み得る。
【０１０９】
一実施形態では、過程６００は、要求を受け取ること６０２に応じて、データ検索要求を処理すること６０４を含む。そのような処理することは、例えば、顧客を認証すること、アクセス制御ポリシーに対して要求されたアクセスを承認すること、計測および課金関連のアクティビティを遂行すること等を含み得る。一実施形態では、そのような処理することは、図２に関連して説明されるようなフロントエンド２０８のサービスによって遂行され得る。一実施形態では、そのような要求は、例えば、バッチモードにおいて他の要求に関連して処理され得る。
【０１１０】
一実施形態では、検索要求を処理すること６０４は、検索要求に含まれるデータオブジェクト識別子に少なくとも部分的に基づき得る。上述されるように、データオブジェクト識別子は、記憶場所情報、サイズ、作成タイムスタンプ、ペイロードダイジェスト等のペイロード検証情報、メタデータ検証情報、ポリシー情報等を符号化し得る。一実施形態では、検索要求を処理すること６０４は、例えば、プライベート暗号キーを用いておよび検索要求を検証する復号された情報のうちの少なくともいくつかを用いて、データオブジェクト識別子に符号化された情報を復号することを含む。例えば、ポリシー情報は、要求する検索要求のエンティティが、要求されたアクセスを遂行する要求された許可を有することを検証するように使用され得るアクセス制御情報を含み得る。別の実施例として、メタデータ検証情報は、データオブジェクト識別子の整合性またはその構成要素を確証するように使用され得る巡回冗長検査（「ＣＲＣ」）のようなエラー検出コードを含み得る。
【０１１１】
一実施形態では、過程６００は、データ検索要求に対応するデータ検索ジョブを作成すること６０６、および例えば、データ検索要求への応答において、データ検索ジョブに関連付けられたジョブ識別子を提供すること６０８を含む。いくつかの実施形態では、データ検索ジョブを作成すること６０６は、図５に例示される過程５００のステップ５１０に関連して説明されるようなデータ記憶ジョブを作成することに類似している。例えば、一実施形態では、ジョブトラッカー２３０は、データオブジェクト識別子に符号化された少なくともいくつかの情報および／またはジョブ有効期間等の付加的な情報を含むジョブ記録を作成し得、ジョブトラッカーストア２３２にジョブ記録を記憶し得る。上述されるように、ジョブトラッカー２３０は、ジョブトラッカーストア２３２に対するトランザクションの合計数を削減するようにバッチ処理を遂行し得る。加えて、ジョブトラッカーストア２３２は、並列処理、クリーンアップ動作等を容易にするように、分割され得るかまたは別様に最適化され得る。
【０１１２】
一実施形態では、過程６００は、上で作成されたデータ検索ジョブをスケジュールすること６１０を含む。いくつかの実施形態では、実行のためにデータ検索ジョブをスケジュールすること６１０は、図５の過程５００のステップ５１２に関連して説明されるようなジョブ計画および最適化を遂行することを含む。例えば、データ検索ジョブは、ジョブ待ち行列の中に提出され得、費用、電力管理スケジュール等に少なくとも部分的に基づいて他のジョブと共にバッチ処理のためにスケジュールされ得る。別の実施例には、データ検索ジョブは、データ局所性等に基づいて他の検索ジョブと結合され得る。
【０１１３】
一実施形態では、過程６００は、図２に関連して説明されるように、記憶された記憶ノードマネージャジョブ２４０から例えば、記憶ノードマネージャ２４４によって実行するためのデータ検索ジョブを選択すること６１２を含む。検索ジョブは、バッチ処理のために他のジョブと共に選択され得るか（６１２）、または別様に上述のジョブ計画および最適化の結果として別様に選択され得る。
【０１１４】
一実施形態では、過程６００は、上述の過程５００のような記憶過程によって生成される符号化されたデータ構成要素を記憶する記憶エンティティを決定すること６１４を含む。一実施形態では、記憶ノードマネージャ２４４は、上の、過程５００のステップ５２２に関連して論じられるものに類似の方式で、符号化されたデータ構成要素を検索する複数の記憶ノード２４６を決定し得る。例えば、そのような決定は、ロード分散、電力節約、効率性、および他の検討事項に基づき得る。
【０１１５】
一実施形態では、過程６００は、検索されたデータを復号するように使用され得る１つ以上のデータ復号スキームを決定すること６１６を含む。典型的に、そのような復号スキームは、元のデータが前に記憶された際に元のデータに適用された符号化スキームに対応する。例えば、そのような復号スキームは、暗号キー、消失訂正復号化等による解読を含み得る。
【０１１６】
一実施形態では、過程６００は、過程６００のステップ６１４で決定された記憶エンティティから符号化されたデータ構成要素のうちの少なくともいくつかを検索することを行わせること６１８を含む。例えば、図２によって例示される環境２００では、データ検索ジョブを担う記憶ノードマネージャ２４４は、上で決定された記憶ノード２４６のサブセットにそれらの対応するデータ構成要素を検索するように要求し得る。いくつかの実施形態では、符号化されたデータ構成要素の最小数は、その数がデータを符号化するように使用されたデータ冗長性スキームに少なくとも部分的に基づいて決定され得る（例えば、消失訂正符号化の拡大要因）、元のデータを再構築するのに必要とされる。そのような実施形態では、記憶ノードのサブセットは、最小数以上の符号化されたデータ構成要素が検索されるように選択され得る。
【０１１７】
記憶ノード２４６の各サブセットは、記憶ノードマネージャ２４４からデータ構成要素を検索する要求を受け取ることに応じて、例えば、（データオブジェクト識別子のパーツである）記憶場所識別子の整合性を検査すること、記憶ノードが要求されたデータ構成要素を確かに保持することを確証すること等によって要求を検証し得る。検証が成功すると、記憶ノードは、記憶場所識別子に少なくとも部分的に基づいてデータ構成要素の場所を特定し得る。例えば、上述のように、記憶場所識別子は、ボリューム識別子構成要素と、データが記憶されるボリュームを識別するボリューム参照構成要素であるデータオブジェクト識別子構成要素と、を含むボリューム参照オブジェクトを含み得、データオブジェクト識別子構成要素は、ボリュームのどこにデータが記憶されているかを識別し得る。一実施形態では、記憶ノードは、例えば、接続されたデータ記憶デバイスからデータ構成要素を読み出し、検索を要求した記憶ノードマネージャに検索されたデータ構成要素を送信する。いくつかの実施形態では、データ整合性は、例えば、データ構成要素識別子を確証することによって、検査されるか、または検索ジョブに関連付けられたデータ構成要素識別子によって示されたものと同じであるそれらの一部分である。いくつかの実施形態では、記憶ノードは、データ構成要素の検索に関連してバッチングまたは他のジョブ最適化を遂行し得る。
【０１１８】
一実施形態では、過程６００は、過程６００のステップ６１６で決定された１つ以上のデータ復号スキームで検索された符号化されたデータ構成要素の少なくとも最小数を復号すること６２０を含む。例えば、一実施形態では、検索されたデータ構成要素は、消失訂正復号化され得、次いで解読され得る。いくつかの実施形態では、データ整合性検査は、例えば、データオブジェクト識別子に符号化されたペイロード整合性検証情報（例えば、サイズ、タイムスタンプ、ダイジェスト）を用いて、再構築されたデータ上で遂行される。いくつかの場合では、検索ジョブは、検索されたデータ構成要素の最小数未満の数、データ整合性検査の失敗等が原因で失敗する可能性がある。そのような場合には、検索ジョブは、図５に関連して説明されるものに類似の様式で再試行され得る。いくつかの実施形態では、元のデータは、データの複数のパーツを含み、各パーツは、符号化されて記憶される。そのような実施形態では、検索中、データの各パーツのために符号化されたデータ構成要素は、元のパーツを形成するように検索されて復号され得（例えば、消失訂正復号化されて解読される）、復号されたパーツは、元のデータを形成するように組み合され得る。
【０１１９】
一実施形態では、過程６００は、図２に関連して説明されるペイロードデータキャッシュ２２８のようなステージングストアに再構築されたデータを記憶することを含む。いくつかの実施形態では、ステージングストアに記憶されたデータ６２２は、一時期または無期限に、顧客によるダウンロードに使用可能であり得る。一実施形態では、データ整合性は、データがステージングストアに記憶される前に、（例えば、ダイジェストを用いて）検査され得る。
【０１２０】
一実施形態では、過程６００は、検索ジョブの完了の通知を、検索要求の要求元端末に、または、そのような通知を受け取るように別様に構成された別の１つもしくは複数のエンティティに提供すること６２４を含む。そのような通知は、個別にまたは数回に分けて提供され得る。他の実施形態では、検索ジョブのステータスは、例えば、顧客からのポーリング要求に応じて提供され得る。
【０１２１】
図７は、少なくとも１つの実施形態に従う、データを削除するための例示的な過程７００を例示する。一実施形態では、アーカイブデータ記憶システム２０６の１つ以上の構成要素は、図２に関連して説明されるように集合的に過程７００を遂行し得る。
【０１２２】
一実施形態では、過程７００は、上述のように、過程５００によって記憶されたようなデータを削除するデータ削除要求を受け取ること７０２を含む。そのようなデータ検索要求は、上述のように、過程５００のステップ５０８によって提供されるようなデータオブジェクト識別子か、または削除されるデータを識別するように使用され得る任意の他の情報を含み得る。
【０１２３】
一実施形態では、過程７００は、要求を受け取ること７０２に応じて、データ削除要求を処理すること７０４を含む。いくつかの実施形態では、処理すること７０４は、上述のように、過程５００のステップ５０４および過程６００のステップ６０４のためのものに類似している。例えば、一実施形態では、処理すること７０４は、データ削除要求に含まれるデータオブジェクト識別子に少なくとも部分的に基づく。
【０１２４】
一実施形態では、過程７００は、データ削除要求に対応するデータ検索ジョブを作成すること７０６を含む。そのような検索ジョブは、過程５００のステップ５１０に関連して説明される記憶ジョブの作成および過程６００のステップ６０６に関連して説明される検索ジョブの作成に類似して作成され得る。
【０１２５】
一実施形態では、過程７００は、データが削除された確認応答を提供すること７０８を含む。いくつかの実施形態では、そのような確認応答は、データ削除要求が同期に処理されるという認識を提供するようにデータ削除要求に応答して提供され得る。他の実施形態では、データ削除ジョブに関連付けられたジョブ識別子は、データ検索要求のためのジョブ識別子の提供に類似して提供され得る。
【０１２６】
一実施形態では、過程７００は、実行のためのデータ削除ジョブをスケジュールすること７０８を含む。いくつかの実施形態では、データ削除ジョブをスケジュールすること７０８は、上述のように、過程５００のステップ５１２および過程６００のステップ６１０に関連して説明されるようなものに類似して実装され得る。例えば、近接して位置するデータのためのデータ削除ジョブは、結合され得る、および／またはバッチ処理され得る。別の実施例のために、データ削除ジョブには、データ検索ジョブより低い優先権が割り当てられ得る。
【０１２７】
いくつかの実施形態では、記憶されたデータは、顧客によって指定されるかまたは初期設定によって設定される関連付けられる有効期間を有し得る。そのような実施形態では、削除ジョブは、作成され得（７０６）、データの有効期間にまたはデータの有効期間近くに自動的にスケジュールする（７１０）。いくつかの実施形態では、有効期間は、データがまだ利用可能かまたは回復可能な間である猶予期間に更に関連付けられ得る。いくつかの実施形態では、保留中の削除の通知は、有効期間前に、有効期間に、または有効期間後に提供され得る。
【０１２８】
いくつかの実施形態では、過程７００は、図２に関連して説明されるように、記憶された記憶ノードマネージャジョブ２４０から実行するためのデータ削除ジョブを例えば、記憶ノードマネージャ２４４によって選択すること７１２を含む。削除ジョブは、バッチ処理のために他のジョブと共に選択され得るか７１２、または別様に上述のジョブ計画および最適化の結果として別様に選択され得る。
【０１２９】
いくつかの実施形態では、過程７００は、上述の過程５００のような記憶過程によって生成されるデータ構成要素を記憶するデータ構成要素のための記憶エンティティを決定すること７１４を含む。一実施形態では、記憶ノードマネージャ２４４は、上述の過程６００のステップ６１４に関連して論じられるものに類似の方式で、符号化されたデータ構成要素を検索する複数の記憶ノード２４６を決定し得る。
【０１３０】
いくつかの実施形態では、過程７００は、データ構成要素のうちの少なくともいくつかを削除することを行わせること７１６を含む。例えば、図２によって例示される環境２００では、データ削除ジョブを担う記憶ノードマネージャ２４４は、削除されるデータのためのデータ構成要素を記憶する記憶ノードの１組を識別し得、少なくともそれらの記憶ノードのサブセットに、それらの記憶ノードの個別のデータ構成要素を削除することを要求する。記憶ノード２４６の各サブセットは、記憶ノードマネージャ２４４からデータ構成要素を削除する要求を受け取ることに応じて、例えば、（データオブジェクト識別子のパーツである）記憶場所識別子の整合性を検査すること、記憶ノードが要求されたデータ構成要素を確かに保持することを確証すること等によって要求を検証し得る。検証が成功すると、記憶ノードは、接続された記憶デバイスからデータ構成要素を削除し得、記憶ノードマネージャ２４４に動作が成功だったかどうかを示す確認応答を送信する。一実施形態では、複数のデータ削除ジョブは、近接して一緒に位置するデータオブジェクトがまとめて削除され得るようにバッチにおいて実行され得る。いくつかの実施形態では、記憶ノードマネージャ２４４が少なくとも記憶ノード２４６のサブセットから肯定確認応答を受け取ると、データ削除は成功であるとみなされる。サブセットのサイズは、データが、未削除のデータ構成要素からは後に再構築されることができないことを確実にするように構成され得る。失敗したかまたは未完了のデータ削除ジョブは、それぞれ、過程５００および過程６００に関連して説明される、データ記憶ジョブおよびデータ検索ジョブを再試行することに類似の方式で再試行され得る。
【０１３１】
一実施形態では、過程７００は、過程５００のステップ５２６に関連して説明されるもののようなメタデータ情報を更新すること７１８を含む。例えば、削除動作を実行する記憶ノードは、インデックス、空き空間情報等を含む記憶情報を更新し得る。一実施形態では、記憶ノードは、記憶ノードレジストラまたは記憶ノードレジストラストアに更新を提供し得る。種々の実施形態では、そのようなメタデータ情報のいくつかは、性能および費用への影響を減少させるようにバッチ処理を介しておよび／または定期的に更新され得る。
【０１３２】
上述のように、本開示の実施形態は、データ記憶管理に使用された従来のＡＰＩを超える多数の利点を提供するＡＰＩを活用する。図８〜１１は、本開示の種々の実施形態および提供され得る応答に従って行われ得るＡＰＩ呼び出しのグラフィック表示である。呼び出しは、上述される、顧客１０２、２０２によって行われ得、応答は、上述されるアーカイブデータ記憶サービスのようなデータ記憶サービスによって行われ得る。応答は、本明細書に述べられた種々のプロトコル（または他の好適なプロトコル）を用いて電子的に伝送され得、例えば、図２に関連して上述されるフロントエンド２０８から伝送され得る。加えて、各図８〜１１が、ＡＰＩ呼び出しおよび応答に含まれ得る情報の特定の集合体を例示する一方で、変形例は、本開示の範囲内である。例えば、例示されたＡＰＩ呼び出しのうちのいずれかは、より少ないかまたはより多い情報構成要素を有し得、下に記述されるように、多くの構成要素は、文脈依存であり得る。例えば、いくつかの実施形態では、同一のＡＰＩ構成要素を用いて行われた全てのＡＰＩ呼び出しが、同一の情報構成要素に含まれ得るとは限らない。１つのパラメータのための非自明な情報の種類および／または存在は、例えば、別のパラメータの値により様々であり得る。同様に、応答の構成要素のための非自明な情報の種類および／または存在は、別のパラメータおよび／または応答を引き起こしたＡＰＩ呼び出しのパラメータの値により様々であり得る。
【０１３３】
具体的な図８に戻ると、図８は、上述されるようなＰＵＴ  ＡＰＩ呼び出しのグラフィック表示を示す。図８に例示されるように、ＰＵＴ  ＡＰＩ呼び出しは、呼び出しのための１つ以上のパラメータを指定し得る。この実施例では、パラメータは、アカウント識別子、デスティネーション、データオブジェクト長、ディスクリプション、ペイロードハッシュ、およびペイロードツリーハッシュを含む。例えば、ＲＥＳＴ要求本体において、ペイロード（例えば記憶されるデータ）も、提供され得る。ペイロードは、一例として、データオブジェクトの一部分かまたは全てであり得る。データオブジェクトの一部分のみの場合、以下に説明されるように、ペイロードは、それがダウンロードされる方式に類似の方式でアップロードされ得る。更に、データオブジェクトの一部分のみ（またはデータの他の集合体）の場合、ＰＵＴ  ＡＰＩ呼び出しは、ペイロードが、伝送後に確証され得、データオブジェクトが、ペイロードのパーツの全てが伝送されたとき確証され得るように、ペイロードのツリーハッシュおよび完全なデータオブジェクトのツリーハッシュの両方を含み得る。
【０１３４】
アカウント識別子は、データ記憶サービス（またはデータ記憶サービスを管理する組織）を有するアカウントの識別子であり得る。データ記憶サービスは、課金、承認、ポリシー適用等の目的のためのアカウント識別子を活用し得る。デスティネーションは、記憶されるデータオブジェクトのための論理場所を符号化する情報であり得る。例えば、ＡＰＩが上述される図２〜７に関連するようなアーカイブデータ記憶サービスに関連して使用されると、デスティネーションは、論理データコンテナ識別子を符号化し得る。アーカイブデータ記憶システムは、次いで、アップロードされたデータオブジェクトが指定された論理データコンテナ識別子に関連付けられるように対応するジョブを処理し得る。
【０１３５】
データオブジェクト長は、ＰＵＴ  ＡＰＩ呼び出しの結果として記憶されるデータオブジェクトのサイズであり得る。データオブジェクトサイズを指定する他の方法が使用されてもよいが、データオブジェクト長は、バイトで指定され得る。ディスクリプションは、顧客のユーザ（またはコンピュータシステム）がアップロードされているデータオブジェクトについての情報を提供することを可能にする、任意のパラメータであり得る。ディスクリプションは、例えば、データオブジェクトを記憶するデータ記憶サービスによって使用される識別子から異なり得る、データオブジェクトを識別するように顧客によって使用される識別子を含み得る。いくつかの実施形態では、ディスクリプションは、顧客が所望する任意の情報であり得る。顧客は、例えば、顧客コンピュータシステムが後に顧客の必要性に当たり情報をディスクリプションに処理することを可能にする顧客コンピュータシステムによって認識されるフォーマットで情報を含み得る。
【０１３６】
ペイロードハッシュは、ＰＵＴ  ＡＰＩ呼び出しを用いてアップロードされるデータオブジェクトに少なくとも部分的に基づいて計算された値であり得る。同様に、ペイロードツリーハッシュは、アップロードされるデータオブジェクトのツリーハッシュであり得る。データ記憶サービスによってペイロードハッシュおよび／またはペイロードツリーハッシュを使用して、アップロードされたときペイロードが正しくアップロードされたかどうかを判定し得る。ペイロードハッシュおよび／またはペイロードツリーハッシュのうちの一方または両方が、顧客が提供したものと合わない場合、顧客は、ペイロードを再度アップロードするように試みてもよい。データオブジェクトのツリーハッシュは、顧客およびデータ記憶サービスの両方によって、所定のサイズである例えば１ＭＢの部分にデータオブジェクトを分割することにより（データオブジェクトが所定のサイズの整数の倍数でないサイズを有するとき、１つの部分が所定のサイズを下回る異なるサイズである可能性を有して）コンピュータ処理され得る。ツリーハッシュは、例えば、従来の技術を用いて、コンピュータ処理されてもよい。ツリーハッシュは、ツリーハッシュにおいて上位レベル値であり得、データ構造は、ハッシュツリーのハッシュ、ハッシュツリーのリーフ、および／または任意の他の好適な情報を符号化する。
【０１３７】
いくつかの実施形態では、データオブジェクトは、パーツに分けてアップロードされ得る。したがって、一実施形態では、ＰＵＴ  ＡＰＩ呼び出しは、パーツサイズのような付加的なパラメータを含み得る。一実施形態では、データ記憶サービスは、所定のサイズ（例えば１ＭＢ）またはその整数の倍数である（非終端パーツのための）パーツサイズのみを受け入れるように構成される。この方式で、技術的利点は、ツリーハッシュが、データオブジェクトが所定のサイズまたはその整数の倍数のパーツに分けてアップロードされるかどうかにかかわらず一定であることで実現され得る。
【０１３８】
記述されるように、図８は、ＰＵＴ  ＡＰＩ呼び出しへの応答も示す。この例示説明となる実施例では、応答は、場所、データオブジェクト識別子、およびペイロードツリーハッシュを含む。いくつかの実施形態では、場所は、データオブジェクトの相対ＵＲＩ経路であり得る。データオブジェクト識別子は、上述されるような、データオブジェクトの識別子であり得る。上述のように、データオブジェクト識別子は、データ記憶サービスが永続的にデータオブジェクトを記憶する前にデータ記憶サービスからの応答に提供され得、それによって、顧客の視点からは同期であるが実装の観点からは非同期である応答を行う。ツリーハッシュは、記憶サービスによってコンピュータ処理されるデータオブジェクトのツリーハッシュであり得る。応答を受け取る顧客は、例えば、データオブジェクトが正しくアップロードされたことを確実にするようにツリーハッシュと独立してコンピュータ処理されたツリーハッシュとを比較し得る。データオブジェクトの複数パーツアップロードの場合には、応答は、応答を促した呼び出しを用いてアップロードされた特定のパーツのペイロードのツリーハッシュまたは他のハッシュを含み得る。
【０１３９】
論じられたように、本開示の種々の実施形態は、ジョブの概念を活用する。したがって、開示の種々の実施形態に従って、顧客は、種々の種類のジョブを開始するＡＰＩを活用できる。図９は、ジョブを開始するＡＰＩ呼び出しのグラフィック表示の例示説明となる実施例を示す。例示されるように、新規ジョブＡＰＩ呼び出しは、１つ以上のパラメータを含む。この実施例では、パラメータは、データオブジェクト識別子、ディスクリプション、フォーマット、メッセージトピック、およびジョブ種類である。データオブジェクト識別子は、ジョブが関連付けられるデータオブジェクトの識別子であり得、図２〜７に関連して上述されるような識別子であり得る。ディスクリプションは、顧客が上述されるＰＵＴ  ＡＰＩ呼び出しのディスクリプションパラメータのような、ＡＰＩ呼び出しによって開始されるジョブについての情報を提供することを可能にする任意のパラメータであり得る。
【０１４０】
メッセージトピックパラメータは、一実施形態では、潜在的な今後の通知のトピックを指定する情報である。例えば、トピックは、永続性記憶装置から検索されて、顧客によるダウンロードのための用意が整ったデータオブジェクトに対応し得る。一実施形態では、データ記憶サービスまたは別のサービスは、メッセージサービスと通信する。メッセージサービスは、顧客コンピュータシステムが加入できるトピックの構成を可能にし得る。トピックは、ダウンロード用に利用可能になっているデータオブジェクトまたは検索用に用意されているインベントリのような、１つ以上の事象に対応し得る。新規ジョブＡＰＩ呼び出しがメッセージトピックを含む実施形態では、データ記憶サービスは、適切な時間に、メッセージサービスに通知を行い、次に、メッセージサービスが、任意の加入者にメッセージトピックを通知し得る。メッセージサービスからの通知は、電子メール、ショートメッセージサービスメッセージのような任意の好適な形態および／または加入者によって選択可能であり得る任意の好適な通信の方法を取ってもよい。記憶サービスは、ジョブが完了した、ジョブが失敗した、１つ以上の顧客が定義したかまたは他の基準がジョブに関連して見合う等のときのような、任意の適切な時間にメッセージサービスに通知を行い得る。
【０１４１】
フォーマットパラメータは、一実施形態では、ジョブの出力のためのフォーマットを指定するパラメータである。フォーマットパラメータは、あるジョブの種類のためのみに使用され得る。一実施例として、ジョブが論理データコンテナのデータオブジェクトのリストを獲得することである場合、フォーマットパラメータは、ｃｏｍｍａ  ｓｅｐａｒａｔｅｄ  ｖａｌｕｅｓ（ＣＳＶ）またはＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）のようなリストのためのフォーマットを指定し得る。フォーマットは、データ記憶サービスがジョブ出力を提供し得るフォーマットの所定のセットから選択され得る。ジョブが同期に完了されたようないくつかの実施形態では、フォーマットは、新規ジョブＡＰＩ呼び出しへの応答のためのフォーマットを指定するようにも使用され得る。
【０１４２】
記述されるように、複数の種類のジョブが存在し得る。一実施例として、論理データコンテナのインベントリの検索および／または生成が別のジョブ種類に対応し得る一方で、データオブジェクトの検索は、１つのジョブ種類に対応し得る。データオブジェクト検索および論理データコンテナのインベントリが本明細書に説明される際、本開示の範囲は、そのようなジョブ種類に限定されない。付加的な種類が、データオブジェクト検索または論理データコンテナインベントリに加えてまたはその代わりに指定されてもよい。
【０１４３】
一実施形態では、データ記憶サービスが新規ジョブＡＰＩ呼び出しを受け取ると、サービスは、呼び出しにおいて指定されたジョブ種類パラメータに従って、ＡＰＩ呼び出しを処理する。実施例は、より詳細に以下に説明される。
【０１４４】
上述のように、本開示の実施形態は、顧客が、データオブジェクト検索要求のステータスまたは論理データコンテナのインベントリのための要求のステータスのような、保留ジョブのステータスを獲得することを可能にする。図１０は、したがって、保留ジョブについての情報を獲得するＡＰＩ呼び出しの例示説明となる実施例の図表示を示す。一実施形態では、記述ジョブＡＰＩ呼び出しは、上述されるようにジョブのための識別子であり得る、ジョブ識別子を含む。記述ジョブＡＰＩ呼び出しに従って行われた要求に応答して、データ記憶サービスは、１つ以上の情報の断片を含む応答を提供し得る。例えば、図１０の例示説明となる実施例では、応答は、アクション、データオブジェクト識別子、データオブジェクトサイズ、完了ステータス、完了日時、作成日時、インベントリサイズ、ジョブディスクリプション、ジョブ識別子、ジョブに対応するデータオブジェクトのツリーハッシュ（例えばジョブの完了の一部として検索されるデータオブジェクト）、メッセージトピック、ステータスコード、ステータスメッセージ、および／または論理データコンテナ識別子を含み得る。
【０１４５】
アクションは、ジョブ種類が上述されるようなものである、ジョブ種類を指定する情報であり得る。データオブジェクト識別子、データオブジェクトサイズ、ジョブディスクリプション、ジョブ識別子、ツリーハッシュ、メッセージトピック、および／または論理データコンテナ識別子は、上述されるようなものであり得る。完了ステータスは、ジョブ識別子を有するジョブが完了したかどうかを示す情報を含む。完了ステータスは、例えば、関連付けられたジョブが完了したかどうかに対応するブール値であり得る。完了日時は、ジョブが完了した時間（ユニバーサルタイムキーパーとして使用される時計に対して相対的であり得る）を符号化する値であり得る。完了ステータスが、ジョブが完了されていないと示した場合、記述ジョブＡＰＩ呼び出しへの応答は、完了ステータスを含まなくてもよく、一般に、応答の情報は、文脈依存であり得る。完了日時に類似して、作成日時は、記述ジョブＡＰＩ呼び出しが行われた時間に密接に対応し得る、関連付けられたジョブが作成された時間を符号化し得る。ステータスコードは、完了ステータスに類似し得、それゆえ、関連付けられたジョブのステータスを示し得る。ステータスコードは、一実施形態では、ジョブが進行中か、完了したか、または失敗したかどうかを符号化する。他のステータスも、本開示の範囲内である。完了ステータスおよび／またはステータスコードに類似のステータスメッセージは、関連付けられたジョブのステータスについての情報を提供し得る。ステータスメッセージは、例えば、所定の文字列であり得、その値は、例えばジョブが進行中か、失敗したか、または別のステータスを有するかどうか等の文脈により様々である。ステータスメッセージは、「ジョブが失敗した」のような人間が理解可能な表現を提供し得る。ステータスメッセージは、いくつかの実施形態では、完了ステータスおよび／またはステータスコードよりも更なる情報も与え得る。一実施例として、ステータスメッセージは、いつ保留ジョブが完了されるかの見積もりを符号化する情報、ジョブのうちのどのくらいが完了されたかを示す情報、および／またはジョブのステータスに関連する他の情報を含み得る。
【０１４６】
記述されるように、記述ジョブＡＰＩ呼び出しへの応答における値は、文脈依存であり得る。いくつかの情報は、例えば、情報が特定のジョブに関連しない場合、省略されるかまたはヌル値を有し得る。一実施例として、ジョブ種類がインベントリ検索のための１つであるとき、応答は、インベントリサイズを含み得る。そのような応答は、データオブジェクトのサイズを除外し得る。同様に、データオブジェクト検索ジョブのための記述ジョブＡＰＩ呼び出しへの応答は、対応するデータオブジェクトのサイズを含み得るが、任意のインベントリのサイズではない。他の実施例および変形例は、本開示の範囲内であるとみなされる。
【０１４７】
論じられたように、本開示の種々の実施形態は、技術的利点を達成するように非同期要求処理を組み込む。したがって、一実施形態では、データ記憶サービスのためのＡＰＩは、顧客に非同期方式でジョブの出力を獲得させる。図１１は、例えば、ジョブの出力を獲得するためのＡＰＩ呼び出し、すなわちＧＥＴジョブ出力ＡＰＩ呼び出し、の例示説明となる実施例の図表示を示す。図１１に例示されるように、ＧＥＴジョブ出力ＡＰＩ呼び出しは、１つ以上のパラメータを含み得る。示されるように、ＧＥＴジョブ出力ＡＰＩ呼び出しは、上述されるような、ジョブ識別子、および範囲を含む。例えばギガバイトおよび／またはテラバイトのように、データオブジェクトが非常に大きいため、ネットワークを通じて記憶サービスから顧客へデータオブジェクトをダウンロードすることは、困難であり得る。より大きいダウンロードではダウンロードが不成功であった可能性がより大きくなり得、結果として、ダウンロードが、最初から遂行されなければならない場合がある。帯域幅に応じて、ダウンロードを再開することは、データを獲得する際に大幅な遅れを引き起こし得る。
【０１４８】
したがって、範囲パラメータは、一実施形態では、顧客にデータオブジェクト（またはインベントリ等の他の情報）をパーツに分けてダウンロードさせる。完全なデータオブジェクトを要求するＧＥＴジョブ出力ＡＰＩ呼び出しを用いる代わりに、例えば、複数のＡＰＩ呼び出しは、データオブジェクトをパーツに分けてダウンロードするように使用できる。それゆえ、ＧＥＴジョブ出力ＡＰＩ呼び出しの範囲は、ダウンロードされるパーツのためのバイトの範囲を指定し得る。いくつかの実施形態では、顧客は、範囲のための任意の値を指定し得る。また、指定された範囲の欠如は、データ記憶システムに完全なオブジェクト（すなわちパーツに分けていない）をダウンロードする要求を示し得る。他の実施形態では、ＧＥＴジョブ出力ＡＰＩ呼び出しは、呼び出しが成功裏に処理されるように、すなわちデータ記憶サービスが要求された範囲のデータと共に応答するように、ある範囲のみを指定するため、データ記憶サービスによって必要とされる。一実施形態では、データ記憶システムは、整数乗（例えばＮが整数である２N）×ベースサイズ（例えば１ＭＢ）の整数の長さを有するバイトの範囲を必要とする。例えば、データ記憶サービスは、２N＊１ＭＢの長さを有する範囲を必要とし得る。そのような規制は、技術的利点を提供する。例えば、１ＭＢのベースで２の倍数の実施例を用いると、２分ハッシュツリーは、データを１ＭＢの分割領域に分割することおよびその分割領域からハッシュツリーを組み立てることによってコンピュータ処理され得る。この方式で、データ上の操作が１ＭＢ分割領域、２ＭＢ分割領域、４ＭＢ分割領域等を用いて遂行されるかどうかにかかわらず、ハッシュツリーの上位レベルは、同一になる。よって、顧客が、１ＭＢ分割領域で（データの最後の一部分がデータの１ＭＢを下回る可能性を有して）データをアップロードするが、後に８ＭＢ分割領域で（データの最後の一部分がデータの８ＭＢを下回る可能性を有して）データをダウンロードする場合、操作の後でデータを確証するように使用された上位レベルハッシュ（例えばネットワークを通じて転送する）は、同一になる。
【０１４９】
図１１に例示される応答に戻ると、複数の種類の情報が提供され得、そのうちのいくつかは、文脈に依存し得る（すなわち出力が要求されたジョブの種類による）。この実施例では、ＧＥＴジョブ出力ＡＰＩ呼び出しへの応答は、範囲、種類、応答ツリーハッシュ、ディスクリプション、データオブジェクト識別子、データオブジェクトリスト、作成日時、インベントリ日時、データオブジェクトツリーハッシュ、サイズおよび論理データコンテナ識別子、およびペイロードを有し得る（例えば、ダウンロードされたデータオブジェクトまたはそのパーツ、論理データコンテナのインベントリ、および一般に、種々の実施形態に従ってペイロードの一部として提供され得る任意の情報）。（例えば異常またはエラーのない）真の応答であると仮定すると、範囲は、応答を促したＧＥＴジョブ出力ＡＰＩ呼び出しの範囲に等しくなり得る。種類は、上述されるような、ジョブの種類を指定し得る。応答ツリーハッシュは、パーツに分けてダウンロードされると、データオブジェクトまたはデータオブジェクトの一部分のような、応答ペイロードのツリーハッシュであり得る。ディスクリプション、データオブジェクト識別子、データオブジェクトリスト、作成日時、インベントリ日時、データオブジェクトツリーハッシュ、サイズおよび論理データコンテナ識別子は、上述されたようなものであり得る。例えば、インベントリ日時は、インベントリが生成された日時であり得、サイズは、要求されたデータオブジェクトのサイズであり得る。
【０１５０】
図１２は、記憶サービスＡＰＩが種々の実施形態に従って使用され得る方式を例示する情報流れ図の例示説明となる実施例を示す。具体的には、図１２は、データが、一実施形態に従ってデータ記憶サービスから獲得され得る方式を示す。例示されるように、記憶サービスのクライアント（例えば上述されるような顧客）は、検索されるデータオブジェクトのデータオブジェクト識別子のような適切なパラメータを有する新規ジョブＡＰＩ呼び出しを用いること等によって、検索ジョブを開始する電子要求を提出する。例示の目的のためそのようなものとして例示されていないが、検索ジョブは、データオブジェクトのパーツのためのバイトの範囲を指定し得る。
【０１５１】
検索ジョブ開始に応答して、データ記憶サービスは、クライアントに検索ジョブを識別するジョブ識別子を提供し得る。加えて、データ記憶サービスは、図２〜７に関連して上述されるような永続性記憶装置からデータオブジェクトを検索するようにサブシステムにデータオブジェクト要求を提出し得る。示されるように、ジョブ識別子は、クライアントにデータオブジェクトを提供することに先駆けて提供される。また、ジョブ識別子は、データオブジェクト要求がサブシステムに提出される前に、データオブジェクト要求がサブシステムに提出された後に、または同時に、クライアントに提供され得ることに注意されたい。加えて、図１２（ならびに図１３〜１４）に例示目的のため別個に描かれるが、永続性データ記憶装置は、データ記憶サービスの一部であり得る。加えて、永続性データ記憶装置は、（例えばデータ記憶サービスに対して第三者によってホストされて）別個であり得、いくつかの実施形態では、情報のための要求を満たすこと（例えばデータオブジェクトまたはインベントリ）は、ローカルソースならびに第三者ソースの両方から情報を獲得することを含み得る。
【０１５２】
この例示された実施例では、クライアントは、ジョブ識別子を受け取り、ジョブステータスのためのデータ記憶サービスをポーリングするようにジョブ識別子を使用する。例えば、示されるように、クライアントは、ジョブ識別子を指定する記述ジョブＡＰＩ呼び出しを提出し得、適切な応答は、生成され得、上述されるようなクライアントに伝送され得る。クライアントは、データ記憶サービスが永続性データ記憶装置からデータオブジェクトを検索してデータオブジェクトがクライアントに伝送され得る記憶装置にデータオブジェクトを移動させたときのような、ジョブが完了したことを示すステータスが戻されるまでそのような記述ジョブＡＰＩ呼び出しを提出し得る。ジョブが完了したとき、クライアントは、ジョブ識別子を指定するＧＥＴジョブ出力ＡＰＩ呼び出しを提出し得、応答して、データ記憶サービスは、データオブジェクトを提供し得る。そのように例示されていないが、クライアントは、データオブジェクトのパーツのためのバイトの範囲を有するＧＥＴジョブ出力ＡＰＩ呼び出しも提出し得、データ記憶サービスは、応答に従ってパーツを提供し得る。
【０１５３】
図１３は、記憶サービスＡＰＩが種々の実施形態に従って使用され得る方式を例示する情報流れ図の例示説明となる実施例を示す。具体的には、図１３は、一実施形態に従って、通知の受け取りに応じてデータがデータ記憶サービスから獲得され得る方式を示す。例示されるように、記憶サービスのクライアント（例えば上述されるような顧客）は、検索されるデータオブジェクトのデータオブジェクト識別子のような適切なパラメータを有する新規ジョブＡＰＩ呼び出しを用いること等によって、検索ジョブを開始する電子要求を提出する。例示の目的のためそのようなものとして例示されていないが、検索ジョブは、データオブジェクトのパーツのためのバイトの範囲を指定し得る。
【０１５４】
検索ジョブ開始に応答して、データ記憶サービスは、クライアントに検索ジョブを識別するジョブ識別子を提供し得る。加えて、データ記憶サービスは、図２〜７に関連して上述されるような永続性記憶装置からデータオブジェクトを検索するようにサブシステムにデータオブジェクト要求を提出し得る。図１３に示されるように、ジョブ識別子は、クライアントにデータオブジェクトを提供することに先駆けて提供される。また、ジョブ識別子は、データオブジェクト要求がサブシステムに提出される前に、データオブジェクト要求がサブシステムに提出された後に、または同時に、クライアントに提供され得ることに注意されたい。
【０１５５】
この実施例では、データ記憶サービスをポーリングする代わりに、クライアントは、通知が（例えばクライアントにまたはクライアントによって指定された別の場所に）送信されるべきであることを指定するようにＡＰＩを使用した。クライアントは、上述されるような、新規ジョブＡＰＩ呼び出しのメッセージトピックを指定してもよい。一実施形態では、データ記憶サービスが永続性データ記憶装置から要求されたデータオブジェクトを受け取ると、データ記憶サービス（またはデータ記憶サービスから別個だがデータ記憶サービスに関連して機能しているメッセージングサービス）は、クライアント（および／またはクライアントによって指定された場所（複数可））にジョブ完了通知を送信する。クライアントは、次いで、ジョブ完了通知の受け取りに応じて、上述されるように、データオブジェクト（またはＧＥＴジョブ出力ＡＰＩ呼び出しがパーツのための範囲を指定する場合には、それらのパーツ）を受け取るように、ジョブ識別子を指定するＧＥＴジョブ出力ＡＰＩ呼び出しを提出し得る。クライアントは、例えば、通知を処理するように構成され得、結果として、自動的にＧＥＴジョブ出力ＡＰＩ呼び出しを提出し得る。クライアントは、ユーザ命令に応答して、手動的にも（すなわちユーザ入力に引き起こされる）ＧＥＴジョブ出力ＡＰＩ呼び出しを提出し得る。
【０１５６】
図１４は、記憶サービスＡＰＩが種々の実施形態に従って使用され得る方式を例示する情報流れ図の例示説明となる実施例を示す。具体的には、図１４は、一実施形態に従って、通知の受け取りに応じてデータがデータ記憶サービスから獲得され得る方式を示す。この具体的な実施例では、クライアントは、図１２〜１３のような、ＡＰＩ呼び出しに論理データコンテナインベントリを指定することによってデータオブジェクトインベントリジョブを開始する。応答して、上述されるようなジョブ識別子は、生成されてクライアントに伝送されてデータ記憶サービスを形成する。また、データ記憶サービスのサブシステムへのインベントリ要求は、データ記憶サービスによって提供される。データ記憶サービスは、次いで、一実施形態では、インベントリ要求を処理し、バッチ処理の一部として、新規ジョブＡＰＩ呼び出しにおいてクライアントによって指定された論理データコンテナ識別子によって識別された論理データコンテナのデータオブジェクトのインベントリを獲得する。図１４に例示されるように、獲得されると、ジョブの完了の通知は、上述されるような、クライアントおよび／または別のコンピュータシステムに伝送され得る。変形例として、通知の代わりにまたは通知に追加して、クライアントは、ジョブのステータスを検査するようにジョブ識別子でデータ記憶サービスをポーリングし得る。
【０１５７】
種々の実施形態に従って、記憶サービスは、高度な通知および／またはロギング機能を提供し得る。図１５は、一実施形態に従う、通知および／またはロギング機能を提供するための過程１５００の例示説明となる実施例を示す。本明細書に示されるように、過程１５００は、論理データコンテナのための通知およびロギング基準を受け取ることを含む。通知およびロギング基準は、適切なＡＰＩ呼び出しを通じてのような、任意の好適な方式で提供され得る。基準は、合ったときに、通知を引き起こす条件を指定し得る。基準は、合ったときに、記憶サービスに（集合的にアクセス／ミューテーションログと称される）アクセスおよび／またはミューテーションログを更新させる条件も指定し得る。基準を受け取ることは、１つのＡＰＩ呼び出し、または集合的に基準を符号化する複数のＡＰＩ呼び出しに含まれる基準を受け取ることによって遂行され得る。論理データコンテナのためのアクセス／ミューテーションログは、例えば論理データコンテナに関連して起こる事象についての情報を符号化するテーブル等の情報の集合体であり得る。アクセス／ミューテーションログは、論理データコンテナのアクセスの事象を記録し得、そこからアクセス要求が開始されたインターネットプロトコル（ＩＰ）アドレスのような情報、要求を提供するように作製されたユーザエージェント（例えばブラウザまたは他のアプリケーション）、要求の種類（例えば読み出し、書き込み、削除、インベントリ等）、およびステータスコード（例えば要求が成功だったかどうかおよび／または失敗の１つ以上の理由を示すコード）を含み得る。提供され得る他の情報は、アクセスを承認したユーザの識別情報（例えばユーザ名）、いつジョブが開始および／または終了したかを指定するタイミング情報、遂行された操作、操作時のリソース（例えばアップロードされたデータオブジェクトのデータオブジェクト識別子、キャンセルされたジョブのジョブ識別子等）、エラー、課金情報（例えば請求料金）等を含むがこれらに限定されない。
【０１５８】
一実施形態では、記憶サービスは、連続する期間のための新たなアクセス／ミューテーションログを生成する。例えば、新たなアクセス／ミューテーションログは、２４時間毎に生成され得る。顧客は、アクセス／ミューテーションログが生成される頻度および記録される事象の種類のような、アクセス／ミューテーションログを維持するためのパラメータを指定するＡＰＩ呼び出しを提出し得る。顧客は、例えば、書き込みおよび削除事象は記録されるべきだが、論理データコンテナのデータオブジェクトを読み出す試みはされるべきではないことを指定し得る。同様に、顧客は、記録がアクセス／ミューテーションログに追加される前に合うべきである、突然変化されたデータオブジェクトのサイズのような、条件を指定し得る。アクセス／ミューテーションログの顧客への送達は、それ自体がアクセス／ミューテーションログに記憶され得る。そのような場合には、無限ループを防止するように、アクセス／ミューテーションログの送達は、アクセス／ミューテーションログが送達される前にアクセス／ミューテーションログに記録され得る。更に、顧客は、送達パラメータを指定し得る。顧客は、例えば、アクセスログが、顧客が自ら所有するウェブサーバのＡＰＩを呼び出すこと、電子メール等によって送達されるべきであることを指定し得る。いくつかの実施形態では、記憶サービスは、コンピューティングリソースプロバイダの集合体サービスの一部である。顧客は、アクセス／ミューテーションログが、異なるサービスのコンピューティングリソース（コンピュータシステム、データストア等）に送信されるべきであるが、顧客によってプログラムで管理されるべきであることを指定し得る。
【０１５９】
図１５に戻ると、一実施形態では、通知およびロギング基準の受け取りに応答して、記憶システムは、通知を提供し、受け取られた基準に従ってアクセス／ミューテーションログを更新するように構成される（１５０４）。例えば、事象を監視する１つ以上のサーバは、基準を満たすことが検出されたとき通知およびアクセス／ミューテーションログ事象を生じさせるように再構成され得る。
【０１６０】
ある時点で、データ記憶サービスは、上述されるようなＡＰＩ呼び出しに従って提供された要求のような、論理データコンテナに関連する要求を受け取り得る（１５０６）。要求は、上述されるような図２〜７に関連して、処理され得る（１５０８）。ロギングのための基準が合うかどうかを判定することが行われ得（１５１０）、ロギング基準が合うと判定された場合、適切なアクセス／ミューテーションログが、更新され得（１５１２）、顧客仕様に従うような、更新されたアクセス／ミューテーションログが、提供され得る（１５１４）。加えて、一実施形態では、判定は、通知のための基準が合うかどうか行われ得る（１５１６）。通知のための基準が合うと判定された場合、上述されるような、通知が、公開され得る（１５１８）。例示目的のため平行して遂行される別個のアクションとして描写されるが、ロギングおよび通知のための基準が異なるシーケンスまたは種々の実施形態における同一の動作の一部として行われ得るかどうかの判定および過程１５００は、したがって修正され得ることに注意されたい。要求を受け取る、要求を処理する、通知を公開する、およびアクセス／ミューテーションログを更新するアクションは、更新されたアクセス／ログが顧客の指定した時間に提供されるまで繰り返され得る。例えば、顧客が、アクセス／ミューテーションログが２４時間毎に提供されることを指定してもよく、および／またはアクセス／ミューテーションログが、ミューテーションの閾値数および／またはアクセスによって影響されたデータの閾値を超えることによってのような、顧客の指定した条件に合うとき、である。
【０１６１】
例示され上述されるＡＰＩ呼び出しの種々のパラメータが例示目的のためであり、多数の変形例が本開示の範囲内に属するとみなされることに注意されたい。例えば、そのように例示されないが、ＡＰＩ呼び出しは、明示されない付加的な情報を含み得る。一実施例として、ＡＰＩ呼び出しは、ホスト識別子を含み得る。別の実施例として、ＡＰＩ呼び出しは、行われた要求の電子署名のような、電子署名を含み得る。データ記憶システムによって電子署名を使用して、要求が、要求されたアクションのための承認を有する要求元端末によって行われたことを確実にし得る。例えば、（データ記憶システムのサブシステムであり得る）認証システムは、要求が有効に行われたかどうかを判定するように、受け取られた署名と予期された署名とを比較し得る。要求は、受け取られた署名が予期された署名と合うかどうかに少なくとも部分的に基づいて、満たされるかまたは拒否され得る。
【０１６２】
加えて、種々の実施形態に従って行われたＡＰＩ呼び出しは、共有パラメータ（例えばＲＥＳＴ要求のための要求ヘッダ）を有し得る。一実施例として、ＡＰＩ呼び出しは、上述された情報に加えて、要求のデジタル署名、（ＲＥＳＴ要求の本体の長さであり得る）コンテンツ長、タイムスタンプ、ホスト（要求が送信されるエンドポイント）、ペイロードのチェックサム、署名タイムスタンプ、および使用されているＡＰＩバージョン等の承認情報を含み得る。
【０１６３】
図１６は、種々の実施形態に従って態様を実装するための例示的な環境１６００の態様を例示する。理解されるように、説明の目的でウェブに基づく環境が使用されるが、種々の実施形態を実装するために、必要に応じて、異なる環境が使用され得る。環境は、電子クライアントデバイス１６０２を含み、それは、適切なネットワーク１６０４を通じて要求、メッセージ、または情報を送信し受け取り、情報をデバイスのユーザに戻すように搬送するように操作可能な、任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの例としては、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、携帯情報端末、電子ブックリーダー等が挙げられる。ネットワークとしては、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、もしくは任意の他のそのようなネットワーク、またはそれらの組み合わせを含む、任意の適切なネットワークが挙げられる。そのようなシステムに使用される構成要素は、選択されたネットワークおよび／または選択環境のタイプに少なくとも部分的に依存し得る。そのようなネットワークを介して通信するためのプロトコルおよび構成要素はよく知られており、本明細書では詳細に論じない。ネットワークを通じた通信は、有線接続または無線接続、およびそれらの組み合わせを介して可能にすることができる。この実施例では、当業者には明らかなように、要求を受け取り、それに応じてコンテンツを提供するためのウェブサーバ１６０６を環境が含むため、このネットワークは、インターネットを含むが、他のネットワークの場合、類似の目的を提供する代替のデバイスを使用することができる。
【０１６４】
例示説明となる環境は、少なくとも１つのアプリケーションサーバ１６０８およびデータストア１６００を含む。連鎖され得るまたは別様には構成され得る、適切なデータストアからデータを取得する等の作業を遂行するように相互作用することができる、いくつかのアプリケーションサーバ、層、もしくは他の要素、過程、または構成要素があり得ることを理解されたい。本明細書で使用される用語「データストア」とは、データを記憶し、それにアクセスし、それを検索することができる任意のデバイスまたはデバイスの組み合わせを指し、任意の数のデータサーバ、データベース、データ記憶デバイス、データ記憶媒体、およびそれらの任意の組み合わせを、任意の標準型、分散型、またはクラスター型の環境において含み得る。アプリケーションサーバは、クライアントデバイスのための１つ以上のアプリケーションの態様を実行するために、必要に応じて、データストアと統合するための、アプリケーションのためのデータアクセスおよびビジネスロジックの大部分を処理するための、任意の適切なハードウェアおよびソフトウェアを含むことができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、また、この実施例においてＨＴＭＬ、ＸＭＬ、または別の適切な構造化言語の形態でウェブサーバによってユーザに提供され得る、ユーザに転送されるテキスト、グラフィックス、音声、および／またはビデオ等のコンテンツを生成することができる。全ての要求および応答、ならびにクライアントデバイス１６０２とアプリケーションサーバ１６０８との間のコンテンツの送達は、ウェブサーバによって処理することができる。本明細書で論じられる構造化コードは、本明細書の他の場所で論じられるように、任意の適切なデバイスまたはホストマシン上で実行することができるため、ウェブサーバおよびアプリケーションサーバは必要とされず、これらは単に例示的な構成要素に過ぎないことを理解されたい。
【０１６５】
データストア１６００は、いくつかの別個のデータテーブル、データベース、または他のデータ記憶機構、および特定の態様に関連するデータを記憶するための媒体を含むことができる。例えば、例示されるデータストアは、製品側のコンテンツを提供するために使用することができる、製品データ１６０２およびユーザ情報１６０６を記憶するための機構を含む。データストアは、報告、分析、または他のそのような目的のために使用することができるログデータ１６０４を記憶するための機構も含むように示される。ページ画像情報のためおよび権利情報にアクセスする等の、データストアに記憶される必要があり得る、数多くの他の態様が存在し得、必要に応じて上で列記した機構のいずれかに、またはデータストア１６００の付加的な機構に記憶することができることを理解されたい。データストア１６００は、アプリケーションサーバ１６０８から命令を受け取って、それに応じてデータを取得する、更新する、または別様には処理するために、それと関連する論理を通して操作可能である。一実施例において、ユーザは、ある種類のアイテムの検索要求を提出し得る。この場合、データストアは、ユーザの識別を確証するためにユーザ情報にアクセスし得、その種類のアイテムに関する情報を取得するために、カタログの詳細情報にアクセスすることができる。情報は、次いで、ユーザがユーザデバイス１６０２上のブラウザを介して視聴することができる、ウェブページ上の結果リスト等で、ユーザに戻すことができる。関心の特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで視聴することができる。
【０１６６】
各サーバは、一般的に、そのサーバの一般管理および操作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、一般的に、サーバのプロセッサによって実行されたときに、サーバがその意図する機能を遂行することを可能にする命令を記憶する、コンピュータが読み出し可能な記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、読み出し専用メモリ等）を含む。オペレーティングシステムおよびサーバの一般機能性の好適な実装例は、既知であるか、または市販されており、また、特に本明細書の開示に照らして、当業者によって容易に実装される。
【０１６７】
一実施形態における環境は、１つ以上のコンピュータネットワークまたは直接接続を用いて、通信リンクを介して相互接続されるいくつかのコンピュータシステムおよび構成要素を利用する、分散型コンピューティング環境である。しかしながら、そのようなシステムは、図１６に例示されるよりも少ない数または多い数の構成要素を有するシステムで十分同等に動作できることが、当業者に認識されるであろう。よって、図１６のシステム１６００の描写は、本質的に、例示説明となるものであり、本開示の範囲を限定するものとみなすべきではない。
【０１６８】
本開示の種々の実施形態は、以下の付記を考慮して説明することができる。
１．対費用効果の高い耐久性のあるアーカイブデータ記憶サービスを提供するためのコンピュータ実装方法であって、
実行可能な命令で構成されるアーカイブデータ記憶システムの１つ以上のコンピュータシステムの制御下で、
要求するコンピュータシステムから通信ネットワークを通じて、永続性記憶装置からデータオブジェクトを検索する電子検索要求であって、前記電子検索要求が、前記データオブジェクトの識別子を符号化する、要求を受け取ることと、
前記電子検索要求の受け取りに応答して、
永続性記憶装置から前記データオブジェクトを獲得する検索ジョブを開始することと、
前記要求するコンピュータシステムに検索ジョブ識別子を提供することと、
前記通信ネットワークを通じて、前記データオブジェクトの少なくとも一部分をダウンロードする電子ダウンロード要求であって、前記電子ダウンロード要求が、前記検索ジョブ識別子を符号化する、要求を受け取ることと、
前記電子ダウンロード要求の受け取りに応答し、および完了された前記検索ジョブの結果として、ダウンロードのための前記データオブジェクトの前記少なくとも一部分を提供することと、を含む、コンピュータ実装方法。
２．コンピュータ実装方法であって、
前記検索ジョブのステータスのための電子要求であって、前記ステータスのための前記電子要求が、前記検索ジョブ識別子を符号化する、要求を受け取ることと、
前記検索ジョブの前記ステータスのための前記電子要求の受け取りに応答して、前記検索ジョブの現在のステータスを提供することと、を更に含む、請求項１に記載のコンピュータ実装方法。
３．前記ダウンロード要求が、前記データオブジェクトの一部分を指定する情報を含み、
前記データオブジェクトの前記少なくとも一部分を提供することが、前記指定された一部分を提供することを含む、請求項３に記載のコンピュータ実装方法。
４．前記指定された一部分を提供することが、前記指定された一部分のためのデータ確証値を提供することを含み、前記データ確証値が、前記提供された指定された一部分が破損しているかどうかを判定するように使用可能である、請求項３に記載のコンピュータ実装方法。
５．前記電子ダウンロード要求の受け取りに先駆けて、前記データ検索ジョブの完了に応じて通知を提供することを更に含む、請求項１に記載のコンピュータ実装方法。
６．前記通知を提供することが、通知パラメータを含む前記電子検索要求の結果である、請求項５に記載のコンピュータ実装方法。
７．コンピュータ実装方法であって、
実行可能な命令で構成される１つ以上のコンピュータシステムの制御下で、
記憶システムによって記憶されたデータに対応する第１の識別子を含む第１の電子メッセージを受け取ることと、
前記第１の電子メッセージの受け取りに応答して、前記データに関連するジョブを開始することと、
前記第１の電子メッセージを受け取った後の時点で、前記ジョブに対応する第２の識別子を含む第２の電子メッセージを受け取ることと、
前記第２の電子メッセージの受け取りに応答して、前記ジョブに関連付けられた情報を提供することと、を含む、コンピュータ実装方法。
８．前記第１の識別子および第２の識別子が異なる、請求項７に記載のコンピュータ実装方法。
９．前記データが、論理データコンテナに格納される１つ以上のデータオブジェクトを含み、
前記第１の識別子が、前記論理データコンテナのための識別子である、請求項７に記載のコンピュータ実装方法。
１０．前記ジョブに関連付けられた前記情報が、各々が前記１つ以上のデータオブジェクトを識別する１つ以上の識別子の集合体を含む、請求項９に記載のコンピュータ実装方法。
１１．前記ジョブに関連付けられた前記情報が、前記論理データコンテナに格納された前記１つ以上のデータオブジェクトに関連して遂行された１つ以上のアクションのログを含む、請求項９に記載のコンピュータ実装方法。
１２．前記第１の電子メッセージが、前記データ記憶システムの顧客の顧客コンピュータシステムに由来し、
前記第１の電子メッセージが、前記顧客コンピュータシステムによって提供されたメタデータを含み、
前記ジョブに関連付けられた前記情報が、前記メタデータの少なくとも一部分を含む、請求項７に記載のコンピュータ実装方法。
１３．データ記憶サービスにアクセスすることを提供するためのシステムであって、
１つ以上のプロセッサと、
メモリであって、前記１つ以上のプロセッサによって実行されるとき、前記システムに少なくとも、
前記データ記憶サービスによって記憶されたデータセットの識別子を符号化する電子メッセージを受け取り、応答して、ジョブを開始して、前記ジョブの識別子を提供し、
前記開始されたジョブの識別子を有する電子要求を受け取り、応答して、前記電子要求への応答を提供するように構成された、
アプリケーションプログラミングインターフェースサブシステムを実装させる、実行可能な命令を含む、メモリと、を備える、システム。
１４．前記データセットのうちの少なくとも１つが、１つ以上のデータオブジェクトのために格納する論理データコンテナである、請求項１３に記載のシステム。
１５．前記データセットのうちの少なくとも１つがデータオブジェクトである、請求項１４に記載のシステム。
１６．前記データ記憶サービスが、サービスプロバイダによって提供されたデータサービスの集合体からのものであり、
前記受け取られた電子メッセージのうちの少なくともいくつかが、前記データサービスの集合体の別のサービスにデータセットを伝送する電子要求を符号化し、
前記受け取られた電子メッセージのうちの前記少なくともいくつかに対応する開始されたジョブのために、前記電子要求への応答を前記提供することが、他方のサービスに対応するデータセットを伝送することを含む、請求項１３に記載のシステム。
１７．前記アプリケーションプログラミングインターフェースサブシステムが、ジョブに関連して、通知のためのパラメータを受け取り、
前記受け取られたパラメータに従って通知を伝送させるように更に構成される、請求項１３に記載のシステム。
１８．前記アプリケーションプログラミングインターフェースサブシステムが、ジョブステータス要求を受け取り、前記要求に応答して、ジョブステータスを提供させるように更に構成される、請求項１７に記載のシステム。
１９．集合的に記憶された実行可能な命令を媒体上に有する１つ以上の非一時的コンピュータが読み出し可能な記憶媒体であって、前記命令が、コンピュータシステムの１つ以上のプロセッサによって実行されるとき、コンピュータシステムに少なくとも、
データ記憶システムに、前記データ記憶システムによって記憶された指定されたデータセットデータセットに関連してジョブを処理させることと、
前記ジョブの識別子を含む通信を受け取ることと、
応答して、前記ジョブについての情報を提供することと、を行わせる、媒体。
２０．前記ジョブを処理することが、永続性記憶装置から前記データセットを獲得することを含み、
前記ジョブについての情報を提供することが、前記データセットの少なくとも一部分を提供することを含む、請求項１９に記載のコンピュータが読み出し可能な記憶媒体。
２１．前記データセットの前記少なくとも一部分が、前記第２の通信に関連して受け取られたものに従う前記データセットの真のサブセットであり、
前記ジョブについての情報を提供することが、前記真のサブセットが破損しているかどうかを判定するように使用可能なデータ確証値を提供することを含む、請求項２０に記載のコンピュータが読み出し可能な記憶媒体。
２２．前記ジョブについての前記情報が、前記ジョブのステータスを含む、請求項１９に記載のコンピュータが読み出し可能な記憶媒体。
２３．前記データセットが、１つ以上のデータオブジェクトを含む論理データコンテナを含み、
前記ジョブについての前記情報が、前記１つ以上のデータオブジェクトを識別する情報を含む前記論理データコンテナのインベントリである、請求項１９に記載のコンピュータが読み出し可能な記憶媒体。
２４．前記第１の通信が、別のコンピュータシステムによって提供されたメタデータを含み、
前記ジョブについての前記情報が、前記メタデータを含む、請求項２３に記載のコンピュータが読み出し可能な記憶媒体。
２５．前記コンピュータシステムの前記１つ以上のプロセッサによって実行されるとき、前記命令が、前記コンピュータシステムに前記データセットについてのメタデータを提供する新規通信を受け取らせ、
前記ジョブについての前記情報が、前記メタデータを含む、請求項１９に記載のコンピュータが読み出し可能な記憶媒体。
２６．前記新規通信が、前記データ記憶システムに前記データセットを記憶する要求を符号化する、請求項２５に記載のコンピュータが読み出し可能な記憶媒体。
２７．前記新規通信が、前記データ記憶システムから前記データセットを検索する要求を符号化する、請求項２５に記載のコンピュータが読み出し可能な記憶媒体。
【０１６９】
種々の実施形態は更に、多種多様な動作環境で実装することができ、一部の場合において、いくつかのアプリケーションのいずれかを動作するために使用することができる、１つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる。ユーザまたはクライアントデバイスとしては、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ等の、数多くの汎用パーソナルコンピュータ、ならびに、モバイルソフトウェアを実行し、かついくつかのネットワークおよびメッセージングプロトコルをサポートすることができる、セルラーデバイス、無線デバイス、およびハンドヘルドデバイスのいずれかが挙げられる。そのようなシステムとしてはまた、開発およびデータベース管理等の目的で、種々の市販のオペレーティングシステムおよび他の既知のアプリケーションのいずれかを実行する、数多くのワークステーションも挙げられる。これらのデバイスとしてはまた、ネットワークを介して通信することができる、ダミー端末、シンクライアント、ゲームシステム、および他のデバイス等の、他の電子デバイスも挙げられる。
【０１７０】
大部分の実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋ等の、種々の市販のプロトコルのいずれかを用いて通信をサポートするための、当業者が精通している少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせとすることができる。
【０１７１】
ウェブサーバを利用する実施形態において、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａサーバ、およびビジネスアプリケーションサーバを含む、種々のサーバまたは中間層アプリケーションのいずれかを動作させることができる。サーバ（複数可）はまた、ユーザデバイスからの要求に応じて、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋等の任意のプログラミング言語、またはＰｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬ等の任意のスクリプト言語、ならびにそれらの組み合わせで書かれた１つ以上のスクリプトまたはプログラムとして実装され得る１つ以上のウェブアプリケーションを実行すること等によって、プログラムまたはスクリプトを実行することも可能であり得る。サーバ（複数可）としてはまた、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、およびＩＢＭ（登録商標）から市販されているものが挙げられるがそれらに限定されない、データベースサーバも挙げられる。
【０１７２】
環境は、上で論じたように、種々のデータストア、ならびに他のメモリおよび記憶媒体を含むことができる。これらは、１つ以上のコンピュータに対してローカルな（および／またはその中に存在する）、またはネットワーク全体にわたるコンピュータのいずれかまたは全てからリモートの記憶媒体上等の、種々の場所に存在することができる。特定の１組の実施形態において、情報は、当業者が精通しているストレージエリアネットワーク（「ＳＡＮ」）の中に存在し得る。同様に、必要に応じて、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を遂行するための任意の必要なファイルが、ローカルおよび／またはリモートで記憶され得る。システムがコンピュータ制御のデバイスを含む場合、そのような各デバイスは、バスを介して電気的に連結され得るハードウェア要素を含むことができ、該要素は、例えば、少なくとも１つの中央処理ユニット（ＣＰＵ）と、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド）と、少なくとも１つの出力デバイス（例えば、表示デバイス、プリンタ、またはスピーカー）とを含む。そのようなシステムは、ディスクドライブ、光記憶デバイス、およびランダムアクセスメモリ（ＲＡＭ）またはリードオンリーメモリ（ＲＯＭ）等の固体記憶デバイス、ならびにリムーバブル媒体デバイス、メモリカード、フラッシュカード等の、１つ以上の記憶デバイスも含み得る。
【０１７３】
そのようなデバイスとしてはまた、上述のように、コンピュータが読み出し可能な記憶媒体リーダー、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス等）、および作業メモリも挙げられる。コンピュータが読み出し可能な記憶媒体リーダーは、リモート、ローカル、固定の、および／または取り外し可能な記憶デバイスを表すコンピュータが読み出し可能な記憶媒体、ならびにコンピュータが読み出し可能な情報を一時的におよび／またはより恒久的に含む、記憶する、伝送する、および検索するための記憶媒体と接続することができる、またはそれを受け取るように構成することができる。システムおよび種々のデバイスはまた、一般的に、オペレーティングシステム、およびクライアントアプリケーションまたはウェブブラウザ等のアプリケーションプログラムを含む、少なくとも１つのワーキングメモリデバイス内に位置する、数多くのソフトウェアアプリケーション、モジュール、サービス、または他の要素も含む。代替の実施形態は、上で説明した数多くの変形例を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、および／または特定の要素が、ハードウェア、ソフトウェア（アプレット等のポータブルソフトウェアを含む）、または双方で実装され得る。更に、ネットワーク入力／出力デバイス等の他のコンピューティングデバイスへの接続が利用され得る。
【０１７４】
コードまたはコードの部分を収容するための記憶媒体およびコンピュータが読み出し可能な媒体としては、コンピュータが読み出し可能な命令、データ構造、プログラムモジュール、または他のデータ等の情報を記憶および／または伝送するための任意の方法または技術で実装される揮発性および不揮発性で、取り外し可能および取り外し不可能な媒体等が挙げられるが、それらに限定されない、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、システムデバイスによってアクセスすることができる、任意の他の媒体を含む、記憶媒体および通信媒体を含む、当技術分野において知られているまたは使用される、任意の適切な媒体が挙げられる。本明細書で提供される開示および教示に基づいて、当業者は、種々の実施形態を実現するための他の様式および／または方法を認識するであろう。
【０１７５】
したがって、本明細書および図面は、限定的な意味ではなく、例示的な意味であるとみなされるべきである。しかしながら、特許請求の範囲に記載された本発明のより広い趣旨および範囲から逸脱することなく、種々の修正および変更が行われ得ることが明らかであろう。
【０１７６】
他の変形例は、本開示の主旨の範囲内である。よって、本開示の技術は種々の修正および代替構成が可能である一方で、それらのある例示された実施形態は図面において示され上に詳細に説明されている。しかしながら、開示された特定の形態または複数の形態に本発明を限定することを意図しないことを理解されたいがむしろ、意図することは、添付の特許請求の範囲に定義されるように、本発明の趣旨および範囲内に属する全ての修正、代替構成、および均等物を網羅することである。
【０１７７】
用語「ａ」、「ａｎ」、および「ｔｈｅ」および本開示の実施形態を説明する文脈（特に以下の特許請求の範囲の文脈）の類似の指示対象は、本明細書に別様に指摘がないかまたは文脈によって明らかに別様に矛盾しない限り、単数および複数の両方を含むと解釈される。用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、および「含む（ｃｏｎｔａｉｎｉｎｇ）」は、別様に記載されない限り、変更可能な用語（すなわち、「これらに限定されないが〜を含む」）として解釈される。用語「接続された」は、何らかの介在がある場合においても、部分的にまたは全体的にその内部に含まれた、それに取り付けられた、またはそれと一緒に連結されたとして解釈される。本明細書の値の範囲を列挙することは、本明細書に別様に指摘がない限り、範囲内に属する各別個の値に個別に言及する単なる簡単な方法として機能するように意図されるにすぎず、それが個別に本明細書に列挙されているかのように、各別個の値は、本明細書に組み込まれる。本明細書に記載される全ての方法は、本明細書に別様に指摘がないかまたは文脈によって明らかに別様に矛盾しない限り、任意の好適な順序で遂行することができる。本明細書に提供される任意のおよび全ての実施例、または例示的な言語（例えば、「〜のような」）は、単に本発明の実施形態のより良い理解を容易にするように意図されるにすぎず、別様に特許請求されない限り、本発明の範囲に制限を課すものではない。明細書中の言語は、本発明の実施に必須として任意の非特許請求の要素を示すものとして解釈されるべきではない。
【０１７８】
本開示の好ましい実施形態は、本発明を実現するために本発明者に既知の最良のモードを含む。それらの好ましい実施形態の変形例は、前述の説明を一読することによって当該分野の当業者には明らかになり得る。本発明者は、当業者が必要に応じてそのような変形例を用いることを予期し、本発明者らは、本明細書に具体的に記載された以外の方法で実施される発明を意図する。したがって、適用法によって許容されるように、本発明は、全ての修正および本明細書に添付の特許請求の範囲に列挙される主題の均等物を含む。更に、全ての可能な変形例における上述の要素のそれらの任意の組み合わせは、本明細書に別様に指摘がないかまたは文脈によって明らかに別様に矛盾しない限り、本発明によって包含される。
【０１７９】
本明細書に引用された、出版物を含む全ての参考文献、特許出願、および特許は、各文献が個別にかつ具体的に参照により組み込まれるように示されその全体が本明細書に記載されているかのように同程度に、参照により本明細書に組み込まれる。
【図１】
0006483746.tif 000002
【図２】
0006483746.tif 000003
【図３】
0006483746.tif 000004
【図４】
0006483746.tif 000005
【図５】
0006483746.tif 000006
【図６】
0006483746.tif 000007
【図７】
0006483746.tif 000008
【図８】
0006483746.tif 000009
【図９】
0006483746.tif 000010
【図１０】
0006483746.tif 000011
【図１１】
0006483746.tif 000012
【図１２】
0006483746.tif 000013
【図１３】
0006483746.tif 000014
【図１４】
0006483746.tif 000015
【図１５】
0006483746.tif 000016
【図１６】
0006483746.tif 000017