CN116233146A - 实现跨分布式存储集群的缓存一致性的技术 - Google Patents
实现跨分布式存储集群的缓存一致性的技术 Download PDFInfo
- Publication number
- CN116233146A CN116233146A CN202211587545.8A CN202211587545A CN116233146A CN 116233146 A CN116233146 A CN 116233146A CN 202211587545 A CN202211587545 A CN 202211587545A CN 116233146 A CN116233146 A CN 116233146A
- Authority
- CN
- China
- Prior art keywords
- control plane
- plane node
- nodes
- leader
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
节点集群的控制平面节点集合中的领导者控制平面节点可以接收将数据存储在包括访问管理器节点集合的分布式存储系统中的请求。领导者控制平面节点可以产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储该请求中指示的数据。领导者控制平面节点然后可以向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
Description
相关申请
本申请要求于2021年12月6日递交的题为“TECHNIQUES TO ACHIEVE CACHECOHERENCY ACROSS DISTRIBUTED STORAGECLUSTERS(实现跨分布式存储集群的缓存一致性的技术)”的美国专利申请No.17/543,064的优先权;其全部公开内容通过引用被包括在本文中。
技术领域
本公开总体上涉及服务器系统和数据处理,并且更具体地,涉及实现跨分布式存储集群的缓存一致性的技术。
背景技术
许多用户可以采用云平台(即,用于云计算的计算平台)来使用远程服务器的共享网络来存储、管理和处理数据。用户可以在云平台上开发应用来应对数据的存储、管理和处理。在一些情况下,云平台可以利用多租户数据库系统。用户可以使用各种用户设备(例如,台式计算机、膝上型计算机、智能电话、平板计算机或其他计算系统等)访问云平台。计算机网络允许在互连的计算机之间传输数据。可以改进使用分布式存储集群的数据存储技术。
发明内容
描述了一种用于数据存储的方法。该方法可以包括:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求;由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据;以及由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
描述了一种用于数据存储的装置。该装置可以包括处理器、与处理器耦接的存储器、以及存储在存储器中的指令。该指令可由处理器执行以使该装置:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求;由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据;以及由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
描述了一种用于数据存储的另一装置。该装置可以包括:用于在节点集群的多个控制平面节点中的领导者控制平面节点处接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求的装置;用于由领导者控制平面节点产生缓存数据的装置,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据;以及用于由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中的装置。
描述了一种存储用于数据存储的代码的非暂时性计算机可读介质。该代码可以包括可由处理器执行以进行以下操作的指令:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求;由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据;以及由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于根据指令指示该一个或多个访问管理器节点将数据存储在分布式存储系统中的操作、特征、装置或指令。在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,产生缓存数据可以包括用于在领导者控制平面节点的缓存中创建复制日志条目的操作、特征、装置或指令,该复制日志条目包括用于分布式存储系统的该一个或多个访问管理器节点存储请求中指示的数据的指令。
本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于执行以下操作的操作、特征、装置或指令:从一个或多个访问管理器节点接收确认消息,该确认消息指示在请求中指示的数据可能已经成为该一个或多个访问管理器节点存储的数据;以及更新缓存的复制日志条目以指示:在请求中指示的数据可能已经成为分布式存储系统的该一个或多个访问管理器节点存储的数据。
本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于执行以下操作的操作、特征、装置或指令:向该一个或多个跟随者控制平面节点中的跟随者控制平面节点发送以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。
在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,缓存数据指示:分布式存储系统的由领导者控制平面节点管理的一个或多个访问管理器节点,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储卷,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储池,或者它们的任意组合。在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,在分布式存储系统中存储数据的请求包括写入请求。
描述了一种用于数据存储的方法。该方法可以包括:在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令;在跟随者控制平面节点处,接收以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点;由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,该指令指示由领导者控制平面节点管理的该一个或多个访问管理器节点存储请求中指示的数据;以及指示分布式存储系统的该一个或多个访问管理器节点根据从缓存中取回的指令存储数据。
描述了一种用于数据存储的装置。该装置可以包括处理器、与处理器耦接的存储器、以及存储在存储器中的指令。该指令可由处理器执行以使得该装置:在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令;在跟随者控制平面节点处,接收以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点;由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,该指令指示由领导者控制平面节点管理的该一个或多个访问管理器节点存储请求中指示的数据;以及指示分布式存储系统的该一个或多个访问管理器节点根据从缓存中取回的指令存储数据。
描述了一种用于数据存储的另一装置。该装置可以包括:用于在节点集群的多个控制平面节点中的跟随者控制平面节点处从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令的装置;用于在跟随者控制平面节点处接收至少部分地基于领导者控制平面节点的故障来选择跟随者控制平面节点作为新的领导者控制平面节点的指示的装置;用于由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令的装置,该指令指示由领导者控制平面节点管理的该一个或多个访问管理器节点存储请求中指示的数据;以及用于指示分布式存储系统的一个或多个访问管理器节点根据从缓存中取回的指令存储数据的装置。
描述了一种存储用于数据存储的代码的非暂时性计算机可读介质。该代码可以包括可由处理器执行以进行以下操作的指令:在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令;在跟随者控制平面节点处,接收以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点;由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,该指令指示由领导者控制平面节点管理的该一个或多个访问管理器节点存储请求中指示的数据;以及指示分布式存储系统的该一个或多个访问管理器节点根据从缓存中取回的指令存储数据。
本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于执行以下操作的操作、特征、装置或指令:处理缓存以识别复制日志条目,该复制日志条目包括用于经由分布式存储系统的该一个或多个访问管理器节点来存储请求中指示的数据的指令;以及指示分布式存储系统的该一个或多个访问管理器节点至少部分地基于复制日志条目来存储请求中指示的数据。
本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于执行以下操作的操作、特征、装置或指令:从该一个或多个访问管理器节点接收确认消息,该确认消息指示在请求中指示的数据已经成为该一个或多个访问管理器节点存储的数据。
本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于执行以下操作的操作、特征、装置或指令:在新的领导者控制平面节点处,接收将数据存储在该一个或多个访问管理器节点中的第二请求;由新的领导者控制平面节点产生第二缓存数据,第二缓存数据标识从新的领导者控制平面节点到该一个或多个访问管理器节点的第二指令,该第二指令指示该一个或多个访问管理器节点存储第二请求中指示的数据;以及由新的领导者控制平面节点向新的领导者控制平面节点的一个或多个跟随者控制平面节点发送第二复制指令,以将第二缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于指示该一个或多个访问管理器节点根据第二指令将数据存储在分布式存储系统中的操作、特征、装置或指令。
在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,缓存数据指示:分布式存储系统的由领导者控制平面节点管理的一个或多个访问管理器节点,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储卷,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储池,或者它们的任意组合。在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,新的领导者控制平面节点的第二缓存被配置为在定义的时间量内实现集群故障转移。
附图说明
图1示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的数据存储系统的示例。
图2示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的存储架构的示例。
图3示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的恢复架构的示例。
图4示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的分布式共识协议的示例。
图5示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的处理流程的示例。
图6示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的装置的框图。
图7示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的缓存复制组件的框图。
图8示出了包括根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的设备的系统的图。
图9至图12示出了示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的方法的流程图。
具体实施方式
在线市场的平台可以使用分布式存储架构来存储随着数据量增加而扩展的数据。该存储架构的设计目标是提供高吞吐量和低时延的存储访问。在一些示例中,可以使用包括控制平面节点集合的神经元集群来实现存储架构,这些控制平面节点存储和复制数据以便跨不同地理位置处的数据中心进行存储。该控制平面节点集合可以与数据平面节点集合进行协调,数据平面节点在本文中被称为访问管理器存储节点。访问管理器节点可以用于将数据存储在由相应的访问管理器存储节点控制的底层硬盘中。即使控制平面节点之一发生故障,神经元集群也可以被设计为继续运行。神经元集群可以使用分布式共识协议来选择领导者控制平面节点。在选出领导者控制平面节点的情况下,该集群的其他控制平面节点被称为跟随者控制平面节点。
在一些示例中,领导者控制平面节点可以管理存储节点的子集。附加地或备选地,领导者控制平面节点可以指示其存储节点在底层存储盘上执行数据放置,并且可以与其存储节点进行协调以取回数据。领导者控制平面节点可以与其访问管理器存储节点子集进行协调以在第一数据中心处存储数据,并且可以与跟随者控制平面节点进行协调以复制数据来供访问管理器节点的第二子集在第二数据中心处存储数据。如果存在控制平面节点的故障,则神经元集群可以选择一个跟随者控制平面节点来承担领导角色。在一些数据存储系统中,当领导发生故障时,集群管理器可以读取本地数据库,并重构发生故障的领导者控制平面节点的至少一些或所有集群状态。集群管理器可以向存储节点发送领导者改变请求,该领导者改变请求指示领导者已经从旧的领导者改变为新的控制平面节点。此外,集群管理器可以向存储节点提供与新的领导者相关联的信息。存储节点可以使用该信息以与新的领导者进行未来的通信。然而,该重新配置可能花费很长时间(例如,几分钟),并且在该时间期间,存储节点可能无法与神经元集群进行通信,从而产生时延。
本公开的一个或多个方面可以提供跨多个控制平面节点的缓存(cache)数据复制。缓存数据可以包括传入数据与存储该数据的访问管理器节点之间的映射。在一些示例中,神经元集群可以包括多个控制平面节点(被称为“神经元节点”),其中,一个控制平面节点可以是领导者控制平面节点,并且其余控制平面节点可以是跟随者控制平面节点。领导者控制平面节点可以接收在分布式存储系统中存储数据的请求。在接收到该请求时,领导者控制平面节点可以产生缓存数据并将该缓存数据存储在其缓存中,该缓存数据标识用于分布式存储系统的一个或多个访问管理器存储节点在第一数据中心处存储或取回在请求中指示的数据的指令。例如,存储在缓存中的缓存数据可以是日志条目的集合,这些日志条目指示由领导者控制平面节点及其访问管理器存储节点执行的一个或多个操作的集合,并且可以指示特定操作是否已经完成。领导者控制平面节点也可以复制请求,以使跟随者节点在第二数据中心处对其分布式存储系统的访问管理器存储节点执行相同的操作,使得数据被复制并存储在不同的数据中心处。
根据一些方面,领导者控制平面节点可以将其用于存储的缓存数据复制到一个或多个跟随者控制平面节点的缓存中。通过在每个跟随者控制平面节点的每个缓存中复制访问指令,减少或消除了当领导者在实施领导改变之前发生故障时由集群管理器重构至少一种或所有集群状态的需要,并且因此减少或消除了对应的时延。如本文所述,每个跟随者控制平面节点可以包括领导者控制平面节点的缓存的副本(例如,缓存可以是跨集群的节点一致的)。在一些示例中,新的领导者节点因此可以使用其缓存从旧领导者节点停止的地方继续,从而导致减小的时延。因此,在每个跟随者节点处复制领导者缓存所导致的故障转移响应时间在领导改变期间(例如,在当前领导者节点发生故障时)提供减少的时延。因此,维持领导者控制平面节点与跟随者控制平面节点之间的缓存一致性可以在领导者节点发生故障时导致更快的领导者切换,从而使分布式存储系统能够继续存储复制操作的名义中断。
本公开的各方面最初是在支持按需数据库服务的环境的上下文中描述的。本公开的各方面在存储架构、恢复架构、分布式共识协议和处理流程的上下文中进一步进行了描述。本公开的各方面参考与实现跨分布式存储集群的缓存一致性的技术相关的装置图、系统图和流程图进一步进行了示出和描述。
图1示出了根据本公开的各个方面的支持实现跨分布式存储集群的缓存一致性的技术的用于云计算的系统100的示例。系统100包括云客户端105、用户设备110、云平台115和数据中心120。云平台115可以是公共或私有云网络的示例。云客户端105可以通过网络连接135访问云平台115。网络可以实现传输控制协议和互联网协议(TCP/IP),例如因特网,或者可以实现其他网络协议。云客户端105可以是计算设备的示例,例如服务器(例如,云客户端105-a)、智能电话(例如,云客户端105-b)或膝上型计算机(例如,云客户端105-c)。在其他示例中,云客户端105可以是台式计算机、平板计算机、传感器、或能够产生、分析、发送或接收通信的另一计算设备或系统。在一些示例中,云客户端105可以是商业、企业、非营利组织、初创公司或另一组织类型的一部分。
云客户端105可以促进数据中心120与一个或多个用户设备110之间的通信以实现在线市场。网络连接130可以包括云客户端105与用户设备110之间的通信、机会、购买、销售或其他交互。云客户端105可以访问云平台115以存储、管理和处理经由一个或多个网络连接130传送的数据。在一些情况下,云客户端105可以具有相关联的安全或许可级别。基于相关联的安全或许可级别,云客户端105可以访问云平台115内的某些应用、数据和数据库信息,并且可能无法访问其他应用、数据和数据库信息。
用户设备110可以通过网络连接130与云客户端105进行交互。网络可以实现传输控制协议和互联网协议(TCP/IP),例如因特网,或者可以实现其他网络协议。网络连接130可以经由电子邮件、网页、文本消息、邮件或经由计算机网络的其他适当形式的电子交互(例如,网络连接130-a、130-b、130-c和130-d)促进数据传输。在示例中,用户设备110可以是诸如智能电话110-a、膝上型计算机110-b的计算设备,并且也可以是服务器110-c或传感器110-d。在其他情况下,用户设备110可以是另一计算系统。在一些情况下,用户设备110可以由用户或用户组来操作。用户或用户组可以是与企业、制造商或其他适当的组织相关联的客户。
云平台115可以向云客户端105提供按需数据库服务。在一些情况下,云平台115可以是多租户数据库系统的示例。在这种情况下,云平台115可以用单个软件实例来服务多个云客户端105。然而,可以实现其他类型的系统,包括但不限于客户端-服务器系统、移动设备系统和移动网络系统。在一些情况下,云平台115可以支持在线应用。这可以包括对以下的支持:操作用户设备110的买家和卖家之间的销售、服务、买家发布的产品的营销、买家和卖家之间的社区交互、分析(例如,用户交互度量)、应用(例如,计算机视觉和机器学习)以及物联网。云平台115可以通过网络连接135从云客户端105接收与在线市场的产生相关联的数据,并且可以存储并分析该数据。在一些情况下,云平台115可以直接从用户设备110和云客户端105接收数据。在一些情况下,云客户端105可以开发应用以在云平台115上运行。云平台115可以使用远程服务器来实现。在一些情况下,远程服务器可以位于一个或多个数据中心120处。
数据中心120可以包括多个服务器。该多个服务器可以用于数据存储、管理和处理。数据中心120可以经由连接140从云平台115接收数据,或者直接从云客户端105或者经由用户设备110和云客户端105之间的网络连接130来接收数据。出于安全目的,数据中心120可以利用多个冗余。在一些情况下,存储在数据中心120处的数据可以由不同数据中心(未示出)处的数据副本来备份。
服务器系统125可以包括云客户端105、云平台115、缓存复制组件145、以及数据中心120,该数据中心120可以与云平台115和数据中心120进行协调以实现在线市场。在一些情况下,数据处理可以发生在服务器系统125的一个或多个组件处,或者发生在这些组件的结合处。在一些情况下,服务器可以执行数据处理。服务器可以是云客户端105或位于数据中心120处。
缓存复制组件145可以经由连接155与云平台115进行通信,并且可以也通过连接150与数据中心120进行通信。缓存复制组件145可以经由云客户端105以及经由云平台115或数据中心120从用户设备110接收信号和输入。
一些电子商务系统可以提供其中列出了数百万卖家的数十亿种产品的市场。新的数据创建量可不断增长,并且每天都会创建大量的新数据。这种数据可能包括产品列表信息、媒体文件、由生产中的服务产生的各种日志、机器学习、和分析工作负荷、和/或监控这些交易的其他辅助源。在一些情况下,一些数据可以是短暂的,而其他数据可以长期存在以满足法规遵从性。这种不同用例可以与底层存储在时延和吞吐量方面的不同服务级别目标相关联。在一些方面,一些存储系统可以提供块存储访问。
一些常规数据存储解决方案可以提供包括多个存储节点的数据存储架构。数据存储架构可以由包括控制平面节点集合的神经元集群来实现。该控制平面板节点集合可以将数据存储在一个或多个访问管理器存储节点中。如本文所描述的节点可以通过硬件、软件或两者的组合来实现。此外,神经元集群可以选择控制平面节点之一作为领导者控制平面节点,而其余的控制平面节点被指定为跟随者控制平面节点。在一些示例中,领导者控制平面节点可以与其访问管理器存储节点子集进行协调以在第一数据中心处存储数据,并且可以与跟随者控制平面节点进行协调以复制数据来供访问管理器节点的第二子集在第二数据中心处存储数据。然而,如果领导者控制平面节点发生故障,则无缝地继续数据存储操作可能具有挑战性。即,在领导者控制平面节点发生故障时,神经元集群选择一个新的控制平面节点作为新的领导者。在这种情况下,新选出的控制平面节点可能不知道先前领导者控制平面节点的缓存。因此,当领导者从旧领导者改变为新领导者时,重新配置可能花费很长时间,从而产生时延。
相反,系统100实施用于实现跨分布式存储集群的缓存一致性的过程和技术。具体地,服务器系统125可以实现与本文所述的操作类似的操作。如本文所述,服务器系统125的包括缓存复制组件145在内的一个或多个组件可以操作以执行跨多个存储节点的缓存复制。在节点集群的控制平面节点集合中的领导者控制平面节点处,服务器系统125内的缓存复制组件145可以接收将数据存储在包括访问管理器节点集合的分布式存储系统中的请求。服务器系统125内的缓存复制组件145可以由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到访问管理器节点集合中由领导者控制平面节点管理的一个或多个访问管理器节点的指令。在一些示例中,该指令可以指示该一个或多个访问管理器节点存储请求中指示的数据。服务器系统125和缓存复制组件145可以通过领导者控制平面节点向控制平面节点集合中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。缓存数据可以包括传入数据与存储该数据的访问管理器节点之间的映射。具体地,缓存数据可以包括用于访问管理器节点存储数据的指令。该指令可以是复制日志条目的形式。为了高可用性和容错,集群管理器(由缓存复制组件145实现)可以请求将存储节点状态机转换复制到跟随者节点。领导者节点可以串行化复制日志条目并将复制日志条目存储到领导者节点的缓存中。领导者节点然后可以将复制日志条目发送到一个或多个跟随者节点,在该一个或多个跟随者节点中,日志条目被解串行化并应用于本地键值(key-value)存储。
在一些示例中,缓存数据可以指示分布式存储系统的由领导者节点管理的一个或多个访问管理器节点。例如,缓存数据可以包括对领导者节点用于存储数据的一个或多个访问管理器节点的指示。附加地或备选地,缓存数据可以标识分布式存储系统的由领导者节点管理的一个或多个存储卷、分布式存储系统的由领导者节点管理的一个或多个存储池、或它们的任意组合。存储池可以包括一个或多个存储节点(和/或访问管理器节点)。在一些示例中,存储池可以是来自不同故障域的存储的聚合。故障域可以表示公共架顶式交换机(common top of a rack switch)下的聚合存储资源。附加地或备选地,存储池可以用于存储来自不同租户的数据。例如,存储池可以通过其名称和关联的租户标识符的组合来唯一地标识。
在一些示例中,服务器系统125和缓存复制组件145可以在节点集群的控制平面节点集合中的跟随者控制平面节点处从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令。服务器系统125和缓存复制组件145可以在跟随者控制平面节点处接收以下指示:该跟随者控制平面节点被基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。服务器系统125和缓存复制组件145可以通过新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令。在一些情况下,该指令可以指示由领导者控制平面节点管理的该一个或多个访问管理器节点存储请求中指示的数据。服务器系统125和缓存复制组件145然后可以指示分布式存储系统的一个或多个访问管理器节点根据从缓存中取回的指令来存储数据。
作为一个示例,控制平面节点的可用性降低可以通过在每个节点内创建若干个本地缓存(每个状态机(例如,存储节点、存储卷和存储池)一个本地缓存)来增加故障转移响应时间,该本地缓存在领导者节点发生状态机转换时从领导者节点更新到跟随者节点。本公开的各方面可以使用复制技术并且可以调度后台线程以使各种缓存跨控制平面节点一致。在领导者改变操作期间,控制平面节点与存储节点之间的这种缓存一致性可以有效地切换几个比特,以使集群管理器能够开始接受传入数据和度量业务(metrics traffic)。通过这种改变,系统100可以在领导者故障转移之后几乎立即重新激活集群管理操作。例如,当领导者控制平面节点发生故障,并且另一控制平面节点成为领导者时,则该新领导者节点上的缓存帮助集群管理器在定义的时间量内实现故障转移(例如,即时集群故障转移或在短时间内的集群故障转移)。
本领域技术人员应当理解,本公开的一个或多个方面可以在系统100中实现以附加地或替代地解决除了上述问题之外的其他问题。此外,本公开的各方面可以提供对如本文所述的“常规”系统或过程的技术改进。然而,说明书和附图仅包括实现本公开的各方面所产生的示例性技术改进,因此并不表示在权利要求的范围内提供的所有技术改进。
图2示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的存储架构200的示例。在图2的示例中,存储架构200是使用神经元集群205来实现的。神经元集群205包括服务器集合(例如,一个或多个服务器,并且在一些情况下可以包括五个或七个服务器)。这种服务器可以被称为副本。每个服务器可以包括存储节点、缓存、数据库、或它们的任意组合。神经元集群205可以提供一种存储架构,其中一个或多个副本即使在至少一个副本出现故障的情况下也可以继续进行群体操作。如果副本出现故障,存储架构可以提供自动产生替换副本。替换副本然后可以(作为跟随者控制平面节点)被添加到神经元集群205。
在一些方面,神经元集群205可以使用分布式共识协议来选择领导者控制平面节点,并且该集群的其他控制平面节点被称为跟随者控制平面节点。在神经元集群205的引导期间,工作流引擎(引导程序服务210)可以创建副本,并且每个副本可以包括作为领导者控制平面节点进行引导的能力。在一些示例中,工作流引擎可以随机地选择副本之一,并将其指定为神经元集群的领导者。工作流引擎可以将其余副本添加到领导者控制平面节点来作为跟随者控制平面节点。在图2的示例中,神经元集群205可以包括节点1、节点2和节点3(尽管可以设想任何数量的节点)。工作流引擎可以选择节点1作为领导者控制平面节点并且节点2和节点3作为跟随者控制平面节点。一旦形成神经元集群205,存储架构200就可以实施用于管理集群操作的协议。存储架构200可以提供日志条目的复制以在领导者节点发生变化的情况下实现更快的故障转移。每个节点可以具有本地键值存储(数据库1、数据库2和数据库3),其中,状态机被持久化。在一些示例中,领导者控制平面节点可以发起状态机复制,并且后续读取操作和写入操作可以从领导者节点流向跟随者节点。
如图2所示的神经元架构(例如,神经元复制的控制平面服务)可以包括五个组件:集群管理器、提供器、存储池管理器、API服务器和筏式(raft)管理器。集群管理器可以配置存储节点的集群成员管理。提供器可以管理存储卷相关操作,并且可以执行智能数据放置。存储池管理器可以基于租户对存储节点进行分类。API服务器可以提供外部API接口。筏式管理器可以实现用于领导选择的共识协议,可以通过集群元数据的状态机复制来提供容错,以及可以管理跨所有副本的一致缓存。
如图2的示例所描述的,神经元集群205由引导程序服务210(也被称为工作流引擎)来促进。引导程序服务210可以发起控制平面节点形成神经元集群205。引导程序服务210然后可以发起一个或多个存储节点(也被称为访问管理器节点)。控制平面节点集合(节点1、节点2和节点3)可以与集合数据平面节点(在本文中被称为访问管理器节点)集合进行协调,用于将数据存储在由相应访问管理器节点控制的底层硬盘中。如图2的示例所描述的,引导程序服务210发起存储池1中的访问管理器节点(访问管理器1至N)。引导程序服务210还可以发起多个存储池(存储池1至N)。在一些示例中,与每个访问管理器相关联的存储节点可以向在领导者控制平面节点上运行的集群管理器注册。在领导者控制平面节点是节点1的示例中,存储节点向节点1注册。驻留在节点1上的集群管理器可以向这些节点中的每一个指派唯一的标识符,并且可以授予它们一个租约,存储节点在一段时间内(例如,每隔几秒)更新该租约。存储管理器节点或访问管理器节点可以包括三个主要组件:存储引擎(也被称为Homestore)、控制平面组件和存储目标。存储引擎可以是使用可扩展的b+树构建的高性能引擎。控制平面组件可以具有运行以自动创建存储卷的服务器,该存储卷包括位于若干个不同存储节点上的副本和分区。在一些示例中,可以使用完全异步线程模型来构建存储引擎。存储引擎可以在用户空间中运行,并且可以被配置为绕过内核,并使用基于流的分配(其中存储引擎使用不同类型的块分配方案来平衡分配、写放大和碎片化的速度)。
根据本公开中描述的方面,领导者控制平面节点(节点1)可以接收将数据存储在包括访问管理器节点集合(访问管理器1、访问管理器2和访问管理器3)的分布式存储系统中的请求。例如,领导者控制平面节点可以从一个或多个计算节点(计算节点1至M)接收请求存储数据的请求。领导者控制平面节点(节点1)可以产生缓存数据,该缓存数据标识从领导者控制平面节点到访问管理器节点集合中由领导者控制平面节点管理的一个或多个访问管理器节点的指令。节点1可以产生包括该指令的缓存数据,并且可以将缓存数据存储在缓存1中。如本文所述的缓存可指能够存储指令、数据、信息等的存储器或其他计算机存储设备。在一些示例中,该指令可以指示该一个或多个访问管理器节点存储请求中指示的数据。例如,节点1可以接收存储数据部分P1、P2和P3的请求。这些指令可以指示:访问管理器1存储数据部分P1,访问管理器2存储数据部分P2,以及访问管理器3存储数据部分P3。领导者控制平面节点(节点1)然后可以向一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。在图2的示例中,节点1可以指示节点2和节点3将节点1的缓存数据复制到节点2和节点3的相应缓存中。在接收到复制指示时,节点2的缓存2和节点3的缓存3可以包括指示访问管理器节点(访问管理器1、访问管理器2和访问管理器3)存储在到节点1的请求中指示的数据的指令。通过跨多个缓存来复制指令,本文描述的技术提供了维持跨集合控制平面节点的缓存一致性以在领导者节点发生故障时快速建立新的领导者节点,从而产生减少的时延。
如本文所描述的,存储架构200可以表示存储服务的中央储存库。存储架构200可以维护存储集群元数据并且可以跨多个节点复制元数据。副本的数量可以取决于每个部署环境中所期望的容错量。
图3示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的恢复架构300的示例。恢复架构300可以使用神经元集群305和状态机310来实现。状态机310可以包括本地数据库315和内存缓存320。如参考图1和图2所述,神经元集群305维护包括控制平面节点集合的分布式存储系统。神经元集群305可以指定一个控制平面节点作为领导者控制平面节点并且其他控制平面节点作为跟随者控制平面节点。例如,在引导期间,管理员可以选择领导者并将跟随者添加到现有领导者。跟随者控制平面节点可以各自维护领导者控制平面节点的缓存数据的副本。如果领导者发生变化,则新的领导者可以向一个或多个注册的存储节点广播指示变化的信息,使得后续请求可以发送给新的领导者。在一些示例中,本文描述的技术可以使用状态机复制技术来维持不同控制平面节点之间的一致性。日志中的每个提交的操作可以被视为对状态机的动作。
对于恢复架构300,在325处,恢复过程可以读取本地数据库315。在330处,恢复过程可以将内容写入内存缓存320。在335处,恢复过程可以检查来自神经元集群的增量日志条目305。基于对增量日志条目的检查,在340处,恢复过程可以从最近的本地快照点捕获增量日志。在345处,恢复过程可以将一个或多个丢失的提交日志条目应用于状态机310。因此,恢复架构300可以使用替换策略来管理内存缓存320,以将访问管理器节点以及与每个日志条目相关联的存储卷相关信息(例如,元数据)两者存储到例如新选出的领导者以完成一个或多个未完成任务,该未完成任务对应于先前领导者由于例如先前领导者的故障而未完成的日志条目。对于向状态机310的成功提交,除了本地数据库315之外,更新还反映在内存缓存320中。
在一些示例中,元数据大小可以足够小,以在没有替换策略的情况下将元数据保留在内存中。如果一个或多个控制平面节点在神经元集群305中被重新启动,它可以首先读取本地数据库315处的表(在325处),然后可以将元数据信息加载到内存缓存320中。然后神经元集群305可以参与通信(例如,API、共识等)。之后,神经元集群305可以实施协议以与其他副本一起检查提交序列号。神经元集群305然后可以通过将未提交的日志条目应用于状态机310(即,本地数据库315和内存缓存320两者)来与一个或多个其他副本进行同步。
图4示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的分布式共识协议400的示例。根据分布式共识协议400,神经元集群可以选择一个控制平面节点作为领导者节点并且可以选择一个或多个控制平面节点(不同于领导者节点)作为跟随者控制平面节点。分布式共识协议400可以采用这样的策略,即一次存在一个领导者。领导者节点可以接受传入的写入请求,然后可以将写入请求复制到跟随者节点。传入的写入请求可以对应于存储在单独日志部分中的单个日志条目。日志条目可以按照单调递增顺序与唯一索引号(例如,日志号)相关联。
如图4的示例所描述的,神经元集群可以选择领导者节点405、第一跟随者节点410和第二跟随者节点415。领导者节点405可以接收写入请求。一旦领导者节点接收到写入请求,在420处,领导者节点405可以将日志条目附加到它的日志部分。例如,领导者节点405可以附加日志5。在425处,领导者节点405可以将请求复制到跟随者节点(例如,第一跟随者节点410和第二跟随者节点415)。每个跟随者节点可以从领导者节点405接收复制请求。在图4的示例中,第一跟随者节点410和第二跟随者节点415可以接收日志条目(日志5)。在430处,每个跟随者节点可以将日志附加到它的日志部分。例如,第一跟随者节点410和第二跟随者节点415可以附加日志5并提交日志4。在435处,跟随者节点可以将响应(例如,应答)返回给领导者节点405。分布式共识协议400可以使用这样的写入策略,即:一旦领导者节点405从包括它自己在内的大多数跟随者节点获得响应,领导者节点405就提交日志条目并且将日志条目应用于状态机。在440处,领导者节点405可以提交日志6。
在提交之后,领导者节点405可以将所提交的日志号复制到跟随者节点,并且跟随者节点然后可以提交对应于给定日志号的日志并将其应用于它们的状态机。在一些示例中,日志复制请求可以包括先前日志复制的提交日志号,使得它们总是流水线化的。领导者节点405可以周期性地向跟随者节点(例如,跟随者节点410和跟随者节点415)发送一个或多个更新。在一些示例中,每个跟随者节点可以维护随机计时器,随机计时器的下限可以大于更新间隔。当跟随者节点接收到更新时,跟随者节点可以用新的随机到期时间来重置其计时器。如果由于在阈值时间段内没有更新而导致计时器过期,则跟随者节点可以确定领导者节点已经发生故障并且可以向所有其他跟随者节点请求对选择下一个领导者进行投票。一旦大多数节点投票给发起选择的节点,该节点就成为领导者并开始为写入请求提供服务。在一些示例中,发起选择的节点可以基于阈值数量的节点投票给该节点而成为领导者。在其他示例中,节点可以基于以下条件而成为所选择的领导者:该节点具有足够或最大的处理带宽,该节点具有足够的处理能力来执行领导者操作,该节点能够满足在执行领导者操作时的至少一个时延标准等。
在一些示例中,冲突可能在领导者节点不存在或网络断开连接期间发生。为了解决冲突,本文描述的技术可以提供被称为任期(term)的计数器,该任期在发起新的领导者选择时被增加。在一些示例中,跟随者节点被配置为具有与当前领导者的任期值相同的任期值。(来自领导者节点的)每个复制请求或更新可以包括当前领导者节点的任期值。附加地或备选地,每个日志条目可以保留当产生日志条目时的时间的任期值。如果当前领导者从跟随者节点接收到具有较高任期值的消息,则具有较高任期值的消息可以意味着新的领导者已经被大多数节点选出。在这种情况下,领导者节点可以立即放弃领导角色并可以成为跟随者。当领导者节点成功将新日志条目附加到其日志部分,但由于诸如服务器崩溃或网络隔离之类的各种原因未能将新日志条目复制到跟随者时,可能发生冲突。在这种情况下,选出新的领导者,并且新的领导可以为新的日志提供服务。如果先前领导者从故障中恢复过来,并且作为跟随者重新加入,则先前领导者和当前领导者可以看到日志号相同的不同日志条目。在这种情况下,先前领导者可以找到其任期与当前领导者中的对应日志条目的任期相同的最近的日志条目。然后,先前领导者可以从该点开始使用当前领导者的日志条目发起覆写日志条目。
图5示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的处理流程500的示例。处理流程500可以包括用户设备505和服务器系统510。服务器系统510可以是参考图1描述的服务器系统125的示例。用户设备505可以是参考图1描述的用户设备110的示例。服务器系统510可以从用户设备505接收用于存储的数据。服务器510可以包括领导者控制平面节点(节点1)、跟随者控制平面节点(节点2)和访问管理器节点。尽管示出了单个跟随者节点,但应当理解,处理流程500可以支持多个跟随者节点。附加地或备选地,尽管示出了单个访问管理器节点,但应当理解,处理流程500可以支持多个访问管理器节点。
服务器可以表示如本文所述的计算组件、数据存储组件等的集合。在一些示例中,处理流程500中所示的操作可以由硬件(例如,包括电路、处理块、逻辑组件和其他组件)、由处理器执行的代码(例如,软件或固件)或它们的任意组合来执行。可以实施下文中的备选示例,在这些备选示例中,一些步骤以与描述的顺序不同的顺序执行或根本不执行。在一些情况下,步骤可能包括以下未提及的附加特征,或者可以添加其他步骤。
在515处,领导者控制平面节点(节点1)可以接收将数据存储在包括访问管理器节点集合的分布式存储系统中的请求。如本文所述,领导者控制平面节点可以管理一个或多个访问管理器节点。在520处,领导者控制平面节点可以产生缓存数据,该缓存数据标识从领导者控制平面节点到由领导者控制平面节点管理的一个或多个访问管理器节点的指令。在一些示例中,该指令可以指示该一个或多个访问管理器节点存储请求中指示的数据。在一些示例中,领导者控制平面节点可以在领导者控制平面节点的缓存中创建复制日志条目,该复制日志条目包括用于分布式存储系统的该一个或多个访问管理器节点存储请求中指示的数据的指令。
在525处,领导者控制平面节点可以向访问管理器节点发送该指令。领导者控制平面节点可以指示该一个或多个访问管理器节点根据该指令将数据存储在分布式存储系统中。在530处,领导者控制平面节点可以从该一个或多个访问管理器节点接收确认消息,该确认消息指示:在请求中指示的数据已经成为该一个或多个访问管理器节点存储的数据。在一些示例中,领导者控制平面节点可以更新缓存的复制日志条目以指示在请求中指示的数据已经成为分布式存储系统的该一个或多个访问管理器节点存储的数据,或者以其他方式指示访问管理器已经完成所请求的指令。
在535处,领导者控制平面节点可以向一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。跟随者控制平面节点(节点2)可以从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令。在540处,跟随者控制平面节点可以复制缓存数据。
在545处,跟随者控制平面节点可以接收以下指示:该跟随者控制平面节点被基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。在一些情况下,如果例如先前的领导者控制平面节点发生故障,则跟随者控制平面节点可以从神经元集群中的其他地方接收选择指示。在550处,跟随者控制平面节点可以处理其复制的缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令。在一些示例中,该指令可以指示由领导者控制平面节点管理的该一个或多个访问管理器节点存储请求中指示的数据。在一些示例中,跟随者控制平面节点可以识别与先前领导者节点相关联的复制日志条目。跟随者控制平面节点可以从与先前领导者节点相关联的复制日志条目中识别出(例如,由于先前领导者节点的故障而导致的)不完整的日志条目。例如,跟随者控制平面节点可以识别出至少一个指令尚未被访问管理器节点执行。在555处,跟随者控制平面节点可以指示分布式存储系统的一个或多个访问管理器节点根据从缓存中取回的指令来存储数据。例如,跟随者控制平面节点可以指示访问管理器节点完成在先前的领导者节点处未完成的任务。
图6示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的设备605的框图600。设备605可以包括输入模块610、输出模块615和缓存复制组件620。设备605还可以包括处理器。这些组件中的每一个可以彼此通信(例如,经由一条或多条总线)。
输入模块610可以管理设备605的输入信号。例如,输入模块610可以基于与调制解调器、键盘、鼠标、触摸屏或类似设备的交互来识别输入信号。这些输入信号可以与其他组件或设备处的用户输入或处理相关联。在一些情况下,输入模块610可以利用诸如 或其他已知操作系统之类的操作系统来处理输入信号。输入模块610可以向设备605的其他组件发送这些输入信号的各方面以供处理。例如,输入模块610可以向缓存复制组件620发送输入信号以支持实现跨分布式存储集群的缓存一致性的技术。在一些情况下,输入模块610可以是如参考图8所描述的I/O控制器810的组件。
输出模块615可以管理设备605的输出信号。例如,输出模块615可以从设备605的其他组件(例如,缓存复制组件620)接收信号,并且可以向其他组件或设备发送这些信号。在一些示例中,输出模块615可以发送用于在用户界面中显示、用于存储在数据库或数据存储中、用于在服务器或服务器集群处进一步处理、或用于在任何数量的设备或系统处进行任何其他处理的输出信号。在一些情况下,输出模块615可以是如参考图8所描述的I/O控制器810的组件。
例如,缓存复制组件620可以包括请求组件625、指令组件630、复制指令组件635、领导者选择组件640、或它们的任意组合。在一些示例中,缓存复制组件620或其各种组件可以被配置为使用输入模块610、输出模块615或两者或以其他方式与输入模块610、输出模块615或两者进行协作来执行各种操作(例如,接收、监视、发送)。例如,缓存复制组件620可以从输入模块610接收信息,向输出模块615发送信息,或者与输入模块610、输出模块615或两者结合以接收信息、发送信息、或执行本文描述的各种其他操作。
缓存复制组件620可以根据如本文所公开的示例支持数据存储。请求组件625可以被配置为或以其他方式支持用于以下操作的装置:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求。指令组件630可以被配置为或以其他方式支持用于以下操作的装置:由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据。复制指令组件635可以被配置为或以其他方式支持用于以下操作的装置:由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
附加地或备选地,缓存复制组件620可以根据本文所公开的示例支持数据存储。复制指令组件635可以被配置为或以其他方式支持用于以下操作的装置:在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令。领导者选择组件640可以被配置为或以其他方式支持用于以下操作的装置:在跟随者控制平面节点处,接收以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。指令组件630可以被配置为或以其他方式支持用于以下操作的装置:由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,该指令指示由领导者控制平面节点管理的一个或多个访问管理器节点存储请求中指示的数据。指令组件630可以被配置为或以其他方式支持用于指示分布式存储系统的该一个或多个访问管理器节点根据从缓存取回的指令来存储数据的装置。
图7示出了根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的缓存复制组件720的框图700。缓存复制组件720可以是缓存复制组件的各方面的示例或缓存复制组件620,或其两者,如本文所述。缓存复制组件720或其各种组件可以是用于执行实现跨分布式存储集群的缓存一致性的技术的各个方面的装置的示例,如本文所述。例如,缓存复制组件720可以包括请求组件725、指令组件730、复制指令组件735、领导者选择组件740、日志条目组件745、故障组件750、确认组件755、或任何它们的任意组合。这些组件中的每一个可以直接或间接地彼此通信(例如,经由一条或多条总线)。
缓存复制组件720可以根据如本文所公开的示例支持数据存储。请求组件725可以被配置为或以其他方式支持用于以下操作的装置:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求。指令组件730可以被配置为或以其他方式支持用于以下操作的装置:由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据。复制指令组件735可以被配置为或以其他方式支持用于以下操作的装置:由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
在一些示例中,指令组件730可以被配置为或以其他方式支持用于指示该一个或多个访问管理器节点根据指令将数据存储在分布式存储系统中的装置。在一些示例中,为了支持产生缓存数据,日志条目组件745可以被配置为或以其他方式支持用于以下操作的装置:在领导者控制平面节点的缓存中创建复制日志条目,该复制日志条目包括用于分布式存储系统的该一个或多个访问管理器节点存储请求中指示的数据的指令。
在一些示例中,确认组件755可以被配置为或以其他方式支持用于以下操作的装置:从该一个或多个访问管理器节点接收确认消息,该确认消息指示在请求中指示的数据已经成为该一个或多个访问管理器节点存储的数据。在一些示例中,日志条目组件745可以被配置为或以其他方式支持用于以下操作的装置:更新缓存的复制日志条目以指示在请求中指示的数据已经成为分布式存储系统的该一个或多个访问管理器节点存储的数据。
在一些示例中,故障组件750可以被配置为或以其他方式支持用于确定领导者控制平面节点的故障的装置。在一些示例中,领导者选择组件740可以被配置为或以其他方式支持用于以下操作的装置:向该一个或多个跟随者控制平面节点中的跟随者控制平面节点发送以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。
在一些示例中,缓存数据指示:分布式存储系统的由领导者控制平面节点管理的一个或多个访问管理器节点,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储卷,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储池,或者它们的任意组合。在一些示例中,在分布式存储系统中存储数据的请求包括写入请求。
附加地或备选地,缓存复制组件720可以根据本文所公开的示例支持数据存储。在一些示例中,复制指令组件735可以被配置为或以其他方式支持用于以下操作的装置:在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令。领导者选择组件740可以被配置为或以其他方式支持用于以下操作的装置:在跟随者控制平面节点处,接收以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。在一些示例中,指令组件730可以被配置为或以其他方式支持用于以下操作的装置:由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,该指令指示由领导者控制平面节点管理的一个或多个访问管理器节点存储请求中指示的数据。在一些示例中,指令组件730可以被配置为或以其他方式支持用于指示分布式存储系统的一个或多个访问管理器节点根据从缓存取回的指令来存储数据的装置。
在一些示例中,日志条目组件745可以被配置为或以其他方式支持用于以下操作的装置:处理缓存以识别复制日志条目,该复制日志条目包括用于经由分布式存储系统的一个或多个访问管理器节点存储请求中指示的数据的指令。在一些示例中,指令组件730可以被配置为或以其他方式支持用于指示分布式存储系统的一个或多个访问管理器节点至少部分地基于复制日志条目来存储请求中指示的数据的装置。
在一些示例中,确认组件755可以被配置为或以其他方式支持用于以下操作的装置:从该一个或多个访问管理器节点接收确认消息,该确认消息指示在请求中指示的数据已经成为该一个或多个访问管理器节点存储的数据。
在一些示例中,请求组件725可以被配置为或以其他方式支持用于在新的领导者控制平面节点处接收将数据存储在该一个或多个访问管理器节点中的第二请求的装置。在一些示例中,指令组件730可以被配置为或以其他方式支持用于以下操作的装置:由新的领导者控制平面节点产生第二缓存数据,该第二缓存数据标识从新的领导者控制平面节点到该一个或多个访问管理器节点的第二指令,该第二指令指示该一个或多个访问管理器节点存储第二请求中指示的数据。在一些示例中,指令组件730可以被配置为或以其他方式支持用于以下操作的装置:由新的领导者控制平面节点向新的领导者控制平面节点的一个或多个跟随者控制平面节点发送第二复制指令,以将第二缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
在一些示例中,指令组件730可以被配置为或以其他方式支持用于指示该一个或多个访问管理器节点根据第二指令将数据存储在分布式存储系统中的装置。在一些示例中,缓存数据指示:分布式存储系统的由领导者控制平面节点管理的一个或多个访问管理器节点,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储卷,或者分布式存储系统的由领导者控制平面节点管理的一个或多个存储池,或者它们的任意组合。在一些示例中,新的领导者控制平面节点的第二缓存可以被配置为在定义的时间量内实现集群故障转移。
图8示出了包括根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的设备805的系统800的图。设备805可以是如本文所述的设备605的组件的示例或包括该设备605的组件。设备805可以包括用于双向数据通信的组件(包括用于发送和接收通信的组件),例如缓存复制组件820、I/O控制器810、数据库控制器815、存储器825、处理器830和数据库835。这些组件可以经由一条或多条总线(例如,总线840)进行电子通信或以其他方式(例如,操作上、通信上、功能上、电子上、电气上)耦接。
I/O控制器810可以管理设备805的输入信号845和输出信号850。I/O控制器810还可以管理未集成到设备805中的外围设备。在一些情况下,I/O控制器810可以表示与外部外围设备的物理连接或端口。在一些情况下,I/O控制器810可以使用诸如 或其他已知操作系统之类的操作系统。在其他情况下,I/O控制器810可以表示调制解调器、键盘、鼠标、触摸屏或类似设备或与之交互。在一些情况下,I/O控制器810可以被实现为处理器830的部分。在一些示例中,用户可以经由I/O控制器810或经由被I/O控制器810控制的硬件组件与设备805进行交互。
数据库控制器815可以管理数据库835中的数据存储和处理。在一些情况下,用户可以与数据库控制器815进行交互。在其他情况下,数据库控制器815可以在没有用户交互的情况下自动操作。数据库835可以是单个数据库、分布式数据库、多个分布式数据库、数据存储、数据湖或紧急备份数据库的示例。
存储器825可以包括随机存取存储器(RAM)和ROM。存储器825可以存储包括指令的计算机可读、计算机可执行软件,该指令当被执行时使处理器830执行本文描述的各种功能。在一些情况下,存储器825还可以包含BIOS,BIOS可以控制基本硬件或软件操作(例如,与外围组件或设备的交互)。
处理器830可以包括智能硬件设备(例如,通用处理器、DSP、CPU、微控制器、ASIC、FPGA、可编程逻辑设备、分立门或晶体管逻辑组件、分立硬件组件、或它们的任意组合)。在一些情况下,处理器830可以被配置为使用存储器控制器来操作存储器阵列。在其他情况下,存储器控制器可以集成到处理器830中。处理器830可以被配置为执行存储在存储器825中的计算机可读指令以执行各种功能(例如,支持实现跨分布式存储集群的缓存一致性的技术的功能或任务)。
缓存复制组件820可以根据如本文所公开的示例支持数据存储。例如,缓存复制组件820可以被配置为或以其他方式支持用于以下操作的装置:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求。缓存复制组件820可以被配置为或以其他方式支持用于以下操作的装置:由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据。缓存复制组件820可以被配置为或以其他方式支持用于以下操作的装置:由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。
附加地或备选地,缓存复制组件820可以根据本文所公开的示例支持数据存储。例如,缓存复制组件820可以被配置为或以其他方式支持用于以下操作的装置:在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令。缓存复制组件820可以被配置为或以其他方式支持用于以下操作的装置:在跟随者控制平面节点处,接收以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。缓存复制组件820可以被配置为或以其他方式支持用于以下操作的装置:由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,该指令指示由领导者控制平面节点管理的一个或多个访问管理器节点存储请求中指示的数据。缓存复制组件820可以被配置为或以其他方式支持用于指示分布式存储系统的该一个或多个访问管理器节点根据从缓存取回的指令来存储数据的装置。
通过包括或配置根据本文描述的示例缓存复制组件820,设备805可以支持用于改进的数据存储功能、减少的时延、与高效数据处理相关的改进的用户体验、以及对存储资源的更高效的利用的技术。
图9示出了说明根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的方法900的流程图。方法900的操作可以由本文描述的存储架构或其组件来实现。例如,方法900的操作可以由参考图1至图8所描述的存储架构来执行。在一些示例中,存储架构可以执行指令集来控制存储架构的功能元件以执行所描述的功能。附加地或备选地,存储架构可以使用专用硬件来执行所描述的功能的各方面。
在905处,该方法可以包括:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求。905的操作可以根据本文所公开的示例来执行。在一些示例中,905的操作的方面可以由如参考图7所描述的请求组件725来执行。
在910处,该方法可以包括:由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据。910的操作可以根据本文所公开的示例来执行。在一些示例中,910的操作的各方面可以由如参考图7所描述的指令组件730来执行。
在915处,该方法可以包括:由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。915的操作可以根据本文所公开的示例来执行。在一些示例中,915的操作的各方面可以由参考图7描述的复制指令组件735来执行。
图10示出了说明根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的方法1000的流程图。方法1000的操作可以由本文描述的存储架构或其组件来实现。例如,方法1000的操作可以由参考图1至图8所描述的存储架构来执行。在一些示例中,存储架构可以执行指令集来控制存储架构的功能元件以执行所描述的功能。附加地或备选地,存储架构可以使用专用硬件来执行所描述的功能的各方面。
在1005处,该方法可以包括:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求。1005的操作可以根据本文所公开的示例来执行。在一些示例中,1005的操作的方面可以由如参考图7所描述的请求组件725来执行。
在1010处,该方法可以包括:由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据。1010的操作可以根据本文所公开的示例来执行。在一些示例中,1010的操作的各方面可以由如参考图7所描述的指令组件730来执行。
在1015处,该方法可以包括:由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。1015的操作可以根据本文所公开的示例来执行。在一些示例中,1015的操作的各方面可以由参考图7描述的复制指令组件735来执行。
在1020处,该方法可以包括:指示该一个或多个访问管理器节点根据该指令将数据存储在分布式存储系统中。1020的操作可以根据本文所公开的示例来执行。在一些示例中,1020的操作的各方面可以由如参考图7所描述的指令组件730来执行。
图11示出了说明根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的方法1100的流程图。方法1100的操作可以由本文描述的存储架构或其组件来实现。例如,方法1100的操作可以由参考图1至图8所描述的存储架构来执行。在一些示例中,存储架构可以执行指令集来控制存储架构的功能元件以执行所描述的功能。附加地或备选地,存储架构可以使用专用硬件来执行所描述的功能的各方面。
在1105处,该方法可以包括:在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求。1105的操作可以根据本文所公开的示例来执行。在一些示例中,1105的操作的方面可以由如参考图7所描述的请求组件725来执行。
在1110处,该方法可以包括:由领导者控制平面节点产生缓存数据,该缓存数据标识从领导者控制平面节点到该多个访问管理器节点中由领导者控制平面节点管理的一个或多个访问管理器节点的指令,该指令指示该一个或多个访问管理器节点存储请求中指示的数据。1110的操作可以根据本文所公开的示例来执行。在一些示例中,1110的操作的各方面可以由如参考图7所描述的指令组件730来执行。
在1115处,该方法可以包括:由领导者控制平面节点向该多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将缓存数据复制到该一个或多个跟随者控制平面节点的相应缓存中。1115的操作可以根据本文所公开的示例来执行。在一些示例中,1115的操作的各方面可以由参考图7描述的复制指令组件735来执行。
在1120处,该方法可以包括确定领导者控制平面节点的故障。1120的操作可以根据本文所公开的示例来执行。在一些示例中,1120的操作的方面可以由如参考图7所描述的故障组件750来执行。
在1125处,该方法可以包括:向该一个或多个跟随者控制平面节点中的跟随者控制平面节点发送以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。1125的操作可以根据本文所公开的示例来执行。在一些示例中,1125的操作的各方面可以由如参考图7所描述的领导者选择组件740来执行。
图12示出了说明根据本公开的各方面的支持实现跨分布式存储集群的缓存一致性的技术的方法1200的流程图。方法1200的操作可以由本文描述的存储架构或其组件来实现。例如,方法1200的操作可以由参考图1至图8所描述的存储架构来执行。在一些示例中,存储架构可以执行指令集来控制存储架构的功能元件以执行所描述的功能。附加地或备选地,存储架构可以使用专用硬件来执行所描述的功能的各方面。
在1205处,该方法可以包括:在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将领导者控制平面节点的缓存数据复制到跟随者控制平面节点的缓存中的复制指令。1205的操作可以根据本文所公开的示例来执行。在一些示例中,1205的操作的各方面可以由参考图7描述的复制指令组件735来执行。
在1210处,该方法可以包括:在跟随者控制平面节点处,接收以下指示:该跟随者控制平面节点被至少部分地基于领导者控制平面节点的故障来选择为新的领导者控制平面节点。1210的操作可以根据本文所公开的示例来执行。在一些示例中,1210的操作的各方面可以由如参考图7所描述的领导者选择组件740来执行。
在1215处,该方法可以包括:由新的领导者控制平面节点处理缓存以取回从领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,该指令指示由领导者控制平面节点管理的该一个或多个访问管理器节点存储请求中指示的数据。1215的操作可以根据本文所公开的示例来执行。在一些示例中,1215的操作的各方面可以由如参考图7所描述的指令组件730来执行。
在1220处,该方法可以包括:指示分布式存储系统的一个或多个访问管理器节点根据从缓存中取回的指令来存储数据。1220的操作可以根据本文所公开的示例来执行。在一些示例中,1220的操作的各方面可以由如参考图7所描述的指令组件730来执行。
应当注意,上述方法描述了可能的实施方式,并且操作和步骤可以重新布置或以其他方式修改,以及其他实施方式也是可能的。此外,可以组合来自两种或更多种方法的方面。
本文结合附图所阐述的描述描述了示例配置,但并不表示所有可以实施的示例或在权利要求的范围内的示例。本文中所使用的术语“示例性”意味着“用作示例、实例或说明”,而不是“优选的”或“优于其他示例”。出于提供对所描述技术的理解的目的,详细描述包括具体细节。然而,可以在没有这些具体细节的情况下实践这些技术。在一些情况下,熟知的结构和设备以框图形式示出,以避免混淆所描述示例的构思。
在附图中,相似的组件或特征可以具有相同的附图标记。此外,相同类型的各种组件可以通过在附图标记后面加上区分相似组件的破折号和第二标签来区分。如果在说明书中仅使用第一附图标记,则该描述适用于具有相同第一附图标记的类似组件中的任何一个,而不管第二附图标记。
本文描述的信息和信号可以使用各种不同的技术中的任何一种来表示。例如,在整个以上描述中可以引用的数据、指令、命令、信息、信号、比特、符号和芯片可以由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或它们的任意组合来表示。
结合本文的公开描述的各种说明性框和模块可以通过被指定以执行本文描述的功能的以下设备来实现或执行:通用处理器、DSP、ASIC、FPGA或其他可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件或它们的任意组合。通用处理器可以是微处理器,但在备选方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合(例如,DSP与一个微处理器、多个微处理器的组合,一个或多个微处理器结合DSP核心,或任何其他这种配置)。
本文描述的功能可以以硬件、由处理器执行的软件、固件或其任意组合来实现。如果以由处理器执行的软件来实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质发送。其他示例和实施方式在本公开和所附权利要求的范围内。例如,由于软件的性质,上述功能可以使用由处理器执行的软件、硬件、固件、硬布线或它们的任意组合来实现。实现功能的特征也可以在物理上位于各个位置,包括被分布使得功能的部分在不同的物理位置处实现的位置。此外,如本文中所使用,包括在权利要求中,在项目列表(例如,以诸如“至少一个”或“一个或多个”的短语开头的项目列表)中使用的“或”指示包含列表,例如,A、B或C中至少一个的列表意味着A或B或C或AB或AC或BC或ABC(即,A和B和C)。此外,如本文中所使用,短语“基于”不应被解释为对封闭条件集合的引用。例如,被描述为“基于条件A”的示例性步骤可以基于条件A和条件B两者而不背离本公开的范围。换言之,如本文中所使用,短语“基于”应以与短语“至少部分地基于”相同的方式进行解释。
计算机可读介质包括非暂时性计算机存储介质和通信介质,包括有助于将计算机程序从一个地方转移到另一地方的任何介质。非暂时性存储介质可以是由通用或专用计算机可以访问的任何可用介质。作为示例而非限制,非暂时性计算机可读介质可以包括RAM、ROM、电可擦除可编程ROM(EEPROM)、紧凑盘(CD)ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可以用于以指令或数据结构的形式承载或存储所期望的程序代码并且可以由通用或专用计算机或者通用或专用处理器访问的任何其他非暂时性介质。此外,可以将任意连接适当地命名为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字用户线(DSL)或无线技术(例如红外线、无线电和微波)从网站、服务器或其他远程源发送软件,则同轴电缆、光缆、双绞线、DSL或无线技术(例如红外线、无线电和微波)包括在介质的定义中。如本文中所使用的磁盘和光盘包括CD、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中,磁盘通常以磁的方式再现数据,而光盘用激光以光的方式再现数据。以上项的组合也被包括在计算机可读介质的范围内。
提供本文的描述以使本领域技术人员能够做出或使用本公开。对本公开的各种修改对于本领域技术人员显而易见的,并且可将本文中定义的一般原理应用于其他变型,而不背离本公开的范围。因此,本公开不限于本文描述的示例和设计,而是符合与本文公开的原理和新颖特征相一致的最宽泛范围。
Claims (20)
1.一种计算机实现的用于数据存储的方法,包括:
在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求;
由所述领导者控制平面节点产生缓存数据,所述缓存数据标识从所述领导者控制平面节点到所述多个访问管理器节点中由所述领导者控制平面节点管理的一个或多个访问管理器节点的指令,所述指令指示所述一个或多个访问管理器节点存储所述请求中指示的数据;以及
由所述领导者控制平面节点向所述多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将所述缓存数据复制到所述一个或多个跟随者控制平面节点的相应缓存中。
2.根据权利要求1所述的方法,还包括:
指示所述一个或多个访问管理器节点根据指令将数据存储在所述分布式存储系统中。
3.根据权利要求1所述的方法,其中,产生所述缓存数据还包括:
在所述领导者控制平面节点的缓存中创建复制日志条目,所述复制日志条目包括用于所述分布式存储系统的所述一个或多个访问管理器节点存储所述请求中指示的数据的指令。
4.根据权利要求3所述的方法,还包括:
从所述一个或多个访问管理器节点接收确认消息,所述确认消息指示:在所述请求中指示的数据已经成为所述一个或多个访问管理器节点存储的数据;以及
更新缓存的复制日志条目以指示:在所述请求中指示的数据已经成为所述分布式存储系统的所述一个或多个访问管理器节点存储的数据。
5.根据权利要求1所述的方法,还包括:
确定所述领导者控制平面节点的故障;以及
向所述一个或多个跟随者控制平面节点中的跟随者控制平面节点发送以下指示:该跟随者控制平面节点被至少部分地基于所述领导者控制平面节点的故障来选择为新的领导者控制平面节点。
6.根据权利要求1所述的方法,其中,所述缓存数据指示:所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个访问管理器节点,或者所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个存储卷,或者所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个存储池,或者它们的任意组合。
7.根据权利要求1所述的方法,其中,在所述分布式存储系统中存储数据的所述请求包括写入请求。
8.一种计算机实现的用于数据存储的方法,包括:
在节点集群的多个控制平面节点中的跟随者控制平面节点处,从领导者控制平面节点接收将所述领导者控制平面节点的缓存数据复制到所述跟随者控制平面节点的缓存中的复制指令;
在所述跟随者控制平面节点处,接收以下指示:所述跟随者控制平面节点被至少部分地基于所述领导者控制平面节点的故障来选择为新的领导者控制平面节点;
由所述新的领导者控制平面节点处理所述缓存以取回从所述领导者控制平面节点到分布式存储系统的一个或多个访问管理器节点的指令,所述指令指示由所述领导者控制平面节点管理的一个或多个访问管理器节点存储请求中指示的数据;以及
指示所述分布式存储系统的所述一个或多个访问管理器节点根据从所述缓存中取回的所述指令存储所述数据。
9.根据权利要求8所述的方法,还包括:
处理所述缓存以识别复制日志条目,所述复制日志条目包括用于经由所述分布式存储系统的所述一个或多个访问管理器节点来存储所述请求中指示的数据的指令,以及
指示所述分布式存储系统的所述一个或多个访问管理器节点至少部分地基于所述复制日志条目来存储所述请求中指示的数据。
10.根据权利要求9所述的方法,还包括:
从所述一个或多个访问管理器节点接收确认消息,所述确认消息指示:在所述请求中指示的数据已经成为所述一个或多个访问管理器节点存储的数据。
11.根据权利要求8所述的方法,还包括:
在所述新的领导者控制平面节点处,接收将数据存储在所述一个或多个访问管理器节点中的第二请求;
由所述新的领导者控制平面节点产生第二缓存数据,所述第二缓存数据标识从所述新的领导者控制平面节点到所述一个或多个访问管理器节点的第二指令,所述第二指令指示所述一个或多个访问管理器节点存储所述第二请求中指示的数据;以及
由所述新的领导者控制平面节点向所述新的领导者控制平面节点的一个或多个跟随者控制平面节点发送第二复制指令,以将所述第二缓存数据复制到所述一个或多个跟随者控制平面节点的相应缓存中。
12.根据权利要求11所述的方法,还包括:
指示所述一个或多个访问管理器节点根据所述第二指令将所述数据存储在所述分布式存储系统中。
13.根据权利要求8所述的方法,其中,所述缓存数据指示:所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个访问管理器节点,或者所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个存储卷,或者所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个存储池,或者它们的任意组合。
14.根据权利要求8所述的方法,其中,所述新的领导者控制平面节点的第二缓存被配置为在定义的时间量内实现集群故障转移。
15.一种用于数据存储的装置,包括:
处理器;
存储器,与所述处理器耦接;以及
指令,存储在所述存储器中并能够由所述处理器执行以使所述装置:
在节点集群的多个控制平面节点中的领导者控制平面节点处,接收将数据存储在包括多个访问管理器节点的分布式存储系统中的请求;
由所述领导者控制平面节点产生缓存数据,所述缓存数据标识从所述领导者控制平面节点到所述多个访问管理器节点中
由所述领导者控制平面节点管理的一个或多个访问管理器节点的指令,所述指令指示所述一个或多个访问管理器节点存储所述请求中指示的数据;以及
由所述领导者控制平面节点向所述多个控制平面节点中的一个或多个跟随者控制平面节点发送复制指令,以将所述缓存数据复制到所述一个或多个跟随者控制平面节点的相应缓存中。
16.根据权利要求15所述的装置,其中,所述指令还能够由所述处理器执行以使所述装置:
指示所述一个或多个访问管理器节点根据所述指令将所述数据存储在所述分布式存储系统中。
17.根据权利要求15所述的装置,其中,产生所述缓存数据的指令还能够由所述处理器执行以使所述装置:
在所述领导者控制平面节点的缓存中创建复制日志条目,所述复制日志条目包括用于所述分布式存储系统的所述一个或多个访问管理器节点存储所述请求中指示的数据的指令。
18.根据权利要求17所述的装置,其中,所述指令还能够由所述处理器执行以使所述装置:
从所述一个或多个访问管理器节点接收确认消息,所述确认消息指示:在所述请求中指示的数据已经成为所述一个或多个访问管理器节点存储的数据;以及
更新缓存的复制日志条目以指示:在所述请求中指示的数据已经成为所述分布式存储系统的所述一个或多个访问管理器节点存储的数据。
19.根据权利要求15所述的装置,其中,所述指令还能够由所述处理器执行以使所述装置:
确定所述领导者控制平面节点的故障;以及
向所述一个或多个跟随者控制平面节点中的跟随者控制平面节点发送以下指示:该跟随者控制平面节点被至少部分地基于所述领导者控制平面节点的故障来选择为新的领导者控制平面节点。
20.根据权利要求15所述的装置,其中,所述缓存数据指示:所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个访问管理器节点,或者所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个存储卷,或者所述分布式存储系统的由所述领导者控制平面节点管理的一个或多个存储池,或者它们的任意组合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/543,064 US12058208B2 (en) | 2021-12-06 | 2021-12-06 | Techniques to achieve cache coherency across distributed storage clusters |
US17/543,064 | 2021-12-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116233146A true CN116233146A (zh) | 2023-06-06 |
Family
ID=84387637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211587545.8A Pending CN116233146A (zh) | 2021-12-06 | 2022-12-06 | 实现跨分布式存储集群的缓存一致性的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12058208B2 (zh) |
EP (2) | EP4418139A1 (zh) |
CN (1) | CN116233146A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12058208B2 (en) | 2021-12-06 | 2024-08-06 | Ebay Inc. | Techniques to achieve cache coherency across distributed storage clusters |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12105597B2 (en) * | 2022-10-13 | 2024-10-01 | VMware LLC | Migration of control planes across architectures |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473775B1 (en) | 2010-12-14 | 2013-06-25 | Amazon Technologies, Inc. | Locality based quorums |
US11544288B2 (en) | 2010-12-23 | 2023-01-03 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US8612688B2 (en) * | 2010-12-30 | 2013-12-17 | Facebook, Inc. | Distributed cache for graph data |
US10067843B1 (en) | 2016-12-01 | 2018-09-04 | Infinidat Ltd. | Synchronizing control nodes and a recovery from a failure of a primary control node of a storage system |
US10379966B2 (en) * | 2017-11-15 | 2019-08-13 | Zscaler, Inc. | Systems and methods for service replication, validation, and recovery in cloud-based systems |
US11526408B2 (en) * | 2019-07-18 | 2022-12-13 | Pure Storage, Inc. | Data recovery in a virtual storage system |
US11163479B2 (en) * | 2020-03-26 | 2021-11-02 | EMC IP Holding Company LLC | Replicated state cluster with standby node state assessment during leadership transition |
US12058208B2 (en) | 2021-12-06 | 2024-08-06 | Ebay Inc. | Techniques to achieve cache coherency across distributed storage clusters |
US11842063B2 (en) * | 2022-03-25 | 2023-12-12 | Ebay Inc. | Data placement and recovery in the event of partition failures |
-
2021
- 2021-12-06 US US17/543,064 patent/US12058208B2/en active Active
-
2022
- 2022-12-02 EP EP24186264.8A patent/EP4418139A1/en active Pending
- 2022-12-02 EP EP22211078.5A patent/EP4191429B1/en active Active
- 2022-12-06 CN CN202211587545.8A patent/CN116233146A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12058208B2 (en) | 2021-12-06 | 2024-08-06 | Ebay Inc. | Techniques to achieve cache coherency across distributed storage clusters |
Also Published As
Publication number | Publication date |
---|---|
US20230179655A1 (en) | 2023-06-08 |
EP4418139A1 (en) | 2024-08-21 |
US12058208B2 (en) | 2024-08-06 |
EP4191429B1 (en) | 2024-09-18 |
EP4191429A1 (en) | 2023-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163479B2 (en) | Replicated state cluster with standby node state assessment during leadership transition | |
EP4064067B1 (en) | Automatic query offloading to a standby database | |
US10169163B2 (en) | Managing backup operations from a client system to a primary server and secondary server | |
AU2016405587B2 (en) | Splitting and moving ranges in a distributed system | |
US8655851B2 (en) | Method and system for performing a clean file lock recovery during a network filesystem server migration or failover | |
US11360867B1 (en) | Re-aligning data replication configuration of primary and secondary data serving entities of a cross-site storage solution after a failover event | |
US8533171B2 (en) | Method and system for restarting file lock services at an adoptive node during a network filesystem server migration or failover | |
US11003437B2 (en) | Automated transparent distribution of updates to server computer systems in a fleet | |
US10922303B1 (en) | Early detection of corrupt data partition exports | |
US20130110781A1 (en) | Server replication and transaction commitment | |
CN116233146A (zh) | 实现跨分布式存储集群的缓存一致性的技术 | |
US9733869B1 (en) | Provisioning a slave for data storage using metadata with updated references | |
US20210073198A1 (en) | Using persistent memory and remote direct memory access to reduce write latency for database logging | |
US11537619B1 (en) | Replica group modification in a distributed database | |
US10452680B1 (en) | Catch-up replication with log peer | |
US20230376479A1 (en) | Schema and data modification concurrency in query processing pushdown | |
US11797523B2 (en) | Schema and data modification concurrency in query processing pushdown | |
EP4250119A1 (en) | Data placement and recovery in the event of partition failures | |
US11461192B1 (en) | Automatic recovery from detected data errors in database systems | |
AU2019371362B2 (en) | Methods, devices and systems for non-disruptive upgrades to a distributed coordination engine in a distributed computing environment | |
US11238010B2 (en) | Sand timer algorithm for tracking in-flight data storage requests for data replication | |
Wang et al. | Fast log replication in highly available data store | |
Carter | SQL server AlwaysOn revealed |
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 |