CN105426439B - 一种元数据的处理方法和装置 - Google Patents
一种元数据的处理方法和装置 Download PDFInfo
- Publication number
- CN105426439B CN105426439B CN201510746941.4A CN201510746941A CN105426439B CN 105426439 B CN105426439 B CN 105426439B CN 201510746941 A CN201510746941 A CN 201510746941A CN 105426439 B CN105426439 B CN 105426439B
- Authority
- CN
- China
- Prior art keywords
- metadata
- node
- nodes
- slave
- master 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种元数据的处理方法和装置,用于实现分布式存储***中元数据写操作的可靠性和可用性。本发明提供的元数据的处理方法包括:主节点获取接入端发送的元数据写请求,所述元数据写请求包括:需要上传到分布式存储***中的元数据,所述分布式存储***包括:2N+1个节点,其中1个节点为所述主节点,其余节点为2N个从节点,所述N为非零自然数;所述主节点根据所述元数据写请求存储所述元数据,并向所述2N个从节点分别发送所述元数据;若所述主节点接收到所述2N个从节点中至少N个从节点在存储所述元数据之后返回的确认信息,所述主节点向所述接入端发送元数据写响应。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种元数据的处理方法和装置。
背景技术
元数据指文件内容的索引信息或简单的键值对(英文全称:Key-Value,英文简称:K-V)数据,具有占用存储空间少、数据众多、可靠性和可用性要求高等特点,为了解决分布式存储***中的元数据可靠性以及可用性问题,目前主流的分布式存储***针对元数据提供如下的几种处理方式:
1、基于主-备模式
将分布式存储***分为多个可平行扩容的单元,具有多个主单元,每个主单元还连接有多个备单元,各单元内部基于主-备异步同步的方式解决单元内部的元数据可靠性问题,同时依赖各单元之间的独立性解决***层面的元数据可用性。
2、基于多副本模式
在这种模式下,所有节点的地位都相同,读写基于NWR原则。其中,N代表数据存储的份数,R表示每次读请求从N份中至少读取的份数,W表示每次写操作返回成功前至少写成功的份数。当执行写操作时成功的写W份。当执行读操作时从R份节点中各读出一份数据,然后整合出最新的数据后输出。
3、基于zookeeper存储元数据集群
zookeeper是一个开放源码的分布式应用程序协调服务程序,zookeeper由于本身性能瓶颈无法直接在集群中存储元数据,业界一般利用其分布式协同的优点为整个元数据集群提供选主服务,然后采用主-备模式将元数据独立存储于元数据集群中。其中,选主服务指集群***对外提供读、写服务之前,内部需要确定集群***不同节点的角色(角色有主节点、从节点),前端数据的写请求必须提交到主节点,读请求可以直接通过从节点返回。
本发明的发明人在实现本发明的过程中发现:
基于主-备模式的现有技术至少存在如下问题:主-备异步同步的方式会存在写数据的主备同步周期,在数据从主节点到从节点的写入过程中会存在一定时间内的数据无法恢复,数据可靠性也不高。
基于多副本模式的现有技术至少存在如下问题:由于数据会写入多个副本,每次的读写操作又会只选取其中的几份数据,使得数据一致性非常差,当写操作很频繁时,各个节点存储的数据版本相差很大,造成节点之间数据存储不统一,因此无法处理复杂的逻辑。
基于zookeeper存储元数据集群的现有技术至少存在如下问题:该方式主要是为读多写少的场景而设计,为了提高处理性能,前端和集群所有的节点都可以直接交互,并且集群可以动态扩容以进一步扩展集群吞吐量。由于前端是和集群中的所有节点直接交互,因此写操作时需要该交互节点将收到的数据转发到主节点,即如果前端和从节点进行交互,那么写操作只能通过从节点转发数据到主节点,因此需要多一次节点转发的过程,当节点个数超过5个时,写性能大幅下降。
发明内容
本发明实施例提供了一种元数据的处理方法和装置,用于实现分布式存储***中元数据写操作的可靠性和可用性。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种元数据的处理方法,包括:
主节点获取接入端发送的元数据写请求,所述元数据写请求包括:需要上传到分布式存储***中的元数据,所述分布式存储***包括:2N+1个节点,其中1个节点为所述主节点,其余节点为2N个从节点,所述N为非零自然数;
所述主节点根据所述元数据写请求存储所述元数据,并向所述2N个从节点分别发送所述元数据;
若所述主节点接收到所述2N个从节点中至少N个从节点在存储所述元数据之后返回的确认信息,所述主节点向所述接入端发送元数据写响应。
第二方面,本发明实施例还提供一种元数据的处理装置,所述元数据的处理装置具体为分布式存储***中的主节点,所述元数据的处理装置,包括:
获取模块,用于获取接入端发送的元数据写请求,所述元数据写请求包括:需要上传到分布式存储***中的元数据,所述分布式存储***包括:2N+1个节点,其中1个节点为所述主节点,其余节点为2N个从节点,所述N为非零自然数;
存储处理模块,用于根据所述元数据写请求存储所述元数据,并向所述2N个从节点分别发送所述元数据;
发送模块,用于若所述主节点接收到所述2N个从节点中至少N个从节点在存储所述元数据之后返回的确认信息,所述主节点向所述接入端发送元数据写响应。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,主节点首先获取接入端发送的元数据写请求,元数据写请求包括:需要上传到分布式存储***中的元数据,分布式存储***包括:主节点和2N个从节点,主节点根据元数据写请求存储元数据,并向2N个从节点分别发送元数据,若主节点接收到2N个从节点中至少N个从节点在存储元数据之后返回的确认信息,主节点向接入端发送元数据写响应。本发明实施例中接入端和分布式存储***之间的写操作都通过主节点来实现,主节点将接入端发送的元数据存储之后,主节点向分布式存储***中的2N个从节点都发送该元数据,2N个从节点将接收到的元数据存储并向主节点返回确认信息,在主节点接收到至少N个从节点返回的确认信息之后,主节点向接入端发送元数据写响应。本发明实施例中接入端的写操作通过主节点来完成,因此可以保证主节点中存储最新的元数据,接入端发送的元数据被成功存储在分布式存储***的至少N+1个节点中,从而实现分布式存储***中元数据写操作的可靠性和可用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式存储***的组成架构示意图;
图2为本发明实施例提供的一种元数据的处理方法的流程方框示意图;
图3为本发明实施例提供的一种主节点的选择过程示意图;
图4为本发明实施例提供的一种接入端和分布式存储***的交互流程示意图;
图5-a为本发明实施例提供的一种元数据的处理装置的组成结构示意图;
图5-b为本发明实施例提供的一种存储处理模块的组成结构示意图;
图5-c为本发明实施例提供的另一种元数据的处理装置的组成结构示意图;
图6为本发明实施例提供的元数据的处理方法应用于服务器的组成结构示意图。
具体实施方式
本发明实施例提供了一种元数据的处理方法和装置,用于实现分布式存储***中元数据写操作的可靠性和可用性。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、***、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明元数据的处理方法的一个实施例,具体可以应用于分布式存储***中对元数据的处理。首先对本发明实施例中分布式存储***的组成架构进行说明,请参阅如图1所示,为本发明实施例提供的分布式存储***的组成架构示意图。其中,分布式存储***包括:2N+1个节点,其中1个节点为主节点,其余节点为2N个从节点,N为非零自然数。本发明实施例中分布式存储***共包括奇数个节点,每个节点都是一个用来存储元数据的服务器。该服务器具有可存储元数据的存储装置。本发明实施例中分布式存储***中只有一个节点作为主节点,其余的节点均作为从节点,在本发明实施例中只有主节点才能和接入端交互,从节点和主节点交互。本发明实施例通过采用集群节点元数据实时同步的方式可以提升元数据的读写性能,增强分布式存储***的可用性,提供元数据的强一致性。接下来从分布式存储***中的一个节点来描述本发明实施例提供的元数据的处理方法,该节点具体为主节点。
请参阅图1所示,本发明一个实施例提供的元数据的处理方法,可以包括如下步骤:
101、主节点获取接入端发送的元数据写请求。
其中,元数据写请求包括:需要上传到分布式存储***中的元数据,分布式存储***包括:2N+1个节点,其中1个节点为主节点,其余节点为2N个从节点,N为非零自然数。
在本发明实施例中,接入端和分布式存储***之间的写操作通过主节点来完成。接入端需要将元数据写入到分布式存储***中时,接入端向分布式存储***中的主节点发送元数据写请求,主节点获取到该元数据写请求。
在本发明实施例中,分布式存储***中包括有2N+1个节点,其中1个节点为主节点,2N个节点为从节点,主节点对外提供访问接口,接入端的元数据写请求只能向主节点发送,由主节点来处理接入端的元数据写请求,主节点接收到元数据写请求之后执行步骤102。
在本发明的一些实施例中,本发明实施例提供的元数据的处理方法,还可以包括如下步骤:
A1、主节点获取接入端发送的元数据读请求;
A2、主节点从主节点中获取到与元数据读请求对应的元数据;
A3、主节点向接入端发送元数据读响应,元数据读响应包括:与元数据读请求对应的元数据。
其中,接入端和分布式存储***之间除了执行写操作,还可以执行读操作,接入端和分布式存储***之间的读操作也是通过主节点来完成。接入端需要从分布式存储***读取元数据时,接入端向分布式存储***中的主节点发送元数据读请求,主节点获取到该元数据读请求。然后主节点从主节点中获取到与元数据读请求对应的元数据,主节点向接入端发送元数据读响应,元数据读响应包括主节点需要反馈给接入端的元数据。本发明实施例中主节点中保存有最新的元数据,接入端只能和***中的主节点交互,可以保证元数据的高可用性,接入端不和***中的从节点交互,可以避免元数据在从节点和主节点之间的中转,保证了***的写性能很高。
在本发明的一些实施例中,步骤101主节点获取接入端发送的元数据写请求之前,本发明提供的元数据的处理方法还包括如下步骤:
B1、若分布式存储***中的上一任主节点挂掉,主节点对应的节点在成为主节点之前,向分布式存储***中的其余节点发送选主请求;
B2、若主节点对应的节点接收到至少N个节点的选主确认,主节点对应的节点升级为主节点。
其中,本发明实施例提供的分布式存储***中包括有2N+1个节点,在初始时刻所有的节点地位相同,将节点之间的选举,将2N+1个节点分为两种类型:主节点和从节点。其中,主节点只有一个,其余节点均是从节点。分布式存储***中在超过为节点设置的超时时间间隔的情况下,所有节点之间自动选择出新的主节点,因此本发明实施例中当上一任节点挂掉后,整个集群***立即进入重新选主阶段,当新的主节点选出后,分布式存储***即可立即向接入端提供读写服务。
需要说明的是,在本发明实施例中,分布式存储***中一个节点成为主节点之后该主节点向外提供读写服务,若该主节点挂掉之后,分布式存储***中会自动选举出下一任的主节点。对于不同的主节点可以对应于不同的主节点周期,即分布式存储***中在每更换一个主节点时对主节点周期进行单调递增计数。例如,分布式存储***中上一任主节点对应于主节点周期x,x为自然数,则分布式存储***中的当前主节点对应于主节点周期x+1。步骤101中的主节点可以认为是在当前的主节点周期x+1中选举出来的主节点,则在步骤101之前,若主节点周期x对应的主节点(即步骤B1中所述的上一任主节点)挂掉,则需要重新选举主节点,例如某一节点在成为主节点之前,向分布式存储***中的其余节点发送选主请求,如果该节点接收到至少N个节点的选主确认,则该节点可以升级为主节点,若主节点周期x+1对应的主节点挂掉,则可以继续选举出主节点周期x+2对应的主节点。
在本发明的一些实施例中,分布式存储***中在每更换一个主节点时对主节点周期进行单调递增计数,则步骤B2若主节点对应的节点接收到至少N个节点的选主确认,主节点对应的节点升级为主节点,具体可以包括如下步骤:
B11、若主节点对应的节点具有最大的主节点周期和最新的日志索引、且接收到至少N个节点的选主确认,主节点对应的节点升级为主节点。
也就是说,在本发明的一些实施例中,一个节点若需要升级为主节点,不仅需要得到分布式存储***中至少一半的节点同意,还需要具有最大的主节点周期以及最新的日志索引。其中,分布式存储***中存储的元数据还配置有日志索引,该日志索引可以表示节点中存储的元数据的版本信息。主节点获取到需要存储的元数据之后先将该元数据写入到主节点的内存中,主节点还需要更新元数据对应的日志索引,例如,在主节点的当前外部存储器中存储的元数据对应的日志索引为1,若主节点又接收到接入端发送的元数据,主节点将存储在内存中的元数据的日志索引配置为2。当一个节点具有最大的主节点周期以及最新的日志索引,则说明该节点与已经挂掉的上一任主节点具有最新版本的元数据,则该节点可以升级为主节点,以尽快接管上一任主节点对外提供的读写服务。
102、主节点根据元数据写请求存储元数据,并向2N个从节点分别发送元数据。
在本发明实施例中,主节点接收到元数据写请求之后,主节点从该元数据写请求中可以获取到需要存储到分布式存储***中的元数据。主节点将该元数据存储到主节点中,并且将该元数据发送给分布式存储***中的2N个从节点,以实现对元数据存储的实时同步,避免该主节点挂掉之后造成元数据的丢失。
在分布式存储***中,主节点分别向2N个从节点发送需要存储的元数据,2N个从节点中的每个从节点都可以接收该主节点发送的元数据,若从节点接收到元数据,该从节点可以对该元数据进行存储,然后该从节点向主节点发送确认信息,以表示该从节点已经成功存储了主节点发送的元数据。
在本发明的一些实施例中,步骤102主节点根据元数据写请求存储元数据,并向2N个从节点分别发送元数据,具体可以包括如下步骤:
C1、主节点根据元数据写请求将元数据存储到主节点的内存中,并更新元数据对应的日志索引;
C2、主节点将携带更新后的日志索引的元数据发送给2N个从节点;
C3、若主节点接收到至少N个从节点在存储元数据之后返回的确认信息,主节点将内存中存储的元数据更新到主节点的外部存储器中。
其中,分布式存储***中的每个节点都设置有两级存储,即内存和外部存储器,分布式存储***中存储的元数据还配置有日志索引,该日志索引可以表示节点中存储的元数据的版本信息。主节点获取到需要存储的元数据之后先将该元数据写入到主节点的内存中,主节点还需要更新元数据对应的日志索引,例如,在主节点的当前外部存储器中存储的元数据对应的日志索引为1,若主节点又接收到接入端发送的元数据,主节点将存储在内存中的元数据的日志索引配置为2,则相比于主节点的外部存储器中存储的日志索引1对应的元数据,主节点的内存中写入的日志索引2对应的元数据是最新的元数据。步骤C3中,主节点接收每个从节点在存储完成元数据之后向主节点返回确认信息,若主节点接收到N个从节点发送的确认信息,则说明有N个从节点已经存储了最新的元数据,因此分布式存储***中至少有N+1个节点已经存储了最新的元数据,在这种情况下,主节点可以将内存中存储的元数据更新到主节点的外部存储器中。需要说明的是,主节点中的外部存储器可以指的是辅助存储器(外存),外存通常是磁性介质或光盘等,能长期保存信息。
103、若主节点接收到2N个从节点中至少N个从节点在存储元数据之后返回的确认信息,主节点向接入端发送元数据写响应。
在本发明实施例中,主节点向2N个从节点分别发送元数据之后,主节点开始接收从节点返回的确认信息,主节点每接收到一个从节点发送的确认信息就计数增加1,随着主节点接收到的确认信息的个数递增,当主节点接收到2N个从节点中至少N个从节点在存储元数据之后返回的确认信息时,分布式存储***中共有N+1个节点(即1个主节点和N个从节点)存储了元数据写请求包括的元数据,因此分布式存储***中至少有一半以上的节点存储了元数据,这样新写入的元数据才能同步到更多的节点中,才能保证在各别节点故障时满足元数据的可靠性。因此本发明实施例中,分布式存储***中至少一半以上的节点存储了元数据之后,主节点才向接入端发送元数据写响应,该元数据写响应用于表示接入端发送的元数据已经成功写入了分布式存储***中。
在本发明实施例中,接入端向分布式存储***中写入元数据时,至少需要***中的至少一半节点同意之后元数据才能写成功,可以保证元数据在***中多个节点之间的实时同步。接入端只能和***中的主节点交互,可以保证元数据的高可用性,接入端不和***中的从节点交互,可以避免元数据在从节点和主节点之间的中转,保证了***的写性能很高。
在本发明的一些实施例中,本发明实施例提供的元数据的处理方法,还可以还包括如下步骤:
D1、主节点按照预置的时间周期将主节点中存储的元数据发送给2N个从节点。
其中,主节点中存储有最新的元数据,主节点为了使各个从节点都能与主节点保持数据同步,主节点还可以定期的将主节点中存储的元数据发送给2N个从节点。其中,预置的时间周期可以是1分钟,或者在具体的场景中根据需要来灵活设置元数据的同步周期。
在本发明的一些实施例中,本发明实施例提供的元数据的处理方法,还可以还包括如下步骤:
E1、主节点向分布式存储***中的2N个从节点发送心跳包,以使2N个从节点根据心跳包确定主节点是否挂掉。
其中,为了使从节点确定主节点是否已经挂掉,主节点还可以向2N个从节点发送心跳包,从节点可以根据是否接收到心跳包来确定主节点是否已经挂掉,在从节点确定主节点已经挂掉的情况下,可以发起重新选举主节点。
通过以上实施例对本发明实施例的描述可知,主节点首先获取接入端发送的元数据写请求,元数据写请求包括:需要上传到分布式存储***中的元数据,分布式存储***包括:主节点和2N个从节点,主节点根据元数据写请求存储元数据,并向2N个从节点分别发送元数据,若主节点接收到2N个从节点中至少N个从节点在存储元数据之后返回的确认信息,主节点向接入端发送元数据写响应。本发明实施例中接入端和分布式存储***之间的写操作都通过主节点来实现,主节点将接入端发送的元数据存储之后,主节点向分布式存储***中的2N个从节点都发送该元数据,2N个从节点将接收到的元数据存储并向主节点返回确认信息,在主节点接收到至少N个从节点返回的确认信息之后,主节点向接入端发送元数据写响应。本发明实施例中接入端的写操作通过主节点来完成,因此可以保证主节点中存储最新的元数据,接入端发送的元数据被成功存储在分布式存储***的至少N+1个节点中,从而实现分布式存储***中元数据写操作的可靠性和可用性。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明实施例通过采用集群节点元数据实时同步的方式可以解决以下问题:提升元数据***写性能,增强元数据***的写高可用,提供数据强一致性。
本发明实施例主要在元数据层提供一个分布式的数据高可靠、强一致,写高性能、高可用的解决方案,将元数据存储和节点状态切换合为一体。整个分布式的分布式存储***包括2N+1个节点。在某一时刻,只有一个主节点对外提供服务。接入端所有的请求都只和主节点通信,其中只读操作直接返回。涉及元数据状态改变的请求,在主节点获得半数以上从节点的响应后返回写响应给接入端,典型的交互流程如下:半数以上代表分布式存储***中的超过一半节点同意,这样新的元数据才能同步到更多的节点中,才能保证在各别节点故障时满足元数据的可靠性。
如图3所示,为本发明实施例提供的一种主节点的选择过程示意图,其中,本发明实施例中任意时刻的分布式存储***只有主节点可以和接入前端交互。分布式存储***中的节点初始地位对等,不同节点初始超时时间间隔随机,可以便于快速的确定不同节点的身份。例如,本发明实施例中可以采用Zab(英文全称:Zookeeper Atomic Broadcast)协议的方式来确定主节点,经过固定时间间隔内,所有节点分为主和从两种类型;整个选择过程下图3所示。例如,节点1超时时间为5s,节点2超时时间为2s。那么在2s后,节点2超时开始投票选举。若节点2收到节点1的选主确认,则节点2就会被顺利选为主节点,节点1变为从节点。节点2为从节点,描述的是节点启动时处于初始状态,节点2超时开始选举后自己进入中间态(英文名称:Candidate)。最开始阶段,集群中所有节点都为从节点,不同的节点超时时间不一样。经过一个时间间隔后,超时时间最短的节点***作***唤醒,开始选他自己为主节点,其把自己临时设为临时态,并把选主的请求发送到其他节点。其他节点收到后,经过验证通过后,会返回同意的结果给节点2。此时节点2如果收到超过一半的响应,则升级为主节点。这个时候***中所有节点身份都确定下来,一个主节点,其他节点全部为从节点。
如图4所示,为本发明实施例提供的一种接入端和分布式存储***的交互流程示意图,其中,以分布式存储***中包括3个节点为例,即N=1的情况。以涉及到元数据修改的应用场景是空间位置的分配操作为例,包括如下步骤:
1、主节点接收到来自接入端的元数据写请求,该写请求包括:需要写入到分布式存储***的元数据。
2、主节点首先在主节点的内存中记录本条日志(英文名称:Log)。
3、主节点向从节点1同步该日志。
4、主节点向从节点2同步该日志。即主节点将请求封装并同步到两份从节点。
5、从节点1将从节点1的内存中写入的上一条日志存储到从节点1的外部存储器中进行固定存储,并记录本条日志。
6、从节点2将从节点2的内存中写入的上一条日志存储到从节点2的外部存储器中进行固定存储,并记录本条日志。
7、从节点1向主节点发送写请求成功,主节点接收从节点1返回的写请求成功。分布式存储***中的主节点和从节点1都已经成功保存了元数据,分布式存储***中有3个节点,已经有2个节点保存了元数据,则说明元数据已经存储到至少一半的节点中,其中,元数据已经存储到至少一半的节点,这里的节点包含主节点自身,即如果有一份从节点保存成功,再加上主节点自身就变为2个节点保存了元数据,就可以使得大多数的节点都成功保存元数据。
8、主节点进行本地内存更新、追加二进制日志,并以二进制的形式保存在磁盘中。元数据在磁盘有持久化存储,为了提升读写效率,在内存有缓存。内存更新就是把内存中的值进行更新,变为最新的元数据。
9、并将结果返回给接入端。
本发明实施例提供的元数据的处理方法具有很高的写性能。以3份节点组成的元数据管理集群为例,每次修改操作,只需其中一个从节点返回成功即可。由于修改操作的元数据大小平均100字节以内,在内网环境下,可以达到万/秒以上的修改请求。相比而言,现有技术中的zookeeper不适合修改操作很高的场景。可以理解的是,因为元数据本身大小都很小,需要全量加载到内存,提升读写效率。100字节是实际应用中元数据内容大小的一种举例说明。
在本发明实施例中,前端以及集群内部都有到主节点的周期性心跳包,如果超过3次未响应,可判断主节点挂掉。当主节点到集群其他节点的心跳断掉后,会导致这些节点超时,从而触发每个节点的重新选主。正常情况下,主节点会周期性保持和其他节点的心跳同步,假设为3s。假设节点A的超时时间为10S。如果主节点挂掉,节点A会等待10s从而超时,超时后就会对自己投票,并把选自己的请求发往其他各个节点,如果得到半数以上同意,节点A就会变为新的主节点,从而完成一轮选主操作。
本发明实施例提供的元数据的处理方法具有很高的可用性。现有技术中通用的主备模式,主节点挂掉后***对外无法提供服务,需要人为干预,人工操作时间无法保障,导致***可用性很差。而本发明实施例中,当主节点挂掉后,整个集群立即进入重新选主阶段。当新的主节点选出后,***即可立即对外提供读写服务。现实应用中,一般主挂掉后,***不可服务的时间可以控制在秒级别,大幅提升整个存储***的可用性。
本发明实施例提供的元数据的处理方法具有保持在分布式存储***内部的数据强一致。现有技术中类似zookeeper的实现方式,接入端读操作直接和集群任意一个节点交互,其数据的内容无法保证是最新的。而本发明实施例中读、写操作均通过主节点实现。选举协议保证主节点的数据一定是当前最新的,不同接入端在任意时刻访问分布式存储***得到的数据是一致的。
本发明实施例提供的元数据的处理方法中元数据具有很高的可用性。在本发明实施例总,接入端的任何一次涉及到元数据内容变化的操作都对应了唯一一个<Term,LogIndex>序对。其中,Term指的是主节点周期,LogIndex指的是日志索引。现有技术中采用的主备方式,主节点挂掉后,备节点会丢失最新一个时间窗口内的元数据修改信息。本发明实施例中基于单调递增的Term和LogIndex序对,可以解决分布式存储***中各个节点命令序列一致性的问题。其中,Term单调递增,标记一轮稳定的状态,Term表示了一段稳定的周期,周期内有且只有一个主节点,LogIndex表示每一次前端业务的修改操作,每个操作按照发生的时间顺序唯一对应一个数字,该数字按照时间顺序单调递增。该序对是由当前集群唯一的主节点内部生成的,且是随时间严格递增的。每一个来自接入端的写操作请求取得集群中大多数节点的同意才被认为成功。一般场景下,在任意时刻,***大多数节点上的数据和从节点数据内容是一致的,其他不一致节点会周期性和主节点同步进行修复。如果某一时刻当前主节点挂掉,集群通过选举会产生新的主节点,该节点必须具有当前最大的<Term,LogIndex>序对,Term最大,说明这节点所在的会话是最新的,LogIndex最大,表明该节点同步了最新的修改操作,两者结合说明该节点中存储的元数据是最新的元数据。所以新的主节点和前一任的主节点的元数据仍是一致的。从而保证了单节点故障不会影响到数据丢失,保证***可靠性。
通过前述对本发明实施例的举例说明可知,本发明实施例采用集群模式,通过选举协议选主节点,接入端只与主节点进行数据交互,修改只需满足大多数节点一致的模式在确保数据高可靠和强一致的基础上,大幅提升***的修改操作的性能和修改操作的高可用性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图5-a所示,本发明实施例提供的一种元数据的处理装置500,所述元数据的处理装置具体为分布式存储***中的主节点,所述元数据的处理装置,包括:获取模块501、存储处理模块502和发送模块503,其中,
获取模块501,用于获取接入端发送的元数据写请求,所述元数据写请求包括:需要上传到分布式存储***中的元数据,所述分布式存储***包括:2N+1个节点,其中1个节点为所述主节点,其余节点为2N个从节点,所述N为非零自然数;
存储处理模块502,用于根据所述元数据写请求存储所述元数据,并向所述2N个从节点分别发送所述元数据;
发送模块503,用于若所述主节点接收到所述2N个从节点中至少N个从节点在存储所述元数据之后返回的确认信息,所述主节点向所述接入端发送元数据写响应。
在本发明的一些实施例中,所述获取模块501,还用于获取接入端发送的元数据读请求;从所述主节点中获取到与所述元数据读请求对应的元数据;
所述发送模块503,用于向所述接入端发送元数据读响应,所述元数据读响应包括:与所述元数据读请求对应的元数据。
在本发明的一些实施例中,如图5-b所示,所述存储处理模块502,包括:存储子模块5021和发送子模块5022,其中,
所述存储子模块5021,用于根据所述元数据写请求将所述元数据存储到所述主节点的内存中,并更新所述元数据对应的日志索引;
所述发送子模块5022,用于将携带更新后的日志索引的元数据发送给所述2N个从节点;
所述存储子模块5021,还用于若所述主节点接收到至少N个从节点在存储所述元数据之后返回的确认信息,将所述内存中存储的元数据更新到所述主节点的外部存储器中。
在本发明的一些实施例中,所述发送模块503,还用于按照预置的时间周期将所述主节点中存储的元数据发送给所述2N个从节点。
在本发明的一些实施例中,如图5-c所示,所述元数据的处理装置500,还包括:选主模块504,其中,
所述选主模块504,用于所述获取模块501获取接入端发送的元数据写请求之前,若所述分布式存储***中的上一任主节点挂掉,所述主节点对应的节点在成为主节点之前,向所述分布式存储***中的其余节点发送选主请求;若所述主节点对应的节点接收到至少N个节点的选主确认,将所述主节点对应的节点升级为所述主节点。
在本发明的一些实施例中,所述分布式存储***中在每更换一个主节点时对主节点周期进行单调递增计数,所述选主模块504,具体用于若所述主节点对应的节点具有最大的主节点周期和最新的日志索引、且接收到至少N个节点的选主确认,将所述主节点对应的节点升级为所述主节点。
在本发明的一些实施例中,所述发送模块503,还用于向所述分布式存储***中的2N个从节点发送心跳包,以使所述2N个从节点根据所述心跳包确定所述主节点是否挂掉。
通过以上对本发明实施例的描述可知,主节点首先获取接入端发送的元数据写请求,元数据写请求包括:需要上传到分布式存储***中的元数据,分布式存储***包括:主节点和2N个从节点,主节点根据元数据写请求存储元数据,并向2N个从节点分别发送元数据,若主节点接收到2N个从节点中至少N个从节点在存储元数据之后返回的确认信息,主节点向接入端发送元数据写响应。本发明实施例中接入端和分布式存储***之间的写操作都通过主节点来实现,主节点将接入端发送的元数据存储之后,主节点向分布式存储***中的2N个从节点都发送该元数据,2N个从节点将接收到的元数据存储并向主节点返回确认信息,在主节点接收到至少N个从节点返回的确认信息之后,主节点向接入端发送元数据写响应。本发明实施例中接入端的写操作通过主节点来完成,因此可以保证主节点中存储最新的元数据,接入端发送的元数据被成功存储在分布式存储***的至少N+1个节点中,从而实现分布式存储***中元数据写操作的可靠性和可用性。
图6是本发明实施例提供的一种服务器结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processingunits,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作***641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的元数据的处理方法可以基于该图6所示的服务器结构。
通过以上对本发明实施例的描述可知,主节点首先获取接入端发送的元数据写请求,元数据写请求包括:需要上传到分布式存储***中的元数据,分布式存储***包括:主节点和2N个从节点,主节点根据元数据写请求存储元数据,并向2N个从节点分别发送元数据,若主节点接收到2N个从节点中至少N个从节点在存储元数据之后返回的确认信息,主节点向接入端发送元数据写响应。本发明实施例中接入端和分布式存储***之间的写操作都通过主节点来实现,主节点将接入端发送的元数据存储之后,主节点向分布式存储***中的2N个从节点都发送该元数据,2N个从节点将接收到的元数据存储并向主节点返回确认信息,在主节点接收到至少N个从节点返回的确认信息之后,主节点向接入端发送元数据写响应。本发明实施例中接入端的写操作通过主节点来完成,因此可以保证主节点中存储最新的元数据,接入端发送的元数据被成功存储在分布式存储***的至少N+1个节点中,从而实现分布式存储***中元数据写操作的可靠性和可用性。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种元数据的处理方法,其特征在于,应用于分布式存储***,所述分布式存储***包括:2N+1个节点,其中1个节点为主节点,其余节点为2N个从节点,所述N为非零自然数;所述方法包括:
若所述分布式存储***中的上一任主节点无法对外提供服务,由最早到达超时时间间隔的从节点开始投票选举,向所述分布式存储***中的其余节点发送选主请求,并将所述最早到达超时时间间隔的从节点设置为临时态;不同的节点对应有不同的超时时间间隔;
在所述最早到达超时时间间隔的从节点处于所述临时态的阶段,若发现现有主节点或者新的期限,则将所述最早到达超时时间间隔的从节点仍确定为从节点;
在所述最早到达超时时间间隔的从节点处于临时态的阶段,若发生超时则进入新一轮选举;
若所述最早到达超时时间间隔的从节点具有最大的主节点周期和最新的日志索引,并接收到至少N个节点的选主确认后,将所述最早到达超时时间间隔的从节点升级为新的主节点,使得主节点中存储有最新元数据,并向接入端提供读写服务,且所述接入端仅与所述分布式存储***中的主节点交互;所述分布式存储***中在每更换一个主节点时对主节点周期进行单调递增计数;
在所述最早到达超时时间间隔的从节点升级为新的主节点时,若发现更新的期限,则将所述最早到达超时时间间隔的从节点重新确定为从节点;
主节点获取接入端发送的元数据写请求,所述元数据写请求包括:需要上传到所述分布式存储***中的元数据;所述接入端与所述分布式存储***之间的写操作通过所述主节点实现;
所述主节点根据所述元数据写请求存储所述元数据,并向所述2N个从节点分别发送所述元数据;
若所述主节点接收到所述2N个从节点中至少N个从节点在存储所述元数据之后返回的确认信息,所述主节点向所述接入端发送元数据写响应。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主节点获取接入端发送的元数据读请求;
所述主节点从所述主节点中获取到与所述元数据读请求对应的元数据;
所述主节点向所述接入端发送元数据读响应,所述元数据读响应包括:与所述元数据读请求对应的元数据。
3.根据权利要求1所述的方法,其特征在于,所述主节点根据所述元数据写请求存储所述元数据,并向所述2N个从节点分别发送所述元数据,包括:
所述主节点根据所述元数据写请求将所述元数据存储到所述主节点的内存中,并更新所述元数据对应的日志索引;
所述主节点将携带更新后的日志索引的元数据发送给所述2N个从节点;
若所述主节点接收到至少N个从节点在存储所述元数据之后返回的确认信息,所述主节点将所述内存中存储的元数据更新到所述主节点的外部存储器中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主节点按照预置的时间周期将所述主节点中存储的元数据发送给所述2N个从节点。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主节点向所述分布式存储***中的2N个从节点发送心跳包,以使所述2N个从节点根据所述心跳包确定所述主节点是否无法对外提供服务。
6.一种元数据的处理装置,其特征在于,所述元数据的处理装置具体为分布式存储***中的主节点,所述分布式存储***包括:2N+1个节点,其中1个节点为主节点,其余节点为2N个从节点,所述N为非零自然数;所述元数据的处理装置,包括:
选主模块,用于若所述分布式存储***中的上一任主节点无法对外提供服务,由最早到达超时时间间隔的从节点开始投票选举,向所述分布式存储***中的其余节点发送选主请求,并将所述最早到达超时时间间隔的从节点设置为临时态;不同的节点对应有不同的超时时间间隔;
所述选主模块,还用于在所述最早到达超时时间间隔的从节点处于所述临时态的阶段,若发现现有主节点或者新的期限,则将所述最早到达超时时间间隔的从节点仍确定为从节点;
所述选主模块,还用于在所述最早到达超时时间间隔的从节点处于临时态的阶段,若发生超时则进入新一轮选举;
所述选主模块,还用于若所述最早到达超时时间间隔的从节点具有最大的主节点周期和最新的日志索引,并接收到至少N个节点的选主确认后,将所述最早到达超时时间间隔的从节点升级为新的主节点,使得主节点中存储有最新元数据,并向接入端提供读写服务,且所述接入端仅与所述分布式存储***中的主节点交互;所述分布式存储***中在每更换一个主节点时对主节点周期进行单调递增计数;在所述最早到达超时时间间隔的从节点升级为新的主节点时,若发现更新的期限,则将所述最早到达超时时间间隔的从节点重新确定为从节点;
获取模块,用于获取接入端发送的元数据写请求,所述元数据写请求包括:需要上传到所述分布式存储***中的元数据;所述接入端与所述分布式存储***之间的写操作通过所述主节点实现;
存储处理模块,用于根据所述元数据写请求存储所述元数据,并向所述2N个从节点分别发送所述元数据;
发送模块,用于若所述主节点接收到所述2N个从节点中至少N个从节点在存储所述元数据之后返回的确认信息,所述主节点向所述接入端发送元数据写响应。
7.根据权利要求6所述的装置,其特征在于,
所述获取模块,还用于获取接入端发送的元数据读请求;从所述主节点中获取到与所述元数据读请求对应的元数据;
所述发送模块,用于向所述接入端发送元数据读响应,所述元数据读响应包括:与所述元数据读请求对应的元数据。
8.根据权利要求6所述的装置,其特征在于,所述存储处理模块,包括:存储子模块和发送子模块,其中,
所述存储子模块,用于根据所述元数据写请求将所述元数据存储到所述主节点的内存中,并更新所述元数据对应的日志索引;
所述发送子模块,用于将携带更新后的日志索引的元数据发送给所述2N个从节点;
所述存储子模块,还用于若所述主节点接收到至少N个从节点在存储所述元数据之后返回的确认信息,将所述内存中存储的元数据更新到所述主节点的外部存储器中。
9.根据权利要求6所述的装置,其特征在于,所述发送模块,还用于按照预置的时间周期将所述主节点中存储的元数据发送给所述2N个从节点。
10.根据权利要求6所述的装置,其特征在于,所述发送模块,还用于向所述分布式存储***中的2N个从节点发送心跳包,以使所述2N个从节点根据所述心跳包确定所述主节点是否无法对外提供服务。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1-5任一项所述的元数据的处理方法。
12.一种服务器,其特征在于,包括:存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中存储的计算机程序;
所述计算机程序用于执行权利要求1-5任一项所述的元数据的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510746941.4A CN105426439B (zh) | 2015-11-05 | 2015-11-05 | 一种元数据的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510746941.4A CN105426439B (zh) | 2015-11-05 | 2015-11-05 | 一种元数据的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426439A CN105426439A (zh) | 2016-03-23 |
CN105426439B true CN105426439B (zh) | 2022-07-05 |
Family
ID=55504651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510746941.4A Active CN105426439B (zh) | 2015-11-05 | 2015-11-05 | 一种元数据的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105426439B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493309B (zh) * | 2016-06-13 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 一种分布式***中的文件写入方法及装置 |
CN106899648B (zh) | 2016-06-20 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN107547593B (zh) * | 2016-06-27 | 2020-05-08 | 华为技术有限公司 | 一种实现日志同步的方法、装置及分布式*** |
CN106294721B (zh) * | 2016-08-08 | 2020-05-19 | 无锡天脉聚源传媒科技有限公司 | 一种集群数据统计及导出方法及装置 |
CN107861958B (zh) * | 2016-09-22 | 2021-10-01 | 腾讯科技(深圳)有限公司 | 一种元数据同步方法及装置 |
CN108023914B (zh) * | 2016-11-03 | 2021-03-02 | 阿里巴巴集团控股有限公司 | 一种内存数据共享***、内存数据的写入以及读取方法 |
CN107038192B (zh) * | 2016-11-17 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 数据库容灾方法和装置 |
CN106777225B (zh) * | 2016-12-26 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种数据的迁移方法和*** |
CN106888261A (zh) * | 2017-02-27 | 2017-06-23 | 深圳市先河***技术有限公司 | 一种分布式文件传输方法、服务器及私有云设备 |
CN107196786A (zh) * | 2017-04-06 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种保证数据一致性和可用性的方法及装置 |
CN106945691B (zh) * | 2017-04-10 | 2019-06-21 | 湖南中车时代通信信号有限公司 | 自动列车监控***的服务器多中心实时热备切换装置 |
CN107045426B (zh) * | 2017-04-14 | 2020-12-15 | 北京粉笔蓝天科技有限公司 | 一种多副本读取方法和*** |
CN107295080B (zh) * | 2017-06-19 | 2020-12-18 | 北京百度网讯科技有限公司 | 应用于分布式服务器集群的数据存储方法和服务器 |
CN107786650B (zh) * | 2017-10-20 | 2021-06-18 | 郑州云海信息技术有限公司 | 一种存储介质和管理策略的同步方法、装置及*** |
CN109729111B (zh) * | 2017-10-27 | 2021-10-08 | 伊姆西Ip控股有限责任公司 | 用于管理分布式***的方法、设备和计算机程序产品 |
CN109729129B (zh) * | 2017-10-31 | 2021-10-26 | 华为技术有限公司 | 存储集群***的配置修改方法、存储集群及计算机*** |
CN108121768A (zh) * | 2017-11-30 | 2018-06-05 | 北京元心科技有限公司 | 分布式***数据处理方法及装置 |
CN108037897B (zh) * | 2017-12-14 | 2021-11-09 | 郑州云海信息技术有限公司 | 一种元数据扩散的方法、计算机装置及可读存储介质 |
CN108234630B (zh) * | 2017-12-29 | 2021-03-23 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读取方法及装置 |
CN108234641B (zh) * | 2017-12-29 | 2021-01-29 | 北京奇元科技有限公司 | 基于分布式一致性协议实现的数据读写方法及装置 |
CN110737716B (zh) * | 2018-07-02 | 2022-09-23 | 华为技术有限公司 | 一种数据写入的方法和装置 |
JP7019096B2 (ja) * | 2018-08-30 | 2022-02-14 | ドルビー・インターナショナル・アーベー | 低ビットレート符号化オーディオの増強を制御する方法及び機器 |
CN110955382A (zh) * | 2018-09-26 | 2020-04-03 | 华为技术有限公司 | 一种在分布式***中写入数据的方法和装置 |
CN109445717B (zh) * | 2018-11-15 | 2022-01-11 | 北京国电通网络技术有限公司 | 一种双机备份时的数据存储方法及装置 |
CN109947733A (zh) * | 2019-03-29 | 2019-06-28 | 众安信息技术服务有限公司 | 数据存储装置与方法 |
CN112540966A (zh) * | 2019-09-23 | 2021-03-23 | 华为技术有限公司 | 一种文件同步的方法及装置 |
CN110852239B (zh) * | 2019-11-06 | 2022-08-30 | 金陵科技学院 | 一种人脸识别*** |
CN111506555B (zh) * | 2020-03-13 | 2023-05-23 | 平安科技(深圳)有限公司 | Druid集群的迁移方法、装置及计算机设备 |
CN115088235B (zh) * | 2020-03-17 | 2024-05-28 | 深圳市欢太科技有限公司 | 主节点选取方法、装置、电子设备以及存储介质 |
WO2021226905A1 (zh) * | 2020-05-14 | 2021-11-18 | 深圳市欢太科技有限公司 | 一种数据存储方法、***及存储介质 |
CN111899885A (zh) * | 2020-06-28 | 2020-11-06 | 万达信息股份有限公司 | 一种分布式人员事件索引实现方法和*** |
CN113778331B (zh) * | 2021-08-12 | 2024-06-07 | 联想凌拓科技有限公司 | 一种数据处理方法、主节点及存储介质 |
CN114237497B (zh) * | 2021-11-30 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 一种分布式存储方法及装置 |
CN114115750B (zh) * | 2022-01-24 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种应用于全闪存存储的缓存方法和装置 |
CN114598710A (zh) * | 2022-03-14 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种分布式存储集群数据同步的方法、装置、设备及介质 |
CN115665159B (zh) * | 2022-12-14 | 2023-04-28 | 中国华能集团清洁能源技术研究院有限公司 | 一种大数据环境下的元数据管理方法及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6684270B1 (en) * | 2000-06-02 | 2004-01-27 | Nortel Networks Limited | Accelerated file system that recognizes and reroutes uncontested read operations to a second faster path for use in high-capacity data transfer systems |
CN101741911B (zh) * | 2009-12-18 | 2014-04-30 | 中兴通讯股份有限公司 | 基于多副本协同的写操作方法、***及节点 |
CN102791046B (zh) * | 2011-05-23 | 2015-11-25 | 同济大学 | 一种机会网络中的元数据交换方法及交换节点 |
CN103106286B (zh) * | 2013-03-04 | 2017-02-01 | 曙光信息产业(北京)有限公司 | 元数据的管理方法和装置 |
CN103268318B (zh) * | 2013-04-16 | 2016-04-13 | 华中科技大学 | 一种强一致性的分布式键值数据库***及其读写方法 |
CN104092746B (zh) * | 2014-06-30 | 2018-04-13 | 北京华电天益信息科技有限公司 | 一种运维审计***及用在其***中的网络负载均衡方法 |
CN104320459B (zh) * | 2014-10-24 | 2018-01-09 | 新华三技术有限公司 | 一种节点管理方法和装置 |
-
2015
- 2015-11-05 CN CN201510746941.4A patent/CN105426439B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105426439A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426439B (zh) | 一种元数据的处理方法和装置 | |
CN102265277B (zh) | 数据存储***的操作方法和装置 | |
CN106777225B (zh) | 一种数据的迁移方法和*** | |
US9367410B2 (en) | Failover mechanism in a distributed computing system | |
CN107919977B (zh) | 一种基于Paxos协议的在线扩容、在线缩容的方法和装置 | |
WO2018045820A1 (zh) | 一种文件同步的方法、设备及*** | |
JP5851055B2 (ja) | データ格納方法および装置 | |
US11068499B2 (en) | Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching | |
CN110048896B (zh) | 一种集群数据获取方法、装置及设备 | |
CN108829720B (zh) | 数据处理方法及装置 | |
US9152491B2 (en) | Job continuation management apparatus, job continuation management method and job continuation management program | |
WO2016177231A1 (zh) | 基于双主控的主备倒换方法及装置 | |
CN110099084B (zh) | 一种保证存储服务可用性的方法、***及计算机可读介质 | |
CN105760519A (zh) | 一种集群文件***及其文件锁分配方法 | |
CN111552701B (zh) | 确定分布式集群中数据一致性的方法及分布式数据*** | |
CN115599747B (zh) | 一种分布式存储***的元数据同步方法、***及设备 | |
WO2015157904A1 (zh) | 一种文件同步方法、服务器及终端 | |
CN111049928A (zh) | 数据同步方法、***、电子设备及计算机可读存储介质 | |
CN105306581A (zh) | 一种基于路由器和云盘数据同步的方法 | |
CN114722092A (zh) | 时序数据处理方法、***、存储介质和电子设备 | |
CN106855869B (zh) | 一种实现数据库高可用的方法、装置和*** | |
CN112052230A (zh) | 多机房数据同步方法、计算设备及存储介质 | |
CN112087506B (zh) | 一种集群节点管理方法、装置及计算机存储介质 | |
JP2014016953A (ja) | 無共有型データベースシステム、同期装置、データベースサーバ、その同期方法および同期プログラム | |
CN108847980A (zh) | 一种ctdb节点故障虚拟ip迁移的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |