CN1910555A - 地理分布式集群 - Google Patents
地理分布式集群 Download PDFInfo
- Publication number
- CN1910555A CN1910555A CNA2005800024700A CN200580002470A CN1910555A CN 1910555 A CN1910555 A CN 1910555A CN A2005800024700 A CNA2005800024700 A CN A2005800024700A CN 200580002470 A CN200580002470 A CN 200580002470A CN 1910555 A CN1910555 A CN 1910555A
- Authority
- CN
- China
- Prior art keywords
- website
- websites
- affairs
- information
- data block
- 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
Links
Images
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
- G06F11/2079—Bidirectional techniques
-
- 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/1474—Saving, restoring, recovering or retrying in transactions
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2069—Management of state, configuration or failover
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2058—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
-
- 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/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了在多个站点之间镜像数据的方法和装置。在多个站点的第一站点保留记录,其用于识别对存储在第一站点的一个或多个数据块所做的哪些变化已经将它们的重做信息复制到了多个站点中的其他站点。确定与将在第一站点执行的事务相关的优先值。该事务表示对数据块的修改。之后,如果优先值指示在第一站点不工作时事务不应被丢弃,那么只在记录指示在第一站点更新数据块的所有其他改变已经将它们各自的重做信息复制到多个站点中的其他站点之后提交该事务。
Description
技术领域
本发明涉及在多个站点之间镜像数据。
背景技术
数据镜像是一项将数据从第一位置复制到一个或多个第二位置同时数据存储在第一位置处的技术。从第一位置复制到一个或多个第二位置的数据是对存储在第一位置的数据的精确复制。因此,数据镜像可用于提供镜像数据的备份以及在故障后能够及时恢复数据。数据镜像与数据将被复制到的位置无关,无论这个位置在地理上是接近还是远离待镜像的位置。
图1是示出了采用第一种方法来进行数据镜像的系统100的框图,其中存储在站点A处的数据将被镜像到站点B。文件服务器130同时将存储在数据库140中的数据复制到数据库142。每当文件服务器130处理由数据库服务器120发出的对数据库140中的数据块作出改变的事务时,文件服务器130就将反映该改变的消息发送到文件服务器132。一旦接收到该消息,文件服务器132就更新存储在数据库142中的数据来反映对数据库140所作出的改变。可使用各种技术来更新数据库142,例如对数据库142执行与对数据库140所执行的事务相同的事务或通过更新数据库142的非易失性存储器来反映存储在数据库140中的数据的当前状态。
客户端(例如客户端110和客户端112)可向数据库服务器发出I/O请求以读取数据库中的数据或向数据库写入数据。为了确保数据库140和142的一致性,在系统100中的所有客户端都通过在站点A处的数据库服务器120发出所有的I/O请求,从而保证无论客户端与哪个站点有关,所有客户端都能看到相同的被镜像的数据。
图1所示的数据镜像方法存在几个问题。首先,来自与站点A无关的客户端(例如客户端112)的所有I/O请求会由于这些客户端必须传送其I/O请求到在不同站点处的数据库服务器而遇到执行障碍。由于来自客户端的所有I/O请求都通过单一的数据库服务器(其可能在地理位置上远离请求客户端)发送,因此那些位于较远位置的客户端会遇到与I/O请求有关的明显的传输延迟。此外,单一数据库服务器将成为来自系统100中的客户端的所有I/O请求的瓶颈。
其次,如果站点A不起作用,例如,文件服务器130崩溃或变得不可用,那么在取代站点A的故障系统的备用系统(例如站点B)可用之前,数据库服务器120和连接到数据库服务器120的系统100中的所有客户端都将遇到临时服务损失。
第三,如果文件服务器130也许由于在文件服务器130与文件服务器132之间的通信链路不起作用而不能将写操作复制到文件服务器132,那么就必须注意确定是否将数据库140或数据库142作为备用系统以便从所遇到的问题中恢复过来,这是因为数据库140和142由于不能复制一个或多个写操作而不再彼此同步。如果一个数据库被选作备用系统而所选择的数据库并不反映已在系统中任何数据库上执行的所有写操作,那么就会丢失对数据库所作出的改变。
图2是示出了数据镜像的第二种方法的框图。如图2所述,存储在每个站点的每个数据库被分成两个或更多个分区。举例来说,数据库240具有分区A和B’,并且数据库242具有分区A’和B。存储在数据库240的分区A中的数据被镜像到数据库242中的分区A’,而存储在数据库242的分区B中的数据被镜像到数据库240中的分区B’。将数据库240看作分区A的主站点,并将数据库242看作分区B的主站点。
当且仅当请求仅涉及到存储在那个站点处将被镜像的分区中的数据时,可本地执行来自客户端的写数据或读数据的请求(就是,发出请求的客户端和服务该请求的数据库两者都在相同的站点中)。举例来说,如果客户端210发出写或读请求到分区A中的数据块,那么请求就可在数据库240处本地执行。然而,如果客户端210发送写或读请求到分区B中的数据块,那么数据库服务器220就将那个请求发送到文件服务器232以便可在数据库242处执行所述请求。虽然与主站点为远程站点的分区中的数据相比,这项技术并没有降低处理事务的执行延迟,但是与主站点为本地站点的分区中的数据相比,以此方式划分数据有助于降低处理事务的执行延迟。
然而,如果不能在站点之间复制数据或者如果一个特定站点不起作用,那么这个方法就存在问题。当不能将数据从第一站点(主站点)的一个分区复制到第二站点(从站点)的对应分区时,在主站点处的数据库就没有被通知复制不成功。结果,在从站点处存储复制数据的分区就变得陈旧并过时。此后,如果主站点不起作用,那么在从站点处存储复制数据的分区会由于存储在其中的数据过时而不能用于恢复主站点的不可用性。使用过时数据违反了数据库一致性原则。
因此,仍然需要可同时避免与上述方法相关的问题的镜像数据技术。
在这个部分中所述的方法是可以继续执行的方法,但并非必须是先前已设想或执行的方法。因此,除非另有说明,否则不要以为在这个部分中所描述的任何方法仅由于其已被包括在这部分中而被当作现有技术。
附图说明
通过不局限于此的附图中的实例来描述本发明,在附图中相同的参考标号表示类似的组件,其中:
图1是示出第一种数据镜像方法的框图;
图2是示出第二种数据镜像方法的框图;
图3是示出根据本发明实施例的数据镜像系统的网络框图;
图4是示出根据实施例的在多个站点之间镜像数据的步骤的流程图;
图5是示出根据本发明实施例启动成员投票操作的功能步骤的流程图;
图6是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;
图7是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;
图8是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;
图9是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;以及
图10是示出在其上可以实现本发明的实施例的计算机系统的框图。
具体实施方式
描述一种用于在多个站点之间镜像数据的方法和系统。在以下描述中,为了便于解释,阐明大量细节以提供对本发明更加全面的理解。然而,显而易见本发明可在没有这些细节的条件下来实施。在其它实例中,众所周知的结构和装置以框图形式表示以便避免不必要地模糊本发明。
结构概述
图3是示出根据本发明的实施例的数据镜像系统300的网络框图。数据镜像系统300可在数据镜像系统300中每个站点之间双向复制数据。另外,如本文所述,使用数据镜像系统300可获得其它好处。图3的数据镜像系统300包括站点310和站点312、客户端320和客户端322、数据库服务器330和数据库服务器332、文件服务器340和文件服务器342、数据库350和数据库352、定额装置(quorum device)360以及通信链路370、372、374和376。
文中所广泛使用的站点指的是在数据镜像系统300中的物理组件的逻辑分组。数据可从数据镜像系统300中的第一站点复制到第二站点。可将数据镜像系统300中的大量组件存储在单一站点中。举例来说,单一站点可有一个或多个客户端、一个或多个数据库服务器、一个或多个文件服务器、一个或多个数据库以及一个或多个定额装置。可将在一个站点中的物理组件的逻辑分组物理定位在不同尺寸的范围内。举例来说,一个站点可对应于特定的建筑物、建筑物的特定层或建筑物的特定房间。站点也可彼此物理靠近或远离。为了便于解释,图3仅图示了两个站点;然而,实施例可具有任何数量的站点,包括仅有一个单一的站点。
在此所广泛使用的客户端指的是能够发出服务请求的任何软件或硬件组件。举例来说,能够向数据库服务器发出请求的组件通常被称作数据库客户端。为了便于解释,在图3中,每个站点都被描述为具有单一客户端;然而,一个站点可包含任何数量的客户端。客户端的非限制、示例性实例(例如客户端320和322)包括软件应用程序、个人计算机、能够向数据库服务器发出请求的机器、以及数据库服务器。
诸如数据库服务器330和数据库服务器332的数据库服务器是用于管理数据的一个或多个软件和/或硬件组件。在数据库管理的其它功能中,数据库服务器通常管理和促进存取数据库,且处理数据库客户端存取数据库的请求。虽然在图3中仅示出了两个数据库服务器,即数据库服务器330和数据库服务器332,但是在数据镜像系统300中可使用任何数量的数据库服务器。
在此广泛使用的文件服务器指的是能够执行文件处理和存储功能的任何硬件或软件组件。诸如文件服务器340和文件服务器342的文件服务器处理从数据库服务器接收到的并在数据库上执行的写和读操作。注意在此广泛使用的术语“文件服务器”,作为文件服务器可以包括与数据库管理系统分开执行并独立于数据库管理系统的系统、或在数据库管理系统中的一个模块。
诸如数据库350和数据库352的数据库是电子信息的持久存储器。数据库的非限制、示例性实例包括关系数据库、面向对象的数据库、多维数据库、分布式计算机集群中的数据库以及在服务器刀片的网格中的数据库。在美国专利第6,353,836号中还详细解释了数据库服务器的分布式集群,其内容结合于此作为参考。在美国临时专利申请序列号60/500,050中还详细解释了在其上运行有一组数据库服务器的网格,其内容结合于此作为参考。
在此所广泛使用的定额装置指的是能够执行成员投票操作的任何硬件或软件组件。在一个实施例中,成员投票操作确定要将哪一(几)个数据库服务器从复制成员中去除。定额装置(例如定额装置360)的操作将在下面题为“双向复制”的部分中进一步详细解释。为了便于解释,在图3中仅示出了一个定额装置;然而,数据镜像系统300的实例可包括任何数量的定额装置。
可通过在数据库服务器(例如数据库服务器330或数据库服务器332)与定额装置360之间提供数据交换的任何介质或机构来实现通信链路370和372。可通过在文件服务器(例如文件服务器340和文件服务器342)之间提供数据交换的任何介质或机构来实现通信链路374和376。通信链路370、372、374和376的实例包括(但不限于)诸如局域网(LAN)、广域网(WAN)、以太网或互联网的网络,或者一个或多个陆地、卫星或无线链路。
在镜像环境下的误差处理-概述
提供了用于在多个站点之间镜像数据的方法和机构。根据一项技术,在包括第一站点和第二站点的多个站点之间建立复制关系。在一个实施例中,复制关系规定在多个站点的任何站点处所作出的至少一些改变在所述多个站点的每个其它站点处被复制。
与复制关系的第一站点有关的第一数据库服务器请求执行写操作。此后,在第一站点处执行写操作。发送消息以请求要在复制关系的第二站点处镜像该写操作。
为了解释,假定第二站点不能成功执行写操作。因此,第一数据库服务器接收到在第二站点处未能成功执行写操作的指示。响应于此,第一数据库服务器启动成员投票操作来确定是将第一数据库服务器还是与第二站点有关的第二数据库服务器从复制成员中去除。
在实施例中,第一数据库服务器通过与定额装置通信来启动成员投票操作。定额装置是能够执行成员投票操作的硬件或软件组件。定额装置可基于多个因素(例如哪个数据库服务器更重要或更可靠)来确定将哪个数据库服务器从复制成员中去除。定额装置可采用各种成员投票协议来确定成员。
如果确定与第二站点有关的第二数据库服务器应从复制成员中去除,那么第一数据库服务器会发送消息给第一站点处的文件服务器来指示在第二站点处将不再复制写操作。以下将进一步详细描述其它的实施例。
基于优先权的提交处理-概述
也提供了用于基于与事务有关的优先值来处理事务提交的技术。根据一项技术,数据在多个站点之间镜像。在多个站点的第一站点处,保持一个第一记录,其识别哪些已在第一站点处执行的事务已将其重做信息复制到多个站点中的其它站点。在此广泛使用的重做信息指的是描述事务的信息。同样在第一站点处,保持一个第二记录,其识别哪些已在第一站点处执行的事务已将其重做信息记录到第一站点处的持久存储器。
确定与将在第一站点处执行的事务有关的优先值。该事务指定对数据块的修改。通常将重做信息存储在重做日志文件中。在多数实施中,重做日志文件按事务提交的顺序来顺序存储重做信息。因而,确保与高优先权事务(具有指示如果发布事务的站点不起作用,不会丢失该事务的优先值的事务)有关的重做信息已被复制来确保与低优先权事务(具有指示如果发布事务的站点不起作用,可能丢失该事务的优先值的事务)有关的重做信息也已被复制,其中低优先权事务在高优先权事务之前已被提交。
如果优先值指示如果第一站点不起作用不会丢失该事务,那么仅在第一记录指示在第一站点处的事务之前已提交的所有其它事务已将其各自的重做信息复制到多个站点的其它站点之后才提交该事务。
然而,在实施例中,如果优先值指示在第一站点不起作用时可以丢失该事务,那么在第一记录指示在第一站点处的事务之前已提交的所有其它事务已将其各自的重做信息复制到多个站点的其它站点之前,提交该事务。在另一实施例中,如果优先值指示当第一站点不起作用时可能丢失该事务,那么在第二记录指示在第一站点处的事务之前提交的所有其它事务已将其各自重做信息存储到第一站点处的持久存储器之后,提交该事务。
以下进一步详细描述其它实例。
双向复制
如以下进一步详细解释的,实施例支持在系统300的每个站点中的同时本地读操作和本地写操作。写操作可以同步或不同步地复制到系统300中的每个其它站点。在实施例中,可以通过延迟将写操作复制到另一个站点来加强写操作的性能。举例来说,向另一个站点的写操作复制可以被延迟,直到高优先权事务需要提交或者需要保存预写式日志或回写式日志的点。写操作的迟迟使得写操作的复制能够被有效地批处理。
图4是示出了根据实施例的在多个站点之间镜像数据的步骤的流程图400。开始,在步骤410,在多个站点之间建立复制关系。在实施例中,为数据镜像系统300中的每个站点建立复制关系,例如,为图3中的站点310和站点312建立复制关系。在实施例中,复制关系规定在数据镜像系统300中的每个其它站点处复制在数据镜像系统300中的任何站点处所作出的至少一些改变。在执行了步骤410后,处理进行到步骤420。
在步骤420中,与多个站点中的第一站点有关的第一数据库服务器请求执行写操作。在实施例中,步骤420可以由站点310中请求执行写操作的数据库服务器330来执行。写操作可以是将数据写入位于第一站点处的数据库(例如数据库350)的操作。在执行了步骤420之后,处理进行到步骤430。
在步骤430中,在第一站点处执行在步骤420中请求的写操作。在实施例中,可以由指示文件服务器340在数据库350处执行写操作的数据库服务器330来在站点310处执行写操作,且之后文件服务器340在数据库350处执行写操作。同样在步骤430中,发送消息以请求在第二站点处镜像写操作。在实施例中,文件服务器340可以向文件服务器342发送将写操作镜像在站点312上的请求。在执行了步骤430之后,处理进行到步骤440。
应注意,由于每个站点的每个数据库服务器都使用一个机制来确保在同一时刻仅有一个写操作可改变持久存储在磁盘上的相同数据块,因此可在系统中的每个站点处执行写操作。可使用多种技术来实现这样的机制,其中多种技术可包括全局加锁管理的形式(共享磁盘集群)或磁盘分区(无共享集群)。
在步骤440中,第一数据库服务器接收到在第二站点处不能成功执行写操作的指示。举例来说,数据库服务器330接收到在站点312处不能成功执行写操作的指示。在实施例中,指示是指示应该执行成员投票操作的输入/输出误差。输入/输出误差可以使用由数据库服务器330在消息中所接收到的唯一误差码来表示。在站点310处所接收的指示可为表示在站点312处不能复制写操作的输入/输出误差。在实施例中,在步骤440中仅当在数据镜像系统300中的一个站点不能反映在数据镜像系统300中的另一个站点处所执行的写操作时才接收到指示;因此,如果数据库服务器332故障,步骤440的指示就不能被站点310接收。在实施例中,如果文件服务器342故障、数据库352故障、通信链路374故障或通信链路376故障时,则站点310接收步骤440的指示。在执行了步骤440之后,处理进行到步骤450。
在步骤450中,第一数据库服务器启动成员投票操作来确定是将第一数据库服务器还是与第二站点有关的第二数据库服务器从复制成员中去除。举例来说,通过数据库服务器330启动成员投票操作来确定是将数据库服务器330还是数据库服务器332从复制成员中去除来执行步骤450。
在实施例中,第一数据库服务器通过与定额装置通信来启动成员投票操作。举例来说,数据库服务器330通过通信链路370与定额装置360通信来启动成员投票操作。
图5是示出根据本发明实施例的启动成员投票操作的功能步骤的流程图。在步骤510中,通知定额装置不能成功执行写操作。举例来说,可通过数据库服务器330经由通信链路370来通知定额装置360在站点312处不能成功执行写操作来执行步骤510。在执行了步骤510之后,处理进行到步骤520。
在步骤520中,在步骤510中被通知的定额装置确定将哪个数据库服务器从复制成员中去除。举例来说,可通过定额装置360确定将哪个数据库服务器从复制关系中去除来执行步骤520。在实施例中,确定将哪个数据库服务器从复制关系中去除包括确定哪个数据库服务器更重要或更可靠。如果在数据镜像系统300中的所有数据库服务器同样重要或同样可靠,那么可由定额装置选择一个默认的数据库服务器。
在实施例中,如果定额装置360确定将数据库服务器332从复制成员中去除,那么数据库服务器330就向文件服务器340发送消息,该消息指示在站点312处将不再复制在站点310处执行的写操作。换句话说,如果定额装置360确定将站点310从复制成员中去除,那么数据库服务器332通知文件服务器342在站点310处将不再复制数据。即使不再将写操作复制到不同的站点,文件服务器仍可本地地处理读和写操作。
在实施例中,定额装置360包含多个镜像装置且步骤510是由主文件服务器执行的。主文件服务器是与多个站点中的一个有关的文件服务器,通过该文件服务器,与多个站点中其它站点有关的所有其它文件服务器与定额装置通信。举例来说,数据库服务器330可以为主文件服务器,因此,数据库服务器332通过数据库服务器330与定额装置360通信。
在另一个实施例中,将定额装置360定位在与不同故障范围有关的与数据镜像系统300中的任何其它站点不同的站点中。在该实施例中,在数据镜像系统300中的每个数据库服务器可直接接触定额装置360。然而,如果定额装置360故障,那么在数据镜像系统300中的每个站点由于不能与定额装置360通信而故障,即使这些站点本来是正常的且彼此之间具有网络和输入/输出连接。
在实施例中,站点可在定额装置确定将在该站点处的数据库服务器从复制成员中去除之后重新加入复制关系。举例来说,如果将站点312从复制关系中去除,那么站点312可重新加入复制关系。响应于站点312重新加入复制关系,站点312中的数据将与站点310中的数据重新同步,并且数据库352被重新安装。
改进写重做信息的执行
写操作的同步复制增加了写操作的等待时间和成本。虽然必须注意要协调在仍未被复制的其它地方启动的写操作和即将发布的写操作,但是文件服务器也可异步复制写操作。以下讨论了有利地采用了异步复制的大量实例。
以下讨论通过异步复制改进写重做信息执行的几个实施例。文中所广泛使用的重做信息指的是描述事务的信息。在实施例中,重做信息描述了已提交或待提交的事务。在实施例中,可将重做信息记录在重做日志文件中。重做信息可用于重新运行或“取消”已被提交的事务。
图6是示出了根据本发明实施例的在多个站点之间镜像数据的步骤的流程图。图6中示出的步骤可用于在多个站点之间镜像重做信息。开始,在步骤610中,保持在多个站点的第一站点处的一个第一记录,其识别已在该第一站点处执行的哪些事务已将其重做信息复制到多个站点中的其它站点。步骤610可由站点310的数据库服务器330来执行。在实施例中,步骤610可通过识别重做日志文件的一部分来执行。在步骤610的重做日志文件的已识别部分中反映的所有事务已经被复制到多个站点的其它站点。
举例来说,在步骤610中识别的重做日志文件的部分可通过保持识别在重做日志文件中所反映的特定事务的记录来识别,其中重做日志文件已将其各自的重做信息复制到多个站点的其它站点并与最大日志序列号(LSN)有关。在重做日志文件中具有小于或等于与特定事务有关的LSN的LSN的所有事务都在重做日志文件中的已将其重做信息复制到多个站点的其它站点的识别部分中。在执行步骤610之后,处理进行到步骤620。
在步骤620中,保持在多个站点的第一站点处的第二记录,其识别已在第一站点处执行的哪个事务已将其重做信息记录到第一站点处的持久存储器。步骤620可以由站点310的数据库服务器330来执行。在实施例中,步骤620可通过识别重做日志文件的一部分来执行。在步骤620的重做日志文件的识别部分中所反映的所有事务都已被记录到第一站点处的持久存储器中。
举例来说,在步骤620中识别的重做日志文件的部分可通过保持一个记录来识别,该记录识别了在重做日志文件中反映的特定事务的记录来识别,其中该重做日志文件已将其各自的重做信息记录到第一站点处的持久存储器中并与最大日志序列号(LSN)有关。在重做日志文件中具有小于或等于与特定事务有关的LSN的LSN的所有事务位于重做日志文件的识别部分中,其中该重做日志文件已将其重做信息记录到第一站点处的持久存储器。在执行了步骤620之后,处理进行到步骤630。
在步骤630中,确定与事务有关的优先值。优先值可以用于基于事务的重要性来确定何时提交事务。举例来说,如果第一站点不起作用时不应丢失特定的事务,那么可给该务一个比第一站点不起作用时可能丢失的事务更高的优先值。
在实施例中,与步骤630的优先值有关的事务将在第一站点处执行。在实施例中,事务指明将对至少一个数据块作出修改。被事务修改的数据块可位于站点310的数据库350中。为了便于解释,虽然一个事务可修改两个或多个数据块,但是只讨论修改一个数据块的事务。步骤630可由站点310的数据库服务器330来执行。在执行了步骤630之后,处理进行到步骤640。
在步骤640中,确定优先值是否指示当第一站点不起作用时不应丢失事务。步骤640可由站点310的数据库服务器330来执行。
如果步骤640的确定是肯定的(优先值指示如果第一站点不起作用不应丢失事务),那么处理进行到步骤650。在步骤650中,仅在第一记录指示与事务有关的重做信息已被复制到数据镜像系统300中的每个其它站点之后才提交事务。步骤650可由站点310的数据库服务器330来执行。
在实施例中,在步骤650中所作出的是否已将与事务有关的重做信息复制到多个站点中的其它站点的确定是通过将与事务有关的提交记录和第一记录进行比较来执行的。
如果步骤640的确定是否定的(优先值指示如果第一站点不起作用可能丢失事务),那么处理进行到步骤660。在步骤660中,仅在第二记录指示与事务有关的重做信息已被存储到第一站点的持久存储器之后才提交事务。步骤660可由站点310的数据库服务器330来执行。
在实施例中,在步骤660中所作出的与事务有关的重做信息是否已被存储到持久存储器的确定是通过将与事务有关的提交记录和第二记录进行比较来执行的。
在可选实施例中(图6中没有示出),步骤660可通过在第一记录指示与事务有关的重做信息已被复制到多个站点的其它站点之前提交该事务来执行。在实施例中,站点310的数据库服务器330在第一记录指示与事务有关的重做信息已被复制到多个站点的其它站点之前提交了该事务。由事务所产生的重做信息被认为是与该事务有关的。
以上所讨论的实施例有利地使得基于事务的重要性来确定何时提交事务成为可能。举例来说,如果特定事务是非常重要的事务(在任何情况下都不能丢失),那么仅在第一记录指示已在该事务之前提交的所有其它事务都已将其各自的重做信息复制到其它站点之后才提交该事务。然而,并不如此重要的事务可在第二记录指示出在该事务之前提交的所有其它事务都已将其各自的重做信息存储到第一站点处的持久存储器之后才提交。以这种方式,尽管如果第一站点在与所提交事务有关的改变被镜像到多个站点的其它站点中之前不起作用,则所提交的并不如此重要的事务可能会丢失,但是并不如此重要的事务可能会比非常重要的事务更早提交。
如果写操作的复制被延迟并且发出该写操作的特定站点不起作用,那么在开始恢复不起作用的站点之前,存活的站点必须等待从不起作用的站点传输的所有信息都已被多个站点中的每个其它站点接收到。这样实施确保在站点不起作用之前就已从不起作用的站点发出并且还未被接收到的消息,在其启动恢复或已完成不起作用的站点的恢复之后没有被存活站点处理。可选地,剩余站点可在一个或多个剩余站点已启动或完成不起作用站点的恢复之后忽略从不起作用的站点传输的任何消息。
图7是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图。图7中示出的步骤可用于有利地延迟将写操作复制到重做日志。对于数据库服务器来说有利地减少将数据写到重做日志的等待时间。如果在站点故障的情况下能允许最近所提交的事务的丢失,则数据库服务器可延迟将写复制到重做日志。以下所讨论的本发明实施例有利地延迟了将写复制到重做日志,直到反映还未被持久存储的改变的数据块被持久存储或传送到另一个站点为止。
开始,在步骤710,在多个站点中的第一站点处处理事务。步骤710可通过处理事务(例如写操作)的站点310的数据库服务器330来执行。
在步骤720中,产生反映所处理事务的信息。该信息可在易失性存储器中产生。信息可包括关于所处理事务的重做信息。步骤720可由站点310的数据库服务器330来执行。在产生反映所处理事务的信息之后,处理进行到步骤730。
在步骤730中,确定在与所处理事务有关的数据块被持久存储或该数据块被传送到另一个站点之前是否已持久存储了在步骤720中所产生的信息。步骤730可由站点310的数据库服务器330来执行。
如果步骤730的确定是肯定的(在与所处理事务有关的数据块被持久存储或该数据块被传送到了另一个站点之前已持久存储了在步骤720中所产生的信息),那么处理进行到步骤740。在步骤740中,在步骤720中所产生的信息在数据块被持久存储或该数据块被传送到多个站点的另一个站点之前就被持久存储了。
在实施例中,可执行步骤740以便持久存储关于多个事务的信息。举例来说,在第一站点处,可处理第二事务,并且在第一站点处的易失性存储器中可产生反映所处理的第二事务的信息。如果在步骤720中所产生的信息(以下称为“第一信息”)和反映第二事务的信息(以下称为“第二信息”)在与所处理的第二事务有关的第二数据块被持久存储或该第二数据块被传送到多个站点的另一个站点之前没有被持久存储,那么可在第二数据块被持久存储或第二数据块被传送到多个站点的另一个站点之前,使用批处理持久存储第一信息和第二信息。在实施例中,数据库服务器330使用批处理持久存储第一信息和第二信息。在实施例中,批处理可以是异步的。异步批处理的结果可使用输入/输出结果描述符(例如在UNIX中所使用的aio_result_t)来确定。异步输入/输出结果描述符可用于确定批处理何时完成处理。
如果步骤730的确定是否定的(在与所处理事务有关的数据块被持久存储或将该数据块传送到另一个站点之前没有持久存储在步骤720中所产生的信息),那么处理进行到步骤750。在步骤750中,持久存储或传送与所处理事务有关的数据块。
改进写入数据库文件的执行
以下讨论通过异步复制改进写入数据库文件的执行的几个实施例。图8是示出了根据本发明一个实施例在多个站点之间镜像数据的步骤的流程图。图8中示出的步骤可用于使用预写式日志方案写入数据库文件。
开始,在步骤810中,在多个站点的第一站点处保持第一记录,其识别对第一站点处的一个或多个数据块所作出的改变已将有关的重做信息复制到多个站点中的其它站点了。第一站点实施预写式日志方案。在预写式日志方案中,在高速缓存中反映未被持久存储的改变的数据块(“脏”数据块)仅在已持久存储了与所述的一个或多个数据块有关的重做信息之后才被持久存储。在实施例中,第一站点相对于事务的执行异步复制事务到多个站点中的其它站点。步骤810可由保持第一记录的站点310的数据库服务器330执行,其中第一记录识别对存储在站点310处的数据库350中的一个或多个数据块所作出的哪些改变已将有关的重做信息复制到站点312。对已将有关的重做信息复制到多个站点中的其它站点的一个或多个数据块作出的改变可通过将每个改变分配给重做日志中的一个日志序列号(LSN)并存储最近已被复制的改变的日志序列号来跟踪。另外,与对特定数据块作出的最后改变有关的LSN被存储在所述特定数据块的头信息中。在执行了步骤810之后,处理进行到步骤820。
在步骤820中,在多个站点的第一站点处保持第二记录,其识别对存储在第一站点处的一个或多个数据块所作出的改变已将有关的重做信息记录到多个站点的第一站点处的持久存储器。对一个或多个数据块所作出的已将有关重做信息记录到多个站点的第一站点处的持久存储器的改变可通过将每个改变分配给重做日志中的一个日志序列号(LSN)并存储已被记录到持久存储器的最近改变的日志序列号来跟踪。步骤820可通过保持第二记录的站点310的数据库服务器330来执行,其中第二记录识别对存储在站点310的数据库350中的一个或多个数据块所作出的的哪些改变已将有关的重做信息记录到站点310处的持久存储器。在执行步骤820之后,处理进行到步骤830。
在步骤830中,确定第一站点是否以与在第一站点发出写事务相同的顺序复制写事务。站点310的数据库服务器330可执行步骤830。
如果步骤830的确定是肯定的(第一站点的确以与在第一站点处完成写事务相同的顺序复制写事务),那么处理进行到步骤840。在步骤840中,在第二记录指示对存储在第一站点处的一个或多个数据块所作出的任何改变都已将重做信息记录到持久存储器之后才持久存储数据块。对数据块所作出的改变可以由一个或多个事务来执行。可以通过在第二记录指示对存储在站点310处的数据库350中的一个或多个数据块所作出的任何改变都已将有关的重做信息记录到站点310处的持久存储器之后,将特定数据块持久存储在数据库350中来执行步骤840。
如果步骤830的确定是否定的(第一站点没有以与在第一站点处完成写事务相同的顺序复制写事务),那么处理进行到步骤850。在步骤850中,在第一记录指示对存储在第一站点处的一个或多个数据块所作出的任何改变都已将重做信息复制到多个站点的其它站点之后,持久存储数据块。对一个或多个数据块所作出的改变可由一个或多个事务执行。步骤850可通过在第一个记录指示对存储在站点310处的数据库350中的一个或多个数据块所作出的任何改变都已使有关的重做信息复制到多个站点的其它站点之后将特定数据块持久存储在站点310的数据库350中来执行。在第一记录指示对特定数据块所作出的改变已被复制到多个站点的其它站点之后,那么可释放与所述数据块有关的锁定。特别地,在共享磁盘或共享高速缓存集群数据库中,其中使用全局加锁管理协调对数据块的同时存取,仅在第一记录指示与对数据块作出的改变有关的重做信息已被复制到多个站点的其它站点之后才释放与数据块有关的锁定。这样确保了除非与在先对数据块作出的改变有关的所有在先重做信息在站点的本地持久存储器中都是可以得到的,否则从远程站点接收数据块的任何站点不会读或写该数据块。
使用图8所示的实施例,如果对不同文件的写操作是以与发布写操作相同的顺序复制的,那么一旦第二记录反映已更新特定数据块的所有事务,特定数据块就可以被持久存储。以这种方式,特定数据块的复制将仅发生在已复制由一个或多个事务对特定数据块作出的改变有关的重做信息之后。
本发明的实施例使用回写式日志方案改进写入数据库文件的执行。在回写式日志方案中,在产生数据块的重做信息之前持久存储数据块。图9是示出了根据本发明实施例的在多个站点之间镜像数据的步骤的流程图。图9中示出的步骤可用于使用回写式日志方案写入数据库文件。开始,在步骤910中,在多个站点的第一站点处,在持久存储了关于对数据块所作出的改变的重做信息之前持久存储数据块。可以通过在持久存储关于对数据块所作出的改变的重做信息之前站点310的数据库服务器330将数据块持久存储在数据块350中来执行步骤910。在执行步骤910之后,处理进行到步骤920。
在步骤920中,在第一站点处,在已将改变复制到多个站点中的其它站点之后,持久存储反映对数据块所作出的改变的重做信息。可以通过在已将对数据块的改变存储到站点312之后,站点310的数据库服务器330持久存储反映对数据块所作出的改变的重做信息来执行步骤920。
在实施例中,在步骤920中,确定何时将对数据块作出的改变复制到多个站点中的其它站点。在实施例中,站点310的数据库服务器330确定何时将对数据块作出的改变复制到站点312。
在实施例中,单一处理可发出一个或多个事务,每个事务对数据块作出改变。在另一实施例中,一个或多个事务可由两个或多个处理发出。数据库服务器330可确定对一个或多个数据块作出改变的一个或多个事务何时完成。在对一个或多个数据块作出改变的一个或多个事务完成之后,如步骤910中所述来持久存储一个或多个数据块。
使用图9中所示出的步骤,数据库服务器可等待直到文件服务器完成向数据块的所有写操作的复制为止,所述数据块已在持久存储用于写操作的重做信息之前就已被持久存储。举例来说,站点310中的数据库服务器330可以等待直到文件服务器340完成了向站点312复制所有对数据块的写操作为止,其中数据块在数据库服务器330将用于写操作的重做信息持久存储在数据库350中之前就已被持久存储在站点310。
站点恢复
在实施例中,如果在数据镜像系统300中的特定站点不起作用,那么在确定从特定站点传输到在数据镜像系统300中每个其它站点的所有消息都已被其目标方接收到之后启动特定站点的恢复。举例来说,在图3所示的实施例中,如果站点310不起作用,那么直到确定已在站点312接收到从站点310传输到站点312的所有消息之后才启动站点310的恢复。
改进写向临时文件的执行
临时文件可被特定数据库操作中的一个数据库服务器使用,例如排序和散列连接。临时文件被用作类似于缓冲存储区以在有线的时间内容纳数据。在某些情况下,需要复制关于临时文件的空间分配的元数据的改变。然而,如果多个站点中的其它站点不需要临时文件,那么就不需要复制临时文件。
在实施例中,在多个站点的第一站点处的数据库服务器处确定是否将数据结构(例如临时文件)复制到多个站点的每个其它站点。除非确定不用将数据结构复制到多个站点的每个其它站点,否则第一站点处的数据结构将被复制到多个站点的每个其它站点。举例来说,在图3所示的实施例中,站点310的数据库服务器330可确定不需要将特定临时文件复制到站点312。因此,数据库服务器330不将临时文件复制到站点312。
实施机构
图10是示出可实施本发明一个实施例的计算机系统1000的框图。计算机系统1000包括用于通信信息的总线1002或其它通信机构,以及与总线1002连接的用于处理信息的处理器1004。计算机系统1000也包括连接到总线1002的用于存储由处理器1004执行的信息和指令的主存储器1006,例如随机存取存储器(RAM)或其它动态存储设备。主存储器1006也可用于存储临时变量或在将由处理器1004执行的指令执行期间的中间信息。计算机系统1000进一步包括连接到总线1002的用于存储处理器1004的静态信息和指令的只读存储器(ROM)1008或其它静态存储设备。将存储设备1010(例如磁盘或光盘)连接到总线1002来存储信息和指令。
计算机系统1000可通过总线1002连接到一个用于向计算机用户显示信息的显示器1012,例如阴极射线管(CRT)。将一个包括字母数字和其它键的输入设备1014连接到总线1002来与处理器100通信信息和指令选择。另一种类型的用户输入设备是用于与处理器1004通信方向信息和命令选择并用于控制在显示器1012上的光标移动的光标控制器1016,例如鼠标、追踪球或光标方向键。输入装置通常在两个轴上(第一个轴(例如X轴)和第二个轴(例如Y轴))具有两个自由度,使装置能指定平面上的位置。
本发明涉及用于实施本文中所描述技术的计算机系统1000的使用。根据本发明的一个实施例,通过计算机系统1000响应执行包含在主存储器1006中的一个或多个指令的一个或多个序列的处理器1004来执行那些技术。这样的指令可从另一个计算机可读介质(例如存储设备1010)读入到主存储器1006。包含在主存储器1006中的指令序列的执行使得处理器1004执行本文中所述的处理步骤。在可选的实施例中,硬连线电路可取代软件指令或与软件指令相结合来实施本发明。因此,本发明的实施例并不限于硬件电路和软件的任何特定组合。
本文中所用的术语“计算机可读介质”指的是参与向处理器提供用于执行的指令的任何介质。这种介质可采取多种形式,包括但不限于非易失介质、易失介质和传输介质。非易失介质包括(例如)光盘或磁盘,例如存储设备1010。易失介质包括动态存储器,例如主存储器1006。传输介质包括同轴电缆、铜线和光纤,包括组成总线1002的导线。传输介质也可采取声波或光波的形式,例如那些在无线电波和红外线数据通信期间所产生的声波和光波。
一般形式的计算机可读介质包括(例如)软盘、软磁盘、硬盘、磁带,或任何其它磁介质、CD-ROM、任何其它光介质、穿孔片、纸带、任何具有孔式图样的物理介质、RAM、PROM和EPROM、FLASH-EPROM、任何其它存储芯片或盒式磁带、下文中所描述的载波,或计算机可读的任何其它介质。
各种形式的计算机可读介质可参与将用于执行的一个或多个指令的一个或多个序列承载到处理器1004。举例来说,开始可将指令承载到远程计算机的磁盘上。远程计算机可将指令存入其动态存储器中,然后使用调制解调器通过电话线来发送指令。计算机系统1000的本地调制解调器可接收到电话线上的数据,并使用红外线传输器将数据转换成红外信号。红外监测器可接收在红外信号上所携带的数据且适当的电路可将数据置于总线1002上。总线1002将数据承载到主存储器1006,处理器从主存储器1006处接收并执行指令。主存储器1006所接收的指令可视情况在处理器1004执行之前或之后存储在存储设备1010上。
计算机系统1000也包括连接到总线1002的通信接口1018。通信接口1018提供双向的数据通信,其连接到与局域网1022连接的网络链路1020。举例来说,通信接口1018可为综合业务数字网(ISDN)卡或调制解调器以提供与相应类型电话线的数据通信连接。如另一个实例,通信接口1018可为本地网(LAN)卡以提供与兼容LAN的数据通信连接。也可使用无线链路。在任何这样的实施例中,通信接口1018发送并接收承载表示各种类型信息的数字数据流的电、电磁或光信号。
网络链路1020通常可通过一个或多个网络向其它数据设备提供数据通信。举例来说,网络链路1020可通过局域网1022与主机1024链接,或与由互联网服务提供商(ISP)1026所操作的数据设备的链接。ISP 1026反过来通过目前通称为“互联网”1028的全球分组数据通信网络提供数据通信服务。局域网1022和互联网1028都使用承载有数字数据流的电、电磁或光信号。通过各种网络的信号以及在网络链路1020上和通过通信接口1018的信号是传输信息的载波的典型形式,所述信号传送数字数据给计算机系统1000或传送来自计算机系统的数字数据。
计算机系统1000可通过网络、网络链路1020和通信接口1018发送消息和接收包括程序代码的数据。在互联网实例中,服务器1030可通过互联网1028、ISP 1026、局域网1022和通信接口1018传送用于应用程序的请求程序代码。
所接收的代码可在其被接收到时由处理器1004执行,和/或存储在存储设备1010或其它非易失存储介质中用于稍后执行。以这种方式,计算机系统1000可获得载波形式的应用代码。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则内所作出的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (56)
1.一种在多个站点间镜像数据的方法,包括:
在所述多个站点中的第一站点保留记录,其用于识别在第一站点已经执行的哪些事务已经将它们的重做信息复制到了所述多个站点中的其他站点;
确定与将在所述第一站点执行的事务相关的优先值,其中,所述事务表示对数据块的修改;
如果所述优先值是一组可能值中的第一值,那么只在所述记录表明与所述事务相关的重做信息已经被复制到所述多个站点中的所述其他站点之后提交所述事务;以及
如果所述优先值是所述一组可能值中的第二值,那么即使所述记录没有表明与所述事务相关的重做信息已经被复制到所述多个站点中的所述其他站点,也提交所述事务。
2.根据权利要求1所述的方法,其中,所述第一值表明所述事务在所述第一站点不工作时也不应被丢弃。
3.根据权利要求1所述的方法,其中,所述第二值表明所述事务在所述第一站点不工作时可以被丢弃。
4.根据权利要求1所述的方法,进一步包括以下步骤:
通过将与所述事务相关的提交记录和所述记录进行比较,来确定在所述事务已经提交之前提交的所有其他事务是否已经将它们各自的重做信息复制到所述多个站点中的所述其他站点。
5.根据权利要求1所述的方法,其中,所述记录是第一记录,并且所述方法进一步包括以下步骤:
在所述第一站点保留第二记录,其用于识别在所述第一站点已经执行的哪些事务已经将它们的重做信息记录到所述第一站点的持久性存储器中。
6.根据权利要求1所述的方法,进一步包括以下步骤:
如果所述优先值是所述一组可能值中的所述第二值,那么在所述记录表明由所述事务生成的所述重做信息已经被复制到所述多个站点中的所述其他站点之前提交所述事务。
7.根据权利要求5所述的方法,进一步包括以下步骤:
如果所述优先值是所述一组可能值中的所述第二值,那么在所述第二记录表明由所述事务生成的所述重做信息已经被存储到所述第一站点的持久性存储器中之后提交所述事务。
8.根据权利要求5所述的方法,进一步包括以下步骤:
通过将与所述事务相关的提交记录和所述第二记录进行比较,确定在所述第一站点已经执行的哪些事务已经将它们的重做信息记录到持久性存储器中。
9.根据权利要求1所述的方法,进一步包括以下步骤:
如果所述多个站点中的特定站点不工作,那么在确定由所述特定站点向所述多个站点中的其他各个站点发送的所有消息都已经在其目的站点被接收之后启动所述特定站点的恢复。
10.根据权利要求1所述的方法,进一步包括以下步骤:
在所述多个站点中的每个站点,确定数据结构是否将被复制到所述多个站点中的其他各个站点;以及
除非确定所述数据结构将不被复制到所述多个站点中的其他各个站点,否则将所述数据结构复制到所述多个站点中的其他各个站点。
11.一种存储数据的方法,包括:
在多个站点中的第一站点,处理事务;
在易失性存储器中生成反映所处理的所述事务的信息;
以及
如果所述信息在与所处理的所述事务相关的数据块被持久性存储或所述数据块被传送到所述多个站点中的其他站点之前没有被持久性存储,那么在所述数据块被持久存储或所述数据块被传送到所述多个站点中的其他站点之前持久存储所述信息。
12.根据权利要求11所述的方法,其中所述数据块是第一数据块,其中所述事务是第一事务,所述信息是第一信息,并且所述方法进一步包括以下步骤:
在第一站点,处理第二事务;
在易失性存储器中生成反映所处理的第二事务的第二信息;以及
如果所述第一信息和第二信息在与所处理的所述第二事务相关的第二数据块被持久性存储或所述第二数据块被传送到所述多个站点中的其他站点之前没有被持久性存储,那么在所述第二数据块被持久存储或所述第二数据块被传送到所述多个站点中的其他站点之前,使用批处理持久存储所述第一信息和所述第二信息。
13.根据权利要求12所述的方法,进一步包括以下步骤:
确定所述批处理是否已经完成持久性存储所述第一信息和所述第二信息。
14.一种用于在多个站点之间镜像数据的方法,包括:
在所述多个站点中的第一站点保留记录,用于识别对存储在所述第一站点的一个或多个数据块所做的哪些改变已经将相关的重做信息复制到所述多个站点中的其他站点,其中所述第一站点执行预写日志方案;
确定所述第一站点是否以发布写事务的顺序将在所述第一站点执行的所述写事务复制到所述多个站点中的所述其他站点;以及
如果所述第一站点没有以发布所述写事务的顺序将在所述第一站点执行的所述写事务复制到所述多个站点中的所述其他站点,那么只在所述记录表明已经在所述第一站点更新了所述数据块的任意写事务已经将它们各自的重做信息复制到所述多个站点中的所述其他站点之后,持久性存储所述一个或多个数据块中与事务相关的数据块。
15.根据权利要求14所述的方法,其中,所述记录是第一记录,所述方法进一步包括以下步骤:
在所述第一站点保留第二记录,其用于识别对在所述第一站点存储的所述一个或多个数据块所做的哪些改变已经将相关的重做信息记录到所述第一站点的持久性存储器中;以及
如果所述第一站点以发布写事务的顺序将在所述第一站点执行的所述写事务复制到所述多个站点中的所述其他站点,那么在所述第二记录表明已经在所述第一站点更新所述数据块的任意写事务已经将它们各自的重做信息记录到所述第一站点的持久性存储器中之后,持久性存储所述数据块。
16.根据权利要求14所述的方法,进一步包括以下步骤:
在所述第一记录表明与对所述数据块所做的改变有关的重做信息已经被复制到所述多个站点的所述其他站点之后,解除与所述数据块相关的锁定。
17.根据权利要求15所述的方法,其中,所述第一站点异步于在所述第一站点完成所述写事务,将所述写事务复制到所述多个站点中的所述其他站点。
18.根据权利要求14所述的方法,进一步包括以下步骤:
如果所述多个站点中的特定站点不工作,那么在确定由所述特定站点向所述多个站点中的其他各个站点发送的所有消息都已经在其目的站点被接收之后启动所述特定站点的恢复。
19.根据权利要求14所述的方法,进一步包括以下步骤:
在所述多个站点中的每个站点,确定数据结构是否将被复制到所述多个站点中的其他各个站点;以及
将所述数据结构复制到所述多个站点中的其他各个站点,除非确定了所述数据结构将不被复制到所述多个站点中的其他各个站点。
20.一种用于在多个站点之间镜像数据的方法,其中,所述多个站点包括第一站点,包括:
在所述第一站点,在持久性存储与对数据块所做的改变有关的重做信息之前持久性存储所述数据块;以及
在所述第一站点,在所述改变已经被复制到所述多个站点中的其他站点之后持久性存储所述重做信息。
21.根据权利要求20所述的方法,其中,所述数据块在多个数据块中,其中对所述多个数据块所做的改变由单个处理发布的事务来执行,并且进一步包括以下步骤:
确定由所述单个处理发送的事务组是否已经完成,其中所述事务组对所述多个数据块做出所述改变。
22.根据权利要求20所述的方法,其中,所述数据块在多个数据块中,其中对所述多个数据块所做的改变由两个或多个处理发布的事务来执行,并且进一步包括以下步骤:
确定所述改变何时被复制到所述多个站点中的所述其他站点。
23.根据权利要求20所述的方法,进一步包括以下步骤:
如果所述多个站点中的特定站点不工作,那么在确定了由所述特定站点向所述多个站点中的其他各个站点发送的所有消息都已经在其目的站点被接收之后启动所述特定站点的恢复。
24.根据权利要求20所述的方法,进一步包括以下步骤:
在所述多个站点中的每个站点,确定数据结构是否将被复制到所述多个站点中的其他各个站点;以及
将所述数据结构复制到所述多个站点中的其他各个站点,除非确定了所述数据结构将不被复制到所述多个站点中的其他各个站点。
25.根据权利要求1所述的方法,其中,所述记录通过识别重做日志文件的一部分,识别在所述第一站点已经执行的哪些事务已经将它们的重做信息复制到所述多个站点中的所述其他站点,并且其中,在所述重做日志文件中的被识别的部分中反映的所有事务已经被复制到所述多个站点中的所述其他站点。
26.根据权利要求5所述的方法,其中,所述第二记录通过识别重做日志文件的一部分,识别在所述第一站点已经执行的哪些事务已经将它们的重做信息记录到所述第一站点的持久性存储器中,并且其中,在所述重做日志文件中的被识别的部分中反映的所有事务已经被记录到所述第一站点的持久性存储器中。
27.一种机器可读介质,其承载有用于在多个站点之间镜像数据的一个或多个指令序列,其中由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器执行以下步骤:
在所述多个站点中的第一站点保留记录,其用于识别在第一站点已经执行的哪些事务已经将它们的重做信息复制到了所述多个站点中的其他站点;
确定与将在所述第一站点执行的事务相关的优先值,其中,所述事务表示对数据块的修改;
如果所述优先值是一组可能值中的第一值,那么只在所述记录表明与所述事务相关的重做信息已经被复制到所述多个站点中的所述其他站点之后提交所述事务;以及
如果所述优先值是所述一组可能值中的第二值,那么即使所述记录没有表明与所述事务相关的重做信息已经被复制到所述多个站点中的所述其他站点,也提交所述事务。
28.根据权利要求27所述的机器可读介质,其中,所述第一值表明所述事务在所述第一站点不工作时也不应被丢弃。
29.根据权利要求27所述的机器可读介质,其中,所述第二值表明所述事务在所述第一站点不工作时可以被丢弃。
30.根据权利要求27所述的机器可读介质,其中由所述一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
通过将与所述事务相关的提交记录和所述记录进行比较,来确定在所述事务已经提交之前提交的所有其他事务是否已经将它们各自的重做信息复制到所述多个站点中的所述其他站点。
31.根据权利要求27所述的机器可读介质,其中,所述记录是第一记录,其中,由所述一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
在所述第一站点保留第二记录,其用于识别在所述第一站点已经执行的哪些事务已经将它们的重做信息记录到所述第一站点的持久性存储器中。
32.根据权利要求27所述的机器可读介质,其中由所述一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
如果所述优先值是所述一组可能值中的所述第二值,那么在所述记录表明由所述事务生成的所述重做信息已经被复制到所述多个站点中的所述其他站点之前提交所述事务。
33.根据权利要求31所述的机器可读介质,其中,由所述一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
如果所述优先值是所述一组可能值中的所述第二值,那么在所述第二记录表明由所述事务生成的所述重做信息已经被存储到所述第一站点的持久性存储器中之后提交所述事务。
34.根据权利要求31所述的机器可读介质,其中,由所述一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
通过将与所述事务相关的提交记录和所述第二记录进行比较,确定在所述第一站点已经执行的哪些事务已经将它们的重做信息记录到持久性存储器中。
35.根据权利要求27所述的机器可读介质,其中,其中由所述一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
如果所述多个站点中的特定站点不工作,那么在确定由所述特定站点向所述多个站点中的其他各个站点发送的所有消息都已经在其目的站点被接收之后启动所述特定站点的恢复。
36.根据权利要求27所述的机器可读介质,其中,由所述一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
在所述多个站点中的每个站点,确定数据结构是否将被复制到所述多个站点中的其他各个站点;以及
除非确定了所述数据结构将不被复制到所述多个站点中的其他各个站点,否则将所述数据结构复制到所述多个站点中的其他各个站点。
37.一种机器可读介质,其承载有用于在多个站点之间镜像数据的一个或多个指令序列,其中由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器执行以下步骤:
在多个站点中的第一站点,处理事务;
在易失性存储器中生成反映所处理的所述事务的信息;
以及
如果所述信息在与所处理的所述事务相关的数据块被持久性存储或所述数据块被传送到所述多个站点中的其他站点之前没有被持久性存储,那么在所述数据块被持久存储或所述数据块被传送到所述多个站点中的其他站点之前持久存储所述信息。
38.根据权利要求37所述的机器可读介质,其中所述数据块是第一数据块,其中所述事务是第一事务,所述信息是第一信息,并且其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
在第一站点,处理第二事务;
在易失性存储器中生成反映所处理的第二事务的第二信息;以及
如果所述第一信息和第二信息在与所处理的所述第二事务相关的第二数据块被持久性存储或所述第二数据块被传送到所述多个站点中的其他站点之前没有被持久性存储,那么在所述第二数据块被持久存储或所述第二数据块被传送到所述多个站点中的其他站点之前,使用批处理持久存储所述第一信息和所述第二信息。
39.根据权利要求38所述的机器可读介质,其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
确定所述批处理是否已经完成持久性存储所述第一信息和所述第二信息。
40.一种机器可读介质,其承载有用于在多个站点之间镜像数据的一个或多个指令序列,其中由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器执行以下步骤:
在所述多个站点中的第一站点保留记录,用于识别对存储在所述第一站点的一个或多个数据块所做的哪些改变已经将相关的重做信息复制到所述多个站点中的其他站点,其中所述第一站点执行预写日志方案;
确定所述第一站点是否以发布写事务的顺序将在所述第一站点执行的所述写事务复制到所述多个站点中的所述其他站点;以及
如果所述第一站点没有以发布所述写事务的顺序将在所述第一站点执行的所述写事务复制到所述多个站点中的所述其他站点,那么只在所述记录表明已经在所述第一站点更新了所述数据块的任意写事务已经将它们各自的重做信息复制到所述多个站点中的所述其他站点之后,持久性存储所述一个或多个数据块中与所述事务相关的数据块。
41.根据权利要求40所述的机器可读介质,其中,所述记录是第一记录,并且其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
在所述第一站点保留第二记录,其用于识别对在所述第一站点存储的所述一个或多个数据块所做的哪些改变已经将相关的重做信息记录到所述第一站点的持久性存储器中;以及
如果所述第一站点以发布写事务的顺序将在所述第一站点执行的所述写事务复制到所述多个站点中的所述其他站点,那么在所述第二记录表明已经在所述第一站点更新所述数据块的任意写事务已经将它们各自的重做信息记录到所述第一站点的持久性存储器中之后,持久性存储所述数据块。
42.根据权利要求40所述的机器可读介质,其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
在所述第一记录表明与对所述数据块所做的改变有关的重做信息已经被复制到所述多个站点的所述其他站点之后,解除与所述数据块相关的锁定。
43.根据权利要求41所述的机器可读介质,其中,所述第一站点异步于在所述第一站点完成所述写事务,将所述写事务复制到所述多个站点中的所述其他站点。
44.根据权利要求40所述的机器可读介质,其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
如果所述多个站点中的特定站点不工作,那么在确定由所述特定站点向所述多个站点中的其他各个站点发送的所有消息都已经在其目的站点被接收之后启动所述特定站点的恢复。
45.根据权利要求40所述的机器可读介质,其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
在所述多个站点中的每个站点,确定数据结构是否将被复制到所述多个站点中的其他各个站点;以及
将所述数据结构复制到所述多个站点中的其他各个站点,除非确定了所述数据结构将不被复制到所述多个站点中的其他各个站点。
46.一种机器可读介质,其承载有用于在多个站点之间镜像数据的一个或多个指令序列,其中所述多个站点包括第一站点,其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器执行以下步骤:
在所述第一站点,在持久性存储与对数据块所做的改变有关的重做信息之前持久性存储所述数据块;以及
在所述第一站点,在所述改变已经被复制到所述多个站点中的其他站点之后持久性存储所述重做信息。
47.根据权利要求46所述的机器可读介质,其中,所述数据块在多个数据块中,其中对所述多个数据块所做的改变由单个处理发布的事务来执行,并且其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
确定由所述单个处理发送的事务组是否已经完成,其中所述事务组对所述多个数据块做出所述改变。
48.根据权利要求46所述的方法,其中,所述数据块在多个数据块中,其中对所述多个数据块所做的改变由两个或多个处理发布的事务来执行;并且其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
确定所述改变何时被复制到所述多个站点中的所述其他站点。
49.根据权利要求46所述的机器可读介质,其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
如果所述多个站点中的特定站点不工作,那么在确定了由所述特定站点向所述多个站点中的其他各个站点发送的所有消息都已经在其目的站点被接收之后启动所述特定站点的恢复。
50.根据权利要求46所述的机器可读介质,其中,由一个或多个处理器执行所述一个或多个指令序列来使得所述一个或多个处理器进一步执行以下步骤:
在所述多个站点中的每个站点,确定数据结构是否将被复制到所述多个站点中的其他各个站点;以及
将所述数据结构复制到所述多个站点中的其他各个站点,除非确定了所述数据结构将不被复制到所述多个站点中的其他各个站点。
51.根据权利要求27所述的机器可读介质,其中,所述记录通过识别重做日志文件的一部分,识别在所述第一站点已经执行的哪些事务已经将它们的重做信息复制到所述多个站点中的所述其他站点,并且其中,在所述重做日志中的被识别的部分中反映的所有事务已经被复制到所述多个站点中的所述其他站点。
52.根据权利要求31所述的机器可读介质,其中,所述第二记录通过识别重做日志文件的一部分,识别在所述第一站点已经执行的哪些事务已经将它们的重做信息记录到所述第一站点的持久性存储器中,并且其中,在所述重做日志中的被识别的部分中反映的所有事务已经被记录到所述第一站点的持久性存储器中。
53.根据权利要求14所述的方法,其中,所述记录通过识别重做日志文件的一部分,识别对存储在所述第一站点的所述一个或多个数据块所做的哪些改变已经将相关的重做信息复制到所述多个站点中的所述其他站点,并且其中,在所述重做日志文件的被识别的部分中的所有改变已经被复制到所述多个站点中的所述其他站点。
54.根据权利要求15所述的方法,其中,第二记录通过识别重做日志文件的一部分,识别对存储在所述第一站点的所述一个或多个数据所做的哪些改变已经将相关的重做信息记录到了持久性存储器中,并且其中,在所述重做日志文件的被识别的部分中的所有改变已经被记录到持久性存储器中。
55.根据权利要求40所述的机器可读介质,其中,所述记录通过识别重做日志文件的一部分,识别对存储在所述第一站点的所述一个或多个数据块所做的哪些改变已经将相关的重做信息复制到所述多个站点中的所述其他站点,并且其中,在所述重做日志文件的被识别的部分中的所有改变已经被复制到所述多个站点中的所述其他站点。
56.根据权利要求41所述的机器可读介质,其中,第二记录通过识别重做日志文件的一部分,识别对存储在所述第一站点的所述一个或多个数据所做的哪些改变已经将相关的重做信息记录到持久性存储器中,并且其中,在所述重做日志文件的被识别的部分中的所有改变已经被记录到持久性存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/759,894 US7299378B2 (en) | 2004-01-15 | 2004-01-15 | Geographically distributed clusters |
US10/759,894 | 2004-01-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1910555A true CN1910555A (zh) | 2007-02-07 |
CN100478902C CN100478902C (zh) | 2009-04-15 |
Family
ID=34749791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800024700A Active CN100478902C (zh) | 2004-01-15 | 2005-01-12 | 地理分布式集群 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7299378B2 (zh) |
EP (2) | EP2521037B1 (zh) |
JP (2) | JP5264077B2 (zh) |
CN (1) | CN100478902C (zh) |
AU (1) | AU2005207573B2 (zh) |
CA (1) | CA2550003C (zh) |
WO (1) | WO2005071535A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101925882A (zh) * | 2008-01-23 | 2010-12-22 | 欧睦技术公司 | 改进副本服务器性能和副本服务器系统的方法 |
CN103548011A (zh) * | 2011-05-23 | 2014-01-29 | 微软公司 | 分布式存储环境中的异步复制 |
CN104572350A (zh) * | 2014-12-19 | 2015-04-29 | 华为技术有限公司 | 一种元数据处理方法及装置 |
CN108416040A (zh) * | 2018-03-14 | 2018-08-17 | 上海达梦数据库有限公司 | 一种数据库修复方法、装置、终端设备及存储介质 |
US11720594B2 (en) | 2011-05-23 | 2023-08-08 | Microsoft Technology Licensing, Llc | Synchronous replication in a distributed storage environment |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281153B2 (en) * | 2004-04-14 | 2007-10-09 | International Business Machines Corporation | Apparatus, system, and method for transactional peer recovery in a data sharing clustering computer system |
JP2006163596A (ja) * | 2004-12-03 | 2006-06-22 | Internatl Business Mach Corp <Ibm> | 情報処理システム、制御方法、及びプログラム |
US20070234342A1 (en) * | 2006-01-25 | 2007-10-04 | Flynn John T Jr | System and method for relocating running applications to topologically remotely located computing systems |
EP1985046B1 (en) * | 2006-02-14 | 2016-09-14 | EMC Corporation | Systems and methods for obtaining ultra-high data availability and geographic disaster tolerance |
US7613749B2 (en) | 2006-04-12 | 2009-11-03 | International Business Machines Corporation | System and method for application fault tolerance and recovery using topologically remotely located computing devices |
US7594138B2 (en) | 2007-01-31 | 2009-09-22 | International Business Machines Corporation | System and method of error recovery for backup applications |
US8090792B2 (en) * | 2007-03-08 | 2012-01-03 | Nec Laboratories America, Inc. | Method and system for a self managing and scalable grid storage |
US8850073B1 (en) | 2007-04-30 | 2014-09-30 | Hewlett-Packard Development Company, L. P. | Data mirroring using batch boundaries |
US8161002B2 (en) * | 2008-05-28 | 2012-04-17 | International Business Machines Corporation | System, method, and computer readable media for replicating virtual universe objects |
US8041994B2 (en) * | 2009-01-09 | 2011-10-18 | Alcatel Lucent | Asynchronous checkpointing with audits in high availability networks |
US20100185682A1 (en) * | 2009-01-09 | 2010-07-22 | Lucent Technologies Inc. | Object identifier and common registry to support asynchronous checkpointing with audits |
US9215279B1 (en) | 2009-02-17 | 2015-12-15 | Netapp, Inc. | Servicing of storage device software components of nodes of a cluster storage system |
US9325790B1 (en) | 2009-02-17 | 2016-04-26 | Netapp, Inc. | Servicing of network software components of nodes of a cluster storage system |
US8122284B2 (en) * | 2009-06-18 | 2012-02-21 | Taylor Tracy M | N+1 failover and resynchronization of data storage appliances |
EP2323047B1 (en) * | 2009-10-09 | 2020-02-19 | Software AG | Primary database system, replication database system and method for replicating data of a primary database system |
US8046633B2 (en) * | 2009-12-10 | 2011-10-25 | International Business Machines Corporation | Improving data availability during failure detection and recovery processing in a shared resource system |
US9020891B1 (en) * | 2010-10-27 | 2015-04-28 | Amazon Technologies, Inc. | Reduced locking in a distributed data store |
US9258363B2 (en) * | 2010-11-15 | 2016-02-09 | Microsoft Technology Licensing, Llc | Data cube high availability |
US9063787B2 (en) * | 2011-01-28 | 2015-06-23 | Oracle International Corporation | System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster |
US10706021B2 (en) | 2012-01-17 | 2020-07-07 | Oracle International Corporation | System and method for supporting persistence partition discovery in a distributed data grid |
US9953305B2 (en) * | 2012-10-22 | 2018-04-24 | Oonetic | Online payment system and method according to the mirror authorization server principle |
US20140279869A1 (en) * | 2013-03-12 | 2014-09-18 | Siemens Product Lifecycle Management Software Inc. | Transaction-Based Traversal-Free Data Synchronization Among Multiple Sites |
US9430418B2 (en) | 2013-03-15 | 2016-08-30 | International Business Machines Corporation | Synchronization and order detection in a memory system |
US9136987B2 (en) * | 2013-03-15 | 2015-09-15 | International Business Machines Corporation | Replay suspension in a memory system |
US9092330B2 (en) | 2013-03-15 | 2015-07-28 | International Business Machines Corporation | Early data delivery prior to error detection completion |
US9514007B2 (en) * | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US9142272B2 (en) | 2013-03-15 | 2015-09-22 | International Business Machines Corporation | Dual asynchronous and synchronous memory system |
US9146864B2 (en) | 2013-03-15 | 2015-09-29 | International Business Machines Corporation | Address mapping including generic bits for universal addressing independent of memory type |
US9535778B2 (en) | 2013-03-15 | 2017-01-03 | International Business Machines Corporation | Reestablishing synchronization in a memory system |
DE102013218884B4 (de) | 2013-09-19 | 2015-05-21 | Kennametal Inc. | Spanendes Werkzeug |
US20170006096A1 (en) * | 2013-12-18 | 2017-01-05 | Hewlett Packard Enterprise Development Lp | Data block transmission |
US9304865B2 (en) * | 2014-03-26 | 2016-04-05 | International Business Machines Corporation | Efficient handing of semi-asynchronous raid write failures |
US9588855B2 (en) * | 2015-04-22 | 2017-03-07 | PernixData, Inc. | Management and utilization of fault domains in distributed cache systems |
US20180309826A1 (en) * | 2017-04-24 | 2018-10-25 | EITR Systems, Inc. | Fault-tolerant storage system using an alternate network |
US11550820B2 (en) | 2017-04-28 | 2023-01-10 | Oracle International Corporation | System and method for partition-scoped snapshot creation in a distributed data computing environment |
US10769019B2 (en) | 2017-07-19 | 2020-09-08 | Oracle International Corporation | System and method for data recovery in a distributed data computing environment implementing active persistence |
US10862965B2 (en) | 2017-10-01 | 2020-12-08 | Oracle International Corporation | System and method for topics implementation in a distributed data computing environment |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2503288B2 (ja) * | 1990-05-11 | 1996-06-05 | 富士通株式会社 | デ―タベ―ス処理方式 |
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US5530855A (en) | 1992-10-13 | 1996-06-25 | International Business Machines Corporation | Replicating a database by the sequential application of hierarchically sorted log records |
US5917998A (en) | 1996-07-26 | 1999-06-29 | International Business Machines Corporation | Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging |
US6035379A (en) * | 1997-01-09 | 2000-03-07 | Microsoft Corporation | Transaction processing for user data employing both logging and shadow copying |
JP3563591B2 (ja) * | 1997-09-29 | 2004-09-08 | 株式会社リコー | 分散型データベースシステムの一貫性管理方法およびその方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6353836B1 (en) | 1998-02-13 | 2002-03-05 | Oracle Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
JPH11338647A (ja) * | 1998-05-25 | 1999-12-10 | Hitachi Ltd | 二重化データの形成方法 |
US6163856A (en) | 1998-05-29 | 2000-12-19 | Sun Microsystems, Inc. | Method and apparatus for file system disaster recovery |
US6144999A (en) | 1998-05-29 | 2000-11-07 | Sun Microsystems, Incorporated | Method and apparatus for file system disaster recovery |
JP2001265639A (ja) * | 2000-03-23 | 2001-09-28 | Mitsubishi Electric Corp | データ管理システム |
US6643795B1 (en) | 2000-03-30 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Controller-based bi-directional remote copy system with storage site failover capability |
US6505307B1 (en) | 2000-09-06 | 2003-01-07 | Unisys Corporation | Method and apparatus for ensuring data integrity |
JP3877519B2 (ja) * | 2000-12-15 | 2007-02-07 | 株式会社日立製作所 | システム回復方法およびその実施計算機システム並びにその処理プログラムを記録した記録媒体 |
US6785678B2 (en) | 2000-12-21 | 2004-08-31 | Emc Corporation | Method of improving the availability of a computer clustering system through the use of a network medium link state function |
US7016946B2 (en) | 2001-07-05 | 2006-03-21 | Sun Microsystems, Inc. | Method and system for establishing a quorum for a geographically distributed cluster of computers |
US20030014523A1 (en) * | 2001-07-13 | 2003-01-16 | John Teloh | Storage network data replicator |
US7421509B2 (en) | 2001-09-28 | 2008-09-02 | Emc Corporation | Enforcing quality of service in a storage network |
US6757790B2 (en) | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
US7542986B2 (en) | 2002-03-26 | 2009-06-02 | Hewlett-Packard Development Company, L.P. | System and method for maintaining order for a replicated multi-unit I/O stream |
US6880052B2 (en) | 2002-03-26 | 2005-04-12 | Hewlett-Packard Development Company, Lp | Storage area network, data replication and storage controller, and method for replicating data using virtualized volumes |
US7191298B2 (en) * | 2002-08-02 | 2007-03-13 | International Business Machines Corporation | Flexible system and method for mirroring data |
-
2004
- 2004-01-15 US US10/759,894 patent/US7299378B2/en active Active
-
2005
- 2005-01-12 EP EP12178892.1A patent/EP2521037B1/en active Active
- 2005-01-12 EP EP05705625.1A patent/EP1704470B1/en active Active
- 2005-01-12 JP JP2006549583A patent/JP5264077B2/ja active Active
- 2005-01-12 CA CA2550003A patent/CA2550003C/en active Active
- 2005-01-12 AU AU2005207573A patent/AU2005207573B2/en active Active
- 2005-01-12 WO PCT/US2005/001057 patent/WO2005071535A2/en not_active Application Discontinuation
- 2005-01-12 CN CNB2005800024700A patent/CN100478902C/zh active Active
-
2012
- 2012-01-06 JP JP2012001382A patent/JP5559821B2/ja active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101925882A (zh) * | 2008-01-23 | 2010-12-22 | 欧睦技术公司 | 改进副本服务器性能和副本服务器系统的方法 |
CN103548011A (zh) * | 2011-05-23 | 2014-01-29 | 微软公司 | 分布式存储环境中的异步复制 |
US9251021B2 (en) | 2011-05-23 | 2016-02-02 | Bradley Gene Calder | Asynchronous replication in a distributed storage environment |
CN103548011B (zh) * | 2011-05-23 | 2016-11-02 | 微软技术许可有限责任公司 | 分布式存储环境中的异步复制 |
US11720594B2 (en) | 2011-05-23 | 2023-08-08 | Microsoft Technology Licensing, Llc | Synchronous replication in a distributed storage environment |
CN104572350A (zh) * | 2014-12-19 | 2015-04-29 | 华为技术有限公司 | 一种元数据处理方法及装置 |
CN104572350B (zh) * | 2014-12-19 | 2018-11-06 | 华为技术有限公司 | 一种元数据处理方法及装置 |
CN108416040A (zh) * | 2018-03-14 | 2018-08-17 | 上海达梦数据库有限公司 | 一种数据库修复方法、装置、终端设备及存储介质 |
CN108416040B (zh) * | 2018-03-14 | 2020-10-27 | 上海达梦数据库有限公司 | 一种数据库修复方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20050160315A1 (en) | 2005-07-21 |
JP5264077B2 (ja) | 2013-08-14 |
EP1704470A2 (en) | 2006-09-27 |
CN100478902C (zh) | 2009-04-15 |
JP2012069168A (ja) | 2012-04-05 |
EP2521037A3 (en) | 2013-01-23 |
EP1704470B1 (en) | 2016-06-29 |
AU2005207573B2 (en) | 2009-10-01 |
US7299378B2 (en) | 2007-11-20 |
WO2005071535A3 (en) | 2006-08-03 |
CA2550003A1 (en) | 2005-08-04 |
JP5559821B2 (ja) | 2014-07-23 |
EP2521037B1 (en) | 2018-06-27 |
JP2007518196A (ja) | 2007-07-05 |
WO2005071535A2 (en) | 2005-08-04 |
EP2521037A2 (en) | 2012-11-07 |
AU2005207573A1 (en) | 2005-08-04 |
CA2550003C (en) | 2011-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1910555A (zh) | 地理分布式集群 | |
CN1910556A (zh) | 具有远程数据镜像的集群数据库 | |
US9317372B1 (en) | Dynamic membership management in a distributed system | |
CN101334797B (zh) | 一种分布式文件系统及其数据块一致性管理的方法 | |
CN103297268B (zh) | 基于p2p技术的分布式数据一致性维护系统和方法 | |
CN1213376C (zh) | 用于被复制的服务器的协议 | |
CN1836232A (zh) | 数据库的自动和动态提供 | |
CN102782670B (zh) | 存储器高速缓存数据中心 | |
CN1690974A (zh) | 最小化备份系统故障后重新同步时间的系统与方法 | |
CN116348866A (zh) | 横向扩展数据库中具有快照隔离的多语句交互式事务 | |
CN101038591A (zh) | 数据库同步方法及系统 | |
CN1653451A (zh) | 提供数据项的可用版本 | |
CN116348865A (zh) | 高度可用、高性能、持久存储器优化的扩展的数据库 | |
CN1852455A (zh) | 一种数据容灾系统及其容灾方法 | |
CN116348863A (zh) | 用于扩展数据库中跨故障的事务连续性的系统和方法 | |
CN116529724B (zh) | 在无共享分布式数据库中快速检测和修复故障的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |