CN104813276B - 从备份系统流式恢复数据库 - Google Patents
从备份系统流式恢复数据库 Download PDFInfo
- Publication number
- CN104813276B CN104813276B CN201380061452.4A CN201380061452A CN104813276B CN 104813276 B CN104813276 B CN 104813276B CN 201380061452 A CN201380061452 A CN 201380061452A CN 104813276 B CN104813276 B CN 104813276B
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- storage system
- block
- stored
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
分布式数据仓库系统可代表客户将数据块保持在数据存储的多个集群中。每个集群可包括单个领导节点和多个计算节点,每个节点包括存储数据的多个磁盘。所述仓库系统可将每个数据块的主要和次要副本存储在集群中不同磁盘或节点上。每个节点可包括数据结构,所述数据结构保持关于被存储在所述节点上的每个数据块的元数据,所述元数据包括所述数据块的唯一标识符。所述仓库系统可在远程关键字‑值备份存储系统中具有高耐久性地备份数据块。流式恢复操作可用以使用数据块的唯一标识符作为密钥来从备份存储检索数据块。所述仓库系统可在完成所述恢复操作之前服务于传入查询(且可通过根据需要从备份存储检索数据来满足一些查询)。
Description
背景技术
分布式存储服务可包括在例如一个或多个计算机集群的分布式硬件基础设施上执行的多个并发进程。这些进程中的各种进程可在集群中不同物理和/或逻辑(例如,虚拟)机器上执行。在存储服务中,例如,在不同机器上的进程(例如,软件服务器)可各自将编程接口暴露给客户端,客户端可使用所述编程接口来访问可在多个存储资源上实施的存储系统。存储服务可存储系统中每个数据项的多个复本,使得一个服务器上的数据项的任何改变必须被传播到一个或多个其它服务器。
一旦节点或磁盘驱动器出现故障,发生故障的设备上的数据必须被恢复。在提供数据库服务的许多现有存储系统中,整个数据集必须被恢复(例如,从备份或归档文件恢复),然后系统才可恢复接受并处理查询。在执行增量备份的一些系统中,设备出现故障后恢复系统涉及执行多个增量恢复操作(对应于多个增量备份操作)。在其它存储系统中,设备出现故障后恢复系统涉及追踪事务记录来重建系统的状态。对于包括大量存储设备的数据仓库系统,系统必须停止服务以在一个或少数设备上执行恢复操作的时间量可代表系统的显著成本。
附图说明
图1是示出从远程关键字-值持久存储系统执行流式恢复操作的方法的一个实施方案的流程图。
图2是示出根据一些实施方案从客户的角度来看的分布式数据仓库服务的各种部件的框图。
图3是示出根据一个实施方案的分布式数据仓库系统的各种部件的框图。
图4是示出根据一个实施方案的分布式数据仓库系统中集群的框图。
图5是示出根据一个实施方案的超级块数据结构的框图。
图6是示出根据一个实施方案的用于备份被存储在分布式数据仓库系统中的数据的远程关键字-值持久存储系统的使用的框图。
图7是示出用于将数据块存储在分布式数据仓库系统中的方法的一个实施方案的流程图。
图8是示出用于在分布式数据仓库系统中执行备份操作的方法的一个实施方案的流程图。
图9A-9B描绘了示出用于在分布式数据仓库系统中出现故障之后重建数据块的方法的一个实施方案的流程图。
图10是示出用于在分布式数据仓库系统中响应于查询请求的方法的一个实施方案的流程图。
图11是示出用于响应于查询而确定返回数据块的哪个副本的方法的一个实施方案的流程图。
图12是示出用于从远程关键字-值持久存储系统临时接入数据块的备份副本来满足查询的方法的一个实施方案的流程图。
图13是示出用于以优先次序从远程关键字-值持久存储系统恢复分布式数据仓库系统中的数据块的方法的一个实施方案的流程图。
图14是示出用于确定从关键字-值持久备份存储恢复数据块的顺序的方法的一个实施方案的流程图。
图15是示出根据各种实施方案被配置以实施分布式数据仓库系统和对应关键字-值持久备份存储系统的至少一部分的计算机系统的框图。
虽然本文以若干实施方案和说明性附图举例描述了实施方案,但是本领域技术人员将认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图及其详细描述不旨在将实施方案限制为所公开的具体形式,相反,意图在于涵盖落入如由所附权利要求书所限定的精神和范围内的所有的修改、等效物和替代物。本文所用的标题仅用于组织目的,而非意味着被用来限制本说明书或权利要求书的范围。如本申请通篇所使用,词语“可”用于宽容的意义(即,意思是有可能),而非强制的意义(即,意思是必须)。类似地,词语“包括(include/including/includes)”的意思是包括但不限于。
具体实施方式
在一些实施方案中,本文所描述的系统可实施使得客户(例如,用户)在云计算环境中快速、简单且具有成本效益地设置、操作并缩放数据仓库的网络服务。网络服务可管理费时的管理任务,从而允许用户专注于他们自己的应用和业务。在一些实施方案中,数据仓库系统可为高度可伸缩且可扩展的企业级数据库查询和管理系统。它可提供对结构化数据的快速查询功能,可提供与各种数据加载和ETL(提取、转换和加载)工具的集成,可向客户连接提供一流的商务智能(BI)报告、数据挖掘和分析工具,且可被优化以非常快速地执行复杂的分析查询,例如包括多表连接、子查询和聚集的分析查询。在一些实施方案中,查询可被分布并平行放置于多个物理资源上,且数据仓库系统可在需要的基础上被放大或缩小。在一些实施方案中,用户可仅支付他们所使用的资源。在不同的实施方案中,数据仓库系统可有效地适用于各种类型和/或组织的数据库模式。
在一些实施方案中,本文所描述的分布式数据仓库系统可从使用分治策略来执行编译查询的计算节点的大规模并行处理(MPP)和集群的使用导出性能和快速计算能力中的一些。在一些实施方案中,集群可包括一个或多个节点,每个节点包括一个或多个磁盘、固态设备或代表客户存储数据块的其它永久存储设备。在一些实施方案中,客户/用户可能以例如交互地通过至数据仓库系统的SQL接口的多种方式来提交查询。在其它实施方案中,外部应用和程序可使用至数据仓库系统的开放式数据库连接(ODBC)和/或Java数据库连接(JDBC)驱动程序接口来提交查询。
在典型的大型数据库系统中,从备份恢复数据需要的时间可代表系统的显著成本。例如,在许多现有的系统中,在数据库系统故障之后需要恢复整个数据集,然后数据库系统才可重新启动。在一些实施方案中,本文描述的数据仓库系统可被配置以增量地(例如,一次一个物理数据块)将数据(例如,组成各种数据库表的数据)备份到远程关键字-值存储系统,且作为每个增量备份操作的一部分,将所有数据块的列表存储到系统中,而不管它们是作为所述增量备份的一部分而备份或是作为先前增量备份操作的一部分而备份。在一些实施方案中,远程关键字-值存储系统可专用于备份存储,而在其它实施方案中,远程关键字-值存储系统可提供通用存储以用于各种客户和/或客户应用。在各种实施方案中,数据仓库系统、通用计算系统或提供将数据本地存储于存储器(例如,短暂地)中的另一种类型的服务的计算系统可将数据的一个或多个副本写入远程关键字-值存储系统,所述远程关键字-值存储系统采用磁盘、固态存储设备或另一类型的持续性的存储介质以提供耐久性。如下文更详细地描述,本文所述的数据仓库系统可能能够在故障之后重新启动代表存储系统用户存储数据(例如,在数据库中)的集群(即,允许其接受并提供查询),而无需等待从备份恢复整个数据集。相反,任何丢失或破坏的数据块的备份副本可通过使用数据块的唯一标识符作为密钥以直接在远程系统中对其进行寻址来从备份系统流入数据仓库系统的存储器。
注意,在本文的描述中,术语“数据块”和“物理数据块”可用以代表被代表客户(例如,用户、客户端应用和/或数据仓库服务用户)存储在分布式数据仓库系统和/或远程关键字-值持久备份存储系统中作为个别(或可分离)对象的数据的部分(或块),或可用以代表当数据被存储在分布式数据仓库系统中物理磁盘上,被存储在分布式仓库系统中(例如,在实施存储器内数据库的系统中)节点上的系统存储器中和/或被存储在远程关键字-值持久备份存储系统中时数据的部分(或块),这取决于这些术语出现的上下文。在一些实施方案中,数据可被存储在具有与被存储在系统的存储器架构中的数据的标准单位的尺寸相同尺寸的数据块中,其可对应于存储器中的“页”。在其它实施方案中,数据块的大小可能与存储器的页面大小不同。
在一些实施方案中,本文所述的分布式数据仓库系统可在系统中本地存储每个数据块的两个或更多个副本(例如,在集群架构上)。例如,在一个实施方案中,每个1MB物理数据块的主要副本可被存储在集群中节点的一个磁盘上,且所述物理数据块的一个或多个次要副本(复本)可被存储在所述同一集群中其它节点的其它磁盘上。然而,没有将整个磁盘复制(或镜像)到一个其它磁盘上,被存储在给定磁盘上的数据块中的一些的副本可被分布在与被存储在给定磁盘上的其它数据块的副本不同的磁盘上。分布式数据仓库系统也可将每个数据块的副本存储在提供持久关键字-值存储的远程备份存储系统中作为单独的对象(即,值),且可将每个数据块的密钥存储在系统中数据块的列表内。例如,列出被存储在数据仓库系统中(或其节点中)的所有数据块的超级块数据结构可包括多个条目,每个条目存储关于个别数据块的元数据,且每个块的元数据可包括唯一标识符(ID),所述唯一标识符充当密钥以访问被存储在远程备份存储系统中的数据块的副本。在一些实施方案中,分布式数据仓库系统可通过将每个数据块的两个副本存储到给定集群中(例如,主要副本和次要副本)且将第三个副本存储到远程关键字-值持久存储系统中来向其客户/用户提供非常高的耐久性存储。
在一些实施方案中,当分布式数据仓库中的磁盘或节点发生故障时,有可能或不可能从集群内的其它磁盘恢复丢失或破坏的数据块,这取决于故障的类型和/或程度。例如,如果故障是磁盘故障或节点故障,那么有可能通过从集群内存储这些数据块的复本的其它磁盘拷贝数据块来恢复丢失或破坏的数据块(即,以从被存储在集群自身内的数据快速重建数据库)。然而,如果故障是整个集群的故障,或者是其后不可能从集群内重建丢失或破坏的数据块的另一种类型的故障,那么分布式数据仓库可被配置以从备份存储系统检索数据以重建丢失或破坏的数据块。如本文更详细地描述,在一些实施方案中,远程存储系统中数据块的副本可被访问以在从远程存储系统检索到副本(即,流入)之前或之后满足查询请求。例如,在一些实施方案中,分布式数据仓库系统可被配置以当在后台重建数据集时继续(或重新开始)接受并处理查询。换句话说,在故障之后,本文所述的分布式数据仓库系统可被配置以按需将数据从备份系统流入,直到整个数据集(或至少任何接收的查询所针对的数据)被恢复为止或除非整个数据集被恢复。如下文更详细地描述,在一些实施方案中,数据块可被以在最近什么时候在分布式数据仓库中访问数据块或在分布式数据仓库中访问数据块的频率的顺序,或在不久的将来将访问所述数据块的可能性的顺序从远程存储恢复。
图1中以流程图示出用于从远程关键字-值持久存储系统执行流式恢复操作的方法的一个实施方案。如在110示出,在这个实例中,方法可包括分布式数据仓库系统代表客户(例如,用户、客户端应用或存储服务用户)将数据块存储在集群中。方法可包括数据仓库系统通过将数据块的副本存储在远程关键字-值持久存储中来备份数据块,如120示出。如在这个实例中示出,响应于数据仓库系统中的故障,方法可包括数据仓库系统启动一个或多个数据块从远程关键字-值持久存储的恢复,如130示出。方法也可包括,在所有目标数据块被从远程关键字-值持久存储恢复之前,数据仓库系统接受并服务于针对客户数据的查询(例如,读取请求和/或写入请求),如140示出。换句话说,分布式数据仓库系统可能能够在故障之后开始或继续接受并提供查询请求,而无需恢复整个数据集,如在一些先前数据库系统中一般。例如,如果数据仓库系统中集群仅有一部分出现故障,那么集群可继续接受并提供查询而无中断。如果整个集群发生故障(并且影响所述集群中节点上所有超级块),那么超级块中一个或多个可能需要被引入系统存储器,然后针对集群的查询才可被接受和/或服务,使得可在远程关键字-值持久存储中访问目标数据。在一些实施方案中,每个超级块可被镜像到存储信息(即,关于被存储在特定节点上作为主要副本的数据块的信息)的特定节点之外的一个或多个节点上。
在一些实施方案中,本文所述的分布式数据仓库系统可对数据库表使用列存储。换句话说,来自数据库表的列信息可被存储到磁盘上数据块中,而非将列的整行存储在每个数据块中(如在传统的数据库方案中)。在一些实施方案中,以这样的列的方式存储表格数据可减少对各种查询的整体磁盘I/O要求并可提高解析查询性能。例如,以列的方式存储数据库表信息可减少当将数据检索到存储器中以执行数据库操作作为处理查询的一部分时(例如,当在表格中检索所有行的所有列字段值时)执行的磁盘I/O请求的数量,且可减少当处理查询时需要从磁盘加载的数据量。相反,对于给定数量的磁盘请求,比起如果每个数据块存储整个表的行,可以检索更多的行中的列字段值。在一些实施方案中,磁盘要求可使用与列存储数据类型相匹配的压缩方法来进一步减少。例如,由于每个块包含统一的数据(即,列字段值都是相同的数据类型),所以磁盘存储和检索要求可通过施加最适合于特定的列数据类型的压缩方法来进一步减少。在一些实施方案中,节省用于存储仅包含单一列的字段值的数据块在磁盘上的空间可转化为节省当检索数据且然后将所述数据存储在系统存储器中时(例如,当分析或以其它方式处理检索的数据)的空间。例如,对于一次只需要访问和/或操作一列或少量列的数据库操作,比起传统的基于行的存储,可能需要较少的存储器空间,因为只可检索到存储执行查询实际需要的特定列中的数据的数据块并将所述数据块存储在存储器中。
在各种实施方案中,本文所述的分布式数据仓库系统可支持标准或自定义应用编程接口(API)以进行各种数据库操作。例如,API可支持创建数据库、创建表格、改变表格、创建用户、删除用户、在表格中插入一个或多个行、拷贝值、从表格内选择数据(例如,查询表格)、取消或中止查询的操作,和/或其它操作。
在一些实施方案中,本文所述的分布式数据仓库系统的每个集群可包括领导节点和多个计算节点(即,非领导节点,例如查询引擎),其中每个节点是具有一定量的存储(例如,多个磁盘)和/或处理能力的虚拟机。在一些实施方案中,一旦被配置,集群可由客户/用户通过网络地址直接可见(且可访问)。换句话说,客户/用户可直接连接到集群(例如,以提交查询并接收对这些查询的响应),且可能不需要经过网络服务器(或服务)来访问集群,除了设置并管理集群的配置。在一些实施方案中,每个集群中的领导节点(其可能并不存储客户/用户数据)可保持用于对由计算节点存储在集群中的数据执行各种类型的查询的查询计划(例如,包括模式信息和/或元数据)。在领导节点内,调度进程可向计算节点发送查询任务(例如,通过专用网络通信织物)以进行执行。在一些实施方案中,领导节点也可负责划分输入数据(即,被包括在写入请求中的数据),以存储在集群的各种节点上。例如,领导节点可确定将存储所接收数据的不同部分的主要副本的节点。
在一些实施方案中,当客户请求来执行查询(例如,读取请求或写入请求)或接收到某一其它类型的数据库操作(例如,由集群中的领导节点)时,分布式数据仓库系统可产生一个新的过程,以保持客户的会话信息,且只要客户的会话仍然开放且该客户正将查询请求发送到领导节点,所述过程就可得以保持。请求的操作(SQL查询或某一其它数据库操作)可通过分析器和优化器来路由,以制定查询执行计划,从而进行或执行指定的查询或数据库操作(即,执行查询所需的逻辑步骤)。查询计划然后可被路由到执行引擎,所述执行引擎产生并编译领导节点和非领导节点(本文中有时称为计算节点)将执行以完成查询的查询执行代码。在一些实施方案中,每个个别执行计划步骤可能涉及将由计算节点或领导节点执行的数据的简单操作或操纵,且连接领导节点和计算节点的通信网络可用以分配中间结果。在一些实施方案中,分布式数据仓库系统可通过在多个节点片中每一个中分开查询过程以并行执行编译查询代码来实现优良的查询执行性能。此外,分布式数据仓库系统可利用优化的网络通信、存储器和磁盘管理,以将中间结果从一个查询计划步骤传递到下一个查询计划步骤,这也可能有助于加速查询执行。在一些实施方案中,查询的最后一个段可返回请求的数据。如果返回设置要被汇集或排序,那么计算节点可各自将中间结果的各自的部分发送到领导节点,所述领导节点然后可合并返回的数据,使得查询的最终结果可被发送回做出请求的客户/用户。
图2是示出根据一些实施方案从客户(其可包括用户、客户端应用和/或数据仓库服务用户)的角度来看的分布式数据仓库服务的各种部件的框图。在这个实例中,客户端212、222和232中每一个能够访问虚拟计算环境200中的集群210、220、230和240中一个或多个。如图2示出,集群210、220、230和240中每一个包括两个或更多个节点,其可代表能够访问这些集群的客户端212、222和232中的特定客户端来将数据存储在所述节点上。如在这个实例中示出,客户端212、222和232可能能够访问分布式数据仓库服务管理器202,例如,以设置并管理其访问的集群的配置,但是,一旦这些集群已被配置,客户端就可能能够直接访问它们(例如,而无需通过分布式数据仓库服务的服务接口)。
图3也是示出根据一个实施方案的分布式数据仓库系统的各种部件的框图,其中一些部件可能是分布式数据仓库系统的客户不可见的。如在这个实例中示出,存储客户端350a-350n可通过网络360访问分布式数据仓库系统380内的分布式数据仓库服务管理器302和/或数据仓库集群325和335(例如,这些部件对于存储客户端350a-350n可为网络可寻址与可访问的)。然而,在不同的实施方案中,当自动执行例如本文所述的各种备份和恢复操作时分布式数据仓库系统380可使用的关键字-值持久备份存储370对于存储客户端350a-350n可为网络可寻址与可访问的或者可能不是网络可寻址与可访问的。例如,在一些实施方案中,分布式数据仓库系统380可能以对于存储客户端350a-350n不可见的方式来执行这些操作和/或涉及关键字-值持久备份存储370的其它操作(包括临时接入分布式数据仓库系统380中当前不可用的数据块的备份副本,以满足从存储客户端350a-350n接收到的查询)。
如前文所述,分布式数据仓库系统集群可包括单个领导节点服务器,所述单个领导节点服务器接收来自各种客户端程序(例如,应用)和/或用户(使用者)的请求,然后解析所述请求并开发执行计划以执行相关数据库操作。更具体来说,领导节点可开发获得复杂的查询和联接的结果所需的一系列步骤。在一些实施方案中,领导节点可管理分布式数据仓库系统和客户/用户之间的通信,以及与被指示以执行数据库操作的计算节点的通信。例如,编译代码可由领导节点分布到各种计算节点来进行执行查询所需的步骤,且这些查询的中间结果可被发送回领导节点。
在一些实施方案中,分布式数据仓库系统集群也可包括一个或多个计算节点服务器,且每个计算节点服务器可包括例如为服务器的多核处理器的每个核限定的个别查询处理“片”。计算节点可通过执行执行计划的编译代码来执行查询的处理,且可将中间结果从这些查询发送回领导节点以进行最后的汇集。每个核或片可被分配有对应节点服务器的存储器和磁盘空间的一部分,以处理被发送到计算节点服务器中一个或多个的查询(或其它数据库操作)的工作量的一部分。在一些实施方案中,集群中的互连网络可使用标准或客户协议来提供专用网络通信,所述协议例如自定义的用户数据报协议(UDP)以在领导节点和计算节点之间交换编译代码和数据。
图4是示出根据一个实施方案的分布式数据仓库系统中集群的框图。如在这个实例中示出,分布式数据仓库集群400可包括领导节点420和计算节点430、440和450,所述节点可通过互连460彼此通信。如上所述,领导节点420可生成和/或保持一个或多个查询计划425,以在分布式数据仓库集群400上执行查询。如本文所述,分布式数据仓库集群中的每个节点可包括可代表客户(例如,用户、客户端应用和/或分布式数据仓库服务用户)存储数据块的多个磁盘。在这个实例中,计算节点430包括磁盘431-438,计算节点440包括磁盘441-448,且计算节点450包括磁盘451-458。在一些实施方案中,分布式数据仓库集群的部件(或其分布式数据仓库系统是部件)可使用各种适用的负载均衡技术中的任何技术来支持负载均衡。例如,在一些实施方案中,领导节点420可包括负载均衡部件(未示出)。
在一些实施方案中,集群中每一个计算节点实施管理与领导节点的通信的在节点服务器的操作系统上运行的进程的集合,以例如接收命令、发回数据且将编译代码路由到个别查询过程(例如,对于节点上的每个核或片)以执行给定查询。在一些实施方案中,计算节点中每一个包括超级块,所述超级块为其条目存储信息(例如,关于被存储在所述节点上的数据块中每一个的元数据)(即,每个数据块一个条目)的数据结构(例如,数据阵列)。在一些实施方案中,超级块数据结构的每个条目包括各自的块的唯一ID,且所述唯一ID可被用作密钥来在远程关键字-值持久备份存储系统中检索所述数据块的副本。在一些实施方案中,当数据块被首次写入分布式数据仓库系统中时,唯一ID可由领导节点或计算节点来生成(且超级块中的对应条目被创建)。
在各种实施方案中,除了数据块的唯一ID,分布式数据仓库系统的集群中给定节点上超级块数据结构的每个条目中包含的元数据可包括以下一个或多个:块是否已备份的指示、其已被访问次数的一个或多个计数(例如,在给定时间段内或特定事件之间)、节点上数据块的主要副本的位置、集群中其它节点上数据块的一个或多个次要副本的位置和/或被存储在节点上的主要副本和被存储在集群中其它节点上的任何次要副本之间的映射。例如,每个节点可拥有由集群存储的数据块的子集的主要副本,且也可存储其主要副本由集群中另一节点拥有的一个或多个其它数据块的次要副本(反之亦然)。在一些实施方案中,每个计算节点(或更具体来说,每个节点上的超级块)可了解哪些其它节点存储其主要数据块副本的次要副本。在一些实施方案中,拥有数据块的主要副本的每个节点可被配置以确定哪些其它节点将存储所述数据块的一个或多个次要副本,且可在这些其它节点上启动其复制。在一些实施方案中,超级块或领导节点可保持代表客户/用户被存储在数据库表中的数据的范围和存储该数据的节点之间的映射。在各种实施方案中,数据块的次要副本可用以恢复数据块的丢失或破坏主要副本,和/或可用以在恢复操作期间(例如,在目标数据块的主要副本被恢复之前或在完成整个磁盘或节点的恢复操作之前)满足针对数据块的查询。注意,虽然本文所述的若干实施方案包括被存储在数据仓库系统中的每个数据块的主要和次要副本,但是在其它实施方案中,每个数据块仅有一个副本可被存储在数据仓库系统中,或多个并行副本(其中没有一个具有如“主要”副本一样的特殊作用)可被存储在系统中不同节点上。
图5是示出根据一个实施方案的超级块数据结构的框图。在这个实例中,超级块510是包括多个条目(例如,条目520-528)的阵列,其中每个条目存储关于数据块的元数据。在这个实例中,阵列中的每个条目包括块ID、块是否已备份的指示、块的主要副本的位置的指示、被存储在集群中的块的任何次要副本的位置的指示和一个或多个数据块访问计数器(如下文更详细地描述)。例如,条目520包括块ID 521、备份指示符522、主要位置值523、一个或多个副本位置值524和一个或多个计数器525。类似地,条目530包括块ID 531、备份指示符532、主要位置值533、一个或多个副本位置值534和一个或多个计数器535;条目540包括块ID 541、备份指示符542、主要位置值543、一个或多个副本位置值544和一个或多个计数器545;且条目580包括块ID 581、备份指示符582、主要位置值583、一个或多个副本位置值584和一个或多个计数器585。
在一些实施方案中,被写入分布式数据仓库系统且被备份在远程关键字-值持久备份存储系统中的所有数据块可被写入作为具有新的、唯一ID的新数据块。然而,注意,其它实施方案可支持被存储的数据块的更新或修改。在此类实施方案中,除了追踪数据块是否已经被备份之外,对应超级块中的条目可追踪数据块何时被更新。在此类实施方案中,当数据块被更新时,超级块中所述数据块的条目可被更新以指向不同版本的数据块(和其复本)。当更新的数据块的副本被写入远程关键字-值持久备份存储系统时,其可覆盖数据块的先前副本,或其密钥可被重新分配,使得其随后访问更新版本的数据块。
图6是示出根据一个实施方案的用于备份被存储在分布式数据仓库系统中的数据的远程关键字-值持久存储系统的使用的框图。在这个实例中,一个或多个客户进程670可将数据存储在分布式数据仓库系统660中,其可利用关键字-值持久备份存储系统625。关键字-值持久备份存储接口640的API 641-645可将备份数据存储620中提供的关键字-值持久备份存储系统625的功能暴露于分布式数据仓库系统660,就好像分布式数据仓库系统660是关键字-值持久备份存储系统625的客户一样。例如,分布式数据仓库系统660可执行各种功能,例如通过这些API从备份数据存储620上传或检索数据,以对被保持在分布式数据仓库系统660中的数据执行备份和恢复操作。如图6示出,关键字-值持久备份存储系统625可将数据块存储为备份数据存储620中的对象(示出为对象635a-635n)。如前文所述,被存储在关键字-值持久备份存储系统625的备份数据存储620中的每个对象可由分布式数据仓库系统660使用各自的、唯一密钥来检索。在一些实施方案中,关键字-值持久备份存储系统625可向存储的对象提供高的耐久性(例如,通过应用各种类型的冗余方案)。
在图6示出的实例中,分布式数据仓库系统660可根据“放置对象”API(示为641)将数据块备份到关键字-值持久备份存储系统625的备份数据存储620,且可通过对应的“返回对象密钥”API(示为642)接收对这些操作的确认。在这个实例中,被存储在备份数据存储620中作为对象的数据块可根据关键字-值持久备份存储系统625的“获取对象”API(示为643)从备份数据存储620检索,且可通过对应的“返回对象数据”API(示为644)接收请求的数据。在一些实施方案中,当由分布式数据仓库系统660在备份数据存储620中存储的对象数据丢失时,关键字-值持久备份存储系统625可通过“通知对象丢失”API(示为645)来通知分布式数据仓库系统660。在其它实施方案中,关键字-值持久备份存储系统625提供的API可包括更多、更少或不同的API来调用或接收对与存储相关的操作或其它操作的响应。例如,在一些实施方案中,关键字-值持久备份存储系统的API可包括“删除对象”API,“删除对象”API包括对象的密钥(即,唯一数据块标识符)作为输入参数。在此类实施方案中,响应于根据这个API接收到删除对象的请求,关键字-值持久备份存储系统625可将对象定位在备份数据存储620中(例如,使用密钥),且可将其从备份数据存储620删除。
注意,在各种实施方案中,图6中分布式数据仓库系统660和关键字-值持久备份存储接口API 641-645之间的API调用和响应可通过安全代理连接(例如,由网关控制平面管理的安全代理连接)来执行,或者可通过公共网络或替代性地通过例如虚拟专用网络(VPN)连接的专用通道来执行。关键字-值持久备份存储系统625的这些和其它API可根据不同技术来实施,所述技术包括但不限于,简单对象访问协议(SOAP)技术和代表性状态传输(REST)技术。换句话说,关键字-值持久备份存储系统625的API可能但不一定被实施为SOAPAPI或RESTful API。SOAP是用于在基于网络的服务的上下文中交换信息的协议。REST是分布式超媒体系统的架构风格。RESTful API(也可称为RESTful网络服务)是使用HTTP和REST技术实施的网络服务API。在一些实施方案中,本文所描述的API可用各种语言的客户机库包裹,包括但不限于,C、C++、Java、C#和Perl,以支持与关键字-值持久备份存储系统625的集成。
如前文所述,在一些实施方案中,分布式数据仓库系统可将每个数据块的单个主要副本存储在给定集群中一个节点的一个磁盘上,且可将每个数据块的一个或多个其它本地副本(次要副本)存储在同一集群中其它节点的各自的磁盘上。如上所述,这些次要副本可能以块为基础镜像由各种磁盘存储的数据,而非在整个磁盘基础上镜像数据。另外的副本(即,备份副本)可被写入远程关键字-值持久存储系统(即,不是分布式数据仓库系统的一部分或其任何集群的存储系统)。这个备份副本可能访问起来比较慢但可能极其持久。
在一些实施方案中,如果在影响数据块的分布式数据仓库中出现故障且无法从其集群中可用的信息恢复数据块,那么被存储在远程存储系统中的所述数据块的备份副本可被临时接入(或“故障接入”)分布式数据仓库系统中的系统存储器。换句话说,当集群中无主要或次要副本可用时,数据块的备份副本可从远程备份存储检索。例如,分布式数据仓库系统可在涉及特定数据块的故障之后通过使用前台进程按需将数据块从备份系统流入来继续提供针对特定数据块的查询(即,如果需要数据块响应于查询),同时后台进程工作来恢复丢失或破坏的数据(在数据块为基础),以在分布式数据仓库系统中集群的各种磁盘和节点上完全重建数据集。
图7中以流程图示出用于将数据块存储在分布式数据仓库系统中的方法的一个实施方案。如在710示出,在这个实例中,方法可包括接收在分布式数据仓库系统中写入新数据块的请求。响应于接收请求,方法可包括创建数据块的唯一ID,和在集群中一个节点的超级块数据结构中创建数据块的新条目(例如,将存储数据块的主要副本的节点),如720示出。在一些实施方案中,为数据块创建的唯一ID当创建时可被存储在超级块数据结构中的新条目中,且随后可由其它操作用作数据结构中所述条目的索引。
如在这个实例中示出,方法可包括将数据块的主要副本写入集群中节点上的一个磁盘,和将数据块的一个或多个次要副本写入集群中其它磁盘(在同一节点或不同节点上),如730示出。方法也可包括更新超级块中的对应条目(例如,以指示数据块的主要和次要副本的位置),和在集群中提交超级块,如740示出(在一些实施方案中,其可包括在集群中复制超级块,或在集群中传播被存储在超级块中的数据的所有或一部分)。在存储数据块的主要和次要副本和更新超级块数据结构之后的某一时刻,方法可包括启动超级块、数据块和被存储在分布式数据仓库系统中的一个或多个其它数据块的备份,如750示出。例如,在不同的实施方案中,备份操作可周期性地(例如,在预定的时间表上),或响应于各种预定触发事件或条件(例如,在系统中创建预定数量的新块之后,或在系统中每次更新和/或提交超级块数据结构之后)而执行。根据各种实施方案,下文更详细地描述了示范性备份操作。
如前文所述,本文所描述的系统可在基于集群的架构中实施块级存储,且可能以块为基础备份并恢复数据(例如,以对应于物理数据块的单位备份并恢复数据),而非以文件为基础管理数据和/或使用数据库表的行或列的知识。注意,在一些实施方案中,只有被提交的块才可被备份到远程关键字-值持久备份存储系统(即,备份的内容中不反映进行中的交易)。在各种实施方案中,本文描述的远程关键字-值备份存储系统可使用复制、奇偶校验、纠删码或另一误差校正技术来为数据仓库系统代表客户保持的数据的备份副本提供高的耐久性。
在一些实施方案中,恢复操作可通过使用指示每个数据块本地所处以及在备份存储中所处的位置的列表以立即引入数据仓库系统来开始。最初,本地列表可能是空的。接着,后台进程可被调用以将数据块从备份存储流回进入数据仓库系统。同时,前台进程可开始(或继续)处理查询。当且如果前台进程遇到尚未被从备份带回进入数据仓库系统的数据块中的数据的请求,数据块可根据需要本身“故障接入”。
图8中以流程图示出用于在分布式数据仓库系统中执行备份操作的方法的一个实施方案。如在810示出,在这个实例中,方法可包括将节点的最后提交的超级块备份到远程关键字-值持久存储。在一些实施方案中,超级块数据结构可能太大而不能被备份作为远程关键字-值持久存储中的单个对象,且可被存储作为对象集合,每个对象表示超级块数据结构的子阵列且每个对象具有其自己的唯一标识符(即,密钥)。在其它实施方案中,超级块数据结构可被存储作为远程关键字-值持久存储中的单个对象,且可具有单个、唯一标识符(即,密钥)。如前文所述,对于被存储在分布式数据仓库系统中的每个数据块,超级块可指示所述数据块是否已被备份。如图8示出,方法可包括备份尚未被备份的超级块中的条目指向的数据块,如820示出。例如,在这个备份操作期间,新的数据块和/或自上次被修改以来尚未被备份的数据块可针对备份。
如果有更多的数据块要备份(示为从830肯定退出),那么方法可包括对要备份的每个另外的数据块重复820示出的操作。这在图8中由从830到820的反馈示出。然而,一旦没有另外的数据块要备份(示为从830否定退出),方法可包括更新超级块以反映数据块已被备份,如840示出。注意,在其它实施方案中,一旦对应数据块被备份而非备份操作针对的所有数据块已被备份之后,就可更新超级块数据结构中个别条目。
注意,在一些实施方案中,给定集群的领导节点可协调备份和/或恢复过程,以确保集群的节点间的一致。例如,在一些实施方案中,当提交集群的任何更新时,可能以锁步设置集群中所有节点的超级块的版本,而不管集群中所有节点是否都有更新。换句话说,在集群中提交任何更新操作可使得集群的节点上所有超级块的版本号(或其它版本标识符)更新到相同值。在一些所述实施方案中,当启动备份操作时,领导节点可被配置以确保所有节点备份具有相同版本标识符值的超级块,且然后节点本身可备份对应的数据块(根据被存储在超级块中的元数据)。类似地,在完整的集群恢复操作中,领导节点可被配置以确保所有节点恢复具有相同版本标识符值(理想情况下,最近提交的超级块的版本标识符值)的超级块,且然后节点本身可对合适的数据块执行流式恢复操作(根据被存储在所恢复超级块中的元数据)。然而,在一些实施方案中,如果具有最近提交的超级块的版本标识符值的超级块在一个或多个节点上不可用(例如,如果其已丢失或破坏,且没有有效的/未损坏的镜像副本可用于集群或远程备份存储中),那么领导节点可被配置以确保所有节点恢复具有相同先前版本标识符值的超级块(即,领导节点可确保存储在集群中的数据的先前一致的快照被恢复)。
图9A-9B中以流程图示出用于在分布式数据仓库系统中出现故障之后重建数据块的方法的一个实施方案。如在910示出,在这个实例中,方法可包括分布式数据仓库系统代表客户(例如,用户、客户端应用或数据仓库服务用户)将数据块存储在集群中,和将数据块备份在远程关键字-值持久存储中。在这个实例中,在数据仓库系统中检测到故障(如915示出)之后,方法可包括确定给定节点上的任何丢失(或破坏)数据块是否可使用仍被存储(且未损坏)在同一集群内的数据和本地元数据(例如,被存储在给定节点上的给定节点的超级块)来重建(如920示出)。如果可以,示为从920肯定退出,那么方法可包括使用被存储在集群内的数据和元数据(例如,通过检索数据块的次要副本,根据被存储在给定节点上对应超级块中的元数据)来在给定节点(或其磁盘)上重建丢失(或破坏)的数据块,如925示出。
如在这个实例中示出,如果丢失(或破坏)的数据块不能使用仍被存储(且未损坏)在同一集群内的数据和元数据来重建(示为从920否定退出),那么方法可包括确定相关的超级块(即,给定节点,或其磁盘的超级块)是否完好(即,未丢失或损坏),如930示出。如果超级块完好,示为从930肯定退出,那么方法可包括使用被存储在给定节点上超级块中的信息来从关键字-值存储检索丢失/破坏的数据的备份副本,如935示出。如果给定节点的超级块在给定节点上不是完好的(示为从930否定退出),且没有给定节点的超级块的镜像(副本)在集群内可用且完好(即,未损坏)(示为从940否定退出),那么方法可包括启动完整的集群恢复操作。这在图9A中由连接元件A示出到图9B。否则,如果给定节点的超级块的镜像(副本)在集群内可用且完好(即,未损坏)(示为从940肯定退出),那么方法可包括从镜像恢复超级块(如945示出)和启动给定节点的所有块的恢复操作(如950示出)。
如在这个实例中示出,如果有更多的节点具有被从备份恢复的数据(示为从955肯定退出),那么方法可包括对于每个另外的节点重复示出为920–955的操作。这在图9A中由从955到920的反馈示出。一旦没有另外的节点具有要被恢复的数据,但在从远程关键字-值持久备份存储恢复所有丢失或破坏的块之前,方法可包括接受并服务于针对客户数据的查询,如960示出。
如在这个实例中示出,如果在集群内不能发现给定节点的完好(有效)的超级块(即,如果给定节点的超级块被破坏),那么方法可包括在完整的集群上启动恢复操作。这在图9B中示出为在连接元件A之后开始。如在这个实例中示出,完整的集群恢复操作可包括从远程关键字-值持久存储恢复集群中每个节点的最后提交的超级块(如965示出),且在每个节点上,从远程关键字-值持久存储启动恢复的超级块中的条目指向的所有数据块的流式恢复操作(如970示出)。如在先前的实例中,方法可包括,在从远程关键字-值持久存储恢复集群的所有数据块之前,使得数据仓库系统可用于接受并服务于查询(如975示出)。
注意,在各种实施方案中,系统可在开始恢复操作和检索存储关于丢失的数据块的信息的超级块数据结构(例如,如果这些超级块数据结构在检测到故障之后并不完好)之后的任何点被保持有效(即,使得可用于处理从客户接收的查询请求),或系统可甚至在检测到故障的情况下(例如,如果存储关于丢失数据块的信息的超级块数据结构在检测到的故障之后保持完好)保持有效。换句话说,在各种实施方案中,本文描述的系统和方法可允许分布式数据仓库系统在系统中出现故障之后从远程关键字-值持久备份存储恢复所有被影响的数据块之前接受并提供针对其存储的客户数据的查询。
在一些实施方案中,当读取数据仓库系统保持的数据块时,系统本身可被配置以自动确定是访问被存储在数据仓库系统的集群中的磁盘中的数据块的副本中的一个副本(例如,数据块的主要或次要副本)还是访问被存储在远程备份存储系统中的数据块的备份副本。在一些实施方案中,这个确定可包括当从集群中的磁盘读取数据块时执行一致性检查,以评估数据块是否已经遇到物理或逻辑损坏。例如,如果数据块的主要副本已被损坏,那么数据块可从其次要位置读取。如果次要副本也不可用(例如,由于任何的各种原因,包括本文所描述的原因),那么最新版本的这个单个数据块可被自动从备份存储检索并被临时接入正在运行的系统,而不需要客户知道备份副本的标识或位置且不需要恢复任何其它数据块。
图10中以流程图示出用于在分布式数据仓库系统中响应于查询请求的方法的一个实施方案。如在1000示出,在这个实例中,方法可包括分布式数据仓库系统代表客户或用户接收针对被存储在给定集群中的数据的查询。响应于接收到查询,方法可包括,对于查询针对的数据块,给定集群的领导节点确定当前存储数据块的主要副本的计算节点,如1010示出。如果数据块的主要副本可用(例如,用于至少部分满足查询),示为从1020肯定退出,那么方法可包括从数据块的主要副本获得目标数据和将其返回到请求者,如1025示出。
如果数据块的主要副本不可用(例如,由于物理或逻辑损坏、软件错误、I/O通道中的存储器问题、磁盘故障、节点故障或因为其在损坏或故障之后尚未被恢复),那么方法可包括主要计算节点或领导节点确定存储数据块的一个或多个次要副本的计算节点,如1030示出。如果数据块的次要副本可用(示为从1040肯定退出),那么方法可包括从数据块的次要副本获得目标数据和将其返回到请求者,如1045示出。如果没有数据块的次要副本可用(示为从1040否定退出),那么方法可包括领导节点或主要计算节点确定数据块的唯一ID(例如,基于被存储在先前存储数据块的节点的超级块数据结构中的元数据),将数据块的请求发送到远程关键字-值持久备份存储系统以检索目标数据,和将目标数据返回到请求者,如1050示出。如果有接收到的查询针对的更多数据块(示为从1060肯定退出),那么方法可包括对那些另外的数据块重复在1010到1050示出的操作。这在图10中由从1060到1010的反馈示出。一旦没有接收到的查询针对的另外的数据块,示为从1060否定退出,查询处理可完成,如1070示出。注意,图10示出用于确定访问所针对的数据块的若干副本中的哪个副本以响应于查询的操作可在分布式数据仓库系统中自动执行(例如,无需用户干预)。
图11中以流程图示出用于响应于查询而确定返回数据块的哪个副本的方法的一个实施方案。如在1110示出,在这个实例中,方法可包括客户将查询请求发送到数据仓库集群。如果集群不可用(示为从1120否定退出),那么方法可包括启动集群的重建,如1125示出,然后重新尝试满足查询(未示出)。例如,方法可包括启动用于从被存储在远程关键字-值持久备份存储系统中的数据的备份副本恢复整个集群的后台进程。如本文所述,在一些实施方案中,并非等待整个集群(或甚至目标数据块)被恢复然后才重新尝试满足查询,目标数据块的备份副本可由检索查询针对的数据块的前台进程从远程关键字-值持久备份存储系统检索。如果集群是可用的(示为从1120肯定退出),那么方法可包括,对于查询针对的数据块,领导节点确定存储数据块的主要副本的计算节点,如1130示出。如果数据块的主要副本不是完好的(例如,如果其丢失或破坏,示为从1140否定退出),那么方法可包括启动从数据块的次要副本获得目标数据的尝试,将一致性检查应用到所获得的数据(如果找到),和/或启动将主要数据块副本从次要副本恢复(如1170示出)。
如在这个实例中示出,如果目标数据的主要副本完好且未被破坏(示为从1140肯定退出),那么方法可包括从数据块的主要副本检索目标数据,和将一致性检查应用到所检索到的数据,如1150示出。如果检索到的数据通过一致性检查(示为从1160肯定退出),那么方法可包括将目标数据返回到客户(如1185示出)。
如果检索到的数据未通过一致性检查(示为从1160否定退出),那么方法可包括启动从数据块的次要副本获得目标数据的尝试,将一致性检查应用到所获得的数据(如果找到),和/或启动将主要数据块副本从次要副本恢复(如1170示出)。如果发现数据块的一致次要副本(示为从1180肯定退出),那么方法可包括将目标数据返回到客户,如1185示出。如果未发现数据块的一致次要副本(示为从1180否定退出),那么方法可包括从备份存储系统(例如,远程关键字-值持久备份存储系统)临时接入数据块的副本和将目标数据返回到客户,如1190示出。注意,可对存储查询针对的数据的任何其它数据块(未示出)重复1130-1190示出的操作中的各种操作,但可能不必恢复或甚至扫描被存储在备份存储系统中的磁盘、节点或集群的所有数据块,以从满足查询所需的备份存储系统检索数据。还需要注意,图11示出用于确定将所针对的数据块的若干副本中的哪个副本返回到客户以响应于查询的操作可在分布式数据仓库系统中自动执行(例如,无需系统管理员或其它用户干预)。
图12中以流程图示出用于从远程关键字-值持久存储系统临时接入数据块的备份副本来满足查询的方法的一个实施方案。如在1210示出,在这个实例中,方法可包括客户将针对给定数据块的查询请求发送到数据仓库集群。如果目标数据块于集群中可用(示为从1220肯定退出),那么方法可包括从集群内的节点(例如,存储目标数据块的主要或次要副本的节点)获得目标数据块,和将目标数据块(或其请求的部分)返回到客户,如1225示出。如果,由于任何的各种原因(例如,由于物理或逻辑损坏、软件错误、I/O通道中的存储器问题、磁盘故障、节点故障或任何其它原因),目标数据块于集群中不可用(示为从1220否定退出),那么方法可包括将目标数据块从远程关键字-值持久存储系统引入系统存储器(由充当其在远程关键字-值持久存储系统中的访问密钥的唯一数据块标识符索引)以满足查询,和将目标数据块(或其请求的部分)返回到客户,如1230示出。换句话说,目标数据块可处于“故障接入”(以类似于页面错误之后所采用的方式)以满足查询请求,而无需扫描数据或恢复比所述目标数据块多的数据块。
如在这个实例中示出,一旦目标数据块已被引入系统存储器,方法可包括将目标数据块的主要副本写入数据仓库集群内的节点,和相应地更新合适的元数据(例如,更新所述节点的超级块数据结构中的元数据,以反映节点中数据块的当前状态和/或位置),如1240示出。方法也可包括启动将目标数据块复制到数据仓库集群内一个或多个其它节点(换句话说,其可包括存储主要副本的节点创建数据块的一个或多个次要副本),和相应地更新合适的元数据,如1250示出。在各种实施方案中,恢复的数据块的主要和/或次要副本的元数据可与其取代的被破坏数据块的主要和/或次要副本的元数据相同或不同(例如,取决于其被存储在与先前存储被破坏数据块的副本的磁盘和/或节点相同还是不同的磁盘和/或节点上)。如在这个实例中示出,在一些实施方案中,方法可包括记录系统中触发恢复操作的任何故障的指示(或与之相关的其它信息)和/或恢复操作本身的指示(或与之相关的其它信息)以用于后续使用,如1260示出。例如,在一些实施方案中,当执行故障分析、趋势分析、常规或有针对性的维护或其它功能时,所述信息(其可被记录用于导致各种数据块的一致且未损坏副本不可用于数据仓库集群中的其它这种故障或条件/事件)可随后被访问(例如,在记录所述信息的文件或数据结构中)。
注意,在其它实施方案中,在目标数据被从远程关键字-值持久存储系统引入系统存储器以满足查询且被返回到客户(如1230示出)之后,目标数据可被丢弃,而不是被写入磁盘。在一些所述实施方案中,丢失或破坏的数据块的主要和次要副本可能不被从备份存储检索数据块以满足查询的前台进程,而只被对整个磁盘、节点或集群执行流式恢复操作的后台进程写入磁盘。还要注意,在一些实施方案中,如果查询请求针对一个以上数据块中的数据,那么图12示出的操作可重复,以定位并返回满足查询请求所需的所有数据,其可包括从远程关键字-值持久存储系统“故障接入”一个或多个另外的数据块和/或在数据仓库集群中恢复所述数据块(不管是通过服务于查询请求的前台进程还是通过后续后台进程)。在多个数据块由后台进程在数据仓库集群中恢复的实施方案中,恢复数据块的顺序可依赖于其在不久的将来将被再次访问的相对可能性,如下文更详细地描述。
如前文所述,在一些实施方案中,数据块可能以反映其在不久的将来将被访问的可能性(或期望可能性)的顺序来从远程存储系统恢复。在不同的实施方案中,不同方案可用以追踪各种数据块的近期性和/或相关性,以影响流式恢复操作的块的优先顺序。在一些实施方案中,数据块可使用后台进程基于所述确定的优先顺序来恢复,同时前台进程在需要的基础上将数据块从备份存储流入以满足传入查询。注意,在其它系统中,许多(或大多数)其它进程必须在降级状态下运行,直到整个出现故障(或破坏)的磁盘或节点被重建。在一些实施方案中,本文所描述的系统可在恢复操作期间实施更适度降级。换句话说,如本文所述,优先化将由后台进程执行的检索可允许其如此排序以使得其最小化由于恢复过程而导致的系统性能的感知到的降级(例如,通过重建更频繁访问的数据,然后重建较不经常访问的数据)。
图13中以流程图示出用于以优先次序从远程关键字-值持久存储系统恢复数据块的方法的一个实施方案。如在1310示出,在这个实例中,方法可包括检测数据仓库系统的一个或多个部件的故障(或与之相关的故障)。作为响应,可启动恢复受影响的数据(例如,不能从数据仓库系统中剩余的不受影响的数据恢复的数据)的操作。如在这个实例中示出,方法可包括基于确定数据块中每一个在不久的将来将被访问的相对可能性来确定从关键字-值持久备份存储恢复受影响的数据块的优先级,如1320示出。如下文更详细地描述,可应用各种标准来确定恢复受影响的数据块的优先次序,包括但不限于:将其如此排序以使得首先恢复是最近的查询目标的数据块,使得首先恢复被最近写入的数据块,或者使得首先恢复被最近备份的数据块。
一旦确定恢复受影响的数据块的顺序,方法可包括从关键字-值持久备份存储检索最高优先级数据块(例如,将其流入数据仓库系统中的系统存储器中),将数据块的主要副本写入数据仓库系统,和启动将数据块复制到数据仓库系统中(例如,以创建数据块的一个或多个次要副本),如1330示出。注意,在将主要和次要副本写入磁盘之前,将数据块流入系统存储器可使得有可能比起当数据必须从集群中的磁盘或从备份存储检索时更快地响应于针对所述数据的查询(例如,来自更快的存储器)。如果有更多的数据块要恢复(示为从1340肯定退出),那么方法可包括从关键字-值持久备份存储检索下一个最高优先级数据块,将下一个最高优先级数据块的主要副本写入数据仓库系统,和启动下一个最高优先级数据块的复制,如1350示出。如图13示出,在1340和1350示出的操作可重复,直到在这个恢复操作中要恢复的所有数据块(例如,受检测到的一个或多个故障影响的所有数据块)已被恢复(示为从1340否定退出)。方法也可包括更新重建的部件的合适的元数据(例如,在每个节点的超级块中),如1360示出,且此时,恢复操作可完成,如1370示出。注意,在其它实施方案中,一旦对应数据块被重建而非在恢复操作针对的所有数据块已被重建之后,可更新超级块数据结构中的个别条目。
在一些实施方案中,当从远程备份存储执行流式恢复时,可能显著有益于排序数据块的恢复,使得其与传入查询访问的可能性对齐。在一些实施方案中,数据块可基于在最近什么时候和/或以什么样的频率在分布式数据仓库中访问所述数据块来优先化恢复。例如,在包含在三年的时间里存储的数据的数据仓库中,其中大多数查询访问在过去的一周内存储的数据,将在过去的一周内存储的数据块和与这些数据块相关的数据块(例如,被加入到事实表的事实和所有维表的数据)首先引入系统存储器可允许系统在恢复数据集中的所有数据之前响应于大多数查询。在这个实例中,一旦少于1%的数据被从备份存储引入,针对数据集的查询的典型分布就可有效执行。
在一些实施方案中,包括时间序列数据的数据块可被优先化,使得存储最新的数据的数据块被首先恢复。在一些实施方案中,存储更多最近创建(或更新)的数据的数据块可被优先于存储更旧数据的数据块,而不管其存储数据的类型。在其它实施方案中,在假设刚被加载到系统中的表格将比存储其它表格数据的数据块更快地查询或排序的情况下,恢复操作可首先优先化表示最近加载数据库表的数据块。在其它实施方案中,可基于最近查询模式的分析来优先化数据块以用于恢复。例如,如果数据块的访问模式有任何歪斜,那么当从备份存储恢复数据块时,所述访问模式可被延续。在一些实施方案中,最近运行的查询可被检查以查看其访问哪些数据块和/或确定大量先前查询的历史访问模式。例如,查询历史可由数据仓库系统保持(例如,在日志或表格中),且可执行对所述历史的分析以确定数据的哪些表格和/或列被最频繁地查询。存储被最频繁地查询的列数据的数据块可被优先化以用于恢复。在一些实施方案中,优先化数据块以用于恢复可基于当前活动由动态优先级进行。例如,当数据块被从备份存储临时接入数据仓库系统以满足当前查询时,可增加存储与已被临时接入的数据块相同列的数据的任何剩余的待恢复数据块的优先级。
在一些实施方案中,本文描述的超级块数据结构可每个条目(即,每个数据块)用一个或多个计数器增强,所述计数器的值反映在给定周期内已访问对应数据块的次数。例如,超级块数据结构中每一个可包括当前访问周期计数器和先前访问周期计数器。在每个数据块访问时,可更新当前访问周期计数器。有时(例如,周期性地或响应于某些事件,例如备份或恢复操作),当前访问周期计数器的计数值可被移动到先前访问周期计数器(覆盖其先前值),且当前访问周期计数器的值可被重置(例如,重置为零值)。在一些实施方案中,当创建新的块时,其超级块数据结构可被初始化以包括平均或中值当前访问周期计数器值,从而指示它们相当有可能被访问(例如,使得它们不会相对于其它数据块处于不利地位)。在其它实施方案中,新的块的当前访问周期计数器值可被初始化为默认值(例如,最大计数值的20%)。在一些实施方案中,数据块上的排序操作可将所有受影响的数据块的计数器重置为初始值或默认值。
在这个实例中,对于恢复操作,数据块可基于当前访问周期计数器值和先前访问周期计数器值的总和(从最高总和到最低总和)来排序。在另一实例中,数据块可基于当前访问周期计数器值和先前访问周期计数器值的加权平均值或加权总和(例如,二分之一的先前访问周期计数器值加上当前访问周期计数器值)来排序。在一般情况下,在不同的实施方案中,数据块可基于表示其当前访问周期计数器和其先前访问周期计数器的值的逻辑组合和/或数学组合的值来排序。
图14中以流程图示出用于确定从关键字-值持久备份存储恢复数据块的顺序的方法的一个实施方案。如在1410示出,在这个实例中,方法可包括客户将针对给定数据块的查询请求发送到数据仓库集群。如在这个实例中示出,方法可包括数据仓库集群满足请求并递增与给定数据块相关的当前访问周期计数器,以反映已访问给定数据块的事实,如1420示出。如果当前访问周期(例如,其中访问的计数由当前访问周期计数器捕获的当前周期)尚未期满(示为从1430否定退出),那么方法可包括继续计数对给定数据块和/或一个或多个其它数据块的访问(使用与那些其它数据块相关的不同当前访问周期计数器)。这在图14中由从1430的否定退出到1410的反馈示出。如果(或者当)当前访问周期期满(示为从1430肯定退出),那么方法可包括将当前访问周期计数器值拷贝到先前访问周期计数器(例如,覆盖计数器的值),和将当前访问周期计数器的值重置为初始值或默认值,如1440示出。
如在这个实例中示出,方法可包括继续计数对给定数据块和/或一个或多个其它数据块的访问(使用与那些其它数据块相关的不同当前访问周期计数器),直到或除非有事情触发恢复操作。这在图14中由从1450的否定退出到1410的反馈示出。注意,在一些实施方案中,恢复操作可响应于检测到磁盘、节点或集群的故障、响应于针对不可用数据的查询(或所述数据的一致且未损坏副本不可用于集群中)或响应于来自客户(例如,用户、客户端应用或存储服务用户)这么做的明确请求而触发。一旦恢复操作被触发(示为从1450肯定退出),方法可包括将每个受影响的数据块的当前访问周期计数器值和先前访问周期计数器值组合以确定恢复受影响的数据块的顺序,如1460示出。例如,在不同的实施方案中,这两个计数器值(对于每个数据块)的总和可用以确定应恢复数据块的顺序(例如,使得在访问计数已被捕获的最近两个周期中已被访问多次的数据块将比访问次数较少的数据块更快恢复)。
在一些实施方案中,本文所述的数据仓库系统可实施允许客户灵活地管理工作量的优先次序且特定说来允许分类工作量的工作量管理机制,使得迅速、快速运行的查询可能不会被卡在长时间运行的查询后面的队列中(例如,短查询偏置)。在一些实施方案中,数据仓库系统可实施提供查询分类的另外的标准的可定制的查询服务类别,且高级别工作量管理器部件管理查询、将所述查询分配给服务类别。在此类实施方案中,对于每个服务类别,数据仓库系统可提供保持等待执行的查询的优先级列表的查询队列。此外,数据仓库系统可提供任务池,所述任务池限定池内可同时运行的查询数量(只要计算节点过程可用于运行所述查询)。
在一些实施方案中,本文所述的数据仓库系统可使用大规模并行处理(MPP)基础设施,以提供对在数据库中大量数据上操作的最复杂的查询的快速执行。使用现成的标准服务器部件,数据仓库系统可简单地通过增加更多的“计算节点”服务器(具有多核处理器)以处理更苛刻的工作量,来提供接近线性的可扩展性以提高性能。所有查询处理(除了最后的结果汇集)可由计算节点进行,其中每个节点的每个核在整个数据的较小部分上执行相同的编译查询“段”。
此外,数据仓库系统可使用列导向数据存储和压缩,以降低存储要求(从而也减少磁盘I/O),且执行更多存储器内查询处理。全面优化和编译的代码可被分布式在数据仓库系统集群的所有节点上,以“分治”并增加复杂查询的执行速度,同时也消除了使用解释程序的开销。
在一些实施方案中,本文所述的数据仓库系统可提供MPP感知且也利用数据仓库系统使用的列导向数据存储的高效率的查询优化器和查询执行引擎。数据仓库系统的查询优化器可向以查询执行为中心的一系列可重用的软件部件和方法提供显著的增强和扩展,以处理包括多表连接、子查询和汇集的复杂的分析查询。如前文所述,列存储和自适应压缩的使用也可显著减少处理查询所需的数据量,且在可能的情况下可通过存储器内和缓存数据访问来显著提高查询执行速度。
在各种实施方案中,本文描述的方法可由硬件和软件的任何组合来实施。例如,在一个实施方案中,方法可由包括执行被存储在耦接到处理器的计算机可读存储介质上的程序指令的处理器的计算机系统来实施。程序指令可被配置以实施本文所描述的功能(例如,实施本文所述的数据仓库系统和/或远程关键字-值持久备份存储系统的各种服务器和其它部件的功能)。
图15是示出根据各种实施方案的被配置以实施分布式数据仓库系统和对应关键字-值持久备份存储系统的至少一部分的计算机系统的框图。例如,计算机系统1500可被配置以实施分布式数据仓库系统中集群的领导节点、分布式数据仓库系统中集群的计算节点、分布式数据仓库服务管理器、关键字-值持久备份存储系统(或其接口)或分布式数据仓库系统或对应的关键字-值持久备份存储系统的任何其它部件。计算机系统1500可为任何各种类型的设备,包括但不限于,个人计算机系统、台式计算机、膝上型或笔记本计算机、大型计算机系统、手持计算机、工作站、网络计算机、消费者设备、应用服务器、存储设备、电话、移动电话或通常任何类型的计算设备。
计算机系统1500包括通过输入/输出(I/O)接口1530耦接到系统存储器1520的一个或多个处理器1510(任何一个处理器可包括多个核,其可为单个或多线程的)。计算机系统1500还包括耦接到I/O接口1530的网络接口1540。在各种实施方案中,计算机系统1500可为包括一个处理器1510的单处理器系统,或包括若干处理器1510(例如,两个、四个、八个或另一合适的数量)的多处理器系统。处理器1510可为能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1510可为实施例如x86、PowerPC、SPARC或MIPS ISA的任何各种指令集架构(ISA)或任何其它适合的ISA的通用或嵌入式处理器。在多处理器系统中,每个处理器1510可通常但不一定实施相同的ISA。计算机系统1500也包括一个或多个网络通信设备(例如,网络接口1540),用于通过通信网络(例如互联网、LAN等)与其它系统和/或部件通信。例如,在系统1500上执行的客户端应用可使用网络接口1540以与在单个服务器上或在实施分布式系统的服务器的集群上执行的服务器应用通信。在另一实例中,在计算机系统1500上执行的服务器应用的实例可使用网络接口1540以与可在其它计算机系统上实施的服务器应用的其它实例通信。
在示出的实施方案中,计算机系统1500也包括一个或多个持久存储设备1560和/或一个或多个I/O设备1580。在各种实施方案中,持久存储设备1560可对应于磁盘驱动器、磁带驱动器、固态存储器、其它大容量存储设备或任何其它持久性存储设备。计算机系统1500(或在其上操作的分布式应用或操作系统)可按需要将指令和/或数据存储在持久性存储设备1560中,且可根据需要检索存储的指令和/或数据。
计算机系统1500包括被配置以存储处理器1510可访问的指令和数据的一个或多个系统存储器1520。在各种实施方案中,系统存储器1520可使用任何适当的存储器技术(例如,缓存、静态随机存取存储器(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10RAM、同步动态RAM(SDRAM)、Rambus RAM、EEPROM、非易失性/闪存型存储器或任何其它类型的存储器中的一个或多个)来实施。系统存储器1520可包含可由处理器1510执行来实施本文所描述的方法和技术的程序指令1525。在各种实施方案中,程序指令1525可能以平台本地二进制、例如JavaTM字节码的任何解释性语言,或例如C/C++、JavaTM等的任何其它语言,或其任意组合来编码。例如,在示出的实施方案中,程序指令1525包括可执行以实施分布式数据仓库系统中集群的领导节点、分布式数据仓库系统中集群的计算节点、分布式数据仓库服务管理器、关键字-值持久备份存储系统(或其接口)或分布式数据仓库系统或对应的关键字-值持久备份存储系统的任何其它部件的功能的程序指令。在一些实施方案中,程序指令1525可实施多个单独的客户端、服务器节点和/或其它部件。
在一些实施方案中,程序指令1525可包括可执行以实施操作系统(未示出)的指令,所述操作系统可为任何各种操作系统,例如UNIX、LINUX、SolarisTM、MacOSTM、WindowsTM等。程序指令1525中的任何或所有程序指令可被提供作为可包括上面存储有指令的非临时性计算机可读存储介质的计算机程序产品或软件,所述指令可用以编程计算机系统(或其它电子设备)来执行根据各种实施方案的过程。非临时性计算机可读存储介质可包括用于以机器(例如,计算机)可读形式(例如,软件、处理应用)来存储信息的任何机制。一般来说,非临时性计算机可存取介质可包括例如磁或光介质的计算机可读存储介质或存储器介质,例如,通过I/O接口1530耦接到计算机系统1500的磁盘或DVD/CD-ROM。非临时性计算机可读存储介质也可包括在计算机系统1500的一些实施方案中可被包括作为系统存储器1520或另一类型的存储器的任何易失性或非易失性介质,例如RAM(例如,SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等。在其它实施方案中,程序指令可使用光、声音或其它形式的传播信号(例如,载波、红外信号、数字信号等)来传递,所述传播信号通过例如网络和/或无线链路的通信介质来传输,例如可通过网络接口1540来实施。
在一些实施方案中,系统存储器1520可包括可如本文所述来配置的数据存储1545。例如,在各种实施方案中,本文描述为由数据仓库系统存储(例如,在领导节点或计算节点上)的信息可被存储在数据存储1545中或一个或多个节点上系统存储器1520的另一部分中、在持久性存储1560中和/或在一个或多个远程存储设备1570上,所述信息例如超级块数据结构、一个或多个数据块访问计数器、查询历史、错误日志或用于执行本文描述的方法的其它信息。在一些实施方案中,且在不同的时间,系统存储器1520(例如,系统存储器1520内的数据存储1545)、持久性存储1560和/或远程存储1570可存储数据块的主要副本、数据块的次要副本(即,复本)、数据块的备份副本、与数据块相关的元数据和/或其状态、数据库配置信息和/或可用于实施本文所描述的方法和技术的任何其它信息。
在一个实施方案中,I/O接口1530可被配置以协调处理器1510、系统存储器1520和系统中任何外围设备之间的I/O通信量,包括通过网络接口1540或任何外围接口。在一些实施方案中,I/O接口1530可执行任何必要的协议、计时或其它数据转换来将来自一个部件(例如,系统存储器1520)的数据信号转换为适用于另一部件(例如,处理器1510)的格式。在一些实施方案中,I/O接口1530例如可包括通过各种类型的外围总线(例如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的设备的支持件。在一些实施方案中,I/O接口1530的功能例如可被分成两个或更多个单独的部件,例如北桥和南桥。又,在一些实施方案中,I/O接口1530的一些或所有功能(例如系统存储器1520的接口)可直接并入处理器1510。
网络接口1540例如可被配置以允许数据在计算机系统1500和附接到网络的其它设备(例如,其它计算机系统1590)(其可实施分布式数据仓库系统和/或远程关键字-值持久存储系统的一个或多个服务器节点和/或客户端)之间交换。此外,网络接口1540可被配置以允许计算机系统1500和各种I/O设备1550和/或远程存储1570之间进行通信。在一些实施方案中,输入/输出设备1550可包括一个或多个显示终端、键盘、小键盘、触摸板、扫描设备、语音或光学识别设备或适于通过一个或多个计算机系统1500输入数据或检索数据的任何其它设备。多个输入/输出设备1550可存在于计算机系统1500中或可被分布到包括计算机系统1500的分布式系统的各种节点上。在一些实施方案中,类似的输入/输出设备可与计算机系统1500分开,且可通过有线或无线连接(例如,通过网络接口1540)与包括计算机系统1500的分布式系统的一个或多个节点互动。网络接口1540可通常支持一个或多个无线网络协议(例如,Wi-Fi/IEEE 802.11,或另一无线网络标准)。然而,在各种实施方案中,网络接口1540例如可通过任何合适的有线或无线通用数据网络(例如,其它类型的以太网网络)支持通信。另外,网络接口1540可通过电信/电话网络(例如,模拟语音网络或数字光纤通信网络)、通过存储区域网络(例如,光纤通道SAN)或通过任何其它合适类型的网络和/或协议来支持通信。在各种实施方案中,计算机系统1500可包括比图15示出的部件更多、更少或与之不同的部件(例如,显示器、视频卡、音频卡、外围设备、其它网络接口,例如ATM接口、以太网接口、帧中继接口等)。
注意,本文描述的任何分布式系统实施方案或其任何部件可被实施为一个或多个网络服务。例如,数据仓库系统内的领导节点可向客户提供数据存储服务和/或数据库服务作为网络服务。在一些实施方案中,网络服务可由被设计以通过网络支持互操作的机器到机器交互的软件和/或硬件系统来实施。网络服务可具有以机器可处理格式(例如网络服务描述语言(WSDL))描述的接口。其它系统可能以由网络服务的接口的描述规定的方式与网络服务交互。例如,网络服务可限定其它系统可调用的各种操作,且可限定当请求各种操作时可期望其它系统符合的特定的应用编程接口(API)。
在各种实施方案中,网络服务可通过使用包括与网络服务请求相关的参数和/或数据的消息来请求或调用。所述消息可根据特定标记语言(例如可扩展标记语言(XML))来格式化,和/或可使用协议(例如简单对象访问协议(SOAP))来封装。为了执行网络服务请求,网络服务客户可汇集包括请求的消息,并使用基于互联网的应用层传输协议(例如超文本传输协议(HTTP))来将消息传送到对应于网络服务的可寻址的端点(例如,统一资源定位符(URL))。
在一些实施方案中,网络服务可使用代表性状态传输(“RESTful”)技术而非基于消息的技术来实施。例如,根据RESTful技术实施的网络服务可通过被包括在HTTP方法中的参数(例如,PUT、GET或DELETE)来调用,而非被封装在SOAP消息内。
上述内容可鉴于以下条款更好地理解:
1.一种方法,其包括:由一个或多个计算机来执行以下操作:代表一个或多个客户将数据库表的列数据存储在分布式数据存储系统的多个物理数据块中,其中所述分布式数据存储系统包括一个或多个节点的集群,每个节点包括上面存储物理数据块的一个或多个磁盘,且其中所述多个物理数据块中每一个与各自的唯一标识符相关;将所述多个物理数据块中每一个的副本存储在远程关键字-值持久备份存储系统中,其中对于所述多个物理数据块中每一个,所述各自的唯一标识符充当密钥,以访问所述远程关键字-值持久备份存储系统中的所述数据块;检测所述分布式数据存储系统中影响存储所述列数据的所述多个物理数据块中至少一个的故障;响应于所述检测,自动启动从所述远程关键字-值持久备份存储系统恢复被存储在所述多个物理数据块中所述至少一个中的所述列数据;和在恢复被存储在所述多个物理数据块中所述至少一个中的所述列数据中所有列数据之前:接收针对所述数据库表的所述列数据的一个或多个查询请求;和接受并服务于所述一个或多个查询请求,其中所述服务包括使用所述各自的唯一标识符作为密钥以访问包括所述一个或多个查询请求所针对的所述数据库表的所述列数据中至少一些的所述远程关键字-值持久备份存储系统中的数据块来从所述远程关键字-值持久备份存储系统获得所述列数据中所述至少一些。
2.如条款1所述的方法,其中所述存储数据库表的列数据包括:将所述列数据的一部分作为所述列数据的所述部分的主要副本存储在给定磁盘上的各自的物理数据块中,和将所述列数据的所述部分作为所述列数据的所述部分的一个或多个次要副本存储在所述给定磁盘之外的一个或多个磁盘上的各自的物理数据块中。
3.如条款1所述的方法,其中所述存储数据库表的列数据包括:将被存储在给定节点的磁盘上的所述物理数据块中每一个的所述唯一标识符存储在存储关于被存储在所述给定节点上的所述物理数据块的信息的超级块数据结构中各自的条目中。
4.如条款1所述的方法,其中所述存储数据库表的列数据包括:将指示被存储在给定节点的磁盘上的所述物理数据块中每一个被存储的位置的信息存储在存储关于被存储在所述给定节点上的所述物理数据块的信息的超级块数据结构中各自的条目中。
5.如条款1所述的方法,其中所述服务包括:从所述分布式数据存储系统中的磁盘获得所述一个或多个查询请求所针对的所述数据库表的所述列数据中至少一些。
6.一种方法,其包括:由一个或多个计算机来执行以下操作:代表一个或多个客户将数据保持在数据存储系统的一个或多个物理数据块中,其中每个物理数据块与唯一标识符相关;执行备份操作以将被存储在给定物理数据块中的数据的各自的副本存储在与所述数据存储系统不同的关键字-值存储系统中;在存储被存储在所述给定物理数据块中的所述数据的所述各自的副本之后,将被存储在所述给定物理数据块中的所述数据从所述关键字-值存储系统恢复到所述数据存储系统,同时接受并服务于针对代表所述一个或多个客户保持的所述数据的查询,其中所述恢复包括:使用与所述给定物理数据块相关的所述唯一标识符作为所述关键字-值存储系统中的密钥来访问所述关键字-值存储系统中数据的所述各自的副本。
7.如条款6所述的方法,其中所述恢复是作为将被存储在多个物理数据块中的数据从所述关键字-值存储系统恢复到所述数据存储系统的操作的一部分来执行,且其中所述接受并服务于查询是在恢复被存储在所述多个物理数据块中的所述数据中的所有数据之前被执行。
8.如条款6所述的方法,其还包括:接收表示数据库表中条目的数据,其中所述将数据保持在数据存储系统的一个或多个物理数据块中包括:将表示所述数据库表中数据的一个或多个列的数据存储在所述一个或多个物理数据块中每一个。
9.如条款6所述的方法,其中所述恢复是响应于存储设备的故障来执行,被存储在所述给定物理数据块中的所述数据被存储在所述数据存储系统的所述存储设备上。
10.如条款6所述的方法,其中所述恢复是响应于包括存储设备的节点的故障来执行,被存储在所述给定物理数据块中的所述数据被存储在所述数据存储系统的所述存储设备上。
11.如条款6所述的方法,其中所述恢复是响应于包括存储设备的一个或多个节点的集群的故障来执行,被存储在所述给定物理数据块中的所述数据被存储在所述数据存储系统的所述存储设备上。
12.如条款6所述的方法,其中所述恢复是响应于来自所述一个或多个客户中一个客户的执行恢复操作的明确请求来执行。
13.如条款6所述的方法,其中所述将数据保持在数据存储系统的一个或多个物理数据块中包括:将存储被保持在一个或多个节点的集群的特定节点上的所述数据和所述数据存储系统中所述数据被存储的位置之间的映射的数据结构保持在所述特定节点上物理数据块中,其中所述数据结构被保持在所述特定节点上,且其中所述数据结构中每个条目存储特定物理数据块和与所述特定物理数据块相关的所述唯一标识符的映射;且其中所述方法包括:在所述恢复之前,响应于所述节点的故障或所述节点的集群的故障而在所述特定节点上恢复所述数据结构。
14.一种存储程序指令的非临时性计算机可读存储介质,当在一个或多个计算机上执行所述程序指令时,使得所述一个或多个计算机执行以下操作:将一个或多个数据块存储在数据仓库系统中;在存储关于被存储在所述数据仓库系统中的数据块的信息的数据结构中创建所述一个或多个数据块中每一个的各自的条目,其中所述一个或多个数据块的所述各自的条目中每一个包括所述数据块的唯一标识符和所述数据块尚未被备份的指示;对被存储在所述数据仓库系统中的多个数据块执行备份操作,包括所述一个或多个数据块,其中所述执行包括:将所述数据结构的备份副本存储在远程关键字-值存储系统中;对于被存储在所述数据仓库系统中的每个数据块,将所述数据块的备份副本存储在所述远程关键字-值存储系统中,所述数据结构中的对应条目向所述数据块指示其尚未被备份;和更新对应于每个数据块的所述数据结构中的所述条目,所述数据块由所述备份操作来备份以指示所述数据块已被备份。
15.如条款14所述的非临时性计算机可读存储介质,其中所述将一个或多个数据块存储在数据仓库系统中包括:将所述一个或多个数据块中每一个的两个或更多个副本存储在所述数据仓库系统中不同存储设备上。
16.如条款14所述的非临时性计算机可读存储介质,其中所述将一个或多个数据块存储在数据仓库系统中包括:生成所述一个或多个数据块中每一个的所述唯一标识符。
17.如条款14所述的非临时性计算机可读存储介质,其中当在一个或多个计算机上执行时,所述程序指令还使得所述一个或多个计算机执行以下操作:接收针对所述一个或多个数据块中一个的数据的查询;和响应于接收所述查询,使用所述一个或多个块中所述一个的所述唯一标识符作为所述远程关键字-值存储系统的访问密钥来访问所述远程关键字-值存储系统的所述一个或多个数据块中所述一个的所述备份副本。
18.一种计算系统,其包括:一个或多个计算节点,每一个计算节点包括至少一个处理器和存储器,其中所述一个或多个计算节点被配置以共同实施数据库服务;和至远程关键字-值存储系统的接口;其中所述数据库服务被配置以代表一个或多个用户将数据保持到所述数据库服务;其中所述一个或多个计算节点被配置以将代表所述一个或多个用户保持的所述数据存储在一个或多个存储设备上多个物理数据块中,其中所述多个物理数据块中每一个与唯一标识符相关;其中所述数据库服务被配置以对代表所述一个或多个用户保持的所述数据执行备份操作,其中为了执行所述备份操作,所述数据库服务被配置以通过所述接口向所述远程关键字-值存储系统发送所述多个物理数据块中每一个的副本以存储在所述远程关键字-值存储系统中,和与所述多个物理数据块中每一个相关的所述唯一标识符,以用作所述远程关键字-值存储系统中所述多个物理数据块的副本的访问密钥。
19.如条款18所述的计算系统,其中所述一个或多个计算节点包括领导节点,所述领导节点被配置以保持一个或多个查询映射和代表所述一个或多个用户保持的所述数据与所述数据被所述数据库服务存储在所述一个或多个计算节点上的所述位置之间的映射。
20.如条款18所述的计算系统,其中在执行所述备份操作之后,所述数据库服务被配置以执行恢复操作;其中为了执行所述恢复操作,所述数据库服务被配置以使用与所述多个物理数据块中每一个相关的所述唯一标识符作为所述远程关键字-值存储系统中所述多个物理数据块的所述副本的访问密钥来通过所述接口从所述远程关键字-值存储系统检索所述多个物理数据块中每一个的所述副本;且其中在所述恢复操作的执行期间,所述数据库服务还被配置以接受并服务于针对代表所述一个或多个用户保持的所述数据的查询请求。
21.如条款20所述的计算系统,其中为了服务于针对代表所述一个或多个用户保持的所述数据的查询请求,所述数据库服务被配置以在完成所述恢复操作之前从所述远程关键字-值存储系统检索所述查询请求针对的所述数据中至少一些。
22.如条款18所述的计算系统,其中所述远程关键字-值存储系统被配置以向所述远程关键字-值存储系统中所述多个物理数据块的所述副本应用复制、奇偶校验、纠删码或另一误差校正技术。
上述内容也可鉴于以下条款更好地理解:
1.一种方法,其包括:由一个或多个计算机来执行以下操作:代表一个或多个客户将数据库表的列数据存储在分布式数据存储系统的多个物理数据块中,其中所述分布式数据存储系统包括一个或多个节点的集群,每个节点包括上面存储物理数据块的一个或多个磁盘,且其中所述多个物理数据块中每一个与各自的唯一标识符相关;将所述多个物理数据块中每一个的副本存储在远程关键字-值持久备份存储系统中,其中对于所述多个物理数据块中每一个,所述各自的唯一标识符充当密钥,以访问所述远程关键字-值持久备份存储系统中的所述数据块;检测所述分布式数据存储系统中影响存储所述列数据的所述多个物理数据块中两个或更多个的故障;响应于所述检测,自动恢复所述两个或更多个物理数据块,其中所述恢复包括:至少部分基于在不久的将来将访问所述两个或更多个物理数据块中每一个的所述相对可能性来确定恢复所述两个或更多个物理数据块的优先次序;从所述远程关键字-值持久备份存储系统检索所述两个或更多个物理数据块中具有最高优先级的所述一个的副本,其中所述检索包括:使用与所述两个或更多个物理数据块中所述一个相关的所述各自的唯一标识符作为密钥来访问所述关键字-值持久备份存储系统的所述两个或更多个物理数据块中所述一个的所述副本;将所述物理数据块的所述检索的副本的主要副本写入所述分布式数据存储系统中给定节点上的给定磁盘;和启动将所述物理数据块的所述检索的副本复制到所述给定磁盘之外的所述分布式数据存储系统中一个或多个磁盘上。
2.如条款1所述的方法,其中所述确定恢复所述两个或更多个物理数据块的优先次序至少部分基于与所述两个或更多个物理数据块中每一个相关的指示针对所述物理数据块的许多最近访问的各自的计数值。
3.如条款1所述的方法,其中所述恢复还包括:更新存储关于被存储在所述给定节点上的物理数据块的信息的超级块数据结构中的条目,以指示所述两个或更多个物理数据块中所述一个已被恢复。
4.如条款1所述的方法,其还包括:以所述确定的优先次序从所述远程关键字-值持久备份存储系统检索所述两个或更多个物理数据块中所述一个之外的所述两个或更多个物理数据块中每一个的副本;将所述两个或更多个物理数据块中所述一个之外的所述两个或更多个物理数据块的所述检索的副本中每一个的主要副本写入所述分布式数据存储系统中的磁盘;和启动将所述两个或更多个物理数据块中所述一个之外的所述两个或更多个物理数据块的所述检索的副本中每一个复制到主要副本被写入的所述磁盘之外的所述分布式数据存储系统中的一个或多个磁盘上。
5.一种方法,其包括:由一个或多个计算机来执行以下操作:代表一个或多个客户将数据保持在数据存储系统的多个物理数据块中,其中每个物理数据块与唯一标识符相关;开始从被存储在与所述数据存储系统不同的关键字-值存储系统中的所述两个或更多个物理数据块的副本恢复被存储在所述数据存储系统的所述多个物理数据块中两个或更多个中的数据的操作;至少部分基于在不久的将来将访问所述两个或更多个物理数据块中每一个中的数据的所述相对可能性的确定来确定将恢复的最高优先级数据块;在恢复最高优先级数据块之外的所述两个或更多个物理数据块的副本之前,将最高优先级数据块的所述副本从所述关键字-值存储系统恢复到所述数据存储系统。
6.如条款5所述的方法,其中所述方法还包括:检测所述数据存储系统中影响所述多个物理数据块中所述两个或更多个中的故障;且其中所述开始恢复数据的操作是响应于所述检测而执行。
7.如条款5所述的方法,其中所述方法还包括:接收来自客户的恢复所述多个物理数据块中所述两个或更多个的请求;且其中所述开始恢复数据的操作是响应于所述接收而执行。
8.如条款5所述的方法,其中所述数据存储系统代表一个或多个客户将一个或多个数据库表的列数据存储在所述多个物理数据块中;且其中所述确定将恢复的最高优先级数据块包括:确定所述一个或多个数据库表中哪一个被最近装载到所述数据存储系统中。
9.如条款5所述的方法,其中所述数据存储系统代表一个或多个客户将一个或多个数据库表的列数据存储在所述多个物理数据块中;且其中所述确定将恢复的最高优先级数据块包括:确定所述一个或多个数据库表或其列中哪些在最近的时间段被最频繁地查询。
10.如条款5所述的方法,其中所述数据存储系统代表一个或多个客户将一个或多个数据库表的列数据存储在所述多个物理数据块中;且其中所述确定将恢复的最高优先级数据块包括:响应于接收到针对所述数据存储系统中不再可用的所述物理数据块中的数据的查询请求,将存储同一表或表的列的数据的物理数据块识别为最近从所述关键字-值存储系统检索的物理数据块的副本。
11.如条款5所述的方法,其中所述恢复最高优先级数据块的所述副本包括:从所述远程关键字-值存储系统检索最高优先级数据块的副本,其中所述检索包括:使用与最高优先级数据块相关的所述唯一标识符作为密钥,以访问所述关键字-值存储系统中最高优先级数据块的所述副本;将最高优先级数据块的所述检索的副本的主要副本写入所述数据存储系统中的存储设备。
12.如条款11所述的方法,其还包括:在所述写入之前:接收针对被保持在最高优先级数据块中的数据的查询;和满足所述查询,其中满足所述查询包括:返回最高优先级数据块的所述检索的副本中的所述数据的至少一部分。
13.如条款11所述的方法,其中所述恢复最高优先级数据块的所述副本还包括:启动将最高优先级数据块复制到所述主要副本被写入的所述存储设备之外的所述数据存储系统中一个或多个存储设备上。
14.如条款5所述的方法,其中所述恢复最高优先级数据块的所述副本包括:将被存储在最高优先级数据块中的所述数据从所述关键字-值存储系统恢复到所述数据存储系统,同时接受并服务于针对代表所述一个或多个客户保持的所述数据的查询。
15.如条款5所述的方法,其中所述确定将恢复的最高优先级数据块至少部分基于针对所述多个物理数据块的先前查询的访问的历史模式。
16.如条款5所述的方法,其中所述恢复由后台进程来执行;且其中所述方法还包括:当所述后台进程执行所述恢复时:前台进程接收针对代表所述一个或多个客户保持的所述数据的一个或多个查询;和所述前台进程服务于所述一个或多个查询。
17.如条款5所述的方法,其中所述方法还包括:接收针对先前被保持在所述数据存储系统中不再可用的两个或更多个物理数据块中的数据的查询;且其中所述开始恢复数据的操作是响应于所述接收而执行。
18.一种计算系统,其包括:一个或多个计算节点,每一个计算节点包括至少一个处理器和存储器,其中所述一个或多个计算节点被配置以共同实施数据库服务;和至远程关键字-值存储系统的接口;其中所述数据库服务被配置以:代表一个或多个用户将数据存储到一个或多个存储设备上多个物理数据块中的所述数据库服务,其中所述多个物理数据块中每一个与唯一标识符相关;备份代表所述一个或多个用户存储的所述数据,其中为了备份所述数据,所述数据库服务被配置以通过所述接口向所述远程关键字-值存储系统发送所述多个物理数据块中每一个的副本以存储在所述远程关键字-值存储系统中,和与所述多个物理数据块中每一个相关的所述唯一标识符,以用作所述远程关键字-值存储系统中所述多个物理数据块的副本的访问密钥;检测触发所述多个物理数据块中两个或更多个的恢复操作的条件或事件;至少部分基于在不久的将来将访问所述多个物理数据块中所述两个或更多个中每一个的所述相对可能性来确定恢复所述多个物理数据块中所述两个或更多个的顺序;和以所述确定的顺序恢复所述多个物理数据块中所述两个或更多个。
19.如条款18所述的计算系统,其中为了确定恢复所述多个物理数据块中所述两个或更多个的所述顺序,所述数据库服务被配置以确定所述多个物理数据块中所述两个或更多个中每一个在最近什么时候是查询的目标。
20.如条款18所述的计算系统,其中为了确定恢复所述多个物理数据块中所述两个或更多个的所述顺序,所述数据库服务被配置以确定所述多个物理数据块中所述两个或更多个中每一个在最近什么时候被写入。
21.如条款18所述的计算系统,其中为了确定恢复所述多个物理数据块中所述两个或更多个的所述顺序,所述数据库服务被配置以确定所述多个物理数据块中所述两个或更多个中每一个在最近什么时候被备份。
22.一种存储程序指令的非临时性计算机可读存储介质,当在一个或多个计算机上执行所述程序指令时,使得所述一个或多个计算机执行以下操作:代表一个或多个客户将数据保持在数据存储系统的多个物理数据块中,其中每个物理数据块与唯一标识符相关;在预定时间段期间:接收针对所述多个物理数据块中给定一个中的数据的查询;服务于所述查询,其中服务于所述查询包括访问所述多个物理数据块中所述给定一个;和递增与所述多个物理数据块中所述给定一个相关的计数器,其中所述计数器的所述值指示在所述预定时间段内访问所述多个物理数据块中所述给定一个的次数;开始恢复所述多个物理数据块中两个或更多个的操作,包括所述多个物理数据块中所述给定一个;至少部分基于与所述多个物理数据块中所述给定一个相关的所述计数器的所述值和与所述多个物理数据块中所述给定一个之外的所述多个物理数据块中所述两个或更多个中每一个相关的各自的计数器的所述值而确定恢复所述多个物理数据块中所述两个或更多个的顺序。
23.如条款22所述的非临时性计算机可读存储介质,其中所述确定恢复所述多个物理数据块中所述两个或更多个的顺序还依赖于与所述多个物理数据块中每一个相关的另一各自的计数器的所述值,其中与所述多个物理数据块中每一个相关的另一各自的计数器的所述值指示在先前预定时间段内访问所述物理数据块的次数。
24.如条款23所述的非临时性计算机可读存储介质,其中所述确定恢复所述多个物理数据块中所述两个或更多个的顺序包括:计算表示与所述多个物理数据块中所述两个或更多个中每一个相关的所述各自的计数器和另一各自的计数器的所述值的逻辑或数学组合的值。
上述内容也可鉴于以下条款更好地理解:
1.一种方法,其包括:由一个或多个计算机来执行以下操作:代表一个或多个客户将数据库表的列数据存储在分布式数据存储系统的多个物理数据块中,其中所述分布式数据存储系统包括一个或多个节点的集群,每个节点包括上面存储物理数据块的一个或多个磁盘,其中所述多个物理数据块中每一个与各自的唯一标识符相关,且其中所述存储列数据包括将所述列数据的每个部分的两个或更多个副本存储在所述分布式数据存储系统的不同物理数据块中;将所述多个物理数据块中每一个的备份副本存储在远程关键字-值持久备份存储系统中,其中对于所述多个物理数据块中每一个,所述各自的唯一标识符充当密钥,以访问所述远程关键字-值持久备份存储系统中的所述数据块;从客户接收针对被存储在所述分布式数据存储系统中的所述列数据的一部分的查询;响应于所述接收:访问所述分布式数据存储系统中存储所述列数据的所述部分的副本的所述多个物理数据块中一个;对所述多个物理数据块中所述一个应用一致性检查;至少部分基于所述应用来确定所述多个物理数据块中所述一个上的数据被破坏或与所述多个物理数据块中其它物理数据块中的不一致;自动检索被存储在所述远程关键字-值持久备份存储系统中的所述多个物理数据块中所述一个的所述备份副本,其中所述检索包括使用所述一个或多个块中所述一个的所述唯一标识符作为密钥,以访问所述远程关键字-值持久备份存储系统的所述多个物理数据块中所述一个的所述备份副本;和满足所述查询,其中所述满足所述查询包括:将所述多个物理数据块中所述一个的所述检索的备份副本中的所述数据的至少一部分返回到所述客户。
2.如条款1所述的方法,其中所述存储列数据包括:存储所述列数据的每个部分的一个主要副本和一个或多个次要副本;且其中所述访问所述多个物理数据块中一个包括:响应于确定存储所述列数据的所述部分的所述主要副本的数据块被破坏或与所述多个物理数据块中的其它物理数据块不一致,访问存储所述列数据的所述部分的次要副本的数据块。
3.如条款1所述的方法,其中所述检索所述多个物理数据块中所述一个的所述备份副本包括:将被存储在所述多个物理数据块中所述一个的所述备份副本中的所述数据从所述关键字-值持久备份存储系统拷贝到所述分布式数据存储系统中的系统存储器,同时单独的后台进程将物理数据块的一个或多个备份副本从所述关键字-值持久备份存储系统拷贝到所述分布式数据存储系统中所述节点的集群的一个或多个磁盘。
4.如条款1所述的方法,其还包括:在所述检索所述多个物理数据块中所述一个的所述备份副本之后,启动恢复所述分布式数据存储系统的所述多个物理数据块中所述一个的操作,其中恢复所述多个物理数据块中所述一个包括:将所述多个物理数据块中所述一个的所述备份副本中所述列数据的所述部分的一个主要副本和一个或多个次要副本存储到所述分布式数据存储系统中所述节点的集群的一个或多个磁盘。
5.一种方法,其包括:由一个或多个计算机来执行以下操作:代表一个或多个客户将数据保持在数据存储系统的多个物理数据块中;接收针对所述数据的一部分的读取或写入请求;响应于所述接收:确定所述数据的所述部分的一致且未损坏副本在所述数据存储系统中不可用;响应于确定所述数据的所述部分的一致且未损坏副本在所述数据存储系统中不可用,从单独的且与所述数据存储系统不同的关键字-值存储系统自动检索所述数据的所述部分的备份副本;和返回包括所述数据的所述部分的所述检索的备份副本中的数据的所述读取或写入请求的响应。
6.如条款5所述的方法,其中所述确定包括访问数据结构,所述数据结构存储指示代表所述一个或多个客户保持的所述数据的每个部分的各自的副本被存储在物理数据块中的一个或多个位置的信息以定位所述数据的所述部分的主要副本或次要副本。
7.如条款5所述的方法,其中所述确定所述数据的所述部分的一致且未损坏副本在所述数据存储系统中不可用包括:确定所述数据的所述部分的副本先前被破坏且尚未被恢复。
8.如条款5所述的方法,其中所述确定所述数据的所述部分的一致且未损坏副本在所述数据存储系统中不可用包括:确定上面存储所述数据的所述部分的副本的节点或磁盘已出现故障,且被存储在所述故障节点或磁盘上的数据尚未被恢复。
9.如条款5所述的方法,其中所述确定包括:对存储所述数据的所述部分的主要副本的物理数据块应用一致性检查。
10.如条款9所述的方法,其中所述确定包括:至少部分基于所述应用来确定所述数据的所述部分的所述主要副本已被破坏或与所述多个物理数据块中其它物理数据块不一致;和对存储所述数据的所述部分的次要副本的物理数据块应用一致性检查。
11.如条款5所述的方法,其中代表所述一个或多个客户将数据保持在所述数据存储系统中的每个物理数据块与唯一标识符相关;且其中自动检索所述数据的所述部分的备份副本包括:使用与所述数据的所述部分被存储到所述数据存储系统的物理数据块相关的所述各自的唯一标识符作为密钥,以在所述关键字-值存储系统中访问所述数据的所述部分被存储到所述数据存储系统的所述物理数据块的所述备份副本。
12.如条款5所述的方法,其还包括:在所述接收读取或写入请求之前,备份代表所述一个或多个客户将数据保持在所述数据存储系统中的所述多个物理数据块中至少一些,其中所述备份包括对于所述多个物理数据块中所述至少一些中每一个:向所述关键字-值存储系统发送所述物理数据块的副本和与所述物理数据块相关的唯一标识符,所述唯一标识符被用作访问密钥来检索所述远程关键字-值存储系统中所述物理数据块的备份副本。
13.如条款5所述的方法,其还包括,对于代表所述一个或多个客户将数据保持在所述数据存储系统中的所述多个物理数据块中每一个:当数据被首次写入所述物理数据块时,生成将与所述物理数据块相关的唯一标识符。
14.如条款5所述的方法,其还包括:接收针对代表所述一个或多个客户保持在所述数据存储系统中的所述数据的另一部分的另一读取或写入请求;响应于接收另一读取或写入请求:确定所述数据的所述另一部分的一致且未损坏副本可用于所述数据存储系统;响应于确定所述数据的所述部分的一致且未损坏副本可用于所述数据存储系统,返回包括所述数据存储系统中所述数据的所述另一部分的所述一致且未损坏副本中的数据的所述另一读取或写入请求的响应。
15.如条款5所述的方法,其还包括:接收针对代表所述一个或多个客户保持在所述数据存储系统中的所述数据的另一部分的另一读取或写入请求;响应于接收所述另一读取或写入请求:确定所述数据存储系统中所述数据的所述另一部分的主要副本一致且未损坏;响应于确定所述数据存储系统中所述数据的所述另一部分的所述主要副本被破坏或与所述多个物理数据块中其它物理数据块不一致:访问所述数据存储系统中所述数据的所述另一部分的次要副本;确定所述数据存储系统中所述数据的所述另一部分的所述次要副本一致且未损坏;和响应于确定所述数据存储系统中所述数据的所述另一部分的所述次要副本一致且未损坏,返回包括所述数据存储系统中所述数据的所述另一部分的所述次要副本中的数据的所述另一读取或写入请求的响应。
16.一种计算系统,其包括:一个或多个计算节点,每一个计算节点包括至少一个处理器和存储器,其中所述一个或多个计算节点被配置以共同实施数据库服务;和至远程关键字-值存储系统的接口;其中所述数据库服务被配置以:代表一个或多个用户将数据存储到一个或多个存储设备上多个物理数据块中的所述数据库服务,其中所述多个物理数据块中每一个与唯一标识符相关;备份代表所述一个或多个用户存储的所述数据,其中为了备份所述数据,所述数据库服务被配置以通过所述接口向所述远程关键字-值存储系统发送所述多个物理数据块中每一个的副本以存储在所述远程关键字-值存储系统中,和与所述多个物理数据块中每一个相关的所述唯一标识符,其用作检索所述远程关键字-值存储系统中所述多个物理数据块的备份副本的访问密钥;接收针对所述数据的一部分的查询;响应于所述接收:确定所述数据的所述部分的一致且未损坏副本在所述一个或多个计算节点上不再可用;响应于确定所述数据的所述部分的一致且未损坏副本在所述一个或多个计算节点上不可用,使用所述数据的所述部分被存储在所述一个或多个计算节点上的所述多个物理数据块中一个的所述唯一标识符作为密钥以访问所述关键字-值存储系统中所述多个物理数据块中所述一个的所述备份副本,从所述关键字-值存储系统自动检索所述数据的所述部分的备份副本;和返回包括所述数据的所述部分的所述检索的备份副本中的数据的查询响应。
17.如条款16所述的计算系统,其中确定所述数据的所述部分的一致且未损坏副本在所述一个或多个计算节点上不可用包括:确定所述一个或多个计算节点中哪个计算节点存储所述数据的所述部分的主要副本。
18.如条款16所述的计算系统,其中确定所述数据的所述部分的一致且未损坏副本在所述一个或多个计算节点上不可用包括:确定所述一个或多个计算节点中哪个计算节点存储所述数据的所述部分的次要副本。
19.一种存储程序指令的非临时性计算机可读存储介质,当在一个或多个计算机上执行所述程序指令时,使得所述一个或多个计算机执行以下操作:从客户接收针对先前被存储在一个或多个计算节点的集群中的多个数据块中给定一个的查询;确定所述给定数据块的一致且未损坏副本在所述集群中不可用;响应于确定所述给定数据块的一致且未损坏副本在所述集群中不可用:自动启动恢复所述给定数据块的操作,其中所述启动包括从关键字-值存储系统检索所述给定数据块的副本,其中所述给定数据块的所述副本在所述关键字-值存储系统中由与所述给定数据块相关的唯一标识符索引;和将所述给定数据块的所述副本中所述数据的至少一部分返回到所述客户。
20.如条款19所述的非临时性计算机可读存储介质,其中当在所述一个或多个计算机上执行,所述程序指令还使得所述一个或多个计算机执行以下操作:在所述从所述关键字-值存储系统检索所述给定数据块的所述副本之后,将所述给定数据块的所述检索的副本中的所述数据拷贝到所述两个或更多个计算节点中一个作为所述给定数据块的主要副本。
21.如条款20所述的非临时性计算机可读存储介质,其中当在所述一个或多个计算机上执行,所述程序指令还使得所述一个或多个计算机执行以下操作:在所述从所述关键字-值存储系统检索所述给定数据块的所述副本之后,将所述给定数据块的所述检索的副本中的所述数据拷贝到所述两个或更多个计算节点中另一个作为所述给定数据块的次要副本。
22.如条款20所述的非临时性计算机可读存储介质,其中当在所述一个或多个计算机上执行,所述程序指令还使得所述一个或多个计算机执行以下操作:在所述将所述给定数据块的所述检索的副本中的所述数据拷贝到所述两个或更多个计算节点中一个作为所述给定数据块的主要副本之后,更新存储关于被存储在所述两个或更多个计算节点中所述一个上的物理数据块的信息的数据结构,以指示所述给定数据块的所述主要副本已被写入所述两个或更多个计算节点中所述一个。
23.如条款19所述的非临时性计算机可读存储介质,其中所述自动启动恢复操作是由接收并服务于针对被存储在所述集群中的数据块的查询请求的前台进程执行;且其中当在所述一个或多个计算机上执行时,所述程序指令还使得所述一个或多个计算机执行以下操作:启动先前被存储在所述集群中的所述多个数据块中两个或更多个其它数据块的恢复操作作为后台进程。
24.如条款19所述的非临时性计算机可读存储介质,其中当在所述一个或多个计算机上执行时,所述程序指令还使得所述一个或多个计算机执行以下操作:在文件或数据结构中记录与所述恢复操作相关的信息,其中所述信息包括:导致所述给定数据块的一致且未损坏副本在所述集群中不可用的所述两个或更多个计算节点中一个的故障的指示、触发所述恢复操作的所述启动的条件或事件的指示或所述恢复操作被执行的指示;和在所述记录之后:访问所述文件或数据结构以检索与多个恢复操作相关的信息;和分析与所述多个恢复操作相关的所述信息作为故障分析操作、趋势分析操作或维护操作的一部分。
如附图所示出且本文所描述的各种方法代表方法的示范性实施方案。所述方法可手动地实施、在软件、硬件或它们的组合中实施。任何方法的顺序都可改变,并且各种元件可被添加、重新排序、组合、省略、修改等。
虽然上文已相当详细地描述了实施方案,但是一旦上述公开内容被完全理解,如本领域技术人员所明白,可进行许多变化和修改。意图在于,随后的权利要求被解释为包含所有这样的修改和变化,且因此,以上描述被认为是说明性的而不是限制性的意义。
Claims (15)
1.一种用于恢复数据的方法,其包括:
由一个或多个计算机来执行以下操作:
代表一个或多个客户将数据库表的列数据存储在分布式数据存储系统的多个物理数据块中,其中所述分布式数据存储系统包括一个或多个节点的集群,每个节点包括上面存储物理数据块的一个或多个磁盘,且其中所述多个物理数据块中每一个与各自的唯一标识符相关;
将所述多个物理数据块中每一个的副本存储在远程关键字-值持久备份存储系统中,其中对于所述多个物理数据块中每一个,所述各自的唯一标识符充当密钥,以访问所述远程关键字-值持久备份存储系统中的所述数据块;
检测所述分布式数据存储系统中影响存储所述列数据的所述多个物理数据块中至少一个的故障;
响应于所述检测,自动启动从所述远程关键字-值持久备份存储系统恢复被存储在所述多个物理数据块中所述至少一个中的所述列数据;和
接收针对所述数据库表的所述列数据的一个或多个查询请求;和
服务于所述一个或多个查询请求,其中所述服务包括:
将所述列数据中的至少一些从所述远程关键字-值持久备份存储系统流入所述分布式数据存储系统的系统存储器中;和
将所述列数据中的所述至少一些的副本写入所述分布式数据存储系统的系统存储器。
2.如权利要求1所述的方法,其中所述存储所述数据库表的所述列数据包括:将所述列数据的一部分作为所述列数据的所述部分的主要副本存储在给定磁盘上的各自的物理数据块中,和将所述列数据的所述部分作为所述列数据的所述部分的一个或多个次要副本存储在所述给定磁盘之外的一个或多个磁盘上的各自的物理数据块中。
3.如权利要求1所述的方法,其中所述存储所述数据库表的所述列数据包括:将被存储在给定节点的磁盘上的所述多个物理数据块中每一个的所述唯一标识符存储在存储关于被存储在所述给定节点上的所述物理数据块的信息的超级块数据结构中各自的条目中。
4.如权利要求1所述的方法,其中所述存储所述数据库表的所述列数据包括:将指示被存储在给定节点的磁盘上的所述多个物理数据块中每一个被存储的位置的信息存储在存储关于被存储在所述给定节点上的所述物理数据块的信息的超级块数据结构中各自的条目中。
5.一种用于恢复数据的方法,其包括:
由一个或多个计算机来执行以下操作:
代表一个或多个客户将数据保持在数据存储系统的一个或多个物理数据块中,其中每个物理数据块与唯一标识符相关;
执行备份操作以将被存储在给定物理数据块中的数据的各自的副本存储在与所述数据存储系统不同的关键字-值存储系统中;
在存储被存储在所述给定物理数据块中的所述数据的所述各自的副本之后,将被存储在所述给定物理数据块中的所述数据从所述关键字-值存储系统恢复到所述数据存储系统;
服务于针对代表所述一个或多个客户保持的所述数据的查询,其中所述恢复包括:
将所述数据中的至少一些从所述关键字-值存储系统流入所述数据存储系统的系统存储器中;和
将所述数据中的所述至少一些的副本写入所述数据存储系统的系统存储器。
6.如权利要求5所述的方法,其中所述恢复是作为将被存储在多个物理数据块中的数据从所述关键字-值存储系统恢复到所述数据存储系统的操作的一部分来执行,且其中所述服务于查询是在恢复被存储在所述多个物理数据块中的所述数据中的所有数据之前被执行。
7.如权利要求5所述的方法,其还包括:接收表示数据库表中条目的所述数据,其中所述将数据保持在所述数据存储系统的所述一个或多个物理数据块中包括:将所述数据库表的一个或多个列中的数据存储在所述一个或多个物理数据块中。
8.如权利要求5所述的方法,其中所述恢复是响应于包括存储设备的节点的故障来执行,所述数据被存储在所述数据存储系统的所述存储设备上。
9.如权利要求5所述的方法,其中所述恢复是响应于包括存储设备的一个或多个节点的集群的故障来执行,所述数据被存储在所述数据存储系统的所述存储设备上。
10.如权利要求5所述的方法,
其中所述将所述数据保持在所述数据存储系统的所述一个或多个物理数据块中包括:将存储被保持在一个或多个节点的集群的特定节点上的所述数据和所述数据存储系统中所述数据被存储的位置之间的映射的数据结构保持在所述特定节点上物理数据块中,其中所述数据结构被保持在所述特定节点上,且其中所述数据结构中每个条目存储特定物理数据块和与所述特定物理数据块相关的所述唯一标识符的映射;且
其中所述方法包括:在所述恢复之前,响应于所述节点的故障或所述节点的集群的故障而在所述特定节点上恢复所述数据结构。
11.一种计算系统,其包括:
一个或多个计算节点,每一个计算节点包括至少一个处理器和存储器,其中所述一个或多个计算节点被配置以共同实施数据库服务;知
至远程关键字-值存储系统的接口;
其中所述数据库服务被配置以代表一个或多个用户将数据保持到所述数据库服务;
其中所述一个或多个计算节点被配置以将代表所述一个或多个用户保持的所述数据存储在一个或多个存储设备上多个物理数据块中,其中所述多个物理数据块中每一个与唯一标识符相关;
其中所述数据库服务包括具有关于所述多个物理数据块中的每个的条目的数据结构,所述条目包括:
用于各自的物理数据块的唯一的标识符;和
已被访问的各自的物理数据块的次数的一个或多个计数;
其中所述数据库服务被配置以对所述数据执行备份操作,其中为了执行所述备份操作,所述数据库服务被配置以通过所述接口向所述远程关键字-值存储系统发送所述多个物理数据块中每一个的副本以存储在所述远程关键字-值存储系统中,其中与所述多个物理数据块中每一个相关的所述唯一标识符可被采用作为访问所述远程关键字-值存储系统中所述多个物理数据块的副本的访问密钥。
12.如权利要求11所述的计算系统,
其中所述一个或多个计算节点包括领导节点,所述领导节点被配置以保持一个或多个查询映射和代表所述一个或多个用户保持的所述数据与所述数据被所述数据库服务存储在所述一个或多个计算节点上的位置之间的映射。
13.如权利要求11所述的计算系统,
其中在执行所述备份操作之后,所述数据库服务被配置以执行恢复操作;
其中为了执行所述恢复操作,所述数据库服务被配置以使用与所述多个物理数据块中每一个相关的所述唯一标识符作为所述远程关键字-值存储系统中所述多个物理数据块的所述副本的访问密钥来通过所述接口从所述远程关键字-值存储系统检索所述多个物理数据块中每一个的所述副本;且
其中在所述恢复操作的执行期间,所述数据库服务还被配置以服务于针对代表所述一个或多个用户保持的所述数据的查询请求。
14.如权利要求13所述的计算系统,其中为了服务于针对代表所述一个或多个用户保持的所述数据的查询请求,所述数据库服务被配置以在完成所述恢复操作之前从所述远程关键字-值存储系统检索所述查询请求针对的所述数据中至少一些。
15.如权利要求11所述的计算系统,其中所述远程关键字-值存储系统被配置以向所述远程关键字-值存储系统中所述多个物理数据块的所述副本应用复制、奇偶校验、纠删码或另一误差校正技术。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711125705.6A CN107844388B (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
CN201711125731.9A CN107908503A (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261730024P | 2012-11-26 | 2012-11-26 | |
US61/730,024 | 2012-11-26 | ||
US13/792,671 | 2013-03-11 | ||
US13/792,643 US9449038B2 (en) | 2012-11-26 | 2013-03-11 | Streaming restore of a database from a backup system |
US13/792,671 US9449039B2 (en) | 2012-11-26 | 2013-03-11 | Automatic repair of corrupted blocks in a database |
US13/792,914 | 2013-03-11 | ||
US13/792,643 | 2013-03-11 | ||
US13/792,914 US9449040B2 (en) | 2012-11-26 | 2013-03-11 | Block restore ordering in a streaming restore system |
PCT/US2013/071720 WO2014082043A2 (en) | 2012-11-26 | 2013-11-25 | Streaming restore of a database from a backup system |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711125705.6A Division CN107844388B (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
CN201711125731.9A Division CN107908503A (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104813276A CN104813276A (zh) | 2015-07-29 |
CN104813276B true CN104813276B (zh) | 2017-12-05 |
Family
ID=50774155
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380061452.4A Active CN104813276B (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
CN201711125731.9A Pending CN107908503A (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
CN201711125705.6A Active CN107844388B (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711125731.9A Pending CN107908503A (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
CN201711125705.6A Active CN107844388B (zh) | 2012-11-26 | 2013-11-25 | 从备份系统流式恢复数据库 |
Country Status (8)
Country | Link |
---|---|
US (5) | US9449040B2 (zh) |
EP (1) | EP2923263B1 (zh) |
JP (3) | JP6254606B2 (zh) |
CN (3) | CN104813276B (zh) |
AU (2) | AU2013347798B2 (zh) |
CA (1) | CA2892852C (zh) |
SG (2) | SG11201504112UA (zh) |
WO (1) | WO2014082043A2 (zh) |
Families Citing this family (211)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9449040B2 (en) | 2012-11-26 | 2016-09-20 | Amazon Technologies, Inc. | Block restore ordering in a streaming restore system |
US9268808B2 (en) | 2012-12-31 | 2016-02-23 | Facebook, Inc. | Placement policy |
US9753980B1 (en) | 2013-02-25 | 2017-09-05 | EMC IP Holding Company LLC | M X N dispatching in large scale distributed system |
US20140250078A1 (en) * | 2013-03-01 | 2014-09-04 | Storagecraft Technology Corporation | Multiphase deduplication |
US20140280667A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Scalable data transfer in and out of analytics clusters |
US20140280435A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Scalable data transfer in and out of analytics clusters |
US10552342B1 (en) * | 2013-03-15 | 2020-02-04 | EMC IP Holding Company LLC | Application level coordination for automated multi-tiering system in a federated environment |
US10592106B2 (en) * | 2013-03-20 | 2020-03-17 | Amazon Technologies, Inc. | Replication target service |
US9304814B2 (en) | 2013-04-30 | 2016-04-05 | International Business Machines Corporation | Determine variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time |
US20160110261A1 (en) * | 2013-05-07 | 2016-04-21 | Axcient, Inc. | Cloud storage using merkle trees |
GB2514810A (en) * | 2013-06-05 | 2014-12-10 | Ibm | Rebuilding data of a storage system |
US8849764B1 (en) | 2013-06-13 | 2014-09-30 | DataGravity, Inc. | System and method of data intelligent storage |
US10102079B2 (en) | 2013-06-13 | 2018-10-16 | Hytrust, Inc. | Triggering discovery points based on change |
US10089192B2 (en) * | 2013-06-13 | 2018-10-02 | Hytrust, Inc. | Live restore for a data intelligent storage system |
US9053216B1 (en) | 2013-08-09 | 2015-06-09 | Datto, Inc. | CPU register assisted virtual machine screenshot capture timing apparatuses, methods and systems |
US9607036B2 (en) | 2013-08-21 | 2017-03-28 | International Business Machines Corporation | Managing a data set |
US20150074084A1 (en) * | 2013-09-12 | 2015-03-12 | Neustar, Inc. | Method and system for performing query processing in a key-value store |
US10614047B1 (en) | 2013-09-24 | 2020-04-07 | EMC IP Holding Company LLC | Proxy-based backup and restore of hyper-V cluster shared volumes (CSV) |
US9264494B2 (en) | 2013-10-21 | 2016-02-16 | International Business Machines Corporation | Automated data recovery from remote data object replicas |
US9715520B1 (en) | 2013-12-20 | 2017-07-25 | Amazon Technologies, Inc. | Validity map-based tracking of user data updates |
US10366102B2 (en) * | 2014-02-19 | 2019-07-30 | Snowflake Inc. | Resource management systems and methods |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9367253B2 (en) * | 2014-03-13 | 2016-06-14 | Vmware, Inc. | Catastrophic data loss avoidance |
US9569108B2 (en) * | 2014-05-06 | 2017-02-14 | International Business Machines Corporation | Dataset replica migration |
US9672165B1 (en) * | 2014-05-21 | 2017-06-06 | Veritas Technologies Llc | Data management tier coupling primary storage and secondary storage |
US9594636B2 (en) * | 2014-05-30 | 2017-03-14 | Datto, Inc. | Management of data replication and storage apparatuses, methods and systems |
US10509769B1 (en) * | 2014-06-12 | 2019-12-17 | EMC IP Holding Company LLC | Method to efficiently track I/O access history |
US9798754B1 (en) * | 2014-06-12 | 2017-10-24 | EMC IP Holding Company LLC | Method to efficiently track I/O access history using efficient memory data structures |
US9875259B2 (en) * | 2014-07-22 | 2018-01-23 | Oracle International Corporation | Distribution of an object in volatile memory across a multi-node cluster |
US10002148B2 (en) | 2014-07-22 | 2018-06-19 | Oracle International Corporation | Memory-aware joins based in a database cluster |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9057508B1 (en) | 2014-10-22 | 2015-06-16 | Codeshelf | Modular hanging lasers to enable real-time control in a distribution center |
CN107977396B (zh) * | 2014-11-12 | 2021-07-20 | 华为技术有限公司 | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9684689B2 (en) * | 2015-02-03 | 2017-06-20 | Ca, Inc. | Distributed parallel processing system having jobs processed by nodes based on authentication using unique identification of data |
US20160246522A1 (en) * | 2015-02-25 | 2016-08-25 | Netapp, Inc. | Exactly once semantics |
KR102306823B1 (ko) * | 2015-03-11 | 2021-09-29 | 삼성전자 주식회사 | 무선 통신 시스템에서 면허 도움 접속 기술 활용 시 기지국의 데이터 스케쥴링을 위한 장치 및 방법 |
US9327397B1 (en) | 2015-04-09 | 2016-05-03 | Codeshelf | Telepresence based inventory pick and place operations through robotic arms affixed to each row of a shelf |
US9397985B1 (en) | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
US10740290B2 (en) * | 2015-04-14 | 2020-08-11 | Jetflow Technologies | Systems and methods for key-value stores |
US9262741B1 (en) | 2015-04-28 | 2016-02-16 | Codeshelf | Continuous barcode tape based inventory location tracking |
CN106293492B (zh) * | 2015-05-14 | 2021-08-20 | 中兴通讯股份有限公司 | 一种存储管理方法及分布式文件系统 |
US10067974B2 (en) | 2015-05-29 | 2018-09-04 | Oracle International Corporation | Loading and reloading an in-memory copy of a database object without blocking concurrent updates to the database object |
US9582209B2 (en) * | 2015-06-24 | 2017-02-28 | Vmware, Inc. | Efficient data deployment for a parallel data processing system |
US10135924B2 (en) * | 2015-06-26 | 2018-11-20 | EMC IP Holding Company LLC | Computing erasure metadata and data layout prior to storage using a processing platform |
US10489248B1 (en) * | 2015-06-30 | 2019-11-26 | EMC IP Holding Company LLC | Disaster recovery in a distributed file system |
US10740005B1 (en) * | 2015-09-29 | 2020-08-11 | EMC IP Holding Company LLC | Distributed file system deployment on a data storage system |
US9979785B2 (en) * | 2015-09-29 | 2018-05-22 | Veritas Technologies Llc | Systems and methods for restoring data from opaque data backup streams |
US10783160B2 (en) * | 2015-10-09 | 2020-09-22 | Futurewei Technologies, Inc. | System and method for scalable distributed real-time data warehouse |
US10496622B2 (en) * | 2015-10-09 | 2019-12-03 | Futurewei Technologies, Inc. | System and method for real-time data warehouse |
CN105430052B (zh) * | 2015-10-30 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种用于集群系统的仲裁方法和装置 |
US20170228371A1 (en) * | 2016-02-05 | 2017-08-10 | Manifold Technology, Inc. | Blockchain-enhanced database |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
DE202017007217U1 (de) * | 2016-04-28 | 2020-02-06 | Snowflake Inc. | Multicluster-Lager |
US10346387B2 (en) * | 2016-06-13 | 2019-07-09 | Sap Se | Replication of log-structured data |
US10671572B2 (en) * | 2016-06-14 | 2020-06-02 | Sap Se | Storage of log-structured data |
CN106020739A (zh) * | 2016-07-12 | 2016-10-12 | 乐视控股(北京)有限公司 | 用于分布式存储的数据存储方法及系统 |
KR102529696B1 (ko) * | 2016-07-14 | 2023-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN106445730B (zh) * | 2016-07-22 | 2019-12-03 | 平安科技(深圳)有限公司 | 一种提高虚拟机性能的方法和终端 |
CN106294009B (zh) * | 2016-08-05 | 2019-09-10 | 北京小米支付技术有限公司 | 数据库归档方法及系统 |
US10614066B2 (en) * | 2016-09-01 | 2020-04-07 | Amazon Technologies, Inc. | Selecting resource configurations for query execution |
US11068352B2 (en) * | 2016-09-15 | 2021-07-20 | Oracle International Corporation | Automatic disaster recovery mechanism for file-based version control system using lightweight backups |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10984044B1 (en) * | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11003714B1 (en) * | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US10776355B1 (en) * | 2016-09-26 | 2020-09-15 | Splunk Inc. | Managing, storing, and caching query results and partial query results for combination with additional query results |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11860940B1 (en) * | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US12013895B2 (en) * | 2016-09-26 | 2024-06-18 | Splunk Inc. | Processing data using containerized nodes in a containerized scalable environment |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US10795884B2 (en) | 2016-09-26 | 2020-10-06 | Splunk Inc. | Dynamic resource allocation for common storage query |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US10726009B2 (en) | 2016-09-26 | 2020-07-28 | Splunk Inc. | Query processing using query-resource usage and node utilization data |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US10977260B2 (en) * | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
KR102104417B1 (ko) * | 2016-09-28 | 2020-04-24 | 한화테크윈 주식회사 | 데이터 분산 저장 방법 및 시스템 |
US10380137B2 (en) | 2016-10-11 | 2019-08-13 | International Business Machines Corporation | Technology for extensible in-memory computing |
CN106528341B (zh) * | 2016-11-09 | 2019-07-30 | 上海新炬网络信息技术股份有限公司 | 基于Greenplum数据库的自动化容灾系统 |
CN108228678B (zh) * | 2016-12-22 | 2020-10-16 | 华为技术有限公司 | 一种多副本数据恢复方法及装置 |
CN108268565B (zh) * | 2017-01-04 | 2020-11-03 | 北京京东尚科信息技术有限公司 | 基于数据仓库处理用户浏览行为数据的方法及系统 |
CN106874133B (zh) * | 2017-01-17 | 2020-06-23 | 北京百度网讯科技有限公司 | 流式计算系统中计算节点的故障处理 |
US10255134B2 (en) * | 2017-01-20 | 2019-04-09 | Samsung Electronics Co., Ltd. | Control plane method and apparatus for providing erasure code protection across multiple storage devices |
US10423601B2 (en) * | 2017-03-06 | 2019-09-24 | Sap Se | Splitting tables in a distributed database |
WO2018164700A1 (en) | 2017-03-10 | 2018-09-13 | Visa International Service Association | Techniques for in-memory data searching |
US11237913B2 (en) * | 2018-04-27 | 2022-02-01 | Acronis International Gmbh | System and method for data classification during file backup |
US10997216B1 (en) * | 2017-04-18 | 2021-05-04 | United Services Automobile Association (Usaa) | Systems and methods for centralized database cluster management |
US10180801B2 (en) * | 2017-05-16 | 2019-01-15 | Veritas Technologies Llc | Systems and methods for load balancing backup data |
US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US10652361B2 (en) | 2017-08-09 | 2020-05-12 | Open Text Corporation | Systems and methods for building and providing polymorphic REST services for heterogeneous repositories |
US11086559B2 (en) * | 2017-09-05 | 2021-08-10 | International Business Machines Corporation | Cloud based store and restore with copy services |
US10671482B2 (en) * | 2017-09-12 | 2020-06-02 | Cohesity, Inc. | Providing consistency in a distributed data store |
CN110019294A (zh) * | 2017-09-19 | 2019-07-16 | 北京国双科技有限公司 | 一种数据库查询脚本的生成方法、数据库查询方法及装置 |
CN109542665A (zh) * | 2017-09-21 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 掉电恢复方法、数据写入方法及装置 |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
CA3078478C (en) * | 2017-10-31 | 2023-03-07 | Ab Initio Technology Llc | Managing a computing cluster interface |
CN108011929B (zh) * | 2017-11-14 | 2020-08-25 | 平安科技(深圳)有限公司 | 数据请求处理方法、装置、计算机设备和存储介质 |
CN108153492B (zh) * | 2017-12-22 | 2021-09-14 | 联想(北京)有限公司 | 数据处理方法、系统和电子设备 |
CN108390771B (zh) * | 2018-01-25 | 2021-04-16 | 中国银联股份有限公司 | 一种网络拓扑重建方法和装置 |
US10884876B2 (en) * | 2018-02-27 | 2021-01-05 | Veritas Technologies Llc | Systems and methods for performing a database backup for repairless restore |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
CN110633168A (zh) * | 2018-06-22 | 2019-12-31 | 北京东土科技股份有限公司 | 一种分布式存储系统的数据备份方法和系统 |
US11816043B2 (en) | 2018-06-25 | 2023-11-14 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of I/O requests |
CN109165117B (zh) * | 2018-06-29 | 2022-05-31 | 华为技术有限公司 | 数据处理的方法和系统 |
CN109144785B (zh) * | 2018-08-27 | 2020-07-28 | 北京百度网讯科技有限公司 | 用于备份数据的方法和装置 |
CN109271384A (zh) * | 2018-09-06 | 2019-01-25 | 语联网(武汉)信息技术有限公司 | 译员行为的大数据库及其建立方法、装置与电子设备 |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
CN109492001B (zh) * | 2018-10-15 | 2021-10-01 | 四川巧夺天工信息安全智能设备有限公司 | 一种分类提取access数据库中碎片数据的方法 |
US20220083533A1 (en) * | 2018-12-21 | 2022-03-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Performing Operations based on Distributedly Stored Data |
CN111385327B (zh) * | 2018-12-28 | 2022-06-14 | 阿里巴巴集团控股有限公司 | 数据处理方法和系统 |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
CN111400301B (zh) * | 2019-01-03 | 2023-06-27 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
US10929432B2 (en) * | 2019-01-23 | 2021-02-23 | EMC IP Holding Company LLC | System and method for intelligent data-load balancing for backups |
US20200241780A1 (en) * | 2019-01-29 | 2020-07-30 | Dell Products L.P. | Method and system for inline deduplication using accelerator pools |
KR102067630B1 (ko) * | 2019-02-01 | 2020-01-17 | 배용대 | 접근 제어 기반 데이터 분산 저장 시스템 및 방법 |
US11151267B2 (en) * | 2019-02-25 | 2021-10-19 | International Business Machines Corporation | Move data and set storage key based on key function control |
WO2020191023A1 (en) * | 2019-03-19 | 2020-09-24 | Sigma Computing, Inc. | Enabling editable tables on a cloud-based data warehouse |
WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
CN110188103A (zh) * | 2019-05-27 | 2019-08-30 | 深圳乐信软件技术有限公司 | 数据对账方法、装置、设备和存储介质 |
CN110399249A (zh) * | 2019-06-04 | 2019-11-01 | 腾讯科技(北京)有限公司 | 一种数据容灾方法及相关装置 |
US11163468B2 (en) * | 2019-07-01 | 2021-11-02 | EMC IP Holding Company LLC | Metadata compression techniques |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
CN110908859B (zh) * | 2019-10-17 | 2023-05-30 | 平安科技(深圳)有限公司 | 应用服务处理方法、装置、终端及存储介质 |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
CN112711376B (zh) * | 2019-10-25 | 2022-12-23 | 北京金山云网络技术有限公司 | 对象存储系统中对象主副本文件的确定方法及装置 |
CN110989922B (zh) * | 2019-10-28 | 2023-05-26 | 烽火通信科技股份有限公司 | 一种分布式数据存储方法及系统 |
CN111124755B (zh) * | 2019-12-06 | 2023-08-15 | 中国联合网络通信集团有限公司 | 集群节点的故障恢复方法、装置、电子设备及存储介质 |
CN111240897B (zh) * | 2020-01-07 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
US11061910B1 (en) * | 2020-01-31 | 2021-07-13 | Ocient Holdings LLC | Servicing concurrent queries via virtual segment recovery |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US11386111B1 (en) | 2020-02-11 | 2022-07-12 | Massachusetts Mutual Life Insurance Company | Systems, devices, and methods for data analytics |
US11567840B2 (en) | 2020-03-09 | 2023-01-31 | Rubrik, Inc. | Node level recovery for clustered databases |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11169881B2 (en) * | 2020-03-30 | 2021-11-09 | Alibaba Group Holding Limited | System and method for facilitating reduction of complexity and data movement in erasure coding merging on journal and data storage drive |
CN111488245A (zh) * | 2020-04-14 | 2020-08-04 | 深圳市小微学苑科技有限公司 | 分布式存储的高级管理方法及系统 |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device resources |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
JP2021189569A (ja) * | 2020-05-26 | 2021-12-13 | 富士通株式会社 | データ更新プログラム、データ更新装置及びデータ更新方法 |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
CN111698330B (zh) * | 2020-06-12 | 2022-06-21 | 北京金山云网络技术有限公司 | 存储集群的数据恢复方法、装置及服务器 |
CN111666179B (zh) * | 2020-06-12 | 2023-03-28 | 重庆云海时代信息技术有限公司 | 一种多点数据容灾的智能复制系统及服务器 |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
CN111930748B (zh) * | 2020-08-07 | 2023-08-08 | 北京百度网讯科技有限公司 | 流式计算系统数据追踪方法、装置、设备以及存储介质 |
US10997559B1 (en) * | 2020-08-20 | 2021-05-04 | Progressive Casualty Insurance Company | Resource management system |
US11288634B1 (en) * | 2020-08-20 | 2022-03-29 | Progressive Casualty Insurance Company | Resource management system |
US11829952B1 (en) * | 2020-08-20 | 2023-11-28 | Progressive Casualty Insurance Company | Resource management system |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
CN112084068A (zh) * | 2020-09-15 | 2020-12-15 | 苏州律点信息科技有限公司 | 一种数据库远程备份方法、装置和云端服务器 |
CN113537271B (zh) * | 2020-10-06 | 2022-09-27 | 思玛特健康科技(苏州)有限公司 | 基于人工智能的大数据挖掘方法、系统及云端服务中心 |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11544294B2 (en) | 2020-12-10 | 2023-01-03 | Sap Se | Distributing tables in a distributed database using consolidated grouping sources |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
CN112487111A (zh) * | 2020-12-16 | 2021-03-12 | 江苏苏宁云计算有限公司 | 基于kv数据库的数据表关联方法及装置 |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
CN113419897B (zh) * | 2021-01-19 | 2023-12-22 | 阿里巴巴集团控股有限公司 | 一种文件处理方法、装置、电子设备及其存储介质 |
CN114816227A (zh) * | 2021-01-29 | 2022-07-29 | 伊姆西Ip控股有限责任公司 | 用于数据重建的方法、设备和程序产品 |
US11550762B2 (en) * | 2021-02-24 | 2023-01-10 | Sap Se | Implementation of data access metrics for automated physical database design |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
CN113535474B (zh) * | 2021-06-30 | 2022-11-11 | 重庆紫光华山智安科技有限公司 | 异构云存储集群故障自动修复的方法、系统、介质及终端 |
US11782921B2 (en) * | 2021-11-08 | 2023-10-10 | Google Llc | Columnar cache query using hybrid query execution plan |
US20230244569A1 (en) * | 2022-01-28 | 2023-08-03 | Pure Storage, Inc. | Recover Corrupted Data Through Speculative Bitflip And Cross-Validation |
US11847031B2 (en) | 2022-03-04 | 2023-12-19 | Insight Direct Usa, Inc. | Database recovery and database recovery testing |
US11797393B2 (en) | 2022-03-23 | 2023-10-24 | Bank Of America Corporation | Table prioritization for data copy in a multi-environment setup |
US11656955B1 (en) | 2022-03-23 | 2023-05-23 | Bank Of America Corporation | Database table valuation |
CN115357295B (zh) * | 2022-10-21 | 2023-03-31 | 荣耀终端有限公司 | 系统回退方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555404A (en) * | 1992-03-17 | 1996-09-10 | Telenor As | Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas |
CN101496005A (zh) * | 2005-12-29 | 2009-07-29 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储系统 |
CN102591982A (zh) * | 2011-01-07 | 2012-07-18 | 赛门铁克公司 | 执行增量sql服务器数据库备份的方法和系统 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3991760B2 (ja) | 2002-04-26 | 2007-10-17 | 株式会社日立製作所 | データベース管理方法および装置およびその処理プログラム |
US7844577B2 (en) | 2002-07-15 | 2010-11-30 | Symantec Corporation | System and method for maintaining a backup storage system for a computer system |
US7769722B1 (en) * | 2006-12-08 | 2010-08-03 | Emc Corporation | Replication and restoration of multiple data storage object types in a data network |
US7412460B2 (en) | 2003-06-19 | 2008-08-12 | International Business Machines Corporation | DBMS backup without suspending updates and corresponding recovery using separately stored log and data files |
US20050071391A1 (en) | 2003-09-29 | 2005-03-31 | International Business Machines Corporation | High availability data replication set up using external backup and restore |
US7366740B2 (en) | 2004-05-03 | 2008-04-29 | Microsoft Corporation | Systems and methods for automatic maintenance and repair of enitites in a data model |
US7814056B2 (en) | 2004-05-21 | 2010-10-12 | Computer Associates Think, Inc. | Method and apparatus for data backup using data blocks |
JP4575740B2 (ja) * | 2004-09-30 | 2010-11-04 | 株式会社日本デジタル研究所 | 仮想サーバ |
JP2006134217A (ja) | 2004-11-09 | 2006-05-25 | Fujitsu Ltd | ライブラリシステム,仮想ライブラリ装置,及びキャッシュ復元方法 |
US7636741B2 (en) | 2005-08-15 | 2009-12-22 | Microsoft Corporation | Online page restore from a database mirror |
US7962709B2 (en) | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US8065273B2 (en) * | 2006-05-10 | 2011-11-22 | Emc Corporation | Automated priority restores |
JP4757825B2 (ja) * | 2007-03-23 | 2011-08-24 | 中部日本電気ソフトウェア株式会社 | ファイル管理装置、プログラム、コンピュータ読み取り可能な記録媒体 |
US8171487B2 (en) * | 2007-05-02 | 2012-05-01 | International Business Machines Corporation | Method for processing work items of a workflow system |
US8026180B2 (en) * | 2007-07-12 | 2011-09-27 | Micron Technology, Inc. | Methods of modifying oxide spacers |
CN101388759B (zh) * | 2007-09-10 | 2011-07-13 | 中兴通讯股份有限公司 | 实现数据的异步复制到同步复制的转换方法和系统 |
US7913116B2 (en) * | 2008-02-27 | 2011-03-22 | Red Hat, Inc. | Systems and methods for incremental restore |
JP4579998B2 (ja) * | 2008-03-31 | 2010-11-10 | 富士通株式会社 | リストア管理プログラム、リストア管理方法およびリストア管理装置 |
JP5044475B2 (ja) * | 2008-04-10 | 2012-10-10 | 日本電信電話株式会社 | データベース自動修復装置及びその方法並びにデータベース自動修復プログラム |
CN101626563B (zh) * | 2008-07-08 | 2012-07-04 | 中国移动通信集团公司 | 一种通信网络中的数据存储系统及信息处理方法 |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
JP5414223B2 (ja) * | 2008-09-16 | 2014-02-12 | 株式会社日立ソリューションズ | インターネットバックアップにおける転送データ管理システム |
US9501368B2 (en) | 2008-09-30 | 2016-11-22 | Veritas Technologies Llc | Backing up and restoring selected versioned objects from a monolithic database backup |
US8769049B2 (en) * | 2009-04-24 | 2014-07-01 | Microsoft Corporation | Intelligent tiers of backup data |
US8200633B2 (en) | 2009-08-07 | 2012-06-12 | International Business Machines Corporation | Database backup and restore with integrated index reorganization |
CN102033889B (zh) * | 2009-09-29 | 2012-08-22 | 熊凡凡 | 分布式数据库并行处理系统 |
WO2011072178A1 (en) * | 2009-12-09 | 2011-06-16 | Bizanga Ltd. | Probabilistic offload engine for distributed hierarchical object storage devices |
US8707098B2 (en) * | 2010-01-14 | 2014-04-22 | Hewlett-Packard Development Company, L.P. | Recovery procedure for a data storage system |
US20110184915A1 (en) | 2010-01-28 | 2011-07-28 | Microsoft Corporation | Cluster restore and rebuild |
US8341457B2 (en) * | 2010-03-11 | 2012-12-25 | Lsi Corporation | System and method for optimizing redundancy restoration in distributed data layout environments |
US8856593B2 (en) * | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8954385B2 (en) * | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US9697086B2 (en) * | 2010-06-30 | 2017-07-04 | EMC IP Holding Company LLC | Data access during data recovery |
US8433688B2 (en) | 2010-11-04 | 2013-04-30 | Bbs Technologies, Inc. | Method and apparatus for performing a near-instantaneous restore of a database |
US8548959B2 (en) * | 2010-11-29 | 2013-10-01 | Ca, Inc. | System and method for minimizing data recovery window |
US9594785B2 (en) * | 2010-12-16 | 2017-03-14 | Nec Corporation | Database management device and database management method |
US8386840B2 (en) * | 2010-12-27 | 2013-02-26 | Amplidata Nv | Distributed object storage system |
US8874505B2 (en) * | 2011-01-11 | 2014-10-28 | Hitachi, Ltd. | Data replication and failure recovery method for distributed key-value store |
CN102693169B (zh) | 2011-03-25 | 2015-01-28 | 国际商业机器公司 | 在多租户环境下恢复租户数据的方法、设备和数据库系统 |
JP5445503B2 (ja) * | 2011-03-31 | 2014-03-19 | ブラザー工業株式会社 | 情報通信システム、情報通信方法 |
US20120284317A1 (en) * | 2011-04-26 | 2012-11-08 | Dalton Michael W | Scalable Distributed Metadata File System using Key-Value Stores |
US8849777B1 (en) * | 2011-06-30 | 2014-09-30 | Emc Corporation | File deletion detection in key value databases for virtual backups |
US8700683B2 (en) | 2011-10-24 | 2014-04-15 | Nokia Corporation | Method and apparatus for providing a key-value based storage interface |
CN102693324B (zh) * | 2012-01-09 | 2015-03-18 | 西安电子科技大学 | 一种分布式数据库同步系统、同步方法和节点管理方法 |
CN102693312B (zh) * | 2012-05-28 | 2014-05-28 | 清华大学 | 一种键值库数据存储中柔性事务管理方法 |
CN102737127B (zh) * | 2012-06-20 | 2015-04-08 | 厦门大学 | 一种海量数据存储方法 |
US9449040B2 (en) | 2012-11-26 | 2016-09-20 | Amazon Technologies, Inc. | Block restore ordering in a streaming restore system |
-
2013
- 2013-03-11 US US13/792,914 patent/US9449040B2/en active Active
- 2013-03-11 US US13/792,671 patent/US9449039B2/en active Active
- 2013-03-11 US US13/792,643 patent/US9449038B2/en active Active
- 2013-11-25 CN CN201380061452.4A patent/CN104813276B/zh active Active
- 2013-11-25 SG SG11201504112UA patent/SG11201504112UA/en unknown
- 2013-11-25 JP JP2015544174A patent/JP6254606B2/ja active Active
- 2013-11-25 WO PCT/US2013/071720 patent/WO2014082043A2/en active Application Filing
- 2013-11-25 EP EP13857518.8A patent/EP2923263B1/en active Active
- 2013-11-25 CA CA2892852A patent/CA2892852C/en active Active
- 2013-11-25 CN CN201711125731.9A patent/CN107908503A/zh active Pending
- 2013-11-25 CN CN201711125705.6A patent/CN107844388B/zh active Active
- 2013-11-25 SG SG10201610194QA patent/SG10201610194QA/en unknown
- 2013-11-25 AU AU2013347798A patent/AU2013347798B2/en active Active
-
2016
- 2016-09-19 US US15/269,511 patent/US9892182B2/en active Active
-
2017
- 2017-04-05 AU AU2017202257A patent/AU2017202257B2/en active Active
- 2017-11-30 JP JP2017230136A patent/JP6514306B2/ja active Active
- 2017-11-30 JP JP2017230131A patent/JP6412632B2/ja active Active
-
2018
- 2018-02-09 US US15/893,496 patent/US11475038B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555404A (en) * | 1992-03-17 | 1996-09-10 | Telenor As | Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas |
CN101496005A (zh) * | 2005-12-29 | 2009-07-29 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储系统 |
CN102591982A (zh) * | 2011-01-07 | 2012-07-18 | 赛门铁克公司 | 执行增量sql服务器数据库备份的方法和系统 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104813276B (zh) | 从备份系统流式恢复数据库 | |
US10997148B2 (en) | Processing transactions on journaled tables | |
US9684566B2 (en) | Techniques for backup restore and recovery of a pluggable database | |
CN104040481B (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
EP3350728B1 (en) | Data storage management operations in a secondary storage subsystem using image recognition and image-based criteria | |
KR101323500B1 (ko) | 데이터 웨어하우징을 위한 장치 및 방법 | |
US20220350795A1 (en) | Systems and methods for efficiently querying external tables | |
US8996458B2 (en) | High volume, high speed adaptive data replication | |
US9672126B2 (en) | Hybrid data replication | |
CN107835983A (zh) | 使用一致的数据库快照在分布式数据库中进行备份和还原 | |
CN107209704A (zh) | 检测丢失的写入 | |
US20190278854A1 (en) | Methods and systems for resilient, durable, scalable, and consistent distributed timeline data store | |
US20230409431A1 (en) | Data replication with cross replication group references | |
Tomášek | Design and implementation of Archival Storage component of OAIS Reference Model | |
Dimitrov | Large‐Scale Analytics in Clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |