CN105512266A - 一种实现分布式数据库操作一致性的方法及装置 - Google Patents
一种实现分布式数据库操作一致性的方法及装置 Download PDFInfo
- Publication number
- CN105512266A CN105512266A CN201510881937.9A CN201510881937A CN105512266A CN 105512266 A CN105512266 A CN 105512266A CN 201510881937 A CN201510881937 A CN 201510881937A CN 105512266 A CN105512266 A CN 105512266A
- Authority
- CN
- China
- Prior art keywords
- node
- dml
- follower
- leader
- operational order
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种实现分布式数据库操作一致性的方法及装置,包括:leader节点接收客户端发送的DML操作指令;leader节点将DML操作指令追加到本地日志log中,并将包括DML操作指令的日志同步复制至follower节点;follower节点将leader节点发送的DML操作指令追加到本地日志log中,所述leader节点和所述follower节点的本地状态机分别从各自的本地log中依次读取DML操作指令并放到数据库中执行。采用本申请提供的方案可以避免角色混乱现象出现,确保数据一致性,且客户端需要同步等待的开销大大降低,从而提高了整个系统正常运行的吞吐量。
Description
技术领域
本申请涉及计算机存储技术领域,尤其涉及一种实现分布式数据库操作一致性的方法及装置。
背景技术
分布式数据库系统中,数据量较小的维度表一般以全复制的方式分布在系统的各个数据存储节点上,这样可以大大提升分布表与维度表之间的关联操作的效率,所有的关联算子均可以在本地完成后再在上层合并。
对于复制表数据的更改,即DML操作(数据操作语言,DataManipulationLanguage)需要保证其在所有节点上执行的一致性,如insert,delete和update等操作。在分布式系统下,由于多台数据库服务器组成的集群,某一台节点出现故障的概率相对比较高,所以为了保证系统的可用性,通常牺牲数据强一致性来达到最终一致性。
在分布式数据库领域,解决数据一致性的传统方法一般是借助于两阶段提交协议(Two-PhaseCommitProtocol),主要包括如下两个阶段:
1)请求阶段(commit-requestphase):主要是协调者将请求通知所有参与者,参与者将同意(执行成功)或者取消(执行失败)返回给协调者;
2)提交阶段(commitphase):协调者根据所有参与者的结果进行决策,所有均成功则通知各参与者提交事务,否则通知所有参与者取消事务;参与者在收到消息后执行相应操作。
但上述方法中两个阶段均需要参与者全部返回消息,虽然有超时机制,但对于客户端而言,一次请求需要同步等待的代价依然较大,实际执行效率较低。
现有技术不足在于:
借助两阶段提交协议解决数据一致性的方式执行效率较低。
发明内容
本申请实施例提出了一种实现分布式数据库操作一致性的方法及装置,以解决现有技术中借助两阶段提交协议解决数据一致性的方式执行效率较低的技术问题。
本申请实施例提供了一种实现分布式数据库操作一致性的方法,包括如下步骤:
领导者leader节点接收客户端发送的数据操作语言DML操作指令;
所述leader节点将所述DML操作指令追加到本地日志log中,并将包括所述DML操作指令的日志同步复制至跟随者follower节点;
所述follower节点将所述leader节点发送的DML操作指令追加到本地日志log中;
所述leader节点和所述follower节点的本地状态机分别从各自的本地log中依次读取所述DML操作指令并放到数据库中执行。
本申请实施例提供了一种实现分布式数据库操作一致性的装置,包括:
第一接收模块,用于领导者leader节点接收客户端发送的数据操作语言DML操作指令;
第一处理模块,用于所述leader节点将所述DML操作指令追加到本地日志log中;
发送模块,用于所述leader节点将包括所述DML操作指令的日志发送至跟随者follower节点;
第二接收模块,用于所述follower节点接收所述leader节点发送的包括所述DML操作指令的日志;
第二处理模块,用于所述follower节点将所述DML操作指令追加到本地日志log中;
执行模块,用于所述leader节点和所述follower节点的本地状态机分别从各自的本地log中依次读取所述DML操作指令并放到数据库中执行。
有益效果如下:
由于本申请实施例由leader节点作为客户端接口和内部通信的发起者,避免了分布式系统中因为故障导致的角色混乱等现象出现,由leader节点统一复制日志到其他follower节点,确保数据一致性;并且,由于leader节点复制日志到其他follower节点与节点上本地状态机执行操作可以为后台异步操作,客户端需要同步等待的开销大大降低,从而提高了整个系统正常运行的吞吐量。
附图说明
下面将参照附图描述本申请的具体实施例,其中:
图1示出了本申请实施例中实现分布式数据库操作一致性的方法实施的流程示意图;
图2示出了本申请实施例中复制状态机的结构示意图;
图3示出了本申请实施例中节点选举的过程示意图;
图4示出了本申请实施例中日志结构及复制过程的示意图;
图5示出了本申请实施例中客户端与server端交互的过程示意图;
图6示出了本申请实施例中实现分布式数据库操作一致性的装置的结构示意图。
具体实施方式
为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
发明人在发明过程中注意到:
分布式系统一致性理论一直是业界研究的重点,过去的一段时间里,Paxos一直是分布式协议的标准,Google大数据三驾马车(MapReduce,BigTable,GFS)中的ChubbyLock服务使用Paxos作为其一致性算法。
开源系统ApacheHadoop中对应Chubby的开源组件Zookeeper也实现了维护系统元数据、状态一致性的组件,广泛用于Hdfs,HBase和MapReduce中。
Paxos算法的理论阐述比较复杂、难以理解,所以在工业上完整的实现并不常见。Chubby目前只在Google内部系统中使用,而Zookeeper也只是模仿Chubby实现了FastPaxos的部分功能,目前只是在分布式NoSQL系统中使用较为广泛。
针对现有技术的不足,本申请实施例提出了一种实现分布式数据库操作一致性的方法及装置,将Raft协议的核心算法应用到实际的分布式数据库系统中,高效、高可用的保证分布式数据库数据一致性,下面进行说明。
图1示出了本申请实施例实现分布式数据库操作一致性的方法实施的流程示意图,如图所示,所述实现分布式数据库操作一致性的方法可以包括如下步骤:
步骤101、领导者leader节点接收客户端发送的数据操作语言DML操作指令;
步骤102、所述leader节点将所述DML操作指令追加到本地日志log中,并将包括所述DML操作指令的日志同步复制至跟随者follower节点;
步骤103、所述follower节点将所述leader节点发送的DML操作指令追加到本地日志log中;
步骤104、所述leader节点和所述follower节点的本地状态机分别从各自的本地log中依次读取所述DML操作指令并放到数据库中执行。
本申请实施例所提供的实现分布式数据库操作一致性的方法及装置,leader节点接收到客户端发送的数据操作语言DML操作指令后,将所述DML操作指令追加到本地日志log中,并将包括所述DML操作指令的日志发送至跟随者follower节点;所述follower节点将所述DML操作指令追加到本地日志log中,所有节点(包括所述leader节点和所述follower节点)的本地状态机从各自的本地log中顺次读取所述DML操作指令并放到数据库中执行。
由于本申请实施例由leader节点作为客户端接口和内部通信的发起者,避免了分布式系统中因为故障导致的角色混乱等现象出现,由leader节点统一复制日志到其他follower节点,本申请实施例通过保证日志的一致性来实现本地状态机操作的一致性;并且,由于leader节点复制日志到其他follower节点与节点上本地状态机执行操作可以为后台异步操作,客户端需要同步等待的开销大大降低,从而提高了整个系统正常运行的吞吐量。
实施中,在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之后、所述leader节点将所述DML操作指令追加到本地日志log之前,所述方法可以进一步包括:
所述leader节点执行所述DML操作指令到本地数据库,确定所述DML操作指令为可执行后执行回滚rollback操作。
本申请实施例所提供的实现分布式数据库操作一致性的方法,leader节点接收客户端发送的DML操作指令;leader节点先直接执行该DML操作到本地数据库,如果执行出现异常,则直接返回客户端异常信息,如果执行成功,则rollback该条操作(此时不提交commit)。
所述leader节点把该条DML操作指令追加到本地日志log中,并将包括DML操作指令的日志同步复制至follower节点,返回客户端成功信息;所述follower节点将leader节点发送的DML操作指令追加到本地日志log中。
所有server节点的本地状态机从本地log中顺序依次读取DML操作指令并放到数据库中执行并commit。
本申请实施例增加了测试环节,以验证客户端发送的DML操作指令是否为可以正常执行的指令,如果为正常指令再执行后续同步操作,如果为不正常指令则无需进行后续同步操作,直接反馈客户端异常信息,以确保同步的日志的可靠性。
实施中,在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之前,所述方法可以进一步包括:
如果节点在预设时间内没有收到leader节点的心跳Heartbeat,发起选举,并增加自身的当前时间戳currentTerm标识id;
当所述节点获得超过半数的其他节点的投票时,所述节点作为leader节点广播其heartbeat。
具体实施时,所有数据库服务器节点可以以follower角色启动,设置定时器,期望接收到leader节点或者候选者candidate节点发送的RPCs(远程过程调用,RemoteProcedureCallProtocol);如果定时器超时没有收到leader节点的心跳Heartbeat,则认为此时leader节点已经宕机,自身开始发起选举。
发起选举后,自行增加本节点的currentTermid,由follower角色转换为候选者candidate角色,发起请求投票RequestVoteRPC。如果获得超过半数的服务器节点的投票,则由candidate角色转换为leader角色,作为leader节点广播自身的heartbeat。
本申请实施例中领导者选举leaderelection过程为系统提供了可靠的客户端接口和内部通信的发起者,引入统一的leader模型,可以简化分布式系统中由于节点故障等导致的角色混乱。
实施中,所述其他节点具体可以是根据所述节点的时间戳Termid与本地currentTermid的大小关系进行投票的。
如果所述leader节点的Termid不小于本地currentTermid,则认为该Leader合法,自己转换为Follower;反之,继续等到投票结果。
如果选举超时,没有数据库服务器节点选举成功,则自增currentTerm,重新选举。
本申请实施例为了保证分布式系统中的时间同步,引入了时间片Term的概念,每个Term相当于时间轴的一个区间。
实施中,所述数据库具体可以为键值key-value数据库,所述日志的时间戳Term与索引index可以作为键key,所述DML操作指令可以作为值value。
本申请实施例中客户端发起的DML操作请求可以以log形式持久化到磁盘中,也可以借助于高性能且可靠性较高的、可持久化的key-value数据库进行存储。
具体实施时,可以采用LevelDB作为日志存储系统,LevelDB是Google开源的持久化KV单机NoSQL,具有很高的随机写,顺序读/写性能。LevelDB应用了日志结构合并(LSM,LogStructuredMerge)策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效地将更新迁移到磁盘,降低索引插入开销。
本申请实施例考虑到日志需要持久化,以及根据索引字段对数据进行有序组织的需求,将Term与Index的组合设置成Key,DML实际操作设置成Value,可以通过LevelDB的读写接口将对日志进行相关操作。
实施中,所述leader节点将包括所述DML操作指令的日志同步复制至跟随者follower节点,具体可以为:所述leader节点通过追加项AppendEntries远程过程调用RPC将包括所述DML操作指令的日志同步复制至所述follower节点。
具体实施中,所述leader节点可以广播追加项AppendEntries远程过程调用RPC到各个follower节点;待收到超过半数的follower节点响应后,将包括所述DML操作指令的日志发送至所述follower节点。
本申请实施例中,在进行日志复制之前,所述leader节点先发送RPC,判断其他follower节点的是否可以响应,来判断leader节点与其他follower节点之间的通信是否正常。
实施中,所述leader节点将包括所述DML操作指令的日志同步复制至跟随者follower节点,具体可以为:
所述leader节点根据预先存储的跟随者follower节点的下一索引nextlndex值,确定所述follower节点与所述leader节点日志一致的索引地址;
将所述follower节点的所述索引地址之后的日志条目删除;
将所述DML操作指令执行成功的日志中所述索引地址之后的日志条目发送至跟随者follower节点。
本申请实施例中,leader节点是通过强制follower节点直接复制自己的日志来解决follower节点的日志与自己不一致的问题,leader节点可以先找到两者一致的地方,然后删除所述follower节点上从那个点之后的所有日志条目,发送自己的日志给所述follower节点。
Leader节点可以针对每个follower节点维护一个nextIndex,表示下一个需要发送给follower节点的日志条目的索引地址。
当Leader节点刚获得权力时,所述leader节点初始化所有的nextIndex值为自己日志中的最后一条。如果一个Follower的日志和Leader不一致,那么在下一次的附加日志RPC时的一致性检查就会失败。在被Follower拒绝之后,Leader就会减小nextIndex值并进行重试。
最终nextIndex会在某个位置使得Leader和Follower的日志达成一致。当这种情况发生,附加日志RPC就会成功,这时就会把Follower冲突的日志条目全部删除并且加上Leader的日志。
一旦附加日志RPC成功,那么Follower的日志就会和Leader保持一致,并且在接下来的Term里一直继续保持。
本申请实施例中,本地状态机为本地执行引擎,可以从日志中按序取出各种DML操作,根据数据库的提供的接口放到数据库中去执行,如果数据库宕机,则一直重试,保证取出的操作均能在库中执行;领导者选举LeaderElection为系统提供可靠的客户端接口和内部通信的发起者,引入统一的Leader模型,更加简化了分布式系统中因为故障导致的角色混乱;日志复制LogReplicated则保证所有的操作的能够持久化,直接提供给本地状态机操作数据,并且为数据最终一致性提供保证。
为了便于本申请的实施,下面以实例进行说明。
本申请实施例可以结合Raft协议的相关概念,分为三个部分进行描述如下:
1、复制状态机(ReplicatedStateMachine)
复制状态机,可以应用在分布式数据库系统的每个数据库服务节点上(即本地状态机),独立运行。
图2示出了本申请实施例中复制状态机的结构示意图,如图所示,每个数据库节点上可以保存用户提交的DML请求日志(ReplicatedLog),可以包括insert,delete,update,commit等操作的具体指令,本地的状态机顺序在数据库上执行这些语句。本申请实施例中,为了保证ReplicatedStateMachine的一致性,只需要保证ReplicatedLog的一致性。
步骤20l、客户端发送DML操作指令;
假设DML操作指令依次为对x赋值3、对y赋值1、对y赋值9...;
步骤202、leader服务器节点中的共识模块ConsensusModule将所述DML操作指令追加到日志log中;
步骤203、状态机从log中获取所述DML操作指令并放到数据库中执行;
步骤204、执行完成后可以反馈客户端。
2、领导选举(LeaderElection)
在本申请实施例中,每个数据库服务节点可以扮演以下角色:
1)Leader:领导者,处理所有与客户端的交互,发起日志复制等操作,一般一次只有一个Leader;
2)Follower:跟随者,被动的接受来自领导者的各种RPCs(RemoteProcedureCalls)
3)Candidate:候选人,可以被选为新的领导者,是由Follower转向Leader的中间状态。
本申请实施例中,为了保证分布式系统中的时间同步,引入时间片(Term)的概念,每一个Term相当于时间轴的某个区间。
1)每个Term周期内至多存在1个Leader;
2)某些Term由于选举失败不存在Leader;
3)每个数据库服务器在本地维护自己的currentTerm。
图3示出了本申请实施例中节点选举的过程示意图,如图所示,节点选举的具体过程可以如下:
1)所有的节点均以Follower角色启动,并启动定时器;
2)Follower期望从Leader或者Candidate相应RPCs;
3)Follower选举定时器超时(一段时间内收到Leader的Heartbeat),则认为此时Leader已经宕机,自己开始发起选举。
4)发起选举后,自增currentTermid,有Follower转换为Candidate,发起RequestVoteRPC;
a)获得超过半数的数据库服务器的投票,转换为leader,广播其heartbeat;
b)接收到已合法Leader的AppendEntriesRPC,此时,若该Leader的Termid不小于本地currentTermid,则认为该Leader合法,自己转换为Follower,反之继续等到投票结果;
c)选举超时,没有数据库服务器选举成功,自增currentTerm,重新选举。
3、日志复制(LogReplicated)
在本申请实施例中,客户端发起的DML操作请求均可以以Log的形式进行持久化,具体实施时,可以直接以文件的方式持久化的磁盘上,也可以借助于高性能且可靠性较高的的可持久化的Key-ValueNoSQL数据库进行存储,
本申请实施例可以采用LevelDB作为日志存储系统,LevelDB是Google开源的持久化KV单机NoSQL,具有很高的随机写,顺序读/写性能。LevelDB应用了LSM(LogStructuredMerge)策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效地将更新迁移到磁盘,降低索引插入开销。
考虑到日志需要持久化,并且需要根据索引字段对数据进行有序组织的需求,本申请实施例可以将Term与Index的组合设置成Key,DML实际操作设置成Value,通过LevelDB的读写接口将对日志进行相关操作。
图4示出了本申请实施例中日志结构及复制过程的示意图,如图所示,包括1个leader节点和4个follower节点。
假设日志索引logindex为1、2、3、4、5、6、7、8,leader节点日志条目包括8条,其中编号相同的条目为同一个操作transaction。数据库事务Transaction,是指作为单个逻辑工作单元执行的一系列操作。
follower节点接收leader发送的提交项,由于网络故障或节点故障等原因,可能各个follower节点收到的提交项的进度不同。
具体的日志复制过程可以如下:
步骤40l、客户端将DML具体操作语句发送给Leader;
步骤402、Leader追加该DML操作到本地Log中;
步骤403、Leader广播AppendEntriesRPC到各个Follower,如果失败,则一直重试,直到成功;
步骤404、如果超过半数的数据库节点返回成功:
步骤4041、Leader将对应的DML操作发送至本地StateMachine执行,并返回实际在数据库执行的结果;
步骤4042、Leader通过后续AppendEntriesRPC将committed日志发送到Follower;
步骤4043、Follower收到committed日志项后,将该DML操作应用到本地StateMachine执行。
在这整个过程中,需要保证以下条件:
1)Leader需要存储所有已经提交的日志条目
使用投票的方式来阻止Candidate赢得选举,除非这个Candidate包含了所有已经提交的日志条目。Candidate为了赢得选举必须联系集群中的大部分节点,这意味着每一个已经提交的日志条目肯定在这些数据库节点中至少存在一个上面。如果Candidate的日志至少和大多数的数据库节点一样新(通过比较两份日志中最后一条日志条目的索引值和任期号定义谁的日志比较新),那么他一定持有了所有已经提交的日志条目。
请求投票RPC实现了这样的限制:
RPC中包含了Candidate的日志信息,然后Follower会拒绝掉那些日志没有自己新的投票请求。
2)Leader处理与Follower日志不一致是通过强制Follower直接复制自己的日志解决。这意味着在Follower中的冲突的日志条目会被Leader的日志覆盖。
要使得Follower的日志进入和自己一致的状态,Leader必须找到最后两者达成一致的地方,然后删除从那个点之后的所有日志条目,发送自己的日志给Follower。所有的这些操作都在进行附加日志RPCs的一致性检查时完成。Leader针对每一个Follower维护了一个nextIndex,这表示下一个需要发送给Follower的日志条目的索引地址。当一个Leader刚获得权力的时候,他初始化所有的nextIndex值为自己日志中的最后一条。
如果一个Follower的日志和Leader不一致,那么在下一次的附加日志RPC时的一致性检查就会失败。在被Follower拒绝之后,Leader就会减小nextIndex值并进行重试。
最终nextIndex会在某个位置使得Leader和Follower的日志达成一致。当这种情况发生,附加日志RPC就会成功,这时就会把Follower冲突的日志条目全部删除并且加上Leader的日志。一旦附加日志RPC成功,那么Follower的日志就会和Leader保持一致,并且在接下来的Term里一直继续保持。
如上所述ReplicatedStateMachine为本地执行引擎,从日志中按序取出各种DML操作,根据数据库的提供的接口放到数据库中去执行,如果数据库宕机,则一直重试,保证取出的操作均能在库中执行;LeaderElection为系统提供可靠的客户端接口和内部通信的发起者,引入统一的Leader模型,更加简化了分布式系统中因为故障导致的角色混乱;LogReplicated则保证所有的操作的能够持久化,直接提供给ReplicatedStateMachine操作数据,并且为数据最终一致性提供保证。
图5示出了本申请实施例中客户端与server端交互的过程示意图,如图所示,所述server端可以为分布式数据库系统,其中,
1、客户端发送DML操作指令;
2、leader节点先直接执行该DML操作到本地数据库,如果执行出现异常,则直接返回客户端异常信息,如果执行成功,则rollback该条操作;
3、Leader节点将成功执行的DML操作指令追加到本地日志log中;
4、Leader节点将所述DML操作指令的日志发送到各个follower节点;
5、follower节点将所述DML操作指令追加到本地log;
6、各server节点(leader,follower)节点的本地状态机从本地log中读取所述DML操作指令;
7、各server节点(leader,follower)的本地状态机将DML操作指令放到数据库中执行。
本申请实施例将Raft协议理论应用到分布式数据库系统中,解决数据一致性问题,并且,由于日志复制、状态执行等操作均为后台异步操作,与现有的两阶段提交协议相比,客户端需要同步等待的开销大大降低,提高了整个系统正常运行的吞吐量。
基于同一发明构思,本申请实施例中还提供了一种实现分布式数据库操作一致性的装置,由于这些设备解决问题的原理与一种实现分布式数据库操作一致性的方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
图6示出了本申请实施例中实现分布式数据库操作一致性的装置的结构示意图,如图所示,包括:
第一接收模块601,用于领导者leader节点接收客户端发送的数据操作语言DML操作指令;
第一处理模块602,用于所述leader节点将所述DML操作指令追加到本地日志log中;
发送模块603,用于所述leader节点将包括所述DML操作指令的日志发送至跟随者follower节点;
第二接收模块604,用于所述follower节点接收所述leader节点发送的包括所述DML操作指令的日志;
第二处理模块605,用于所述follower节点将所述DML操作指令追加到本地日志log中;
执行模块606,用于所述leader节点和所述follower节点的本地状态机分别从各自的本地log中依次读取所述DML操作指令并放到数据库中执行。
实施中,所述装置可以进一步包括:
确定模块607,用于在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之后、所述leader节点将所述DML操作指令追加到本地日志log之前,所述leader节点执行所述DML操作指令到本地数据库,确定所述DML操作指令为可执行后执行回滚rollback操作。
实施中,所述装置可以进一步包括:
选举发起模块608,用于在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之前,如果节点在预设时间内没有收到leader节点的心跳Heartbeat,发起选举,并增加自身的当前时间戳currentTerm标识id;
领导者确定模块609,用于当所述节点获得超过半数的其他节点的投票时,所述节点作为leader节点广播其heartbeat。
实施中,所述其他节点具体是根据所述节点的时间戳Termid与本地currentTermid的大小关系进行投票的。
实施中,所述数据库具体为键值key-value数据库,所述日志的时间戳Term与索引index作为键key,所述DML操作指令作为值value。
实施中,所述发送模块具体可以用于所述leader节点通过追加项AppendEntries远程过程调用RPC将包括所述DML操作指令的日志同步复制至所述follower节点。
实施中,所述发送模块具体可以包括:
确定单元,用于所述leader节点根据预先存储的跟随者follower节点的下一索引nextlndex值,确定所述follower节点与所述leader节点日志一致的索引地址;
删除单元,用于将所述follower节点的所述索引地址之后的日志条目删除;
发送单元,用于将包括所述DML操作指令的日志中所述索引地址之后的日志条目同步复制至跟随者follower节点。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
Claims (14)
1.一种实现分布式数据库操作一致性的方法,其特征在于,包括如下步骤:
领导者leader节点接收客户端发送的数据操作语言DML操作指令;
所述leader节点将所述DML操作指令追加到本地日志log中,并将包括所述DML操作指令的日志同步复制至跟随者follower节点;
所述follower节点将所述leader节点发送的DML操作指令追加到本地日志log中;
所述leader节点和所述follower节点的本地状态机分别从各自的本地log中依次读取所述DML操作指令并放到数据库中执行。
2.如权利要求1所述的方法,其特征在于,在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之后、所述leader节点将所述DML操作指令追加到本地日志log之前,进一步包括:
所述leader节点执行所述DML操作指令到本地数据库,确定所述DML操作指令为可执行后执行回滚rollback操作。
3.如权利要求1所述的方法,其特征在于,在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之前,进一步包括:
如果节点在预设时间内没有收到leader节点的心跳Heartbeat,发起选举,并增加自身的当前时间戳currentTerm标识id;
当所述节点获得超过半数的其他节点的投票时,所述节点作为leader节点广播其heartbeat。
4.如权利要求3所述的方法,其特征在于,所述其他节点具体是根据所述节点的时间戳Termid与本地currentTermid的大小关系进行投票的。
5.如权利要求1所述的方法,其特征在于,所述数据库具体为键值key-value数据库,所述日志的时间戳Term与索引index作为键key,所述DML操作指令作为值value。
6.如权利要求1所述的方法,其特征在于,所述leader节点将包括所述DML操作指令的日志同步复制至跟随者follower节点,具体为:
所述leader节点通过追加项AppendEntries远程过程调用RPC将包括所述DML操作指令的日志同步复制至所述follower节点。
7.如权利要求1所述的方法,其特征在于,所述leader节点将包括所述DML操作指令的日志同步复制至跟随者follower节点,具体为:
所述leader节点根据预先存储的跟随者follower节点的下一索引nextIndex值,确定所述follower节点与所述leader节点日志一致的索引地址;
将所述follower节点的所述索引地址之后的日志条目删除;
将所述DML操作指令执行成功的日志中所述索引地址之后的日志条目发送至跟随者follower节点。
8.一种实现分布式数据库操作一致性的装置,其特征在于,包括:
第一接收模块,用于领导者leader节点接收客户端发送的数据操作语言DML操作指令;
第一处理模块,用于所述leader节点将所述DML操作指令追加到本地日志log中;
发送模块,用于所述leader节点将包括所述DML操作指令的日志发送至跟随者follower节点;
第二接收模块,用于所述follower节点接收所述leader节点发送的包括所述DML操作指令的日志;
第二处理模块,用于所述follower节点将所述DML操作指令追加到本地日志log中;
执行模块,用于所述leader节点和所述follower节点的本地状态机分别从各自的本地log中依次读取所述DML操作指令并放到数据库中执行。
9.如权利要求8所述的装置,其特征在于,进一步包括:
确定模块,用于在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之后、所述leader节点将所述DML操作指令追加到本地日志log之前,所述leader节点执行所述DML操作指令到本地数据库,确定所述DML操作指令为可执行后执行回滚rollback操作。
10.如权利要求8所述的装置,其特征在于,进一步包括:
选举发起模块,用于在所述领导者leader节点接收客户端发送的数据操作语言DML操作指令之前,如果节点在预设时间内没有收到leader节点的心跳Heartbeat,发起选举,并增加自身的当前时间戳currentTerm标识id;
领导者确定模块,用于当所述节点获得超过半数的其他节点的投票时,所述节点作为leader节点广播其heartbeat。
11.如权利要求10所述的装置,其特征在于,所述其他节点具体是根据所述节点的时间戳Termid与本地currentTermid的大小关系进行投票的。
12.如权利要求8所述的装置,其特征在于,所述数据库具体为键值key-value数据库,所述日志的时间戳Term与索引index作为键key,所述DML操作指令作为值value。
13.如权利要求8所述的装置,其特征在于,所述发送模块具体用于所述leader节点通过追加项AppendEntries远程过程调用RPC将包括所述DML操作指令的日志同步复制至所述follower节点。
14.如权利要求7所述的装置,其特征在于,所述发送模块具体包括:
确定单元,用于所述leader节点根据预先存储的跟随者follower节点的下一索引nextIndex值,确定所述follower节点与所述leader节点日志一致的索引地址;
删除单元,用于将所述follower节点的所述索引地址之后的日志条目删除;
发送单元,用于将包括所述DML操作指令的日志中所述索引地址之后的日志条目同步复制至跟随者follower节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510881937.9A CN105512266A (zh) | 2015-12-03 | 2015-12-03 | 一种实现分布式数据库操作一致性的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510881937.9A CN105512266A (zh) | 2015-12-03 | 2015-12-03 | 一种实现分布式数据库操作一致性的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105512266A true CN105512266A (zh) | 2016-04-20 |
Family
ID=55720248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510881937.9A Pending CN105512266A (zh) | 2015-12-03 | 2015-12-03 | 一种实现分布式数据库操作一致性的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512266A (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060036A (zh) * | 2016-05-26 | 2016-10-26 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN107105032A (zh) * | 2017-04-20 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
CN107124305A (zh) * | 2017-04-20 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
CN107332716A (zh) * | 2017-08-15 | 2017-11-07 | 北京云端智度科技有限公司 | 一种提高大型分布式系统配置效率的方法 |
CN107547593A (zh) * | 2016-06-27 | 2018-01-05 | 华为技术有限公司 | 一种实现日志同步的方法、装置及分布式系统 |
WO2018014650A1 (zh) * | 2016-07-20 | 2018-01-25 | 华为技术有限公司 | 分布式数据库数据同步方法、相关装置及系统 |
CN107832138A (zh) * | 2017-09-21 | 2018-03-23 | 南京邮电大学 | 一种扁平化的高可用namenode模型的实现方法 |
CN108121768A (zh) * | 2017-11-30 | 2018-06-05 | 北京元心科技有限公司 | 分布式系统数据处理方法及装置 |
CN108170763A (zh) * | 2017-12-25 | 2018-06-15 | 江南大学 | 一种低延迟的分布式计算共识算法 |
CN108200157A (zh) * | 2017-12-29 | 2018-06-22 | 北京奇虎科技有限公司 | 主节点触发回退的日志同步方法及装置 |
WO2018120174A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 故障恢复的方法、设备和系统 |
CN109241180A (zh) * | 2018-08-01 | 2019-01-18 | 福建天泉教育科技有限公司 | 一种基于日志的数据同步的方法及装置 |
CN109347906A (zh) * | 2018-08-30 | 2019-02-15 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、与服务器 |
CN109947733A (zh) * | 2019-03-29 | 2019-06-28 | 众安信息技术服务有限公司 | 数据存储装置与方法 |
CN110162511A (zh) * | 2018-02-08 | 2019-08-23 | 华为技术有限公司 | 一种日志传输方法及相关设备 |
CN110544136A (zh) * | 2019-09-10 | 2019-12-06 | 恩亿科(北京)数据科技有限公司 | 计算同步投放概率的方法、装置、设备及存储介质 |
CN110764690A (zh) * | 2018-07-28 | 2020-02-07 | 阿里巴巴集团控股有限公司 | 分布式存储系统及其领导节点选举方法和装置 |
CN111212123A (zh) * | 2019-12-26 | 2020-05-29 | 天津中科曙光存储科技有限公司 | 基于ZooKeeper的Lunmap管理方法 |
CN111352943A (zh) * | 2018-12-24 | 2020-06-30 | 华为技术有限公司 | 实现数据一致性的方法和装置、服务器和终端 |
CN111526186A (zh) * | 2020-04-10 | 2020-08-11 | 河海大学 | 基于Raft的分布式服务器集群配置方法 |
CN111683118A (zh) * | 2020-05-16 | 2020-09-18 | 中信银行股份有限公司 | 基于区块链的共识方法、装置、主节点设备及从节点设备 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112084171A (zh) * | 2020-08-14 | 2020-12-15 | 浪潮思科网络科技有限公司 | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 |
CN112965945A (zh) * | 2019-12-13 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN113051042A (zh) * | 2021-01-25 | 2021-06-29 | 北京思特奇信息技术股份有限公司 | 基于zookeeper的事务实现方法及系统 |
CN113254278A (zh) * | 2021-07-10 | 2021-08-13 | 北京开科唯识技术股份有限公司 | 一种用于处理互联网请求的方法和系统 |
CN113778764A (zh) * | 2021-08-24 | 2021-12-10 | 百融至信(北京)征信有限公司 | 一种hbase数据双活系统及方法 |
CN113810231A (zh) * | 2021-09-16 | 2021-12-17 | 杭州安恒信息技术股份有限公司 | 一种日志解析方法、系统、电子设备及存储介质 |
CN114461593A (zh) * | 2022-04-13 | 2022-05-10 | 云和恩墨(北京)信息技术有限公司 | 日志写入方法及其装置、电子设备及存储介质 |
CN114860848A (zh) * | 2022-07-06 | 2022-08-05 | 北京奥星贝斯科技有限公司 | 分布式数据库系统的选主方法及装置 |
CN115357600A (zh) * | 2022-10-21 | 2022-11-18 | 鹏城实验室 | 数据共识处理方法、系统、装置、设备及可读存储介质 |
CN112965945B (zh) * | 2019-12-13 | 2024-10-25 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101081A1 (en) * | 2004-11-01 | 2006-05-11 | Sybase, Inc. | Distributed Database System Providing Data and Space Management Methodology |
CN1831810A (zh) * | 2005-03-08 | 2006-09-13 | 中国科学院计算技术研究所 | 组通信系统中利用中间件进行数据库复制的方法和中间件 |
CN102088489A (zh) * | 2010-12-31 | 2011-06-08 | 北京理工大学 | 一种分布式数据同步系统及方法 |
CN103198159A (zh) * | 2013-04-27 | 2013-07-10 | 国家计算机网络与信息安全管理中心 | 一种基于事务重做的异构集群多副本一致性维护方法 |
CN103500229A (zh) * | 2013-10-24 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据库同步方法和数据库系统 |
-
2015
- 2015-12-03 CN CN201510881937.9A patent/CN105512266A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101081A1 (en) * | 2004-11-01 | 2006-05-11 | Sybase, Inc. | Distributed Database System Providing Data and Space Management Methodology |
CN1831810A (zh) * | 2005-03-08 | 2006-09-13 | 中国科学院计算技术研究所 | 组通信系统中利用中间件进行数据库复制的方法和中间件 |
CN102088489A (zh) * | 2010-12-31 | 2011-06-08 | 北京理工大学 | 一种分布式数据同步系统及方法 |
CN103198159A (zh) * | 2013-04-27 | 2013-07-10 | 国家计算机网络与信息安全管理中心 | 一种基于事务重做的异构集群多副本一致性维护方法 |
CN103500229A (zh) * | 2013-10-24 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据库同步方法和数据库系统 |
Non-Patent Citations (2)
Title |
---|
DIEGO ONGARO 等: "In Search of an Understandable Consensus Algorithm", 《2014 USENIX ANNUAL TECHNICAL CONFERENCE》 * |
张晨东 等: "基于Raft一致性协议的高可用性实现", 《华东师范大学学报(自然科学版)》 * |
Cited By (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060036B (zh) * | 2016-05-26 | 2019-07-16 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN106060036A (zh) * | 2016-05-26 | 2016-10-26 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN107547593A (zh) * | 2016-06-27 | 2018-01-05 | 华为技术有限公司 | 一种实现日志同步的方法、装置及分布式系统 |
CN107547593B (zh) * | 2016-06-27 | 2020-05-08 | 华为技术有限公司 | 一种实现日志同步的方法、装置及分布式系统 |
CN107644030B (zh) * | 2016-07-20 | 2021-05-18 | 华为技术有限公司 | 分布式数据库数据同步方法、相关装置及系统 |
CN107644030A (zh) * | 2016-07-20 | 2018-01-30 | 华为技术有限公司 | 分布式数据库数据同步方法、相关装置及系统 |
WO2018014650A1 (zh) * | 2016-07-20 | 2018-01-25 | 华为技术有限公司 | 分布式数据库数据同步方法、相关装置及系统 |
CN110431533B (zh) * | 2016-12-30 | 2021-09-14 | 华为技术有限公司 | 故障恢复的方法、设备和系统 |
US11102084B2 (en) | 2016-12-30 | 2021-08-24 | Huawei Technologies Co., Ltd. | Fault rectification method, device, and system |
CN110431533A (zh) * | 2016-12-30 | 2019-11-08 | 华为技术有限公司 | 故障恢复的方法、设备和系统 |
WO2018120174A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 故障恢复的方法、设备和系统 |
CN107105032B (zh) * | 2017-04-20 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
CN107105032A (zh) * | 2017-04-20 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
CN107124305B (zh) * | 2017-04-20 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
US10833919B2 (en) | 2017-04-20 | 2020-11-10 | Tencent Technology (Shenzhen) Company Limited | Node device operation method, work status switching apparatus, node device, and medium |
CN107124305A (zh) * | 2017-04-20 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
CN107332716A (zh) * | 2017-08-15 | 2017-11-07 | 北京云端智度科技有限公司 | 一种提高大型分布式系统配置效率的方法 |
CN107832138B (zh) * | 2017-09-21 | 2021-09-14 | 南京邮电大学 | 一种扁平化的高可用namenode模型的实现方法 |
CN107832138A (zh) * | 2017-09-21 | 2018-03-23 | 南京邮电大学 | 一种扁平化的高可用namenode模型的实现方法 |
CN108121768A (zh) * | 2017-11-30 | 2018-06-05 | 北京元心科技有限公司 | 分布式系统数据处理方法及装置 |
CN108170763B (zh) * | 2017-12-25 | 2021-07-27 | 江南大学 | 一种低延迟的分布式计算共识算法 |
CN108170763A (zh) * | 2017-12-25 | 2018-06-15 | 江南大学 | 一种低延迟的分布式计算共识算法 |
CN108200157B (zh) * | 2017-12-29 | 2020-12-25 | 北京奇虎科技有限公司 | 主节点触发回退的日志同步方法及装置 |
CN108200157A (zh) * | 2017-12-29 | 2018-06-22 | 北京奇虎科技有限公司 | 主节点触发回退的日志同步方法及装置 |
CN110162511B (zh) * | 2018-02-08 | 2023-09-01 | 华为技术有限公司 | 一种日志传输方法及相关设备 |
CN110162511A (zh) * | 2018-02-08 | 2019-08-23 | 华为技术有限公司 | 一种日志传输方法及相关设备 |
CN110764690A (zh) * | 2018-07-28 | 2020-02-07 | 阿里巴巴集团控股有限公司 | 分布式存储系统及其领导节点选举方法和装置 |
CN110764690B (zh) * | 2018-07-28 | 2023-04-14 | 阿里云计算有限公司 | 分布式存储系统及其领导节点选举方法和装置 |
CN109241180B (zh) * | 2018-08-01 | 2021-06-04 | 福建天泉教育科技有限公司 | 一种基于日志的数据同步的方法及装置 |
CN109241180A (zh) * | 2018-08-01 | 2019-01-18 | 福建天泉教育科技有限公司 | 一种基于日志的数据同步的方法及装置 |
CN109347906A (zh) * | 2018-08-30 | 2019-02-15 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、与服务器 |
CN109347906B (zh) * | 2018-08-30 | 2021-04-20 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、与服务器 |
CN111352943A (zh) * | 2018-12-24 | 2020-06-30 | 华为技术有限公司 | 实现数据一致性的方法和装置、服务器和终端 |
CN109947733A (zh) * | 2019-03-29 | 2019-06-28 | 众安信息技术服务有限公司 | 数据存储装置与方法 |
CN110544136A (zh) * | 2019-09-10 | 2019-12-06 | 恩亿科(北京)数据科技有限公司 | 计算同步投放概率的方法、装置、设备及存储介质 |
CN112965945B (zh) * | 2019-12-13 | 2024-10-25 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN112965945A (zh) * | 2019-12-13 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN111212123A (zh) * | 2019-12-26 | 2020-05-29 | 天津中科曙光存储科技有限公司 | 基于ZooKeeper的Lunmap管理方法 |
CN111526186A (zh) * | 2020-04-10 | 2020-08-11 | 河海大学 | 基于Raft的分布式服务器集群配置方法 |
CN111683118A (zh) * | 2020-05-16 | 2020-09-18 | 中信银行股份有限公司 | 基于区块链的共识方法、装置、主节点设备及从节点设备 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112084171B (zh) * | 2020-08-14 | 2024-04-12 | 浪潮思科网络科技有限公司 | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 |
CN112084171A (zh) * | 2020-08-14 | 2020-12-15 | 浪潮思科网络科技有限公司 | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 |
CN113051042A (zh) * | 2021-01-25 | 2021-06-29 | 北京思特奇信息技术股份有限公司 | 基于zookeeper的事务实现方法及系统 |
CN113051042B (zh) * | 2021-01-25 | 2024-04-19 | 北京思特奇信息技术股份有限公司 | 基于zookeeper的事务实现方法及系统 |
CN113254278A (zh) * | 2021-07-10 | 2021-08-13 | 北京开科唯识技术股份有限公司 | 一种用于处理互联网请求的方法和系统 |
CN113778764A (zh) * | 2021-08-24 | 2021-12-10 | 百融至信(北京)征信有限公司 | 一种hbase数据双活系统及方法 |
CN113778764B (zh) * | 2021-08-24 | 2023-10-27 | 百融至信(北京)科技有限公司 | 一种hbase数据双活系统及方法 |
CN113810231B (zh) * | 2021-09-16 | 2022-12-30 | 杭州安恒信息技术股份有限公司 | 一种日志解析方法、系统、电子设备及存储介质 |
CN113810231A (zh) * | 2021-09-16 | 2021-12-17 | 杭州安恒信息技术股份有限公司 | 一种日志解析方法、系统、电子设备及存储介质 |
CN114461593B (zh) * | 2022-04-13 | 2022-07-29 | 云和恩墨(北京)信息技术有限公司 | 日志写入方法及其装置、电子设备及存储介质 |
CN114461593A (zh) * | 2022-04-13 | 2022-05-10 | 云和恩墨(北京)信息技术有限公司 | 日志写入方法及其装置、电子设备及存储介质 |
CN114860848A (zh) * | 2022-07-06 | 2022-08-05 | 北京奥星贝斯科技有限公司 | 分布式数据库系统的选主方法及装置 |
CN115357600A (zh) * | 2022-10-21 | 2022-11-18 | 鹏城实验室 | 数据共识处理方法、系统、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105512266A (zh) | 一种实现分布式数据库操作一致性的方法及装置 | |
US9317372B1 (en) | Dynamic membership management in a distributed system | |
CN107832138B (zh) | 一种扁平化的高可用namenode模型的实现方法 | |
CN113535656B (zh) | 数据访问方法、装置、设备及存储介质 | |
CN108710638B (zh) | 一种基于混合rdma操作的分布式并发控制方法及系统 | |
CN107203560B (zh) | 数据库、多数据库操作事务一致性保证方法及系统 | |
US20230004576A1 (en) | Data synchronization method and device for databases, and storage medium | |
EP3786802A1 (en) | Method and device for failover in hbase system | |
CN110413687B (zh) | 基于节点互证校验的分布式事务故障处理方法及相关设备 | |
CN115794499B (zh) | 一种用于分布式块存储集群间双活复制数据的方法和系统 | |
WO2022170979A1 (zh) | 日志执行方法、装置、计算机设备及存储介质 | |
WO2023082992A1 (zh) | 数据处理方法以及系统 | |
CN112104504B (zh) | 一种大规模资源访问的事务管理框架、设计方法及云平台 | |
CN111352766A (zh) | 一种数据库的双活实现方法及装置 | |
EP4239492A1 (en) | Object processing method and apparatus, computer device, and storage medium | |
CN114327799B (zh) | 分布式事务处理方法及装置、电子设备、存储介质 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
US20240134879A1 (en) | Keeping stable leadership in raft-based protocol with fast automatic failover | |
US8230444B2 (en) | Global attribute uniqueness (GAU) using an ordered message service (OMS) | |
CN115238006A (zh) | 检索数据同步方法、装置、设备及计算机存储介质 | |
CN113032477B (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
US20240354314A1 (en) | Data processing method and system | |
CN114448781B (zh) | 一种数据处理系统 | |
CN115473930B (zh) | 一种跨运行环境的文件预置方法 | |
WO2023124431A1 (zh) | 一种数据库处理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160420 |