CN110998562B - 在分布式集群系统中隔开节点 - Google Patents

在分布式集群系统中隔开节点 Download PDF

Info

Publication number
CN110998562B
CN110998562B CN201880050645.2A CN201880050645A CN110998562B CN 110998562 B CN110998562 B CN 110998562B CN 201880050645 A CN201880050645 A CN 201880050645A CN 110998562 B CN110998562 B CN 110998562B
Authority
CN
China
Prior art keywords
database
node
identifier
directory
database node
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
Application number
CN201880050645.2A
Other languages
English (en)
Other versions
CN110998562A (zh
Inventor
N·怀亚特
S·拉斯普迪克
V·尤尤利
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.)
Shuo Power Co
Original Assignee
Shuo Power Co
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 Shuo Power Co filed Critical Shuo Power Co
Publication of CN110998562A publication Critical patent/CN110998562A/zh
Application granted granted Critical
Publication of CN110998562B publication Critical patent/CN110998562B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

公开了与将多个节点中的第一节点隔开有关的技术,所述多个节点被配置为处理对存储在分布式存储器中的数据的请求。在各种实施例中,数据库系统存储指示第一节点被允许更新存储在元数据服务器处的目录的值。在各种实施例中,响应于确定防止第一节点更新目录以及写入分布式存储器,数据库系统更新该值以指示不允许第一节点更新目录,并指示分布式存储器防止对分配给第一节点以写入数据的特定部分进行写入操作。

Description

在分布式集群系统中隔开节点
技术领域
本公开总体上涉及高可用性系统,并且更具体地,涉及集群数据库系统。
背景技术
当组织希望为其用户存储信息时,该组织通常实现数据库系统,该数据库系统以可以被有效访问的有组织的方式存储该信息。大型企业系统的数据库系统可依赖多个服务器来实现计算机集群,其中各个服务器充当运行数据库应用的实例的集群节点。这些节点可以单独服务来自用户的对数据进行操作的请求。为了确保集群的可靠性,集群可能需要考虑节点发生故障的情况。
附图说明
图1是示出根据一些实施例的实现数据库的数据库系统的示例性元素的框图。
图2是示出根据一些实施例的维护授权标识符的元数据服务器的示例性元素的框图。
图3是示出根据一些实施例的服务于将数据写入分布式存储器的请求的活动节点的示例性元素的框图。
图4-图6是示出根据一些实施例的与隔开节点有关的示例性方法的流程图。
图7是示出根据一些实施例的示例性计算机系统的框图。
本公开包括对“一个实施例”或“一实施例”的引用。短语“在一个实施例中”或“在一实施例中”的出现不一定指相同的实施例。可以按照与本公开一致的任何合适方式来组合特定特征、结构或特性。
在本公开中,可以将不同实体(其可以被不同地称为“单元”、“电路”、其他组件等)描述或称为“被配置”为执行一个或更多个任务或操作。本文使用[实体]被配置为[执行一个或更多个任务]这一公式来指结构(即,物理的事物,例如电子电路)。更具体地,该公式用于指示该结构被布置为在操作期间执行一个或更多个任务。结构可以说是“被配置为”执行某任务,即使该结构当前未被操作。“被配置为执行数据库管理应用程序的实例的节点”旨在覆盖例如具有在操作期间执行此功能的电路的集成电路,即使所述集成电路当前未被使用(例如,电源未与其连接)。因此,被描述或叙述为“被配置为”执行某项任务的实体指的是物理的事物,例如设备、电路、存储可执行程序指令以实现该任务的内存等。因此,“被配置为”结构在本文中不用于指代诸如应用程序编程接口(API)的软件实体。
术语“被配置为”并不意图意味着“可配置为”。例如,未编程的FPGA将不被视为“被配置为”执行某些特定功能,但是它可以“可配置为”执行该功能,并且可以“被配置为”在编程后执行该功能。
如本文所使用的,术语“第一”、“第二”等用作其后面的名词的标签,除非特别说明,否则不意味着任何类型的排序(例如,空间、时间、逻辑等)。例如,在具有八个节点的数据库系统中,术语“第一”和“第二”节点可用于指代八个节点中的任意两个节点。
如本文所使用的,术语“基于”用于描述影响确定的一个或更多个因素。这一术语并不排除其他因素可能影响确定的可能性。也就是说,一确定可以仅仅基于指定的因素,或者基于指定的因素以及其他未指定的因素。考虑短语“基于B确定A”。该短语指定B是用于确定A的因素或影响A的确定的因素。该短语不排除A的确定也可以基于某些其他因素,例如C。该短语还意在涵盖其中仅基于B确定A的实施例。如本文所使用的,短语“基于”因此与短语“至少部分地基于”同义。
具体实施方式
由于故障的数据库节点可能破坏数据和/或干扰数据库操作,因此重要的是隔开(即,隔离)有问题的数据库节点。隔离故障节点的一种方法涉及物理上将其断电-称为“击中头上的其他节点(Shoot The Other Node In The Head,STONITH)”方法。在这种方法中,故障节点通常通过手动或使用机械手控制过程来翻转节点上的电源开关来关闭。但是,这种方法不会停止当前正在“电线”上或在控制器级别上进行通信的输入/输出。另一种方法涉及发出一系列复杂的小型计算机系统接口(SCSI)命令,以利用SCSI协议的功能(通常称为SCSI隔开)。但是,这种方法在分布式数据库系统中效果不佳,因为在多个磁盘和控制器之间共享数据时,复杂性会增加。
本公开描述了用于以克服现有技术的缺点的方式来隔开(fence out)数据库节点的技术。在下面描述的各种实施例中,数据库系统通过防止其1)更新目录以指示已分配用于在共享存储器处写入数据的新数据库部分,以及2)写入已分配的部分来隔开数据库节点。为了防止目录被更新,数据库系统的元数据服务器可以维护标识符,该标识符指示数据库节点是否可以更新目录。这样,当数据库节点希望更新目录时,它可以与元数据服务器通信以确定它是否具有这样做的权限-该权限基于所维护的标识符。在这样的实施例中,如果要隔开数据库节点,则数据库系统可以在元数据服务器处更新标识符,以指示数据库节点不具有更新目录的权限。为了防止故障节点写入已分配的部分,数据库系统可以指示存储已分配部分的共享存储器防止对已分配部分进行任何新的写入。这种隔开方法可能优于现有方法,例如,它不依赖某种外部机制(例如管理员)来对节点断电,并且不像例如基于SCSI的解决方案那样复杂。
现在转到图1,描绘了数据库系统10的框图。在所示的实施例中,数据库系统10包括经由网络160耦合的数据库集群100、分布式存储器120和元数据服务器130。如图所示,集群100包括活动节点140和备用节点150,它们各自运行高可用性(HA)集群管理器110。进一步如图所示,分布式存储器120包括分配的区域122和未分配的空间124,并且元数据服务器130包括授权标识符132和目录134。尽管未示出,但是各种客户端设备(例如,应用服务器)可以通过发送执行数据库事务的请求与节点140和150进行交互。在一些实施例中,数据库系统10可以与所示的方式不同地实现。例如,在一些实施例中,数据库系统10包括多个活动节点140。存储器120也可以不是分布式存储器。
在各个实施例中,数据库系统10部分地通过节点140和150实现,节点140和150被配置为作为数据库集群100操作并处理事务请求146和156。这些请求可以包括从存储器120读取数据和/或将数据写入存储器120。例如,活动节点140可以接收请求146,以将用户的密码更新为新值,并因此可以将记录写入分配的区域122,其中该记录包括该值。在一些实施例中,数据库系统10使用活动-备用拓扑来实现HA服务,其中,选择一个或更多个数据库节点以代表其他节点将数据写入到存储器120中,该被选择的节点被示为活动节点140,并且未选择的节点被示为备用节点150。
在各个实施例中,活动节点140被配置为服务于将数据读取和写入分布式存储器120的请求(尽管仅示出了写入事务请求146)。因此,活动节点140可以从客户端设备接收写入事务请求146,并且发出相应的写入记录请求144以将数据写到存储器120中的分配的区域122。在下面讨论的一些实施例中,分配的区域122是由节点140从读取和写入记录的存储器120中的未分配的空间124创建的文件。下面参照图3更详细地讨论活动节点140。
在各个实施例中,备用节点150被配置为服务于读取请求156,以提供存储在分布式存储器120中的数据(和/或用作备份节点,该备份节点被配置为在有保证的情况下接管活动节点140的角色)。在各个实施例中,备用节点150可以各自维护关于数据库系统10的当前状态的元数据。例如,节点150可以维护存储元数据的本地高速缓存,所述元数据也由存储器120存储。在这样的实施例中,备用节点150可以从客户端设备接收对存储在存储器120中的数据的读取事务请求156。响应于这些请求,如果该数据已经存在于高速缓存中,备用节点150可以从其本地高速缓存(与存储器120相对)中检索所请求的数据。为了确保它们的本地高速缓存与存储器120中的数据并发,在一些实施例中,节点150可以查阅目录134以识别在存储器120处已经分配了什么新区域122,并且随后已经写入了什么记录。可以从存储器120中读取记录以确定对存储器120中的数据的任何修改,这些修改可能影响其本地高速缓存中的数据。如果本地高速缓存中的数据受到影响(例如,键-值(key-value)对的值已被更新或删除),则备用节点150可以更新高速缓存以反映存储器120中数据的修改(例如,通过更新或无效高速缓存条目)。这可以允许备用节点维护反映数据库系统10当前状态的高速缓存。如上所述,可以选择备用节点150之一成为活动节点140,这时,该节点可以服务于写入事务请求146。维护关于系统10当前状态的最新元数据可以允许新选择的节点150更快地担当活动节点140的角色。
在各种实施例中,HA集群管理器110是可执行以管理集群资源以便实现集群100(或更一般地,数据库系统10)的高可用性的应用程序。因此,在一些实施例中,管理器110可执行以检测节点140和150的故障并促进故障转移。特别地,管理器110可以分布在节点140和150上,使得它可以通过监视由每个节点140和150发送的心跳信号来监视健康,以指示节点140和150没有变得无响应。例如,如果当前活动节点140没有以心跳信号响应,则管理器110可以通过进行选择以从备用节点150中选择新的活动节点140并提升当选的备用节点150成为活动节点140来促进故障转移。在一些实施例中,管理器110可以可替代地向每个节点140和150发送请求,并等待相应的响应以确保节点140和150仍然响应。在一些实施例中,管理器110还可以响应于来自诸如管理员之类的用户的请求而进行选择。(在一些实施例中,可以替代地由以下讨论的元数据服务器130进行选择。)
如下面将更详细地描述的,响应于确定节点正在发生故障(或响应于用户请求),管理器110也可以可执行以将节点140和150隔开。(尽管下面将各种隔开操作描述为由管理器110执行,但是在某些实施例中,这些操作可以由除管理器110以外的实体执行。)在以下讨论的各种实施例中,管理器110可以通过防止节点140更新目录134以及写入分配的区域122来隔开节点140。在简要讨论存储器120和元数据服务器130之后,下面将更详细地描述该过程。
在各个实施例中,分布式存储器120是被配置为存储系统10的用户的数据的共享存储器。在一些实施例中,存储器120可以由在网络上连接在一起的多个存储设备(例如,存储附属网络(SAN))实现,并配置为冗余存储数据以防止数据丢失。在各种实施例中,存储器120被配置为实现日志结构的存储器(例如,预写日志(WAL)),其中活动节点140分配新区域/部分122用于存储新的事务数据(与覆写现有事务数据相对)。例如,特定区域122可以包括用户的账户余额。在这样的示例中,如果接收到事务请求146以更新账户余额,则活动节点140可以不修改先前存储在特定区域122中的账户余额;而是,活动节点140可以提交请求144以将标识新账户余额的新记录写入新分配的区域122(或特定区域122)中。在一些实施例中,活动节点140可以通过创建文件(或请求存储器120创建文件)用于存储新事务数据来分配未分配的空间124的区域122。当接收到事务请求146时,活动节点140可以将新记录写入文件。当文件变满时,活动节点140可以通过创建用于存储记录的另一个文件来关闭文件/区域122并分配新的区域122。在一些实施例中,活动节点140可以在给定时间分配多个区域122以存储事务数据,例如,十个区域122的块。如将更详细地讨论的,在各个实施例中,在分配了新的区域122并关闭旧的区域(其已充满了记录)时,活动节点140更新目录134(通过图1所示的请求142)。这些更新可以由备用节点150审查,以便了解新分配的区域122并读取那些区域122的内容。例如,节点150可以读取给定区域122中的数据库记录,以便它们可以更新各种在本地维护的元数据(例如上述的本地高速缓存)以反映数据库系统的当前状态。如下所述,在尝试隔开活动节点140时,可能会限制对目录134的访问。
在各种实施例中,存储器120被配置为维护指示是否允许活动节点140写入分配的区域122的元数据。例如,在一些实施例中,该元数据可以包括用于每个区域122的写入标志,其指示当前活动节点140是否被允许将记录写到相关联的分配的区域122(或更一般地,系统10中的任何节点是否可以修改区域122)。如将在下面讨论的,这些写入标志可以由管理器110响应于确定节点140将被隔开而设置。
在各种实施例中,元数据服务器130被配置为维护可由节点140和150使用以实现数据库系统10的元数据。例如,如图所示,服务器130可以维护目录134,该目录134可以指定定义各种数据库结构和对象的模式(schema),用于在数据库中查找数据的索引,用于访问数据库信息的用户权限等。如上所述,在一些实施例中,目录134存储提供分配的区域122的指示的元数据。该元数据可以包括位置信息(例如区域122ID,键等),该位置信息标识在存储器120中相应分配的区域122所位于的物理位置。响应于目录134被修改,服务器130可以通知节点150目录134已经改变。因此,节点150然后可以查阅目录134并使用新添加的键来定位对应的分配的区域122;在各种情况下,节点150可以在不被通知的情况下定期查阅目录134。
如上所述,活动节点140可以负责在分配区域122之后经由目录更新请求142更新目录134。在各种实施例中,服务器130维护指示当前活动节点140是否可以更新目录134的值(示出为授权标识符132)。当活动节点140想要更新目录134时,在各种实施例中,它确定标识符132是否已经被修改。如果标识符132尚未被修改,则节点140可以继续更新目录134。但是,如果标识符132已经被修改,则节点140可以不更新目录134以反映新分配的区域122。
如上所述,在各种实施例中,HA集群管理器110可以确定在某个时刻确保了隔离开活动节点140,因为例如不再接收到心跳信号,用户已请求该心跳信号等。响应于进行了这样的确定,管理器110可以试图防止活动节点140写入可能损坏的记录,以及防止分配额外的区域122用于写入更多可能损坏的记录。为了防止节点140更新目录134,在各种实施例中,管理器110发出对元数据服务器130修改授权标识符132的请求(示出为修改标识符请求112)。在一些实施例中,该请求112可以来自执行管理器110的实例的新选择的备用节点150。如上所讨论的,在这样的实施例中,一旦标识符132已被修改,活动节点140就不允许更新目录134。目录更新请求142因此在图1中用“X”描绘,以指示活动节点140已被防止更新目录134。在一些实施例中,活动节点140配置为如果无法更新目录134以反映已经分配的区域122,则中断分配新区域122,因此响应于授权标识符132被修改,有效地禁止节点140分配新区域122来存储新记录。
为了防止节点140写入已经分配的区域122,在所示实施例中,管理器110向存储器120发出阻止写入请求114。该请求可以指示存储器120防止对分配的区域122的指定集合的写入操作,并且在一些实施例中,由新选的节点150发出。响应于接收到请求114,存储器120可以设置与区域122的指定集合相关联的写入标志,以防止活动节点140向其写入记录。之后,当节点140向存储器120发出写入记录请求144时,在一些实施例中,存储器120从标志中确定拒绝请求144并且不将另一条记录添加到已经分配的区域122。图1中用“X”描绘写记录请求144,以指示已防止节点140将记录写入特定区域122。)在阻止目录更新请求142和写入记录请求144中,管理器110有效地隔开了活动节点140,防止其潜在损坏数据库系统10中的数据。
现在转到图2,示出了元数据服务器130的一个实施例的框图。如上所述,在各种实施例中,服务器130被配置为存储可由节点140和150使用以实现数据库系统10的元数据。在所示的实施例中,服务器130包括授权标识符132和目录134。进一步如图所示,目录134包括分配的区域元数据210。在各个实施例中,元数据服务器130可以与所示的方式不同地实现。
如上所述,在各个实施例中,目录134包括可由节点140和150用于定位存储器120中的区域122的元数据210。在一些实施例中,元数据210可以包括映射到存储器120中的物理位置的键,在该物理位置上存储相应分配的区域122。响应于在存储器120处分配区域122(例如,打开文件用于存储记录),节点140可以尝试更新目录134以包括用于分配的区域122的键。然后,一旦节点140已经用记录填充了区域122(例如,并且正在关闭文件),则可以再次更新目录134。因此,希望读取所写入的记录的节点150可以首先通过向服务器130请求键来查阅目录134。节点150然后可以向存储器120发出键,存储器120可以实现键-值存储器,该键-值存储器响应于接收到键而返回所写入的记录。在一些实施例中,元数据210进一步包括附加元数据,备用节点150可以使用该附加元数据来成为活动节点140,所述附加元数据诸如指定可以写入下一条记录的特定区域122的附加点、指定最旧的区域122的尾标、每个区域122的时间戳等。
如上所述,在各个实施例中,授权标识符132是指示当前活动节点140是否可以更新目录134的值。在一些实施例中,标识符132明确地标识活动节点140。例如,标识符132可以是节点140的IP地址、唯一节点标识符等。在其他实施例中,如将结合图3讨论的,标识符132没有明确地标识节点140;而是,标识符132是字母和/或数字字符的序列,其在节点成为当前活动节点140时被设置并且只要该节点仍然是活动节点140就保持不变。因此,在这样的实施例中,标识符132是仅在管理器110选择新的活动节点140时更新。
现在转到图3,示出了活动节点140的一个实施例的框图。在所示的实施例中,活动节点140包括HA集群管理器110的实例、数据库应用310和授权标识符副本320。在各个实施例中,活动节点140可以与所示的方式不同地实现。例如,HA集群管理器110和数据库应用310分别是相同的应用程序的一部分。
在各个实施例中,数据库应用310是可由节点140执行以服务于来自客户端的请求146和156的应用程序,包括从区域122写入和读取记录。在一些实施例中,应用310也可执行以用关于存储器120处的区域122的元数据210更新目录134。分配一个或更多个区域122或关闭它们之后,应用310可以尝试通过首先查阅标识符132以确定其是否已更改来更新目录134。在标识符132明显地标识节点140的实施例中(例如,通过指定IP地址、节点ID等),应用310可以经由授权标识符请求315来检索标识符132,并确认标识符132仍指示其节点为活动节点。在标识符132没有明确指向节点140(例如,它是通用字符串)的实施例中,该节点在成为活动节点140时,请求并存储标识符132的本地副本(示为副本320)。当节点140稍后尝试更新目录134时,节点140可以将其副本320与元数据服务器130中的标识符132的副本进行比较,以确认自从其成为活动节点140以来,标识符132尚未被修改。如果标识符132尚未被修改,则活动节点140更新目录134;否则,节点140不更新目录134,因此不分配任何额外区域122。
现在转到图4,示出了方法400的流程图。方法400是由计算机系统(例如,数据库系统10)执行以隔开数据库节点(例如,节点140)的方法的一个实施例。在各种实施例中,计算机系统的节点(例如,节点140和150)执行实现HA数据库集群并执行方法400的步骤的高可用性(HA)应用程序(例如,HA集群管理器110)。在一些实施例中,方法400包括附加步骤,诸如在分布式存储器(例如存储器120)处分配的部分(例如区域122)中读取。
方法400从步骤410开始,计算机系统将一值(例如标识符132)存储在元数据服务器(例如服务器130)中,该值指示第一节点(例如节点140)被允许更新存储在数据库系统的元数据服务器处的目录(例如,目录134)。第一节点可以在更新目录之前检查该值。作为示例,在一个实施例中,第一节点分配分布式存储器处的部分集用于写入数据,并且响应于此,尝试使用关于所分配的部分集的元数据来更新目录。第一节点可以通过首先检查存储在元数据服务器中的值以确定它是否已被更新来这样做。在各种情况下,第一节点可以确定该值尚未被更新,因此,更新目录以包括所分配部分的指示。在其他实施例中,第一节点确定该值已被更新,并停止分配分布式存储器处的部分。在各个实施例中,该值被存储在分布式存储器中而不是元数据服务器中。
响应于确定防止第一节点更新目录以及写入分布式存储器,在步骤420中,计算机系统更新存储在元数据服务器处的值,以指示不允许第一节点更新目录。该确定可以源自来自用户的请求或通过自动化过程得出。在各种情况下,HA应用程序均可进行此确定。在一些实施例中,HA应用程序选择第二节点(例如,节点140)用于将数据写入分布式存储器,并使被选的节点更新该值并存储其副本(例如,授权标识符副本320)。
在步骤430中,计算机系统指示分布式存储器防止对分配给数据库节点的特定部分的用于写入数据的写入操作。在一些实施例中,分布式存储器为每个分配的部分存储写入标志,并且响应于被指示,设置特定部分的写入标志以指示计算机系统的节点不能将数据写入到该特定部分。
现在转到图5,示出了方法500的流程图。方法500是由数据库系统(例如,系统10)执行以隔开活动节点(例如,节点140)的方法的一个实施例。与方法400一样,方法500的步骤可以由跨数据库系统的节点(例如,节点140和150)分布的HA应用程序(例如,管理器110)来执行。在各种实施例中,方法500包括附加步骤,例如,备用节点(例如,节点150)监视目录(例如,目录134)以确定活动节点是否已经分配了任何新的部分(例如,区域122)。
方法500从步骤510开始,数据库系统确定防止活动节点更新目录并将数据写入分布式存储器(例如存储器120)。响应于确定防止活动节点,在各种实施例中,数据库系统选择新的活动节点以将数据写入分布式存储器。可以响应于从客户端系统接收到请求来进行确定。
响应于确定防止活动节点更新目录,在步骤520中,数据库系统修改标识符(例如132)以指示不允许活动节点更新目录。在各种实施例中,元数据服务器(例如,服务器130)维护标识符。活动节点可以存储标识符的实例(例如,副本320),并使用该实例来确定在更新目录之前标识符是否已被修改。在各种实施例中,活动节点通过将所存储的实例与在元数据服务器处维护的标识符进行比较来进行该确定。在一些实施例中,响应于确定所存储的实例不匹配标识符,活动节点停止更新目录以指示由活动节点分配的部分。在一些实施例中,数据库系统使新选择的节点修改标识符,并存储修改后的标识符的实例,以确定修改后的标识符是否随后已被修改。在各种实施例中,由元数据服务器维护的标识符是数值。
在步骤530中,响应于确定防止活动节点将数据写入分布式存储器,数据库系统指示分布式存储器防止活动节点对分配用于写入数据的特定部分的写入操作。在各种实施例中,分布式存储器为在分布式存储器处分配的部分维护写入标志。这些标志可以指示给定部分是否可以被活动节点写入。响应于由数据库系统指示防止写入,分布式存储器可以设置与特定部分相关联的标志,以指示活动节点不能写入该特定部分。
现在转到图6,示出了方法600的流程图。方法600是由数据库节点(例如,节点140)执行以分配共享存储器(例如,存储器120)的区域(例如,区域122)并更新目录(例如,目录134)以指示所分配的区域的方法的一个实施例。可以响应于接收到服务于将数据写入共享存储器的事务请求(例如,请求146)的请求来执行方法600的步骤。在各种实施例中,方法600包括附加步骤,例如,确定分配的区域是否具有用于存储附加数据的容量,确定数据库节点已经发生问题等。
方法600开始于步骤610,其中数据库节点存储由数据库节点的数据库系统(例如系统10)维护的标识符(例如132)的实例(例如,副本320)。在各个实施例中,设置标识符以指示允许数据库节点修改数据库系统的目录。最初,数据库系统可以从多个数据库节点中选择数据库节点以用于将数据写入共享存储器。响应于被选择用于写入数据,数据库节点可以修改标识符以指示允许新选的数据库节点修改目录。此后,在各种实施例中,数据库节点执行步骤610。
响应于接收到将数据写入共享存储器的请求,在步骤620中,数据库节点分配共享存储器的区域用于服务该请求。在一些实施例中,数据库节点尝试将数据写入该区域,并确定数据库系统已防止数据库节点将数据写入该区域。在各个实施例中,共享存储器维护对特定区域是否可以由数据库节点(例如,节点140)写入的指示。
在步骤630中,数据库节点通过将实例与所维护的标识符进行比较以确定所维护的标识符是否已被修改,来确定对目录的修改是否被授权。数据库节点可以执行高可用性(HA)应用程序(例如,管理器110)以实现HA数据库集群。在一些实施例中,HA应用程序监视数据库节点的心跳以确定在数据库节点处是否已经发生问题。响应于确定在数据库节点处已经发生问题,HA应用程序可以修改标识符以指示不允许数据库节点修改目录,并且可以指示共享存储器防止对分配的区域的写入操作。在一些实施例中,HA应用程序选择另一个数据库节点以将数据写入共享存储器,并且另一个节点修改标识符并指示共享存储器。
基于该修改被授权,在步骤640中,数据库节点更新目录以包括所分配区域的指示。在一些实施例中,基于确定所维护的标识符已经被修改以指示不允许数据库节点修改目录,数据库节点可以停止更新目录以包括所分配的区域的指示。在某些情况下,不包括所分配区域的指示的目录使其他节点(例如150)不知道所分配的区域。
示例性计算机系统
现在转到图7,描绘了可以实现数据库系统10的示例性计算机系统700的框图。计算机系统700包括处理器子系统780,该处理器子系统780经由互连760(例如,系统总线)耦合到系统内存720和一个或更多个I/O接口740。一个或更多个I/O接口740耦合到一个或更多个I/O设备750。计算机系统700可以是各种类型的设备中的任何一种,包括但不限于服务器系统、个人计算机系统、台式计算机、膝上型计算机或笔记本计算机、大型机计算机系统、平板计算机、手持计算机、工作站、网络计算机、消费者设备,诸如移动电话、音乐播放器或个人数据助理(PDA)。尽管为了方便起见在图7中示出了单个计算机系统700,但是系统700也可以被实现为一起操作的两个或更多个计算机系统。
处理器子系统780可以包括一个或更多个处理器或处理单元。在计算机系统700的各种实施例中,处理器子系统780的多个实例可以耦合到互连760。在各种实施例中,处理器子系统780(或780内的每个处理器单元)可以包含高速缓存或其他形式的板载内存。
系统存储器720是可用的存储程序指令,其可由处理器子系统780执行以使系统700执行本文所述的各种操作。系统存储器720可以使用不同的物理存储介质来实现,例如硬盘存储、软盘存储、可移除磁盘存储、闪存、随机存取存储器(RAM-SRAM、EDO RAM、SDRAM、DDR SDRAM、RAMBUS RAM等)、只读存储器(PROM、EEPROM等)等。计算机系统700中的内存不限于主存储器(诸如内存720)。而是,计算机系统700还可以包括其他形式的存储器,诸如处理器子系统780中的高速缓存存储器和I/O设备750上的辅助存储器(例如,硬盘驱动器、存储阵列等)。在一些实施例中,这些其他形式的存储器还可以存储可由处理器子系统780执行的程序指令。在一些实施例中,上述管理器110可以包括系统内存720或被包括在系统内存720中。
根据各种实施例,I/O接口740可以是被配置为耦合到其他设备并与其他设备通信的各种类型的接口中的任何一种。在一个实施例中,I/O接口740是从正面总线到一个或更多个背面总线的桥芯片(例如,南桥)。I/O接口740可以经由一个或更多个对应的总线或其他接口耦合到一个或更多个I/O设备750。I/O设备750的示例包括存储设备(硬盘驱动器、光盘驱动器、可移除闪存驱动器、存储阵列、SAN或其关联的控制器)、网络接口设备(例如,到局域网或广域网)或其他设备(例如图形、用户界面设备等)。在一个实施例中,计算机系统700经由网络接口设备750(例如,被配置为通过WiFi、蓝牙、以太网等进行通信)耦合到网络。
本申请的主题的实现包括但不限于以下示例1至20。
1.一种用于数据库系统将多个节点中的第一节点隔开的方法,所述多个节点被配置为处理对存储在分布式存储器中的所述数据库系统的数据的请求,所述方法包括:
将值存储在所述数据库系统的元数据服务器中,所述值指示所述第一节点被允许更新存储在所述元数据服务器处的所述数据库系统的目录,其中所述第一节点被配置为在更新所述目录之前检查所述值;
响应于确定防止所述第一节点更新所述目录以及写入所述分布式存储器:
更新所述元数据服务器中的所述值,以指示不允许所述第一节点更新所述目录;以及
指示所述分布式存储器防止对分配给所述第一节点以进行写入数据的特定部分的写入操作。
2.根据示例1所述的方法,其中所述多个节点被配置为执行高可用性(HA)应用程序以实现HA数据库集群,其中所述方法由所述HA应用程序执行。
3.根据示例2所述的方法,还包括:
所述HA应用程序选择所述多个节点中的第二节点以将数据写入所述分布式存储器;以及
响应于选择了所述第二节点,所述HA应用程序使第二节点维护所述值的副本,其中所述第二节点被配置为在更新所述目录之前比较所述值的副本和存储在所述元数据服务器中的所述值。
4.根据示例2所述的方法,还包括:
所述HA应用程序进行该确定以防止所述第一节点写入所述分布式存储器。
5.根据示例1所述的方法,其中所述第一节点被配置为:
在所述分布式存储器处分配部分集用于写入数据;
响应于分配所述部分集,尝试更新所述数据库系统的目录,包括检查所述值以确定所述值是否已被更新;以及
响应于确定所述值已被更新,停止在分布式存储器处分配部分。
6.根据示例1所述的方法,其中所述第一节点被配置为:
在所述分布式存储器处分配部分集用于写入数据;
响应于分配所述部分集,尝试更新所述数据库系统的目录,包括检查所述值以确定所述值是否已被更新;以及
响应于确定所述值尚未更新,更新所述目录以包括所分配的部分集的指示。
7.根据示例6所述的方法,其中所述多个节点中的第二节点被配置为:
监视所述数据库系统的目录,以确定所述第一节点已分配的部分;以及
响应于所述第一节点更新了所述目录,使用所述指示从所分配的部分集中读取,以更新所述第二节点维护的高速缓存。
8.一种数据库系统,包括:
多个节点,被配置为实现数据库集群;
分布式存储器,可被所述多个节点访问并且被配置为存储所述数据库系统的数据;以及
元数据服务器,被配置为维护标识符,所述标识符指示允许所述多个节点中的活动节点更新由所述元数据服务器维护的数据库目录;
其中,数据库系统被配置为:
确定防止所述活动节点更新所述数据库目录以及将数据写入所述分布式存储器;以及
响应于确定防止所述活动节点:
在所述元数据服务器处修改所述标识符,以指示不允许所述活动节点更新所述数据库目录;以及
指示所述分布式存储器防止从所述活动节点到分配用于写入数据的特定部分的写入操作。
9.根据示例8所述的数据库系统,其中所述活动节点被配置为:
存储由所述元数据服务器维护的所述标识符的实例;以及
通过比较所存储的标识符的实例和所述元数据服务器维护的标识符,确定所述标识符是否已被修改。
10.根据示例9所述的数据库系统,其中所述活动节点被配置为:
响应于确定所存储的实例与所述标识符不匹配,停止更新所述数据库目录以指示由所述活动节点分配的部分。
11.根据示例8所述的数据库系统,其中所述分布式存储器被配置为:
维护用于在所述分布式存储器处分配的部分的多个标志,其中所述多个标志中的各个标志指示是否可以由所述活动节点写入给定的部分;以及
响应于被指示防止写入,设置与所述特定部分相关联的多个标志之一以指示所述特定部分不能被写入。
12.根据示例8所述的数据库系统,其中所述活动节点被配置为:
为了服务于来自客户端设备的请求,在所述分布式存储器处分配一个或更多个部分集用于写入数据;以及
响应于确定所述标识符尚未被修改,更新所述数据库目录的数据以提供所述一个或更多个部分集的一个或更多个指示。
13.根据示例8所述的数据库系统,其中所述数据库系统被配置为:
响应于确定防止所述活动节点更新所述数据库目录以及将数据写入所述分布式存储器:
选择所述多个节点中的另一个活动节点以将数据写入所述分布式存储器;以及
使所述另一个活动节点存储修改后的标识符的实例,其中该实例可用于确定所述修改后的标识符是否随后已被修改。
14.根据示例13所述的数据库系统,其中所述数据库系统被配置为:
在使所述另一个活动节点存储所述实例之前,通过使所述另一个活动节点修改所述标识符来修改所述标识符,其中所述标识符是数字值。
15.一种非暂时性计算机可读介质,具有存储在其上的程序指令,所述程序指令能够使数据库系统的第一数据库节点执行操作,包括:
存储由所述数据库系统维护的标识符的实例,其中所述标识符被设置为指示所述第一数据库节点被允许修改所述数据库系统的目录;
响应于接收到将数据写入共享存储器的第一请求:
分配所述共享存储器的第一区域以服务所述第一请求;
通过将实例与所维护的标识符进行比较以确定所维护的标识符是否已被修改,来确定对所述目录的修改是否被授权;以及
基于该修改被授权,更新所述目录以包括所述第一区域的指示。
16.根据示例15所述的非暂时性计算机可读介质,其中所述操作还包括:
响应于接收到将数据写入共享存储器的第二请求:
分配共享存储器的第二区域;
比较所述实例和所维护的标识符,以确定所维护的标识符是否已被修改;以及
响应于确定所维护的标识符已被修改,确定不更新所述目录以包括所述第二区域的指示。
17.根据示例15所述的非暂时性计算机可读介质,其中所述操作还包括:
为了服务于第二请求,尝试将数据写入所述第一区域;以及
响应于该尝试,确定所述数据库系统已防止所述第一数据库节点将数据写入所述第一区域,其中所述共享存储器被配置为维护特定区域是否可由所述数据库系统的数据库节点写入的指示。
18.根据示例15所述的非暂时性计算机可读介质,其中所述数据库系统被配置为选择所述数据库系统的多个数据库节点之一,以将数据写入所述共享存储器,并且其中所述操作还包括:
响应于所述数据库系统选择所述第一数据库节点用于将数据写入所述共享存储器:
修改所述标识符,以指示允许所述第一数据库节点修改所述数据库系统的目录;以及
执行由所述数据库系统维护的所述标识符的实例的存储。
19.根据示例15所述的非暂时性计算机可读介质,其中所述操作还包括:
执行高可用性(HA)应用程序以实现HA数据库集群,其中所述HA应用程序可操作为:
监视所述第一数据库节点的心跳以确定在所述第一数据库节点处是否发生了问题;以及
响应于确定在所述第一数据库节点处已经发生问题,修改所述标识符以指示不允许所述第一数据库节点修改目录,并指示所述共享存储器防止对所述第一区域的写入操作。
20.根据示例15所述的非暂时性计算机可读介质,其中所述操作还包括:
响应于接收到将数据写入共享存储器的第二请求:
确定所述第一区域是否具有存储与所述第二请求相关联的数据的能力;以及
响应于确定所述第一区域具有容量,将所述第二请求的数据写入第一区域,其中所述第二请求从客户端设备接收。
***
尽管以上已经描述了具体实施例,但是即使仅针对特定特征描述了单个实施例,这些实施例也不旨在限制本公开的范围。除非另有说明,否则本公开中提供的特征的示例旨在是说明性的而非限制性的。上面的描述旨在涵盖对受益于本公开的本领域技术人员来说显而易见的替代、修改和等效物。
本公开的范围包括本文公开的任何特征或特征的组合(明确地或隐含地)或其任何概括,无论其是否减轻了本文所解决的任何或所有问题。因此,可以在本申请(或要求其优先权的申请)的申请过程中针对特征的任何这种组合提出新的权利要求。尤其是,参考所附权利要求,可以将来自从属权利要求的特征与独立权利要求中的特征进行组合,并且可以以任何适当的方式而不是仅以所附权利要求中列举的特定组合来组合来自各个独立权利要求的特征。

Claims (14)

1.一种用于数据库系统将数据库集群中的多个数据库节点中的第一数据库节点隔开的方法,所述数据库集群能够操作以处理针对存储在分布式存储器中的数据的请求,所述分布式存储器在所述多个数据库节点之间共享,所述方法包括:
将标识符存储在所述数据库系统的元数据服务器处,所述标识符指示所述第一数据库节点被允许更新存储在所述元数据服务器处的目录,所述目录标识所述分布式存储器处的分配用于存储数据的部分,其中所述目录能够由其他数据库节点用于定位所述部分,以便更新存储在所述其他数据库节点处的将反映所述数据库系统的当前状态的数据,并且其中所述第一数据库节点被配置为在更新所述目录之前检查所述标识符;
确定所述第一数据库节点正在发生故障;
响应于所述确定,将所述第一数据库节点隔开以防止所述第一数据库节点代表所述数据库集群将数据写入所述分布式存储器,其中将所述第一数据库节点隔开包括:
更新所述元数据服务器处的所述标识符,以指示所述多个数据库节点中的第二数据库节点而非所述第一数据库节点被允许更新所述目录,以标识所述分布式存储器处的分配用于存储数据的额外部分;以及
指示所述分布式存储器防止所述第一数据库节点针对在所述分布式存储器处已经分配的一个或多个部分进行写入操作;以及
使所述第二数据库节点开始代表所述数据库集群将数据写入所述分布式存储器。
2.根据权利要求1所述的方法,其中所述多个数据库节点能够被操作以执行高可用性(HA)应用程序以实现HA数据库集群,其中所述方法由所述HA应用程序执行。
3.根据权利要求2所述的方法,还包括:
所述HA应用程序选择所述第二数据库节点成为活动数据库节点,以将数据写入所述分布式存储器;以及
响应于选择所述第二数据库节点,所述HA应用程序使所述第二数据库节点维护所述标识符的副本,其中所述第二数据库节点能够被操作以在更新所述目录之前比较所述标识符的副本和存储在所述元数据服务器处的所述标识符。
4.根据权利要求1至3中任一项所述的方法,其中所述第一数据库节点能够被操作以:
在所述分布式存储器处分配部分集用于写入数据;
响应于分配所述部分集,尝试更新所述数据库系统的目录,包括检查所述标识符以确定所述标识符是否已被更新;以及
响应于确定所述标识符已被更新,停止在所述分布式存储器处分配部分。
5.根据权利要求1至3中任一项所述的方法,其中所述第一数据库节点能够被操作以:
在所述分布式存储器处分配部分集用于写入数据;
响应于分配所述部分集,尝试更新所述数据库系统的目录,包括检查所述标识符以确定所述标识符是否已被更新;以及
响应于确定所述标识符尚未更新,更新所述目录以标识所分配的部分集。
6.根据权利要求5所述的方法,其中所述多个数据库节点中的第三数据库节点被配置为:
监控所述数据库系统的目录,以确定所述第一数据库节点已分配的部分;以及
响应于所述第一数据库节点更新了所述目录,使用所述目录从所分配的部分集中读取,以更新所述第三数据库节点维护的高速缓存。
7.根据权利要求1至6中任一项所述的方法,其中所述第一数据库节点能够被操作以:
存储在所述元数据服务器处存储的所述标识符的实例;以及
通过比较所存储的所述标识符的实例与在所述元数据服务器处存储的所述标识符,确定所述标识符是否已更新。
8.根据权利要求1至7中任一项所述的方法,其中所述分布式存储器被配置为:
维护用于在所述分布式存储器处分配的部分的多个标志,其中所述多个标志中的各个标志指示所述第一数据库节点是否可以写入给定的部分;以及
响应于被指示防止写入,设置多个标志中与所述一个或多个部分相关联的标志,以指示所述一个或多个部分不能被写入。
9.根据权利要求1至3和6至8中任一项所述的方法,其中所述第一数据库节点能够被操作以:
为了服务于来自客户端设备的请求,在所述分布式存储器处分配一个或更多个部分集用于写入数据;以及
响应于确定所述标识符尚未更新,更新所述目录的数据以提供所述一个或更多个部分集的一个或更多个指示。
10.一种数据库系统,包括:
多个数据库节点,被配置为实现数据库集群;
分布式存储器,能够被所述多个数据库节点访问并且被配置为存储所述数据库系统的数据;以及
元数据服务器,被配置为维护标识符,所述标识符指示允许所述多个数据库节点中的第一数据库节点更新由所述元数据服务器维护的数据库目录,其中所述数据库目录标识所述分布式存储器处的分配用于写入数据的部分,并且其中所述数据库目录能够由所述多个数据库节点中的其他数据库节点用于定位所分配的部分,以便更新存储在所述其他数据库节点处的将反映所述数据库系统的当前状态的数据;
其中所述数据库系统被配置为:
确定所述第一数据库节点将被隔开;以及
响应于所述确定,将所述第一数据库节点隔开以防止所述第一数据库节点代表所述数据库集群将数据写入所述分布式存储器,其中将所述第一数据库节点隔开包括:
在所述元数据服务器处修改所述标识符,以指示允许所述多个数据库节点中的第二数据库节点而非所述第一数据库节点更新所述数据库目录,以标记在所述分布式存储器处分配的额外部分;以及
指示所述分布式存储器防止所述第一数据库节点针对在所述分布式存储器处已经分配给所述第一数据库节点用于写入数据的一个或多个部分的写入操作;以及
使所述第二数据库节点开始代表所述数据库集群将数据写入所述分布式存储器。
11.根据权利要求10所述的数据库系统,其中所述第一数据库节点被配置为:
响应于确定存储在所述第一数据库节点处的所述标识符的实例与所述元数据服务器维护的所述标识符不匹配,终止更新用于指示由所述第一数据库节点分配的部分的所述数据库目录。
12.根据权利要求10所述的数据库系统,其中所述数据库系统被配置为:
使所述第二数据库节点存储修改后的标识符的实例,其中所述实例能够用于确定所述修改后的标识符是否随后已被修改。
13.根据权利要求12所述的数据库系统,其中所述数据库系统被配置为:
在使所述第二数据库节点存储所述实例之前,通过使所述第二数据库节点修改所述标识符来修改所述标识符,其中所述标识符是数字值。
14.一种非暂时性计算机可读介质,其上存储有程序指令,所述程序指令能够由一个或更多个处理器执行以实现根据权利要求1至9中任一项所述的方法。
CN201880050645.2A 2017-08-02 2018-08-02 在分布式集群系统中隔开节点 Active CN110998562B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/667,285 2017-08-02
US15/667,285 US11016990B2 (en) 2017-08-02 2017-08-02 Fencing out nodes in a distributed clustered system
PCT/US2018/044976 WO2019028236A1 (en) 2017-08-02 2018-08-02 EXCLUSION OF NODES IN A DISTRIBUTED CLUSTER SYSTEM

Publications (2)

Publication Number Publication Date
CN110998562A CN110998562A (zh) 2020-04-10
CN110998562B true CN110998562B (zh) 2023-08-29

Family

ID=63407522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880050645.2A Active CN110998562B (zh) 2017-08-02 2018-08-02 在分布式集群系统中隔开节点

Country Status (5)

Country Link
US (1) US11016990B2 (zh)
EP (1) EP3662371A1 (zh)
JP (1) JP7233411B2 (zh)
CN (1) CN110998562B (zh)
WO (1) WO2019028236A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956467B1 (en) * 2016-08-22 2021-03-23 Jpmorgan Chase Bank, N.A. Method and system for implementing a query tool for unstructured data files
US11042479B2 (en) * 2019-01-08 2021-06-22 Oracle International Corporation Fully active and non replicated block storage solution
CN111581500A (zh) * 2020-04-24 2020-08-25 贵州力创科技发展有限公司 一种面向网络舆情的数据分布式定向存储方法和装置
US10983991B1 (en) * 2020-09-29 2021-04-20 Atlassian Pty Ltd. Project management system data storage
US20220129445A1 (en) * 2020-10-28 2022-04-28 Salesforce.Com, Inc. Keyspace references
US20220207168A1 (en) * 2020-12-30 2022-06-30 Capital One Services, Llc Identifying and enabling levels of dataset access
US11622000B2 (en) 2021-01-29 2023-04-04 Salesforce, Inc. Grey failure handling in distributed storage systems
US11741050B2 (en) 2021-01-29 2023-08-29 Salesforce, Inc. Cloud storage class-based variable cache availability
US11509721B2 (en) * 2021-01-31 2022-11-22 Salesforce.Com, Inc. Cookie-based network location of storage nodes in cloud
US11914580B2 (en) * 2021-09-30 2024-02-27 Salesforce, Inc. Mechanisms for deploying database clusters
US11947428B2 (en) 2021-11-23 2024-04-02 Salesforce, Inc. Archive control techniques for database systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0772126A2 (en) * 1995-11-02 1997-05-07 Sun Microsystems, Inc. Method and apparatus for reliable disk fencing in a multicomputer system
US7739677B1 (en) * 2005-05-27 2010-06-15 Symantec Operating Corporation System and method to prevent data corruption due to split brain in shared data clusters
CN105122241A (zh) * 2013-03-15 2015-12-02 亚马逊科技公司 具有数据库引擎和独立分布式存储服务的数据库系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649089A (en) 1994-11-30 1997-07-15 Motorola, Inc. Method and apparatus for maintaining a redundant database system
US6205510B1 (en) 1998-07-29 2001-03-20 International Business Machines Corporation Method for fencing a member of a group of processes in a distributed processing environment
US20040225865A1 (en) 1999-09-03 2004-11-11 Cox Richard D. Integrated database indexing system
US6715050B2 (en) 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
US7734580B2 (en) 2007-01-29 2010-06-08 Oracle International Corporation Readable physical storage replica and standby database system
US8868504B2 (en) 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
US7913050B2 (en) 2007-06-26 2011-03-22 Oracle International Corporation Fencing using a hierarchical relationship
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US9177144B2 (en) * 2008-10-30 2015-11-03 Mcafee, Inc. Structural recognition of malicious code patterns
US8145938B2 (en) 2009-06-01 2012-03-27 Novell, Inc. Fencing management in clusters
US8707082B1 (en) 2009-10-29 2014-04-22 Symantec Corporation Method and system for enhanced granularity in fencing operations
US8381017B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Automated node fencing integrated within a quorum service of a cluster infrastructure
US9146790B1 (en) 2012-11-02 2015-09-29 Symantec Corporation Performing fencing operations in multi-node distributed storage systems
TWI476581B (zh) 2012-12-28 2015-03-11 Ibm 主動式/使用中資訊設備叢集中提供高可用性的方法、裝置與電腦程式產品
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US9471259B2 (en) 2014-01-28 2016-10-18 Netapp, Inc. Shared storage architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0772126A2 (en) * 1995-11-02 1997-05-07 Sun Microsystems, Inc. Method and apparatus for reliable disk fencing in a multicomputer system
US5996075A (en) * 1995-11-02 1999-11-30 Sun Microsystems, Inc. Method and apparatus for reliable disk fencing in a multicomputer system
US7739677B1 (en) * 2005-05-27 2010-06-15 Symantec Operating Corporation System and method to prevent data corruption due to split brain in shared data clusters
CN105122241A (zh) * 2013-03-15 2015-12-02 亚马逊科技公司 具有数据库引擎和独立分布式存储服务的数据库系统

Also Published As

Publication number Publication date
JP2020529668A (ja) 2020-10-08
EP3662371A1 (en) 2020-06-10
US20190045007A1 (en) 2019-02-07
CN110998562A (zh) 2020-04-10
US11016990B2 (en) 2021-05-25
WO2019028236A1 (en) 2019-02-07
JP7233411B2 (ja) 2023-03-06

Similar Documents

Publication Publication Date Title
CN110998562B (zh) 在分布式集群系统中隔开节点
JP7263314B2 (ja) 分散ストアによる高可用性データベース
US10642704B2 (en) Storage controller failover system
US11847329B2 (en) Techniques for implementing fault domain sets
US8271761B2 (en) Storage system and management method thereof
US7702757B2 (en) Method, apparatus and program storage device for providing control to a networked storage architecture
JP2003316522A (ja) 計算機システムおよび計算機システムの制御方法
US8266285B2 (en) Method and program for supporting setting of access management information
US20080192643A1 (en) Method for managing shared resources
US11989455B2 (en) Storage system, path management method, and recording medium
US9971532B2 (en) GUID partition table based hidden data store system
US20240111520A1 (en) Targeted updates of storage management software based on class file usage
US8850132B1 (en) Method and system for providing a shared data resource coordinator within a storage virtualizing data processing system
US7130931B2 (en) Method, system, and article of manufacture for selecting replication volumes
US20240184465A1 (en) Techniques for implementing fault domain sets

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Shuo Power Co.

Address before: California, USA

Applicant before: SALESFORCE.COM, Inc.

GR01 Patent grant
GR01 Patent grant