CN104520822A - 数据存储应用编程界面 - Google Patents

数据存储应用编程界面 Download PDF

Info

Publication number
CN104520822A
CN104520822A CN201380042166.3A CN201380042166A CN104520822A CN 104520822 A CN104520822 A CN 104520822A CN 201380042166 A CN201380042166 A CN 201380042166A CN 104520822 A CN104520822 A CN 104520822A
Authority
CN
China
Prior art keywords
data
request
storage
identifier
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380042166.3A
Other languages
English (en)
Other versions
CN104520822B (zh
Inventor
K·帕笛琼纳斯
C·L·克莱本
C·L·拉齐尔
C·E·苏弗
M·C·西格尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN104520822A publication Critical patent/CN104520822A/zh
Application granted granted Critical
Publication of CN104520822B publication Critical patent/CN104520822B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

一种用于数据存储服务的应用编程界面提供供所述数据存储服务的客户端访问其各种能力的方便机制。可以进行API调用以开始作业,且作为响应可以提供作业识别符。可以进行指定所述作业识别符的单独API调用,且可以产生提供涉及所述作业的信息的响应。各种API调用可以用来存储数据、检索数据、获得存储的数据的库存和获得涉及存储的数据的其它信息。

Description

数据存储应用编程界面
相关申请交叉参考
本申请要求2012年8月8日提交的标题为“DATA STORAGEAPPLICATION PROGRAMMING INTERFACE”的第13/570,074号美国专利申请(代理人案号90204-846378(056200US))的优先权和权益。本申请针对所有目的依引用方式并入下列专利申请的详尽公开内容:与其同时提交的标题为“LOG-BASED DATA STORAGE ONSEQUENTIALLY WRITTEN MEDIA”的第13/569,984号共同未决美国专利申请(代理人案号90204-841804(054800US))、与其同时提交的标题为“DATA STORAGE MANAGEMENT FOR SEQUENTIALLYWRITTEN MEDIA”的第13/570,057号共同未决美国专利申请(代理人案号90204-841817(055300US))、与其同时提交的标题为“DATAWRITE CACHING FOR SEQUENTIALLY WRITTEN MEDIA”的第13/570,005号共同未决美国专利申请(代理人案号90204-841812(055000US))、与其同时提交的标题为“PROGRAMMABLECHECKSUM CALCULATIONS ON DATA STORAGE DEVICES”的第13/570,030号共同未决美国专利申请(代理人案号90204-841813(055200US))、与其同时提交的标题为“ARCHIVAL DATAIDENTIFICATION”的第13/569,994号共同未决美国专利申请(代理人案号90204-841807(054300US))、与其同时提交的标题为“ARCHIVAL DATA ORGANIZATION AND MANAGEMENT”的第13/570,029号共同未决美国专利申请(代理人案号90204-841808(054400US))、与其同时提交的标题为“ARCHIVAL DATA FLOWMANAGEMENT”的第13/570,092号共同未决美国专利申请(代理人案号90204-841809(054500US))、与其同时提交的标题为“ARCHIVALDATA 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 STORAGEINVENTORY INDEXING”的第13/569,665号共同未决美国专利申请(代理人案号90204-841811(054700US))和与其同时提交的标题为“DATA STORAGE INTEGRITY VALIDATION”的第13/570,151号共同未决美国专利申请(代理人案号90204-841810(054600US))。
背景
随着信息数字化的递增,对耐久的且可靠的归档数据存储服务的需求也在递增。归档数据可以包括由政府、企业、图书馆等维持的归档记录、备份文件、媒体文件等。归档数据存储已带来一些挑战。例如,使用许多常规技术存储潜在的大量数据可造成成本过高。此外,通常期望归档数据存储的耐久度和可靠度相对较高,其进而增大存储数据所需的资源量,从而增大开支。常规技术(诸如磁带)在传统上因为低成本而用于数据备份系统。然而,基于磁带的系统和其它存储系统通常无法充分利用增强数据存储系统的安全性、可靠度和可扩展性的存储技术(诸如数据压缩、错误校正等)的进步。
附图简述
将参考附图描述根据本公开的各个实施方案,其中:
图1示出根据至少一个实施方案的环境,其示出客户与数据存储服务之间的通信。
图2示出根据至少一个实施方案的可以实施归档数据存储服务的示例性环境。
图3示出根据至少一个实施方案的可以连接归档数据存储系统的组件的互连网络。
图4示出根据至少一个实施方案的可以连接归档数据存储系统的组件的互连网络。
图5示出根据至少一个实施方案的用于存储数据的示例性过程。
图6示出根据至少一个实施方案的用于检索数据的示例性过程。
图7示出根据至少一个实施方案的用于删除数据的示例性过程。
图8示出根据至少一个实施方案的用于上传数据的示例性API调用和响应的图形表示。
图9示出根据至少一个实施方案的用于开始作业的示例性API调用和响应的图形表示。
图10示出根据至少一个实施方案的用于获得关于作业的信息的示例性API调用和响应的图形表示。
图11示出根据至少一个实施方案的用于获得作业输出的示例性API调用和响应的的图形表示。
图12示出根据至少一个实施方案的使用数据存储服务的API来获得数据对象的过程的图形表示。
图13示出根据至少一个实施方案的使用数据存储服务的API来获得数据对象的过程的图形表示。
图14示出根据至少一个实施方案的使用数据存储服务的API来获得数据对象的库存的过程的图形表示。
图15示出根据至少一个实施方案的使用数据存储服务的API来获得访问/突变日志的过程的图形表示。
图16示出可实施各个实施方案的环境。
发明详述
在下文描述中,将描述各个实施方案。出于说明目的,陈述具体配置和详情以便透彻理解实施方案。然而,所属技术领域熟练人员还将明白在无具体详情的情况下,可以实行实施方案。此外,可以省略或简化熟知特征以免使所描述的实施方案难以理解。
本公开的实施方案涉及允许与数据存储服务(诸如归档数据存储服务)交互的技术。在实施方案中,可通过被数据存储服务的客户用来访问数据存储服务的各种能力的应用编程界面(API)访问所述数据存储服务。客户可以例如使用API来存储数据、检索存储数据和结合数据执行其它操作。
在实施方案中,数据存储服务的API允许用户上传数据用于存储。API调用可以例如包括针对存储将与参数存储在一起的数据。当数据相对于可用上传带宽较大时,API还可以允许数据依部件更新,以例如减小失败的可能性。相似地,API可以允许全部或依部件下载数据。当依部件下载数据时,传输可以包括部件和完整数据的检查和或其它数据验证值。依此方式,不仅可在部件放置在一起时检查完整数据,而且可检查个别部件,使得如果部件传输失败,那么可以重试传输而非重新传输成功传输的部件。因此,可以避免数据的资源密集重复传输。
在实施方案中,数据存储服务异步地提供某些数据。例如,归档或其它数据存储服务可以出于涉及效率和/或成本的各种原因依异步方式提供请求的数据。因此,在实施方案中,数据存储服务的API允许用户进行API调用以请求数据存储服务提供数据。作为响应,数据存储服务可以将对应于请求的数据的检索的作业识别符提供到请求者。数据存储服务可以从一个存储位置获得请求的数据以放置在客户更易访问的另一存储位置中。当作业完成时(例如将数据移动到更易访问数据存储位置用于分级),在API调用中可提供作业识别符以下载数据中的一些或所有。
客户可以依一种或多种方式了解作业完成。例如,诸如在作业完成或失败时,API调用可以指定涉及作业的通知参数。当作业完成已完结时,客户可以接收通知。可以由提交API调用以检索数据的计算机系统和/或通知参数中(诸如通过邮箱地址、互联网协议(IP)地址等)指定的另一计算机系统接收通知。客户还可以提交API调用以向数据存储服务轮询一个或多个作业的状态。这个API调用可以包括一个或多个作业识别符。响应于这个调用,数据存储服务可以在所述调用中提供由识别符指定的作业的状态。状态可以指定例如作业在进行中、已失败(可能具有关于失败原因的信息)、作业已完成和/或其它状态。在一些实施方案中,客户还可以假设随着时间推移作业已完成。数据存储服务例如可以遵循指定某些作业将在指定时间周期(诸如24小时)中完成的服务水平协议(SLA),但其它时间在本公开的范围内。使用这个SLA(或可能不使用),客户可以在请求作业输出(诸如请求的数据)之前等待适当时间周期。如果输出未准备好,那么请求可能失败。
还可以提供除作业完成外的事件的通知。例如,在实施方案中,经由API调用,客户能够结合由数据存储服务存储的数据的访问和突变来注册各种通知。数据存储服务可以维持关于数据访问和突变的一个或多个日志。服务可以根据其自身参数和/或由客户提供的参数维持日志。客户可以例如提交API调用以至少部分地指定存储系统应何时记载事件的参数。客户可以例如指定从由存储系统存储的元数据生成日志的频率。此外或替代地,客户可以指定其它参数。这些参数可以指定应记载的某些事件(例如,应记载写入或删除,但无需记载读取),指定应在已发生一定数量的事件之后和/或一定量的数据已变更之后等生成日志。日志可以记录大量类型的数据,诸如提交API调用以访问数据的计算机系统的IP地址、尝试的操作、操作是否成功等。客户还可以指定结合生成的日志将执行的动作。客户可以例如使用AIP调用以至少部分地指定另一服务以将日志传输到诸如不同类型的数据存储服务和/或依编程方式管理计算机系统服务。
在一些实施方案中,客户能够提供其自身与作业相关的信息。客户可以例如提交API调用以开始作业,诸如数据检索作业。API调用的参数可以包括客户期望与将开始的作业相关的信息。数据存储服务可以使数据与作业相关以随后结合作业诸如在通知中提供作业何时完成和/或响应于API调用以获得作业输出。可以依各种方式使用这个客户提供的信息。例如,客户提供的信息可以包括数据库的数据库密钥,其中一旦下载数据,客户就想要将数据插入数据库。作为另一实例,客户提供的信息可以包括可由客户计算机系统辨识以造成客户计算机系统执行特定动作的代码或其它信息。在一些实施方案中,从存储服务的角度来看,客户提供的数据可以是任意的,从而从客户角度来看提供了灵活性和可扩展性。
其它变化也可被视为在本公开的范围内。例如,各种API调用可以允许数据存储服务的高级特征。API调用可以允许客户复制数据、移动数据到另一服务、移动数据到由数据存储服务服务的不同地理区域等。下文描述其它变化。
如所述,本公开的实施方案涉及允许访问数据存储系统(诸如归档数据存储系统)的能力的技术。图1示出可以实施这些技术的示例性环境100。如所示,客户装置(“客户”,如下文更详细描述)通过通信网络104(诸如互联网)与存储服务106进行通信。客户102可以例如通过网络104将数据传输到存储服务106以供存储服务106存储。客户102还可以结合由存储服务106存储的数据传输执行操作的请求,诸如访问存储的数据、库存存储的数据的请求和/或执行其它操作的请求,诸如下文所描述的请求。客户102可以与从存储服务106的角度来看是以价值(例如,金钱)交换利用由存储服务106提供的服务的第三方的实体相关。然而,应注意,本公开的范围包括客户102中的一个或多个与同存储服务106相同的组织相关的实施方案。例如,客户102中的一个或多个可以是拥有和/或操作存储服务106的组织的部件。作为另一实例,存储服务106可以是提供大量计算服务的组织的部件且客户102可以是由组织主控但由组织客户依编程方式管理的计算资源。作为说明性实例,客户102可以是由组织主控但由组织的第三方客户实体依编程方式管理的计算机系统(其可以是虚拟计算机系统)。
存储服务106可以是结合数据存储执行一个或多个服务的计算机系统,如上文所提及且如下文更详细描述。客户102可以通过网络104将请求传输到存储服务106且存储服务106可以处理请求并通过网络104将响应和其它信息(例如,通知)提供到客户102。存储服务106可以例如包括在一个或多个数据中心中一起联网和主控的一个或多个子系统。作为说明性实例,存储服务106可以是诸如下文更详细描述的归档数据存储服务。
如图1中所示,存储服务106可以包括用来访问由数据存储系统110提供的服务的应用编程界面(API),出于图1的论述目的,数据存储系统110包括除API外的存储服务106的部分。客户可以根据API将电子消息传输到存储服务106。API可以如下文结合图2所描述般配置,但变化和其它API被视为在本公开的范围内。
根据各个实施方案,API对客户提供访问存储服务106的各种功能的能力。因此,在实施方案中,API包括用于访问各种功能的多个组件。例如,在各个实施方案中,API包括对客户提供检索由存储服务106存储的信息的能力的检索组件。在一些实施方案中,存储服务允许依部件检索信息的能力。依部件检索可以例如在检索大数据对象时可用。例如,如果单个大数据操作的检索操作失败,那么检索操作可能必须重复且可能必须重新传输已传输的数据。依部件检索可以提供检索(例如,下载)大数据对象的部分的能力,使得如果部分传输失败,那么可以仅需要重新传输所述部分的数据。因此,根据实施方案,API包括诸如通过指定字节范围(例如,数据的首个1MB或字节1到1,048,576或字节1,048,577到2,097,152等)允许客户仅请求数据对象的部分的变程(ranged)检索组件。
为允许客户102将数据传输到存储服务106,在各个实施方案中,存储服务API 108包括PUT组件,其可以允许用户传输(上传)数据对象或其部分(例如,依与检索数据对象部分相似的方式)。从客户角度来看,PUT组件的使用可以看似同步,但使用PUT组件的请求的完成可以异步。作为说明性实例,对用以存储数据对象的put API调用的响应可以包括为数据对象生成的识别符,如下文更详细论述。识别符可以用来检索数据对象。然而,可以在数据存储系统110实际上将数据对象持久存储在归档存储装置中之前提供识别符,从而对进行API调用的客户102提供同步体验。
客户102可以利用PUT组件以使用存储服务106存储大量数据对象。因此,本公开的各种实施方案允许客户获得关于已由存储服务106存储的对象的信息。举例来说,如图1中所示,存储服务API 108可以包括数据对象清单组件。对数据对象清单组件的API调用可以用来获得识别进行API调用的客户的数据对象的清单(或其它数据组织)。在各个实施方案中,处理使用这个API调用作出的请求可以异步执行。例如,响应于获得数据对象清单的API调用,存储系统可以在实际上获得清单以提供到请求者之前提供作业识别符。作业识别符可以用来进行API调用以获得作业状态(例如,使用API 108的作业状态组件),且在作业最终完成时获得清单。
大体来说,在使用异步数据处理技术的实例中,本公开的实施方案允许客户102注册关于各种作业相关事件的状态的通知。例如,替代向数据存储系统102轮询作业状态或除向数据存储系统102轮询作业状态外,客户102可在作业完成时注册通知。举例来说,当请求的数据对象准备好用于下载时、当数据对象清单可用时等,客户102可以接收电子消息。
此外,本公开的各种实施方案允许高级功能。例如,客户102的用户可能够使用API 108的作业标签组件提供自身响应于客户API调用创建的作业的标签。标签可以由客户102的用户预定义和选择和/或可以完全由用户配置。例如,客户可以包括标签中的编程代码和/或其它信息,使得当客户102的系统接收通知消息时,系统(或客户102的另一系统)可依自动方式处理信息并执行一个或多个动作。例如,客户102可以使用作业标签组件以包括检索作业的信息,其在由客户的计算机系统处理时造成客户的计算机系统(或客户的另一计算机系统)在检索作业完成时下载对应数据对象。
如图1中所述,除图中所示的组件外或替代图中所示的组件,API108还可以包括额外组件,其中的许多组件在下文更详细描述。
图2示出根据至少一个实施方案的可以实施归档数据存储系统的示例性环境200。一个或多个客户202经由网络204连接到归档数据存储系统206。如上文所暗示,除非上下文另有清楚所述,否则术语“客户”指代利用本文中所描述的数据存储服务的客户实体(诸如个人、公司或其它组织)的系统。这些系统可以包括数据中心、主机、个人计算装置、分布式计算环境和其客户可访问实例或能够与归档数据存储系统进行通信的任何其它系统。在一些实施方案中,客户可以指代由还提供归档数据存储系统的计算资源提供者提供的分布式计算系统的机器实例(例如,具有直接硬件访问)或虚拟实例。在一些实施方案中,归档数据存储系统与分布式计算系统成一体且可以包括分布式计算系统的实例(虚拟或机器)或由其实施。在各个实施方案中,网络204可以包括互联网、局域网(“LAN”)、广域网(“WAN”)、蜂窝数据网络和/或其它数据网络。
在实施方案中,归档数据存储系统206提供多租户或多客户环境,其中每个租户或客户可以存储、检索、删除或依其它方式管理分配给客户的数据存储空间中的数据。在一些实施方案中,归档数据存储系统206包括多个子系统或“平面”,每个提供特定服务或功能集。例如,如图2中所示,归档数据存储系统206包括前端208、直接I/O控制平面210、共同控制平面212、数据平面214和元数据平面216。每个子系统或平面可以包括共同地提供特定功能集的一个或多个组件。每个组件可以由一个或多个物理和/或逻辑计算装置(诸如计算机、数据存储装置等)来实施。每个子系统内的组件可以与相同子系统内的组件、其它子系统中的组件或外部实体(诸如客户)进行通信。这些交互中的至少一些是由图2中的箭头指示。特定来说,进出归档数据存储系统206的主要批量数据传送路径是由粗箭头表示。所属技术领域一般人员将明白各个实施方案可以具有少于或多于图2中所示的数量的系统、子系统和/或子组件。因此,图2中的环境200的描绘应被视为本质上是说明性的且不限于本公开的范围。
在说明性实施方案中,前端208实施在归档数据存储系统206与外部实体(诸如本文中所描述的一个或多个客户202)之间提供界面的服务组。在各个实施方案中,前端208提供用来使用户能够依编程方式与归档数据存储系统的各种特征、组件和功能连接的应用编程界面(“API”)。这些API可以是用户界面的部分,其可以包括图形用户界面(GUI)、基于网页的界面、编程界面(诸如应用编程界面(API)和/或对应于界面元件的远程程序调用(RPC)集)、界面元件对应于通信协议消息的消息传递界面和/或其合适组合。
由归档数据存储系统206提供的功能可以包括各种操作参数的数据存储、数据检索、数据删除、元数据操作、配置等。元数据操作可以包括检索针对特定客户存储的数据的目录的请求、数据恢复请求、作业查询等。配置API可以允许客户配置帐户信息、审计日志、政策、通知设置等。客户可以通过将API请求发送到归档数据存储系统而请求执行上述操作中的任一个。相似地,归档数据存储系统可以提供客户请求响应。这些请求和响应可以通过任何合适通信协议(诸如超文字传送协议(“HTTP”)、文件传送协议(“FTP”)等)依任何合适格式(诸如表述性状态转移(“REST”)、简单对象访问协议(“SOAP”)等)来提交。请求和响应可以例如使用Base64编码进行编码、运用加密密钥等加密。
在一些实施方案中,归档数据存储系统206允许客户创建存储一个或多个归档数据对象的一个或多个逻辑结构,诸如逻辑数据容器。如本文中所使用,数据对象广泛地被使用且不一定暗指关于其它数据的任何特定结构或关系。数据对象可以仅是例如位序列。通常,这些逻辑数据结构可以被创建来满足客户的某些业务要求且独立于存储在归档数据存储系统中的数据的物理组织。如本文中所使用,术语“逻辑数据容器”指代数据对象的分组。例如,出于具体目的或在具体时间周期期间创建的数据对象可以存储在相同逻辑数据容器中。每个逻辑数据容器可以包括嵌套的数据容器或数据对象且可以与政策集相关,诸如容器的大小限制、可以存储在容器中的数据对象的最大数量、截止日期、访问控制清单等。在各个实施方案中,可以由客户经由API请求、由系统管理员或由数据存储系统例如基于可配置信息创建、删除或依其它方式修改逻辑数据容器。在实施方案中,例如下述HTTPPUT请求可以用来创建具有与由帐户识别符“accountId”识别的客户相关的名称“logical-container-name”的逻辑数据容器。
PUT/{accountId}/logical-container-name HTTP/1.1
在实施方案中,归档数据存储系统206对客户提供API以将数据对象存储到逻辑数据容器中。例如,在说明性实施方案中,下述HTTP POST请求可以用来将数据对象存储到给出逻辑容器中。在实施方案中,请求可以指定存储位置的逻辑路径、数据长度、对数据有效负载的参考、数据有效负载的数字摘要和其它信息。在一个实施方案中,API可以允许客户在一次请求中将多个数据对象上传到一个或多个逻辑数据容器。在数据对象为大数据对象的另一实施方案中,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
在实施方案中,响应于数据存储请求,如果成功地存储数据对象,那么归档数据存储系统206提供数据对象识别符。这个数据对象识别符可以在后续请求中用来检索、删除或依其它方式参考存储的数据对象。在一些实施方案中,这个数据对象识别符可以“自描述”是因为其包括(例如,在加密或不加密的情况下)可以被归档数据存储系统用来定位数据对象而无需额外数据结构(诸如全局命名空间密钥映射)的存储位置信息。此外,在一些实施方案中,数据对象识别符还可以编码可以用来证实后续请求和数据完整性的其它信息,诸如有效负载摘要、错误检测码、访问控制数据和其它信息。在一些实施方案中,归档数据存储系统在将传入数据移动到归档数据存储装置之前将其存储在瞬态耐久数据存储区中。因此,尽管客户可以感知在完成上传请求时的瞬间耐久地存留数据,但到长期存留数据存储区的实际存储可能直到一段时间之后(例如,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}
在任何给出时间点,归档数据存储系统可以具有因各种数据操作未决的许多作业。在一些实施方案中,归档数据存储系统可以采用作业规划和优化技术(诸如批量处理、负载平衡、作业合并等)以优化系统度量,诸如成本、性能、可扩展性等。在一些实施方案中,实际数据检索的时序取决于下述因素,诸如检索的数据的大小、系统负载和容量、存储装置的运行状态等。例如,在一些实施方案中,归档数据存储系统中的至少一些数据存储装置可以根据电力管理调度来激活或撤销激活以例如降低操作成本。因此,存储在当前运行的存储装置(诸如旋转的硬盘驱动器)中的数据的检索可以快于存储在当前不运行的存储装置(诸如消旋的硬盘驱动器)中的数据的检索。
在实施方案中,当数据检索作业完成时,将检索的数据存储在分级数据存储区中且使其可用于客户下载。在一些实施方案中,通过可配置通知服务向客户通知作业状态变更。在其它实施方案中,客户可以通过使用作业识别符向系统轮询而获悉作业状态。在实施方案中,下述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 bytes of user data follows]
在实施方案中,客户可以通过指定与存储在归档数据存储系统中的数据对象相关的数据对象识别符而请求删除所述数据对象。例如,在说明性实施方案中,可以使用下述HTTP请求删除具有数据对象识别符“dataObjectId”的数据对象。在另一实施方案中,客户可以请求删除多个数据对象,诸如与特定逻辑数据容器相关的数据对象。
DELETE/{accountId}/logical-data-container-name/data/{dataObjectId}HTTP/1.1
在各个实施方案中,数据对象可以响应于客户请求而删除或可以根据用户指定或默认的截止日期自动地删除。在一些实施方案中,数据对象可能在截止时间之后客户不可访问但在超过截止时间的宽限期期间可恢复。在各个实施方案中,宽限期可以基于可配置信息,诸如客户配置、服务水平协议条款等。在一些实施方案中,客户可以具备询问或接收未决数据删除的通知和/或取消未决数据删除中的一个或多个的能力。例如,在一个实施方案中,客户可以设置与逻辑数据容器相关的通知配置,使得客户将接收与逻辑数据容器相关的某些事件的通知。这些事件可以包括数据检索作业请求的完成、元数据请求的完成、数据对象或逻辑数据容器的删除等。
在实施方案中,归档数据存储系统206还提供元数据API用于检索和管理元数据,诸如与逻辑数据容器相关的元数据。在各个实施方案中,可以异步地(其中随后返回结果)或同步地(其中立即返回结果)处理这些请求。
仍参考图2,在实施方案中,上文所论述的API请求中的至少一些是由作为前端208的部件的API请求处理机218来处理。例如,API请求处理机218可以解码和/或解析传入API请求以提取信息(诸如统一资源识别符(“URI”)、请求的动作和相关参数、身份信息、数据对象识别符等)。此外,必要时API请求处理机218调用其它服务(下文所描述)以进一步处理API请求。
在实施方案中,前端208包括可以例如被API处理机218调用以认证API请求的认证服务220。例如,在一些实施方案中,认证服务220可以验证通过API请求提交的身份信息,诸如用户名称和密码、互联网协议(“IP”)地址、信息记录程序、数字证书、数字签名等。在其它实施方案中,认证服务220可以要求客户在挑战-响应认证协议等下提供额外信息或执行额外步骤以认证请求,诸如在多因素认证方案中所要求的。
在实施方案中,前端208包括可以例如被API处理机218调用以根据确定与请求相关的一个或多个政策确定是否容许请求的访问的授权服务222。例如,在一个实施方案中,授权服务222验证请求的数据涉及请求者自身的逻辑数据容器中容纳的数据对象或依其它方式授权请求者访问的数据对象。在一些实施方案中,前端208的授权服务222或其它服务可以至少部分地基于请求中编码的信息(诸如通过数据对象识别符编码的证实信息)检查数据请求的有效性和完整性。
在实施方案中,前端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还获得与将存储的数据相关的数据对象识别符且将数据对象识别符例如提供到前端服务以返回到客户。在实施方案中,可以从数据平面214服务(诸如下文所描述的存储节点管理器244、存储节点注册服务器248等)获得这个数据对象识别符。
在一些实施方案中,直接I/O控制平面210包括用于存储作业实体或记录的作业追踪器存储区232。在各个实施方案中,作业追踪器存储区230可以由NoSQL数据管理系统(诸如密钥值数据存储区)、关系数据库管理系统(“RDBMS”)或任何其它数据存储系统来实施。在一些实施方案中,可以划分存储在作业追踪器存储区230中的数据以使能够由单独服务实例快速枚举属于具体客户的作业、促进有效批量记录删除、并行处理等。例如,作业追踪器存储区230可以实施根据客户帐户识别符划分且将作业识别符用作范围关键字的表。在实施方案中,作业追踪器存储区230基于时间(诸如作业截止时间)进行进一步细化划分以促进作业截止和清除操作。在实施方案中,可以聚合对作业追踪器存储区232进行的事务以减少总事务数量。例如,在一些实施方案中,作业追踪器230可以在将对应于多个请求的多个作业插入到作业追踪器存储区232中之前执行将多个作业聚合成一个单一聚合作业。
在实施方案中,作业追踪器230被配置来提交作业以例如由共同控制平面212中的服务进行进一步作业调度和规划。此外,作业追踪器230可以被配置来监控作业执行且在作业完成时于作业追踪器存储区232中更新对应作业记录。在一些实施方案中,作业追踪器230还可以被配置来处理客户询问,诸如作业状态询问。在一些实施方案中,作业追踪器230还将作业状态变更的通知提供到客户或归档数据存储系统的其它服务。例如,当数据检索作业完成时,作业追踪器230可以造成向客户通知(例如,使用通知服务)数据可用于下载。作为另一实例,当数据存储作业完成时,作业追踪器230可以通知清除代理234从下文所描述的瞬态有效负载数据缓存228移除与数据存储作业相关的有效负载数据。
在实施方案中,直接I/O控制平面210包括用于对在数据平面214与前端208之间的有效负载数据中转提供瞬态数据存储服务的有效负载数据缓存228。这个数据包括传入的数据未决存储和传出的数据未决客户下载。如本文中所使用,瞬态数据存储区与暂时或分级数据存储区可交换地用来指代用来在将数据对象存储在本文中所描述的归档数据存储装置中之前存储数据对象或用来存储从归档数据存储装置检索的数据对象的数据存储区。瞬态数据存储区可以提供易失性或非易失性(耐久)存储。在多数实施方案中,虽然可能用于持久地存储数据,但瞬态数据存储区希望存储数据达短于归档数据存储系统的时间周期且可能不比本文中所描述的数据归档存储系统具成本效益。在一个实施方案中,被提供用于传入数据和传输数据的瞬态数据存储服务是可以区分的。例如,用于尚未存留在归档数据存储装置中的传入数据的数据存储装置可以提供高于用于已存留在归档数据存储装置中的传出(检索的)数据的数据存储装置的可靠度和耐久度。在另一实施方案中,对于传入数据,瞬态存储装置可是可选的,即,例如当存在具有足够带宽和/或容量来这样做的系统时,传入数据可以直接存储在归档数据存储装置中而非存储在瞬态数据存储装置(诸如有效负载数据缓存228)中。
在实施方案中,直接I/O控制平面210还包括监控作业追踪器存储区232和/或有效负载数据缓存228且移除不再需要的数据的清除代理234。例如,与数据存储请求相关的有效负载数据可以在所述数据存留在永久存储装置(例如,数据平面214)中之后安全地从有效负载数据缓存228移除。在相反路径上,对于客户下载分级的数据可以在可配置时间周期之后(例如,自数据分级起30天)或在客户指示不再需要分级的数据之后从有效负载数据缓存228移除。
在一些实施方案中,当作业状态指示作业完成或中止时,清除代理234从作业追踪器存储区232移除作业记录。如上文所论述,在一些实施方案中,可以划分作业追踪器存储区232以使能够实现更快速清除。在通过客户帐户识别符划分数据的一个实施方案中,当作业完成时,清除代理234可以移除存储特定客户帐户作业的整个表而非每次一个地删除个别作业。在基于作业截止时间进一步细化划分数据的另一实施方案中,在分区中的所有作业截止之后,清除代理234可以批量删除整个作业分区或表。在其它实施方案中,清除代理234可以从其它服务(诸如作业追踪器230)接收造成清除代理234从作业追踪器存储区232和/或有效负载数据缓存228移除作业记录的指令或控制消息(诸如作业完成的指示)。
现参考图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可以在所有读取和删除操作之前批量处理所有写入操作。在另一实施方案中,存储节点管理器224可以执行操作合并。对于另一实例,存储节点管理器224可以将相同对象的多个检索作业合并成一个作业,或取消相同数据对象的存储作业和删除作业,其中删除作业紧随存储作业之后。
在实施方案中,例如,基于作业识别符划分存储节点管理器作业存储区240以便允许多个存储节点管理器244的独立处理且对所有参与的存储节点管理器244提供传入工作负载的均匀分配。在各个实施方案中,存储节点管理器作业存储区240可以由NoSQL数据管理系统(诸如密钥值数据存储区)、RDBMS或任何其它数据存储系统来实施。
在实施方案中,请求平衡器238提供用于将作业项目从作业请求队列236传送到存储节点管理器作业存储区240以便消除工作负载变化和增大系统可用性的服务。例如,请求平衡器238可以在进入作业请求队列236的作业请求激增时依较低速率或依较小粒度从作业请求队列236传送作业项目和在传入作业请求缓和时反之亦然,以便维持存储节点管理器存储区240中的工作负载的水平相对稳定。在一些实施方案中,这个稳定的工作负载水平约等于或低于系统的平均工作负载。
在实施方案中,从存储节点管理器作业存储区240移除完成的作业项目并将其添加到作业结果队列242。在实施方案中,数据平面214服务(例如,存储节点管理器244)负责从存储节点管理器作业存储区240移除作业项目并将其添加到作业结果队列242。在一些实施方案中,作业请求队列242是依与上文所论述的作业请求队列235相似的方式实施。
现参考图2中所示的数据平面214。在各个实施方案中,数据平面214提供与长期归档数据存储、检索和删除、数据管理和放置、反熵操作等相关的服务。在各个实施方案中,数据平面214可以包括任何数量和类型的存储实体,诸如数据存储装置(诸如磁带驱动器、硬盘驱动器、固态装置等)、存储节点或服务器、数据中心等。这些存储实体可以是物理实体、虚拟实体或其任何抽象实体(例如,分布式存储装置和/或计算系统的实例)且可以组织成任何拓扑,包括阶层式或层列式拓扑。相似地,数据平面的组件可以是散布的、本地的或其任何组合。例如,各种计算或存储组件可以在任何数量的数据中心、服务器或数据存储装置的本地或远端,其转而可以在彼此的本地或远端。在各个实施方案中,可以设计物理存储实体以通过控制运行的物理硬件的部分(例如,积极旋转的硬盘驱动器的数量)而最小化电力成本和制冷成本。在实施方案中,物理存储实体实施用来增大存储容量的技术,诸如叠瓦式磁记录(SMR)。
在由图2所示的环境中,一个或多个存储节点管理器244中的每个通过发送和接收数据和控制消息而控制一个或多个存储节点246。每个存储节点246继而控制数据存储装置(诸如硬盘驱动器)的(可能大的)集合。在各个实施方案中,存储节点管理器244可以与一个或多个存储节点246进行通信且存储节点246可以与一个或多个存储节点管理器244进行通信。在实施方案中,存储节点管理器244是由能够执行相对较复杂的计算(诸如摘要计算、数据编码和解码、作业规划和优化等)的一个或多个计算装置来实施。在一些实施方案中,存储节点244是由具有比存储节点管理244小的强大计算能力的一个或多个计算装置来实施。此外,在一些实施方案中,在数据路径中可以不包括存储节点管理器244。例如,数据可以从有效负载数据缓存228直接传输到存储节点246或从一个或多个存储节点246传输到有效负载数据缓存228。依此方式,存储节点管理器244可以将指令传输到有效负载数据缓存228和/或存储节点246而不从有效负载数据缓存228和/或存储节点246直接接收有效负载。在各个实施方案中,存储节点管理器244可以将指令或控制消息发送到本文中所描述的归档数据存储系统206的任何其它组件以引导数据流动。
在实施方案中,存储节点管理器244通过以下步骤用作作业进出数据平面214的入口点:从共同控制平面212(例如,存储节点管理器作业存储区240)拾取作业项目、从有效负载数据缓存228检索分级的数据和执行数据存储作业的必需数据编码和请求适当存储节点246存储、检索或删除数据。一旦存储节点246完成执行请求的数据操作,那么存储节点管理器244可以执行额外处理(诸如数据解码和将检索的数据存储在有效负载数据缓存228中用于数据检索作业),和更新共同控制平面212中的作业记录(例如,从存储节点管理器作业存储区240移除完成的作业并将其添加到作业结果队列242)。
在实施方案中,在数据存储之前,存储节点管理器244根据一个或多个数据编码方案执行数据编码以提供数据冗余、安全性等。这些数据编码方案可以包括加密方案、冗余编码方案,诸如擦除编码、独立磁盘冗余阵列(RAID)编码方案、复制等。同样地,在实施方案中,在数据检索之后,存储节点管理器244执行对应数据解码方案(诸如解密、擦除解码等)以恢复原始数据。
如上文结合存储节点管理器作业存储区240所论述,存储节点管理器244可以实施作业规划和优化(诸如批量处理、操作合并等)以增大效率。在一些实施方案中,在存储节点管理器之间划分作业使得所述分区之间存在很小重叠或不存在重叠。这些实施方案例如通过减小竞争或锁定的概率而促进由多个存储节点管理器进行并行处理。
在各个实施方案中,实施数据平面214以促进数据完整性。例如,处理批量数据流动的存储实体(诸如存储节点管理器244和/或存储节点246)可以证实存储的或检索的数据的摘要、检查错误检测码以确保元数据完整性等。
在各个实施方案中,实施数据平面214以促进归档数据存储系统的可扩展性和可靠度。例如,在一个实施方案中,存储节点管理器244不维持内部状态或维持很小的内部状态使得其可被添加、移除或取代而具有很小不利影响。在一个实施方案中,每个存储装置是能够提供关于存储在其上的数据的信息的自含式且自描述的存储单元。这个信息可以用来在数据丢失的情况下促进数据恢复。此外,在一个实施方案中,每个存储节点246能够收集和报告关于存储节点的信息,包括存储节点的网络位置和连接到一个或多个存储节点注册服务器248和/或存储节点注册服务器存储区250的存储装置的存储信息。在一些实施方案中,存储节点246在系统启动时执行这个自报告且周期性地提供更新信息。在各个实施方案中,这个自报告方法提供动态且最新的目录信息而无需维持可实质上在大量数据对象存储在归档数据系统中时增大的全局名称空间密钥映射或索引。
在实施方案中,数据平面214还可以包括提供存储实体及其存储的数据的目录信息、数据放置服务等的一个或多个存储节点注册服务器248。存储节点注册服务器248可以与提供存储用于存储节点注册服务器248的一个或多个存储节点注册服务器存储区250通信且充当至其的前端服务。在各个实施方案中,存储节点注册服务器存储区250可以由NoSQL数据管理系统(诸如密钥值数据存储区)、RDBMS或任何其它数据存储系统来实施。在一些实施方案中,可以划分存储节点注册服务器存储区250以使能够由多个服务实例进行并行处理。如上文所论述,在实施方案中,存储在存储节点注册服务器存储区250处的信息至少部分地基于由存储节点246自身报告的信息。
在一些实施方案中,存储节点注册服务器248将目录服务提供到例如想要确定联系哪些存储节点246用于数据存储、检索和删除操作的存储节点管理器244。例如,给出由存储节点管理器244提供的卷识别符,存储节点注册服务器248可以基于存储节点注册服务器存储区250中维持的映射提供主控对应于卷识别符的卷成分的存储节点的清单。具体来说,在一个实施方案中,存储节点注册服务器存储区250存储卷识别符或卷成分的清单与主控卷或卷成分的存储节点的端点(诸如域名系统(DNS)名称)之间的映射。
如本文中所使用,“卷”指代可以存储数据对象的数据存储系统内的逻辑存储空间。卷可以通过卷识别符来识别。卷可以驻留在一个物理存储装置(例如,硬盘)或横跨多个存储装置。在后一情况中,卷包括多个卷成分,每个卷成分驻留在不同存储装置上。如本文中所使用,“卷成分”指代物理地存储在存储实体(诸如存储装置)中的卷中的一部分。相同卷的卷成分可以存储在不同存储实体上。在一个实施方案中,当数据通过冗余编码方案(例如,擦除编码方案、RAID、复制)进行编码时,每个编码的数据成分或“分片(shard)”可以存储在不同卷组分中以提供故障容限和隔离。在一些实施方案中,卷成分是通过包括卷识别符和分片时隙识别符的卷成分识别符来识别。如本文中所使用,在冗余编码方案中,分片时隙识别特定数据分片、行或条带。例如,在一个实施方案中,分片时隙对应于擦除编码矩阵行。在一些实施方案中,存储节点注册服务器存储区250还存储关于卷或卷成分的信息,诸如总空间、使用的空间和自由空间、存储的数据对象的数量等。
在一些实施方案中,数据平面214还包括存储分配器256,其用于至少部分地基于由存储节点注册服务器存储区250维持的信息对存储节点上的存储空间(例如,卷)进行分配以存储新数据对象,以满足数据隔离和故障容限约束。在一些实施方案中,存储分配器256需要人工干预。
在一些实施方案中,数据平面214还包括用于检测熵效应和开始反熵校正例程的反熵观察者252。例如,反熵观察者252可以负责监控所有存储实体(诸如存储节点)的活动和状态、调解活数据或实际数据与维持的数据等。在各个实施方案中,熵效应包括但不限于归因于由重复的写入和重写循环产生的数据碎裂、(例如,磁介质的)硬件磨损的性能退化;归因于硬件/软件故障、环境因素、硬件的物理破坏、随机机会或其它原因的数据不可用性和/或数据丢失。反熵观察者252可以检测这些效应且在一些实施方案中可以抢先地和/或反应性地制定反熵校正例程和/或政策。
在实施方案中,反熵观察者252造成存储节点246对连接到存储节点的存储装置执行周期性反熵扫描。反熵观察者252还可以将请求注入作业请求队列236(和随后作业结果队列242)中以收集信息、恢复数据等。在一些实施方案中,反熵观察者252可以例如对下文所描述的冷索引存储区262和存储节点246执行扫描以确保参考完整性。
在实施方案中,由各种服务(诸如存储节点注册服务器248、存储分配器256、反熵观察者252等)使用存储在存储节点注册服务器存储区250处的信息。例如,存储节点注册服务器248可以在数据存储、检索和删除期间提供数据位置和放置服务(例如,到存储节点管理器244)。例如,给出将存储的数据对象的大小和由存储节点注册服务器存储区250维持的信息,存储节点注册服务器248可以确定将数据对象存储到何处(例如,卷)且提供可以用来生成与数据对象相关的数据对象识别符的数据对象存储位置的指示。作为另一实例,在实施方案中,存储分配器256使用存储在存储节点注册服务器存储区250中的信息来在具体存储节点中创建并放置新卷的卷成分以满足隔离和故障容限约束。作为又一实例,在实施方案中,反熵观察者252使用存储在存储节点注册服务器存储区250中的信息来检测熵效应,诸如数据丢失、硬件故障等。
在一些实施方案中,数据平面214还包括用来追踪存储系统中的孤立数据的孤立数据清除数据存储区254。如本文中所使用,孤立数据是不被任何外部实体参考的存储数据对象。在各个实施方案中,孤立数据清除数据存储区254可以由NoSQL数据管理系统(诸如密钥值数据存储区)、RDBMS或任何其它数据存储系统来实施。在一些实施方案中,存储节点注册服务器248将对象放置信息存储在孤立数据清除数据存储区254中。随后,可以例如由反熵观察者252比较存储在孤立数据清除数据存储区254中的信息与维持在元数据平面216中的信息。在一些实施方案中,如果检测到孤立数据,那么将请求插入共同控制平面212中以删除孤立数据。
现参考图2中所示的元数据平面216。在各个实施方案中,元数据平面216出于目录和计帐目的提供关于存储在系统中的数据对象的信息,以满足客户元数据查询等。在所示实施方案中,元数据平面216包括基于来自共同控制平面212中的作业结果队列242的条目存储关于执行的事务的信息的元数据管理器作业存储区258。在各个实施方案中,元数据管理器作业存储区258可以由NoSQL数据管理系统(诸如密钥值数据存储区)、RDBMS或任何其它数据存储系统来实施。在一些实施方案中,例如基于逻辑数据容器划分和细化划分元数据管理器作业存储区258以促进由多个服务实例(诸如元数据管理器260)进行并行处理。
在说明性实施方案中,元数据平面216还包括用于基于元数据管理器作业存储区258中的记录生成数据对象的冷索引(例如,存储在冷索引存储区262中)的一个或多个元数据管理器260。如本文中所使用,“冷”索引指代很少更新的索引。在各个实施方案中,维持冷索引以降低成本开销。在一些实施方案中,多个元数据管理器260可以周期性地并行读取和处理来自元数据管理器作业存储区258中的不同分区的记录并将结果存储在冷索引存储区262中。
在一些实施方案中,冷索引存储区262可以由可靠且耐久的数据存储服务来实施。在一些实施方案中,冷索引存储区262被配置来处理由客户开始的元数据请求。例如,客户可以发布列举给出逻辑数据容器中容纳的所有数据对象的请求。响应于这个请求,冷索引存储区262可以基于由冷索引262维持的信息提供逻辑数据容器中容纳的所有数据对象的识别符的清单。在一些实施方案中,操作可能要花相对较长的时间周期且当作业完成时可以对客户提供用来检索结果的作业识别符。在其它实施方案中,冷索引存储区262被配置来出于库存、计帐和计费目的处理来自其它服务(例如来自前端208)的查询。
在一些实施方案中,元数据平面216还可以包括存储关于逻辑数据容器的信息(诸如容器所有权、政策、使用等)的容器元数据存储区264。这个信息可以例如被前端208服务用来执行授权、计量、计帐等。在各个实施方案中,容器元数据存储区264可以由NoSQL数据管理系统(诸如密钥值数据存储区)、RDBMS或任何其它数据存储系统来实施。
如本文中所描述,在各个实施方案中,本文中所描述的归档数据存储系统206被实施成高效且可扩展。例如,在实施方案中,批量处理和请求合并在各个阶段(例如,前端请求处理、控制平面作业请求处理、数据平面数据请求处理)被用来改进效率。对于另一实例,在实施方案中,划分元数据(诸如作业、请求等)的处理以促进由多个服务实例进行分区的并行处理。
在实施方案中,存储在归档数据存储系统中的数据元素(诸如下文所描述的数据成分、卷)是自描述以免需要全局索引数据结构。例如,在实施方案中,存储在系统中的数据对象可以通过编码存储位置信息的数据对象识别符来寻址。对于另一实例,在实施方案中,卷可以存储关于哪些数据对象存储在卷中的信息,且存储这些卷的存储节点和装置可以共同地报告其库存和硬件信息以提供存储在系统中的数据的全局观点(诸如由存储在存储节点注册服务器存储区250中的信息证明)。在这个实施方案中,全局观点仅出于效率目的而提供且无需定位存储在系统中的数据。
在各个实施方案中,实施本文中所描述的归档数据存储系统以改进数据可靠度和耐久度。例如,在实施方案中,将数据对象冗余编码成多个数据成分并跨不同数据存储实体进行存储以提供故障容限。对于另一实例,在实施方案中,数据元素具有多级完整性检查。在实施方案中,父/子关系始终具有用来确保完全参考完整性的额外信息。例如,在实施方案中,批量数据传输和存储路径是通过在传输之前使发起者预先计算数据摘要且随后将摘要随数据供应到接收器而受保护。数据传输的接收器负责重新计算、比较且接着向发送器确认包括重新计算的摘要。这些数据完整性检查可以例如由上文所描述的前端服务、瞬态数据存储服务、数据平面存储实体等来实施。
图3示出根据至少一个实施方案的可以连接归档数据存储系统的组件的互连网络300。特定来说,所示实例示出数据平面组件如何连接到互连网络300。在一些实施方案中,互连网络300可以包括胖树互连网络,其中链路带宽朝向树根越来越高或“越来越胖”。在所示实例中,数据平面包括一个或多个数据中心301。每个数据中心301可以包括一个或多个存储节点管理器服务器机柜302,其中每个服务器机柜主控共同地提供诸如结合图2所描述的存储节点管理器的功能的一个或多个服务器。在其它实施方案中,每个存储节点管理器服务器机柜可以主控一个以上存储节点管理器。可以基于诸如成本、可扩展性、冗余和性能要求、硬件和软件资源等因素确定配置参数,诸如每个机柜的存储节点管理器的数量、存储节点管理器机柜的数量等。
每个存储节点管理器服务器机柜302可以具有到用来连接到互连网络300的互连件308的存储节点管理器机柜连接314。在一些实施方案中,使用可以包括柜顶以太网交换机或任何其它类型的网络交换机的网络交换机303实施连接314。在各个实施方案中,互连件308用来实现高带宽和低延时批量数据传送。例如,互连件可以包括克洛斯(Clos)网络、胖树互连件、异步传送模式(ATM)网络、快速或千兆以太网等。
在各个实施方案中,存储节点管理器机柜连接314的带宽可以被配置来实现定位在相同或不同数据中心内的存储节点管理器与存储节点之间的高带宽和低延时通信。例如,在实施方案中,存储节点管理器机柜连接314具有每秒10千兆位(Gbps)的带宽。
在一些实施方案中,每个数据中心301还可以包括一个或多个存储节点服务器机柜304,其中每个服务器机柜主控共同地提供诸如结合图2中所描述的多个存储节点的功能的一个或多个服务器。可以基于诸如成本、可扩展性、冗余和性能要求、硬件和软件资源等因素确定配置参数,诸如每个机柜的存储节点的数量、存储节点机柜的数量、存储节点管理器与存储节点之间的比等。例如,在一个实施方案中,每个存储节点服务器机柜存在3个存储节点,每个数据中心存在30-80个机柜且存储节点/存储节点管理器的比是10:1。
每个存储节点服务器机柜304可以具有到用来连接到互连网络300的互连网络交换机308的存储节点机柜连接316。在一些实施方案中,使用可以包括柜顶以太网交换机或任何其它类型的网络交换机的网络交换机305实施连接316。在各个实施方案中,存储节点机柜连接316的带宽可以被配置来实现定位在相同或不同数据中心内的存储节点管理器与存储节点之间的高带宽和低延时通信。在一些实施方案中,存储节点机柜连接316具有高于存储节点管理器机柜连接314的带宽。例如,在实施方案中,存储节点机柜连接316具有20Gbps的带宽,而存储节点管理器机柜连接314具有10Gpbs的带宽。
在一些实施方案中,数据中心301(包括存储节点管理器和存储节点)经由连接310与其它计算资源服务306(诸如如结合图2所描述的有效负载数据缓存228、存储节点管理器作业存储区240、存储节点注册服务器248、存储节点注册服务器存储区350、孤立数据清除数据存储区254、元数据管理器作业存储区258等)进行通信。
在一些实施方案中,一个或多个数据中心301可以经由数据中心间连接312连接。在一些实施方案中,连接310和312可以被配置来达成硬件资源的有效操作和使用。例如,在实施方案中,每个数据中心的连接310具有30-100Gbps的带宽且数据中心间连接312具有100-250Gbps的带宽。
图4示出根据至少一个实施方案的可以连接归档数据存储系统的组件的互连网络400。特定来说,所示实例示出非数据平面组件如何连接到互连网络300。如所示,可以由一个或多个前端服务器机柜402主控诸如结合图2所描述的前端服务。例如,每个前端服务器机柜402可以主控一个或多个网页服务器。前端服务器机柜402可以经由网络交换机408连接到互连网络400。在一个实施方案中,配置参数(诸如前端服务的数量、每个机柜的服务的数量、前端服务器机柜连接314的带宽等)可以大致上对应于如结合图3所描述的存储节点管理器的配置参数。
在一些实施方案中,可以由一个或多个服务器机柜404主控如结合图2所描述的控制平面服务和元数据平面服务。这些服务可以包括作业追踪器230、元数据管理器260、清除代理232、作业请求平衡器238和其它服务。在一些实施方案中,这些服务包括不处理频繁批量数据传送的服务。最后,本文中所描述的组件可以经由连接410与其它计算资源服务406(诸如如结合图2所描述的有效负载数据缓存228、作业追踪器存储区232、元数据管理器作业存储区258等)进行通信。
图5示出根据至少一个实施方案的用于存储数据的示例性过程500。过程500中的一些或所有(或本文中所描述的任何其它过程或其变化和/或组合)可以在配置有可执行指令的一个或多个计算系统的控制下执行且可以实施为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、硬件或其组合。代码可以例如依计算机程序(包括可由一个或多个处理器执行的多个指令)的形式存储在计算机可读存储介质中。计算机可读存储介质可以是非暂时性的。在实施方案中,如结合图2所描述的归档数据存储系统206的一个或多个组件可以执行过程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的服务分配一个或多个物理存储装置上的新存储空间(例如,卷)。
在实施方案中,可以生成用来表示上文所确定的存储位置的存储位置识别符。这个存储位置识别符可以包括例如卷参考对象,其包括卷识别符成分和数据对象识别符成分。卷参考成分可以识别存储数据的卷且数据对象识别符成分可以识别数据存储在卷中的何处。大体来说,存储位置识别符可以包括识别组织数据的逻辑或物理数据存储拓扑(诸如阶层)内的各种级的成分。在一些实施方案中,存储位置识别符可以指明实际有效负载数据存储到何处或对存储数据之处的参考的链。
在实施方案中,数据对象识别符编码将存储的数据(诸如有效负载数据)中的至少一部分的摘要(例如,散列)。在一些实施方案中,摘要可以至少部分地基于客户提供的摘要。在其它实施方案中,可以基于有效负载数据从头计算摘要。
在实施方案中,过程500包括创建510存储作业用于存留数据到长期数据存储区和调度512存储作业用于执行。在如结合图2所描述的环境200中,步骤508、510和512可以至少部分地由如上文所描述的直接I/O控制平面210和共同控制平面212的组件来实施。具体来说,在实施方案中,作业追踪器230创建作业记录并将作业记录存储在作业追踪器存储区232中。如上文所描述,作业追踪器230可以执行批量处理以减少对作业追踪器存储区232进行的事务的总次数。此外,可以划分或依其它方式优化作业追踪器存储区232以促进并行处理、清除操作等。如上文所描述的作业记录可以包括作业相关信息,诸如客户帐户识别符、作业识别符、存储位置识别符、对存储在有效负载数据缓存228中的数据的参考、作业状态、作业创建和/或截止时间等。在一些实施方案中,可以在生成和/或提供数据对象识别符之前创建存储作业。例如,代替数据对象识别符或除数据对象识别符以外,还可以响应于存储请求而在上述步骤508处提供存储作业识别符
在实施方案中,调度512存储作业用于执行包括执行作业规划和优化,诸如如结合图2的共同控制平面212所描述的基于队列的负载均衡或平衡、作业划分等。例如,在实施方案中,作业请求平衡器238根据调度算法将作业项目从作业请求队列236传送到存储节点管理器作业存储区240以将峰值抑制到来自I/O控制平面210的平均负载水平(作业)且将可管理工作负载递送到数据平面214。作为另一实例,可以划分存储节点管理器作业存储区240以促进由多个工作者(诸如存储节点管理器244)并行处理作业。作为又一实例,存储节点管理器作业存储区240可以提供询问、分类和其它功能以促进批量处理和其它作业优化。
在实施方案中,过程500包括例如由存储节点管理244选择514来自如结合图2所描述的存储节点管理器作业存储区240的存储作业用于执行。存储作业可以与其它作业被选择514用于批量处理或因为上文所描述的作业规划和优化而依其它方式被选择。
在实施方案中,过程500包括从分级存储区(诸如上文结合图2所描述的有效负载数据缓存228)获得516数据。在一些实施方案中,数据完整性可以例如通过验证大小、摘要、错误检测码等进行检查。
在实施方案中,过程500包括获得518一个或多个数据编码方案,诸如加密方案、冗余编码方案,诸如擦除编码、独立磁盘冗余阵列(RAID)编码方案、复制等。在一些实施方案中,这些编码方案演变为适于不同要求。例如,加密密钥可以周期性地旋转且擦除编码方案的伸展因子可以随时间调整到不同硬件配置、冗余要求等。
在实施方案中,过程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中的每个将数据成分存储在给出存储位置处。存储节点246中的每个在从存储节点管理器244接收存储数据成分的存储请求之后可以造成数据成分存储在连接的存储装置中。在一些实施方案中,数据对象识别符中的至少一部分依编码的或未编码的形式与数据成分中的所有或一些存储在一起。例如,数据对象识别符可以存储在每个数据成分的标头中和/或存储在卷成分中存储的卷成分索引中。在一些实施方案中,存储节点246可以执行批量处理或其它优化以处理来自存储节点管理器244的请求。
在实施方案中,存储节点246将指示是否成功地存储数据的确认发送到请求存储节点管理器244。在一些实施方案中,当出于某个原因请求无法完成时,存储节点246返回错误消息。例如,如果存储节点接收存储到相同存储位置的两个请求,那么一个或两个请求可能失败。在实施方案中,存储节点246在存储数据之前执行证实检查且如果证实检查失败,那么返回错误。例如,数据完整性可以通过检查错误检测码或摘要进行验证。作为另一实例,存储节点246可以例如基于卷索引验证由存储请求识别的卷被存储节点存储和/或卷具有用来存储数据成分的足够空间。
在一些实施方案中,当存储节点管理器244从请求的存储节点246的至少一个子集(存储法定集合)接收肯定确认时,认为数据存储已成功。在一些实施方案中,存储节点管理器244可以等到接收法定集合确认为止才移除重试作业必需的状态。这个状态信息可以包括未接收其确认的编码数据成分。在其它实施方案中,为改进吞吐量,存储节点管理器244可以在接收确认的法定集合之前移除重试作业必需的状态。
在实施方案中,过程500包括更新526元数据信息,包括例如由数据平面214维持的元数据(诸如用于存储装置的索引和存储空间信息、存储在存储节点注册服务器存储区250处的映射信息等)、由控制平面210和212维持的元数据(诸如作业相关信息)、由元数据平面216维持的元数据(诸如冷索引)等。在各个实施方案中,此类元数据信息中的一些可以经由批量处理和/或定期地更新以降低性能和成本影响。例如,在数据平面214中,可以更新由存储节点注册服务器存储区250维持的信息以提供新存储的数据的卷识别符和存储数据成分的存储节点246的额外映射,如果这个映射不存在的话。对于另一实例,可以更新存储装置的卷索引以反映新添加的数据成分。
在共同控制平面212中,完成的作业的作业条目可以从存储节点管理器作业存储区240移除并添加到作业结果队列242,如结合图2所描述。在直接I/O控制平面210中,作业追踪器存储区232中的作业记录的状态可以例如通过监控作业结果队列242的作业追踪器230来更新。在各个实施方案中,无法完成的作业可以重试多次。例如,在实施方案中,可以创建新作业以将数据存储在不同位置处。作为另一实例,可以更新既有作业记录(例如,在存储节点管理器作业存储区240、作业追踪器存储区232等中)以促进相同作业的重试。
在元数据平面216中,可以更新元数据以反映新存储的数据。例如,完成的作业可以从作业结果队列242推送到元数据管理器作业存储区258且由元数据管理器260进行批量处理以生成诸如存储在冷索引存储区262中的更新索引。对于另一实例,出于计量和计帐目的,可以更新客户信息以反映变更。
最后,在一些实施方案中,一旦成功地完成存储作业,那么可以例如由如结合图2所描述的清除代理234移除与存储作业相关的作业记录、有效负载数据和其它数据。在一些实施方案中,这个移除可以通过批量处理、并行处理等来处理。
图6示出根据至少一个实施方案的用于检索数据的示例性过程500。在实施方案中,如结合图2所描述的归档数据存储系统206的一个或多个组件共同地执行过程600。
在实施方案中,过程600包括接收602检索通过上文所描述的过程500存储的数据的数据检索请求。这个数据检索请求可以包括诸如通过上文所描述的过程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包括例如由存储节点管理器244选择612来自如结合图2所描述的存储节点管理器作业存储区240的数据检索作业用于执行。检索作业可以与其它作业一起被选择612用于批量处理或因为上文所描述的作业规划和优化而依其它方式被选择。
在实施方案中,过程600包括确定614存储通过存储过程(诸如上文所描述的过程500)生成的编码数据成分的存储实体。在实施方案中,存储节点管理器244可以以与结合上述过程500的步骤522所论述相似的方式确定多个存储节点246以检索编码数据成分。例如,这个确定可以基于负载平衡、电力节省、效率和其它考虑因素。
在实施方案中,过程600包括确定616可以用来解码检索的数据的一个或多个数据解码方案。通常,这些解码方案对应于在先前存储原始数据时应用于原始数据的编码方案。例如,这些解码方案可以包括使用加密密钥解密、擦除解码等。
在实施方案中,过程600包括造成618从在过程600的步骤614中确定的存储实体检索编码数据成分中的至少一些。例如,在由图2所示的环境200中,负责数据检索作业的存储节点管理器244可以请求上述确定的存储节点246的子集以检索其对应数据成分。在一些实施方案中,需要最小数量的编码数据成分来重建原始数据,其中所述数量可以至少部分地基于用来编码数据(例如,擦除编码的伸展因子)的数据冗余方案来确定。在这些实施方案中,可以选择存储节点的子集使得检索的编码数据成分不小于最小数量。
在从存储节点管理器244接收检索数据成分的请求之后,存储节点246的子集中的每个存储节点可以例如通过检查存储位置识别符(其是数据对象识别符的部件)的完整性、验证存储节点确实保存请求的数据成分等而证实请求。在成功证实之后,存储节点可以至少部分地基于存储位置识别符定位数据成分。例如,如上文所描述,存储位置识别符可以包括包括卷识别符成分和数据对象识别符成分的卷参考对象,其中卷参考成分用来识别存储数据的卷且数据对象识别符成分可以识别数据存储在卷中的何处。在实施方案中,存储节点例如从连接的数据存储装置读取数据成分且将检索的数据成分发送到请求检索的存储节点管理器。在一些实施方案中,数据完整性是例如通过验证数据成分识别符或其一部分与由与检索作业相关的数据成分识别符所指示的相同而进行检查。在一些实施方案中,存储节点可以结合数据成分检索执行批量处理或其它作业优化。
在实施方案中,过程600包括使用在过程600的步骤616处确定的一个或多个数据解码方案解码620至少最小数量的检索的编码数据成分。例如,在一个实施方案中,可以擦除解码且接着解密检索的数据成分。在一些实施方案中,例如使用数据对象识别符中编码的有效负载完整性证实信息(例如,大小、时间戳记、摘要)对重建的数据执行数据完整性检查。在一些情况中,检索作业可能由于检索的数据成分小于最小数量、数据完整性检查失败等而失败。在这些情况中,可以依与结合图5所描述相似的方式重试检索作业。在一些实施方案中,原始数据包括多个数据部件且编码并存储每个部件。在这些实施方案中,在检索期间,可以检索和解码(例如,擦除解码和解密)每个数据部件的编码数据成分以形成原始部分且可以组合解码的部件以形成原始数据。
在实施方案中,过程600包括将重建的数据存储在分级存储区(诸如结合图2所描述的有效负载数据缓存228)中。在一些实施方案中,存储622在分级存储区中的数据可以供客户下载达一段时间周期或供客户无限期地下载。在实施方案中,在数据存储在分级存储区中之前,可以(例如,使用摘要)检查数据完整性。
在实施方案中,过程600包括将检索作业完成的通知提供624到检索请求的请求者或者依其它方式被配置来接收这个通知的另一个或多个实体。可以个别地或成批地提供这些通知。在其它实施方案中,可以在例如从客户轮询请求之后提供检索作业状态。
图7示出根据至少一个实施方案的用于删除数据的示例性过程700。在实施方案中,如结合图2所描述的归档数据存储系统206的一个或多个组件共同地执行过程700。
在实施方案中,过程700包括接收702删除诸如通过上文所描述的过程500存储的数据的数据删除请求。这个数据检索请求可以包括诸如通过上文所描述的过程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包括例如由存储节点管理器244选择712来自如结合图2所描述的存储节点管理器作业存储区240的数据删除作业用于执行。删除作业可以与其它作业一起被选择712用于批量处理或因为上文所描述的作业规划和优化而依其它方式被选择。
在一些实施方案中,过程700包括确定714存储通过存储过程(诸如上文所描述的过程500)生成的数据成分的数据成分存储实体。在实施方案中,存储节点管理器244可以依与结合上文所描述的过程600的步骤614所论述类似的方式确定多个存储节点246以检索编码数据成分。
在一些实施方案中,过程700包括造成716删除数据成分中的至少一些。例如,在由图2所示的环境200中,负责数据删除作业的存储节点管理器244可以识别存储将删除的数据的数据成分的存储节点的集合且请求那些存储节点的至少一个子集删除其各自数据成分。在从存储节点管理器244接收删除数据成分的请求之后,存储节点246的子集中的每个存储节点可以例如通过检查存储位置识别符(其是数据对象识别符的部件)的完整性、验证存储节点确实保存请求的数据成分等而证实请求。在成功证实之后,存储节点可以从连接的存储装置删除数据成分并将指示操作是否成功的确认发送到存储节点管理器244。在实施方案中,可以成批地执行多个数据删除作业使得可以整体地删除紧密定位在一起的数据对象。在一些实施方案中,当存储节点管理器244从存储节点246的至少一个子集接收肯定确认时,认为数据删除已成功。子集的大小可以被配置来确保以后无法从未删除的数据成分重建数据。可以依与分别结合过程500和过程600所描述的数据存储作业和数据检索作业的重试相似的方式重试失败的或未完成的数据删除作业。
在实施方案中,过程700包括更新718元数据信息,诸如结合过程500的步骤526所描述的信息。例如,执行删除操作的存储节点可以更新存储信息,包括索引、自由空间信息等。在实施方案中,存储节点可以对存储节点注册服务器或存储节点注册服务器存储区提供更新。在各个实施方案中,此类元数据信息中的一些可以经由批量处理和/或定期地更新以降低性能和成本影响。
如上文所述,本公开的实施方案利用提供优于用于数据存储管理常规API的大量优势的API。图8-11是可以根据本公开的各个实施方案进行的API调用和可以提供的响应的图形表示。调用可以由上文所描述的客户102、202进行,且可以由数据存储服务(诸如上文所描述的归档数据存储服务)作出响应。响应可以使用本文中所提及的各种协议(或其它合适协议)进行电传输且可以例如从上文结合图2所描述的前端208传输。此外,虽然图8-11中的每个示出API调用和响应中可以包括的信息的特定集合,但变化是在本公开的范围内。例如,所示API调用中的任一个可以具有更少或更多信息成分,且如下文所述,许多成分可以取决于具体情况。例如,在一些实施方案中,并非使用相同API组件进行的所有API调用均可以包括相同信息成分。一个参数的非琐碎信息的类型和/或存在可以例如取决于另一参数值。响应成分的非琐碎信息的类型和/或存在可以取决于另一参数和/或触发响应的API调用的参数的值。
转向具体图,图8示出诸如上文所描述的PUT API调用的图形表示。如图8中所示,PUT API调用可以指定调用的一个或多个参数。在这个实例中,参数包括帐户识别符、目的地、数据对象长度、描述、有效负载散列和有效负载树散列。还可以诸如在REST请求主体中提供有效负载(例如,将存储的数据)。举例来说,有效负载可以是数据对象的一部分或全部。如果仅是数据对象的一部分,那么有效负载可以依与下载其的方式相似的方式上传。此外,如果仅是数据对象的一部分(或其它数据集合),那么PUT API调用可以包括有效负载的树散列和完整数据对象的树散列两者,使得可以在传输之后验证有效负载且可以在已传输所有其部件之后验证数据对象。
帐户识别符可以是与数据存储服务(或管理数据存储服务的组织)往来的帐户的识别符。数据存储服务可以出于计帐、授权、政策强制执行等目的利用帐户识别符。目的地可以是编码将存储的数据对象的逻辑位置的信息。例如,诸如上文结合图2-7所描述,当结合归档数据存储服务使用API时,目的地可以编码逻辑数据容器识别符。接着,归档数据存储系统可以处理对应作业使得上传的数据对象与指定的逻辑数据容器识别符相关。
数据对象长度可以是因为PUT API调用将存储的数据对象的大小。数据对象长度可以依字节指定,但可以使用指定数据对象大小的其它方式。描述可以是允许客户的用户(或计算机系统)提供关于上传数据对象的信息的可选参数。描述可以包括例如被客户用来识别数据对象的识别符,其可以与由存储数据对象的数据存储服务使用的识别符不同。在一些实施方案中,描述可为客户期望的任何信息。客户可以例如包括依由客户计算机系统辨识以使客户计算机系统能够随后根据客户需要处理描述中的信息的格式的信息。
有效负载散列可以是至少部分地基于使用PUT API调用将上传的数据对象计算的值。相似地,有效负载树散列可以是将上传的数据对象的树散列。有效负载散列和/或有效负载树散列可以被数据存储服务用来在有效负载上传时确定有效负载是否正确上传。如果有效负载散列和/或有效负载树散列中的一个和/或两个与客户所提供的不匹配,那么客户可以再次尝试上传有效负载。数据对象的树散列可以由客户和数据存储服务两者通过将数据对象划分成预定义大小的部分(例如,1MB(其中当数据对象具有不等于预定义大小的整数倍的大小时,一个部分可能是小于预定义大小的不同大小))来计算。树散列可以例如使用常规技术来计算。树散列可以是树散列中的顶级值、散列树中的数据结构编码散列、散列树的叶和/或任何其它合适信息。
在一些实施方案中,数据对象可以依部件上传。因此,在实施方案中,PUT API调用可以包括额外参数,诸如部件大小。在实施方案中,数据存储服务被配置来仅接受等于预定义大小(例如,1MB)或其整数倍的部件大小(对于非终端部件)。依此方式,达成的技术优势在于树散列将一致,而不管数据对象是否依预定义大小或其整数倍的部件上传。
如所述,图8还示出对PUT API调用的响应。在这个说明性实例中,响应包括位置、数据对象识别符和有效负载树散列。在一些实施方案中,位置可以是数据对象的相对URI路径。数据对象识别符可以是诸如上文所描述的数据对象的识别符。如上文所述,在数据存储服务持久存储数据对象之前,可以在响应中从数据存储服务提供数据对象识别符,从而从客户角度来看使响应同步,但从实施方式角度来看是异步的。树散列可以是由存储服务计算的数据对象的树散列。接收响应的客户可以例如比较树散列与独立计算的树散列以确保数据对象正确上传。在多部件上传数据对象的情况中,响应可以包括使用提示响应的调用上传的特定部件的有效负载的树散列或其它散列。
如所论述,本公开的各个实施方案利用作业概念。因此,根据本公开的各个实施方案,客户能够利用API来开始各种类型的作业。图9示出开始作业的API调用的图形表示的说明性实例。如所示,开始作业API调用包括一个或多个参数。在这个实例中,参数是数据对象识别符、描述、格式、消息主题和作业类型。数据对象识别符可以是与作业相关的数据对象的识别符且可以是诸如上文结合图2-7所描述的识别符。描述可以是允许客户提供关于将由API调用开始的作业的信息的可选参数,诸如上文所描述的PUT API调用中的描述参数。
在实施方案中,消息主题参数是指定潜在未来通知的主题的信息。例如,主题可以对应于已从持久存储装置检索且准备好供客户下载的数据对象。在实施方案中,数据存储服务或另一服务与消息服务进行通信。消息服务可以允许配置客户计算机系统可同意的主题。主题可以对应于一个或多个事件,诸如数据对象变得可供下载或库存准备好检索。在开始作业API调用包括消息主题的实施方案中,数据存储服务可以在适当时间通知消息服务,消息服务转而向任何订阅者通知消息主题。来自消息服务的通知可以采取可以由订阅者选择的任何合适形式,诸如电子邮件、短信服务消息和/或任何合适通信方法。存储服务可以在任何适当时间通知消息服务,诸如当作业完成、作业失败、结合作业满足一个或多个客户定义准则或其它准则时等。
在实施方案中,格式参数是指定作业输出的格式的参数。格式参数仅可以用于某些作业类型。举例来说,如果作业将获得逻辑数据容器中的数据对象的清单,那么格式参数可以指定清单的格式,诸如逗号分隔值(CSV)或JavaScript对象表示法(JSON)。格式可以选自预定格式集,其中数据存储服务可以提供作业输出。在诸如作业同步完成的一些实施方案中,格式还可以用来指定对开始作业API调用的响应的格式。
如所述,可以存在多种类型的作业。举例来说,数据对象检索可以对应于一种作业类型,而逻辑数据容器的库存的检索和/或生成可以对应于另一作业类型。虽然本文中描述数据对象检索和逻辑数据容器的库存,但本公开的范围不限于这些作业类型。除数据对象检索或逻辑数据容器库存外或者替代数据对象检索或逻辑数据容器库存,还可以指定额外类型。
在实施方案中,当数据存储服务接收开始作业API作业时,所述服务根据API调用中指定的作业类型参数处理所述调用。下文更详细描述实例。
如上文所述,本公开的实施方案允许客户获得未决作业的状态,诸如数据对象检索请求的状态或逻辑数据容器的库存的请求的状态。因此,图10示出用以获得关于未决作业的信息的API调用的说明性实例的图形表示。在实施方案中,描述作业API调用包括作业识别符,其可以是如上文所描述的作业的识别符。响应于根据描述作业API调用作出的请求,数据存储服务可以提供包括一条或多条信息的响应。例如,在图10的说明性实例中,响应可以包括动作、数据对象识别符、数据对象大小、完成状态、完成日期、创建日期、库存大小、作业描述、作业识别符、对应于作业的数据对象(例如,作为作业完成的部件将检索的数据对象)的树散列、消息主题、状态代码、状态消息和/或逻辑数据容器识别符。
动作可是指定作业类型的信息,其中作业类型如上文所描述般。数据对象识别符、数据对象大小、作业描述、作业识别符、树散列、消息主题和/或逻辑数据容器识别符可以如上文所描述般。完成状态包括指示具有作业识别符的作业是否已完成的信息。完成状态可以例如是对应于相关作业是否已完成的布尔(Boolean)值。完成日期可以是编码作业完成的时间(其可以相对于用作通用计时器的时钟)的值。如果完成状态指示作业未完成,那么对描述作业API调用的响应可以不包括完成状态,且通常响应中的信息可以取决于具体情况。与完成日期相似,创建日期可以编码创建相关作业的时间,其可以紧密地对应于进行描述作业API调用时的时间。状态代码可以与完成状态相似,且因此可以指示相关作业的状态。在实施方案中,状态代码编码作业是在进行中、还是已完成或是已失败。其它状态也在本公开的范围内。与完成状态和/或状态代码相似,状态消息可以提供关于相关作业状态的信息。状态消息可以例如是预定义字符串,其值取决于具体情况,例如作业是在进行中、还是已失败或是具有另一状态。状态消息可以提供为人所理解的片语,诸如“作业已失败”。在一些实施方案中,状态消息还可以提供多于完成状态和/或状态代码的信息。作为一个实例,状态消息可以包括编码未决作业将何时完成的估计的信息、指示多少作业已完成的信息和/或涉及作业状态的其它信息。
如所述,对描述作业API调用的响应中的值可以取决于具体情况。例如,如果一些信息不涉及特定作业,那么所述信息可以省略或具有空值。举例来说,当作业类型是一种库存检索时,响应可以包括库存大小。这个响应可以不包括数据对象大小。相似地,对数据对象检索作业的描述作业API调用的响应可以包括对应数据对象的大小,而非任何库存的大小。其它实例和变化被视为在本公开的范围内。
如所论述,本公开的各个实施方案合并异步请求处理以便达成技术优势。因此,在实施方案中,数据存储服务的API允许客户依异步方式获得作业输出。图11例如示出获得作业输出的API调用(即,GET作业输出API调用)的说明性实例的图形表示。如图11中所示,GET作业输出API调用可以包括一个或多个参数。如所示,GET作业输出API调用包括诸如上文所描述的作业识别符和范围。因为数据对象可以非常大(例如,依千兆字节和/或太字节的级),所以通过网络将数据对象从存储服务下载到客户可能是困难的。使用较大下载,下载不成功的机率可能较大,且因此下载可能必须从头开始执行。取决于带宽,重新开始下载可以在获得数据时造成明显延迟。
因此,在实施方案中,范围参数允许客户依部件下载数据对象(或其它信息,诸如库存)。例如,可使用多个API调用来依部件下载数据对象,而非使用GET作业输出API调用来请求完整数据对象。因此,GET作业输出API调用中的范围可以指定将下载部件的字节的范围。在一些实施方案中,客户可以指定任何范围值。此外,指定范围的缺失可以向数据存储系统指示下载完整对象(即,非依部件)的请求。在其它实施方案中,数据存储服务要求GET作业输出API调用仅指定将成功处理的调用的某些范围,即,针对数据存储服务以回应数据的请求范围。在实施方案中,数据存储系统要求字节范围具有基本大小(例如,1MB)的整数幂(例如,2N,其中N是整数)倍的整数的长度。例如,数据存储服务可以要求范围具有2N*1MB的长度。这些约束提供技术优势。例如,使用以1MB为基数的2的倍数的实例,二叉散列树可以通过将数据划分成1MB分区并从分区建立树散列来计算。依此方式,不管是使用1MB分区、还是2MB分区或是4MB分区等执行数据操作,但散列树的顶级将相同。因此,如果客户依1MB分区上传数据(其中最后部分数据可能小于1MB数据),但随后依8MB分区下载数据(其中最后部分数据可能小于8MB),那么用来在操作(例如,通过网络传送)之后验证数据的顶级散列将相同。
转向图11中所示的响应,可以提供多种类型的信息,其中的一些可以取决于具体情况(即,取决于请求输出所针对的作业的类型)。在这个实例中,对GET作业输出API调用的响应可以具有范围、类型、响应树散列、描述、数据对象识别符、数据对象清单、创建日期、库存日期、数据对象树散列、大小和逻辑数据容器识别符、和有效负载(例如,下载的数据对象或其部件、逻辑数据容器的库存和通常可以根据各个实施方案提供为有效负载的部件的任何信息)。假设正确响应(例如,无故障或错误),那么范围可以等于提示响应的GET作业输出API调用的范围。类型可以指定诸如上文所描述的作业的类型。响应树散列可以是响应有效负载的树散列,诸如依部件下载时的数据对象或数据对象的一部分。描述、数据对象识别符、数据对象清单、创建日期、库存日期、数据对象树散列、大小和逻辑数据容器识别符可以如上文所描述般。例如,库存日期可以是生成库存的日期且大小可以是请求的数据对象的大小。
图12示出信息流程图的说明性实例,其示出可以根据各个实施方案使用存储服务API的方式。特定来说,图12示出可以根据实施方案从数据存储服务获得数据的方式。如所示,存储服务的客户端(例如,诸如上文所描述的客户)提交电子请求以诸如通过使用具有适当参数(诸如将检索的数据对象的数据对象识别符)的开始作业API调用来开始检索作业。虽然出于说明目的未如此示出,但检索作业可以指定数据对象部件的字节范围。
响应于检索作业开始,数据存储服务可以向客户端提供识别检索作业的作业识别符。此外,数据存储服务可以将数据对象请求提交到子系统以从持久存储装置检索数据对象,诸如上文结合图2-7所描述。如所示,在将数据对象提供到客户端之前提供作业识别符。此外,应注意,作业识别符可以在数据对象请求提交到子系统之前、在数据对象请求提交到子系统之后或与之同时提供到客户端。此外,虽然出于说明性目的在图12中(以及在图13-14中)单独绘示,但持久数据存储装置可以是数据存储服务的部件。此外,持久数据存储装置可以是单独数据存储装置(例如,由第三方相对于数据存储服务主控),且在一些实施方案中,履行对信息(例如,数据对象或库存)的请求可以涉及从本地源以及第三方源两者获得信息。
在这个所示实例中,客户端接收作业识别符且使用作业识别符以向数据存储服务轮询作业状态。例如,如所示,客户端可以提交指定作业识别符的描述作业API调用且可以生成适当响应并将其传输到客户端,诸如上文所描述。客户端可以提交这些描述作业API调用直到返回指示诸如在数据存储服务已从持久数据存储装置检索数据对象并将数据对象移动到数据对象可从其传输到客户端的存储装置时作业已完成的状态为止。当作业已完成时,客户端可以提交指定作业识别符的GET作业输出API调用,且作为响应,数据存储服务可以提供数据对象。虽然未如此示出,但客户端还可以提交具有数据对象部件的字节范围的GET作业输出API调用,且因此作为响应数据存储服务可以提供部件。
图13示出信息流程图的说明性实例,其示出可以根据各个实施方案使用存储服务API的方式。特定来说,图13示出可以根据实施方案在接收通知之后从数据存储服务获得数据的方式。如所示,存储服务的客户端(例如,诸如上文所描述的客户)提交电子请求以诸如通过使用具有适当参数(诸如将检索的数据对象的数据对象识别符)的开始作业API调用来开始检索作业。虽然出于说明目的未如此示出,但检索作业可以指定数据对象部件的字节范围。
响应于检索作业开始,数据存储服务可以向客户端提供识别检索作业的作业识别符。此外,数据存储服务可以将数据对象请求提交到子系统以从持久存储装置检索数据对象,诸如上文结合图2-7所描述。如图13中所示,在将数据对象提供到客户端之前提供作业识别符。此外,应注意,作业识别符可以在数据对象请求提交到子系统之前、在数据对象请求提交到子系统之后或与之同时提供到客户端。
在这个实例中,客户端已使用API来指定应发送通知(例如,到客户端或由客户端指定的另一位置),而不是轮询数据存储服务。客户端可以已经在开始作业API调用中指定消息主题,诸如上文所描述。在实施方案中,一旦数据存储服务从持久数据存储装置接收请求的数据对象,那么数据存储服务(或与数据存储服务分离但结合数据存储服务工作的消息传递服务)将作业完成通知发送到客户端(和/或由客户端指定的位置)。接着在接收作业完成通知之后,客户端可以如上文所描述般提交指定作业识别符的GET作业输出API调用,以接收数据对象(或其部件,若GET作业输出API调用指定部件范围)。客户端可以例如被配置来处理通知,且因此自动提交GET作业输出API调用。客户端还可以响应于用户指令而手动(即,在用户输入上触发)提交GET作业输出API调用。
图14示出信息流程图的说明性实例,其示出可以根据各个实施方案使用存储服务API的方式。特定来说,图14示出可以根据实施方案在接收通知之后从数据存储服务获得数据的方式。在这个特定实例中,诸如图12-13中,客户端通过在API调用中指定逻辑数据容器库存开始数据对象库存作业。作为响应,诸如上文所描述,生成作业识别符并将其从数据存储服务传输到客户端。此外,由数据存储服务将库存请求提交到数据存储服务的子系统。在实施方案中,接着数据存储服务处理库存请求,且作为批量处理的部件,获得由逻辑数据容器识别符识别的逻辑数据容器中的数据对象的库存,所述逻辑数据容器识别符是由客户端在开始作业API调用中指定。如图14中所示,一旦获得库存,就可以将作业完成通知传输到客户端和/或另一计算机系统,诸如上文所描述。作为一个变化,替代通知或除通知外,客户端还可以用作业识别符向数据存储服务轮询以检查作业状态。
根据各个实施方案,存储服务可以提供高级通知和/或记载功能。图15示出根据实施方案的用于提供通知和/或记载功能的过程1500的说明性实例。如本文中所示,过程1500包括接收逻辑数据容器的通知和记载准则。通知和记载准则可以诸如通过适当API调用依任何合适方式提供。准则可以指定满足时触发通知的条件。准则还可以指定满足时造成存储服务更新访问和/或突变日志(被统称为访问/突变日志)的条件。接收准则可以通过接收在API调用或共同地编码准则的多个API调用中的所述准则来执行。逻辑数据容器的访问和/或突变日志可以是编码关于结合逻辑数据容器发生的事件的信息的信息集合,例如表。访问和/或突变日志可以记录逻辑数据容器的访问事件且可以包括诸如下列各项的信息:开始访问请求的互联网协议(IP)地址、提交请求的用户代理(例如,浏览器或其它应用)、请求类型(例如,读取、写入、删除、库存等)和状态代码(例如,指示请求是否成功和/或一个或多个失败原因的代码)。可以提供的其它信息包括但不限于被授权访问的用户的身份信息(例如,用户名称)、指定作业何时开始和/或结束的时序信息和执行的操作、基于下列识别符(例如,上传的数据对象的数据对象识别符、取消的作业的作业识别符等)操作的资源、错误、计帐信息(例如,账单费用)等。
在实施方案中,存储服务生成连续时间周期的新访问/突变日志。例如,可以每24小时生成新访问/突变日志。客户可以提交指定用于维持访问/突变日志的参数的API调用,诸如生成日志的频率和将记录的事件的类型。客户可以例如指定应记录写入和删除事件,但不应尝试读取逻辑数据容器中的数据对象。相似地,客户可以指定应在记录添加到访问/突变日志之前满足的条件,诸如突变的数据对象的大小。访问/突变日志到客户的递送可以自身记录在访问/突变日志中。在这个实例中,为防止无限循环,访问/突变日志的递送可以在递送访问/突变日志之前记录在访问/突变日志中。此外,客户可以指定递送参数。客户可以例如指定应通过调用客户应急网页服务器的API、通过电子邮件等递送访问日志。在一些实施方案中,存储服务是计算资源提供者的集合服务的部件。客户可以指定访问/突变日志应发送到不同服务的计算资源(计算机系统、数据存储区等),但由客户依编程方式来管理。
返回到图15,在实施方案中,响应于接收通知和记载准则,存储系统被配置1504来根据接收的准则提供通知并更新访问/突变日志。例如,一个或多个服务器监控事件可以被重新配置来造成在检测到满足准则时发生通知和访问/突变日志。
有时,数据存储服务可以接收1506涉及逻辑数据容器的请求,诸如根据如上文所描述的API调用提交的请求。可以处理请求1508,诸如上文结合图2-7所描述。可以作出1510是否满足记载准则的确定,且如果确定满足记载准则,那么诸如根据客户规范,可以更新1512适当访问/突变日志,且可以提供1514更新的访问/突变日志。此外,在实施方案中,可以作出1516是否满足通知准则的确定。如果确定满足通知准则,那么可以公布1518通知,诸如上文所描述。虽然出于说明目的绘示为并行执行的单独动作,但应注意,在各个实施方案中记载和通知的准则可以是依不同序列还是作为相同操作的部件的确定且因此可以修改过程1500。接收请求、处理请求、公布通知和更新访问/突变日志的动作可以重复直到在客户指定时间提供更新的访问/突变日志为止。例如,客户可以指定每24小时提供访问/突变日志和/或访问/突变日志何时满足客户指定条件,诸如超过阈值突变次数和/或受访问影响的数据的阈值等。
应注意,上文所示和所描述的API调用的各种参数用于说明目的且大量变化被视为在本公开的范围内。例如,虽然未如此示出,但API调用可以包括未明确示出的额外信息。举例来说,API调用可以包括主控识别符。作为另一实例,API调用可以包括电子签名,诸如作出的请求的电子签名。电子签名可以被数据存储系统用来确保在由请求者授权请求的动作下作出请求。例如,认证系统(其可以是数据存储系统的子系统)可以比较接收的签名与预期的签名以确定是否有效地作出请求。可以至少部分地基于接收的签名是否匹配预期的签名而履行或拒绝请求。
此外,根据各个实施方案作出的API调用可以具有共同参数(例如,REST请求的请求标头)。举例来说,除上文所描述的信息外,API调用还包括授权信息,诸如请求的数字签名、内容长度(其可以是REST请求的主体的长度)、时间戳记、主机(请求所发送到的端点)、有效负载的检查和、签名时间戳记和使用的API版本。
图16示出根据各个实施方案的用于实施方面的示例性环境1600的方面。如将明白,尽管基于网页的环境用于说明目的,但可以酌情使用不同环境来实施各个实施方案。环境可以包括电子客户端装置1602,其可包括可操作以通过适当网络1604发送和接收请求、消息或信息并将信息递送回到装置用户的任何适当装置。这些客户端装置的实例包括个人计算机、手机、手持消息传递装置、膝上型计算机、机顶盒、个人数据助理、电子书阅读器等。网络可包括任何适当网络,包括内联网、互联网、蜂窝网络、局域网或任何其它这种网络或其组合。用于这个系统的组件可至少部分地取决于选择的网络和/或环境的类型。用于经由这个网络进行通信的协议和组件是熟知的且本文中将不再详细论述。可通过有线或无线连接和其组合实现通过网络进行通信。在这个实例中,网络包括互联网,因为环境包括用于接收请求并响应于其而为内容服务的网页服务器1606,但对于其它网络,所属技术领域一般人员将明白可使用为相似目的服务的替代装置。
说明性环境包括至少一个应用服务器1608和数据存储区1600。应了解,可存在多个应用服务器、层或其它元件、过程或组件,其可以链接或依其它方式配置,可交互以执行诸如从适当数据存储区获得数据的任务。如本文中所使用,术语“数据存储区”指代能够存储、访问和检索数据的任何装置或装置组合,其可以包括在任何标准分布式或群集式环境中的任何组合和数量的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器可包括用于根据需要与数据存储区集成以执行客户端装置的一个或多个应用的方面、处理应用的大量数据访问和业务逻辑的任何适当硬件和软件。应用服务器提供与数据存储区协作的访问控制服务,且能够生成传送到用户的内容(诸如文字、图形、音频和/或视频),在这个实例中其可以通过网页服务器依HTML、XML或另一适当结构化语言服务于用户。可由网页服务器处理所有请求和响应的处理以及客户端装置1602与应用服务器1608之间的内容的递送。应了解,网页服务器和应用服务器不做要求且仅是示例性组件,因为可对如在本文别处所论述的任何适当装置或主机执行本文中所论述的结构化代码。
数据存储区1600可包括用于存储涉及特定方面的数据的多个单独数据表、数据库或其它数据存储机制和介质。例如,所示数据存储区包括用于存储生产数据1602和用户信息1606的机制,其可用来为生产端的内容服务。数据存储区还被示出为包括用于存储日志数据1604的机制,其可用于报告、分析或其它这种目的。应了解,可存在可能需要存储在数据存储区中诸如用于页面图像信息和访问权信息的许多其它方面,其可酌情存储在上列机制中的任一个或数据存储区1600中的额外机制中。数据存储区1600可通过与其相关的逻辑操作,以接收来自应用服务器1608的指令,且响应于其而获得、更新或依其它方式处理数据。在一个实例中,用户可以提交对特定类型项目的搜索请求。在这种情况中,数据存储区可以访问用户信息以验证用户身份,且可访问目录详情信息以获得关于所述类型项目的信息。接着,可诸如依列在网页上且用户能够经由用户装置1602上的浏览器查看的结果将信息返回到用户。可在浏览器的专用页面或窗口中查看特定关注项目的信息。
每个服务器通常将包括提供用于一般地管理和操作所述服务器的可执行程序指令的操作系统,且通常将包括存储在由所述服务器的处理器执行时允许所述服务器执行其预期功能的指令的计算机可读存储介质(例如,硬盘驱动器、随机存取存储器、只读存储器等)。操作系统的合适实施方式和服务器的一般功能已知或可市售,且容易由所属技术领域一般人员特别地鉴于本公开来实施。
一个实施方案中的环境是利用使用一个或多个计算机网络或直接连接以经由通信链路互连的多个计算机系统和组件的分布式计算环境。然而,所属技术领域一般人员将明白,这个系统同样可在具有少于或多于图16中所示的数量的组件的系统中很好地操作。因此,应认为图16中的系统1600的描绘本质上是说明性的,且不限于本公开的范围。
可鉴于下列条款描述本公开的各个实施方案:
1.一种用于提供具成本效益且耐久的归档数据存储服务的计算机实施方法,其包括:
在配置有可执行指令的归档数据存储系统的一个或多个计算机系统的控制下,
通过通信网络从请求计算机系统接收从持久存储装置检索数据对象的电子检索请求,所述电子检索请求编码所述数据对象的识别符;
响应于接收所述电子检索请求:
开始检索作业以从持久存储装置获得所述数据对象;
将检索作业识别符提供到所述请求计算机系统;
通过所述通信网络,接收下载所述数据对象的至少一部分的电子下载请求,所述电子下载请求编码所述检索作业识别符;和
响应于接收所述电子下载请求且因为所述检索作业已完成,提供所述数据对象的所述至少一部分用于下载。
2.根据权利要求1所述的计算机实施方法,其还包括:
接收所述检索作业的状态的电子请求,所述状态的所述电子请求编码所述检索作业识别符;且
响应于接收所述检索作业的所述状态的所述电子请求,提供所述检索作业的当前状态。
3.根据权利要求3所述的计算机实施方法,其中:
所述下载请求包括指定所述数据对象的一部分的信息;且
提供所述数据对象的所述至少一部分包括提供所述指定部分。
4.根据权利要求3所述的计算机实施方法,其中提供所述指定部分包括提供所述指定部分的数据验证值,所述数据验证值可用来确定所述提供的指定部分是否损坏。
5.根据权利要求1所述的计算机实施方法,其还包括在接收所述电子下载请求之前、在完成所述数据检索作业之后提供通知。
6.根据权利要求5所述的计算机实施方法,其中提供所述通知是包括通知参数的所述电子检索请求的结果。
7.一种计算机实施方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收包括对应于由存储系统存储的数据的第一识别符的第一电子消息;
响应于接收所述第一电子消息,结合所述数据开始作业;
在接收所述第一电子消息之后的某个时间,接收包括对应于所述作业的第二识别符的第二电子消息;和
响应于接收所述第二电子消息,提供与所述作业相关的信息。
8.根据权利要求7所述的计算机实施方法,其中所述第一识别符和所述第二识别符不同。
9.根据权利要求7所述的计算机实施方法,其中:
所述数据包括逻辑数据容器中包括的一个或多个数据对象;且
所述第一识别符是所述逻辑数据容器的识别符。
10.根据权利要求9所述的计算机实施方法,其中与所述作业相关的信息包括每个识别所述一个或多个数据对象中的一个的一个或多个识别符的集合。
11.根据权利要求9所述的计算机实施方法,其中与所述作业相关的所述信息包括结合所述逻辑数据容器中包括的所述一个或多个数据对象执行的一个或多个动作的日志。
12.根据权利要求7所述的计算机实施方法,其中
所述第一电子消息源自所述数据存储系统的客户的客户计算机系统;
所述第一电子消息包括由所述客户计算机系统提供的元数据;且
与所述作业相关的所述信息包括所述元数据的至少一部分。
13.一种用于提供访问数据存储服务的系统,其包括:
一个或多个处理器;和
存储器,其包括在由所述一个或多个处理器执行时造成所述系统实施至少以下步骤的可执行指令:
应用编程界面子系统,其被配置来:
接收编码由所述数据存储服务存储的数据集的识别符的电子消息,且作为响应,开始作业并提供所述作业的识别符;和
接收具有所述开始的作业的识别符的电子请求,作为响应,对所述电子请求提供响应。
14.根据权利要求13所述的系统,其中所述数据集中的至少一个是包括一个或多个数据对象的逻辑数据容器。
15.根据权利要求14所述的系统,其中所述数据集中的至少一个是数据对象。
16.根据权利要求13所述的系统,其中:
所述数据存储服务来自由服务提供者提供的数据服务的集合;且
所述接收的电子消息中的至少一些编码将数据集传输到所述数据服务集合的另一服务的电子请求;且
对于对应于所述接收的电子消息中的所述至少一些的开始的作业,对所述电子请求提供响应包括将对应数据集传输到所述另一服务。
17.根据权利要求13所述的系统,其中:
所述应用编程界面子系统还被配置来结合作业接收通知参数;且
造成根据所述接收的参数传输通知。
18.根据权利要求17所述的系统,其中所述应用编程界面子系统还被配置来接收作业状态请求,且响应于所述请求,造成提供作业状态。
19.一种或多种具有共同地存储在其上的可执行指令的非暂时性计算机可读存储介质,所述可执行指令在由计算机系统的一个或多个处理器执行时造成所述计算机系统进行至少以下步骤:
造成数据存储系统结合由所述数据存储系统存储的指定数据集数据集处理作业;
接收包括所述作业的识别符的通信;和
作为响应,提供关于所述作业的信息。
20.根据权利要求19所述的计算机可读存储介质,其中:
处理所述作业包括从持久存储装置获得所述数据集;且
提供关于所述作业的信息包括提供所述数据集的至少一部分。
21.根据权利要求20所述的计算机可读存储介质,其中:
所述数据集的所述至少一部分是根据结合第二通信接收的所述数据集的真子集;且
提供关于所述作业的信息包括提供可用来确定所述真子集是否损坏的数据验证值。
22.根据权利要求19所述的计算机可读存储介质,其中关于所述作业的所述信息包括所述作业的状态。
23.根据权利要求19所述的计算机可读存储介质,其中:
所述数据集包括逻辑数据容器,其包括一个或多个数据对象;
关于所述作业的所述信息是所述逻辑数据容器的库存,其包括识别所述一个或多个数据对象的信息。
24.根据权利要求23所述的计算机可读存储介质,其中:
第一通信包括由另一计算机系统提供的元数据;且
关于所述作业的所述信息包括所述元数据。
25.根据权利要求19所述的计算机可读存储介质,其中:
所述指令在由所述计算机系统的所述一个或多个处理器执行时造成所述计算机系统接收提供关于所述数据集的元数据的初始通信;且
关于所述作业的所述信息包括所述元数据。
26.根据权利要求25所述的计算机可读存储介质,其中所述初始通信编码将所述数据集存储在所述数据存储系统中的请求。
27.根据权利要求25所述的计算机可读存储介质,其中所述初始通信编码从所述数据存储系统检索所述数据集的请求。
各个实施方案还可在各种操作环境中实施,其在一些情况中可包括可用来操作多个应用中的任一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括多个通用个人计算机中的任一个,诸如运行标准操作系统的桌上型或膝上型计算机、以及运行移动软件且能够支持多种联网和消息传递协议的无线和手持装置。这个系统还可包括出于诸如开发和数据库管理的目的而运行多种市售操作系统和其它已知应用中的多个工作站。这些装置还可包括能够经由网络进行通信的其它电子装置,诸如虚拟终端机、瘦客户端、游戏系统和其它装置。
多数实施方案利用所属技术领域熟练人员将熟悉用于支持使用多种市售协议中的任一个(诸如TCP/IP、OSI、FTP、UPnP、NFS、CIFS和AppleTalk)的通信的至少一个网络。所述网络可是例如局域网、广域网、虚拟私人网络、互联网、内联网、外联网、公共交换电话网络、红外网络、无线网络和其任何组合。
在利用网页服务器的实施方案中,网页服务器可运行多种服务器或中间层应用中的任一个,包括HTTP服务器、FTP服务器、CGI服务器、数据服务器、Java服务器和商业应用服务器。服务器还可能响应于来自用户装置的请求而诸如通过以下步骤执行程序或脚本:执行可以实施为依任何编程语言(诸如C、C#或C++)或任何脚本语音(诸如Perl、Python或TCL)以及其组合写入的一个或多个脚本或程序的一个或多个网页应用。服务器还可以包括数据库服务器,包括不限于从市售的数据库服务器。
环境可包括如上文所论述的多种数据存储区以及其它存储器和存储介质。这些装置可跨网络驻留在多个位置中,诸如在计算机中的一个或多个的本地或远离计算机中的任一个或所有的存储介质上(和/或驻留在其中)。在实施方案的特定集中,信息可以驻留在所属技术领域熟练人员熟悉的存储区域网络(“SAN”)中。相似地,用于执行专用于计算机、服务器或其它网络装置的任何必需文件可以酌情存储在本地和/或远端。在系统包括计算机化装置的情况下,每个这种装置可包括可以经由总线电偶接的硬件元件,所述元件包括例如至少一个中央处理单元(CPU)、至少一个输入装置(例如,鼠标、键盘、控制器、触屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这个系统还可以包括一个或多个存储装置,诸如磁盘驱动器、光学存储装置和固态存储装置,诸如随机访问存储器(“RAM”)或只读存储器(“ROM”)以及可移动介质装置、存储卡、快闪卡等。
这些装置还可包括如上文所描述的计算机可读存储介质阅读器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等)和工作存储器。计算机可读存储介质阅读器可连接或被配置来收纳计算机可读存储介质,其表示用于暂时地和/或更持久地容纳、存储、传输和检索计算机可读信息的远程、本地、固定和/或可移动的存储装置以及存储介质。系统和各种装置通常还将包括定位在至少一个工作存储器装置内的多个软件应用、模块、服务或其它元件,包括操作系统和应用,诸如客户端应用或网页浏览器。应明白,替代实施方案可以具有上文所描述的大量变化。例如,还可以使用自定义硬件和/或可以依硬件、软件(包括便携式软件,诸如小应用)或两者实施特定元件。此外,可以采用到其它计算装置(诸如网络输入/输出装置)的连接。
用于容纳代码或代码部分的存储介质和计算机可读介质可包括所属技术领域中已知或使用的任何适当介质,包括依用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实施的存储介质和通信介质,诸如但不限于易失性和非易失性、可移动和不可移动介质,包括可用来存储所期望信息且可由系统装置访问的RAM、ROM、EEPROM、快闪存储器或其它存储器技术、CD-ROM、数字多功能光盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储装置或任何其它介质。基于本文中所提供的本公开和教学内容,所属技术领域一般人员将明白用来实施各个实施方案的其它方式和/或方法。
因此,本说明书和附图是依说明性而非限制性意义来考虑。然而,显然在不背离如权利要求书中所陈述的本发明的更广精神和范围的情况下,可对本发明作出各种修改和变更。
其它变化是在本公开的精神内。因此,虽然所公开技术可具有各种修改和替代构造,但其特定所示实施方案已在附图中示出且已在上文详细描述。然而,应了解,不希望将本发明限于所公开的特定形式,恰恰相反,本发明将覆盖落在如随附权利要求书中所定义的本发明的精神和范围内的所有修改、替代构造和等效物。
除非本文中另有指明或上下文另有明确反驳,否则在描述所公开实施方案的上下文中(尤其在下列权利要求书的上下文中)术语“一”和“一个”和“所述”以及相似项的使用应被解释为覆盖单数和复数两者。除非另有说明,否则术语“包括(comprising)”、“具有”、“包括(including)”和“容纳/包括(containing)”应被解释为开放式术语(即,意指“包括但不限于”)。术语“连接”应被解释为部分地或全部地容纳在内、附接到或接合在一起,即使存在一些中介物。除非本文中另有指明,否则本文中的值范围的列举仅希望用作个别地参考落在所述范围内的每个单独值的速记方法,且每个单独值好像其在本文中个别地列举般并入本说明书中。除非本文中另有指明或上下文另有明确反驳,否则本文中所描述的所有方法可依任何合适次序执行。除非另有声明,否则本文中所提供的任何和所有实例或示例性语言(例如,“诸如”)的使用仅希望更好地阐明本发明的实施方案且并非将限制强加于本发明的范围。本说明书中的语言不应被解释为指示任何非要求元件是实行本发明所必要的。
本文中描述本公开的优选实施方案,包括发明人已知是用于实行本发明的最佳模式。在阅读前文描述之后,所属技术领域一般人员将明白优选实施方案的变化。发明人预期熟练技术人员酌情采用这些变化,且发明人希望不同于如本文中所具体描述般地实行本发明。因此,本发明包括在适用法律允许的情况下随附于其的权利要求书中所列举的标的物的所有修改和等效物。此外,除非本文中另有指明或上下文另有清除反驳,否则本发明涵盖上文所描述的元件的所有可能变化的任何组合。
本文中所列的所有参考案(包括公开案、专利申请和专利)是依引用方式并入本文中,就好像每个参考案被个别地和具体地指示依引用方式并入且其全部内容在本文中得以陈述般。

Claims (15)

1.一种计算机实施方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收包括对应于由存储系统存储的数据的第一识别符的第一电子消息;
响应于接收所述第一电子消息,结合所述数据开始作业;
在接收所述第一电子消息之后的某个时间,接收包括对应于所述作业的第二识别符的第二电子消息;和
响应于接收所述第二电子消息,提供与所述作业相关的信息。
2.根据权利要求1所述的计算机实施方法,其中:
所述数据包括逻辑数据容器中包括的一个或多个数据对象;且
所述第一识别符是所述逻辑数据容器的识别符。
3.根据权利要求2所述的计算机实施方法,其中与所述作业相关的所述信息包括每个识别所述一个或多个数据对象中的一个的一个或多个识别符的集合。
4.根据权利要求2所述的计算机实施方法,其中与所述作业相关的所述信息包括结合所述逻辑数据容器中包括的所述一个或多个数据对象执行的一个或多个动作的日志。
5.根据权利要求1所述的计算机实施方法,其中
所述第一电子消息源自所述数据存储系统的客户的客户计算机系统;
所述第一电子消息包括由所述客户计算机系统提供的元数据;且
与所述作业相关的所述信息包括所述元数据的至少一部分。
6.一种用于提供访问数据存储服务的系统,其包括:
一个或多个处理器;和
存储器,其包括在由所述一个或多个处理器执行时造成所述系统实施至少以下步骤的可执行指令:
应用编程界面子系统,其被配置来:
接收编码由所述数据存储服务存储的数据集的识别符的电子消息,且作为响应,开始作业并提供所述作业的识别符;和
接收具有所述开始的作业的识别符的电子请求,作为响应,对所述电子请求提供响应。
7.根据权利要求6所述的系统,其中所述数据集中的至少一个是包括一个或多个数据对象的逻辑数据容器。
8.根据权利要求6所述的系统,其中:
所述数据存储服务来自由服务提供者提供的数据服务的集合;且
所述接收的电子消息中的至少一些编码将数据集传输到所述数据服务集合的另一服务的电子请求;且
对于对应于所述接收的电子消息中的所述至少一些的开始的作业,对所述电子请求提供响应包括将对应数据集传输到所述另一服务。
9.根据权利要求6所述的系统,其中:
所述应用编程界面子系统还被配置来结合作业接收通知参数;且
造成根据所述接收的参数传输通知。
10.根据权利要求9所述的系统,其中所述应用编程界面子系统还被配置来接收作业状态请求,且响应于所述请求,造成提供作业状态。
11.根据权利要求6所述的系统,其中所述存储器包括在由一个或多个处理器执行时造成所述系统进行以下步骤的可执行指令:
从与开始的作业的所接收识别符相关的持久存储装置获得所述数据集中的至少一个;和
提供所述获得的数据集的至少一部分。
12.根据权利要求11所述的计算机可读存储介质,其中:
所述数据集的所述至少一部分是所述数据集的真子集;且
提供可用来确定所述真子集是否损坏的数据验证值。
13.根据权利要求6所述的计算机可读存储介质,其中对所述电子请求的所述响应包括开始的作业的状态信息。
14.根据权利要求6所述的计算机可读存储介质,其中:
所述数据集中的至少一个包括逻辑数据容器,所述逻辑数据容器包括一个或多个数据对象;
对所述电子请求的至少一个响应识别所述逻辑数据容器的库存,所述逻辑数据容器包括识别所述一个或多个数据对象的信息。
15.根据权利要求14所述的计算机可读存储介质,其中:
所述接收的电子消息中的至少一个包括由另一计算机系统提供的元数据;且
对所述电子请求的所述响应中的至少一个包括所述元数据。
CN201380042166.3A 2012-08-08 2013-08-06 数据存储应用编程界面 Active CN104520822B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/570,074 US9225675B2 (en) 2012-08-08 2012-08-08 Data storage application programming interface
US13/570,074 2012-08-08
PCT/US2013/053828 WO2014025806A2 (en) 2012-08-08 2013-08-06 Data storage application programming interface

Publications (2)

Publication Number Publication Date
CN104520822A true CN104520822A (zh) 2015-04-15
CN104520822B CN104520822B (zh) 2019-01-08

Family

ID=50067017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380042166.3A Active CN104520822B (zh) 2012-08-08 2013-08-06 数据存储应用编程界面

Country Status (6)

Country Link
US (3) US9225675B2 (zh)
EP (2) EP2883145A4 (zh)
JP (2) JP6162239B2 (zh)
CN (1) CN104520822B (zh)
CA (1) CA2881490C (zh)
WO (1) WO2014025806A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108241541A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 数据传输的方法和装置
CN112654978A (zh) * 2018-09-25 2021-04-13 万迪斯科股份有限公司 分布式异构存储系统中数据一致性实时检查的方法、设备和系统

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892598B2 (en) * 2010-06-22 2014-11-18 Cleversafe, Inc. Coordinated retrieval of data from a dispersed storage network
US9020893B2 (en) * 2013-03-01 2015-04-28 Datadirect Networks, Inc. Asynchronous namespace maintenance
US9864789B2 (en) * 2013-04-08 2018-01-09 Oracle International Corporation Method and system for implementing an on-demand data warehouse
US9417863B2 (en) * 2013-09-27 2016-08-16 Western Digital Technologies, Inc. System and method for expedited loading of an image onto a storage device
WO2015175720A1 (en) * 2014-05-13 2015-11-19 Netapp, Inc. Storage operations utilizing a multiple-data-storage-devices cartridge
US10606642B1 (en) 2014-09-16 2020-03-31 Amazon Technologies, Inc. Dynamic power budgets
US9513833B2 (en) * 2014-09-23 2016-12-06 Amazon Technologies, Inc. Asynchronous processing of mapping information
US9363267B2 (en) * 2014-09-25 2016-06-07 Ebay, Inc. Transaction verification through enhanced authentication
US9846642B2 (en) * 2014-10-21 2017-12-19 Samsung Electronics Co., Ltd. Efficient key collision handling
US10073730B1 (en) * 2014-11-19 2018-09-11 Amazon Technologies, Inc. Single quorum verification of erasure coded data
US10523754B2 (en) * 2014-11-25 2019-12-31 Netapp, Inc. Methods for integrating applications with a data storage network and devices thereof
US10614050B2 (en) * 2015-01-25 2020-04-07 Iguazio Systems, Ltd. Managing object requests via multiple indexes
US9825959B2 (en) * 2015-02-13 2017-11-21 Ebay Inc. Portable electronic device with user-configurable API data endpoint
JP6710435B2 (ja) 2015-03-06 2020-06-17 国立研究開発法人科学技術振興機構 ジピリンホウ素錯体及びこれを含有する医薬
US10270712B1 (en) * 2015-03-31 2019-04-23 EMC IP Holding Company LLC Virtual storage network connectivity service
US9495249B1 (en) * 2015-03-31 2016-11-15 Amazon Technolgies, Inc. Precomputed redundancy code matrices for high-availability data storage
US10262024B1 (en) 2015-05-19 2019-04-16 Amazon Technologies, Inc. Providing consistent access to data objects transcending storage limitations in a non-relational data store
JP6241449B2 (ja) * 2015-05-21 2017-12-06 横河電機株式会社 データ管理システム及びデータ管理方法
US10977128B1 (en) 2015-06-16 2021-04-13 Amazon Technologies, Inc. Adaptive data loss mitigation for redundancy coding systems
US9998150B1 (en) * 2015-06-16 2018-06-12 Amazon Technologies, Inc. Layered data redundancy coding techniques for layer-local data recovery
US10270475B1 (en) 2015-06-16 2019-04-23 Amazon Technologies, Inc. Layered redundancy coding for encoded parity data
US10270476B1 (en) 2015-06-16 2019-04-23 Amazon Technologies, Inc. Failure mode-sensitive layered redundancy coding techniques
US10298259B1 (en) 2015-06-16 2019-05-21 Amazon Technologies, Inc. Multi-layered data redundancy coding techniques
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
US9853662B1 (en) 2015-06-17 2017-12-26 Amazon Technologies, Inc. Random access optimization for redundancy coded data storage systems
US9838042B1 (en) 2015-06-17 2017-12-05 Amazon Technologies, Inc. Data retrieval optimization for redundancy coded data storage systems with static redundancy ratios
US10009044B1 (en) * 2015-06-17 2018-06-26 Amazon Technologies, Inc. Device type differentiation for redundancy coded data storage systems
US9825652B1 (en) 2015-06-17 2017-11-21 Amazon Technologies, Inc. Inter-facility network traffic optimization for redundancy coded data storage systems
US10162704B1 (en) 2015-07-01 2018-12-25 Amazon Technologies, Inc. Grid encoded data storage systems for efficient data repair
US9904589B1 (en) 2015-07-01 2018-02-27 Amazon Technologies, Inc. Incremental media size extension for grid encoded data storage systems
US10089176B1 (en) 2015-07-01 2018-10-02 Amazon Technologies, Inc. Incremental updates of grid encoded data storage systems
US9998539B1 (en) 2015-07-01 2018-06-12 Amazon Technologies, Inc. Non-parity in 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
US9959167B1 (en) 2015-07-01 2018-05-01 Amazon Technologies, Inc. Rebundling grid encoded data storage systems
US10394762B1 (en) 2015-07-01 2019-08-27 Amazon Technologies, Inc. Determining data redundancy in 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
US10397324B2 (en) 2015-07-22 2019-08-27 Netapp, Inc. Methods and systems for managing a resource in a networked storage environment
US9912565B2 (en) 2015-07-22 2018-03-06 Netapp, Inc. Methods and systems for determining performance capacity of a resource of a networked storage environment
US9973769B2 (en) * 2015-08-12 2018-05-15 Time Warner Cable Enterprises Llc Methods and apparatus of encoding real time media content
US10380090B1 (en) * 2015-09-11 2019-08-13 Amazon Technologies, Inc. Nested object serialization and deserialization
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
US9832024B2 (en) 2015-11-13 2017-11-28 Visa International Service Association Methods and systems for PKI-based authentication
US10673839B2 (en) * 2015-11-16 2020-06-02 Mastercard International Incorporated Systems and methods for authenticating network messages
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
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
US10102065B1 (en) 2015-12-17 2018-10-16 Amazon Technologies, Inc. Localized failure mode decorrelation in redundancy encoded data storage systems
US10324790B1 (en) 2015-12-17 2019-06-18 Amazon Technologies, Inc. Flexible data storage device mapping for 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
CN105554690A (zh) * 2015-12-23 2016-05-04 姚伟志 点到点的智能设备管理系统
US10152248B2 (en) * 2015-12-25 2018-12-11 EMC IP Holding Company LLC Erasure coding for elastic cloud storage
US10291265B2 (en) 2015-12-25 2019-05-14 EMC IP Holding Company LLC Accelerated Galois field coding for storage systems
US10250684B2 (en) 2016-01-12 2019-04-02 Netapp, Inc. Methods and systems for determining performance capacity of a resource of a networked storage environment
US10592336B1 (en) 2016-03-24 2020-03-17 Amazon Technologies, Inc. Layered indexing for asynchronous retrieval of redundancy coded data
US10061668B1 (en) 2016-03-28 2018-08-28 Amazon Technologies, Inc. Local storage clustering for redundancy coded data storage system
US10678664B1 (en) 2016-03-28 2020-06-09 Amazon Technologies, Inc. Hybridized storage operation for redundancy coded data storage systems
US10366062B1 (en) 2016-03-28 2019-07-30 Amazon Technologies, Inc. Cycled clustering for redundancy coded data storage systems
US10817348B2 (en) 2016-04-05 2020-10-27 Netapp, Inc. Methods and systems for managing service level objectives in a networked storage environment
US10210023B2 (en) 2016-04-05 2019-02-19 Netapp, Inc. Methods and systems for managing service level objectives in a networked storage environment
US10469582B2 (en) * 2016-04-13 2019-11-05 Netapp, Inc. Methods and systems for managing provisioning requests in a networked storage environment
US10229015B2 (en) 2016-08-30 2019-03-12 Microsoft Technology Licensing, Llc Quorum based reliable low latency storage
JP6720788B2 (ja) * 2016-09-07 2020-07-08 富士通株式会社 ログ管理装置及びログ管理プログラム
US11137980B1 (en) 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
US10657097B1 (en) 2016-09-28 2020-05-19 Amazon Technologies, Inc. Data payload aggregation for data storage systems
US10437790B1 (en) 2016-09-28 2019-10-08 Amazon Technologies, Inc. Contextual optimization for data storage systems
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US10496327B1 (en) 2016-09-28 2019-12-03 Amazon Technologies, Inc. Command parallelization for data storage systems
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
US10810157B1 (en) 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US10614239B2 (en) 2016-09-30 2020-04-07 Amazon Technologies, Inc. Immutable cryptographically secured ledger-backed databases
US10614131B2 (en) 2016-10-26 2020-04-07 Lookingglass Cyber Solutions, Inc. Methods and apparatus of an immutable threat intelligence system
US10296764B1 (en) 2016-11-18 2019-05-21 Amazon Technologies, Inc. Verifiable cryptographically secured ledgers for human resource systems
US10528440B2 (en) * 2016-11-28 2020-01-07 Sap Se Metadata cataloging framework
US11269888B1 (en) 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
US10909097B2 (en) 2017-02-05 2021-02-02 Veritas Technologies Llc Method and system for dependency analysis of workloads for orchestration
US10691657B2 (en) * 2017-03-21 2020-06-23 Intermetro Communications, Inc. System and method for managing a database having a size limit
US11356445B2 (en) 2017-03-28 2022-06-07 Amazon Technologies, Inc. Data access interface for clustered devices
US10530752B2 (en) 2017-03-28 2020-01-07 Amazon Technologies, Inc. Efficient device provision
US10621055B2 (en) 2017-03-28 2020-04-14 Amazon Technologies, Inc. Adaptive data recovery for clustered data devices
US10719427B1 (en) * 2017-05-04 2020-07-21 Amazon Technologies, Inc. Contributed test management in deployment pipelines
US10754748B2 (en) * 2017-05-17 2020-08-25 American Megatrends International, Llc System and method for constructing extensible event log with javascript object notation (JSON) encoded payload data
JP2019028208A (ja) 2017-07-28 2019-02-21 セイコーエプソン株式会社 プロジェクター、プロジェクターの制御方法および表示システム
US10984133B1 (en) 2017-08-02 2021-04-20 Styra, Inc. Defining and distributing API authorization policies and parameters
US11681568B1 (en) 2017-08-02 2023-06-20 Styra, Inc. Method and apparatus to reduce the window for policy violations with minimal consistency assumptions
JP2019061458A (ja) * 2017-09-26 2019-04-18 京セラドキュメントソリューションズ株式会社 電子機器およびログアプリケーション
US10732852B1 (en) * 2017-10-19 2020-08-04 EMC IP Holding Company LLC Telemetry service
US10891282B1 (en) * 2017-11-22 2021-01-12 Amazon Technologies, Inc. Mutations with immediate feedback
US11126610B1 (en) 2017-11-22 2021-09-21 Amazon Technologies, Inc. Conflict resolution in a data proxy
US11159634B1 (en) 2017-11-22 2021-10-26 Amazon Technologies, Inc. Subscription fan out
US11089133B1 (en) 2017-11-22 2021-08-10 Amazon Technologies, Inc. Synchronizing data with delayed subscriptions
JP6962156B2 (ja) * 2017-11-30 2021-11-05 コニカミノルタ株式会社 画像処理装置、画像処理装置の制御方法、画像処理システム、およびプログラム
US10693892B2 (en) * 2017-12-11 2020-06-23 International Business Machines Corporation Network attack tainting and tracking
US11030123B2 (en) 2018-06-06 2021-06-08 Oracle International Corporation Fine grained memory and heap management for sharable entities across coordinating participants in database environment
US10783022B2 (en) 2018-08-03 2020-09-22 EMC IP Holding Company LLC Immediate replication for dedicated data blocks
US11853463B1 (en) 2018-08-23 2023-12-26 Styra, Inc. Leveraging standard protocols to interface unmodified applications and services
US10719373B1 (en) 2018-08-23 2020-07-21 Styra, Inc. Validating policies and data in API authorization system
US11080410B1 (en) 2018-08-24 2021-08-03 Styra, Inc. Partial policy evaluation
US10963454B2 (en) * 2018-09-24 2021-03-30 Salesforce.Com, Inc. System and method for bulk removal of records in a database
CN111382131B (zh) * 2018-12-27 2023-05-09 浙江大学 数据处理方法、装置及存储介质
EP3706011A1 (en) * 2019-03-05 2020-09-09 Siemens Aktiengesellschaft Computer implemented method and processing device for processing maintenance information in a distributed database system using a storage client unit
US11561997B2 (en) * 2019-03-13 2023-01-24 Oracle International Corporation Methods, systems, and computer readable media for data translation using a representational state transfer (REST) application programming interface (API)
US11023156B2 (en) 2019-06-20 2021-06-01 International Business Machines Corporation Dynamic API allocation based on data-tagging
US11314593B2 (en) 2019-06-25 2022-04-26 Western Digital Technologies, Inc. Storage node processing of data functions using overlapping symbols
US10990324B2 (en) * 2019-06-25 2021-04-27 Western Digital Technologies, Inc. Storage node processing of predefined data functions
US11281531B2 (en) 2019-06-25 2022-03-22 Western Digital Technologies, Inc. Serial storage node processing of data functions
US11055018B2 (en) 2019-06-25 2021-07-06 Western Digital Technologies, Inc. Parallel storage node processing of data functions
US11095691B2 (en) 2019-06-26 2021-08-17 Oracle International Corporation Methods, systems, and computer readable media for establishing a communication session between a public switched telephone network (PSTN) endpoint and a web real time communications (WebRTC) endpoint
EP4107611A1 (en) 2020-02-19 2022-12-28 Hewlett-Packard Development Company, L.P. Orphaned print job renewal
JP7473870B2 (ja) * 2020-03-25 2024-04-24 京セラドキュメントソリューションズ株式会社 データ連携システムおよびapiプラットフォーム
US11928030B2 (en) * 2020-03-31 2024-03-12 Veritas Technologies Llc Optimize backup from universal share
US20220138352A1 (en) * 2020-11-05 2022-05-05 EMC IP Holding Company LLC Multi-Cloud Framework for Data Protection Using Threshold-Based File Reconstruction
WO2022176703A1 (ja) * 2021-02-16 2022-08-25 株式会社スターワン 電子ファイル送信制御装置および方法
KR102331734B1 (ko) 2021-03-19 2021-12-01 쿠팡 주식회사 분산 시스템의 데이터 처리 방법 및 이를 위한 전자 장치
US11947839B2 (en) * 2021-05-10 2024-04-02 Samsung Electronics Co., Ltd. Storage device, system, and method for customizable metadata
US20220398168A1 (en) * 2021-06-11 2022-12-15 EMC IP Holding Company LLC Auto scale backup orchestration for network attached storage workloads
US11726665B1 (en) * 2021-06-29 2023-08-15 Amazon Technologies, Inc. Memory extension with error correction
JP2023110632A (ja) * 2022-01-28 2023-08-09 株式会社日立製作所 ファイルストレージシステム
US11822438B1 (en) 2022-07-11 2023-11-21 Bank Of America Corporation Multi-computer system for application recovery following application programming interface failure

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149739A (ja) * 1992-11-11 1994-05-31 Hitachi Ltd ジョブ実行の受付確認方法
JP2007299308A (ja) * 2006-05-02 2007-11-15 Ricoh Co Ltd ジョブ処理システム、ジョブ処理方法、プログラムおよび記録媒体
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
US8060473B1 (en) * 2006-01-17 2011-11-15 Symantec Operating Corporation System and method for conveying backup and restore data via email

Family Cites Families (233)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5239640A (en) 1991-02-01 1993-08-24 International Business Machines Corporation Data storage system and method including data and checksum write staging storage
JPH05113963A (ja) 1991-10-23 1993-05-07 Nec Corp ジヨブ状態表示方式
JP3183719B2 (ja) 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US5423046A (en) 1992-12-17 1995-06-06 International Business Machines Corporation High capacity data storage system using disk array
US5243381A (en) 1993-01-04 1993-09-07 Xerox Corporation Method for compiling multiple jobs with job reference sheets
DE69403192T2 (de) 1993-01-21 1997-12-04 Apple Computer, Inc., Cupertino, Calif. Vorrichtung und verfahren zur datensicherung von speichereinheiten in einem rechnernetzwerk
US6138126A (en) 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
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
US6208999B1 (en) 1996-12-12 2001-03-27 Network Associates, Inc. Recoverable computer file system with a signature area containing file integrity information located in the storage blocks
JPH10261075A (ja) 1997-03-21 1998-09-29 Matsushita Electric Ind Co Ltd 画像バッファ制御装置
JPH1124997A (ja) 1997-06-30 1999-01-29 Hitachi Haisofuto:Kk コンピュータで作成された記録ファイルの機密保持方法及び機密保持プログラムを記録したコンピュータ読み取り可能な記録媒体
EP0913826A1 (en) * 1997-10-31 1999-05-06 Hewlett-Packard Company Scratch protection in tape data storage system
US6023710A (en) 1997-12-23 2000-02-08 Microsoft Corporation System and method for long-term administration of archival storage
JP2000023075A (ja) 1998-07-03 2000-01-21 Hitachi Ltd ディジタル画像音声記録再生装置
US6449623B1 (en) 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
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
JP3805985B2 (ja) 1999-02-18 2006-08-09 株式会社東芝 ストリームデータの情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
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
US6747825B1 (en) 1999-08-27 2004-06-08 Jpmorgan Chase Bank, As Collateral Agent Disc drive with fake defect entries
US6543029B1 (en) 1999-09-29 2003-04-01 Emc Corporation Error corrector
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
US6775831B1 (en) 2000-02-11 2004-08-10 Overture Services, Inc. System and method for rapid completion of data processing tasks distributed on a network
US7155713B1 (en) 2000-04-27 2006-12-26 Microsoft Corporation Componentized operating system
US7310801B2 (en) 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
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
US6959326B1 (en) 2000-08-24 2005-10-25 International Business Machines Corporation Method, system, and program for gathering indexable metadata on content at a data repository
US6691113B1 (en) 2000-09-28 2004-02-10 Curl Corporation Persistent data storage for client computer software programs
US7689560B2 (en) * 2000-10-13 2010-03-30 Miosoft Corporation Persistent data storage techniques
US8032542B2 (en) 2000-10-26 2011-10-04 Reynolds Mark L Creating, verifying, managing, and using original digital files
US20020103815A1 (en) 2000-12-12 2002-08-01 Fresher Information Corporation High speed data updates implemented in an information storage and retrieval system
US7266704B2 (en) 2000-12-18 2007-09-04 Digimarc Corporation User-friendly rights management systems and methods
JP3592640B2 (ja) 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法
US7496767B2 (en) 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
JP2002359718A (ja) 2001-03-02 2002-12-13 Canon Inc 画像処理装置、情報処理方法、制御プログラム
US6742081B2 (en) 2001-04-30 2004-05-25 Sun Microsystems, Inc. Data storage array employing block checksums and dynamic striping
KR100425678B1 (ko) 2001-05-18 2004-04-03 엘지전자 주식회사 디지탈 재생기에 적용되는 메모리 카드 및 그의 파일라이트/리드방법
US20030014523A1 (en) 2001-07-13 2003-01-16 John Teloh Storage network data replicator
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
US7487316B1 (en) 2001-09-17 2009-02-03 Rockwell Automation Technologies, Inc. Archive and restore system and methodology for on-line edits utilizing non-volatile buffering
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
US7363506B2 (en) 2002-01-30 2008-04-22 Cybersoft, Inc. Software virus detection methods, apparatus and articles of manufacture
US20030149717A1 (en) 2002-02-05 2003-08-07 William Heinzman Batch processing job streams using and/or precedence logic
US7213158B2 (en) 2002-06-28 2007-05-01 Lenovo (Singapore) Pte. Ltd. Distributed autonomic backup
US7774466B2 (en) 2002-10-17 2010-08-10 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed storage area network 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
US7716061B2 (en) 2003-03-27 2010-05-11 International Business Machines Corporation Method and apparatus for obtaining status information in a grid
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
JP2006526837A (ja) 2003-06-03 2006-11-24 株式会社Access ページ保存ファイルを用いてコンテンツを閲覧する方法
JP4490188B2 (ja) 2003-07-31 2010-06-23 株式会社リコー 印刷処理装置、印刷処理システム、印刷処理装置の制御方法、印刷処理装置の制御プログラム及び記録媒体
CN1266635C (zh) 2003-08-12 2006-07-26 上海交通大学 基于mpeg-7的远程教学领域的流媒体检索系统
US20050050342A1 (en) 2003-08-13 2005-03-03 International Business Machines Corporation Secure storage utility
JP2005122311A (ja) 2003-10-14 2005-05-12 Nippon Telegraph & Telephone East Corp 広告提示方法、装置およびプログラム
US7328217B2 (en) 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US8612980B2 (en) 2003-12-04 2013-12-17 The Mathworks, Inc. Distribution of job in a portable format in distributed computing environments
US7251659B1 (en) 2003-12-04 2007-07-31 Sprint Communications Company L.P. Method and system for managing resource indexes in a networking environment
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
US7624120B2 (en) 2004-02-11 2009-11-24 Microsoft Corporation System and method for switching a data partition
US7277905B2 (en) 2004-03-31 2007-10-02 Microsoft Corporation System and method for a consistency check of a database backup
US7366740B2 (en) 2004-05-03 2008-04-29 Microsoft Corporation Systems and methods for automatic maintenance and repair of enitites in a data model
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
US7177883B2 (en) 2004-07-15 2007-02-13 Hitachi, Ltd. Method and apparatus for hierarchical storage management based on data value and user interest
US20060020594A1 (en) 2004-07-21 2006-01-26 Microsoft Corporation Hierarchical drift detection of data sets
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7606998B2 (en) 2004-09-10 2009-10-20 Cavium Networks, Inc. Store instruction ordering for multi-core processor
US7487385B2 (en) 2004-11-01 2009-02-03 Netapp, Inc. Apparatus and method for recovering destroyed data volumes
US7873782B2 (en) 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
US20070168292A1 (en) 2004-12-21 2007-07-19 Fabrice Jogand-Coulomb Memory system with versatile content control
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US20060242066A1 (en) 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Versatile content control with partitioning
US8504849B2 (en) 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
US8601283B2 (en) 2004-12-21 2013-12-03 Sandisk Technologies Inc. Method for versatile content control with partitioning
US20060242151A1 (en) 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Control structure for versatile content control
US20060242067A1 (en) 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb System for creating control structure for versatile content control
US20060242150A1 (en) 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Method using control structure for versatile content control
US8051052B2 (en) 2004-12-21 2011-11-01 Sandisk Technologies Inc. Method for creating control structure for versatile content control
US7409495B1 (en) 2004-12-22 2008-08-05 Symantec Operating Corporation Method and apparatus for providing a temporal storage appliance with block virtualization in storage networks
US7457921B2 (en) 2005-02-23 2008-11-25 Microsoft Corporation Write barrier for data storage integrity
US8428484B2 (en) 2005-03-04 2013-04-23 Sharp Laboratories Of America, Inc. Methods and systems for peripheral accounting
US7392266B2 (en) 2005-03-17 2008-06-24 International Business Machines Corporation Apparatus and method for monitoring usage of components in a database index
US8006125B1 (en) 2005-04-29 2011-08-23 Microsoft Corporation Automatic detection and recovery of corrupt disk metadata
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
EP1927060B1 (en) 2005-08-09 2019-10-09 Nexsan Technologies Canada Inc. Data archiving method and system
JP4333655B2 (ja) 2005-08-24 2009-09-16 ソニー株式会社 コンテンツ受信装置およびコンテンツ受信方法
US20070056042A1 (en) 2005-09-08 2007-03-08 Bahman Qawami Mobile memory system for secure storage and delivery of media content
US20070079087A1 (en) 2005-09-29 2007-04-05 Copan Systems, Inc. User interface for archival storage of data
US9063881B2 (en) 2010-04-26 2015-06-23 Cleversafe, Inc. Slice retrieval in accordance with an access sequence in a dispersed storage network
US7937369B1 (en) 2005-09-30 2011-05-03 Emc Corporation Data mover discovery of object extent
US8041677B2 (en) 2005-10-12 2011-10-18 Datacastle Corporation Method and system for data backup
US9047306B1 (en) 2005-10-17 2015-06-02 Hewlett-Packard Development Company, L.P. Method of writing data
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
US20070174362A1 (en) 2006-01-18 2007-07-26 Duc Pham System and methods for secure digital data archiving and access auditing
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
CN101043372A (zh) 2006-03-22 2007-09-26 比特福恩公司 管理网络中的设备简档检索
JP4767057B2 (ja) 2006-03-27 2011-09-07 富士通株式会社 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
US7840878B1 (en) 2006-04-11 2010-11-23 Marvell International Ltd. Systems and methods for data-path protection
JP4889357B2 (ja) 2006-04-14 2012-03-07 株式会社アドバンテスト 試験装置、プログラムおよび試験方法
US8862841B2 (en) 2006-04-25 2014-10-14 Hewlett-Packard Development Company, L.P. Method and system for scaleable, distributed, differential electronic-data backup and archiving
US7840969B2 (en) 2006-04-28 2010-11-23 Netapp, Inc. System and method for management of jobs in a cluster environment
US7860825B2 (en) 2006-05-08 2010-12-28 Palm, Inc. Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks
US7929551B2 (en) 2006-06-01 2011-04-19 Rovi Solutions Corporation Methods and apparatus for transferring media across a network using a network interface device
US20080010449A1 (en) 2006-07-07 2008-01-10 Michael Holtzman Content Control System Using Certificate Chains
US20080010452A1 (en) 2006-07-07 2008-01-10 Michael Holtzman Content Control System Using Certificate Revocation Lists
US20080010458A1 (en) 2006-07-07 2008-01-10 Michael Holtzman Control System Using Identity Objects
US8140843B2 (en) 2006-07-07 2012-03-20 Sandisk Technologies Inc. Content control method using certificate chains
US8613103B2 (en) 2006-07-07 2013-12-17 Sandisk Technologies Inc. Content control method using versatile control structure
US20100138652A1 (en) 2006-07-07 2010-06-03 Rotem Sela Content control method using certificate revocation lists
US8639939B2 (en) 2006-07-07 2014-01-28 Sandisk Technologies Inc. Control method using identity objects
US8266711B2 (en) 2006-07-07 2012-09-11 Sandisk Technologies Inc. Method for controlling information supplied from memory device
US20080034440A1 (en) 2006-07-07 2008-02-07 Michael Holtzman Content Control System Using Versatile Control Structure
US8245031B2 (en) 2006-07-07 2012-08-14 Sandisk Technologies Inc. Content control method using certificate revocation lists
US20080022395A1 (en) 2006-07-07 2008-01-24 Michael Holtzman System for Controlling Information Supplied From Memory Device
JP4972358B2 (ja) 2006-07-19 2012-07-11 株式会社リコー 文書検索装置、文書検索方法、文書検索プログラム及び記録媒体。
EP2069963A4 (en) 2006-08-31 2012-10-03 Realnetworks Inc API ACCESSIBLE MEDIA DISTRIBUTION SYSTEM
JP4939152B2 (ja) 2006-09-13 2012-05-23 株式会社日立製作所 データ管理システム及びデータ管理方法
JP4767139B2 (ja) 2006-09-15 2011-09-07 富士通株式会社 ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法
JP4940898B2 (ja) 2006-11-02 2012-05-30 富士通株式会社 デジタルコンテンツ検索プログラム、デジタルコンテンツ検索装置およびデジタルコンテンツ検索方法
US20080120164A1 (en) 2006-11-17 2008-05-22 Avaya Technology Llc Contact center agent work awareness algorithm
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US9124650B2 (en) 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US7640412B2 (en) 2007-01-04 2009-12-29 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for improving the reliability of file systems
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
US8336043B2 (en) 2007-02-15 2012-12-18 Microsoft Corporation Dynamic deployment of custom code
JP4561759B2 (ja) 2007-02-21 2010-10-13 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US8135935B2 (en) 2007-03-20 2012-03-13 Advanced Micro Devices, Inc. ECC implementation in non-ECC components
US8266691B2 (en) 2007-04-13 2012-09-11 Microsoft Corporation Renewable integrity rooted system
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情報提供装置
US8990215B1 (en) 2007-05-21 2015-03-24 Amazon Technologies, Inc. Obtaining and verifying search indices
JP2008299396A (ja) 2007-05-29 2008-12-11 On Site:Kk 紹介支援装置、紹介支援装置用プログラム、及び紹介支援方法
US20090013123A1 (en) 2007-07-02 2009-01-08 Chun-Yu Hsieh Storage Bridge and Storage Device and Method Applying the Storage Bridge
KR100888967B1 (ko) 2007-09-10 2009-03-17 엘지전자 주식회사 저장매체 포맷 방법 및 장치
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
WO2009046435A1 (en) 2007-10-05 2009-04-09 Aharon Mizrahi System and method for enabling search of content
US8819179B2 (en) * 2007-10-09 2014-08-26 Cleversafe, Inc. Data revision synchronization in a dispersed storage network
US8099573B2 (en) 2007-10-25 2012-01-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US20090132676A1 (en) 2007-11-20 2009-05-21 Mediatek, Inc. Communication device for wireless virtual storage and method thereof
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7925733B2 (en) 2007-12-12 2011-04-12 International Business Machines Corporation Generating unique object identifiers for network management objects
WO2009079264A1 (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 富士通株式会社 ストレージ管理装置、ストレージ管理プログラムおよびストレージシステム
GB2456001A (en) 2007-12-28 2009-07-01 Symbian Software Ltd Storage device having a single file allocation table
EP2079020B1 (en) 2008-01-03 2013-03-20 Accenture Global Services Limited System amd method for automating ETL applications
US7979670B2 (en) 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US20090198736A1 (en) 2008-01-31 2009-08-06 Jinmei Shen Time-Based Multiple Data Partitioning
JP4471007B2 (ja) 2008-02-05 2010-06-02 ソニー株式会社 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体
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
KR20090101665A (ko) 2008-03-24 2009-09-29 삼성전자주식회사 메모리 시스템 및 그것의 데이터 액세스 방법
KR20110007205A (ko) 2008-04-21 2011-01-21 어댑티브 컴퓨팅 엔터프라이즈 인코포레이티드 컴퓨트 환경에서 에너지 소비를 관리하기 위한 시스템 및 방법
US7937619B2 (en) 2008-05-30 2011-05-03 Red Hat, Inc. Fine grained failure detection in distributed computing
KR101506578B1 (ko) 2008-07-17 2015-03-30 삼성전자주식회사 데이터 보안을 위한 파일 시스템 구성 방법 및 장치, 그에의해 만들어진 데이터 보안 영역에 접근하는 방법 및 장치,그에 따른 데이터 저장 장치
US8204969B2 (en) 2008-08-05 2012-06-19 Canon Kabushiki Kaisha Method for retrieving updates via the internet
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
US8108686B2 (en) 2008-09-18 2012-01-31 Oracle America, Inc. Method and system for detecting modified pages
US8130554B1 (en) 2008-09-29 2012-03-06 Emc Corporation Securely erasing flash-based memory
US8930894B2 (en) 2008-10-08 2015-01-06 Oracle America, Inc. Method and system for executing an executable file
US20100094819A1 (en) 2008-10-10 2010-04-15 Sap Ag Concurrent collaborative process for data management and retrieval
US8707310B2 (en) 2008-10-15 2014-04-22 Oracle International Corporation Batch processing of jobs on multiprocessors based on estimated job processing time
KR101028929B1 (ko) 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
US8918488B2 (en) 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
US9639609B2 (en) 2009-02-24 2017-05-02 Microsoft Technology Licensing, Llc Enterprise search method and system
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
JP5383297B2 (ja) 2009-04-13 2014-01-08 株式会社日立国際電気 署名装置
CA2766231C (en) 2009-06-26 2017-01-17 Simplivity Corporation Namespace file system accessing an object store
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US8972677B1 (en) 2009-06-29 2015-03-03 Symantec Corporation Systems and methods for implementing a storage interface specific to an archiving platform
US8880736B2 (en) 2009-07-09 2014-11-04 Simon Cooper Methods and systems for archiving and restoring securely installed applications on a computing device
JP5424765B2 (ja) 2009-07-28 2014-02-26 キヤノン株式会社 監視装置及び情報処理方法
JP5415183B2 (ja) 2009-08-20 2014-02-12 株式会社日立ソリューションズ バッチジョブ処理装置、バッチジョブ処理システム
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
US8402344B2 (en) 2009-10-05 2013-03-19 Cleversafe, Inc. Method and apparatus for controlling dispersed storage of streaming data
TWI408551B (zh) 2009-10-28 2013-09-11 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與資料處理方法
US8572282B2 (en) 2009-10-30 2013-10-29 Cleversafe, Inc. Router assisted dispersed storage network method and apparatus
US8352430B1 (en) 2009-11-06 2013-01-08 Carbonite, Inc. File storage system to support high data rates
US8296410B1 (en) 2009-11-06 2012-10-23 Carbonite, Inc. Bandwidth management in a client/server environment
US8990585B2 (en) 2009-12-29 2015-03-24 Cleversafe, Inc. Time based dispersed storage access
JP2011170667A (ja) 2010-02-19 2011-09-01 Nec Corp ファイル同期システム、ファイル同期方法およびファイル同期プログラム
US8654784B2 (en) 2010-03-11 2014-02-18 Microsoft Corporation Multi-stage large send offload
TWI425355B (zh) 2010-03-17 2014-02-01 Phison Electronics Corp 資料存取方法、記憶體控制器與儲存系統
JP5569074B2 (ja) 2010-03-19 2014-08-13 日本電気株式会社 ストレージシステム
US8719495B2 (en) 2010-03-30 2014-05-06 Lenovo (Singapore) Pte. Ltd. Concatenating a first raid with a second raid
US20110247074A1 (en) 2010-03-30 2011-10-06 Manring Bradley A C Metadata-based access, security, and compliance control of software generated files
US8584124B2 (en) 2010-04-20 2013-11-12 Salesforce.Com, Inc. Methods and systems for batch processing in an on-demand service environment
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
US8861727B2 (en) 2010-05-19 2014-10-14 Cleversafe, Inc. Storage of sensitive data in a dispersed storage network
US8370315B1 (en) 2010-05-28 2013-02-05 Symantec Corporation System and method for high performance deduplication indexing
US9507670B2 (en) 2010-06-14 2016-11-29 Veeam Software Ag Selective processing of file system objects for image level backups
TWI435219B (zh) 2010-07-29 2014-04-21 Phison Electronics Corp 資料保護方法、記憶體控制器及可攜式記憶體儲存裝置
US9275071B2 (en) * 2010-08-12 2016-03-01 Security First Corp. Systems and methods for secure remote storage
US8291170B1 (en) 2010-08-19 2012-10-16 Symantec Corporation System and method for event driven backup data storage
US8898114B1 (en) 2010-08-27 2014-11-25 Dell Software Inc. Multitier deduplication systems and methods
US8806502B2 (en) 2010-09-15 2014-08-12 Qualcomm Incorporated Batching resource requests in a portable computing device
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
US9372854B2 (en) 2010-11-08 2016-06-21 Hewlett Packard Enterprise Development Lp Load balancing backup jobs in a virtualized storage system having a plurality of physical nodes
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
US8510267B2 (en) 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8838911B1 (en) 2011-03-09 2014-09-16 Verint Systems Inc. Systems, methods, and software for interleaved data stream storage
US8832409B2 (en) 2011-03-09 2014-09-09 Seagate Technology Llc Dynamic guarding of a storage media
WO2012147087A1 (en) 2011-04-29 2012-11-01 Tata Consultancy Services Limited Archival storage and retrieval system
US8966486B2 (en) 2011-05-03 2015-02-24 Microsoft Corporation Distributed multi-phase batch job processing
JP5893016B2 (ja) 2011-06-02 2016-03-23 株式会社日立製作所 ストレージ管理サーバ、計算機システム、及びストレージ管理方法
US9361715B2 (en) 2011-06-02 2016-06-07 Microsoft Technology Licensing, Llc Global composition system
US8554918B1 (en) 2011-06-08 2013-10-08 Emc Corporation Data migration with load balancing and optimization
US8930691B2 (en) 2011-08-16 2015-01-06 Microsoft Corporation Dynamic symmetric searchable encryption
US8468423B2 (en) 2011-09-01 2013-06-18 International Business Machines Corporation Data verification using checksum sidefile
US20130145371A1 (en) 2011-12-01 2013-06-06 Sap Ag Batch processing of business objects
US9135269B2 (en) * 2011-12-07 2015-09-15 Egnyte, Inc. System and method of implementing an object storage infrastructure for cloud-based services
US8699159B1 (en) 2012-06-18 2014-04-15 Western Digital Technologies, Inc. Reducing effects of wide area track erasure in a disk drive
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
US20140068208A1 (en) 2012-08-28 2014-03-06 Seagate Technology Llc Separately stored redundancy

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149739A (ja) * 1992-11-11 1994-05-31 Hitachi Ltd ジョブ実行の受付確認方法
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
US8060473B1 (en) * 2006-01-17 2011-11-15 Symantec Operating Corporation System and method for conveying backup and restore data via email
JP2007299308A (ja) * 2006-05-02 2007-11-15 Ricoh Co Ltd ジョブ処理システム、ジョブ処理方法、プログラムおよび記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108241541A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 数据传输的方法和装置
CN112654978A (zh) * 2018-09-25 2021-04-13 万迪斯科股份有限公司 分布式异构存储系统中数据一致性实时检查的方法、设备和系统
CN112654978B (zh) * 2018-09-25 2024-03-08 西拉塔股份有限公司 分布式异构存储系统中数据一致性实时检查的方法、设备和系统

Also Published As

Publication number Publication date
CN104520822B (zh) 2019-01-08
JP2017162485A (ja) 2017-09-14
JP2015531125A (ja) 2015-10-29
EP2883145A2 (en) 2015-06-17
US20200327113A1 (en) 2020-10-15
JP6483746B2 (ja) 2019-03-13
US20140047040A1 (en) 2014-02-13
EP2883145A4 (en) 2015-08-19
CA2881490A1 (en) 2014-02-13
WO2014025806A3 (en) 2014-04-17
WO2014025806A2 (en) 2014-02-13
JP6162239B2 (ja) 2017-07-12
EP3333713A1 (en) 2018-06-13
US20160103870A1 (en) 2016-04-14
US10698880B2 (en) 2020-06-30
CA2881490C (en) 2022-08-02
US9225675B2 (en) 2015-12-29

Similar Documents

Publication Publication Date Title
US20200327113A1 (en) Data storage application programming interface
CN104603740B (zh) 归档数据识别
US9767129B2 (en) Data storage inventory indexing
US9465551B1 (en) Write horizon data management
US10157199B2 (en) Data storage integrity validation
US9092441B1 (en) Archival data organization and management
US9563681B1 (en) Archival data flow management
US9767098B2 (en) Archival data storage system
US9250811B1 (en) Data write caching for sequentially written media
US9830111B1 (en) Data storage space management
US10120579B1 (en) Data storage management for sequentially written media
CN104603776A (zh) 归档数据存储系统
US9223789B1 (en) Range retrievals from archived data objects according to a predefined hash tree schema
US9652487B1 (en) Programmable checksum calculations on data storage devices
US10558581B1 (en) Systems and techniques for data recovery in a keymapless data storage system
US9779035B1 (en) Log-based data storage on sequentially written media

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant