CN107967291B - 日志条目复制方法、装置、计算机设备及存储介质 - Google Patents
日志条目复制方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN107967291B CN107967291B CN201710949026.4A CN201710949026A CN107967291B CN 107967291 B CN107967291 B CN 107967291B CN 201710949026 A CN201710949026 A CN 201710949026A CN 107967291 B CN107967291 B CN 107967291B
- Authority
- CN
- China
- Prior art keywords
- node
- journal entries
- log
- index
- entries
- 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
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/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/30—Decision processes by autonomous network management units using voting and bidding
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种日志条目复制方法、装置、计算机设备及存储介质,属于区块链技术领域。所述方法包括:向多个第二节点并行发送多个第一日志条目;接收任一个第二节点的至少一个确认响应;根据第二节点的日志索引,确定第二节点的待补发的至少一条第二日志条目;向第二节点并行发送至少一条第二日志条目。本发明中由于多个第一日志条目是并行发送至多个第二节点的,且为了避免由于网络问题导致第二节点发生诸如漏收或者多收等错误接收日志条目的情况,第一节点还提供了日志条目的补发机制,在保证节点集群内各个节点数据一致的同时,节省了发送多个第一日志条目的时间,提高了日志条目复制的效率。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种日志条目复制方法、装置、计算机设备及存储介质。
背景技术
随着信息技术的不断发展,为了提高了数据的安全性,确保数据的公开透明,目前通常基于节点集群为客户端提供数据记录服务。在基于节点集群为客户端提供数据记录服务时,节点集群中的各个节点所存储的日志均对应一条相同的区块链。当客户端需要将待记录数据添加至节点集群中各个节点的日志中时,实质上是将该待记录数据复制到节点上区块链中当前区块的下一区块中,由于已经存储至节点的区块链中的数据不可更改,因此,可以有效地防止待记录数据被篡改,提高数据的安全性。
在进行数据记录时,节点集群中节点的工作状态可分为Follower(跟随状态)、Candidate(候选状态)和Leader(领导状态),也即是节点集群中的节点可以分为跟随节点、候选节点以及领导节点。参见图1,在已经确定节点A为领导节点,节点B、节点C和节点D为跟随节点的情况下,当客户端向节点A下发的提交指令时,节点A将该提交指令添加至自身的日志中,形成日志条目,并向节点B、节点C和节点D广播日志条目。当接收到节点A广播的日志条目后,节点B、节点C和节点D向节点集群中的其他节点广播该日志条目的条目索引。对于节点B、节点C和节点D中的任一节点,当基于共识算法确定节点集群中的节点达成共识,则将该日志条目复制至其日志中,当复制完成时,更新节点自身的日志索引,并向节点A发送确认响应。当节点A基于共识算法确定节点集群中的节点达成共识后,向客户端发送提交成功响应。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
该节点集群对数据记录过程为串行进行,也即是,当存在多个客户端同时向节点集群下发日志条目时,节点集群中的节点需要等待当前客户端的数据记录过程完毕后,才可以处理下一个客户端的日志条目,导致日志条目复制的效率低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种日志条目复制方法、装置、计算机设备及存储介质。所述技术方案如下:
一方面,提供了一种日志条目复制方法,所述方法应用于节点集群中的运行于领导状态的第一节点,所述节点集群中还包括运行于跟随状态的多个第二节点,所述方法包括:
向所述多个第二节点并行发送多个第一日志条目,每个第一日志条目用于指示第二节点对所述第一日志条目进行复制;
接收任一个第二节点的至少一个确认响应,每个确认响应携带所述第二节点的日志索引;
根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目;
向所述第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对所述第二日志条目进行复制。
一方面,提供了一种日志条目复制方法,所述方法应用于节点集群中的运行于跟随状态的第二节点,所述节点集群中还包括运行于领导状态的第一节点,所述方法包括:
并行接收第一节点发送的多个日志条目,每个日志条目用于指示第二节点对所述日志条目进行记录;
按照每个日志条目的条目索引将日志条目复制至所述第二节点的日志中,并更新所述第二节点的日志索引;
向所述第一节点发送确认响应,所述确认响应携带所述第二节点的日志索引。
一方面,提供了一种日志条目复制装置,所述装置应用于节点集群中的运行于领导状态的第一节点,所述节点集群中还包括运行于跟随状态的多个第二节点,所述装置包括:
发送模块,用于向所述多个第二节点并行发送多个第一日志条目,每个第一日志条目用于指示第二节点对所述第一日志条目进行复制;
接收模块,用于接收任一个第二节点的至少一个确认响应,每个确认响应携带所述第二节点的日志索引;
确定模块,用于根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目;
所述发送模块,还用于向所述第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对所述第二日志条目进行复制。
一方面,提供了一种日志条目复制装置,所述装置应用于节点集群中的运行于跟随状态的第二节点,所述节点集群中还包括运行于领导状态的第一节点,所述装置包括:
接收模块,用于并行接收第一节点发送的多个日志条目,每个日志条目用于指示第二节点对所述日志条目进行记录;
复制模块,用于按照每个日志条目的条目索引将日志条目复制至所述第二节点的日志中,并更新所述第二节点的日志索引;
发送模块,用于向所述第一节点发送确认响应,所述确认响应携带所述第二节点的日志索引。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可执行指令,所述处理器执行所述计算机可执行指令时实现上下述日志条目复制方法:向所述多个第二节点并行发送多个第一日志条目,每个第一日志条目用于指示第二节点对所述第一日志条目进行复制;接收任一个第二节点的至少一个确认响应,每个确认响应携带所述第二节点的日志索引;根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目;向所述第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对所述第二日志条目进行复制。
一方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行以完成下述日志条目复制方法:向所述多个第二节点并行发送多个第一日志条目,每个第一日志条目用于指示第二节点对所述第一日志条目进行复制;接收任一个第二节点的至少一个确认响应,每个确认响应携带所述第二节点的日志索引;根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目;向所述第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对所述第二日志条目进行复制。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可执行指令,其特征在于,所述处理器执行所述计算机可执行指令时实现下述日志条目复制方法:并行接收第一节点发送的多个日志条目,每个日志条目用于指示第二节点对所述日志条目进行记录;按照每个日志条目的条目索引将日志条目复制至所述第二节点的日志中,并更新所述第二节点的日志索引;向所述第一节点发送确认响应,所述确认响应携带所述第二节点的日志索引。
一方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行以完成下述日志条目复制方法:并行接收第一节点发送的多个日志条目,每个日志条目用于指示第二节点对所述日志条目进行记录;按照每个日志条目的条目索引将日志条目复制至所述第二节点的日志中,并更新所述第二节点的日志索引;向所述第一节点发送确认响应,所述确认响应携带所述第二节点的日志索引。
本发明实施例提供的技术方案带来的有益效果是:
第一节点通过向多个第二节点并行发送多个第一日志条目,并接收任一个第二节点的至少一个携带第二节点的日志索引的确认响应,以便根据第二节点的日志索引,向第二节点并行发送至少一条第二日志条目,由于多个第一日志条目是并行发送至多个第二节点的,且为了避免由于网络问题导致第二节点发生诸如漏收或者多收等错误接收日志条目的情况,第一节点还提供了日志条目的补发机制,在保证节点集群内各个节点数据一致的同时,节省了发送多个第一日志条目的时间,提高了日志条目复制的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有的日志条目复制方法示意图;
图2是本发明实施例提供的日志条目复制方法的实施环境示意图;
图3A是本发明实施例提供的日志条目复制方法流程图;
图3B是本发明实施例提供的日志条目复制方法示意图;
图3C是本发明实施例提供的日志条目复制方法示意图;
图3D是本发明实施例提供的日志条目复制方法示意图;
图3E是本发明实施例提供的日志条目复制方法示意图;
图4A是本发明实施例提供的日志条目复制装置结构示意图;
图4B是本发明实施例提供的日志条目复制装置结构示意图;
图4C是本发明实施例提供的日志条目复制装置结构示意图;
图4D是本发明实施例提供的日志条目复制装置结构示意图;
图5A是本发明实施例提供的日志条目复制装置结构示意图;
图5B是本发明实施例提供的日志条目复制装置结构示意图;
图5C是本发明实施例提供的日志条目复制装置结构示意图;
图6是本发明实施例提供的计算机设备600结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的节点运行的实施环境进行简单的介绍。
参见图2所示的节点运行的实施环境,该实施环境是由多个节点构成的系统,该系统也相当于一个节点集群,各个节点是指能够进行共识运算、存储数据、转发数据以及验证数据等行为的基本单元,节点可以为一台或多台计算机设备组成,根据该节点集群中各个节点的工作状态,可以将节点分为领导节点和跟随节点。如图2所示,节点A为该节点集群中的领导节点,节点B和节点C为该节点集群中的跟随节点,在节点A工作正常时,可以定时的向节点B和节点C广播心跳信息,节点B和节点C在接收到心跳信息时,可以确定节点A工作正常,并重置心跳定时器,等待接收下一个心跳信息。由于节点集群中可能存在入侵到节点集群中试图篡改跟随节点中数据的欺诈节点,为了防止欺诈节点伪装成领导节点向节点集群中的跟随节点发送伪心跳信息,因此,领导节点在向跟随节点发送心跳信息时,通常在心跳信息中携带各个跟随节点在选举领导节点时的投票签名,以此证明自己为真实的领导节点。
在该节点集群为客户端提供数据记录服务时,客户端向节点集群中的领导节点下发多个提交指令,由领导节点将该多个提交指令添加至自身的日志中,形成多个日志条目,并将该多个日志条目并行发送至节点集群中的各个跟随节点。需要说明的是,为了避免欺诈节点对领导节点发送的多个日志条目篡改,领导节点在向跟随节点发送日志条目时,可以基于算法签名对日志条目进行加密,例如,可以基于RSA(Ron Rivest AdiShamirLeonard Adleman,非对称加密)算法对日志条目进行加密。当跟随节点并行接收到该多个日志条目后,会按照每个日志条目的条目索引对日志条目进行复制,并当日志条目复制完成后,向领导节点返回携带日志索引的确认响应,以使领导节点获知跟随节点当前已经完成日志条目的复制。在实际应用的过程中,该节点集群可为底层基于区块链技术的数据共享系统,每个节点上存储有区块链,区块链由多个区块链接起来形成,该日志条目可为客户端提交的记录数据,节点集群中的每个节点所存储的日志可以对应一条区块链,当添加记录数据至日志中时形成日志条目的过程,实际上是将该记录数据以区块的形式存储为当前区块的下一区块中的过程。需要说明的是,该记录数据可以为交易数据等。
为了便于理解后续实施例,在此先对一些名词进行解释:
条目索引(block index或block hight),用于指示日志条目,也即是用于指示一个区块;
日志索引(commit index),用于指示一个节点在当前运行周期(term)内,当前对日志条目的复制情况;
最大提交索引(Last append index),用于指示一个节点已提交的日志条目。
图3A是本发明实施例提供的日志条目复制方法流程图,为了便于描述,在本发明实施例中,第一节点是指节点集群中的运行于领导状态的节点,也即领导节点;第二节点是指节点集群中的运行于跟随状态的节点,也即跟随节点,如图3A所示,该方法包括以下步骤。
300、第一节点接收客户端下发的多个提交指令,将该多个提交指令添加至第一节点的日志中,形成多个第一日志条目。
该提交指令用于向节点集群提交记录数据,使得节点集群能够将该记录数据记录在各个节点上。而对于节点集群所服务的任一个客户端来说,其可以所发送多个提交指令,也可以是由多个客户端所发送多个提交指令,本发明实施例对此不做限定。
301、第一节点确定发送窗口,采用多线程向多个第二节点并行发送该发送窗口内的多个第一日志条目,每个第一日志条目用于指示第二节点对第一日志条目按照条目索引进行复制。
在本发明实施例中,为了实现将多个日志条目并行发送至多个第二节点,可以设置发送窗口,并基于发送窗口发送多个第一日志条目。发送窗口的大小由网络带宽决定,大小可以调节,发送窗口的窗口宽度用于指示并行发送的日志条目的数量,通常情况下可以基于下述公式1确定发送窗口的窗口宽度。
公式1:网络带宽=多个日志条目的数据大小*窗口宽度*节点个数
第一节点在基于发送窗口发送多个第一日志条目时,可以基于多线程,并在发送队列中的每一个线程中添加一条第一日志条目,通过该多线程对第一日志条目进行无序的发送,以实现并行发送。例如,参见图3B所示的发送窗口,发送窗口的发送队列为Queue(队列),Queue中包括4个线程,分别为Thread1、Thread2、Thread3和Thread4,该4个线程均包括一条第一日志条目,第一日志条目包括Sign(签名)和Send(发送)标识。这种并行发送的方式可以称作并行流水线,由于采用了无序发送的方式,因此避免了串行发送日志条目时所需的发送耗时,以发送一条日志条目需要10ms为例,如果采用串行发送,则每秒仅能够发送100条,而采取上述并行发送的方式,则可以达到对带宽最大利用的目的,假如发送窗口为50条,则并行发送50条仅需要10ms左右,发送100条的时间能够降低到20ms左右,能够将整体发送耗时可以降低几十倍,这种发送方式大大的提高了数据的吞吐量。
需要说明的是,由于第一节点并行发送多个第一日志条目,因此,第二节点接收到的多个第一日志条目可能为乱序的状态,为了保证第二节点可以按顺序复制多个数据条目,第一日志条目中还会携带用于指示日志条目复制顺序的条目索引,以便第二节点在接收到乱序的日志条目时,仍可以按顺序复制日志条目。
在实际应用的过程中,第一节点在向多个第二节点并行发送该发送窗口内的多个第一日志条目时,也可以不采用发送窗口以及多线程,仅需同时将多个第一日志条目并行发送至多个第二节点。本发明对第一节点并行发送多个第一日志条目的方式不进行具体限定。
另外,在本发明实施例中,发送窗口为第一节点在接收到客户端下发的多个提交指令后实时确定的。在确定发送窗口时,可以先对网络当前的可用带宽进行检测,并根据可用带宽确定发送窗口。而在实际应用的过程中,可以预先基于网络最大带宽配置发送窗口,以便在后续的并行发送过程中直接使用。本发明实施例对第一节点确定发送窗口的时机不进行具体限定。
302、第二节点并行接收第一节点发送的多个第一日志条目。
在本发明实施例中,第二节点可以设置接收窗口,并基于接收窗口接收多个第一日志条目。接收窗口的大小可由网络带宽决定,大小可以调节,接收窗口的窗口宽度用于指示并行接收的日志条目的数量。其中,接收窗口的窗口宽度的确定方法与上述步骤301中发送窗口的窗口宽度的确定方法一致,此处不再进行赘述。
第二节点在基于接收窗口接收多个第一日志条目时,可以基于多线程组成接收窗口的接收队列。其中,接收队列可为Concurrent Skip List Map(并行跳表)的形式,本发明实施例对接收队列的形式不进行具体限定。对于接收到的多个第一日志条目中的每一个第一日志条目,第二节点可获取第一日志条目中的签名,基于第二节点上所存储的第一节点公钥,对该签名进行校验,以防止接收到欺诈节点发送的欺诈数据。例如,参见图3C所示的接收窗口,接收窗口的接收队列为Concurrent Skip List Map,Concurrent Skip ListMap中包括4个线程,分别为Thread5、Thread6、Thread7和Thread8,该四个线程均包括一条第一日志条目,第一日志条目包括Sign和Send标识。
本发明实施例以节点集群中的一个第二节点为例进行说明,而在实际应用的过程中,节点集群中存在多个第二节点,且多个第二节点上均执行本发明实施例中所示的操作。需要说明的是,由于网络中存在延迟且可能发生数据丢失的状况,第一节点并行发送的多个第一日志条目可能不会同时到达第二节点,也即第二节点可能不会同时接收到第一节点发送的全部第一日志条目;进一步地,如果发生数据丢失的情况,则第二节点可能不会接收到第一节点发送的全部第一日志条目,因此,该步骤302中第二节点接收到的第一日志条目的数量与步骤301中第一节点发送的第一日志条目的数量之间可能存在差异。
303、第二节点按照每个日志条目的条目索引将日志条目复制至日志中,当复制完任一个日志条目且已接收到的日志条目中不包括与日志条目的条目索引连续的指定日志条目时,将已接收到的日志条目中未复制的日志条目存储至缓存队列中。
发明人认识到,由于第一节点在向第二节点发送多个第一日志条目时采用的是并行发送方式,因此,第二节点接收到的多个第一日志条目很可能为乱序的状态。第二节点在对多个第一日志条目中的日志条目进行复制时,通常需要按顺序进行串行复制,因此,每个日志条目均对应一个条目索引(也即是区块高度:Block Height),使得第二节点在接收到乱序到达的第一日志条目时,仍可以按照条目索引正确的复制第一日志条目,以使得第二节点的区块链与第一节点的区块链能够保持数据一致。
另外,由于第二节点按顺序复制日志条目的机制,若第二节点即将复制的下一个日志条目尚未接收到,也即指定日志条目尚未接收到,则第二节点便无法继续日志条目的复制操作,需要等待接收到该指定日志条目才可以继续工作,而此时第二节点仍会接收到并行到达的其他第一日志条目,为了避免接收第一日志条目与等待接收指定日志条目的过程之间发生影响,因此,在第二节点中增加缓存队列。缓存队列用于存储第二节点已经接收到、但是暂时由于条目索引与当前已经复制完成的日志条目的条目索引不连接的未复制的日志条目。这样,当第二节点在后续接收到条目索引与当前已经复制完成的日志条目的条目索引连续的指定日志条目时,可以在缓存队列中提取未复制的日志条目继续复制,在保证对日志条目的按顺序复制的同时,也不影响对第一日志条目的接收,因而,提高了日志条目的复制效率。
304、当第二节点复制完任一个日志条目时,更新日志索引,向第一节点发送确认响应,确认响应携带第二节点的日志索引。
在本发明实施例中,该第二节点的日志索引事实上是第二节点的最新日志索引,用于指示该第二节点最新存储的日志。该最新日志索引可以表征一个节点上的日志完整性。对于任一个第二节点来说,由于其在接收到了日志条目后,会向其他第二节点广播接收到的日志条目的条目索引,以便与节点集群中的其他第二节点达成共识,当基于共识算法确定节点集群中的节点达成共识时,第二节点将该日志条目复制到自己的日志,并将自身的日志索引进行更新。例如,第二节点在完成将日志条目复制到自己的日志后,可以在自身当前的日志索引上加1,以得到最新日志索引,并在后续将携带最新日志索引的确认响应发送至第一节点。其中,日志索引可以用Commit_index表示。
需要说明的是,由于网络中存在波动,第二节点接收第一日志条目可能发生延迟,导致第二节点不能及时向第一节点返回确认响应,此时,第一节点有可能认为第一日志条目发生丢包,因此导致第二节点没有及时返回确认响应。这样,第一节点便会向第二节点再次下发该第一日志条目。对于第二节点来说,第二节点有可能多次接收到同一条日志条目。为了及时告知第一节点当前已经多次接收到相同日志条目,避免第一节点多次补发造成带宽的占用,因此,第二节点在接收到日志条目时,会对日志条目的条目索引进行计数,并当任一个日志条目的接收次数大于或等于两次时,再次向第一节点发送携带第二节点的日志索引的确认响应,以使第一节点获知当前第二节点未发生丢包现象,无需再次进行补发。在实际应用的过程中,第二节点在对日志条目的条目索引进行计数时,可以基于收包计数器实现。参见图3D,第二节点中存在用于对日志条目的条目索引进行计数的Receive Counter(收包计数器),第一节点发送的第一日志条目分别为条目1、条目2、条目3、条目4和条目5,当第二节点接收到上述5个第一日志条目时,第二节点中的Receive Counter便会对应5个第一日志条目的接收次数增加1。
305、第一节点接收任一个第二节点的至少一个确认响应,为第二节点维护确认列表,每接收到一个确认响应时,如果新接收到的确认响应中的日志索引大于第二节点在确认列表中的日志索引,更新第二节点的确认列表中的日志索引。
在本发明实施例中,为了确定是否需要向第二节点补发日志条目,第一节点可以维护确认列表,并在第二节点返回的确认响应中提取第二节点的日志索引,基于日志索引对确认列表进行实时更新。其中,第一节点可为每一个第二节点维护一个与其对应的确认列表,在第二节点返回的确认响应中提取日志索引,并将日志索引添加至第二节点自身的确认列表中;或第二节点可以仅维护一个确认列表,将全部第二节点返回的确认响应中的日志索引均存储至该确认列表,并实时对该确认列表进行更新。其中,确认列表可以用Commit_table表示。
由于第二节点在进行日志条目的复制时会按条目索引进行复制,因此,第二节点向第一节点返回的确认响应中携带的日志索引是递增的,也即随着时间的推移,对于同一个第二节点,第一节点接收到的该第二节点返回的确认响应中携带的日志索引会越来越大,因此,第一节点每接收到一个确认响应时,便会将该确认响应中携带的日志索引与确认列表中第二节点当前的日志索引进行比对,如果新接收到的日志索引大于确认列表中第二节点当前的日志索引,则将新接收到的日志索引更新至确认列表中第二节点对应的日志索引。例如,对应节点A,若当前确认列表中节点A对应的日志索引为index3,若第一节点此时接收到节点A返回的携带index6的确认响应,则第一节点将确认列表中节点A对应的日志索引更新为index6。
需要说明的是,在实际应用的过程中,第一节点也可以不维护确认列表,仅将第二节点的节点标识与当前接收到的第二节点返回的日志索引对应记录,并在接收到第二节点新的确认响应时,将记录中第二节点的节点标识对应的日志索引删除,并将第二节点的节点标识与新的确认响应中携带的日志索引对应记录即可。本发明对记录第二节点返回的日志索引的方式不进行具体限定。
306、如果确认响应中第二节点的日志索引小于预设阈值,则第一节点将预设阈值与第一节点的最大提交索引之间的日志确定为第二节点的待补发的至少一条第二日志条目。
其中,预设阈值用于指示在正常情况下第二节点最低限度应该达到的日志索引。在本发明实施例中,为了及时对第二节点的丢包情况进行预测,并及时为第二节点补发第二节点可能丢失的日志条目,考虑到第二节点可能存在接收第一日志条目发生延迟的状况,第一节点中可以设置预设阈值,并每隔预设周期基于预设阈值对各个第二节点当前返回的确认响应中的日志索引进行检测,以便确定当前是否需要向第二节点补发日志条目以及补发哪些日志条目。
第一节点在每隔预设周期基于预设阈值对各个第二节点当前返回的确认响应中的日志索引进行检测时,通常将第二节点当前返回的确认响应中的日志索引与预设阈值进行比对,如果第二节点当前返回的确认响应中的日志索引小于预设阈值,则第一节点在当前需要向第二节点发送的全部日志条目的条目索引中确定最大提交索引,将预设阈值与最大提交索引之间条目索引对应的日志条目确定为第二节点的待补发的至少一条第二日志条目。例如,设第一节点最大提交索引为index100,预设阈值为50,若第一节点当前获取的第二节点返回的确认响应中的日志索引为index39,由于39小于50,则第一节点将index50至index100之间的条目索引对应的日志条目作为第二日志条目。
在实际应用的过程中,第一节点中也可以不设置预设阈值,这样第一节点可以每隔预设周期将确认列表中第二节点对应的日志索引与第一节点的最大提交索引进行比对,如果第二节点的日志索引小于第一节点的最大提交索引,则第一节点将第二节点的日志索引与第一节点的最大提交索引之间的条目索引对应的日志条目确定为第二节点的第二日志条目。例如,设第一节点的最大提交索引为index100,确认列表中第二节点对应的日志索引为index89,则第一节点可将index89至index100之间的条目索引对应的日志条目作为第二日志条目。这种确定第二日志条目的方式,可以提高补发的准确率。进一步地,上述过程通过每隔预设周期进行检测,给予各个第二节点一定的复制时间,避免由于过度检测而造成的数据不准确的情况,也可以避免由于实时检测而造成的对计算资源的过度占用。
307、第一节点向第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对第二日志条目进行复制。
在本发明实施例中,在确定需要向第二节点补发的第二日志条目后,第一节点便可以将第二日志条目并行发送至第二节点。其中,第一节点将至少一个第二日志条目并行发送至第二节点的过程与上述步骤301中所示的第一节点并行发送多个第一日志条目的过程一致,此处不再进行赘述。
308、第二节点接收第一节点发送的至少一条第二日志条目,在缓存队列中提取未复制的日志条目,按照每个日志条目的条目索引对日志条目进行复制。
在本发明实施例中,由于第二节点需要按照每个日志条目的条目索引对日志条目进行复制,因此,第一节点补发的第二日志条目的条目索引与当前已经复制完成的日志条目是连续的,且第二日志条目的条目索引与缓存队列中未复制的日志条目的条目索引也是连续的,这样,第二节点可以继续进行日志条目的复制工作。例如,若当前第二节点复制完成的日志条目的条目索引为3,缓存队列中存储有条目索引为5、6和7的未复制的日志条目,当第二节点接收到第一节点发送的第二日志条目后,在该第二日志条目中提取的日志条目的条目索引为4,则第二节点可以在缓存队列中将条目索引为5、6和7的未复制的日志条目提取出来,并继续按条目索引4、5、6、7的顺序复制对应的日志条目。
需要说明的是,第二节点接收第一节点发送的至少一条第二日志条目的过程以上述步骤302中所述的接收多个第一日志条目的过程一致,此处不再进行赘述。
在实际应用的过程中,由于节点集群中的领导节点可能存在崩溃的情况,或节点集群发生分裂,当前的领导节点自动降级为跟随节点,因此,节点集群中各个节点的工作状态是可以动态切换的,参见图3E,本发明实施例提供了一种节点工作状态的切换示意图。在节点集群中,领导节点会定时向跟随节点发送心跳信息,对于节点集群中的跟随节点来说,当跟随节点的心跳定时器在发生超时的情况下仍没有接收到领导节点发送的心跳信息,则跟随节点可以确定领导节点发生崩溃,跟随节点便会将工作状态切换为候选状态,成为候选节点;进一步地,候选节点重置心跳定时器,并向节点集群中的跟随节点广播投票请求,当接收到节点集群中半数以上的投票确认消息时,该候选节点将工作状态切换为领导状态,成为领导节点。需要说明的是,由于领导节点承载着向跟随节点发送日志条目的责任,因此,成为候选节点的跟随节点可以是节点集群中完成复制日志条目数量最多的节点。
在本发明实施例中,当节点集群中发生工作状态的切换时,一方面,第一节点可能会将自身的工作状态切换为跟随状态,成为跟随节点;另一方面,第二节点可能会将自身的工作状态切换为领导状态,成为领导节点。下面针对上述两种情况进行说明。
情况一、第一节点将工作状态切换为跟随状态。
当第一节点切换至跟随状态时,也即第一节点成为跟随节点,则第一节点清理未发送的日志条目,停止并行发送步骤。在实际应用中,由于第一节点基于发送窗口采用多线程并行发送多个第一日志条目,因此,第一节点将发送窗口尚未发送的日志条目清空,并将多线程关闭。由于第一节点已经为跟随节点,后续第一节点会接收新领导节点发送的多个日志条目,因此,第一节点在成为跟随节点后,可初始化接收窗口,并启动接收窗口的多个线程,以便后续并行接收新领导节点发送的多个日志条目。
需要说明的是,由于第一节点中存在已经完成复制的日志条目,因此,第一节点确定自身已经完成复制的日志条目的最大提交索引,将下一个需接收的日志条目的条目索引设置为第一节点自身的最大提交索引加1。例如,若第一节点当前已经完成复制的日志条目的最大提交索引为index56,则第一节点将下一个需接收的日志条目的条目索引设置为index57,以便接收新领导节点发送的携带index57对应的日志条目。
在这种场景下,一旦运行于领导状态的节点发生崩溃,上述清空尚未发送的日志条目以及关闭并行发送的多线程,可以避免该节点在节点集群里对其他节点的正常运行造成影响。
情况二、第二节点将工作状态切换为领导状态。
当第二节点切换至领导状态时,也即第二节点成为领导节点,则第二节点清理未复制的日志条目,停止并行接收步骤。在实际应用中,由于第二节点基于接收窗口采用多线程并行接收多个第一日志条目,且第二节点将当前已经接收到但未复制的日志条目添加至缓存队列中,因此,第二节点将缓存队列中未复制的日志条目清空,并将接收窗口的多线程关闭。由于第二节点已经成为领导节点,后续会向节点集群中的跟随节点发送多个日志条目,因此,第二节点在成为领导节点后,可初始化发送窗口,并启动发送窗口的多个线程,以便后续向跟随节点并行发送多个日志条目。
需要说明的是,由于第二节点在成为领导节点后并不知道各个跟随节点复制日志条目的进度,进而也不确定即将向各个跟随节点发送的日志条目的日志索引,因此,第二节点根据自身当前已经完成复制的日志条目的最大提交索引,为节点集群中处于跟随状态的节点设置确认列表,将每个处于跟随状态的节点的日志索引设置为第二节点自身的最大提交索引加1,以便触发跟随节点将当前已经完成复制的日志条目的日志索引返回给第二节点,使得第二节点获知节点集群中各个跟随节点的复制进度,并根据各个跟随节点的复制进度为跟随节点发送日志条目。例如,若第二节点当前已经完成复制的日志条目的最大提交索引为index99,则第二节点将每个处于跟随状态的节点的日志索引设置为index100,并向多个跟随节点发送携带index100对应的日志条目。
在本发明实施例中,第一节点通过向多个第二节点并行发送多个第一日志条目,并接收任一个第二节点的至少一个携带第二节点的日志索引的确认响应,以便根据第二节点的日志索引,向第二节点并行发送至少一条第二日志条目,由于多个第一日志条目是并行发送至多个第二节点的,且为了避免由于网络问题导致第二节点发生诸如漏收或者多收等错误接收日志条目的情况,第一节点还提供了日志条目的补发机制,在保证节点集群内各个节点数据一致的同时,节省了发送多个第一日志条目的时间,提高了日志条目复制的效率。
图4A是本发明实施例提供的日志条目复制装置结构示意图。参照图4A,该装置包括发送模块401,接收模块402和确定模块403。
该发送模块401,用于向多个第二节点并行发送多个第一日志条目,每个第一日志条目用于指示第二节点对第一日志条目进行复制;
该接收模块402,用于接收任一个第二节点的至少一个确认响应,每个确认响应携带第二节点的日志索引;
该确定模块403,用于根据第二节点的日志索引,确定第二节点的待补发的至少一条第二日志条目;
该发送模块401,还用于向第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对第二日志条目进行复制。
在本发明实施例中,第一节点通过向多个第二节点并行发送多个第一日志条目,并接收任一个第二节点的至少一个携带第二节点的日志索引的确认响应,以便根据第二节点的日志索引,向第二节点并行发送至少一条第二日志条目,由于多个第一日志条目是并行发送至多个第二节点的,且为了避免由于网络问题导致第二节点发生诸如漏收或者多收等错误接收日志条目的情况,第一节点还提供了日志条目的补发机制,在保证节点集群内各个节点数据一致的同时,节省了发送多个第一日志条目的时间,提高了日志条目复制的效率。
在另一个实施例中,该确定模块403,用于如果第二节点的日志索引小于预设阈值,则将预设阈值与第一节点的最大提交索引之间的日志确定为第二节点的待补发的至少一条第二日志条目。
在另一个实施例中,该确定模块403,用于如果第二节点的日志索引小于第一节点的最大提交索引,则将第二节点的日志索引与第一节点的最大提交索引之间的日志确定为第二节点的待补发的至少一条第二日志条目。
在另一个实施例中,参见图4B,该装置还包括更新模块404。
该更新模块404,用于为第二节点维护确认列表,每接收到一个确认响应时,如果新接收到的确认响应中的日志索引大于第二节点在确认列表中的日志索引,更新第二节点的确认列表中的日志索引;
该确定模块403,还用于每隔预设周期,执行根据第二节点的日志索引,确定第二节点的待补发的至少一条第二日志条目的步骤。
在另一个实施例中,参见图4C,该发送模块401,包括确定子模块4011和发送子模块4012。
该确定子模块4011,用于确定发送窗口,发送窗口的窗口宽度用于指示并行发送的日志条目的数量;
该发送子模块4012,用于采用多线程发送该发送窗口内的多个第一日志条目。
在另一个实施例中,参见图4D,该装置还包括清理模块405和设置模块406。
该清理模块405,用于当第一节点切换至跟随状态时,清理未发送的日志条目,停止并行发送步骤;
该设置模块406,用于根据第一节点自身的最大提交索引,将下一个需接收的日志索引设置为第一节点自身的最大提交索引加1。
图5A是本发明实施例提供的日志条目复制装置结构示意图。参照图5A,该装置包括接收模块501,复制模块502和发送模块503。
该接收模块501,用于并行接收第一节点发送的多个日志条目,每个日志条目用于指示第二节点对日志条目进行记录;
该复制模块502,用于按照每个日志条目的条目索引将日志条目复制至第二节点的日志中,并更新第二节点的日志索引;
该发送模块503,用于向第一节点发送确认响应,确认响应携带第二节点的日志索引。
在本发明实施例中,第一节点通过向多个第二节点并行发送多个第一日志条目,并接收任一个第二节点的至少一个携带第二节点的日志索引的确认响应,以便根据第二节点的日志索引,向第二节点并行发送至少一条第二日志条目,由于多个第一日志条目是并行发送至多个第二节点的,且为了避免由于网络问题导致第二节点发生诸如漏收或者多收等错误接收日志条目的情况,第一节点还提供了日志条目的补发机制,在保证节点集群内各个节点数据一致的同时,节省了发送多个第一日志条目的时间,提高了日志条目复制的效率。
在另一个实施例中,该复制模块502,用于当复制完任一个日志条目且已接收到的日志条目中不包括与日志条目的条目索引连续的指定日志条目时,将已接收到的日志条目中未复制的日志条目存储至缓存队列中,直到接收到指定日志条目时再继续进行复制。
在另一个实施例中,参见图5B,该装置还包括计数模块504。
该计数模块504,用于基于接收到的日志条目的条目索引进行计数;
该发送模块503,还用于当任一个日志条目的接收次数大于或等于两次,则执行向第一节点发送确认响应的步骤。
在另一个实施例中,参见图5C,该装置还包括清理模块505和设置模块506。
该清理模块505,用于当第二节点切换至领导状态时,清理未复制的日志条目,停止并行接收步骤;
该设置模块506,用于根据第二节点自身的最大提交索引,为节点集群中处于跟随状态的节点设置确认列表,每个节点的日志索引等于第二节点自身的最大提交索引加1。
需要说明的是:上述实施例提供的日志条目复制的装置在复制日志条目时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的日志条目复制的装置与日志条目复制的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本发明实施例提供的计算机设备600结构示意图。参见图6,该计算机设备600包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的视频数据处理方法。
总线是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器通过总线从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序编程接口(Application Programming Interface,API)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入输出接口转发用户通过输入输出设备(例如感应器、键盘、触摸屏)输入的命令或数据。显示设备显示各种信息给用户。通信接口将该计算机设备600与其它网络设备、用户设备、网络进行连接。例如,通信接口可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(Wireless Fidelity,WiFi),蓝牙(Bluetooth,BT),近距离无线通信技术(Near FieldCommunication,NFC),全球卫星定位系统(Global Positioning System,GPS)和蜂窝通信(cellular communication)(例如,长期演进技术(Long Term Evolution,LTE),长期演进技术的后续演进(Long Term Evolution–Advanced,LTE-A),码分多址(Code DivisionMultiple Access,CDMA),宽带码分多址(Wideband CDMA,WCDMA),通用移动通信系统(Universal Mobile Telecommunication System,UMTS),无线宽带接入(WirelessBroadband,WiBro)和全球移动通讯系统(Global System for Mobile communication,GSM)。有线通信可以包括以下至少一种:通用串行总线(Universal Serial Bus,USB),高清晰度多媒体接口(High Definition Multimedia Interface,HDMI),异步传输标准接口(Recommended Standard 232,RS-232),和普通老式电话业务(Plain Old TelephoneService,POTS)。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。计算机设备600可以通过通信接口连接网络,计算机设备600和其它网络设备通信所用的协议可以被应用、应用程序编程接口(Application ProgrammingInterface,API)、中间件、内核和通信接口至少一个支持。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种日志条目复制方法,其特征在于,所述方法应用于节点集群中的运行于领导状态的第一节点,所述节点集群中还包括运行于跟随状态的多个第二节点,所述方法包括:
确定发送窗口,所述发送窗口的窗口宽度用于指示并行发送的日志条目的数量;采用多线程发送所述发送窗口内的多个第一日志条目,每个第一日志条目用于指示第二节点对所述第一日志条目进行复制;
接收任一个第二节点的至少一个确认响应,每个确认响应携带所述第二节点的日志索引;
根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目;
向所述第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对所述第二日志条目进行复制。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目包括:
如果所述第二节点的日志索引小于预设阈值,则将所述预设阈值与所述第一节点的最大提交索引之间的日志确定为所述第二节点的待补发的至少一条第二日志条目。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目包括:
如果所述第二节点的日志索引小于所述第一节点的最大提交索引,则将所述第二节点的日志索引与所述第一节点的最大提交索引之间的日志确定为所述第二节点的待补发的至少一条第二日志条目。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述接收任一个第二节点的至少一个确认响应之后,所述方法还包括:
为所述第二节点维护确认列表,每接收到一个确认响应时,如果新接收到的确认响应中的日志索引大于所述第二节点在所述确认列表中的日志索引,更新所述第二节点的确认列表中的日志索引;
每隔预设周期,执行根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目的步骤。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一节点切换至跟随状态时,清理未发送的日志条目,停止并行发送步骤;
根据所述第一节点自身的最大提交索引,将下一个需接收的日志索引设置为所述第一节点自身的最大提交索引加1。
6.一种日志条目复制方法,其特征在于,所述方法应用于节点集群中的运行于跟随状态的第二节点,所述节点集群中还包括运行于领导状态的第一节点,所述方法包括:
设置接收窗口,所述接收窗口的窗口宽度用于指示并行接收的日志条目的数量;
基于多线程组成所述接收窗口的接收队列,并行接收第一节点发送的多个日志条目,每个日志条目用于指示第二节点对所述日志条目进行记录;
按照每个日志条目的条目索引将日志条目复制至所述第二节点的日志中,并更新所述第二节点的日志索引;
向所述第一节点发送确认响应,所述确认响应携带所述第二节点的日志索引。
7.根据权利要求6所述的方法,其特征在于,所述按照每个日志条目的条目索引将日志条目复制至所述第二节点的日志中包括:
当复制完任一个日志条目且已接收到的日志条目中不包括与所述日志条目的条目索引连续的指定日志条目时,将所述已接收到的日志条目中未复制的日志条目存储至缓存队列中,直到接收到所述指定日志条目时再继续进行复制。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
基于接收到的日志条目的条目索引进行计数;
当任一个日志条目的接收次数大于或等于两次,则执行向所述第一节点发送确认响应的步骤。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述第二节点切换至领导状态时,清理未复制的日志条目,停止并行接收步骤;
根据所述第二节点自身的最大提交索引,为所述节点集群中处于跟随状态的节点设置确认列表,每个节点的日志索引等于所述第二节点自身的最大提交索引加1。
10.一种日志条目复制装置,其特征在于,所述装置应用于节点集群中的运行于领导状态的第一节点,所述节点集群中还包括运行于跟随状态的多个第二节点,所述装置包括:
发送模块,用于确定发送窗口,所述发送窗口的窗口宽度用于指示并行发送的日志条目的数量;采用多线程发送所述发送窗口内的多个第一日志条目,每个第一日志条目用于指示第二节点对所述第一日志条目进行复制;
接收模块,用于接收任一个第二节点的至少一个确认响应,每个确认响应携带所述第二节点的日志索引;
确定模块,用于根据所述第二节点的日志索引,确定所述第二节点的待补发的至少一条第二日志条目;
所述发送模块,还用于向所述第二节点并行发送至少一条第二日志条目,每个第二日志条目用于指示第二节点对所述第二日志条目进行复制。
11.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可执行指令,所述处理器执行所述计算机可执行指令时实现权利要求1-5任一项所述的日志条目复制方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行以完成权利要求1-5任一项所述的日志条目复制方法。
13.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可执行指令,所述处理器执行所述计算机可执行指令时实现权利要求6-9任一项所述的日志条目复制方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行以完成权利要求6-9任一项所述的日志条目复制方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710949026.4A CN107967291B (zh) | 2017-10-12 | 2017-10-12 | 日志条目复制方法、装置、计算机设备及存储介质 |
CN201910670330.4A CN110377570B (zh) | 2017-10-12 | 2017-10-12 | 节点切换方法、装置、计算机设备及存储介质 |
PCT/CN2018/107512 WO2019072085A1 (zh) | 2017-10-12 | 2018-09-26 | 日志条目复制方法、装置、计算机设备及存储介质 |
EP18866263.9A EP3623963B1 (en) | 2017-10-12 | 2018-09-26 | Log entry duplication method and device, computer equipment, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710949026.4A CN107967291B (zh) | 2017-10-12 | 2017-10-12 | 日志条目复制方法、装置、计算机设备及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910670330.4A Division CN110377570B (zh) | 2017-10-12 | 2017-10-12 | 节点切换方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107967291A CN107967291A (zh) | 2018-04-27 |
CN107967291B true CN107967291B (zh) | 2019-08-13 |
Family
ID=61997602
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710949026.4A Active CN107967291B (zh) | 2017-10-12 | 2017-10-12 | 日志条目复制方法、装置、计算机设备及存储介质 |
CN201910670330.4A Active CN110377570B (zh) | 2017-10-12 | 2017-10-12 | 节点切换方法、装置、计算机设备及存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910670330.4A Active CN110377570B (zh) | 2017-10-12 | 2017-10-12 | 节点切换方法、装置、计算机设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3623963B1 (zh) |
CN (2) | CN107967291B (zh) |
WO (1) | WO2019072085A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967291B (zh) * | 2017-10-12 | 2019-08-13 | 腾讯科技(深圳)有限公司 | 日志条目复制方法、装置、计算机设备及存储介质 |
CN108769150B (zh) * | 2018-05-14 | 2021-11-12 | 百度在线网络技术(北京)有限公司 | 区块链网络的数据处理方法、装置、集群节点和存储介质 |
CN109492049B (zh) * | 2018-09-21 | 2021-05-04 | 上海点融信息科技有限责任公司 | 用于区块链网络的数据处理、区块生成及同步方法 |
CN110706101B (zh) * | 2019-08-30 | 2021-06-29 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
EP3673376B1 (en) | 2019-09-12 | 2022-11-30 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
SG11202002364TA (en) | 2019-09-12 | 2020-04-29 | Alibaba Group Holding Ltd | Log-structured storage systems |
CN111083192B (zh) * | 2019-11-05 | 2023-02-17 | 北京字节跳动网络技术有限公司 | 数据共识方法、装置及电子设备 |
CN111431802B (zh) * | 2020-03-25 | 2022-09-16 | 中国工商银行股份有限公司 | 区块链节点通信优化系统及方法 |
CN111555860B (zh) * | 2020-04-09 | 2023-04-21 | 中信梧桐港供应链管理有限公司 | 一种区块链节点共识方法、装置、电子设备及存储介质 |
CN113609229B (zh) * | 2021-08-18 | 2023-10-20 | 东北大学 | Fabric区块链中的快速日志复制方法及装置 |
CN115437843B (zh) * | 2022-08-25 | 2023-03-28 | 北京万里开源软件有限公司 | 一种基于多级分布式共识的数据库存储分区恢复方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107105032A (zh) * | 2017-04-20 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367410B2 (en) * | 2014-09-12 | 2016-06-14 | Facebook, Inc. | Failover mechanism in a distributed computing system |
CN106202075B (zh) * | 2015-04-29 | 2021-02-19 | 中兴通讯股份有限公司 | 一种数据库主备切换的方法及装置 |
US10103801B2 (en) * | 2015-06-03 | 2018-10-16 | At&T Intellectual Property I, L.P. | Host node device and methods for use therewith |
CN106301853B (zh) * | 2015-06-05 | 2019-06-18 | 华为技术有限公司 | 集群系统中节点的故障检测方法和装置 |
CN106484709A (zh) * | 2015-08-26 | 2017-03-08 | 北京神州泰岳软件股份有限公司 | 一种日志数据的审计方法和审计装置 |
CN106060036B (zh) * | 2016-05-26 | 2019-07-16 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN106254100B (zh) * | 2016-07-27 | 2019-04-16 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置和系统 |
CN106777270A (zh) * | 2016-12-28 | 2017-05-31 | 中国民航信息网络股份有限公司 | 一种基于提交点时间线同步的异构数据库复制并行执行系统及方法 |
CN107124305B (zh) * | 2017-04-20 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
CN107967291B (zh) * | 2017-10-12 | 2019-08-13 | 腾讯科技(深圳)有限公司 | 日志条目复制方法、装置、计算机设备及存储介质 |
-
2017
- 2017-10-12 CN CN201710949026.4A patent/CN107967291B/zh active Active
- 2017-10-12 CN CN201910670330.4A patent/CN110377570B/zh active Active
-
2018
- 2018-09-26 EP EP18866263.9A patent/EP3623963B1/en active Active
- 2018-09-26 WO PCT/CN2018/107512 patent/WO2019072085A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107105032A (zh) * | 2017-04-20 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107967291A (zh) | 2018-04-27 |
CN110377570B (zh) | 2021-06-11 |
EP3623963A1 (en) | 2020-03-18 |
CN110377570A (zh) | 2019-10-25 |
WO2019072085A1 (zh) | 2019-04-18 |
EP3623963B1 (en) | 2023-11-01 |
EP3623963A4 (en) | 2020-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107967291B (zh) | 日志条目复制方法、装置、计算机设备及存储介质 | |
CN106210041B (zh) | 一种数据写入方法及服务器端网卡 | |
CN106375404B (zh) | 数据存储控制方法、数据存储方法、数据获取方法及装置 | |
CN104092717B (zh) | 消息处理方法及系统、消息目的端设备 | |
US11102322B2 (en) | Data processing method and apparatus, server, and controller | |
US20220158836A1 (en) | Fork Processing Method And Blockchain Node | |
CN105468302B (zh) | 一种处理数据的方法、装置及系统 | |
CN110196759B (zh) | 分布式事务处理方法和装置、存储介质及电子装置 | |
US20230042747A1 (en) | Message Processing Method and Device, Storage Medium, and Electronic Device | |
CN110659151A (zh) | 数据校验方法及装置,存储介质 | |
CN108062235B (zh) | 数据处理方法及装置 | |
CN104683486B (zh) | 分布式系统中处理同步消息的方法、装置、分布式系统 | |
CN104317716A (zh) | 分布式节点间的数据传输方法及分布式节点设备 | |
WO2017162026A1 (zh) | 生成描述信息的方法及装置 | |
CN107094085B (zh) | 一种信令传送方法及装置 | |
CN107359972B (zh) | 一种数据接收方法及装置 | |
CN104170461B (zh) | 数据传输方法和基站 | |
CN101833585A (zh) | 数据库服务器操作控制系统、方法及设备 | |
CN104349506A (zh) | 关联管理方法、无线接入设备及系统 | |
JP2016158070A (ja) | 基地局輻輳管理システム、及び基地局輻輳管理方法 | |
CN106557530B (zh) | 业务系统、数据修复方法及装置 | |
CN115983990A (zh) | 区块链合约调度方法、装置及系统 | |
CN113850664A (zh) | 一种数据异常检测方法及数据上报服务 | |
CN110908886A (zh) | 一种数据发送方法、装置、电子设备和存储介质 | |
CN109976896A (zh) | 业务排重处理方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |