kvDB系列
文章平均质量分 94
ミ míSs °
这个作者很懒,什么都没留下…
展开
-
基于raft的kvdb面试问题
当大多数节点成功复制后,该log提交,leader会告知follower最新提交的日志index。raft可以保证各个节点日志的一致性,但想要实现状态机(kvdb)的一致性,用户可以自由实现。状态机安全性:如果一个服务器应用了一条日志,那么其它服务器应用的相同条目的日志的内容就是一样的。想要应用某一条日志,必须保证该日志已经提交,需要leader将其成功复制到大多数节点。raft是一种强leader模型,leader有权管理所有的日志,所有的日志都是从leader流向follower的。原创 2024-03-16 12:02:04 · 535 阅读 · 0 评论 -
RPC 和 序列化
包含kvserver功能的一对映射:Get/PutAppend包含一个,raftKVRpcProctoc::kvServerRpc_Stub *stub,用于实现rpc通信。针对raft节点之间的通信,设计了类型,包含raft节点功能:,因此接下来会调用MprpcChannel::CallMethod():,建立和服务端的连接,发送rpc请求,和接收rpc回复所有通过stub代理调用的rpc方法,都会走到。原创 2024-03-15 12:27:07 · 844 阅读 · 1 评论 -
基于raft的kvDB
raft是,通过。leader从客户端获取日志条目,复制到其他的服务器中,告诉他们什么时候应用这个日志到状态机是安全的。leader这个角色简化了复制日志的管理。leader可以在的前提下添加新的日志条目,。如果一个leader宕机或者失联了,一个新的leader就会被选举。如果一个服务器应用了一条日志,那么其他的服务器应用的相同条目的日志内容就是一样的。这样的话,follower已经应用的日志和leader相同,follower的snapshot也不会和leader冲突。原创 2024-03-10 20:18:02 · 506 阅读 · 0 评论