JP2017228302A - アーカイブデータ識別 - Google Patents
アーカイブデータ識別 Download PDFInfo
- Publication number
- JP2017228302A JP2017228302A JP2017152756A JP2017152756A JP2017228302A JP 2017228302 A JP2017228302 A JP 2017228302A JP 2017152756 A JP2017152756 A JP 2017152756A JP 2017152756 A JP2017152756 A JP 2017152756A JP 2017228302 A JP2017228302 A JP 2017228302A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data object
- information
- storage
- object identifier
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
【課題】アーカイブデータ記憶システムにおいて対費用効果が高く信頼性があるデータ識別を容易にする方法およびシステムを提供する。【解決手段】一実施形態では、アーカイブデータ記憶システムに記憶されたデータオブジェクトは、グローバルインデックスを記憶する費用を削減するアーカイブデータ記憶システムに記憶されたデータオブジェクトの場所を特定するように使用され得る、記憶場所情報を符号化するデータオブジェクト識別子によって識別される。データオブジェクト識別子は、データオブジェクトへの後続のアクセスを検証するために使用可能なアクセス制御情報のようなポリシー情報、ペイロードデータの整合性を確証するために使用可能なサイズおよびダイジェストのようなペイロード検証情報、データオブジェクト識別子の整合性を検証するために使用可能なエラー検出コードのようなメタデータ検証情報、および他の情報も符号化し得る。【選択図】図2
Description
本願は、アーカイブデータ識別に関する。本願は、2012年8月8日に出願された発明の名称「ARCHIVAL DATA IDENTIFICATION」の米国特許出願第13/569,994号(代理人整理番号90204−841807))からの優先権およびその利益を主張するものである。本願は、本明細書と同時に出願され、発明の名称が「LOG−BASED DATA STORAGE ON SEQUENTIALLY WRITTEN MEDIA」である同時係属中の米国特許出願第13/569,984号(代理人整理番号90204−841804(054800US))、本明細書と同時に出願され、発明の名称が「DATA STORAGE MANAGEMENT FOR SEQUENTIALLY WRITTEN MEDIA」である同時係属中の米国特許出願第13/570,057号(代理人整理番号90204−841817(055300US))、本明細書と同時に出願され、発明の名称が「DATA WRITE CACHING FOR SEQUENTIALLY WRITTEN MEDIA」である同時係属中の米国特許出願第13/570,005号(代理人整理番号90204−841812(055000US))、本明細書と同時に出願され、発明の名称が「PROGRAMMABLE CHECKSUM CALCULATIONS ON DATA STORAGE DEVICES」である同時係属中の米国特許出願第13/570,030号(代理人整理番号90204−841813(055200US))、本明細書と同時に出願され、発明の名称が「DATA STORAGE INVENTORY INDEXING」である同時係属中の特許出願第13/569,665号(代理人整理番号90204−841811(054700US))、本明細書と同時に出願され、発明の名称が「ARCHIVAL DATA ORGANIZATION AND MANAGEMENT」である同時係属中の米国特許出願第13/570,029号(代理人整理番号90204−841808(054400US))、本明細書と同時に出願され、発明の名称が「ARCHIVAL DATA FLOW MANAGEMENT」である同時係属中の米国特許出願第13/570,092号(代理人整理番号90204−841809(054500US))、本明細書と同時に出願され、発明の名称が「ARCHIVAL DATA STORAGE SYSTEM」である同時係属中の米国特許出願第13/570,088号(代理人整理番号90204−841806(054000US))、本明細書と同時に出願され、発明の名称が「DATA STORAGE POWER MANAGEMENT」である同時係属中の特許出願第13/569,591号(代理人整理番号90204−841816(054900US))、本明細書と同時に出願され、発明の名称が「DATA STORAGE SPACE MANAGEMENT」である同時係属中の特許出願第13/569,714号(代理人整理番号90204−846202(056100US))、本明細書と同時に出願され、発明の名称が「DATA STORAGE APPLICATION PROGRAMMING INTERFACE」である同時係属中の特許出願第13/570,074号(代理人整理番号90204−846378(056200US))、本明細書と同時に出願され、発明の名称が「DATA STORAGE INTEGRITY VALIDATION」である同時係属中の特許出願第13/570,151号(代理人整理番号90204−841810(054600US))の完全な開示をその全ての目的のために参照により組み込む。
情報のデジタル化の増加に伴い、耐久性があり信頼性があるアーカイブデータ記憶サービスに対する需要もまた増加している。アーカイブデータは、政府、事業所、図書館等により維持されるアーカイブ記録、バックアップファイル、メディアファイル等を含み得る。データのアーカイブ記憶は、いくつかの課題を提示している。例えば、記憶されるデータの潜在的に膨大な量は、多くの従来技術を用いたときの費用を非常に高くする原因であり得る。また、アーカイブデータのための記憶の耐久性および信頼性が比較的高いことが多くの場合所望され、それがデータを記憶するために必要とされるリソースの量を更に増加させ、それによって費用が増加する。したがって、対費用効果が高く信頼性がある方式でアーカイブデータを識別するための必要性が存在する。
以下、本開示に従う種々の実施態様を、図面を参照して説明する。
以下の説明では、種々の実施形態が説明される。説明の目的で、実施形態の十分な理解を提供するように具体的な構成および詳細が説明される。しかしながら、実施形態が具体的な詳細なしに実施され得ることは当業者にも明白である。更には、既知の特徴は、記載される実施形態を不明瞭にしないように省略または簡略化され得る。
本明細書に記載され提案される技術は、対費用効果が高く信頼性がある方式でアーカイブデータ記憶システムに記憶されたアーカイブデータを識別するための方法およびシステムを含む。一実施形態では、顧客がアーカイブデータ記憶システムにアーカイブデータオブジェクトを記憶することを要求すると、顧客には、アーカイブデータオブジェクトを検索、削除、または別様に識別するアーカイブデータ記憶システムとの後続の通信によって使用され得るデータオブジェクト識別子が提供される。データオブジェクト識別子は、アーカイブデータオブジェクトが記憶システムによって永続的に記憶される前に顧客に提供され得、そのことによって、非同期方式でデータ記憶要求を処理しつつ顧客に同期経験を提供する。
いくつかの実施形態では、データオブジェクト識別子は、アーカイブデータ記憶システムに記憶されたデータオブジェクトの場所を特定するように使用され得る記憶場所情報を符号化し得る。例えば、記憶場所情報は、データオブジェクトが記憶された階層型データ構造への参照を符号化し得る。そのような実施形態は、データオブジェクト識別子を対応するデータオブジェクトの記憶場所にマップする名前空間マップまたは類似のデータ構造を記憶する費用を削減し得るかまたは削除し得る。
一実施形態では、データオブジェクト識別子は、アーカイブデータ記憶システムに記憶されたデータに関連付けられる1つ以上のポリシーを執行するように使用され得るポリシー情報も符号化する。種々の実施形態では、そのようなポリシーは、安全性、プライバシー、アクセス、規制、費用、および他の考慮事項に対処するポリシーを含み得る。例えば、ポリシー情報は、データオブジェクト識別子に関連付けられたデータへの要求されたアクセスを検証するように使用され得るアクセス制御情報を符号化し得る。
一実施形態では、データオブジェクト識別子は、アーカイブデータ記憶システムに記憶されたデータの整合性を確実にするようにペイロード検証情報も符号化する。種々の実施形態では、ペイロード検証情報は、データサイズ、タイムスタンプ(例えば、データ作成タイムスタンプ)、ペイロードの1つ以上のダイジェスト等を含み得る。データオブジェクト識別子は、データオブジェクト識別子に関連付けられた情報の整合性を確実にするようにメタデータ検証情報も符号化し得る。種々の実施形態では、メタデータ検証情報は、データオブジェクト識別子に符号化されたいくつかのまたは全ての情報のパリティ検査、巡回冗長検査(CRC)、エラー訂正検査等のエラー検出検査を含み得る。データオブジェクト識別子は、上述された情報をカプセル化するように全体または部分的に符号化(例えば、暗号化)され得る。そのような符号化は、実装詳細にデータ安全性および透過性を提供し得る。いくつかの実施形態では、データオブジェクト識別子は、暗号化または別様に情報を不明瞭にすることなく上述された情報を含み得る。
アーカイブデータ記憶システムに記憶されたデータオブジェクトの検索または削除のため、データオブジェクトに関連付けられたデータオブジェクト識別子は、少なくともメタデータ検証情報を用いて検証され得る。続いて、要求されたアクセス(検索/削除)は、データオブジェクト識別子に符号化されたポリシー情報に少なくとも部分的に基づいて検証され得る。データオブジェクト識別子に符号化された記憶場所情報は、記憶されたデータオブジェクトの場所を特定するように使用され得る。最終的に、ペイロード整合性検証情報は、検索されたかまたはこれから削除されるデータオブジェクトの整合性を検証するように使用され得る。
図1は、少なくとも1つの実施形態に従う、アーカイブデータ識別のための例示的な環境100を例示する。例示されるように、一実施形態では、顧客102は、アーカイブデータ記憶システム106にアーカイブデータオブジェクト104が記憶されることを要求する。いくつかの実施形態では、顧客102およびアーカイブデータ記憶システム106は、図2に関連して以下に説明されるように、それぞれ、顧客202およびアーカイブデータ記憶システム206に類似し得る。
一実施形態では、要求に応答して、アーカイブデータ記憶システム106は、記憶のためにアーカイブデータ104を受け入れ、アーカイブデータ104に関連付けられたデータオブジェクト識別子108を提供する。そのようなデータオブジェクト識別子108は、アーカイブデータ104を検索、削除、または別様に識別するアーカイブデータ記憶システム106との後続の通信によって使用され得る。いくつかの実施形態では、各データオブジェクト識別子は、アーカイブデータ記憶システム106に記憶されたアーカイブデータオブジェクトを一意的に識別する。他の実施形態では、データオブジェクト識別子は、例えば、特定の顧客に属するデータの中で、ある状況下で一意であり得る。
一実施形態では、データオブジェクト識別子108は、改善された信頼性、拡張性、およびアーカイブデータ記憶システム106に関連付けられた他の特徴を提供するように種々の情報を符号化する(118)。例えば、例示され図8に詳細に論じられるように、データオブジェクト識別子は、記憶されたデータ、種々の検証情報等の場所を特定するように使用され得る記憶場所情報110を符号化し得る。種々の実施形態では、検証情報は、要求されたアクセスを検証するように使用され得るポリシー情報112、アーカイブデータ104に関連付けられたペイロードデータの整合性を検証するように使用され得るペイロード検証情報114、メタデータの整合性を検証するように使用され得るメタデータ検証情報116等を含み得る。一実施形態では、データオブジェクト識別子108は、データオブジェクト識別子に含まれる情報の未承認の開示または変更を防止するように符号化(暗号化等)され得る(118)。
図2は、少なくとも1つの実施形態に従って、アーカイブデータ記憶システムが実装され得る例示的な環境200を例示する。1つ以上の顧客202は、ネットワーク204を介して、アーカイブデータ記憶システム206に接続する。上に含意されたように、文脈から明らかでない限り、用語「顧客」とは、本明細書に記載されるデータ記憶サービスを活用する顧客エンティティ(個人、会社、または他の団体等)のシステム(複数可)を指す。そのようなシステムは、データセンター、大型汎用機、個別コンピューティングデバイス、分散型コンピューティング環境およびその顧客アクセス可能インスタンス、またはアーカイブデータ記憶システムと通信できる任意の他のシステムを含んでもよい。いくつかの実施形態では、顧客は、アーカイブデータ記憶システムもまた提供するコンピューティングリソースプロバイダにより提供される分散型コンピューティングシステムのマシーンインスタンス(例えば、直接ハードウェアアクセスで)または仮想化インスタンスを指し得る。いくつかの実施形態では、アーカイブデータ記憶システムは、分散型コンピューティングシステムに不可欠であり、分散型コンピューティングシステムのインスタンス、仮想化またはマシンを含み得るか、または分散型コンピューティングシステムのインスタンス、仮想化またはマシンで実装され得る。種々の実施形態では、ネットワーク204は、インターネット、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、セルラーデータネットワーク、および/または他のデータネットワークを含み得る。
一実施形態では、アーカイブデータ記憶システム206は、各テナントまたは顧客が、顧客に割り当てられたデータ記憶空間のデータを記憶するか、検索するか、削除するか、または別様に管理するマルチテナントまたは複数顧客の環境を提供する。いくつかの実施形態では、アーカイブデータ記憶システム206は、複数のサブシステム、または各々がサービスまたは機能性の特定のセットを提供する「プレーン」を備える。例えば、図2に例示されるように、アーカイブデータ記憶システム206は、フロントエンド208、直接I/Oのための制御プレーン210、共有制御プレーン212、データプレーン214、およびメタデータプレーン216を含む。各サブシステムまたはプレーンは、機能性の特定のセットを集合的に提供する1つ以上の構成要素を含み得る。各構成要素は、コンピュータ、データ記憶デバイス等の1つ以上の物理的および/または論理的コンピューティングデバイスで実装され得る。各サブシステム内の構成要素は、同一サブシステム内の構成要素、他のサブシステム内の構成要素、または顧客等の外部エンティティと通信し得る。そのような対話処理のうちの少なくともいくつかは、図2に矢印によって示される。具体的には、アーカイブデータ記憶システム206の内外の主要バルクデータ転送経路は、太い矢印によって表される。種々の実施形態が図2に例示されるものよりも少ないかまたはより多くの数のシステム、サブシステム、および/またはサブ構成要素を有し得ることは、当業者により理解される。よって、図2の環境200の描写は、本質的に例示説明となるものであり、本開示の範囲を限定するものとみなすべきではない。
例示説明となる実施形態では、フロントエンド208は、アーカイブデータ記憶システム206と本明細書に記載される1つ以上の顧客202等の外部エンティティとの間のインターフェースを提供するサービスの一群を実装する。種々の実施形態では、フロントエンド208は、ユーザがアーカイブデータ記憶システムの種々の機能、構成要素、および性能とプログラムでインターフェース接続することを可能にするようにアプリケーションプログラミングインターフェース(「API」)を提供する。そのようなAPIは、グラフィカルユーザインターフェース(GUI)、ウェブベースのインターフェース、アプリケーションプログラミングインターフェース(API)および/またはインターフェース要素に対応するリモートプロシージャコール(RPC)のセット等のプログラマチックインタフェース、インターフェース要素が通信プロトコルのメッセージに対応するメッセージングインターフェース、および/またはそれらの好適な組み合わせを含み得るユーザインターフェースに加わり得る。
アーカイブデータ記憶システム206により提供される性能は、データ記憶、データ検索、データ削除、メタデータ操作、種々の操作パラメータの構成等を含み得る。メタデータ操作は、特定の顧客のために記憶されたデータのカタログを検索する要求、データ回復要求、ジョブ照会等を含み得る。構成APIは、顧客にアカウント情報、監査ログ、ポリシー、通知設定等を構成させ得る。顧客は、API要求をアーカイブデータ記憶システムに送信することで上の操作のうちのいずれかの実施を要求し得る。同様に、アーカイブデータ記憶システムは、顧客要求への応答を提供し得る。そのような要求および応答は、ハイパーテキスト転送プロトコル(「HTTP」)、ファイル転送プロトコル(「FTP」)等の任意の好適な通信プロトコル上で、REpresentational State Transfer(「REST」)、シンプルオブジェクトアクセスプロトコル(「SOAP」)等の任意の好適なフォーマットで提出され得る。要求および応答は、例えば、暗号キー等で暗号化されたBase64符号化を用いて符号化され得る。
いくつかの実施形態では、アーカイブデータ記憶システム206は、顧客に1つ以上のアーカイブデータオブジェクトを記憶する論理データコンテナのような1つ以上の論理構造を作成させる。本明細書に使用されるように、データオブジェクトは、広く使用され、任意の特定の構造または他のデータへの関係を必ずしも暗示するものではない。データオブジェクトは、例えば、単にビットの配列であり得る。典型的に、そのような論理データ構造は、顧客のあるビジネス要件に見合うように作成され得、独立して、アーカイブデータ記憶システムに記憶されたデータの物理組織である。本明細書に使用されるように、用語「論理データコンテナ」とは、データオブジェクトの群化を指す。例えば、特定の目的のためまたは特定の期間中に作成されたデータオブジェクトは、同一の論理データコンテナに記憶され得る。各論理データコンテナは、ネスト化されたデータコンテナまたはデータオブジェクトを含み得、コンテナのサイズ制限のような一式のポリシー、コンテナに記憶され得るデータオブジェクトの最大数、有効期限、アクセス制御リスト等と関連付けられ得る。種々の実施形態では、論理データコンテナは、例えば構成可能な情報に基づいて、API要求を介して顧客によって、システム管理者によって、またはデータ記憶システムによって、作成されるか、削除されるか、または別様に修正され得る。例えば、次のHTTP PUT要求は、一実施形態では、アカウント識別子「accountId」により識別される顧客に関連付けられる名称「logical−container−name」を有する論理データコンテナを作成するように使用され得る。
PUT/{accountId}/logical−container−name HTTP/1.1
一実施形態では、アーカイブデータ記憶システム206は、データオブジェクトを論理データコンテナ内に記憶するように顧客のためにAPIを提供する。例えば、次のHTTP POST要求は、例示説明となる実施形態では、所与の論理コンテナ内にデータオブジェクトを記憶するように使用され得る。一実施形態では、要求は、記憶場所の論理経路、データ長、データペイロードへの参照、データペイロードのデジタルダイジェスト、および他の情報を指定し得る。一実施形態では、APIは、顧客に、1つの要求で複数のデータオブジェクトを1つ以上の論理データコンテナにアップロードさせ得る。データオブジェクトが巨大な別の実施形態では、APIは、顧客に、各々がデータオブジェクトの一部分を有する複数のパートにおいてデータオブジェクトをアップロードさせ得る。
POST/{accountId}/logical−container−name/data HTTP/1.1
Content−Length:1128192
x−ABC−data−description:“annual−result−2012.xls”
x−ABC−md5−tree−hash: 634d9a0688aff95c
Content−Length:1128192
x−ABC−data−description:“annual−result−2012.xls”
x−ABC−md5−tree−hash: 634d9a0688aff95c
データ記憶要求に応答して、一実施形態では、アーカイブデータ記憶システム206は、データオブジェクトが成功裡に記憶された場合、データオブジェクト識別子を提供する。そのようなデータオブジェクト識別子は、後続の要求において記憶されたデータオブジェクトを検索するか、削除するか、または別様に参照するように使用され得る。いくつかの実施形態では、そのようなデータオブジェクト識別子は、グローバル名前空間キーマップ(global namespace key map)等の付加的なデータ構造を必要とせず、データオブジェクトの場所を特定するようにアーカイブデータ記憶システムにより使用され得る(例えば、暗号化の有無にかかわらず)記憶場所情報をそこに含む「自己記述型」であり得る。更に、いくつかの実施形態では、データオブジェクト識別子は、ペイロードダイジェスト、エラー検出コード、アクセス制御データ、および後続の要求およびデータ整合性を検証するように使用され得る他の情報等の他の情報もまた符号化し得る。いくつかの実施形態では、アーカイブデータ記憶システムは、受信データをアーカイブデータ記憶に移動させる前にそれを一時耐久性データストアに記憶する。よって、顧客は、アップロードされた要求が完了されるとその瞬間データが耐久的に持続されたと見なし得るが、実際の長期持続されたデータストアへの記憶は、ある程度後(例えば、12時間後)まで開始されない可能性がある。いくつかの実施形態では、実際の記憶のタイミングは、データオブジェクトのサイズ、概日周期中のシステムロード、顧客と記憶サービスプロバイダとの間のサービスレベル契約等の構成可能な情報、および他の要因によって様々であり得る。
いくつかの実施形態では、アーカイブデータ記憶システム206は、顧客がアーカイブデータ記憶システムに記憶されたデータを検索するためのAPIを提供する。そのような実施形態では、顧客は、データ検索を遂行するようにジョブを開始し得、ジョブのステータスのために通知によってまたはシステムをポーリングすることによってジョブの完了を知り得る。本明細書に使用されるように、「ジョブ」とは、要求が受け取られた時間から一時的に独立して遂行され得る顧客要求に対応するデータ関連アクティビティを指す。例えば、ジョブは、データを検索すること、記憶および削除すること、メタデータを検索すること等を含み得る。ジョブは、例えば、特定の顧客のための全てのジョブの中で一意であり得るジョブ識別子によって識別され得る。例えば、次のHTTP POST要求は、例示説明となる実施形態では、データオブジェクト識別子「dataObjectId」によって識別されたデータオブジェクトを検索するジョブを開始するように使用され得る。他の実施形態では、データ検索要求は、複数のデータオブジェクト、論理データコンテナと関連付けられるデータオブジェクト等の検索を要求し得る。
POST/{accountId}/logical−data−container−name/data/{dataObjectId}HTTP/1.1
要求に応答して、一実施形態では、アーカイブデータ記憶システム206は、次の応答においてジョブに割り当てられたジョブ識別子 job−id」を提供する。この実施例では、応答は、検索されたデータが記憶される記憶場所までの経路を提供する。
HTTP/1.1 202 ACCEPTED
Location:/{accountId}/logical−data−container−name/jobs/{job−id}
Location:/{accountId}/logical−data−container−name/jobs/{job−id}
任意の時点で、アーカイブデータ記憶システムは、種々のデータ操作のために多くの保留中のジョブを有し得る。いくつかの実施形態では、アーカイブデータ記憶システムは、費用、性能、拡張性等のシステム規準を最適化するように、バッチ処理、ロード分散、ジョブ結合等のジョブ計画および最適化技術を用い得る。いくつかの実施形態では、実際のデータ検索のタイミングは、検索されたデータのサイズ、システムロードおよび容量、記憶デバイスの有効なステータス等の要因によって様々である。例えば、いくつかの実施形態では、アーカイブデータ記憶システムにおける少なくともいくつかのデータ記憶デバイスは、例えば、動作費用を削減するために電力管理スケジュールに従って有効にされ得るかまたは無効化され得る。よって、(回転ハードドライブ等の)現在有効な記憶デバイスに記憶されたデータの検索は、(回転を抑えた(spinned−down)ハードドライブ等の)現在無効の記憶デバイスに記憶されたデータの検索よりも速い可能性がある。
一実施形態では、データ検索ジョブが完了されると、検索されたデータは、ステージングデータストアに記憶されて顧客ダウンロードのために利用可能になる。いくつかの実施形態では、顧客は、構成可能な通知サービスによりジョブのステータスにおける変更を通知される。他の実施形態では、顧客は、ジョブ識別子を用いてシステムをポーリングすることによってジョブのステータスを知り得る。次のHTTP GET要求は、一実施形態では、前に提供されたダウンロード経路を用いて、「job−id」によって識別されるジョブにより検索されるデータをダウンロードするように使用され得る。
GET/{accountId}/logical−data−container−name/jobs/{job−id}/output HTTP/1.1
GET要求に応答して、例示説明となる実施形態では、アーカイブデータ記憶システム206は、次のHTTP応答において確証目的のためのデータのツリーハッシュと共に、検索されたデータを提供し得る。
HTTP/1.1 200 OK
Content−Length:1128192
x−ABC−archive−description:“retrieved stuff”
x−ABC−md5−tree−hash:693d9a7838aff95c
[1112192バイトのユーザデータが続く]
Content−Length:1128192
x−ABC−archive−description:“retrieved stuff”
x−ABC−md5−tree−hash:693d9a7838aff95c
[1112192バイトのユーザデータが続く]
一実施形態では、顧客は、データオブジェクトに関連付けられたデータオブジェクト識別子を指定することによりアーカイブデータ記憶システムに記憶されるデータオブジェクトの削除を要求し得る。例えば、例示説明となる実施形態では、データオブジェクト識別子「dataObjectId」を有するデータオブジェクトは、次のHTTP要求を用いて削除され得る。別の実施形態では、顧客は、特定の論理データコンテナに関連付けられたもののような複数のデータオブジェクトの削除を要求し得る。
DELETE/{accountId}/logical−data−container−name/data/{dataObjectId}HTTP/1.1
種々の実施形態では、データオブジェクトは、顧客要求に応答して削除され得るか、またはユーザ指定の有効期限または初期設定の有効期限に従って自動的に削除され得る。いくつかの実施形態では、データオブジェクトは、有効期間に応じて顧客がアクセスできないようにレンダリングされ得るが、有効期間を超える猶予期間中には回復可能状態で残る。種々の実施形態では、猶予期間は、顧客構成、サービスレベル契約条件等の構成可能な情報に基づき得る。いくつかの実施形態では、顧客は、保留データ削除のための通知を問い合わせるかまたは受け取る、および/または保留データ削除のうちの1つ以上をキャンセルする能力を提供され得る。例えば、一実施形態では、顧客は、顧客が論理データコンテナに関連付けられたある事象の通知を受け取るように論理データコンテナに関連付けられた通知構成を設定し得る。そのような事象は、データ検索ジョブ要求の完了、メタデータ要求の完了、データオブジェクトまたは論理データコンテナの削除等を含み得る。
一実施形態では、アーカイブデータ記憶システム206は、論理データコンテナに関連付けられたメタデータのようなメタデータを検索して管理するためにメタデータAPIもまた提供する。種々の実施形態では、そのような要求は、(結果が後に戻される)非同期にかまたは(結果が直ぐに戻される)同期に処理され得る。
なおも図2を参照して、一実施形態では、上で論じたAPI要求のうちの少なくともいくつかは、フロントエンド208の一部としてAPI要求ハンドラ218によって処理される。例えば、API要求ハンドラ218は、uniform resource identifier(「URI」)、要求された作用および関連付けられたパラメータ、識別情報、データオブジェクト識別子等の情報を抽出するように受信API要求を復号し得るおよび/または解析し得る。更に、API要求ハンドラ218は、必要な場合、API要求を更に処理するように(以下に記載の)他のサービスを呼び出す。
一実施形態では、フロントエンド208は、API要求を認証するように、例えば、APIハンドラ218によって呼び出され得る認証サービス220を含む。例えば、いくつかの実施形態では、認証サービス220は、ユーザ名およびパスワードインターネットプロトコル(「IP)アドレス、クッキー、デジタル証明書、デジタル署名等のAPI要求と共に提出された識別情報を確証し得る。他の実施形態では、認証サービス220は、付加的な情報を提供するか、またはチャレンジレスポンス認証プロトコル等下で多元的認証スキームで要求されたような要求を認証するように更なるステップを遂行するように顧客に要求し得る。
一実施形態では、フロントエンド208は、要求に関連付けられたように決定された1つ以上のポリシーに従って要求されたアクセスが許可されるかどうかを判定するように、例えば、APIハンドラ218によって呼び出され得る承認サービス222を含む。例えば、一実施形態では、承認サービス222は、要求されたアクセスが、要求元のそれ自体の論理データコンテナに含まれるデータオブジェクトに関するか、またはリクエスタが別様にアクセスするように承認されるかを確証する。いくつかの実施形態では、承認サービス222またはフロントエンド208の他のサービスは、データオブジェクト識別子によって符号化された検証情報のような要求に符号化された情報に少なくとも部分的に基づいてデータ要求の検証性および整合性を検査し得る。
一実施形態では、フロントエンド208は、使用されたデータ記憶空間、記憶されたデータオブジェクトの数、処理されたデータ要求等の各顧客のためのサービス使用情報を監視する計測サービス224を含む。一実施形態では、フロントエンド208は、例えば、計測サービス224によって収集される計測情報、顧客アカウント情報等に基づいて課金および請求に関連した機能性を遂行する課金サービス226もまた含む。例えば、顧客は、顧客により使用された記憶空間、データオブジェクトのサイズおよび数、提出された要求の種類および数、顧客アカウントの種類、サービスレベル契約等に基づいて料金を請求され得る。
一実施形態では、フロントエンド208は、いくつかのまたは全ての受信要求をバッチ処理する。例えば、フロントエンド208は、(例えば、認証、承認、課金等の)要求を処理する前に一定の数の要求が受け取られるまで待機し得る。そのような受信要求のバッチ処理は、効率性を増加させるように使用され得る。
いくつかの実施形態では、フロントエンド208は、API要求を更に処理するようにアーカイブデータ記憶システムの他のサブシステムによって提供されるサービスを呼び出し得る。例えば、フロントエンド208は、メタデータ要求を満たすようにメタデータプレーン216においてサービスを呼び出し得る。別の実施例には、フロントエンド208は、直接I/Oのための制御プレーン210の内外でそれぞれ、データ記憶および検索要求のためにデータを配信し得る。
ここで図2に例示される直接I/Oのための制御プレーン210を参照すると、種々の実施形態では、直接I/Oのための制御プレーン210は、顧客要求の結果として作成されたジョブを作成、トラック、および管理するサービスを提供する。上で論じられたように、ジョブは、データ検索、記憶、メタデータクエリー等の開始する要求に非同期に遂行され得る顧客開始型アクティビティを指す。一実施形態では、直接I/Oのための制御プレーン210は、API要求ハンドラ218から受け取られたもののような顧客要求に対応するジョブ記録またはエントリーを作成しジョブの実行を監視するように構成される、ジョブトラッカー230を含む。種々の実施形態では、ジョブ記録は、顧客アカウント識別子、ジョブ識別子、データオブジェクト識別子、(以下に記載の)ペイロードデータキャッシュ228への参照、ジョブステータス、データ検証情報等のジョブの実行に関連する情報を含み得る。いくつかの実施形態では、ジョブトラッカー230は、複数の要求からジョブ記録を構成するのに必要な情報を収集し得る。例えば、大量のデータが記憶されるように要求されると、データアップロードは、複数の要求に細分化され得、各々がデータの一部分をアップロードする。そのような場合には、ジョブトラッカー230は、ジョブ記録が作成される前に全てのデータパートが受け取られることを確実にするように、アップロードステータスのトラックを保管するように情報を維持し得る。いくつかの実施形態では、ジョブトラッカー230は、記憶されるデータに関連付けられたデータオブジェクト識別子もまた取得し、例えば、顧客に戻されるようにフロントエンドサービスにデータオブジェクト識別子を提供する。一実施形態では、そのようなデータオブジェクト識別子は、以下に記載される、記憶ノードマネージャ244、記憶ノードレジストラ248等のデータプレーン214サービスから取得され得る。
いくつかの実施形態では、直接I/Oのための制御プレーン210は、ジョブエントリーまたは記録を記憶するためにジョブトラッカーストア232を含む。種々の実施形態では、ジョブトラッカーストア232は、キーバリューデータストアのようなNoSQLデータ管理システム、リレーショナルデータベース管理システム(「RDBMS」)、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、ジョブトラッカーストア232に記憶されたデータは、特定の顧客に属するジョブの高速列挙を可能にし、効率的なバルク記録削除、サービスの別々のインスタンスによる並列処理等を容易にするように分割され得る。例えば、ジョブトラッカーストア232は、顧客アカウント識別子に従って分割され範囲キー(range keys)としてジョブ識別子を使用する、テーブルを実装し得る。一実施形態では、ジョブトラッカーストア232は、ジョブの終了およびクリーンアップ動作を容易にするように、(ジョブ有効期間等の)時間に基づいて更に副次的に分割(sub−partitioned)される。一実施形態では、ジョブトラッカーストア232に対するトランザクションは、トランザクションの合計数を削減するように集約され得る。例えば、いくつかの実施形態では、ジョブトラッカー230は、1つの単一の集約されたジョブをジョブトラッカーストア232内に挿入する前に、複数の要求に対応する集合的な複数のジョブを1つの単一の集約されたジョブ内に実施し得る。
一実施形態では、ジョブトラッカー230は、例えば、共有制御プレーン212におけるサービスによって、更なるジョブスケジューリングおよび計画のためのジョブを提出するように構成される。加えて、ジョブトラッカー230は、ジョブの実行を監視し、ジョブが完了されるとジョブトラッカーストア232の対応するジョブ記録を更新するように構成され得る。いくつかの実施形態では、ジョブトラッカー230は、ジョブステータスクエリーのような顧客クエリーを処理するように更に構成され得る。いくつかの実施形態では、ジョブトラッカー230は、顧客またはアーカイブデータ記憶システムの他のサービスにジョブステータス変更の通知も提供する。例えば、データ検索ジョブが完了すると、ジョブトラッカー230は、(例えば、通知サービスを用いて)データがダウンロード可能であると顧客に通知し得る。別の実施例として、データ記憶ジョブが完了すると、ジョブトラッカー230は、以下に記載の一時ペイロードデータキャッシュ228からデータ記憶ジョブに関連付けられるペイロードデータを消去するようにクリーンアップエージェント(cleanup agent)234に通知し得る。
一実施形態では、直接I/Oのための制御プレーン210は、データプレーン214とフロントエンド208との間を通過するペイロードデータのための一時データ記憶サービスを提供するためにペイロードデータキャッシュ228を含む。そのようなデータは、記憶保留中の受信データおよび顧客のダウンロード待ちの送信データを含む。本明細書に使用されるように、一時データストアは、データオブジェクトをそれらが本明細書に記載のアーカイブデータ記憶に記憶される前に記憶するかまたはアーカイブデータ記憶から検索されるデータオブジェクトを記憶するために使用されるデータストアを指す一時的データストアまたはステージングデータストアと同義に使用される。一時データストアは、揮発性または不揮発性(耐久性)の記憶を提供し得る。ほとんどの実施形態では、一時データストアは、永続的にデータを記憶するために潜在的に使用可能である一方で、アーカイブデータ記憶システムよりも短期間だけデータを記憶するように意図され、本明細書に記載のデータアーカイブ記憶システムよりも対費用効果が少ない場合がある。一実施形態では、受信および送信データに提供された一時データ記憶サービスは、分化され得る。例えば、アーカイブデータ記憶にまだ持続されていない受信データのためのデータ記憶は、アーカイブデータ記憶にすでに持続されている送信(検索された)データのためのデータ記憶より高度な信頼性および耐久性を提供し得る。別の実施形態では、一時記憶は、受信データにとって任意であり得、それは、例えば、十分な帯域幅および/または記憶する容量を有するシステムが存在する場合受信データは、ペイロードデータキャッシュ228等の一時データ記憶に記憶されることなくアーカイブデータ記憶に直接記憶され得るためである。
一実施形態では、直接I/Oのための制御プレーン210は、ジョブトラッカーストア232および/またはペイロードデータキャッシュ228を監視し、これ以上必要ないデータを消去するクリーンアップエージェント234もまた含む。例えば、データ記憶要求に関連付けられたペイロードデータは、データが永久記憶装置(例えば、データプレーン214)に持続された後で、ペイロードデータキャッシュ228から安全に消去され得る。リバース経路上で、顧客ダウンロードのためにステージされたデータは、利用可能な期間後(例えば、データがステージされてから30日間)かまたは顧客がステージされたデータがこれ以上必要ないと示した後に、ペイロードデータキャッシュ228から消去され得る。
いくつかの実施形態では、クリーンアップエージェント234は、ジョブステータスが、ジョブが完了したかまたは強制終了したかを示すと、ジョブトラッカーストア232からジョブ記録を消去する。上で論じられたように、いくつかの実施形態では、ジョブトラッカーストア232は、より速いクリーンアップを可能にするように分割され得る。データが顧客アカウント識別子によって分割される一実施形態では、クリーンアップエージェント234は、個別のジョブを1つずつ削除することの代わりに、ジョブが完了したとき特定の顧客アカウントのためのジョブを記憶するテーブル全体を消去し得る。データがジョブ有効期間に基づいて更に副次的に分割される別の実施形態では、クリーンアップエージェント234は、分割された領域の全てのジョブの有効期限が切れた後でジョブの全部の分割された領域またはテーブルをバルク削除し得る。他の実施形態では、クリーンアップエージェント234は、クリーンアップエージェント234にジョブトラッカーストア232および/またはペイロードデータキャッシュ228からジョブ記録を消去させるジョブトラッカー230のような他のサービスから命令または(ジョブが完了した指標等の)制御メッセージを受け取り得る。
ここから図2に例示される共有制御プレーン212を参照する。種々の実施形態では、共有制御プレーン212は、I/Oのための制御プレーン210から入ってくる平均ロードレベル(ジョブ)までピークを弱め、データプレーン214に管理可能な作業負荷を送達するように待ち行列ベースのロードのレベリングサービスを提供する。一実施形態では、共有制御プレーン212は、上述のように、直接I/Oのための制御プレーン210のジョブトラッカー230によって作成されたジョブを受け取るためのジョブ要求待ち行列236、データプレーン214(例えば、記憶ノードマネージャ244)からのサービスが実行する作業を受け取る記憶ノードマネージャジョブストア240、およびジョブ要求待ち行列236から記憶ノードマネージャジョブストア240に知的な方式でジョブアイテムを転送するための要求分散装置238を含む。
一実施形態では、ジョブ要求待ち行列236は、待ち行列(例えば、先入先出法(FIFO)または先入後出法(FILO))、セット、または任意の他の好適なデータ構造にアイテムを挿入する、およびそこからアイテムを消去するためのサービスを提供する。ジョブ要求待ち行列236のジョブエントリーは、上述のように、ジョブトラッカーストア232に記憶されたジョブ記録に類似してもよく、またはジョブ記録から異なってもよい。
一実施形態では、共有制御プレーン212は、データプレーン214(例えば、記憶ノードマネージャ244、反エントロピーウォッチャー252)からのサービスが、ジョブ計画の最適化、検査ポインティング、および回復を遂行することを可能にする耐久性がある高効率性ジョブストア、記憶ノードマネージャジョブストア240も提供する。例えば、一実施形態では、記憶ノードマネージャジョブストア240は、走査すること、問い合わせること、分類すること、または記憶ノードマネージャジョブストア240に記憶されたジョブアイテムを別様に操作することおよび管理することを支持することによって、バッチ処理、動作を結合すること等のジョブ最適化を可能にする。一実施形態では、記憶ノードマネージャ244は、受信ジョブを走査し、データ操作(例えば、読み出し、書き込み、または削除)の種類、記憶場所(例えば、ボリューム、ディスク)、顧客アカウント識別子等によってジョブを分類する。記憶ノードマネージャ244は、次いで、再順序付けするか、結合させるか、バッチにおいて群化させるか、または処理のためにジョブを別様に操作しスケジュールし得る。例えば、一実施形態では、記憶ノードマネージャ244は、全ての読み出しおよび削除操作の前に全ての書き込み操作をバッチ処理し得る。別の実施形態では、記憶ノードマネージャ244は、動作結合を遂行し得る。別の実施例では、記憶ノードマネージャ244は、同じオブジェクトのための複数の検索ジョブを1つのジョブに結合し得るか、または削除ジョブが記憶ジョブの後にくる同一のデータオブジェクトのための記憶ジョブおよび削除ジョブをキャンセルし得る。
一実施形態では、記憶ノードマネージャジョブストア240は、複数の記憶ノードマネージャ244の独立処理を可能にし、全ての関与する記憶ノードマネージャ244に受信作業負荷の均等分散を提供するように、例えば、ジョブ識別子に基づいて、分割される。種々の実施形態では、記憶ノードマネージャジョブストア240は、キーバリューデータストアのようなNo SQLデータ管理システム、RDBMS、または任意の他のデータ記憶システムにより実装され得る。
一実施形態では、要求分散装置238は、作業負荷の変形例をならしシステム可用性を増加させるように、ジョブ要求待ち行列236から記憶ノードマネージャジョブストア240にジョブアイテムを転送するためのサービスを提供する。例えば、要求分散装置238は、記憶ノードマネージャストア240の作業負荷の比較的に持続可能なレベルを維持するように、ジョブ要求待ち行列236に入ってくるジョブ要求にサージが存在する場合、より低い速度で、またはより小さい粒度でジョブ要求待ち行列236からジョブアイテムを転送し得、入ってくるジョブ要求に小康状態が存在する場合である逆の場合も同様である。いくつかの実施形態では、作業負荷のそのような持続可能なレベルは、システムの平均作業負荷とほぼ同じかまたは下回る。
一実施形態では、完了したジョブアイテムは、記憶ノードマネージャジョブストア240から消去され、ジョブ結果待ち行列242に追加される。一実施形態では、データプレーン214サービス(例えば、記憶ノードマネージャ244)は、記憶ノードマネージャジョブストア240からジョブアイテムを消去して、それらをジョブ結果待ち行列242に追加することを担う。いくつかの実施形態では、上に論じられる、ジョブ要求待ち行列242は、ジョブ要求待ち行列236として類似の方式で実装され得る。
ここから図2に例示されるデータプレーン214を参照する。種々の実施形態では、データプレーン214は、長期アーカイブデータ記憶、検索および削除、データ管理および配置、反エントロピー動作等に関連するサービスを提供する。種々の実施形態では、データプレーン214は、データ記憶デバイス(テープドライブ、ハードディスクドライブ、ソリッドステートデバイス等)、記憶ノードまたはサーバ、データセンター等の任意の数および種類の記憶エンティティを含み得る。そのような記憶エンティティは、物理的か、仮想化か、またはそれらの任意の抽象化(例えば、分散型記憶および/またはコンピューティングシステムのインスタンス)であり得、階層型または段層式トポロジーを含む任意のトポロジー中に体系化される。同様に、データプレーンの構成要素は、分散されるか、ローカルか、またはそれらの任意の組み合わせであり得る。例えば、種々のコンピューティングまたは記憶構成要素は、任意の数のデータセンター、サーバ、またはデータ記憶デバイスに対してローカルかまたはリモートであり得、これらの任意の数のデータセンター、サーバ、またはデータ記憶デバイスは、互いに対してローカルかまたはリモートであり得る。種々の実施形態では、物理的な記憶エンティティは、有効である物理的なハードウェア(例えば、活発に回転しているハードドライブの数)の部分を制御することによって電力および冷却費用を最小化するために設計され得る。一実施形態では、物理的な記憶エンティティは、記憶容量を向上させるように瓦記録方式(SMR)のような技術を実装する。
図2により例示される環境では、1つ以上の記憶ノードマネージャ244それぞれは、データおよび制御メッセージを送信することおよび受け取ることによって1つ以上の記憶ノード246を制御する。その結果、各記憶ノード246は、ハードディスクドライブのようなデータ記憶デバイスの(潜在的に大きい)集合体を制御する。種々の実施形態では、記憶ノードマネージャ244は、1つ以上の記憶ノード246と通信し得、記憶ノード246は、1つ以上の記憶ノードマネージャ244と通信し得る。一実施形態では、記憶ノードマネージャ244は、ダイジェスト計算、データ符号化および復号、ジョブ計画および最適化等の比較的複雑な計算を遂行できる1つ以上のコンピューティングデバイスによって実装される。いくつかの実施形態では、記憶ノード246は、記憶ノードマネージャ244より劣る計算性能を有する1つ以上のコンピューティングデバイスによって実装される。更に、いくつかの実施形態では、記憶ノードマネージャ244は、データ経路に含まれていない可能性がある。例えば、データは、ペイロードデータキャッシュ228から直接記憶ノード246に伝送され得るか、または1つ以上の記憶ノード246からペイロードデータキャッシュ228に伝送され得る。この方法で、記憶ノードマネージャ244は、ペイロードデータキャッシュ228および/または記憶ノード246から直接ペイロードを受け取ることなく、ペイロードデータキャッシュ228および/または記憶ノード246に命令を伝送し得る。種々の実施形態では、記憶ノードマネージャ244は、データの流れを導くように本明細書に記載のアーカイブデータ記憶システム206の任意の他の構成要素に命令または制御メッセージを送信し得る。
一実施形態では、記憶ノードマネージャ244は、共有制御プレーン212(例えば、記憶ノードマネージャジョブストア240)からジョブアイテムを選ぶこと、ペイロードデータキャッシュ228からステージされたデータを検索してデータ記憶ジョブのために必要なデータ符号化を遂行すること、およびデータを記憶、検索、または削除するように適切な記憶ノード246に要求することによって、データプレーン214に入ってきてデータプレーン214から出ていくジョブのためのエントリーポイントとして機能する。記憶ノード246が要求されたデータ操作を遂行することを終了すると、記憶ノードマネージャ244は、データ復号することおよびデータ検索ジョブのためにペイロードデータキャッシュ228に検索されたデータを記憶することのような付加的な処理を遂行し得、共有制御プレーン212においてジョブ記録を更新し得る(例えば、記憶ノードマネージャジョブストア240から終了したジョブを消去して、それらをジョブ結果待ち行列242に追加すること)。
一実施形態では、記憶ノードマネージャ244は、データ冗長性、安全性等を提供するデータ記憶の前に1つ以上のデータ符号化スキームに従ってデータ符号化を遂行する。そのようなデータ符号化スキームは、暗号化スキーム、消失訂正符号化のような冗長性符号化スキーム、redundant array of independent disks(RAID)符号化スキーム、複製等を含み得る。同様に、一実施形態では、記憶ノードマネージャ244は、元のデータを復元するデータ検索の後で、解読、消失訂正復号化等の対応するデータ復号スキームを遂行する。
記憶ノードマネージャジョブストア240に関連して上で論じられたように、記憶ノードマネージャ244は、効率性を高めるように、バッチ処理、動作結合等のジョブ計画および最適化を実装し得る。いくつかの実施形態では、ジョブは、分割された領域間にわずかの重複しか存在しないようにかまたは重複が存在しないように記憶ノードマネージャの間で分割される。そのような実施形態は、複数の記憶ノードマネージャによって、例えば、競合またはロッキングの確率を削減することによって、並列処理を容易にする。
種々の実施形態では、データプレーン214は、データ整合性を容易にするように実装される。例えば、記憶ノードマネージャ244および/または記憶ノード246のようなバルクデータの流れを処理する記憶エンティティは、記憶されたかまたは検索されたデータのダイジェストを検証し得、メタデータの整合性等を確実にするエラー検出コードを検査し得る。
種々の実施形態では、データプレーン214は、アーカイブデータ記憶システムの拡張性および信頼性を容易にするように実装される。例えば、一実施形態では、記憶ノードマネージャ244は、内部状態が追加されるか、消去されるか、または少しの不利な影響で変換されることができるように、内部状態を維持しないかまたは少しの内部状態を維持する。一実施形態では、各記憶デバイスは、ユニット上に記憶されたデータについての情報を提供することができる自己完結型および自己記述型記憶ユニットである。そのような情報は、データの損失の場合データ回復を容易にするように使用され得る。更には、一実施形態では、各記憶ノード246は、記憶ノードのネットワークの場所および1つ以上の記憶ノードレジストラ248および/または記憶ノードレジストラストア250に接続された記憶デバイスの記憶情報を含む記憶ノードについて、情報を収集することおよび報告することができる。いくつかの実施形態では、記憶ノード246は、システム開始時にそのような自己報告を遂行し、定期的に更新された情報を提供する。種々の実施形態では、そのような自己報告アプローチは、大量のデータオブジェクトがアーカイブデータシステムに記憶される場合に、実質的に増大できるグローバル名前空間キーマップまたはインデックスを維持する必要なく、動的および最新になったディレクトリ情報を提供する。
一実施形態では、データプレーン214は、記憶エンティティのためのディレクトリ情報およびそこに記憶されたデータ、データ配置サービス等を提供する1つ以上の記憶ノードレジストラ248も含み得る。記憶ノードレジストラ248は、記憶ノードレジストラ248のための記憶を提供する1つ以上の記憶ノードレジストラストア250へのフロントエンドサービスと通信し、フロントエンドサービスとして機能し得る。種々の実施形態では、記憶ノードレジストラストア250は、キーバリューデータストアのようなNoSQLデータ管理システム、RDBMS、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、記憶ノードレジストラストア250は、サービスの複数のインスタンスによる並列処理を可能にするように分割され得る。上で論じられたように、一実施形態では、記憶ノードレジストラストア250で記憶された情報は、記憶ノード246それ自体によって報告された情報に少なくとも部分的に基づく。
いくつかの実施形態では、記憶ノードレジストラ248は、例えば、データ記憶、検索、および削除操作のためにどの記憶ノード246に接触するかを決定したい記憶ノードマネージャ244にディレクトリサービスを提供する。例えば、記憶ノードマネージャ244によって提供されたボリューム識別子を所与として、記憶ノードレジストラ248は、記憶ノードレジストラストア250に維持されるマッピングに基づいて、ボリューム識別子に対応するボリューム構成要素をホストする記憶ノードのリストを提供し得る。具体的には、一実施形態では、記憶ノードレジストラストア250は、ボリュームまたはボリューム構成要素の識別子のリストと、ドメインネームシステム(DNS)名称のような、ボリュームまたはボリューム構成要素をホストする記憶ノードのエンドポイントとの間にマッピングをストアする。
本明細書に使用されるように、「ボリューム」とは、データオブジェクトがそこに記憶され得るデータ記憶システム内の論理記憶空間を指す。ボリュームは、ボリューム識別子によって識別され得る。ボリュームは、1つの物理的な記憶デバイス(例えば、ハードディスク)に存在し得るかまたは複数の記憶デバイスにわたって広がり得る。後者の場合には、ボリュームは、各々が異なる記憶デバイス上に存在する複数のボリューム構成要素を含む。本明細書に使用されるように、「ボリューム構成要素」とは、記憶デバイスのような記憶エンティティに物理的に記憶されるボリュームの一部分を指す。同一のボリュームのためのボリューム構成要素は、異なる記憶エンティティ上に記憶され得る。一実施形態では、データが冗長性符号化スキーム(例えば、消失訂正符号化スキーム、RAID、複製)によって符号化されるとき、各符号化されたデータ構成要素または「分割データベース」は、耐障害性および独立性を提供するように異なるボリューム構成要素に記憶され得る。いくつかの実施形態では、ボリューム構成要素は、ボリューム識別子および分割データベーススロット識別子を含むボリューム構成要素識別子によって識別される。本明細書に使用されるように、分割データベーススロットは、冗長性符号化スキームにおいて特定の分割データベース、行、またはデータのストライプを識別する。例えば、一実施形態では、分割データベーススロットは、消失訂正符号化マトリクス行に対応する。いくつかの実施形態では、記憶ノードレジストラストア250は、合計、使用された空間および空き空間、記憶されたデータオブジェクトの数等のボリュームまたはボリューム構成要素についての情報も記憶する。
いくつかの実施形態では、データプレーン214は、データの独立性および耐障害性制約を満たすように、記憶ノードレジストラストア250によって維持される情報に少なくとも部分的に基づいて、記憶空間(例えば、ボリューム)を新たなデータオブジェクトを記憶する記憶ノード上に割り当てるための記憶アロケータ256も含む。いくつかの実施形態では、記憶アロケータ256は、人手の介入を必要とする。
いくつかの実施形態では、データプレーン214は、エントロピー効果を検出して反エントロピー訂正ルーチンを開始するための反エントロピーウォッチャー252も含む。例えば、反エントロピーウォッチャー252は、記憶ノード、ライブを調製すること、または維持されたデータを有する実際のデータ等の全ての記憶エンティティのアクティビティおよびステータスを監視することを担い得る。種々の実施形態では、エントロピー効果は、繰り返された書き込みまたは再書き込みサイクルからもたらされるデータ断片化が原因の性能低下、(例えば、磁気媒体の)ハードウェアウェア、ハードウェア/ソフトウェア異常が原因のデータ非可用性および/またはデータの損失、環境要因、ハードウェアの物理的な破壊、偶然または他の原因を含むが、これらに限定されない。反エントロピーウォッチャー252は、そのような効果を検出し得、いくつかの実施形態では、先制しておよび/または反応的に反エントロピー訂正ルーチンおよび/またはポリシーを導入する。
一実施形態では、反エントロピーウォッチャー252は、記憶ノード246に、記憶ノードに接続される記憶デバイス上で定期的な反エントロピー走査を実施させる。反エントロピーウォッチャー252は、情報を集め、データ等を回復するようにジョブ要求待ち行列236(および続いてジョブ結果待ち行列242)に要求も入れ得る。いくつかの実施形態では、反エントロピーウォッチャー252は、参照整合性を確実にするように、以下に記載の、例えば、コールドインデックスストア262および記憶ノード246上で走査を遂行し得る。
一実施形態では、記憶ノードレジストラストア250で記憶された情報は、記憶ノードレジストラ248、記憶アロケータ256、反エントロピーウォッチャー252等の様々なサービスによって使用される。例えば、記憶ノードレジストラ248は、データ記憶、検索、および削除中に、(例えば、記憶ノードマネージャ244に)データ場所および配置サービスを提供し得る。例えば、記憶されるデータオブジェクトのサイズおよび記憶ノードレジストラストア250によって維持される情報を所与として、記憶ノードレジストラ248は、データオブジェクトをどこに記憶するか(例えば、ボリューム)を決定し得、データオブジェクトに関連付けられたデータオブジェクト識別子を生成するように使用され得るデータオブジェクトの記憶場所の指標を提供する。別の実施例として、一実施形態では、記憶アロケータ256は、独立性および耐障害性制約を満たすように特定の記憶ノードに新たなボリュームのためのボリューム構成要素を作成して配置する記憶ノードレジストラストア250に記憶された情報を使用する。なおも別の実施例として、一実施形態では、反エントロピーウォッチャー252は、データの損失、ハードウェアの破損等のエントロピー効果を検出するように、記憶ノードレジストラストア250に記憶された情報を使用する。
いくつかの実施形態では、データプレーン214は、記憶システムのオーファンをトラック記録するように使用される、オーファンクリーンアップデータストア254も含む。本明細書に使用されるように、オーファンは、任意の外部エンティティによって参照されない記憶されたデータオブジェクトである。種々の実施形態では、オーファンクリーンアップデータストア254は、キーバリューデータストアのようなNoSQLデータ管理システム、RDBMS、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、記憶ノードレジストラ248は、オーファンクリーンアップデータストア254にオブジェクト配置情報を記憶する。続いて、オーファンクリーンアップデータストア254に記憶された情報は、例えば、反エントロピーウォッチャー252によってメタデータプレーン216に維持された情報と比較され得る。オーファンが検出された場合、いくつかの実施形態では、オーファンを削除する要求が、共有制御プレーン212に挿入される。
ここから図2に例示されるメタデータプレーン216を参照する。種々の実施形態では、メタデータプレーン216は、インベントリおよび課金目的のための、顧客メタデータ照会等を満たすシステムに記憶されるデータオブジェクトについての情報を提供する。例示された実施形態では、メタデータプレーン216は、共有制御プレーン212のジョブ結果待ち行列242からのエントリーに基づいて実行されたトランザクションについての情報を記憶するメタデータマネジャジョブストア258を含む。種々の実施形態では、メタデータマネジャジョブストア258は、キーバリューデータストアのようなNoSQLデータ管理システム、RDBMS、または任意の他のデータ記憶システムにより実装され得る。いくつかの実施形態では、メタデータマネジャジョブストア258は、例えば、論理データコンテナに基づいて、メタデータマネジャ260のようなサービスの複数のインスタンスによって並列処理を容易にするように、分割されて副次的に分割される。
例示説明となる実施形態では、メタデータプレーン216は、メタデータマネジャジョブストア258の記録に基づいて、(例えば、コールドインデックスストア262に記憶された)データオブジェクトのコールドインデックスを生成するために1つ以上のメタデータマネジャ260も含む。本明細書に使用されるように、「コールド」インデックスとは、稀に更新されるインデックスを指す。種々の実施形態では、コールドインデックスは、諸費用を削減するために維持される。いくつかの実施形態では、複数のメタデータマネジャ260は、並列してメタデータマネジャジョブストア258の異なる分割された領域から定期的に記録を読み出し処理し得、コールドインデックスストア262に結果を記憶し得る。
いくつかの実施形態では、コールドインデックスストア262は、信頼でき耐久性のあるデータ記憶サービスによって実装され得る。いくつかの実施形態では、コールドインデックスストア262は、顧客によって開始されたメタデータ要求を処理するように構成される。例えば、顧客は、所与の論理データコンテナに含まれる全てのデータオブジェクトを列記する要求を発行し得る。そのような要求に応答して、コールドインデックスストア262は、コールドインデックス262によって維持された情報に基づいて、論理データコンテナに含まれる全てのデータオブジェクトの識別子のリストを提供し得る。いくつかの実施形態では、操作は、比較的長時間かかり得、顧客は、ジョブが終了したとき結果を検索するジョブ識別子を提供され得る。他の実施形態では、コールドインデックスストア262は、インベントリ、課金および請求目的のために、他のサービスからの、例えば、フロントエンド208からの照会を処理するように構成される。
いくつかの実施形態では、メタデータプレーン216は、コンテナ所有、ポリシー、使用量等の論理データコンテナについての情報を記憶するコンテナメタデータストア264も含み得る。そのような情報は、承認、計測、課金等を遂行するように、例えば、フロントエンド208サービスによって、使用され得る。種々の実施形態では、コンテナメタデータストア264は、キーバリューデータストアのようなNoSQLデータ管理システム、RDBMS、または任意の他のデータ記憶システムにより実装され得る。
本明細書に記載されるように、種々の実施形態では、本明細書に記載されるアーカイブデータ記憶システム206は、効率的で拡張性があるように実装される。例えば、一実施形態では、バッチ処理および要求の結合は、効率性を改善するように様々な段階(例えば、フロントエンド要求処理、制御プレーンジョブ要求処理、データプレーンデータ要求処理)で使用される。別の実施例には、一実施形態では、ジョブ、要求等のメタデータを処理することは、サービスの複数のインスタンスによって分割された領域の並列処理を容易にするように分割される。
一実施形態では、(以下に記載のデータ構成要素、ボリューム等の)アーカイブデータ記憶システムに記憶されたデータ要素は、グローバルインデックスデータ構造の必要性を避けるように自己記述型である。例えば、一実施形態では、システムに記憶されたデータオブジェクトは、記憶場所情報を符号化するデータオブジェクト識別子によってアドレス可能であり得る。別の実施例には、一実施形態では、ボリュームは、どのデータオブジェクトがボリュームに記憶されたかについての情報を記憶し得、記憶ノードおよびそのようなボリュームを記憶するデバイスは、集合的に、システムに記憶されたデータのグローバルな視聴を提供するように、そのインベントリおよびハードウェア情報を記録し得る(記憶ノードレジストラストア250に記憶される情報からも明らかなように)。そのような実施形態では、グローバルな視聴は、効率性のためのみに提供され、システムに記憶されたデータの場所を特定する必要はない。
種々の実施形態では、本明細書に記載のアーカイブデータ記憶システムは、データ信頼性および耐久性を改善するように実装され得る。例えば、一実施形態では、データオブジェクトは、冗長的に複数のデータ構成要素に符号化され、耐障害性を提供するように異なるデータ記憶エンティティにわたって記憶される。別の実施例には、一実施形態では、データ要素は、整合性検査の複数のレベルを有する。一実施形態では、親子関係は、常に、完全な参照整合性を確実にするように付加的な情報を有する。例えば、一実施形態では、バルクデータ伝送および記憶経路は、イニシエータに、伝送前にデータについてのダイジェストを事前計算させ、続いてデータと共にダイジェストを受信器に供給させることよって、バルクデータ伝送および記憶経路が保護される。データ伝送の受信器は、再計算、比較、および次いで再計算されたダイジェストを含む送信元へ確認応答することを担う。そのようなデータ整合性検査は、例えば、上に記載されるフロントエンドサービス、一時データ記憶サービス、データプレーン記憶エンティティ等によって実装され得る。
図3は、少なくとも1つの実施形態に従う、アーカイブデータ記憶システムの構成要素が接続され得る相互接続ネットワーク300を例示する。具体的には、例示された実施例は、データプレーン構成要素が、どのように相互接続ネットワーク300に接続されるかを示す。いくつかの実施形態では、相互接続ネットワーク300は、リンク帯域幅が、より高くまたは「より太く」ツリーのルートに向かって増大する太いツリー相互接続ネットワークを含み得る。例示された実施例では、データプレーンは、1つ以上のデータセンター301を含む。各データセンター301は、各サーバラックが図2に関連して説明されるような記憶ノードマネージャの機能性を集合的に提供する1つ以上のサーバをホストする、1つ以上の記憶ノードマネージャサーバラック302を含み得る。他の実施形態では、各記憶ノードマネージャサーバラックは、2つ以上の記憶ノードマネージャをホストし得る。ラック当たりの記憶ノードマネージャの数、記憶ノードマネージャラックの数等の構成パラメータは、費用、拡張性、冗長性および性能要件、ハードウェアおよびソフトウェアリソース等の要因に基づいて決定され得る。
各記憶ノードマネージャサーバラック302は、相互接続ネットワーク300に接続するように使用される相互接続308への記憶ノードマネージャラック接続314を有し得る。いくつかの実施形態では、接続314は、ラックの最上位のイーサネットスイッチまたは任意の他の種類のネットワークスイッチを含み得るネットワークスイッチ303を用いて実装される。種々の実施形態では、相互接続308は、広帯域幅および待ち時間の少ないバルクデータ転送を可能にするように使用される。例えば、相互接続は、Closネットワーク、太いツリー相互接続、非同期転送モード(ATM)ネットワーク、ファストまたはギガビットイーサネット等を含み得る。
種々の実施形態では、記憶ノードマネージャラック接続314の帯域幅は、同一かまたは異なるデータセンター内に位置する記憶ノードマネージャと記憶ノードとの間で広帯域幅および待ち時間の少ない通信を可能にするように構成され得る。例えば、一実施形態では、記憶ノードマネージャラック接続314は、1秒当たり10ギガビット(Gbps)の帯域幅を有する。
いくつかの実施形態では、各データセンター301は、各サーバラックが図2に関連して説明されるような多数の記憶ノードの機能性を集合的に提供する1つ以上のサーバをホストする、1つ以上の記憶ノードサーバラック304も含み得る。ラック当たりの記憶ノードの数、記憶ノードラックの数、記憶ノードマネージャと記憶ノードとの間の配分等の構成パラメータは、費用、拡張性、冗長性および性能要件、ハードウェアおよびソフトウェアリソース等の要因に基づいて決定され得る。例えば、一実施形態では、記憶ノードサーバラック当たり3つの記憶ノード、データセンター当たり30〜80のラックが存在し、記憶ノードと記憶ノードマネージャとの比率は10:1である。
各記憶ノードサーバラック304は、相互接続ネットワーク300に接続するように使用される相互接続ネットワークスイッチ308への記憶ノードラック接続316を有し得る。いくつかの実施形態では、接続316は、ラックの最上位のイーサネットスイッチまたは任意の他の種類のネットワークスイッチを含み得るネットワークスイッチ305を用いて実装される。種々の実施形態では、記憶ノードラック接続316の帯域幅は、同一かまたは異なるデータセンター内に位置する記憶ノードマネージャと記憶ノードとの間で広帯域幅および待ち時間の少ない通信を可能にするように構成され得る。いくつかの実施形態では、記憶ノードラック接続316は、記憶ノードマネージャラック接続314よりも高い帯域幅を有する。例えば、一実施形態では、記憶ノードマネージャラック接続314が10Gbpsの帯域幅を有する一方で、記憶ノードラック接続316は、20Gbpsの帯域幅を有する。
いくつかの実施形態では、(記憶ノードマネージャおよび記憶ノードを含む)データセンター301は、図2に関連して説明されるように、接続310を介して、ペイロードデータキャッシュ228、記憶ノードマネージャジョブストア240、記憶ノードレジストラ248、記憶ノードレジストラストア350、オーファンクリーンアップデータストア254、メタデータマネジャジョブストア258等の他のコンピューティングリソースサービス306と通信する。
いくつかの実施形態では、1つ以上のデータセンター301は、データセンター間接続312を介して接続され得る。いくつかの実施形態では、接続310および312は、ハードウェアリソースの効率的な動作および使用を達成するように構成され得る。例えば、一実施形態では、接続310は、データセンター当たり30〜100Gbpsの帯域幅を有し、データセンター間接続312は、100〜250Gbpsの帯域幅を有する。
図4は、少なくとも1つの実施形態に従う、アーカイブデータ記憶システムの構成要素が接続され得る相互接続ネットワーク400を例示する。具体的には、例示された実施例は、非データプレーン構成要素が、相互接続ネットワーク300にどのように接続されるかを示す。例示されるように、図2に関連して説明されるようなフロントエンドサービスは、1つ以上のフロントエンドサーバラック402によってホストされ得る。例えば、各フロントエンドサーバラック402は、1つ以上のウェブサーバをホストし得る。フロントエンドサーバラック402は、ネットワークスイッチ408を介して相互接続ネットワーク400に接続し得る。一実施形態では、フロントエンドサービスの数、ラック当たりのサービスの数、フロントエンドサーバラック接続314のための帯域幅等の構成パラメータは、図3に関連して説明されるように、記憶ノードマネージャのためのものにおおよそ対応し得る。
いくつかの実施形態では、図2に関連して説明されるように制御プレーンサービスおよびメタデータプレーンサービスは、1つ以上のサーバラック404によってホストされ得る。そのようなサービスは、ジョブトラッカー230、メタデータマネジャ260、クリーンアップエージェント232、ジョブ要求分散装置238、および他のサービスを含み得る。いくつかの実施形態では、そのようなサービスは、頻繁なバルクデータ転送を処理しないサービスを含む。最終的に、本明細書に記載される構成要素は、図2に関連して説明されるように接続410を介して、ペイロードデータキャッシュ228、ジョブトラッカーストア232、メタデータマネジャジョブストア258等の他のコンピューティングリソースサービス406と通信し得る。
図5は、少なくとも1つの実施形態に従って、データを記憶するための例示的な過程500を例示する。いくつかのまたは全ての過程500(または本明細書に記載の任意の他の過程または変形例および/またはそれらの組み合わせ)は、実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で遂行され得、ハードウェアまたはそれらの組み合わせによって、1つ以上のプロセッサ上で集合的に実行されるコード(例えば、実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実装され得る。コードは、例えば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータが読み出し可能な記憶媒体上に記憶され得る。コンピュータが読み出し可能な記憶媒体は、非一時的であり得る。一実施形態では、アーカイブデータ記憶システム206の1つ以上の構成要素は、図2に関連して説明されるように、過程500を遂行し得る。
一実施形態では、過程500は、文書、ビデオ、または音声ファイル等のアーカイブデータを記憶するデータ記憶要求を受け取ること502を含む。そのようなデータ記憶要求は、ペイロードデータのサイズおよびダイジェスト、ユーザ識別情報(例えば、ユーザ名、アカウント識別子等)、論理データコンテナ識別子等のペイロードデータおよびメタデータを含み得る。いくつかの実施形態では、過程500は、各々がより大きいペイロードデータの一部分を含む複数の記憶要求を受け取ること502を含み得る。他の実施形態では、記憶要求は、アップロードされる複数のデータオブジェクトを含み得る。一実施形態では、過程500のステップ502は、図2に関連して説明されるように、フロントエンド208のAPI要求ハンドラ218のようなサービスによって実装される。
一実施形態では、過程500は、要求を受け取ること502に応じて、記憶要求を処理すること504を含む。そのような処理することは、例えば、受け取られたデータの整合性を確証すること、顧客を認証すること、アクセス制御ポリシーに対して要求されたアクセスを承認すること、計測および課金関連のアクティビティを遂行すること等を含み得る。一実施形態では、そのような処理することは、図2に関連して説明されるようなフロントエンド208のサービスによって遂行され得る。一実施形態では、そのような要求は、例えば、バッチモードにおいて他の要求に関連して処理され得る。
一実施形態では、過程500は、記憶要求に関連付けられたデータをステージングデータストアに記憶すること506を含む。そのようなステージングデータストアは、図2に関連して説明されるように、ペイロードデータキャッシュ228によって提供されるような一時データストアを含み得る。いくつかの実施形態では、ペイロードデータのみがステージングストアに記憶される。他の実施形態では、ペイロードデータに関連するメタデータも、ステージングストアに記憶され得る。一実施形態では、データ整合性は、ステージングデータストアに記憶される前に(例えば、ダイジェストに基づいて)検証される。
一実施形態では、過程500は、例えば、記憶要求に応答して、記憶されるデータに関連付けられたデータオブジェクト識別子を提供すること508を含む。上述されるように、データオブジェクト識別子は、記憶されたデータを検索する、削除する、または別様に参照する後続の要求によって使用され得る。一実施形態では、データオブジェクト識別子は、記憶されたデータオブジェクト、ペイロードデータの整合性を検証するように使用され得るサイズ、ダイジェスト、タイムスタンプ等のペイロード検証情報、データオブジェクト識別子それ自体およびデータオブジェクト識別子に符号化された情報のようなメタデータの整合性を検証するように使用され得るエラー検出コードのようなメタデータ検証情報等、の場所を特定するように使用され得る記憶場所情報を符号化し得る。一実施形態では、データオブジェクト識別子は、後続の顧客要求を検証するかまたは承認するように使用される情報も符号化し得る。例えば、データオブジェクト識別子は、データオブジェクトが記憶される論理データコンテナの識別子を符号化し得る。このデータオブジェクトを検索する後続の要求では、論理データコンテナ識別子は、要求するエンティティが論理データコンテナおよびそれ故に論理データコンテナに含まれるデータオブジェクトへのアクセスを有するかどうかを判定するように使用され得る。いくつかの実施形態では、データオブジェクト識別子は、顧客(例えば、データオブジェクト等のためのグローバル一意識別子、GUID)によって供給された情報および/または過程500を実施しているシステムによって収集または計算された情報(例えば、記憶場所情報)に基づいて情報を符号化し得る。いくつかの実施形態では、データオブジェクト識別子を生成することは、暗号秘密キーを用いて上述の情報のいくつかまたは全てを暗号化することを含み得る。いくつかの実施形態では、暗号秘密キーは、定期的に回転され得る。いくつかの実施形態では、データオブジェクト識別子は、上述のものとは異なる時期に生成され得るおよび/または提供され得る。例えば、データオブジェクト識別子は、(以下に記載の)記憶ジョブが生成されたおよび/または完了した後に生成され得るおよび/または提供され得る。
一実施形態では、データオブジェクト識別子を提供すること508は、記憶場所を、データが実際にそこに記憶される前に、決定することを含み得る。例えば、そのような決定は、動作ステータス(例えば、有効かまたは無効か)、利用可能な記憶空間、データ独立性要件等の存在するデータ記憶エンティティについてのインベントリ情報に少なくとも部分的に基づき得る。図2によって例示される環境200のような環境では、そのような決定は、図2に関連して上述されるように、記憶ノードレジストラ248のようなサービスによって実装され得る。いくつかの実施形態では、そのような決定は、図2に関連して説明されるように、記憶アロケータ256のようなサービスによって1つ以上の物理的な記憶デバイス上に新たな記憶空間(例えば、ボリューム)を割り当てることを含み得る。
一実施形態では、記憶場所識別子は、上で決定された記憶場所を表すように生成され得る。そのような記憶場所識別子は、例えば、ボリューム識別子構成要素およびデータオブジェクト識別子構成要素を含むボリューム参照オブジェクトを含み得る。ボリューム参照構成要素は、データが上に記憶されるボリュームを識別し得、データオブジェクト識別子構成要素は、ボリュームのどこにデータが記憶されるかを識別し得る。一般に、記憶場所識別子は、データが体系化される(階層のような)論理または物理的なデータ記憶トポロジー内の種々のレベルを識別する構成要素を含み得る。いくつかの実施形態では、記憶場所識別子は、実際のペイロードデータが記憶されるところかまたはデータが記憶されるところへの参照のチェーンを指し得る。
一実施形態では、データオブジェクト識別子は、ペイロードデータのような記憶されるデータの少なくとも一部分のダイジェスト(例えば、ハッシュ)を符号化する。いくつかの実施形態では、ダイジェストは、顧客によって提供されたダイジェストに少なくとも部分的に基づき得る。他の実施形態では、ダイジェストは、ペイロードデータに基づいて、最初から計算され得る。
一実施形態では、過程500は、長期データストアへデータを持続するための記憶ジョブを作成すること510および実行のための記憶ジョブをスケジュールすること512を含む。図2に関連して説明されるように環境200では、上述のように、ステップ508、510、および512は、直接I/Oのための制御プレーン210および共有制御プレーン212の構成要素によって少なくとも部分的に実装され得る。具体的には、一実施形態では、ジョブトラッカー230は、ジョブ記録を作成し、ジョブトラッカーストア232にジョブ記録を記憶する。上述されるように、ジョブトラッカー230は、ジョブトラッカーストア232に対するトランザクションの合計数を削減するようにバッチ処理を遂行し得る。加えて、ジョブトラッカーストア232は、並列処理、クリーンアップ動作等を容易にするように、分割され得るかまたは別様に最適化され得る。ジョブ記録は、上述のように、顧客アカウント識別子、ジョブ識別子、記憶場所識別子、ペイロードデータキャッシュ228に記憶されたデータへの参照、ジョブステータス、ジョブ作成および/または有効期間等のジョブ関連情報を含み得る。いくつかの実施形態では、記憶ジョブは、データオブジェクト識別子が生成されるおよび/または提供される前に作成され得る。例えば、記憶ジョブ識別子は、データオブジェクト識別子の代わりにかまたはデータオブジェクト識別子に加えて、上のステップ508で記憶要求に応答して提供され得る。
一実施形態では、実行のために記憶ジョブをスケジュールすること512は、図2の共有制御プレーン212に関連して説明されるように、待ち行列に基づくロードのレベリングまたは分散、ジョブ分割等のジョブ計画および最適化を遂行することを含む。例えば、一実施形態では、ジョブ要求分散装置238は、I/Oのための制御プレーン210から入ってくる平均ロードレベル(ジョブ)までピークを弱め、データプレーン214に管理可能な作業負荷を送達するために、スケジュールするアルゴリズムに従ってジョブ要求待ち行列236から記憶ノードマネージャジョブストア240にジョブアイテムを転送する。別の実施例として、記憶ノードマネージャジョブストア240は、記憶ノードマネージャ244のような複数のワーカーによってジョブの並列処理を容易にするように分割され得る。なおも別の実施例として、記憶ノードマネージャジョブストア240は、バッチ処理および他のジョブ最適化を容易にするように問い合わせること、分類すること、および他の機能性を提供し得る。
一実施形態では、過程500は、図2に関連して説明されるように、記憶された記憶ノードマネージャジョブ240から例えば、記憶ノードマネージャ244によって実行するための記憶ジョブを選択すること514を含む。記憶ジョブは、バッチ処理のために他のジョブと共に選択され得るか(514)、または別様に上述のジョブ計画および最適化の結果として別様に選択され得る。
一実施形態では、過程500は、図2に関連して上述のペイロードデータキャッシュ228のようなステージングストアからデータを取得すること516を含む。いくつかの実施形態では、データの整合性は、例えば、サイズ、ダイジェスト、エラー検出コード等を確証することによって、検査され得る。
一実施形態では、過程500は、暗号化スキーム、消失訂正符号化のような冗長性符号化スキーム、redundant array of independent disks(RAID)符号化スキーム、複製等の1つ以上のデータ符号化スキームを取得すること518を含む。いくつかの実施形態では、そのような符号化スキームは、異なる要件に適合するように展開する。例えば、暗号キーは、定期的に回転され得、消失訂正符号化スキームの拡大要因は、長い期間をかけて異なるハードウェア構成、冗長性要件等に調整され得る。
一実施形態では、過程500は、取得された符号化スキームを使用して符号化すること520を含む。例えば、一実施形態では、データは暗号化され、暗号化されたデータは消失訂正符号化される。一実施形態では、図2に関連して説明される記憶ノードマネージャ244は、本明細書に記載のデータ符号化を遂行するように構成され得る。一実施形態では、そのような符号化スキームのアプリケーションは、耐障害性を提供するように、記憶デバイス、記憶ノード、データセンター等の異なる記憶エンティティにわたって記憶され得る複数の符号化されたデータ構成要素または分割データベースを生成する。データが複数のパート(複数パートアップロードの場合等)を含み得る一実施形態では、各パートは、本明細書に記載されるように、符号化されて記憶され得る。そのような実施形態では、データの各パートは、データに関連付けられたものとして同一のデータオブジェクト識別子によって識別可能およびアドレス可能であり得る。
一実施形態では、過程500は、そのような符号化されたデータ構成要素のための記憶エンティティを決定すること522を含む。例えば、図2によって例示される環境200では、記憶ノードマネージャ244は、ボリューム識別子を用いて記憶ノードレジストラ248に問い合わせることによって符号化されたデータ構成要素を記憶する複数の記憶ノード246を決定し得る。そのようなボリューム識別子は、記憶されるデータに関連付けられた記憶場所識別子に加わり得る。所与のボリューム識別子を有するクエリーに応答して、一実施形態では、記憶ノードレジストラ248は、符号化されたデータ構成要素を記憶する記憶ノード246のネットワークの場所(エンドポイント、DNS名、IPアドレス等を含む)のリストを戻す。図2に関連して説明されるように、記憶ノードレジストラ248は、自己報告され動的に提供されたおよび/または更新された記憶ノード246それら自体からのインベントリ情報に基づいてそのようなリストを決定し得る。いくつかの実施形態では、そのような決定は、データ独立性、耐障害性、ロード分散、電力節約、データ局所性、および他の検討事項に基づく。いくつかの実施形態では、記憶レジストラ248は、図2に関連して説明されるように、例えば、記憶アロケータ256を呼び出すことによって、新たな記憶空間を割り当てさせ得る。
一実施形態では、過程500は、所定の記憶エンティティで符号化されたデータ構成要素(複数可)を記憶すること524を行わせることを含む。例えば、図2によって例示される環境200では、記憶ノードマネージャ244は、は、所定の記憶場所でデータ構成要素を記憶するように上で決定された各記憶ノード246を要求し得る。データ構成要素を記憶する記憶ノードマネージャ244から記憶要求を受け取ることに応じて、各記憶ノード246は、接続された記憶デバイスにデータ構成要素を記憶させ得る。いくつかの実施形態では、データオブジェクト識別子の少なくとも一部分は、符号化された形態かまたは非符号化された形態かのいずれかでデータ構成要素のうちの全てまたはいくつかと共に記憶され得る。例えば、データオブジェクト識別子は、各データ構成要素のヘッダおよび/またはボリューム構成要素に記憶されたボリューム構成要素インデックスに記憶され得る。いくつかの実施形態では、記憶ノード246は、記憶ノードマネージャ244からの要求を処理するようにバッチ処理または他の最適化を遂行し得る。
一実施形態では、記憶ノード246は、要求する記憶ノードマネージャ244にデータが成功裡に記憶されたかどうかを示す確認応答を送信する。いくつかの実施形態では、記憶ノード246は、何らかの理由のため、要求が満たされることができなかったとき、エラーメッセージを戻す。例えば、記憶ノードが同一の記憶場所に記憶する2つの要求受け取った場合、1つまたは両方の要求が失敗する可能性がある。一実施形態では、記憶ノード246は、データを記憶することに先駆けて検証検査を遂行し、検証検査が失敗に終わった場合はエラーを戻す。例えば、データ整合性は、エラー検出コードまたはダイジェストを検査することによって確証され得る。別の実施例として、記憶ノード246は、例えば、ボリュームインデックスに基づいて、記憶要求によって識別されたボリュームが記憶ノードによって記憶されること、および/またはボリュームがデータ構成要素を記憶するのに十分な空間を有すること、を確証し得る。
いくつかの実施形態では、記憶ノードマネージャ244が要求された記憶ノード246の少なくともサブセット(記憶クォーラム)から肯定確認応答を受け取ると、データ記憶は、成功であるとみなされる。いくつかの実施形態では、記憶ノードマネージャ244は、ジョブを再試行するのに必要な状態を消去する前に、確認応答のクォーラムが受け取られるまで待機し得る。そのような状態情報は、確認応答が受け取られていない符号化されたデータ構成要素を含み得る。他の実施形態では、処理能力を改善するように、記憶ノードマネージャ244は、確認応答のクォーラムを受け取る前にジョブを再試行するのに必要な状態を消去し得る。
一実施形態では、過程500は、例えば、データプレーン214によって維持されたメタデータ(記憶デバイスのためのインデックスおよび記憶空間情報、記憶ノードレジストラストア250で記憶されたマッピング情報等)、制御プレーン210および212によって維持されたメタデータ(ジョブ関連情報等)、メタデータプレーン216によって維持されたメタデータ等(コールドインデックス等)を含むメタデータ情報526を更新することを含む。種々の実施形態では、そのようなメタデータ情報のいくつかは、性能および費用への影響を減少させるようにバッチ処理を介しておよび/または定期的に更新され得る。例えば、データプレーン214では、記憶ノードレジストラストア250によって維持される情報は、新たに記憶されたデータのボリューム識別子の付加的なマッピングを提供するように、そしてそのようなマッピングがまだそこに存在しない場合はデータ構成要素がその上に記憶される記憶ノード246を提供するように、更新され得る。別の実施例には、記憶デバイス上のボリュームインデックスは、新たに追加されたデータ構成要素を反映するように更新され得る。
共有制御プレーン212では、完了したジョブのためのジョブエントリーは、図2に関連して説明されるように、記憶ノードマネージャジョブストア240から消去され得、ジョブ結果待ち行列242に追加され得る。直接I/Oのための制御プレーン210では、ジョブトラッカーストア232におけるジョブ記録のステータスは、例えば、ジョブ結果待ち行列242を監視するジョブトラッカー230によって更新され得る。種々の実施形態では、完了できないジョブは、何度も再試行されてもよい。例えば、一実施形態では、新たなジョブは、異なる場所でデータを記憶するように作成され得る。別の実施例として、(例えば、記憶ノードマネージャジョブストア240、ジョブトラッカーストア232等に)存在するジョブ記録は、同一ジョブの再試行を容易にするように更新され得る。
メタデータプレーン216では、メタデータは、新たに記憶されたデータを反映するように更新され得る。例えば、完了したジョブは、ジョブ結果待ち行列242から呼び戻してメタデータマネジャジョブストア258に引き戻され得、コールドインデックスストア262に記憶されたような更新されたインデックスを生成するようにメタデータマネジャ260によってバッチ処理され得る。別の実施例には、顧客情報は、計測および課金目的のために変更を反映するように更新され得る。
最終的に、いくつかの実施形態では、記憶ジョブが成功裡に完了されると、記憶ジョブに関連付けられたジョブ記録、ペイロードデータ、および他のデータは、図2に関連して説明されるように、例えば、クリーンアップエージェント234によって消去され得る。いくつかの実施形態では、そのような消去は、バッチ処理、並列処理等によって処理され得る。
図6は、少なくとも1つの実施形態に従って、データを検索するための例示的な過程500を例示する。一実施形態では、アーカイブデータ記憶システム206の1つ以上の構成要素は、図2に関連して説明されるように、集合的に過程600を遂行し得る。
一実施形態では、過程600は、上述のように、過程500によって記憶されたようなデータを検索するデータ検索要求を受け取ること602を含む。そのようなデータ検索要求は、上述のように、過程500のステップ508によって提供されるようなデータオブジェクト識別子か、または検索されるデータを識別するように使用され得る任意の他の情報を含み得る。
一実施形態では、過程600は、要求を受け取ること602に応じて、データ検索要求を処理すること604を含む。そのような処理することは、例えば、顧客を認証すること、アクセス制御ポリシーに対して要求されたアクセスを承認すること、計測および課金関連のアクティビティを遂行すること等を含み得る。一実施形態では、そのような処理することは、図2に関連して説明されるようなフロントエンド208のサービスによって遂行され得る。一実施形態では、そのような要求は、例えば、バッチモードにおいて他の要求に関連して処理され得る。
一実施形態では、検索要求を処理すること604は、検索要求に含まれるデータオブジェクト識別子に少なくとも部分的に基づき得る。上述されるように、データオブジェクト識別子は、記憶場所情報、サイズ、作成タイムスタンプ、ペイロードダイジェスト等のペイロード検証情報、メタデータ検証情報、ポリシー情報等を符号化し得る。一実施形態では、検索要求を処理すること604は、例えば、プライベート暗号キーを用いておよび検索要求を検証する復号された情報のうちの少なくともいくつかを用いて、データオブジェクト識別子に符号化された情報を復号することを含む。例えば、ポリシー情報は、要求する検索要求のエンティティが、要求されたアクセスを遂行する要求された許可を有することを検証するように使用され得るアクセス制御情報を含み得る。別の実施例として、メタデータ検証情報は、データオブジェクト識別子の整合性またはその構成要素を確証するように使用され得る巡回冗長検査(「CRC」)のようなエラー検出コードを含み得る。
一実施形態では、過程600は、データ検索要求に対応するデータ検索ジョブを作成すること606、および例えば、データ検索要求に応答して、データ検索ジョブに関連付けられたジョブ識別子を提供すること608を含む。いくつかの実施形態では、データ検索ジョブを作成すること606は、図5に例示される過程500のステップ510に関連して説明されるようなデータ記憶ジョブを作成することに類似している。例えば、一実施形態では、ジョブトラッカー230は、データオブジェクト識別子に符号化された少なくともいくつかの情報および/またはジョブ有効期間等の付加的な情報を含むジョブ記録を作成し得、ジョブトラッカーストア232にジョブ記録を記憶し得る。上述されるように、ジョブトラッカー230は、ジョブトラッカーストア232に対するトランザクションの合計数を削減するようにバッチ処理を遂行し得る。加えて、ジョブトラッカーストア232は、並列処理、クリーンアップ動作等を容易にするように、分割され得るかまたは別様に最適化され得る。
一実施形態では、過程600は、上で作成されたデータ検索ジョブをスケジュールすること610を含む。いくつかの実施形態では、実行のためにデータ検索ジョブをスケジュールすること610は、図5の過程500のステップ512に関連して説明されるようなジョブ計画および最適化を遂行することを含む。例えば、データ検索ジョブは、ジョブ待ち行列の中に提出され得、費用、電力管理スケジュール等に少なくとも部分的に基づいて他のジョブと共にバッチ処理のためにスケジュールされ得る。別の実施例には、データ検索ジョブは、データ局所性等に基づいて他の検索ジョブと結合され得る。
一実施形態では、過程600は、図2に関連して説明されるように、記憶された記憶ノードマネージャジョブ240から例えば、記憶ノードマネージャ244によって実行するためのデータ検索ジョブを選択すること612を含む。検索ジョブは、バッチ処理のために他のジョブと共に選択され得るか(612)、または別様に上述のジョブ計画および最適化の結果として別様に選択され得る。
一実施形態では、過程600は、上述の過程500のような記憶過程によって生成される符号化されたデータ構成要素を記憶する記憶エンティティを決定すること614を含む。一実施形態では、記憶ノードマネージャ244は、上の、過程500のステップ522に関連して論じられるものに類似の方式で、符号化されたデータ構成要素を検索する複数の記憶ノード246を決定し得る。例えば、そのような決定は、ロード分散、電力節約、効率性、および他の検討事項に基づき得る。
一実施形態では、過程600は、検索されたデータを復号するように使用され得る1つ以上のデータ復号スキームを決定すること616を含む。典型的に、そのような復号スキームは、元のデータが前に記憶された際に元のデータに適用された符号化スキームに対応する。例えば、そのような復号スキームは、暗号キー、消失訂正復号化等による解読を含み得る。
一実施形態では、過程600は、過程600のステップ614で決定された記憶エンティティから符号化されたデータ構成要素のうちの少なくともいくつかを検索することを行わせること618を含む。例えば、図2によって例示される環境200では、データ検索ジョブを担う記憶ノードマネージャ244は、上で決定された記憶ノード246のサブセットにそれらの対応するデータ構成要素を検索するように要求し得る。いくつかの実施形態では、符号化されたデータ構成要素の最小数は、その数がデータを符号化するように使用されたデータ冗長性スキームに少なくとも部分的に基づいて決定され得る(例えば、消失訂正符号化の拡大要因)、元のデータを再構築するのに必要とされる。そのような実施形態では、記憶ノードのサブセットは、最小数以上の符号化されたデータ構成要素が検索されるように選択され得る。
記憶ノード246の各サブセットは、記憶ノードマネージャ244からデータ構成要素を検索する要求を受け取ることに応じて、例えば、(データオブジェクト識別子のパートである)記憶場所識別子の整合性を検査すること、記憶ノードが要求されたデータ構成要素を確かに保持することを確証すること等によって要求を検証し得る。検証が成功すると、記憶ノードは、記憶場所識別子に少なくとも部分的に基づいてデータ構成要素の場所を特定し得る。例えば、上述のように、記憶場所識別子は、ボリューム識別子構成要素と、データが記憶されるボリュームを識別するボリューム参照構成要素であるデータオブジェクト識別子構成要素と、を含むボリューム参照オブジェクトを含み得、データオブジェクト識別子構成要素は、ボリュームのどこにデータが記憶されているかを識別し得る。一実施形態では、記憶ノードは、例えば、接続されたデータ記憶デバイスからデータ構成要素を読み出し、検索を要求した記憶ノードマネージャに検索されたデータ構成要素を送信する。いくつかの実施形態では、データ整合性は、例えば、データ構成要素識別子を確証することによって、検査されるか、または検索ジョブに関連付けられたデータ構成要素識別子によって示されたものと同じであるそれらの一部分である。いくつかの実施形態では、記憶ノードは、データ構成要素の検索に関連してバッチングまたは他のジョブ最適化を遂行し得る。
一実施形態では、過程600は、過程600のステップ616で決定された1つ以上のデータ復号スキームを使用して、検索された符号化されたデータ構成要素の少なくとも最小数を復号すること620を含む。例えば、一実施形態では、検索されたデータ構成要素は、消失訂正復号化され得、次いで解読され得る。いくつかの実施形態では、データ整合性検査は、例えば、データオブジェクト識別子に符号化されたペイロード整合性検証情報(例えば、サイズ、タイムスタンプ、ダイジェスト)を用いて、再構築されたデータ上で遂行される。いくつかの場合では、検索ジョブは、検索されたデータ構成要素の最小数未満の数、データ整合性検査の失敗等が原因で失敗する可能性がある。そのような場合には、検索ジョブは、図5に関連して説明されるものに類似の様式で再試行され得る。いくつかの実施形態では、元のデータは、データの複数のパートを含み、各パートは、符号化されて記憶される。そのような実施形態では、検索中、データの各パートのために符号化されたデータ構成要素は、元のパートを形成するように検索されて復号され得(例えば、消失訂正復号化されて解読される)、復号されたパートは、元のデータを形成するように組み合され得る。
一実施形態では、過程600は、図2に関連して説明されるペイロードデータキャッシュ228のようなステージングストアに再構築されたデータを記憶することを含む。いくつかの実施形態では、ステージングストアに記憶されたデータ622は、一時期または無期限に、顧客によるダウンロードに使用可能であり得る。一実施形態では、データ整合性は、データがステージングストアに記憶される前に、(例えば、ダイジェストを用いて)検査され得る。
一実施形態では、過程600は、検索ジョブの完了の通知を、検索要求の要求元に、または、そのような通知を受け取るように別様に構成された別の1つもしくは複数のエンティティに提供すること624を含む。そのような通知は、個別にまたは数回に分けて提供され得る。他の実施形態では、検索ジョブのステータスは、例えば、顧客からのポーリング要求に応じて提供され得る。
図7は、少なくとも1つの実施形態に従って、データを削除するための例示的な過程700を例示する。一実施形態では、アーカイブデータ記憶システム206の1つ以上の構成要素は、図2に関連して説明されるように集合的に過程700を遂行し得る。
一実施形態では、過程700は、上述のように、過程500によって記憶されたようなデータを削除するデータ削除要求を受け取ること702を含む。そのようなデータ検索要求は、上述のように、過程500のステップ508によって提供されるようなデータオブジェクト識別子か、または削除されるデータを識別するように使用され得る任意の他の情報を含み得る。
一実施形態では、過程700は、要求を受け取ること702に応じて、データ削除要求を処理すること704を含む。いくつかの実施形態では、処理すること704は、上述のように、過程500のステップ504および過程600のステップ604のためのものに類似している。例えば、一実施形態では、処理すること704は、データ削除要求に含まれるデータオブジェクト識別子に少なくとも部分的に基づく。
一実施形態では、過程700は、データ削除要求に対応するデータ検索ジョブを作成すること706を含む。そのような検索ジョブは、過程500のステップ510に関連して説明される記憶ジョブの作成および過程600のステップ606に関連して説明される検索ジョブの作成に類似して作成され得る。
一実施形態では、過程700は、データが削除された確認応答を提供すること708を含む。いくつかの実施形態では、そのような確認応答は、データ削除要求が同期に処理されるという認識を提供するようにデータ削除要求に応答して提供され得る。他の実施形態では、データ削除ジョブに関連付けられたジョブ識別子は、データ検索要求のためのジョブ識別子の提供に類似して提供され得る。
一実施形態では、過程700は、実行のためのデータ削除ジョブをスケジュールすること708を含む。いくつかの実施形態では、データ削除ジョブをスケジュールすること708は、上述のように、過程500のステップ512および過程600のステップ610に関連して説明されるようなものに類似して実装され得る。例えば、近接して位置するデータのためのデータ削除ジョブは、結合され得る、および/またはバッチ処理され得る。別の実施例のために、データ削除ジョブには、データ検索ジョブより低い優先権が割り当てられ得る。
いくつかの実施形態では、記憶されたデータは、顧客によって指定されるかまたは初期設定によって設定される関連付けられる有効期間を有し得る。そのような実施形態では、削除ジョブは、作成され得(706)、データの有効期間にまたはデータの有効期間近くに自動的にスケジュールする(710)。いくつかの実施形態では、有効期間は、データがまだ利用可能かまたは回復可能な間である猶予期間に更に関連付けられ得る。いくつかの実施形態では、保留中の削除の通知は、有効期間前に、有効期間に、または有効期間後に提供され得る。
いくつかの実施形態では、過程700は、図2に関連して説明されるように、記憶された記憶ノードマネージャジョブ240から実行するためのデータ削除ジョブを例えば、記憶ノードマネージャ244によって選択すること712を含む。削除ジョブは、バッチ処理のために他のジョブと共に選択され得るか(712)、または別様に上述のジョブ計画および最適化の結果として別様に選択され得る。
いくつかの実施形態では、過程700は、上述の過程500のような記憶過程によって生成されるデータ構成要素を記憶するデータ構成要素のための記憶エンティティを決定すること714を含む。一実施形態では、記憶ノードマネージャ244は、上述の過程600のステップ614に関連して論じられるものに類似の方式で、符号化されたデータ構成要素を検索する複数の記憶ノード246を決定し得る。
いくつかの実施形態では、過程700は、データ構成要素のうちの少なくともいくつかを削除することを行わせること716を含む。例えば、図2によって例示される環境200では、データ削除ジョブを担う記憶ノードマネージャ244は、削除されるデータのためのデータ構成要素を記憶する記憶ノードの1組を識別し得、少なくともそれらの記憶ノードのサブセットに、それらの記憶ノードの個別のデータ構成要素を削除することを要求する。記憶ノード246の各サブセットは、記憶ノードマネージャ244からデータ構成要素を削除する要求を受け取ることに応じて、例えば、(データオブジェクト識別子のパートである)記憶場所識別子の整合性を検査すること、記憶ノードが要求されたデータ構成要素を確かに保持することを確証すること等によって要求を検証し得る。検証が成功すると、記憶ノードは、接続された記憶デバイスからデータ構成要素を削除し得、記憶ノードマネージャ244に動作が成功だったかどうかを示す確認応答を送信する。一実施形態では、複数のデータ削除ジョブは、近接して一緒に位置するデータオブジェクトがまとめて削除され得るようにバッチにおいて実行され得る。いくつかの実施形態では、記憶ノードマネージャ244が少なくとも記憶ノード246のサブセットから肯定確認応答を受け取ると、データ削除は成功であるとみなされる。サブセットのサイズは、データが、未削除のデータ構成要素からは後に再構築されることができないことを確実にするように構成され得る。失敗したかまたは未完了のデータ削除ジョブは、それぞれ、過程500および過程600に関連して説明される、データ記憶ジョブおよびデータ検索ジョブを再試行することに類似の方式で再試行され得る。
一実施形態では、過程700は、過程500のステップ526に関連して説明されるもののようなメタデータ情報を更新すること718を含む。例えば、削除動作を実行する記憶ノードは、インデックス、空き空間情報等を含む記憶情報を更新し得る。一実施形態では、記憶ノードは、記憶ノードレジストラまたは記憶ノードレジストラストアに更新を提供し得る。種々の実施形態では、そのようなメタデータ情報のいくつかは、性能および費用への影響を減少させるようにバッチ処理を介しておよび/または定期的に更新され得る。
図8は、少なくとも1つの実施形態に従う、データオブジェクト識別子800の例示的な表示を例示する。一実施形態では、データオブジェクト識別子800は、データオブジェクト識別子108に類似しているが更に詳細である。種々の実施形態では、データオブジェクト識別子は、図2に関連して説明されるようなアーカイブデータ記憶システムに記憶されたデータオブジェクトを識別する、単語、数、文字、記号、またはそれらの任意の組み合わせであり得る。データオブジェクト識別子は、図2の環境200に関連して説明されるようなアーカイブデータ記憶システムの1つ以上の構成要素によって生成されて使用され得る。一実施形態では、データオブジェクト識別子800は、効果的かつ信頼できるデータ検索、削除、および他の操作を容易にするように、本明細書に記載される、様々な情報を符号化する。他の実施形態では、データオブジェクト識別子800は、上述の情報の代わりにおよび/または上述の情報に加えて、他の情報を符号化し得る。
一実施形態では、データオブジェクト識別子800は、アーカイブデータ記憶システムに記憶されたデータオブジェクトの場所を特定するように使用され得る記憶場所情報802を符号化する。データオブジェクトが非一時的なアーカイブデータ記憶に移動される前に一時的なデータストアにまず記憶される実施形態では、記憶場所情報は、図2に関連して説明されるような、非一時的なアーカイブデータ記憶中の記憶場所を符号化し得る。そのような実施形態は、そのような実施形態は、データオブジェクト識別子を対応するデータオブジェクトの記憶場所にマップする名前空間マップまたは類似のデータ構造を記憶する必要性を削減し得るかまたは削除し得る。
図8に例示されるように、記憶場所情報802は、データオブジェクトが記憶される階層型データ構造への参照を符号化する。そのような階層型データ構造は、図2に関連して説明されるように、ボリューム、ボリューム構成要素、およびページを含み得る。例えば、一実施形態では、記憶場所情報802は、ボリューム識別子構成要素およびオブジェクト識別子構成要素を含むボリューム参照オブジェクトを符号化する。図2を参照すると、一実施形態では、アーカイブデータ記憶システムは、各ボリュームが1つ以上のオブジェクトを含有し得る論理ボリュームにデータを記憶する。そのような実施形態では、ボリューム識別子は、データオブジェクトを含有するボリュームを一意的に識別するように使用され得、オブジェクト識別子は、そのボリューム内のデータオブジェクトを一意的に識別するように使用され得る。例えば、ボリューム参照オブジェクトは、少なくとも1つの実施形態に従って、以下のようにプログラムで実装され得る。
VolumeRefObject
{
private short volRefCrc;
private VolumeIdComponent volume;
private ObjectIdComponent id;
}
{
private short volRefCrc;
private VolumeIdComponent volume;
private ObjectIdComponent id;
}
上に例示されるように、一実施形態では、ボリュームおよびidは、以下に説明される、ボリューム識別子構成要素およびオブジェクト識別子構成要素を、それぞれ、表す。一実施形態では、ボリューム参照オブジェクトは、ボリューム参照オブジェクトの整合性を確実にするように、巡回冗長検査(CRC)、ハッシュ等のようなエラー検出コードも含み得る。例えば、上の実施例では、volRefCrcは、ボリュームのCRCおよびボリューム参照オブジェクトの整合性を確証するように使用されるidを表し得る。
一実施形態では、ボリューム識別子構成要素は、ボリューム識別子および付加的な情報を含み得る。例えば、ボリューム識別子構成要素は、少なくとも1つの実施形態に従って、以下のようにプログラムで実装され得る。
VolumeIdComponent
{
private byte worldId;
private long volumeId;
…
}
{
private byte worldId;
private long volumeId;
…
}
上に例示されるように、一実施形態では、volumeIdは、ボリュームを一意的に識別する変数であり、worldIdは、本明細書に記載されるvolumeIdまたは他の識別子の不明瞭さを排除するおよび/または検証するように使用され得る変数である。
一実施形態では、オブジェクト識別子構成要素は、上述された、オブジェクト識別子および付加的な情報を含み得る。例えば、オブジェクト識別子構成要素は、以下のようにプログラムで実装され得る。
ObjectIdComponent
{
private byte objIdRev;
private int objIdSeq;
private int objIdRnd;
}
{
private byte objIdRev;
private int objIdSeq;
private int objIdRnd;
}
上に記述されるように、オブジェクト識別子構成要素は、図2に関連して説明されるように、データ配置目的のため、例えば、記憶ノードレジストラ248によって発行された単調増加シーケンス番号である変数objIdSeqを含み得る。オブジェクト識別子構成要素は、データ配置問題を解決するように付加的な情報も含み得る。例えば、変数objIdRevは、オブジェクト識別子が改訂されたとき、例えば、別のデータオブジェクトによって使用されたものと衝突を避けるように更新されるリビジョン番号を提供し得る。変数objIdRndは、同一のobjIdSeqを有する2つのデータオブジェクトの間で均衡を破るように使用される無作為に生成された番号を表し得る。
データオブジェクト識別子800は、アーカイブデータ記憶システムに記憶されたデータに関連付けられた1つ以上のポリシーを執行する際の使用のためのポリシー情報804を符号化し得る。種々の実施形態では、そのようなポリシーは、安全性、プライバシー、アクセス、規制、費用、および他の考慮事項に対処するポリシーを含み得る。ポリシーは、アーカイブデータ記憶システムに記憶されたデータへのアクセスを制御するように、顧客に適用され得る。例えば、顧客は、他者がデータを読み出すことのみ可能であり他者がデータへのアクセスを全く有しないのに対し、あるデータのセット(例えば、顧客の論理データコンテナに記憶されたデータ)を読み出すこと、書き込むこと、および削除することが可能であり得る。
一実施形態では、ポリシー情報804は、データオブジェクト識別子に関連付けられたデータへの要求されたアクセスを検証するように使用され得るアクセス制御情報を符号化する。例えば、一実施形態では、アクセス制御情報は、図2に関連して説明されるような、論理データコンテナ識別子を含む。そのような論理データコンテナ識別子は、データオブジェクト識別子によって識別されたデータオブジェクトが含有される論理データコンテナを識別し得る。一実施形態では、各顧客は、顧客が読み出し、書き込み、および/または削除操作を遂行することが可能である1つ以上の論理データコンテナに関連付けられる。データ操作のための要求がデータオブジェクト識別子と共に着信すると、データオブジェクト識別子に符号化された論理データコンテナ識別子は、要求する顧客のための要求されたデータ操作に関連付けられた1つ以上の論理データコンテナと比較され得る。論理データコンテナ識別子によって識別された論理データコンテナがリスト中に見つからなかった場合、顧客は、要求されたデータ操作を拒否され得る。ポリシー情報804の他の実施例は、データオブジェクトへのアクセスが許可されるかまたは拒否されるべきエンティティの識別子、データのために可能なデータ操作の種類、そのようなポリシーの有効期限および/または期間等を含み得る。
一実施形態では、データオブジェクト識別子800は、アーカイブデータ記憶システムに記憶されたデータの整合性を確実にするようにペイロード検証情報806を符号化する。種々の実施形態では、ペイロード検証情報は、データサイズ、タイムスタンプ(例えば、データ作成タイムスタンプ)、ダイジェスト等を含み得る。ダイジェストは、SHA−1、SHA−2、MD5、MD6等に関連付けられたもの等の暗号ハッシュ関数、巡回冗長検査等のチェックサムまたはエラー検出コードを、記憶要求のペイロードデータの少なくとも一部分または本明細書に記載のダイジェストに適用することによって計算され得る。例えば、一実施形態では、ダイジェストは、ペイロードデータの上位レベルツリーハッシュを含む。いくつかの実施形態では、ペイロード検証情報806は、顧客によって提供されるデータ(例えば、ペイロード、ダイジェスト)に少なくとも部分的に基づいて誘導され得る。
一実施形態では、データオブジェクト識別子800は、データオブジェクト識別子に関連付けられた情報の整合性を確実にするようにメタデータ検証情報808を符号化する。種々の実施形態では、メタデータ検証情報は、パリティ検査、CRC、エラー訂正検査、および本明細書に記載の、記憶場所情報、ポリシー情報、ペイロード検証情報等のようなデータオブジェクト識別子に符号化されたいくつかのまたは全ての情報のようなもの等のエラー検出検査を含み得る。
全てをまとめると、一実施形態では、データオブジェクト識別子は、少なくとも1つの実施形態に従って、以下のようにプログラムで実装され得る。
DataObjectIdentifer
{
private short dataObjIdCrc;
private long creationDate;
private VolumeRefObject volRefObj;
private long dataSize;
private Id logicalContainerId;
private Digest digest;
}
{
private short dataObjIdCrc;
private long creationDate;
private VolumeRefObject volRefObj;
private long dataSize;
private Id logicalContainerId;
private Digest digest;
}
上に例示されるように、一実施形態では、データオブジェクト識別子は、上述される、記憶場所情報802を記憶することの部分としてのボリューム参照オブジェクトのための変数volRefObj、ポリシー情報804の一部としての論理データコンテナ識別子のための変数logicalContainerId、ペイロード検証情報806の一部としての変数dataSize、creationDateおよびダイジェスト、およびメタデータ検証情報808の一部としての上の情報の全てのCRCである、変数dataObjIdCrcを含む。他の実施形態では、データオブジェクト識別子は、例えば、顧客の側上のデータオブジェクト識別子を識別するように顧客によって使用され得るデータオブジェクトのためのグローバル一意識別子(GUID)も符号化し得る。
一実施形態では、データオブジェクト識別子に含有される情報は、例えば、顧客に提供される前に、暗号化される(810)。例えば、そのような暗号化は、データオブジェクト識別子の悪質な変更および内部データ構造およびそのような内部データ構造から誘導される情報の開示を含むデータオブジェクト識別子の不正流用を防止するように必要であり得る。加えて、データオブジェクト識別子のコンテンツを暗号化することまたは別様に難読化することは、第三者がアーカイブデータ記憶システムの実装詳細に依存することを防止するように、および明白な方式で今後の変更実装を可能にするように機能し得る。
いくつかの実施形態では、データオブジェクト識別子またはその一部分は、データ暗号化標準(DES)、高度暗号化標準(AES)等のような対称キーアルゴリズム、またはRSA等のような公開キーアルゴリズムを用いて生成され得るキーである暗号キーを用いて符号化され得る。一実施形態では、データオブジェクト識別子を暗号化するように使用された暗号キーは、回転スケジュールまたは更なる安全性を提供するアルゴリズムに従って回転され得る。いくつかの他の実施形態では、データオブジェクト識別子は、暗号化され得ないかまたは別様に不明瞭にされ得ない。
符号化されたデータオブジェクト識別子が顧客に提供されるとき、付加的な情報が含まれ得る。一実施形態では、エンベロープ情報は、解読、メタデータ整合性検査等を容易にするように暗号化されたデータオブジェクト識別子を有して一緒に提供される。例えば、以下の情報は、顧客に提供される前に暗号化されたデータオブジェクト識別子に追加され得る。
private short publicCrc;
private int cryptoKeyId;
private byte version;
private int cryptoKeyId;
private byte version;
上に例示されるように、エンベロープ情報は、整合性検査を可能にする暗号化されたデータオブジェクト識別子の少なくとも一部のCRC、publicCrcを含み得る。更に、エンベロープ情報は、上述される、データオブジェクト識別子を暗号化するように使用される暗号キーの識別子を含み得る。この識別子は、データオブジェクト識別子を解読するシステムによって使用され得る。最終的に、エンベロープ情報は、付加的な検証検査を処理するように使用され得るバージョン番号バージョンのような付加的な情報を含み得る。加えて、本明細書に記載される情報は、種々の媒体にわたるデータの伝送を容易にするように(例えば、Base64符号化、Base32符号化等を用いて)更に符号化され得る。
図9は、少なくとも1つの実施形態に従って、データを記憶して検索するための過程900を例示する。過程900のうちのいくつかまたは全ては、図2に関連して説明される構成要素によって遂行され得る。更に、過程900のうちのいくつかまたは全て(または本明細書に記載の任意の他の過程または変形例および/またはそれらの組み合わせ)は、実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で遂行され得、ハードウェアまたはそれらの組み合わせによって、1つ以上のプロセッサ上で集合的に実行されるコード(例えば、実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実装され得る。コードは、例えば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータが読み出し可能な記憶媒体上に記憶され得る。コンピュータが読み出し可能な記憶媒体は、非一時的であり得る。一実施形態では、過程900は、過程600のステップ602に関連して説明されるようなデータ記憶要求を受け取ること902を含む。
一実施形態では、過程900は、図8に関連して上述されるように自己記述型データオブジェクト識別子を生成すること904を含む。一実施形態では、データオブジェクト識別子を生成すること904は、データのサイズおよび記憶ノードによって報告されるような記憶情報に少なくとも部分的に基づいて、データ割り当て操作を遂行することを含むデータのための記憶場所情報を獲得することを含む。図2によって例示される環境200では、例えば、そのようなデータ割り当て操作は、記憶ノードレジストラ248および/または記憶ノードレジストラストア250によって遂行され得る。例えば、記憶ノードレジストラストアは、各ボリューム構成要素のための、空間の使用、オブジェクト識別子目的のために割り当てられた最も高いシーケンス番号、その上に記憶されたデータ構成要素の数等を含む情報を含み得る。一実施形態では、そのような情報は、ボリューム構成要素をホストする記憶ノードによって報告され得る。この情報に基づいて、記憶ノードレジストラは、図8に関連して上述されるようにボリューム参照オブジェクトを提供し得る。
一実施形態では、データオブジェクト識別子を生成すること904は、図8に関連して上述されるようなペイロード検証情報を獲得することを含む。例えば、一実施形態では、上述されるようなダイジェスト計算が遂行される。いくつかの実施形態では、ダイジェスト計算は、要求によって提供されたデータまたはダイジェストに基づいて遂行される。図2によって例示される環境200では、例えば、そのようなダイジェスト計算は、記憶ノードマネージャ244またはアーカイブデータ記憶システム206の他の構成要素によって遂行され得る。一実施形態では、ペイロード検証情報は、データサイズ、アーカイブデータ記憶システムで(例えば、ステージング記憶に)データが記憶された時間を示し得る作成時間、およびデータの整合性を検証するように使用され得る他の情報も含む。
一実施形態では、データオブジェクト識別子を生成すること904は、図8に関連して上述されるようなポリシー情報を獲得することを含む。一実施形態では、そのようなポリシー情報は、要求、構成ファイル、または他のソースに基づいて獲得され得る。例えば、顧客記憶要求は、データがその内部に記憶される論理データコンテナを指定し得る。そのような実施形態では、過程900を遂行するシステムは、論理データコンテナに関連付けられた識別子を決定し得、ポリシー情報の一部としてデータオブジェクトコンテナに識別子を含み得る。
一実施形態では、データオブジェクト識別子を生成すること904は、図8に関連して説明されるようなメタデータ検証情報を獲得することを含む。例えば、過程900を遂行するシステムは、上述された情報のうちのいくつかまたは全てのためのCRCを計算し得る。データオブジェクト識別子を生成すること904は、図8に関連して説明されるように上の情報を符号化すること(例えば、暗号化すること)を含み得る。図2によって例示される環境200では、例えば、そのようなデータ符号化は、記憶ノードマネージャ244またはアーカイブデータ記憶システム206の他の構成要素によって遂行され得る。
一実施形態では、過程900は、例えば、受け取られた要求に応答して、要求するエンティティに上で生成されたデータオブジェクト識別子を提供すること906を含む。一実施形態では、提供すること906は、図8に関連して説明されるようにBase64符号化を適用することのようなデータオブジェクト識別子を符号化することを更に含む。そのような実施形態では、顧客のようなデータオブジェクト識別子の受け手は、Base64復号のような対応する復号スキームを適用することによってデータオブジェクト識別子を取り出し得る。
過程900は、データおよび上で生成されたデータオブジェクト識別子を記憶すること908も含み得る。いくつかの実施形態では、データの記憶は、図2および5に関連して上述されるものに類似している。種々の記憶エンティティ(例えば、記憶ノードマネージャ、記憶ノード、記憶デバイス等)は、上に記載される、データオブジェクト識別子に含まれる少なくともいくつかの情報を用いてデータの記憶に先駆けてデータに関連付けられたデータまたはメタデータを検証し得る。
一実施形態では、データオブジェクト識別子は、暗号化形態および/または非暗号化形態で、強化されたデータ耐久性を提供するように、関連付けられたデータオブジェクトと一緒に記憶される。例えば、一実施形態では、データオブジェクトに関連付けられた各符号化された(例えば、消失訂正符号化された)データ構成要素は、図2に関連して説明されるように、ボリューム構成要素に同一のデータオブジェクト識別子と共に記憶される。例えば、データオブジェクトのためのデータオブジェクト識別子は、データオブジェクトを関連付ける各符号化されたデータ構成要素のヘッダに記憶され得る。更に、記憶デバイスに記憶された各ボリューム構成要素は、ボリューム構成要素に含有される全てのデータオブジェクト識別子のインデックスのようなメタデータを記憶し得る。よって、そのようなメタデータは、同一のデータオブジェクトのためのデータ構成要素を記憶するように使用された全ての記憶デバイスにわたって効果的に複製される。そのような実施形態では、以下に説明されるように、これらの記憶デバイスのうちのいずれかの存続は、ボリュームに含有されたデータオブジェクト識別子の完全なリストの回復を可能にするのに十分である。
一実施形態では、ボリューム構成要素の最小数未満が利用可能であるとき、ボリュームは、失敗するように決定される。最小数は、記憶前にデータを符号化するように使用されたデータ符号化スキームに少なくとも部分的に基づいて決定され得る。例えば、6/9の拡大要因を有する消失訂正符号化が使用された場合、4つのボリューム構成要素が失われると、ボリュームは、残る5つのボリュームでもはや再構築されることができない。そのような実施形態では、図2に関連して上述されるように、ボリューム構成要素間のマッピングを含む情報を維持するデータ記憶ノードレジストラストアおよびそれらをホストする利用可能な記憶ノードは、どのボリュームが失敗したかを決定するように問い合わせされ得る。続いて、要求は、ボリューム構成要素に記憶されたデータ構成要素のためのデータオブジェクト識別子のリストを提供するように、失敗したボリュームのボリューム構成要素をホストする利用可能な記憶ノードに送信され得る。要求された記憶ノードのうちのいずれかからのそのようなリストは、失敗したボリューム上のデータオブジェクト識別子の完全なリストを回復するのに十分である。
一実施形態では、過程900は、要求が、ステップ906で上で提供されたもののようなデータオブジェクト識別子を指定するデータを検索する要求を受け取ること910、を含む。そのような実施形態では、過程900は、更なる要求の処理を可能にする上述されたもののような種々の情報を取り出すデータオブジェクト識別子を復号すること912を含む。例えば、一実施形態では、データオブジェクト識別子を復号すること912は、Base64復号スキームをBase64符号化されたデータオブジェクト識別子に適用することを含む。一実施形態では、復号すること912は、図8に関連して説明されるようなエンベロープ情報を獲得することを更に含む。例えば、そのようなエンベロープ情報は、暗号化されたデータオブジェクト識別子の少なくとも一パートであるCRC、データオブジェクト識別子を暗号化するように使用される暗号キーの識別子、バージョン番号等を含み得る。暗号キー識別子に基づいて、解読キーは、獲得され得、データオブジェクト識別子の暗号化された部分を解読するように使用され得る。一実施形態では、記憶場所情報、ポリシー情報、メタデータ検証情報、ペイロード検証情報等の図8に関連して説明されるような情報は、解読されたデータオブジェクト識別子から取り出される。
図9に例示されるように、過程900は、上述のような復号されたデータオブジェクト識別子からのメタデータ検証情報を用いてメタデータの整合性を検証すること914を含む。そのようなメタデータ検証は、上述のように、データオブジェクト識別子それ自体またはその種々の構成要素のCRCのようなエラー検出コードを含み得る。
一実施形態では、過程900は、データオブジェクト識別子から取り出される図8に関連して説明されるような、少なくともポリシー情報を用いて、要求されたアクセスを検証すること916を含む。例えば、要求されたアクセスを検証すること916は、要求する顧客が、論理データコンテナ、ポリシー情報の一部として含まれる識別子に関連付けられたデータオブジェクトを検索する権利を有することを確証することを含み得る。
一実施形態では、過程900は、図8に関連して説明されるような、データオブジェクト識別子から取り出される少なくとも記憶場所情報を用いてデータを検索すること918を含む。例えば、そのような記憶場所情報は、図8に関連して説明されるように、データがその中に記憶されたボリュームを識別するように使用されたボリューム識別子およびボリュームの内側のデータオブジェクトを識別するように使用されるオブジェクト識別子のような階層型データ構造への段層式参照を含み得る。一実施形態では、データは、記憶場所情報を用いて検索され得る各々1つ以上の冗長的に符号化されたデータ構成要素として記憶される。例えば、ボリューム識別子は、図2に関連して説明されるようなボリューム(またはボリューム構成要素)がその上に位置する記憶ノードの場所を特定するように使用され得る。更に、オブジェクト識別子は、例えば、オブジェクト識別子と<page number, page offset>組との間のマッピングに基づいて、そのボリューム(またはボリューム構成要素)に記憶されたデータ構成要素を(例えば、記憶ノードによって)の場所を特定するように使用され得、page numberは、データ構成要素を記憶するボリューム(またはボリューム構成要素)内のページを指し、page offsetは、ページ内のデータ構成要素の場所を示す。
一実施形態では、過程900は、図8に関連して説明されるような、データオブジェクト識別子から取り出されるペイロード検証情報を少なくとも用いてデータ整合性を検証すること920を含む。一実施形態では、データ整合性検証920は、データが記憶場所から検索される前に遂行される。例えば、データオブジェクト識別子は、該当する場合、データ構成要素と共に記憶されたデータオブジェクト識別子と、それらが同一であることを確証するように比較され得る。別の実施例として、データサイズおよび作成時間は、記憶場所情報によって指されたデータが意図する通りであることを検証するように、例えば記憶ノードによって、使用され得る。別の実施形態では、データ整合性検証920は、データが検索された後で、遂行され得る。例えば、データオブジェクト識別子に含有されたダイジェスト情報は、複数の冗長的に符号化されたデータ構成要素から復号されたデータが元のデータと同一であることを検証するように、例えば、記憶ノードマネージャによって、使用され得る。一般的に、データ整合性は、バルクデータ転送を処理する種々のエンティティによってデータオブジェクト識別子に符号化された情報を用いて検証され得る。
一実施形態では、過程900は、上で検索されたデータを提供すること922を含む。図2に関連して説明されるように、一実施形態では、検索されたデータは、顧客ダウンロードを可能にするようにステージングストアに記憶される。
図10は、少なくとも1つの実施形態に従って、データを削除するための過程1000を例示する。過程1000のステップのうちのいくつかまたは全ては、図2に関連して説明される構成要素によって遂行され得る。一実施形態では、ステップ1002〜1012は、検索ではなく、データ削除を除き、過程900のステップ910〜920に関連して上述されるように類似の方式で遂行され得る。
一実施形態では、過程1000は、要求が、過程900のステップ906で提供されたもののようなデータオブジェクト識別子を指定するデータを削除する要求を受け取ること1002、を含む。そのような実施形態では、過程1000は、種々の情報を取り出すようにデータオブジェクト識別子を復号すること1004と、図9に関連して論じられた復号すること912およびメタデータ検証914に類似するメタデータの整合性を検証すること1006と、を含む。例示されるように、過程1000は、復号されたデータオブジェクト識別子からの少なくともポリシー情報を用いて要求された削除を検証すること1008を含む。例えば、ポリシー情報は、要求する顧客がデータオブジェクトを削除する権利を有したか判定するようにアクセス制御リストに照らして検査するように使用され得る。いくつかの実施形態では、削除のためのアクセス制御は、データ検索のためよりも更に厳しいものであり得る。
一実施形態では、過程1000は、図9の過程900のデータ検索に関連して説明されるものに類似の方式で復号されたデータオブジェクト識別子から少なくとも記憶場所情報を用いてデータの場所を特定すること1010を含む。例えば、削除されるデータのための符号化されたデータ構成要素を記憶するボリューム構成要素は、記憶場所情報に符号化されたボリューム識別子に少なくとも部分的に基づいて場所を特定され得る。
削除されるデータが場所を特定された後に、過程1000は、図10に例示されるように、削除されるデータの整合性を検証すること1012を含む。例えば、いくつかの場合では、各符号化されたデータ構成要素のためのデータオブジェクト識別子は、(例えば、インデックスの一部として)符号化されたデータ構成要素を記憶するボリューム構成要素上に記憶される。削除中、(符号化されたかまたは非符号化された)記憶されたデータオブジェクト識別子は、正しいデータが削除されることを確実にするように削除要求に関連付けられたデータオブジェクト識別子と比較され得る。いくつかの実施形態では、メタデータ検証情報は、記憶されたデータオブジェクト識別子の整合性を検証する使用され得る。いくつかの実施形態では、データサイズ、作成日時、および/またはダイジェストのような記憶されたデータオブジェクト識別子からのペイロード検証情報は、場所を特定されたデータが確実に削除されるデータであることを更に検証するように使用され得る。一実施形態では、過程1000は、データが意図された削除の対象であると決定された場合上の位置するデータを削除すること1014を含む。データの削除は、適切なデータ記憶場所で削除されたとしてデータをマーキングすること、データを記憶するように使用された記憶空間を再割り当てすること、無作為であり得る情報でデータを上書きすることによって、および/または別様にデータをアクセス禁止にする、可能性として永久的にアクセス禁止にすること等によって、好適な方式で遂行され得る。
図11は、種々の実施形態に従って態様を実装するための例示的な環境1100の態様を例示する。認識されるように、説明の目的でウェブに基づく環境が使用されるが、種々の実施形態を実装するために、必要に応じて、異なる環境が使用され得る。環境は、電子クライアントデバイス1102を含み、それは、適切なネットワーク1104を通じて要求、メッセージ、または情報を送信し受け取り、情報をデバイスのユーザに戻すように搬送するように操作可能な、任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの例としては、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、携帯情報端末、電子ブックリーダー等が挙げられる。ネットワークとしては、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、もしくは任意の他のそのようなネットワーク、またはそれらの組み合わせを含む、任意の適切なネットワークが挙げられる。そのようなシステムに使用される構成要素は、選択されたネットワークおよび/または選択環境のタイプに少なくとも部分的に依存し得る。そのようなネットワークを介して通信するためのプロトコルおよび構成要素はよく知られており、本明細書では詳細に論じない。ネットワークを通じた通信は、有線接続または無線接続、およびそれらの組み合わせを介して可能にすることができる。この実施例では、当業者には明らかなように、要求を受け取り、それに応じてコンテンツを提供するためのウェブサーバ1106を環境が含むため、このネットワークは、インターネットを含むが、他のネットワークの場合、類似の目的を提供する代替のデバイスを使用することができる。
例示説明となる環境は、少なくとも1つのアプリケーションサーバ1108およびデータストア1110を含む。連鎖され得るまたは別様には構成され得る、適切なデータストアからデータを取得する等の作業を遂行するように相互作用することができる、いくつかのアプリケーションサーバ、層、もしくは他の要素、過程、または構成要素があり得ることを理解されたい。本明細書で使用される用語「データストア」とは、データを記憶し、それにアクセスし、それを検索することができる任意のデバイスまたはデバイスの組み合わせを指し、任意の数のデータサーバ、データベース、データ記憶デバイス、データ記憶媒体、およびそれらの任意の組み合わせを、任意の標準型、分散型、またはクラスター型の環境において含み得る。アプリケーションサーバは、クライアントデバイスのための1つ以上のアプリケーションの態様を実行するために、必要に応じて、データストアと統合するための、アプリケーションのためのデータアクセスおよびビジネスロジックの大部分を処理するための、任意の適切なハードウェアおよびソフトウェアを含むことができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、また、この実施例においてHTML、XML、または別の適切な構造化言語の形態でウェブサーバによってユーザに提供され得る、ユーザに転送されるテキスト、グラフィックス、音声、および/またはビデオ等のコンテンツを生成することができる。全ての要求および応答、ならびにクライアントデバイス1102とアプリケーションサーバ1108との間のコンテンツの送達は、ウェブサーバによって処理することができる。本明細書で論じられる構造化コードは、本明細書の他の場所で論じられるように、任意の適切なデバイスまたはホストマシン上で実行することができるため、ウェブサーバおよびアプリケーションサーバは必要とされず、これらは単に例示的な構成要素に過ぎないことを理解されたい。
データストア1110は、いくつかの別個のデータテーブル、データベース、または他のデータ記憶機構、および特定の態様に関連するデータを記憶するための媒体を含むことができる。例えば、例示されるデータストアは、製品側のコンテンツを提供するために使用することができる、製品データ1112およびユーザ情報1116を記憶するための機構を含む。データストアは、報告、分析、または他のそのような目的のために使用することができるログデータ1114を記憶するための機構も含むように示される。ページ画像情報のためおよび権利情報にアクセスする等の、データストアに記憶される必要があり得る、数多くの他の態様が存在し得、必要に応じて上で列記した機構のいずれかに、またはデータストア1110の付加的な機構に記憶することができることを理解されたい。データストア1110は、アプリケーションサーバ1108から命令を受け取って、それに応じてデータを取得する、更新する、または別様には処理するために、それと関連する論理を通して操作可能である。一実施例において、ユーザは、ある種類のアイテムの検索要求を提出し得る。この場合、データストアは、ユーザの識別を確証するためにユーザ情報にアクセスし得、その種類のアイテムに関する情報を取得するために、カタログの詳細情報にアクセスすることができる。情報は、次いで、ユーザがユーザデバイス1102上のブラウザを介して視聴することができる、ウェブページ上の結果リスト等で、ユーザに戻すことができる。関心の特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで視聴することができる。
各サーバは、一般的に、そのサーバの一般管理および操作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、一般的に、サーバのプロセッサによって実行されたときに、サーバがその意図する機能を遂行することを可能にする命令を記憶する、コンピュータが読み出し可能な記憶媒体(例えば、ハードディスク、ランダムアクセスメモリ、読み出し専用メモリ等)を含む。オペレーティングシステムおよびサーバの一般機能性の好適な実装例は、既知であるか、または市販されており、また、特に本明細書の開示に照らして、当業者によって容易に実装される。
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を用いて、通信リンクを介して相互接続されるいくつかのコンピュータシステムおよび構成要素を利用する、分散型コンピューティング環境である。しかしながら、そのようなシステムは、図11に例示されるよりも少ない数または多い数の構成要素を有するシステムで十分同等に動作できることが、当業者に認識されるであろう。よって、図11のシステム1100の描写は、本質的に例示説明となるものであり、本開示の範囲を限定するものとみなすべきではない。
本開示の種々の実施形態は、以下の付記を考慮して説明することができる。
1.データを管理するためのコンピュータ実装方法であって、
実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
データオブジェクトを記憶するデータストア要求を受け取ることと、
一時データストアにデータオブジェクトを記憶させることと、
非一時的なデータ記憶場所に前記データオブジェクトを記憶することに先駆けて、前記データオブジェクトのためのデータオブジェクト識別子であって、前記データオブジェクト識別子が、前記非一時的なデータ記憶場所を示すように使用される記憶場所情報、ペイロード検証情報、およびポリシー情報を少なくとも符号化する、データオブジェクト識別子を提供することと、
前記データオブジェクトを検索するデータ検索要求であって、前記要求が前記データオブジェクト識別子を指定する、要求を受け取ることと、
少なくとも記憶場所情報、前記ペイロード検証情報、および前記ポリシー情報を獲得するように前記データオブジェクト識別子を復号することと、
少なくとも前記ポリシー情報を用いて前記データ検索要求を検証することと、
少なくとも前記記憶場所情報を用いて前記非一時的なデータ記憶場所から前記データオブジェクトを検索することと、
少なくとも前記ペイロード検証情報を用いて前記データオブジェクトの整合性を検証することと、
前記データオブジェクトを提供することと、を含む、コンピュータ実装方法。
2.前記記憶場所情報が、
前記データオブジェクトが記憶される階層型データ構造への参照を含む、付記1に記載のコンピュータ実装方法。
3.前記ペイロード検証情報が、タイムスタンプ、サイズ、または前記データオブジェクトの少なくとも一部分のデジタルダイジェストのうちの少なくとも1つを含む、付記1に記載のコンピュータ実装方法。
4.前記ポリシー情報が、少なくともアクセス制御情報を含む、付記1に記載のコンピュータ実装方法。
5.前記データオブジェクト識別子が、前記データオブジェクト識別子によって符号化された前記情報の前記整合性を検証するように使用可能であるメタデータ検証情報を更に符号化する、付記1に記載のコンピュータ実装方法。
6.前記データオブジェクト識別子を提供することが、暗号キーを用いて少なくとも前記記憶場所情報、前記ペイロード検証情報、および前記ポリシー情報を暗号化することを含む、付記1に記載のコンピュータ実装方法。
7.前記データオブジェクトと共に前記データオブジェクト識別子を記憶することを更に含む、付記1に記載のコンピュータ実装方法。
8.前記データオブジェクトを検索することが、前記データオブジェクトと共に記憶される前記データオブジェクト識別子を確証することを含む、付記7に記載のコンピュータ実装方法。
9.コンピュータ実装方法であって、
実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
永続的に記憶されたデータオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を指定し、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報を符号化する、要求を受け取ることと、
少なくとも前記記憶場所情報を用いて前記データオブジェクトを検索することと、
少なくとも前記検証情報を用いて検証を遂行することと、を含む、コンピュータ実装方法。
10.前記記憶場所情報が、少なくともボリューム識別子およびオブジェクト識別子を符号化し、前記ボリューム識別子が、前記データオブジェクトが記憶されたボリュームを示し、前記オブジェクト識別子が、前記データオブジェクトが記憶された前記ボリューム内の場所を識別するために使用可能である、付記9に記載のコンピュータ実装方法。
11.前記検証情報が少なくともペイロード検証情報を含み、検証を遂行することが、少なくとも前記ペイロード検証情報を用いて、前記検索されたデータオブジェクトの整合性を検証することを含む、付記9に記載のコンピュータ実装方法。
12.前記ペイロード検証情報が、前記データオブジェクトの少なくとも一部分の少なくとも暗号ハッシュを含む、付記11に記載のコンピュータ実装方法。
13.前記検証情報が、少なくともポリシー情報を含み、検証を遂行することが、前記データオブジェクトへのアクセスが許可されるかどうかを前記ポリシー情報に少なくとも部分的に基づいて決定することを含む、付記9に記載のコンピュータ実装方法。
14.前記検証情報が少なくともメタデータ検証情報を含み、検証を遂行することが、少なくとも前記メタデータ検証情報を用いて前記データオブジェクト識別子の整合性を確証することを含む、付記9に記載のコンピュータ実装方法。
15.前記メタデータ検証情報が、少なくともエラー検出コードを含む、付記14に記載のコンピュータ実装方法。
16.アーカイブデータ記憶システムであって、
1つ以上のプロセッサと、
メモリであって、前記1つ以上のプロセッサによって実行可能な命令を含み、前記命令が、前記コンピュータシステムに少なくとも、
複数のデータ操作を遂行するために1つ以上のアプリケーションプログラミングインターフェース(「API」)を提供することと、
前記1つ以上のAPIを通じて、データオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を指定し、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報をカプセル化する、要求を受け取ることと、
前記記憶場所情報および前記検証情報を獲得するように前記データオブジェクト識別子をカプセル化解除することと、
前記検証情報に少なくとも部分的に基づいて前記要求を検証することと、
前記記憶場所情報に少なくとも部分的に基づいて前記データオブジェクトを検索することと、
少なくとも前記検証情報を用いて前記データオブジェクトの整合性を確証することと、を行わせる、メモリと、を備える、アーカイブデータ記憶システム。
17.前記複数のデータ操作が、少なくともデータ記憶、データ検索、データ削除、およびメタデータクエリーを含む、付記16に記載のシステム。
18.前記1つ以上のプロセッサによって実行可能な前記命令が、前記コンピュータシステムに、
前記APIを通じて、前記データオブジェクトを記憶する1つ以上の要求であって、前記1つ以上の要求の各々が前記データオブジェクトの少なくとも一部分を指定する、要求を受け取ることと、
前記データオブジェクトを記憶することと、
前記APIを通じて、前記データオブジェクト識別子を提供することと、を更に行わせる、付記16に記載のシステム。
19.前記検証情報のうちの少なくともいくつかが、前記データオブジェクトを記憶する前記1つ以上の要求に少なくとも部分的に基づく、付記18に記載のシステム。
20.前記データオブジェクト識別子が、前記1つ以上の要求によって集合的に指定された前記データオブジェクトの前記部分に関連付けられる、付記18に記載のシステム。
21.前記データオブジェクト識別子をカプセル化解除することが、暗号キーを用いて前記データオブジェクト識別子の少なくとも一部分を解読することを含む、付記16に記載のシステム。
22.集合的に記憶された実行可能な命令を媒体上に有する1つ以上の非一時的コンピュータが読み出し可能な記憶媒体であって、前記命令が、コンピューティングリソースプロバイダのコンピュータシステムの1つ以上のプロセッサによって実行されるとき、コンピュータシステムに少なくとも
永続的に記憶されたデータオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を指定し、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報を符号化する、要求を受け取ることと、
少なくとも前記検証情報を用いて前記要求を検証することと、
複数のデータ構成要素であって、前記複数のデータ構成要素が前記データオブジェクトへの1つ以上の符号化スキームの適用を行わせることによって生成される、少なくとも前記記憶場所情報を用いて複数のデータ構成要素を検索することと、
前記複数のデータ構成要素への前記1つ以上の符号化スキームに対応する1つ以上の復号スキームの適用を少なくとも行わせることによって前記データオブジェクトを復元することと、
少なくとも前記検証情報を用いて前記データオブジェクトの整合性を確証することと、を行わせる、コンピュータが読み出し可能な記憶媒体。
23.前記データオブジェクト識別子が、ユーザが提供した情報を符号化する、付記22に記載のコンピュータが読み出し可能な記憶媒体。
24.前記データオブジェクト識別子が、前記データオブジェクトを記憶する要求に応答して生成される、付記22に記載のコンピュータが読み出し可能な記憶媒体。
25.前記データオブジェクトを復元することが、前記複数のデータ構成要素への前記1つ以上の符号化スキームに対応する前記1つ以上の復号スキームの前記アプリケーションからもたらされる1つ以上のデータパートを組み合わせることを更に含む、付記22に記載のコンピュータが読み出し可能な記憶媒体。
26.前記データオブジェクトを復元することが、前記データオブジェクト識別子に少なくとも部分的に基づいて検索可能である1つ以上のデータパートを組み合わせることを更に含む、付記22に記載のコンピュータが読み出し可能な記憶媒体。
27.前記検証情報が、前記データオブジェクトの整合性を確証するためのペイロード検証情報、前記データオブジェクトに関連付けられたデータアクセス権を確証するためのデータ承認情報、および前記データオブジェクト識別子に含まれる前記情報の前記整合性を確証するためのメタデータ検証情報を含む、付記22に記載のコンピュータが読み出し可能な記憶媒体。
28.前記コンピューティングリソースプロバイダのコンピュータシステムの1つ以上のプロセッサによって実行されるとき、前記命令が、前記コンピュータシステムに、
前記データオブジェクトを削除する要求であって、前記要求が前記データオブジェクト識別子を指定する、要求を受け取ることと、
少なくとも前記検証情報を用いて前記要求を検証することと、
少なくとも前記記憶場所情報を用いて前記データオブジェクトの場所を特定することと、
前記データオブジェクトを削除することと、を更に行わせる、付記22に記載のコンピュータが読み出し可能な記憶媒体。
1.データを管理するためのコンピュータ実装方法であって、
実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
データオブジェクトを記憶するデータストア要求を受け取ることと、
一時データストアにデータオブジェクトを記憶させることと、
非一時的なデータ記憶場所に前記データオブジェクトを記憶することに先駆けて、前記データオブジェクトのためのデータオブジェクト識別子であって、前記データオブジェクト識別子が、前記非一時的なデータ記憶場所を示すように使用される記憶場所情報、ペイロード検証情報、およびポリシー情報を少なくとも符号化する、データオブジェクト識別子を提供することと、
前記データオブジェクトを検索するデータ検索要求であって、前記要求が前記データオブジェクト識別子を指定する、要求を受け取ることと、
少なくとも記憶場所情報、前記ペイロード検証情報、および前記ポリシー情報を獲得するように前記データオブジェクト識別子を復号することと、
少なくとも前記ポリシー情報を用いて前記データ検索要求を検証することと、
少なくとも前記記憶場所情報を用いて前記非一時的なデータ記憶場所から前記データオブジェクトを検索することと、
少なくとも前記ペイロード検証情報を用いて前記データオブジェクトの整合性を検証することと、
前記データオブジェクトを提供することと、を含む、コンピュータ実装方法。
2.前記記憶場所情報が、
前記データオブジェクトが記憶される階層型データ構造への参照を含む、付記1に記載のコンピュータ実装方法。
3.前記ペイロード検証情報が、タイムスタンプ、サイズ、または前記データオブジェクトの少なくとも一部分のデジタルダイジェストのうちの少なくとも1つを含む、付記1に記載のコンピュータ実装方法。
4.前記ポリシー情報が、少なくともアクセス制御情報を含む、付記1に記載のコンピュータ実装方法。
5.前記データオブジェクト識別子が、前記データオブジェクト識別子によって符号化された前記情報の前記整合性を検証するように使用可能であるメタデータ検証情報を更に符号化する、付記1に記載のコンピュータ実装方法。
6.前記データオブジェクト識別子を提供することが、暗号キーを用いて少なくとも前記記憶場所情報、前記ペイロード検証情報、および前記ポリシー情報を暗号化することを含む、付記1に記載のコンピュータ実装方法。
7.前記データオブジェクトと共に前記データオブジェクト識別子を記憶することを更に含む、付記1に記載のコンピュータ実装方法。
8.前記データオブジェクトを検索することが、前記データオブジェクトと共に記憶される前記データオブジェクト識別子を確証することを含む、付記7に記載のコンピュータ実装方法。
9.コンピュータ実装方法であって、
実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
永続的に記憶されたデータオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を指定し、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報を符号化する、要求を受け取ることと、
少なくとも前記記憶場所情報を用いて前記データオブジェクトを検索することと、
少なくとも前記検証情報を用いて検証を遂行することと、を含む、コンピュータ実装方法。
10.前記記憶場所情報が、少なくともボリューム識別子およびオブジェクト識別子を符号化し、前記ボリューム識別子が、前記データオブジェクトが記憶されたボリュームを示し、前記オブジェクト識別子が、前記データオブジェクトが記憶された前記ボリューム内の場所を識別するために使用可能である、付記9に記載のコンピュータ実装方法。
11.前記検証情報が少なくともペイロード検証情報を含み、検証を遂行することが、少なくとも前記ペイロード検証情報を用いて、前記検索されたデータオブジェクトの整合性を検証することを含む、付記9に記載のコンピュータ実装方法。
12.前記ペイロード検証情報が、前記データオブジェクトの少なくとも一部分の少なくとも暗号ハッシュを含む、付記11に記載のコンピュータ実装方法。
13.前記検証情報が、少なくともポリシー情報を含み、検証を遂行することが、前記データオブジェクトへのアクセスが許可されるかどうかを前記ポリシー情報に少なくとも部分的に基づいて決定することを含む、付記9に記載のコンピュータ実装方法。
14.前記検証情報が少なくともメタデータ検証情報を含み、検証を遂行することが、少なくとも前記メタデータ検証情報を用いて前記データオブジェクト識別子の整合性を確証することを含む、付記9に記載のコンピュータ実装方法。
15.前記メタデータ検証情報が、少なくともエラー検出コードを含む、付記14に記載のコンピュータ実装方法。
16.アーカイブデータ記憶システムであって、
1つ以上のプロセッサと、
メモリであって、前記1つ以上のプロセッサによって実行可能な命令を含み、前記命令が、前記コンピュータシステムに少なくとも、
複数のデータ操作を遂行するために1つ以上のアプリケーションプログラミングインターフェース(「API」)を提供することと、
前記1つ以上のAPIを通じて、データオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を指定し、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報をカプセル化する、要求を受け取ることと、
前記記憶場所情報および前記検証情報を獲得するように前記データオブジェクト識別子をカプセル化解除することと、
前記検証情報に少なくとも部分的に基づいて前記要求を検証することと、
前記記憶場所情報に少なくとも部分的に基づいて前記データオブジェクトを検索することと、
少なくとも前記検証情報を用いて前記データオブジェクトの整合性を確証することと、を行わせる、メモリと、を備える、アーカイブデータ記憶システム。
17.前記複数のデータ操作が、少なくともデータ記憶、データ検索、データ削除、およびメタデータクエリーを含む、付記16に記載のシステム。
18.前記1つ以上のプロセッサによって実行可能な前記命令が、前記コンピュータシステムに、
前記APIを通じて、前記データオブジェクトを記憶する1つ以上の要求であって、前記1つ以上の要求の各々が前記データオブジェクトの少なくとも一部分を指定する、要求を受け取ることと、
前記データオブジェクトを記憶することと、
前記APIを通じて、前記データオブジェクト識別子を提供することと、を更に行わせる、付記16に記載のシステム。
19.前記検証情報のうちの少なくともいくつかが、前記データオブジェクトを記憶する前記1つ以上の要求に少なくとも部分的に基づく、付記18に記載のシステム。
20.前記データオブジェクト識別子が、前記1つ以上の要求によって集合的に指定された前記データオブジェクトの前記部分に関連付けられる、付記18に記載のシステム。
21.前記データオブジェクト識別子をカプセル化解除することが、暗号キーを用いて前記データオブジェクト識別子の少なくとも一部分を解読することを含む、付記16に記載のシステム。
22.集合的に記憶された実行可能な命令を媒体上に有する1つ以上の非一時的コンピュータが読み出し可能な記憶媒体であって、前記命令が、コンピューティングリソースプロバイダのコンピュータシステムの1つ以上のプロセッサによって実行されるとき、コンピュータシステムに少なくとも
永続的に記憶されたデータオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を指定し、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報を符号化する、要求を受け取ることと、
少なくとも前記検証情報を用いて前記要求を検証することと、
複数のデータ構成要素であって、前記複数のデータ構成要素が前記データオブジェクトへの1つ以上の符号化スキームの適用を行わせることによって生成される、少なくとも前記記憶場所情報を用いて複数のデータ構成要素を検索することと、
前記複数のデータ構成要素への前記1つ以上の符号化スキームに対応する1つ以上の復号スキームの適用を少なくとも行わせることによって前記データオブジェクトを復元することと、
少なくとも前記検証情報を用いて前記データオブジェクトの整合性を確証することと、を行わせる、コンピュータが読み出し可能な記憶媒体。
23.前記データオブジェクト識別子が、ユーザが提供した情報を符号化する、付記22に記載のコンピュータが読み出し可能な記憶媒体。
24.前記データオブジェクト識別子が、前記データオブジェクトを記憶する要求に応答して生成される、付記22に記載のコンピュータが読み出し可能な記憶媒体。
25.前記データオブジェクトを復元することが、前記複数のデータ構成要素への前記1つ以上の符号化スキームに対応する前記1つ以上の復号スキームの前記アプリケーションからもたらされる1つ以上のデータパートを組み合わせることを更に含む、付記22に記載のコンピュータが読み出し可能な記憶媒体。
26.前記データオブジェクトを復元することが、前記データオブジェクト識別子に少なくとも部分的に基づいて検索可能である1つ以上のデータパートを組み合わせることを更に含む、付記22に記載のコンピュータが読み出し可能な記憶媒体。
27.前記検証情報が、前記データオブジェクトの整合性を確証するためのペイロード検証情報、前記データオブジェクトに関連付けられたデータアクセス権を確証するためのデータ承認情報、および前記データオブジェクト識別子に含まれる前記情報の前記整合性を確証するためのメタデータ検証情報を含む、付記22に記載のコンピュータが読み出し可能な記憶媒体。
28.前記コンピューティングリソースプロバイダのコンピュータシステムの1つ以上のプロセッサによって実行されるとき、前記命令が、前記コンピュータシステムに、
前記データオブジェクトを削除する要求であって、前記要求が前記データオブジェクト識別子を指定する、要求を受け取ることと、
少なくとも前記検証情報を用いて前記要求を検証することと、
少なくとも前記記憶場所情報を用いて前記データオブジェクトの場所を特定することと、
前記データオブジェクトを削除することと、を更に行わせる、付記22に記載のコンピュータが読み出し可能な記憶媒体。
種々の実施形態は更に、多種多様な動作環境で実装することができ、一部の場合において、いくつかのアプリケーションのいずれかを動作するために使用することができる、1つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる。ユーザまたはクライアントデバイスとしては、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ等の、数多くの汎用パーソナルコンピュータ、ならびに、モバイルソフトウェアを実行し、かついくつかのネットワークおよびメッセージングプロトコルをサポートすることができる、セルラーデバイス、無線デバイス、およびハンドヘルドデバイスのいずれかが挙げられる。そのようなシステムとしてはまた、開発およびデータベース管理等の目的で、種々の市販のオペレーティングシステムおよび他の既知のアプリケーションのいずれかを実行する、数多くのワークステーションも挙げられる。これらのデバイスとしてはまた、ネットワークを介して通信することができる、ダミー端末、シンクライアント、ゲームシステム、および他のデバイス等の、他の電子デバイスも挙げられる。
大部分の実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalk等の、種々の市販のプロトコルのいずれかを用いて通信をサポートするための、当業者が精通している少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせとすることができる。
ウェブサーバを利用する実施形態において、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、およびビジネスアプリケーションサーバを含む、種々のサーバまたは中間層アプリケーションのいずれかを動作させることができる。サーバ(複数可)はまた、ユーザデバイスからの要求に応じて、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはPerl、Python、もしくはTCL等の任意のスクリプト言語、ならびにそれらの組み合わせで書かれた1つ以上のスクリプトまたはプログラムとして実装され得る1つ以上のWebアプリケーションを実行すること等によって、プログラムまたはスクリプトを実行することも可能であり得る。サーバ(複数可)としてはまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)から市販されているものが挙げられるがそれらに限定されない、データベースサーバも挙げられる。
環境は、上で論じたように、種々のデータストア、ならびに他のメモリおよび記憶媒体を含むことができる。これらは、1つ以上のコンピュータに対してローカルな(および/またはその中に存在する)、またはネットワーク全体にわたるコンピュータのいずれかまたは全てからリモートの記憶媒体上等の、種々の場所に存在することができる。特定の1組の実施形態において、情報は、当業者が精通しているストレージエリアネットワーク(「SAN」)の中に存在し得る。同様に、必要に応じて、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を遂行するための任意の必要なファイルが、ローカルおよび/またはリモートで記憶され得る。システムがコンピュータ制御のデバイスを含む場合、そのような各デバイスは、バスを介して電気的に連結され得るハードウェア要素を含むことができ、該要素は、例えば、少なくとも1つの中央処理ユニット(CPU)と、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド)と、少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカー)とを含む。そのようなシステムは、ディスクドライブ、光記憶デバイス、およびランダムアクセスメモリ(RAM)またはリードオンリーメモリ(ROM)等の固体記憶デバイス、ならびにリムーバブル媒体デバイス、メモリカード、フラッシュカード等の、1つ以上の記憶デバイスも含み得る。
そのようなデバイスとしてはまた、上述のように、コンピュータが読み出し可能な記憶媒体リーダー、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)、および作業メモリも挙げられる。コンピュータが読み出し可能な記憶媒体リーダーは、リモート、ローカル、固定の、および/または取り外し可能な記憶デバイスを表すコンピュータが読み出し可能な記憶媒体、ならびにコンピュータが読み出し可能な情報を一時的におよび/またはより恒久的に含む、記憶する、伝送する、および検索するための記憶媒体と接続することができる、またはそれを受け取るように構成することができる。システムおよび種々のデバイスはまた、一般的に、オペレーティングシステム、およびクライアントアプリケーションまたはWebブラウザ等のアプリケーションプログラムを含む、少なくとも1つのワーキングメモリデバイス内に位置する、数多くのソフトウェアアプリケーション、モジュール、サービス、または他の要素も含む。代替の実施形態は、上で説明した数多くの変形例を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、および/または特定の要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、または双方で実装され得る。更に、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が利用され得る。
コードまたはコードの部分を収容するための記憶媒体およびコンピュータが読み出し可能な媒体としては、コンピュータが読み出し可能な命令、データ構造、プログラムモジュール、または他のデータ等の情報を記憶および/または伝送するための任意の方法または技術で実装される揮発性および不揮発性で、取り外し可能および取り外し不可能な媒体等が挙げられるが、それらに限定されない、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、システムデバイスによってアクセスすることができる、任意の他の媒体を含む、記憶媒体および通信媒体を含む、当技術分野において知られているまたは使用される、任意の適切な媒体が挙げられる。本明細書で提供される開示および教示に基づいて、当業者は、種々の実施形態を実現するための他の様式および/または方法を認識するであろう。
したがって、本明細書および図面は、限定的な意味ではなく、例示的な意味であるとみなされるべきである。しかしながら、特許請求の範囲に記載された本発明のより広い趣旨および範囲から逸脱することなく、種々の修正および変更が行われ得ることが明らかであろう。
他の変形例は、本開示の主旨の範囲内である。よって、本開示の技術は種々の修正および代替構成が可能である一方で、それらのある例示された実施形態は図面において示され上に詳細に説明されている。しかしながら、開示された特定の形態または複数の形態に本発明を限定することを意図しないことを理解されたいがむしろ、意図することは、添付の特許請求の範囲に定義されるように、本発明の趣旨および範囲内に属する全ての修正、代替構成、および均等物を網羅することである。
用語「a」、「an」、および「the」および本開示の実施形態を説明する文脈(特に以下の特許請求の範囲の文脈)の類似の指示対象は、本明細書に別様に指摘がないかまたは文脈によって明らかに別様に矛盾しない限り、単数および複数の両方を含むと解釈される。用語「含む(comprising)」、「有する(having)」、「含む(including)」、および「含む(containing)」は、別様に記載されない限り、変更可能な用語(すなわち、「これらに限定されないが〜を含む」)として解釈される。用語「接続された」は、何らかの介在がある場合においても、部分的にまたは全体的にその内部に含まれた、それに取り付けられた、またはそれと一緒に連結されたとして解釈される。本明細書の値の範囲を列挙することは、本明細書に別様に指摘がない限り、範囲内に属する各別個の値に個別に言及する単なる簡単な方法として機能するように意図されるにすぎず、それが個別に本明細書に列挙されているかのように、各別個の値は、本明細書に組み込まれる。本明細書に記載される全ての方法は、本明細書に別様に指摘がないかまたは文脈によって明らかに別様に矛盾しない限り、任意の好適な順序で遂行することができる。本明細書に提供される任意のおよび全ての実施例、または例示的な言語(例えば、「〜のような」)は、単に本発明の実施形態のより良い理解を容易にするように意図されるにすぎず、別様に特許請求されない限り、本発明の範囲に制限を課すものではない。明細書中の言語は、本発明の実施に必須として任意の非特許請求の要素を示すものとして解釈されるべきではない。
本開示の好ましい実施形態は、本発明を実現するために本発明者に既知の最良のモードを含む。それらの好ましい実施形態の変形例は、前述の説明を一読することによって当該分野の当業者には明らかになり得る。本発明者は、当業者が必要に応じてそのような変形例を用いることを予期し、本発明者らは、本明細書に具体的に記載された以外の方法で実施される発明を意図する。したがって、適用法によって許容されるように、本発明は、全ての修正および本明細書に添付の特許請求の範囲に列挙される主題の均等物を含む。更に、全ての可能な変形例における上述の要素のそれらの任意の組み合わせは、本明細書に別様に指摘がないかまたは文脈によって明らかに別様に矛盾しない限り、本発明によって包含される。
本明細書に引用された、出版物を含む全ての参考文献、特許出願、および特許は、各文献が個別にかつ具体的に参照により組み込まれるように示されその全体が本明細書に記載されているかのように同程度に、参照により本明細書に組み込まれる。
Claims (22)
- コンピュータ実装方法であって、
命令を実行する1つ以上のコンピュータシステムの制御下で、
永続的に記憶されたデータオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を含み、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報を符号化する、要求を受け取ることと、
少なくとも前記記憶場所情報を用いて前記データオブジェクトを検索して検索されたデータオブジェクトを形成することと、
少なくとも前記検証情報を用いて検証を遂行することと、を含む、コンピュータ実装方法。 - 前記記憶場所情報が少なくともボリューム識別子およびオブジェクト識別子を符号化し、前記ボリューム識別子が、前記データオブジェクトが記憶されたボリュームを示し、前記オブジェクト識別子が、前記データオブジェクトが記憶された前記ボリューム内の場所を識別するために使用可能である、請求項1に記載のコンピュータ実装方法。
- 前記検証情報が、少なくともポリシー情報を含み、検証を遂行することが、少なくとも前記ポリシー情報に少なくとも部分的に基づいて、前記データオブジェクトへのアクセスが許可されるかどうかを検証することを含む、請求項1に記載のコンピュータ実装方法。
- 前記検証情報が、少なくともペイロード検証情報を含み、
前記検証を遂行することが、少なくとも前記ペイロード検証情報を用いて前記検索されたデータオブジェクトの整合性を検証することを含む、請求項1に記載のコンピュータ実装方法。 - 前記ペイロード検証情報が、前記データオブジェクトの少なくとも一部分の少なくとも暗号ハッシュを含む、請求項4に記載のコンピュータ実装方法。
- 前記検証情報が少なくともメタデータ検証情報を含み、検証を遂行することが、少なくとも前記メタデータ検証情報を用いて前記データオブジェクト識別子の整合性を確証することを含む、請求項1に記載のコンピュータ実装方法。
- 前記メタデータ検証情報が、少なくともエラー検出コードを含む、請求項6に記載のコンピュータ実装方法。
- 前記データオブジェクトを検索することが、暗号キーを用いて前記データオブジェクト識別子の少なくとも一部分を解読して解読されたデータオブジェクト識別子を形成すること、及び、前記解読されたデータオブジェクト識別子から少なくとも前記記憶場所情報を抽出することを含む、請求項1に記載のコンピュータ実装方法。
- システムであって、
1つ以上のプロセッサと、
メモリであって、前記1つ以上のプロセッサによって実行可能な命令を含み、前記命令が、コンピュータシステムに少なくとも、
複数のデータ操作を遂行するために1つ以上のアプリケーションプログラミングインターフェースを提供することと、
前記1つ以上のアプリケーションプログラミングインターフェースを通じて、データオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を含み、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報をカプセル化する、要求を受け取ることと、
前記記憶場所情報および前記検証情報を獲得するように前記データオブジェクト識別子をカプセル化解除することと、
前記検証情報に少なくとも部分的に基づいて前記要求を検証することと、
前記記憶場所情報に少なくとも部分的に基づいて前記データオブジェクトを検索することと、
少なくとも前記検証情報を用いて前記データオブジェクトの整合性を確証することと、を行わせる、メモリと、を備える、システム。 - 前記データオブジェクト識別子にカプセル化された前記記憶場所情報は、前記システムが、前記データオブジェクトを格納場所にマップするデータ構造にアクセスせずに、前記データオブジェクトの検索を可能にする、請求項9に記載のシステム。
- 前記複数のデータ操作が、データ記憶、データ検索、データ削除、及びメタデータクエリを含む、請求項9に記載のシステム。
- 前記コンピュータシステムに前記データオブジェクト識別子をカプセル化解除することを行わせる前記命令は、前記コンピュータシステムに暗号化キーを用いて前記データオブジェクト識別子の少なくとも一部分解読させる命令を含む、請求項9に記載のシステム。
- 前記1つ以上のプロセッサによって実行可能な前記命令が、前記コンピュータシステムに、
前記アプリケーションプログラミングインターフェースを通じて、前記データオブジェクトを記憶する1つ以上の要求であって、前記1つ以上の要求の各々が前記データオブジェクトの少なくとも一部分を指定する、要求を受け取ることと、
前記データオブジェクトを記憶することと、
前記アプリケーションプログラミングインターフェースを通じて、前記データオブジェクト識別子を提供することと、を更に行わせる、請求項9に記載のシステム。 - 前記検証情報のうちの少なくともいくつかが、前記データオブジェクトを記憶する前記1つ以上の要求に少なくとも部分的に基づく、請求項13に記載のシステム。
- 前記データオブジェクト識別子が、前記1つ以上の要求によって集合的に指定された前記データオブジェクトの前記部分に関連付けられる、請求項13に記載のシステム。
- 実行可能命令を記憶した非一時的コンピュータ読取可能記録媒体であって、前記実行可能命令が、コンピューティングリソースプロバイダのコンピュータシステムの1つ以上のプロセッサによって実行された結果として、コンピュータシステムに少なくとも、
永続的に記憶されたデータオブジェクトを検索する要求であって、前記要求がデータオブジェクト識別子を含み、前記データオブジェクト識別子が前記データオブジェクトに関連した少なくとも記憶場所情報および検証情報を符号化する、要求を受け取ることと、
少なくとも前記検証情報を用いて前記要求を検証することと、
少なくとも前記記憶場所情報を用いて複数のデータ要素を検索し、前記複数のデータ要素が前記データオブジェクトへ1つ以上の符号化スキームを適用させることより生成されている、ことと、
前記1つ以上の符号化スキームに対応する1つ以上の復号化スキームを前記複数のデータ要素に適用させることにより前記データオブジェクトを復元することと、
少なくとも前記検証情報を用いて前記データオブジェクトの整合性を確証することと
を行わせる、非一時的コンピュータ読取可能記録媒体。 - 前記データオブジェクト識別子が、ユーザが提供した情報を符号化する、請求項16に記載の非一時的コンピュータ読取可能記録媒体。
- 前記データオブジェクト識別子が、前記データオブジェクトを記憶する要求に応答して生成される、請求項16に記載の非一時的コンピュータ読取可能記録媒体。
- 前記コンピュータシステムに前記データオブジェクトを復元することを行わせる前記実行可能命令が、前記コンピュータシステムに、
前記複数のデータ要素への前記1つ以上の符号化スキームに対応する前記1つ以上の復号スキームの前記適用からもたらされる1つ以上のデータパートを組み合わせることを更に行わせる、請求項16に記載の非一時的コンピュータ読取可能記録媒体。 - 前記コンピュータシステムに前記データオブジェクトを復元させる前記実行可能命令が、
前記コンピュータシステムに、前記データオブジェクト識別子に少なくとも部分的に基づいて検索可能な1つ以上のデータパートを組み合わせることを行わせるコンピュータ実行可能命令を更に含む、請求項16に記載の非一時的コンピュータ読取可能記録媒体。 - 前記検証情報が、前記データオブジェクトの整合性を確証するためのペイロード検証情報、前記データオブジェクトに関連付けられたデータアクセス権を確証するためのデータ承認情報、および前記データオブジェクト識別子に含まれる情報の整合性を確証するためのメタデータ検証情報を含む、請求項16に記載の非一時的コンピュータ読取可能記録媒体。
- 前記実行可能命令が、前記コンピュータシステムに、
前記データオブジェクトを削除する要求であって、前記要求が前記データオブジェクト識別子を指定する、要求を受け取ることと、
少なくとも前記検証情報を用いて前記要求を検証することと、
少なくとも前記記憶場所情報を用いて前記データオブジェクトの場所を特定することと、
前記データオブジェクトを削除することと
を更に行わせる実行可能命令を含む、請求項16に記載の非一時的コンピュータ読取可能記録媒体。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/569,994 | 2012-08-08 | ||
| US13/569,994 US9213709B2 (en) | 2012-08-08 | 2012-08-08 | Archival data identification |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015526652A Division JP6224102B2 (ja) | 2012-08-08 | 2013-08-06 | アーカイブデータ識別 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017228302A true JP2017228302A (ja) | 2017-12-28 |
Family
ID=50066956
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015526652A Expired - Fee Related JP6224102B2 (ja) | 2012-08-08 | 2013-08-06 | アーカイブデータ識別 |
| JP2017152756A Pending JP2017228302A (ja) | 2012-08-08 | 2017-08-07 | アーカイブデータ識別 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015526652A Expired - Fee Related JP6224102B2 (ja) | 2012-08-08 | 2013-08-06 | アーカイブデータ識別 |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US9213709B2 (ja) |
| EP (1) | EP2883132B1 (ja) |
| JP (2) | JP6224102B2 (ja) |
| CN (1) | CN104603740B (ja) |
| CA (1) | CA2881475C (ja) |
| IN (1) | IN2015DN01689A (ja) |
| WO (1) | WO2014025821A2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2024507631A (ja) * | 2020-12-16 | 2024-02-21 | ナショナル・アソシエーション・オブ・コンビニエンス・ストアズ | クロスドメインアナリティクスのための高忠実度データ管理 |
Families Citing this family (187)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8332365B2 (en) | 2009-03-31 | 2012-12-11 | Amazon Technologies, Inc. | Cloning and recovery of data volumes |
| JP6326062B2 (ja) * | 2012-11-26 | 2018-05-16 | サイクル コンピューティング,エルエルシー | 異なる環境どうし間でのジョブ実行依頼のトランスペアレントなルーティング |
| US9020893B2 (en) * | 2013-03-01 | 2015-04-28 | Datadirect Networks, Inc. | Asynchronous namespace maintenance |
| DE102013104424A1 (de) * | 2013-04-30 | 2014-10-30 | Airbus Operations Gmbh | Verfahren zur elektronischen Archivierung von Datenobjekten und Computerprogrammprodukt |
| RU2559728C2 (ru) * | 2013-10-24 | 2015-08-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ копирования файлов с зашифрованного диска |
| US9794135B2 (en) | 2013-11-11 | 2017-10-17 | Amazon Technologies, Inc. | Managed service for acquisition, storage and consumption of large-scale data streams |
| US9471585B1 (en) * | 2013-12-20 | 2016-10-18 | Amazon Technologies, Inc. | Decentralized de-duplication techniques for largescale data streams |
| US9529834B2 (en) * | 2014-02-26 | 2016-12-27 | International Business Machines Corporation | Concatenating data objects for storage in a dispersed storage network |
| US9674194B1 (en) * | 2014-03-12 | 2017-06-06 | Amazon Technologies, Inc. | Privilege distribution through signed permissions grants |
| US10289713B2 (en) * | 2014-03-24 | 2019-05-14 | Ca, Inc. | Logical validation for metadata builder |
| US10264071B2 (en) | 2014-03-31 | 2019-04-16 | Amazon Technologies, Inc. | Session management in distributed storage systems |
| US10372685B2 (en) | 2014-03-31 | 2019-08-06 | Amazon Technologies, Inc. | Scalable file storage service |
| US9785510B1 (en) | 2014-05-09 | 2017-10-10 | Amazon Technologies, Inc. | Variable data replication for storage implementing data backup |
| US9557938B2 (en) | 2014-05-13 | 2017-01-31 | Netapp, Inc. | Data retrieval based on storage device activation schedules |
| WO2015175720A1 (en) * | 2014-05-13 | 2015-11-19 | Netapp, Inc. | Storage operations utilizing a multiple-data-storage-devices cartridge |
| US9430152B2 (en) | 2014-05-13 | 2016-08-30 | Netapp, Inc. | Data device grouping across data storage device enclosures for synchronized data maintenance |
| US9766677B2 (en) | 2014-05-13 | 2017-09-19 | Netapp, Inc. | Cascading startup power draws of enclosures across a network |
| US9436524B2 (en) | 2014-05-13 | 2016-09-06 | Netapp, Inc. | Managing archival storage |
| US9430321B2 (en) | 2014-05-13 | 2016-08-30 | Netapp, Inc. | Reconstructing data stored across archival data storage devices |
| US9430149B2 (en) | 2014-05-13 | 2016-08-30 | Netapp, Inc. | Pipeline planning for low latency storage system |
| US9436571B2 (en) | 2014-05-13 | 2016-09-06 | Netapp, Inc. | Estimating data storage device lifespan |
| US9424156B2 (en) | 2014-05-13 | 2016-08-23 | Netapp, Inc. | Identifying a potential failure event for a data storage device |
| US9407635B2 (en) * | 2014-05-16 | 2016-08-02 | The Boeing Company | Vehicle data delivery |
| US12137140B2 (en) | 2014-06-04 | 2024-11-05 | Pure Storage, Inc. | Scale out storage platform having active failover |
| US8850108B1 (en) * | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
| US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
| US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
| US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
| US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
| US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
| US12182044B2 (en) | 2014-07-03 | 2024-12-31 | Pure Storage, Inc. | Data storage in a zone drive |
| US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
| US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
| US9734021B1 (en) | 2014-08-18 | 2017-08-15 | Amazon Technologies, Inc. | Visualizing restoration operation granularity for a database |
| US9363267B2 (en) | 2014-09-25 | 2016-06-07 | Ebay, Inc. | Transaction verification through enhanced authentication |
| US9921910B2 (en) * | 2015-02-19 | 2018-03-20 | Netapp, Inc. | Virtual chunk service based data recovery in a distributed data storage system |
| US10963430B2 (en) | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
| US9922201B2 (en) | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
| US10977128B1 (en) | 2015-06-16 | 2021-04-13 | Amazon Technologies, Inc. | Adaptive data loss mitigation for redundancy coding systems |
| US10298259B1 (en) | 2015-06-16 | 2019-05-21 | Amazon Technologies, Inc. | Multi-layered data redundancy coding techniques |
| US10270475B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Layered redundancy coding for encoded parity data |
| US9998150B1 (en) * | 2015-06-16 | 2018-06-12 | Amazon Technologies, Inc. | Layered data redundancy coding techniques for layer-local data recovery |
| US10270476B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Failure mode-sensitive layered redundancy coding techniques |
| US9838042B1 (en) * | 2015-06-17 | 2017-12-05 | Amazon Technologies, Inc. | Data retrieval optimization for redundancy coded data storage systems with static redundancy ratios |
| US9825652B1 (en) | 2015-06-17 | 2017-11-21 | Amazon Technologies, Inc. | Inter-facility network traffic optimization for redundancy coded data storage systems |
| US9853662B1 (en) * | 2015-06-17 | 2017-12-26 | Amazon Technologies, Inc. | Random access optimization for redundancy coded data storage systems |
| US10311020B1 (en) * | 2015-06-17 | 2019-06-04 | Amazon Technologies, Inc. | Locality-sensitive data retrieval for redundancy coded data storage systems |
| US9838041B1 (en) * | 2015-06-17 | 2017-12-05 | Amazon Technologies, Inc. | Device type differentiation for redundancy coded data storage systems |
| US9866242B1 (en) * | 2015-06-17 | 2018-01-09 | Amazon Technologies, Inc. | Throughput optimization for redundancy coded data storage systems |
| US10009044B1 (en) * | 2015-06-17 | 2018-06-26 | Amazon Technologies, Inc. | Device type differentiation for redundancy coded data storage systems |
| US20160378846A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Object based storage cluster with multiple selectable data handling policies |
| US10379959B1 (en) | 2015-06-29 | 2019-08-13 | Amazon Technologies, Inc. | Techniques and systems for physical manipulation of data storage devices |
| US9961141B1 (en) * | 2015-06-29 | 2018-05-01 | Amazon Technologies, Inc. | Techniques and systems for tray-based storage and organization in automated data storage systems |
| US9923966B1 (en) | 2015-06-29 | 2018-03-20 | Amazon Technologies, Inc. | Flexible media storage and organization in automated data storage systems |
| US10649850B1 (en) | 2015-06-29 | 2020-05-12 | Amazon Technologies, Inc. | Heterogenous media storage and organization in automated data storage systems |
| US10394762B1 (en) | 2015-07-01 | 2019-08-27 | Amazon Technologies, Inc. | Determining data redundancy in grid encoded data storage systems |
| US9959167B1 (en) | 2015-07-01 | 2018-05-01 | Amazon Technologies, Inc. | Rebundling grid encoded data storage systems |
| US9904589B1 (en) | 2015-07-01 | 2018-02-27 | Amazon Technologies, Inc. | Incremental media size extension for grid encoded data storage systems |
| US10108819B1 (en) | 2015-07-01 | 2018-10-23 | Amazon Technologies, Inc. | Cross-datacenter extension of grid encoded data storage systems |
| US10198311B1 (en) | 2015-07-01 | 2019-02-05 | Amazon Technologies, Inc. | Cross-datacenter validation of grid encoded data storage systems |
| US10162704B1 (en) | 2015-07-01 | 2018-12-25 | Amazon Technologies, Inc. | Grid encoded data storage systems for efficient data repair |
| US9998539B1 (en) | 2015-07-01 | 2018-06-12 | Amazon Technologies, Inc. | Non-parity in grid encoded data storage systems |
| US10089176B1 (en) | 2015-07-01 | 2018-10-02 | Amazon Technologies, Inc. | Incremental updates of grid encoded data storage systems |
| US9928141B1 (en) | 2015-09-21 | 2018-03-27 | Amazon Technologies, Inc. | Exploiting variable media size in grid encoded data storage systems |
| US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
| US9940474B1 (en) | 2015-09-29 | 2018-04-10 | Amazon Technologies, Inc. | Techniques and systems for data segregation in data storage systems |
| US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
| US10691718B2 (en) | 2015-10-29 | 2020-06-23 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
| US9571573B1 (en) * | 2015-10-29 | 2017-02-14 | Dropbox, Inc. | Peer-to-peer synchronization protocol for multi-premises hosting of digital content items |
| US10394789B1 (en) | 2015-12-07 | 2019-08-27 | Amazon Technologies, Inc. | Techniques and systems for scalable request handling in data processing systems |
| US9785495B1 (en) | 2015-12-14 | 2017-10-10 | Amazon Technologies, Inc. | Techniques and systems for detecting anomalous operational data |
| US10838911B1 (en) * | 2015-12-14 | 2020-11-17 | Amazon Technologies, Inc. | Optimization of data request processing for data storage systems |
| US10642813B1 (en) | 2015-12-14 | 2020-05-05 | Amazon Technologies, Inc. | Techniques and systems for storage and processing of operational data |
| US10248793B1 (en) | 2015-12-16 | 2019-04-02 | Amazon Technologies, Inc. | Techniques and systems for durable encryption and deletion in data storage systems |
| US10127105B1 (en) | 2015-12-17 | 2018-11-13 | Amazon Technologies, Inc. | Techniques for extending grids in data storage systems |
| US10180912B1 (en) | 2015-12-17 | 2019-01-15 | Amazon Technologies, Inc. | Techniques and systems for data segregation in redundancy coded data storage systems |
| US10235402B1 (en) | 2015-12-17 | 2019-03-19 | Amazon Technologies, Inc. | Techniques for combining grid-encoded data storage systems |
| US10324790B1 (en) | 2015-12-17 | 2019-06-18 | Amazon Technologies, Inc. | Flexible data storage device mapping for data storage systems |
| US10102065B1 (en) | 2015-12-17 | 2018-10-16 | Amazon Technologies, Inc. | Localized failure mode decorrelation in redundancy encoded data storage systems |
| JP6663013B2 (ja) * | 2015-12-18 | 2020-03-11 | アマゾン・テクノロジーズ・インコーポレーテッド | 出荷可能記憶装置のプロビジョニング及び出荷可能記憶装置からのデータの取り込み |
| US10853182B1 (en) | 2015-12-21 | 2020-12-01 | Amazon Technologies, Inc. | Scalable log-based secondary indexes for non-relational databases |
| US10423493B1 (en) | 2015-12-21 | 2019-09-24 | Amazon Technologies, Inc. | Scalable log-based continuous data protection for distributed databases |
| US10567500B1 (en) | 2015-12-21 | 2020-02-18 | Amazon Technologies, Inc. | Continuous backup of data in a distributed data store |
| US9904957B2 (en) * | 2016-01-15 | 2018-02-27 | FinLocker LLC | Systems and/or methods for maintaining control over, and access to, sensitive data inclusive digital vaults and hierarchically-arranged information elements thereof |
| US9672487B1 (en) | 2016-01-15 | 2017-06-06 | FinLocker LLC | Systems and/or methods for providing enhanced control over and visibility into workflows where potentially sensitive data is processed by different operators, regardless of current workflow task owner |
| US10019588B2 (en) | 2016-01-15 | 2018-07-10 | FinLocker LLC | Systems and/or methods for enabling cooperatively-completed rules-based data analytics of potentially sensitive data |
| US9537952B1 (en) | 2016-01-29 | 2017-01-03 | Dropbox, Inc. | Apparent cloud access for hosted content items |
| CN105678190A (zh) * | 2016-03-01 | 2016-06-15 | 福建省闽保信息技术股份有限公司 | 数据封存审计系统 |
| US10592336B1 (en) | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
| CN105867844B (zh) * | 2016-03-28 | 2019-01-25 | 北京联想核芯科技有限公司 | 一种命令控制方法及存储设备 |
| US10366062B1 (en) | 2016-03-28 | 2019-07-30 | Amazon Technologies, Inc. | Cycled clustering for redundancy coded data storage systems |
| US10678664B1 (en) | 2016-03-28 | 2020-06-09 | Amazon Technologies, Inc. | Hybridized storage operation for redundancy coded data storage systems |
| US10061668B1 (en) | 2016-03-28 | 2018-08-28 | Amazon Technologies, Inc. | Local storage clustering for redundancy coded data storage system |
| US10380360B2 (en) * | 2016-03-30 | 2019-08-13 | PhazrlO Inc. | Secured file sharing system |
| US10860597B2 (en) | 2016-03-30 | 2020-12-08 | Workday, Inc. | Reporting system for transaction server using cluster stored and processed data |
| US11216491B2 (en) | 2016-03-31 | 2022-01-04 | Splunk Inc. | Field extraction rules from clustered data samples |
| US11249710B2 (en) * | 2016-03-31 | 2022-02-15 | Splunk Inc. | Technology add-on control console |
| US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
| US10650152B2 (en) * | 2016-06-09 | 2020-05-12 | Blackberry Limited | Data access control based on storage validation |
| US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
| US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
| US11137980B1 (en) | 2016-09-27 | 2021-10-05 | Amazon Technologies, Inc. | Monotonic time-based data storage |
| US10496327B1 (en) | 2016-09-28 | 2019-12-03 | Amazon Technologies, Inc. | Command parallelization for data storage systems |
| US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
| US10657097B1 (en) | 2016-09-28 | 2020-05-19 | Amazon Technologies, Inc. | Data payload aggregation for data storage systems |
| US10810157B1 (en) | 2016-09-28 | 2020-10-20 | Amazon Technologies, Inc. | Command aggregation for data storage operations |
| US10437790B1 (en) | 2016-09-28 | 2019-10-08 | Amazon Technologies, Inc. | Contextual optimization for data storage systems |
| US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
| US9883610B1 (en) * | 2016-09-29 | 2018-01-30 | Amazon Technologies, Inc. | Electronic device filter door |
| US10614239B2 (en) | 2016-09-30 | 2020-04-07 | Amazon Technologies, Inc. | Immutable cryptographically secured ledger-backed databases |
| US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
| US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
| US10509766B2 (en) | 2016-11-07 | 2019-12-17 | International Business Machines Corporation | Storing and retrieving restricted datasets to and from a cloud network with non-restricted datasets |
| US10798064B1 (en) | 2016-11-09 | 2020-10-06 | StratoKey Pty Ltd. | Proxy computer system to provide encryption as a service |
| US11089126B1 (en) | 2016-11-09 | 2021-08-10 | StratoKey Pty Ltd. | Proxy computer system to provide direct links for bypass |
| US10296764B1 (en) | 2016-11-18 | 2019-05-21 | Amazon Technologies, Inc. | Verifiable cryptographically secured ledgers for human resource systems |
| US11269888B1 (en) | 2016-11-28 | 2022-03-08 | Amazon Technologies, Inc. | Archival data storage for structured data |
| US10908947B2 (en) | 2016-12-09 | 2021-02-02 | Salesforce.Com, Inc. | Big object bulk data ingest |
| US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
| US10476866B2 (en) * | 2017-01-12 | 2019-11-12 | Wipro Limited | System and method for storing and delivering digital content |
| US10621055B2 (en) | 2017-03-28 | 2020-04-14 | Amazon Technologies, Inc. | Adaptive data recovery for clustered data devices |
| US10530752B2 (en) | 2017-03-28 | 2020-01-07 | Amazon Technologies, Inc. | Efficient device provision |
| US11356445B2 (en) | 2017-03-28 | 2022-06-07 | Amazon Technologies, Inc. | Data access interface for clustered devices |
| US10440113B2 (en) | 2017-05-02 | 2019-10-08 | International Business Machines Corporation | Storage network tiering |
| EP3619954B1 (en) * | 2017-05-03 | 2022-07-13 | Telefonaktiebolaget LM Ericsson (PUBL) | Ue handling in ran |
| US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
| US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
| JP7116292B2 (ja) | 2017-09-26 | 2022-08-10 | 富士通株式会社 | 情報処理装置、情報処理システムおよびプログラム |
| US10754844B1 (en) | 2017-09-27 | 2020-08-25 | Amazon Technologies, Inc. | Efficient database snapshot generation |
| US10990581B1 (en) | 2017-09-27 | 2021-04-27 | Amazon Technologies, Inc. | Tracking a size of a database change log |
| US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
| US10942974B2 (en) * | 2017-10-20 | 2021-03-09 | Bank Of America Corporation | System for synchronous document captures into an asynchronous archive and document-level archiving reconciliation |
| US10318957B2 (en) * | 2017-10-23 | 2019-06-11 | Capital One Services, Llc | Customer identification verification process |
| CN111492355B (zh) | 2017-10-23 | 2023-08-11 | 西门子股份公司 | 用于控制和/或监控装置的方法和控制系统 |
| US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
| US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
| US11182372B1 (en) | 2017-11-08 | 2021-11-23 | Amazon Technologies, Inc. | Tracking database partition change log dependencies |
| US11269731B1 (en) | 2017-11-22 | 2022-03-08 | Amazon Technologies, Inc. | Continuous data protection |
| US11042503B1 (en) | 2017-11-22 | 2021-06-22 | Amazon Technologies, Inc. | Continuous data protection and restoration |
| US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
| US10621049B1 (en) | 2018-03-12 | 2020-04-14 | Amazon Technologies, Inc. | Consistent backups based on local node clock |
| US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
| US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
| US11249863B2 (en) | 2018-05-02 | 2022-02-15 | Commvault Systems, Inc. | Backup-based media agent configuration |
| US10673943B2 (en) | 2018-05-02 | 2020-06-02 | Commvault Systems, Inc. | Network storage backup using distributed media agents |
| US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
| US11126505B1 (en) | 2018-08-10 | 2021-09-21 | Amazon Technologies, Inc. | Past-state backup generator and interface for database systems |
| US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
| US12135682B1 (en) * | 2018-09-14 | 2024-11-05 | StratoKey Pty Ltd. | Archival system and service for use with third-party network services |
| US20190042365A1 (en) * | 2018-09-26 | 2019-02-07 | Intel Corporation | Read-optimized lazy erasure coding |
| US11199994B1 (en) * | 2018-11-14 | 2021-12-14 | Amazon Technologies, Inc. | Decoupling data request rate from hardware medium for archival data storage devices |
| US11042454B1 (en) | 2018-11-20 | 2021-06-22 | Amazon Technologies, Inc. | Restoration of a data source |
| US10997122B2 (en) * | 2018-12-05 | 2021-05-04 | Citrix Systems, Inc. | File redundancy detection and mitigation |
| WO2020113549A1 (en) * | 2018-12-07 | 2020-06-11 | Alibaba Group Holding Limited | External staging storage cluster mechanism to optimize archival data storage system on shingled magnetic recording hard disk drives |
| US12189815B1 (en) | 2018-12-14 | 2025-01-07 | Stratokey Pty Ltd | Selective replacement of data maintained by third-party network services |
| US10936751B1 (en) | 2018-12-14 | 2021-03-02 | StratoKey Pty Ltd. | Selective anonymization of data maintained by third-party network services |
| 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 |
| 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 |
| 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 |
| US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
| US11526371B2 (en) * | 2019-07-31 | 2022-12-13 | Rubrik, Inc. | Data correlation using file object cache |
| US11436101B2 (en) | 2019-09-19 | 2022-09-06 | Samsung Electronics Co., Ltd. | Rebuild directory/block allocation map from embedded data block information in file system disk |
| US12475041B2 (en) | 2019-10-15 | 2025-11-18 | Pure Storage, Inc. | Efficient data storage by grouping similar data within a zone |
| US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
| US11741409B1 (en) | 2019-12-26 | 2023-08-29 | StratoKey Pty Ltd. | Compliance management system |
| US11416874B1 (en) | 2019-12-26 | 2022-08-16 | StratoKey Pty Ltd. | Compliance management system |
| US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
| US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
| US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
| KR20230003182A (ko) | 2020-05-28 | 2023-01-05 | 제이에프이 스틸 가부시키가이샤 | 정보 검색 시스템 |
| CN111930969A (zh) * | 2020-07-01 | 2020-11-13 | 中新金桥数字科技(北京)有限公司 | 一种知识服务领域的知识对象标识符快速解析方法 |
| US11625358B1 (en) * | 2020-12-09 | 2023-04-11 | Amazon Technologies, Inc. | Automatic object archiving based on user selections |
| US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
| US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
| CN114691021B (zh) * | 2020-12-31 | 2025-06-13 | 伊姆西Ip控股有限责任公司 | 用于存储监测对象的指标值的方法、设备和计算机程序 |
| US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
| US12229437B2 (en) | 2020-12-31 | 2025-02-18 | Pure Storage, Inc. | Dynamic buffer for storage system |
| US11425129B1 (en) * | 2021-02-03 | 2022-08-23 | Yaron Oliker | System and method of secured communication |
| US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
| US11388248B1 (en) | 2021-08-18 | 2022-07-12 | StratoKey Pty Ltd. | Dynamic domain discovery and proxy configuration |
| JP7399929B2 (ja) * | 2021-11-26 | 2023-12-18 | 株式会社日立製作所 | 情報処理システム、情報処理方法、及びプログラム |
| US12517792B2 (en) | 2021-11-29 | 2026-01-06 | Commvault Systems, Inc. | Providing status of data storage operations within an information management system |
| US12135806B2 (en) * | 2022-03-16 | 2024-11-05 | UserClouds, Inc. | Token generation and management |
| US12470380B2 (en) | 2022-04-15 | 2025-11-11 | Dropbox, Inc. | Tertiary-level encryption key scheme |
| US20230362172A1 (en) * | 2022-05-06 | 2023-11-09 | Cohesity, Inc. | Automatically managing access policies for archived objects |
| US20240134712A1 (en) * | 2022-10-12 | 2024-04-25 | Dell Products L.P. | Techniques for efficient flushing and providing optimal resource utilization |
| CN116229587A (zh) * | 2023-01-31 | 2023-06-06 | 奥比中光科技集团股份有限公司 | 人脸识别模组自检方法、装置、模组及存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1124997A (ja) * | 1997-06-30 | 1999-01-29 | Hitachi Haisofuto:Kk | コンピュータで作成された記録ファイルの機密保持方法及び機密保持プログラムを記録したコンピュータ読み取り可能な記録媒体 |
| JP2002278844A (ja) * | 2001-01-19 | 2002-09-27 | Xerox Corp | 電子文書保護方法、同システムおよび機密内容オブジェクト |
| JP2006526837A (ja) * | 2003-06-03 | 2006-11-24 | 株式会社Access | ページ保存ファイルを用いてコンテンツを閲覧する方法 |
| JP2007515002A (ja) * | 2003-11-26 | 2007-06-07 | ヴェリタス・オペレーティング・コーポレーション | 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法 |
Family Cites Families (95)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5423046A (en) | 1992-12-17 | 1995-06-06 | International Business Machines Corporation | High capacity data storage system using disk array |
| ATE153149T1 (de) | 1993-01-21 | 1997-05-15 | Apple Computer | Vorrichtung und verfahren zur datensicherung von speichereinheiten in einem rechnernetzwerk |
| US5506809A (en) | 1994-06-29 | 1996-04-09 | Sharp Kabushiki Kaisha | Predictive status flag generation in a first-in first-out (FIFO) memory device method and apparatus |
| US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
| GB9606928D0 (en) | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Memory devices |
| US6023710A (en) | 1997-12-23 | 2000-02-08 | Microsoft Corporation | System and method for long-term administration of archival storage |
| US7017188B1 (en) | 1998-11-16 | 2006-03-21 | Softricity, Inc. | Method and apparatus for secure content delivery over broadband access networks |
| US20010032307A1 (en) | 1998-12-30 | 2001-10-18 | Joseph Rohlman | Micro-instruction queue for a microprocessor instruction pipeline |
| WO2000049803A1 (en) | 1999-02-18 | 2000-08-24 | Kabushiki Kaisha Toshiba | Medium on which stream data is recorded, its recording method, and its reproducing method |
| US6604224B1 (en) | 1999-03-31 | 2003-08-05 | Diva Systems Corporation | Method of performing content integrity analysis of a data stream |
| WO2000078001A2 (en) | 1999-06-11 | 2000-12-21 | Microsoft Corporation | General api for remote control of devices |
| US6970941B1 (en) * | 1999-12-10 | 2005-11-29 | Sun Microsystems, Inc. | System and method for separating addresses from the delivery scheme in a virtual private network |
| US6606629B1 (en) | 2000-05-17 | 2003-08-12 | Lsi Logic Corporation | Data structures containing sequence and revision number metadata used in mass storage data integrity-assuring technique |
| US6691113B1 (en) * | 2000-09-28 | 2004-02-10 | Curl Corporation | Persistent data storage for client computer software programs |
| US8032542B2 (en) | 2000-10-26 | 2011-10-04 | Reynolds Mark L | Creating, verifying, managing, and using original digital files |
| US7266704B2 (en) | 2000-12-18 | 2007-09-04 | Digimarc Corporation | User-friendly rights management systems and methods |
| US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
| US6950967B1 (en) | 2001-09-26 | 2005-09-27 | Maxtor Corporation | Method and apparatus for manufacture test processing a disk drive installed in a computer system |
| US7213158B2 (en) | 2002-06-28 | 2007-05-01 | Lenovo (Singapore) Pte. Ltd. | Distributed autonomic backup |
| US7774325B2 (en) | 2002-10-17 | 2010-08-10 | Intel Corporation | Distributed network attached storage system |
| US7076604B1 (en) | 2002-12-24 | 2006-07-11 | Western Digital Technologies, Inc. | Disk drive employing a disk command data structure for tracking a write verify status of a write command |
| US7269733B1 (en) | 2003-04-10 | 2007-09-11 | Cisco Technology, Inc. | Reliable embedded file content addressing |
| US7558927B2 (en) | 2003-05-06 | 2009-07-07 | Aptare, Inc. | System to capture, transmit and persist backup and recovery meta data |
| US7290086B2 (en) | 2003-05-28 | 2007-10-30 | International Business Machines Corporation | Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system |
| CN1266635C (zh) * | 2003-08-12 | 2006-07-26 | 上海交通大学 | 基于mpeg-7的远程教学领域的流媒体检索系统 |
| US20050160427A1 (en) | 2003-12-16 | 2005-07-21 | Eric Ustaris | System and method for managing log files |
| US20050203976A1 (en) * | 2004-02-11 | 2005-09-15 | University Of California | Systems, tools and methods for transferring files and metadata to and from a storage means |
| US8019925B1 (en) | 2004-05-06 | 2011-09-13 | Seagate Technology Llc | Methods and structure for dynamically mapped mass storage device |
| US8352439B1 (en) | 2004-06-03 | 2013-01-08 | Emc Corporation | Database verification following database write |
| US7606998B2 (en) | 2004-09-10 | 2009-10-20 | Cavium Networks, Inc. | Store instruction ordering for multi-core processor |
| US8122193B2 (en) | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
| US7392266B2 (en) | 2005-03-17 | 2008-06-24 | International Business Machines Corporation | Apparatus and method for monitoring usage of components in a database index |
| US7577689B1 (en) | 2005-06-15 | 2009-08-18 | Adobe Systems Incorporated | Method and system to archive data |
| US7814078B1 (en) | 2005-06-20 | 2010-10-12 | Hewlett-Packard Development Company, L.P. | Identification of files with similar content |
| US20070011472A1 (en) | 2005-07-05 | 2007-01-11 | Ju-Soft Co., Ltd | Secure power-saving harddisk storage system and method |
| JP4333655B2 (ja) | 2005-08-24 | 2009-09-16 | ソニー株式会社 | コンテンツ受信装置およびコンテンツ受信方法 |
| US20070079087A1 (en) | 2005-09-29 | 2007-04-05 | Copan Systems, Inc. | User interface for archival storage of data |
| US9026758B2 (en) | 2005-09-30 | 2015-05-05 | Cleversafe, Inc. | Memory device utilization in a dispersed storage network |
| US7509471B2 (en) | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
| US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
| US7716180B2 (en) | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
| US8060473B1 (en) | 2006-01-17 | 2011-11-15 | Symantec Operating Corporation | System and method for conveying backup and restore data via email |
| US20070174362A1 (en) | 2006-01-18 | 2007-07-26 | Duc Pham | System and methods for secure digital data archiving and access auditing |
| US7840969B2 (en) | 2006-04-28 | 2010-11-23 | Netapp, Inc. | System and method for management of jobs in a cluster environment |
| US20080059483A1 (en) | 2006-08-31 | 2008-03-06 | Realnetworks, Inc. | Api-accessible media distribution system |
| JP4939152B2 (ja) * | 2006-09-13 | 2012-05-23 | 株式会社日立製作所 | データ管理システム及びデータ管理方法 |
| JP4767139B2 (ja) | 2006-09-15 | 2011-09-07 | 富士通株式会社 | ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法 |
| US20080120164A1 (en) | 2006-11-17 | 2008-05-22 | Avaya Technology Llc | Contact center agent work awareness algorithm |
| US9124650B2 (en) | 2006-12-13 | 2015-09-01 | Quickplay Media Inc. | Digital rights management in a mobile environment |
| US8468244B2 (en) | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
| US8015158B1 (en) | 2007-04-23 | 2011-09-06 | Netapp, Inc. | Copy-less restoring of transaction files of a database system |
| US7827201B1 (en) | 2007-04-27 | 2010-11-02 | Network Appliance, Inc. | Merging containers in a multi-container system |
| US8671076B2 (en) * | 2007-05-08 | 2014-03-11 | Bmc Software, Inc. | Database recovery using logs applied to consistent copies |
| JP2008287633A (ja) | 2007-05-21 | 2008-11-27 | Fujitsu Ltd | Hba情報提供プログラム、hba情報提供方法及びhba情報提供装置 |
| JP2008299396A (ja) * | 2007-05-29 | 2008-12-11 | On Site:Kk | 紹介支援装置、紹介支援装置用プログラム、及び紹介支援方法 |
| TWI376603B (en) | 2007-09-21 | 2012-11-11 | Phison Electronics Corp | Solid state disk storage system with a parallel accessing architecture and a solid state disk controller |
| US7925733B2 (en) | 2007-12-12 | 2011-04-12 | International Business Machines Corporation | Generating unique object identifiers for network management objects |
| US20090164506A1 (en) | 2007-12-19 | 2009-06-25 | Casdex, Inc. | System and Method for Content-Based Email Authentication |
| JP4606455B2 (ja) | 2007-12-20 | 2011-01-05 | 富士通株式会社 | ストレージ管理装置、ストレージ管理プログラムおよびストレージシステム |
| US7979670B2 (en) * | 2008-01-24 | 2011-07-12 | Quantum Corporation | Methods and systems for vectored data de-duplication |
| US8140909B2 (en) | 2008-02-22 | 2012-03-20 | International Business Machines Corporation | Efficient method to detect disk write errors |
| US8112424B2 (en) | 2008-03-11 | 2012-02-07 | International Business Machines Corporation | Flexible and resilient information collaboration management infrastructure |
| EP2283405A4 (en) | 2008-04-21 | 2014-07-30 | Adaptive Computing Entpr Inc | SYSTEM AND METHOD FOR MANAGING ENERGY CONSUMPTION IN A DATA PROCESSING ENVIRONMENT |
| US7937619B2 (en) | 2008-05-30 | 2011-05-03 | Red Hat, Inc. | Fine grained failure detection in distributed computing |
| US9053212B2 (en) * | 2008-08-06 | 2015-06-09 | Intelli-Services, Inc. | Multi-dimensional metadata in research recordkeeping |
| US20100037056A1 (en) | 2008-08-07 | 2010-02-11 | Follis Benjamin D | Method to support privacy preserving secure data management in archival systems |
| US8130554B1 (en) | 2008-09-29 | 2012-03-06 | Emc Corporation | Securely erasing flash-based memory |
| US20100094819A1 (en) | 2008-10-10 | 2010-04-15 | Sap Ag | Concurrent collaborative process for data management and retrieval |
| KR101028929B1 (ko) | 2008-12-31 | 2011-04-12 | 성균관대학교산학협력단 | 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치 |
| US20100235409A1 (en) | 2009-03-10 | 2010-09-16 | Global Relay Communications Inc. | System and method for managing data stored in a data network |
| US8434131B2 (en) | 2009-03-20 | 2013-04-30 | Commvault Systems, Inc. | Managing connections in a data storage system |
| US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
| JP5424765B2 (ja) | 2009-07-28 | 2014-02-26 | キヤノン株式会社 | 監視装置及び情報処理方法 |
| US8310786B2 (en) | 2009-09-09 | 2012-11-13 | Hitachi Global Storage Technologies Netherlands B.V. | Asymmetric writer for shingled magnetic recording |
| US8171257B2 (en) | 2009-09-25 | 2012-05-01 | International Business Machines Corporation | Determining an end of valid log in a log of write records using a next pointer and a far ahead pointer |
| US8438456B2 (en) | 2009-10-05 | 2013-05-07 | Cleversafe, Inc. | Method and apparatus for dispersed storage of streaming data |
| US8464133B2 (en) | 2009-10-30 | 2013-06-11 | Cleversafe, Inc. | Media content distribution in a social network utilizing dispersed storage |
| US8990585B2 (en) | 2009-12-29 | 2015-03-24 | Cleversafe, Inc. | Time based dispersed storage access |
| US8654784B2 (en) | 2010-03-11 | 2014-02-18 | Microsoft Corporation | Multi-stage large send offload |
| US20110247074A1 (en) * | 2010-03-30 | 2011-10-06 | Manring Bradley A C | Metadata-based access, security, and compliance control of software generated files |
| US8234372B2 (en) | 2010-05-05 | 2012-07-31 | Go Daddy Operating Company, LLC | Writing a file to a cloud storage solution |
| US8762340B2 (en) | 2010-05-14 | 2014-06-24 | Salesforce.Com, Inc. | Methods and systems for backing up a search index in a multi-tenant database environment |
| US8370315B1 (en) | 2010-05-28 | 2013-02-05 | Symantec Corporation | System and method for high performance deduplication indexing |
| EP3015988A1 (en) | 2010-08-12 | 2016-05-04 | Security First Corp. | Systems and methods for secure remote storage of data |
| US8291170B1 (en) | 2010-08-19 | 2012-10-16 | Symantec Corporation | System and method for event driven backup data storage |
| US8640225B2 (en) | 2010-09-24 | 2014-01-28 | Nokia Corporation | Method and apparatus for validating resource identifier |
| AU2011308518B2 (en) | 2010-09-30 | 2014-12-04 | Commvault Systems, Inc. | Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system |
| US20120137062A1 (en) | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Leveraging coalesced memory |
| US8538938B2 (en) | 2010-12-02 | 2013-09-17 | At&T Intellectual Property I, L.P. | Interactive proof to validate outsourced data stream processing |
| US8589257B2 (en) | 2010-12-31 | 2013-11-19 | Nulogy Corporation | Method, system and apparatus for managing inventory |
| US8977834B2 (en) | 2011-02-14 | 2015-03-10 | Seagate Technology Llc | Dynamic storage regions |
| US8832409B2 (en) | 2011-03-09 | 2014-09-09 | Seagate Technology Llc | Dynamic guarding of a storage media |
| US8706963B2 (en) | 2011-06-02 | 2014-04-22 | Hitachi, Ltd. | Storage managing system, computer system, and storage managing method |
| US8930691B2 (en) | 2011-08-16 | 2015-01-06 | Microsoft Corporation | Dynamic symmetric searchable encryption |
| US9135269B2 (en) | 2011-12-07 | 2015-09-15 | Egnyte, Inc. | System and method of implementing an object storage infrastructure for cloud-based services |
-
2012
- 2012-08-08 US US13/569,994 patent/US9213709B2/en active Active
-
2013
- 2013-08-06 IN IN1689DEN2015 patent/IN2015DN01689A/en unknown
- 2013-08-06 WO PCT/US2013/053853 patent/WO2014025821A2/en not_active Ceased
- 2013-08-06 JP JP2015526652A patent/JP6224102B2/ja not_active Expired - Fee Related
- 2013-08-06 EP EP13827419.6A patent/EP2883132B1/en active Active
- 2013-08-06 CA CA2881475A patent/CA2881475C/en active Active
- 2013-08-06 CN CN201380042169.7A patent/CN104603740B/zh active Active
-
2015
- 2015-12-07 US US14/961,742 patent/US20160085797A1/en not_active Abandoned
-
2017
- 2017-08-07 JP JP2017152756A patent/JP2017228302A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1124997A (ja) * | 1997-06-30 | 1999-01-29 | Hitachi Haisofuto:Kk | コンピュータで作成された記録ファイルの機密保持方法及び機密保持プログラムを記録したコンピュータ読み取り可能な記録媒体 |
| JP2002278844A (ja) * | 2001-01-19 | 2002-09-27 | Xerox Corp | 電子文書保護方法、同システムおよび機密内容オブジェクト |
| JP2006526837A (ja) * | 2003-06-03 | 2006-11-24 | 株式会社Access | ページ保存ファイルを用いてコンテンツを閲覧する方法 |
| JP2007515002A (ja) * | 2003-11-26 | 2007-06-07 | ヴェリタス・オペレーティング・コーポレーション | 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2024507631A (ja) * | 2020-12-16 | 2024-02-21 | ナショナル・アソシエーション・オブ・コンビニエンス・ストアズ | クロスドメインアナリティクスのための高忠実度データ管理 |
| JP7595175B2 (ja) | 2020-12-16 | 2024-12-05 | ナショナル・アソシエーション・オブ・コンビニエンス・ストアズ | クロスドメインアナリティクスのための高忠実度データ管理 |
Also Published As
| Publication number | Publication date |
|---|---|
| US9213709B2 (en) | 2015-12-15 |
| US20140046906A1 (en) | 2014-02-13 |
| IN2015DN01689A (ja) | 2015-07-03 |
| CN104603740B (zh) | 2018-03-13 |
| EP2883132A2 (en) | 2015-06-17 |
| CA2881475C (en) | 2019-12-17 |
| JP6224102B2 (ja) | 2017-11-01 |
| EP2883132B1 (en) | 2019-05-01 |
| CN104603740A (zh) | 2015-05-06 |
| JP2015534143A (ja) | 2015-11-26 |
| WO2014025821A3 (en) | 2014-04-17 |
| CA2881475A1 (en) | 2014-02-13 |
| US20160085797A1 (en) | 2016-03-24 |
| WO2014025821A2 (en) | 2014-02-13 |
| EP2883132A4 (en) | 2015-07-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6224102B2 (ja) | アーカイブデータ識別 | |
| JP6483746B2 (ja) | データ記憶アプリケーションプログラミングインターフェース | |
| JP6463796B2 (ja) | アーカイブデータ記憶システム | |
| US10157199B2 (en) | Data storage integrity validation | |
| US9092441B1 (en) | Archival data organization and management | |
| US9767129B2 (en) | Data storage inventory indexing | |
| US9465551B1 (en) | Write horizon data management | |
| US9563681B1 (en) | Archival data flow management | |
| US9767098B2 (en) | Archival data storage system | |
| US9250811B1 (en) | Data write caching for sequentially written media | |
| US10120579B1 (en) | Data storage management for sequentially written media | |
| US10558581B1 (en) | Systems and techniques for data recovery in a keymapless data storage system | |
| US9652487B1 (en) | Programmable checksum calculations on data storage devices | |
| US9779035B1 (en) | Log-based data storage on sequentially written media |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180629 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180807 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190402 |