CN106537364A - 存储事务 - Google Patents

存储事务 Download PDF

Info

Publication number
CN106537364A
CN106537364A CN201480080925.XA CN201480080925A CN106537364A CN 106537364 A CN106537364 A CN 106537364A CN 201480080925 A CN201480080925 A CN 201480080925A CN 106537364 A CN106537364 A CN 106537364A
Authority
CN
China
Prior art keywords
node
sequence number
nodes
cluster
sequencer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480080925.XA
Other languages
English (en)
Inventor
山田高荣
S·纳扎里
B·拉特利奇
罗建定
王锦
M·多尔蒂
R·达尔泽尔
P·海因斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN106537364A publication Critical patent/CN106537364A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

一种系统,包括被配置为执行存储事务的多个节点。节点包括第一节点和多个其它节点。存储事务被分组成事务集,该事务集以预定的顺序来执行,确保观察到事务之间的相关性。位于第一节点上的集群定序器被配置为使标识事务集中的活跃事务集的序号递增并且将序号从第一节点发送到多个其它节点。在接收到序号时,多个其它节点中的每一个节点开始执行活跃事务集的事务,而不等待多个其它节点中的全部节点具有相同序号的证实。

Description

存储事务
背景技术
许多大规模存储系统被配置为高度可用的、分布式的存储系统。这种存储系统并入高级冗余性以改善所存储数据的可用性和可访问性。例如,集群存储系统可以包括控制多个存储设备的控制器节点的网络。大量的节点可被配置为对相同的存储设备具有访问权,并且节点本身也可以彼此通信耦合以便节点间通信。该配置实现了节点间的负荷平衡和在节点故障情形下的故障转移能力。
附图说明
在下面的具体实施方式中参考附图来对一些示例性实施例进行说明,在附图中:
图1是具有集群定序器的计算机系统的示例的框图;
图2是在具有集群定序器的计算机系统中处理事务的方法的示例的过程流程图;
图3是示出集群定序器故障转移的计算机系统的示例的框图;以及
图4是示出多个集群定序器的计算机系统的示例的框图;以及
图5是示出存储代码的有形的非暂时性计算机可读介质的示例的框图,所述代码被配置为操作具有集群定序器的计算机系统的一个或多个节点。
具体实施方式
本公开提供了用于在计算机系统中同步输入/输出(I/O)事务的技术。事务同步有助于确保事务按正确的顺序发生。例如,在异步存储复制系统中,复制的存储事务要按与原始存储事务发生的相同顺序来处理。否则,会发生存储事务的不对齐,在该情况下复制的状态可能不精确地表示复制的存储系统的原始状态。
在具有多个存储控制器(此处也称为节点)的计算机系统中,两个或更多个节点可能对相同的存储空间具有访问权。在多节点系统中,当节点略微不同步操作或者在不同的时间点访问共享数据时,则会发生事务的不对齐。在一些系统中,通过使用向系统中的所有节点全局广播的同步信息来使I/O事务同步。每一个节点确认同步信息的接收。在所有节点确认了同步信息的接收后,每一个节点随后可被指示继续事务的处理。该过程会是低效的且易于出错,因为其依赖于在能够继续事务的处理之前每一个节点确认新的同步信息的接收。
在本技术的示例中,序列信息以集群序列号的形式发送给节点。集群序列号是顺序递增值,该顺序递增值由主节点内的可编程定时器写入每一个节点。在集群序列号的转换之间,集群序列号转换到障碍值,该障碍值起到在序列号更新期间阻止事务处理的作用。这确保了系统中两个节点将永不具有冲突的序列号。相应地,可以在多个节点之间同步事务,而无需节点确认新的同步信息的接收。下面将结合图1和图2来更全面地描述定序系统的示例。
图1是具有集群定序器的计算机系统的示例的框图。将意识到,图1中所示的计算机系统100仅仅是依照实施例的计算机系统的一个示例。在实际的实现方式中,计算机系统100可以包括各种附加的存储设备和网络,这些附加的存储设备和网络可以任何适合的方式互连,取决于特定实现方式的设计考虑。例如,大型的计算机系统经常具有比在该图示说明中所示的更多的客户端计算机和存储设备。
计算机系统100向任意数量的客户端计算机102提供数据存储资源,该客户端计算机可以是通用计算机、工作站、移动计算设备等。客户端计算机102能够通过网络104与计算机系统100耦合,网络104可以是局域网(LAN)、广域网(WAN)、存储域网(SAN)或其它适合类型的网络。计算机系统100包括存储控制器,本文称为节点106。计算机系统100还包括由节点106控制的存储阵列108。节点106可以统称为计算机集群。为简化起见,仅示出了三个节点。然而,将意识到,计算机集群可以包括任意适合数量的节点,包括2个、4个、6个、10个或更多。
客户端计算机102可以通过发送输入/输出(I/O)请求到节点106来访问存储阵列108的存储空间,该I/O请求包括写请求和读请求。节点106处理I/O请求,使得用户数据被写入存储阵列108中的适合的存储位置或者从存储阵列108中的适合的存储位置读用户数据。如本文所使用的,术语“用户数据”是指人在交易过程中、执行工作职能或用于个人用途时可能使用的数据,例如商业数据和报告、Web页面、用户文件、图像文件、视频文件、音频文件、软件应用或者用户可能希望保存以存储的任何其它相似类型的数据。节点106中的每一个可以与存储阵列108中的每一个通信耦合。每一个节点106还可以通过节点间通信网络110与每一个其它节点通信耦合。
存储阵列108可以包括任何适合类型的存储设备,本文称为驱动器112。例如,驱动器112可以是固态驱动器,例如闪速驱动器(flash drive)、硬盘驱动器和磁盘驱动器,以及其它。此外,计算机系统100可以包括多于一种类型的存储部件。例如,一个存储阵列108可以是硬盘驱动器阵列,而另一存储阵列108可以是闪速驱动器阵列。在一些示例中,一个或多个存储阵列可以具有不同类型的存储的混合。除了图1所示的之外,计算机系统100还可以包括附加的存储设备。
每一个客户端计算机102可以与多个节点106耦合。一个或多个逻辑存储卷可以从存储阵列108中所包含的存储驱动器112中的一个或组合的可用存储空间来提供。在一些示例中,每一个卷可以进一步在区域中划分,并且每一个节点106被配置为控制具体的区域并且在本文称为该区域的所有者。
由客户端计算机102进行的访问存储空间的请求在本文称为事务。事务的类型的示例包括写操作、读操作、存储卷元数据操作和预留请求,以及其它。在一些示例中,客户端计算机102是远程客户端,并且事务是数据的远程复制。通过计算机系统100接收到的每一个事务包括标识要被处理的事务的排序的相关性信息。
每一个节点106可包括其自身的单独的集群存储器114,其用于高速缓存传递到计算机系统100中的其它节点106的数据和信息,包括事务信息、日志信息和节点间通信,以及其它信息。集群存储器可以实现为任何适合的高速缓冲存储器,例如,同步动态随机存取存储器(SDRAM)。节点106中的一个或多个还包括集群定序器116。
为进一步帮助同步事务,事务可以分组成事务集。每一个事务集可以包括任意适合数量的事务,包括数十或数百事务。计算机系统100接收到的每一个事务可以包括标识事务所属的事务集以及事务集之间的相关性(即,处理事务集的顺序)的信息。例如,每一个事务可以包括标识事务集和处理事务集的相对顺序的序列号。
事务集可由生成事务的客户端应用来定义。例如,在远程数据复制应用的情况下,事务集由自其接收了事务的远程系统来定义。计算机系统100被配置为一次处理一个事务集并且按事务集标识符所规定的顺序来处理。以这种方式,观察不同事务集的各个事务之间的相关性。
为确保每一个节点106处理同一事务集的事务,计算机系统100包括集群定序器116,该集群定序器通知每一个节点106哪个事务集当前正在由计算机系统100处理。为了通知每一个节点106哪个事务集当前正在被处理,集群定序器116生成标识符(在本文称为集群序列号),以发送到计算机系统100中的每一个节点106。集群序列号与关联于每一个事务的序列号对应并且用来标识当前由计算机系统100处理的特定的事务集。当前由计算机系统100处理的特定的事务集在本文还称为活跃事务集。
如图1所示,集群定序器116可以位于计算机系统的节点106中的一个上。集群定序器116可以用硬件或硬件和软件的组合来实现。例如,集群定序器116可以实现为逻辑电路,或者由诸如通用处理器的处理器执行的计算机代码、专用集成电路(ASIC)或任何其它适合类型的集成电路。操作集群定序器的节点106在本文称为主节点118。除了主节点118之外的节点106可以称为从节点120。虽然在图1示出了单个集群定序器,但是计算机系统可以包括两个或更多个集群定序器116,其中每一个集群定序器116由无需观察彼此之间的相关性的单独的应用来使用。此外,每一个节点106可被配置为操作集群定序器116。如果主节点118故障,则集群定序器116可以故障转移到节点106中的另一个,该另一个节点则变成新的主节点116。
主节点118可以利用任何适合的通信协议通过节点间通信网络110将集群序号发送到从节点120中的每一个。在一些示例中,主节点118可以通过写入每一个从节点120的集群存储器114的共享部分而将集群序号发送到从节点120。集群序号可以存储在每一个节点106中的一个或多个存储器位置处,存储器位置包括集群存储器114和处理器存储器。
在接收到集群序号时,从节点120可以开始处理活跃事务集的事务,而不等待来自主节点118的任何进一步的通信。集群序号的接收起到标识待处理的活跃事务集的作用并且还允许开始处理事务集。从节点120无需在接收到集群序号后将确认发送到主节点118,或者无需等待来自主节点118的进一步的证实来开始处理活跃事务集。
在一些示例中,集群定序器116以规则的间隔使集群序号递增。递增之间的时间间隔可以由应用来设定并且在初始化阶段确定。为确保每一个事务集结束处理,主节点118可以在使集群序号递增之前等待来自每一个从节点120的指示特定节点结束处理当前事务集的事务的确认。
如果允许两个节点106同时处理两个不同的事务集,则结果会是各个事务之间的相关性的违反。为确保节点106无法同时处理不同的事务集,集群定序器116确保没有两个节点将看到不同的集群序号。为此,通过将来自活跃事务集的集群序号转换到障碍值,例如-1,来开始集群序号到下一事务集的递增。障碍值是阻止节点106处理事务并且不对应于实际的事务集标识符的值。在主节点118已经将障碍值发送到全部节点106之后,主节点118随后可以开始将下一集群序号发送到从节点120中的每一个。由于集群序号被发送到从节点120,不同的从节点120可以具有不同的集群序列值。例如,一些节点106可以具有标识当前事务集的集群序号,而同时其它节点将具有障碍值。然而,由于障碍转换,没有两个节点将同时具有标识不同事务集的集群序号。
图2是在具有集群定序器的计算机系统中处理事务的方法的示例的过程流程图。方法200可以由一个或多个计算设备来执行,例如图1所示的计算机系统100的节点106。
在框202处,计算机系统100正在活跃地处理事务集N,其中N表示活跃序列的数量。在节点106中的每一个处,集群序号已经被设定成活跃序列N,并且每一个节点106正在处理具有与N对应的序列标识符的事务。
在框204处,从节点120中的每一个将确认发送到主节点118以指示活跃序列的全部事务已被处理。每一个从节点120在其对活跃序列的控制下的事务已经结束处理后单独发送其确认。确认可经由节点间通信网络110发送到主节点118。
在框206处,主节点118使得每一个从节点转换到障碍值。在一些示例中,每一个从节点120的集群存储器114包括可由主节点118写的共享存储器的部分,并且主节点118可以将障碍值直接写入共享存储器中的规定地址。在一些示例中,主节点118通过将诸如中断信号的消息发送到从节点120中的每一个而使得每一个从节点120转换到障碍值。在接收到消息时,每一个从节点120通过用障碍值取代集群序号而使得当前的集群序号无效。一旦在特定从节点120上的集群序号转换到障碍值,该从节点120将不处理I/O事务,直至用于该从节点120的集群序号被更新到下一有效的序号,即,与事务集对应的非障碍序号。
在框206处,主节点118使得其上的序号递增。运行于主节点上的应用随后可以读新的序号并且主节点可以开始处理新的活跃序列的I/O事务。运行于从节点上的应用将继续被阻止处理事务。
在框208处,主节点118将新的序号发送到每一个从节点120。在一些示例中,主节点118通过将新的序号直接写入集群存储器114的共享部分中的规定地址而发送新序号。在一些示例中,主节点118通过将诸如中断信号的消息发送到从节点120中的每一个而使得每一个从节点120递增序列。在接收到消息时,每一个从节点120使得集群序号递增。当序号在特定的从节点120上递增时,运行于该从节点120上的应用能够读新的活跃序列。然后,处理流返回框202,并且从节点120可以开始处理相应的事务集的事务。
图2的过程流程图不旨在指示方法200的元素应按任何特定的顺序来执行,或者每种情况均应包含方法200的全部元素。此外,图2中未示出的任意数量的附加元素可以包括在方法200中,取决于具体的实现方式的细节。
图3是示出了集群定序器故障转移的计算机系统的示例的框图。每一个节点106可以包括用于操作集群定序器的编程代码。此外,每一个节点106可以具有指定的备用节点,该备用节点将在节点106故障的情形下接管节点106的操作。在操作集群定序器116的主节点故障的情形下,集群定序器116可以在指定的备用节点上重新启动。
例如,如图3所示,已经作为主节点操作的节点A已经故障。被指定为节点A的备用节点的节点B则变成主节点。节点B接管集群定序器116的操作,使得序号递增,将序号分配给计算系统中的其它节点,以及接管主节点的任何其它职责,包括上文所述的那些。
在一些示例中,每一个节点106将一个或多个集群序号存储在节点的处理器的存储器位置上。例如,处理器存储器可以包括当前序号和前一序号。前一序号可用来确保备用节点将能够继续按序号的正确进展操作。当备用节点变成新的主节点时,新的主节点能够通过查询每一个节点以识别当前和/或前一序号来确定下一序号。
图4是示出了多个集群定序器的计算机系统的示例的框图。如图4所示,计算机系统100可以被配置为同时操作两个或更多个集群定序器116,标记为定序器1、定序器2和定序器3。每一个集群定序器116与单独的应用(未示出)相关联,其中每一个应用的I/O事务不相互依赖。每一个应用能够利用不同的序列而在计算机系统100的多个节点106上操作。在图4所示的示例中,节点A作为使用定序器1的第一应用的主节点来操作,并且节点B作为使用定序器2的第二应用和使用定序器3的第三应用的主节点来操作。
图5是示出了存储代码的有形的、非暂时性的计算机可读介质的示例的框图,该代码被配置为操作具有集群定序器的计算机系统的一个或多个节点。计算机可读介质由附图标记500来指代。计算机可读介质500可以包括RAM、硬盘驱动器、硬盘驱动器阵列、光驱、光驱阵列、非易失性存储器、闪速驱动器、数字多功能盘(DVD)或压缩盘(CD),以及其它。计算机可读介质500可以由处理器502通过计算机总线504来访问。此外,计算机可读介质500可以包括被配置为引导一个或多个处理器执行本文所述的方法的指令。例如,计算机可读介质500可以包括由诸如图1和图2的节点106的计算设备执行的软件和/或固件。
本文所论述的各个编程代码部件可以存储在计算机可读介质500上。例如,编程代码部件可以包括在计算系统的处理节点中的一些或全部节点上,例如计算系统100的节点106。区域506可以包括集群定序器。集群定序器操作由主节点来执行,但是集群定序器的编程代码可以位于计算机系统100的节点106的全部上。集群定序器的多个实例可以在相同节点或不同节点上启动,其中集群定序器的每一个实例由不同的应用使用。集群定序器可以被配置为使得标识活跃事务集的序号递增并且将序号发送到多个从节点。在接收到来自全部从节点120的确认后,集群定序器可以将障碍值发送到多个从节点中的每一个。在障碍值已经发送到全部从节点后,集群定序器可以使得序号递增并且将递增后的序号发送到从节点。集群定序器可以被配置为以规定的时间间隔将序号递增。
区域508可以包括处理活跃事务集的存储事务的事务处理器。事务可以包括从存储读数据以及将数据发回到客户端设备,以及将数据写入存储,以及其它。一接收到序号,事务处理器就可以开始执行活跃事务集的存储事务,而不等待全部从节点具有相同序号的证实。在执行活跃事务集的全部事务后,每一个节点可以发送确认以指示活跃事务集的事务已被执行。如果从节点接收到障碍值,则从节点可以使得当前序号无效并且停止执行事务。
区域510可以包括故障转移引擎,该故障转移引擎能够检测集群内的主节点的故障。在检测到主节点的故障时,主节点的指定备用节点的故障转移引擎可以通过执行主节点先前所执行的集群定序器操作来接管主节点的角色。备用节点可以通过查询其它从节点来确定活跃序号。
虽然显示为连续的块,但是编程代码部件可以任意顺序或配置来存储。例如,如果有形的、非暂时性计算机可读介质是硬盘驱动器,则软件部件可以存储在非连续的、或甚至重叠的扇区中。
虽然本技术可易于实现各种修改和替代形式,但是上述的示范性的示例仅通过举例说明的方式而示出。应当理解,该技术不旨在限于本文公开的特定的示例。事实上,本技术包括落入本技术的范围内的全部的替代方案、修改例和等同方案。

Claims (15)

1.一种系统,包括:
接收并且执行存储事务的多个节点,所述多个节点包括第一节点和多个其它节点,其中,所述存储事务被分组成事务集,所述事务集按预定的顺序执行,其确保所述事务之间的相关性被观察到;以及
集群定序器,其位于所述第一节点上,所述集群定序器用于:
将标识所述事务集的活跃事务集的序号递增;以及
将所述序号从所述第一节点发送到所述多个其它节点;
其中,在接收到所述序号时,所述多个其它节点中的每一个节点开始执行所述活跃事务集的事务,而不等待证实所述多个其它节点中的全部节点均已接收到所述序号。
2.如权利要求1所述的系统,其中,所述集群定序器在将所述序号递增之前将障碍值发送到所述多个其它节点中的每一个节点;并且其中,所述障碍值取代所述多个其它节点中的每一个节点处的所述序号并且阻止所述多个其它节点中的每一个节点执行事务。
3.如权利要求1所述的系统,其中,所述集群定序器以规定的时间间隔将所述序号递增。
4.如权利要求1所述的系统,其中,所述多个其它节点中的每一个节点向所述第一节点发送确认以指示所述活跃事务集的事务已经被执行,并且所述集群定序器在接收到来自所述多个其它节点中的全部节点的确认后将所述序号递增。
5.如权利要求1所述的系统,包括执行针对第二应用的定序操作的第二集群定序器。
6.如权利要求5所述的系统,其中,所述第二集群定序器位于所述多个其它节点中的第二节点上。
7.如权利要求1所述的系统,其中,如果所述第一节点故障,则所述集群定序器故障转移到所述多个其它节点中的备用节点。
8.一种通过主节点和多个从节点执行的方法,包括:
在所述主节点和所述多个从节点处处理由序号标识的活跃事务集的存储事务;
将障碍值发送到所述多个从节点中的每一个从节点,其中,所述障碍值取代所述序号并且阻止所述从节点处理所述存储事务;以及
在所述从节点中的每一个从节点已经接收到所述障碍值之后,将所述序号递增并且将递增后的序号发送到所述从节点。
9.如权利要求8所述的方法,其中,在接收到所述递增后的序号时,所述从节点中的每一个从节点开始执行由所述递增后的序号标识的活跃事务集的事务,而不等待证实所述多个从节点中的全部从节点均已经接收到所述序号。
10.如权利要求8所述的方法,包括:
将来自所述从节点中的每一个从节点的确认发送到所述主节点,所述确认指示所述从节点已经结束对活跃事务集的存储事务的处理;以及
其中,将所述障碍值发送到所述多个从节点中的每一个从节点包括在接收到来自所述从节点中的全部从节点的确认后发送所述障碍值。
11.如权利要求8所述的方法,包括:
确定所述主节点故障;以及
在所述从节点的指定的备用节点处,接管所述主节点的操作并且查询所述从节点以确定最近期的序号。
12.一种包括指令的有形的、非暂时性计算机可读介质,所述指令引导一个或多个处理器用于:
将标识包含多个存储事务的活跃事务集的序号递增;
将所述序号发送到多个从节点;以及
在接收到所述序号时,执行所述活跃事务集的存储事务,而不等待证实所述多个从节点中的全部从节点均已接收到所述序号。
13.如权利要求12所述的计算机可读介质,包括指令,所述指令引导所述一个或多个处理器用于:
在将所述序号递增之前将障碍值发送到所述多个从节点中的每一个从节点;以及
在接收到所述障碍值时,使所述序号无效并且停止执行事务。
14.如权利要求13所述的计算机可读介质,包括指令,所述指令引导所述一个或多个处理器用于发送确认以指示所述活跃事务集的事务已被执行,其中,将所述序号递增包括在接收到来自多个从节点中的全部从节点的确认后将所述集群定序器递增。
15.如权利要求12所述的计算机可读介质,其中,将所述序号递增包括以规定的时间间隔来将所述序号递增。
CN201480080925.XA 2014-07-29 2014-07-29 存储事务 Pending CN106537364A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/048673 WO2016018262A1 (en) 2014-07-29 2014-07-29 Storage transactions

Publications (1)

Publication Number Publication Date
CN106537364A true CN106537364A (zh) 2017-03-22

Family

ID=55217984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480080925.XA Pending CN106537364A (zh) 2014-07-29 2014-07-29 存储事务

Country Status (3)

Country Link
US (1) US20170168756A1 (zh)
CN (1) CN106537364A (zh)
WO (1) WO2016018262A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108694076A (zh) * 2017-04-01 2018-10-23 英特尔公司 多节点存储操作
CN110008031A (zh) * 2018-01-05 2019-07-12 北京金山云网络技术有限公司 设备操作方法、集群系统、电子设备及可读取存储介质
WO2020098518A1 (en) * 2018-11-12 2020-05-22 Huawei Technologies Co., Ltd. Method of synchronizing mirrored file systems and storage device thereof
CN111400404A (zh) * 2020-03-18 2020-07-10 中国建设银行股份有限公司 一种节点初始化方法、装置、设备及存储介质
WO2023016382A1 (zh) * 2021-08-12 2023-02-16 寒武纪(西安)集成电路有限公司 用于片上系统的方法及其相关产品

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771315B2 (en) * 2017-02-14 2020-09-08 Futurewei Technologies, Inc. High availability using multiple network elements
CN107124469B (zh) * 2017-06-07 2020-07-24 苏州浪潮智能科技有限公司 一种集群节点通信方法及系统
US10509581B1 (en) * 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10721296B2 (en) * 2017-12-04 2020-07-21 International Business Machines Corporation Optimized rolling restart of stateful services to minimize disruption
US10379985B1 (en) * 2018-02-01 2019-08-13 EMC IP Holding Company LLC Automating and monitoring rolling cluster reboots
US11336683B2 (en) * 2019-10-16 2022-05-17 Citrix Systems, Inc. Systems and methods for preventing replay attacks
CN111198662B (zh) * 2020-01-03 2023-07-14 腾讯云计算(长沙)有限责任公司 一种数据存储方法、装置和计算机可读存储介质
CN113407123B (zh) * 2021-07-13 2024-04-30 上海达梦数据库有限公司 一种分布式事务节点信息存储方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238625A (zh) * 1998-04-09 1999-12-15 佳能株式会社 数据通信系统,数据通信方法和数据通信设备
CN1293411A (zh) * 1999-10-15 2001-05-02 精工爱普生株式会社 数据传输控制装置和电子设备
CN102339283A (zh) * 2010-07-20 2012-02-01 中兴通讯股份有限公司 集群文件系统访问控制方法及集群节点
CN103597460A (zh) * 2011-04-08 2014-02-19 奥特拉有限公司 用于利用存储命令的系统和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060053216A1 (en) * 2004-09-07 2006-03-09 Metamachinix, Inc. Clustered computer system with centralized administration
US20070061379A1 (en) * 2005-09-09 2007-03-15 Frankie Wong Method and apparatus for sequencing transactions globally in a distributed database cluster
US20090157766A1 (en) * 2007-12-18 2009-06-18 Jinmei Shen Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
US8954385B2 (en) * 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US9063969B2 (en) * 2010-12-28 2015-06-23 Sap Se Distributed transaction management using optimization of local transactions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238625A (zh) * 1998-04-09 1999-12-15 佳能株式会社 数据通信系统,数据通信方法和数据通信设备
CN1293411A (zh) * 1999-10-15 2001-05-02 精工爱普生株式会社 数据传输控制装置和电子设备
CN102339283A (zh) * 2010-07-20 2012-02-01 中兴通讯股份有限公司 集群文件系统访问控制方法及集群节点
CN103597460A (zh) * 2011-04-08 2014-02-19 奥特拉有限公司 用于利用存储命令的系统和方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108694076A (zh) * 2017-04-01 2018-10-23 英特尔公司 多节点存储操作
CN110008031A (zh) * 2018-01-05 2019-07-12 北京金山云网络技术有限公司 设备操作方法、集群系统、电子设备及可读取存储介质
CN110008031B (zh) * 2018-01-05 2022-04-15 北京金山云网络技术有限公司 设备操作方法、集群系统、电子设备及可读取存储介质
US11416313B2 (en) 2018-01-05 2022-08-16 Beijing Kingsoft Cloud Network Technology Co., Ltd. Equipment control method, cluster system , electronic device and readable storage medium
WO2020098518A1 (en) * 2018-11-12 2020-05-22 Huawei Technologies Co., Ltd. Method of synchronizing mirrored file systems and storage device thereof
CN111400404A (zh) * 2020-03-18 2020-07-10 中国建设银行股份有限公司 一种节点初始化方法、装置、设备及存储介质
WO2023016382A1 (zh) * 2021-08-12 2023-02-16 寒武纪(西安)集成电路有限公司 用于片上系统的方法及其相关产品

Also Published As

Publication number Publication date
WO2016018262A1 (en) 2016-02-04
US20170168756A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
CN106537364A (zh) 存储事务
US9557925B1 (en) Thin replication
US11550819B2 (en) Synchronization cache seeding
US8407435B2 (en) Efficiently creating a snapshot of a large consistency group using multiple commands including a snapshot preparation command
TWI470459B (zh) 由在遠端複本對之主要磁碟與次要磁碟之間通信而作為遠端複本對運作之儲存控制系統、方法、資料載體及電腦程式產品
WO2017219857A1 (zh) 一种数据处理方法和设备
CN107919977B (zh) 一种基于Paxos协议的在线扩容、在线缩容的方法和装置
CN105426439A (zh) 一种元数据的处理方法和装置
JP2007286860A (ja) データ転送方法及び情報処理装置
US8538928B2 (en) Flash-copying with asynchronous mirroring environment
GB2519157A (en) Robust data replication
JP2007310701A (ja) データベースシステム、ストレージ装置、初期コピー方法及びログ適用方法
CN1773463A (zh) 用于一致性组形成中的数据传送管理的方法和系统
JP5561334B2 (ja) データ転送装置
CN100550894C (zh) 对n路共享存储系统中快闪副本的高效锁管理
CN112052230A (zh) 多机房数据同步方法、计算设备及存储介质
US20130110782A1 (en) Oportunistic database duplex operations
JP7192388B2 (ja) 並列処理装置、並列演算実行プログラムおよびバックアップ方法
JP2009080705A (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP6708923B2 (ja) ストレージシステム
JP2007334836A (ja) 情報処理装置、データ保持装置及びそれらの制御方法、コンピュータプログラム並びに記憶媒体
CN106326030B (zh) 用于存储系统中的软切换的方法和装置
JP6287308B2 (ja) レプリケーション制御システム、レプリケーション制御方法、及び、レプリケーション制御プログラム
JP2013114628A (ja) データ管理プログラム、データ管理方法およびストレージ装置
CN103001995B (zh) 在集群文件系统中改进高速缓存一致性的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170322