read_write
2016-11-01 10:10:38 0 举报
read_write 是一个用于读写文件的函数,它可以在 Python 中打开一个文件,读取其中的内容,并将内容写入到另一个文件中。这个函数通常用于处理文本文件,如日志文件、配置文件等。在使用 read_write 函数时,需要指定输入文件和输出文件的路径以及打开模式(如只读、写入等)。此外,还可以使用一些参数来控制读写过程中的行为,例如是否保留原始文件的行数、是否在写入时添加换行符等。总之,read_write 是一个非常实用的 Python 函数,可以帮助我们轻松地完成文件读写任务。
作者其他创作
大纲/内容
把当前最新的事务ID加一作为最新的事务ID,使用最新的事务ID、操作类型、当前时间等信息生成最新的事务
将该写请求封装成一个提案网络消息包后,将消息包广播给所有Follower,等待Follower回应
将该请求放入日志线程,让日志线程把该请求内容记入事务日志
一致
否
不一致
判断该请求类型是否为写请求
是
Leader将该提案收到的ACK数目加一,检查该提案的ACK数目是否已经达到节点总数的一半以上
存在
合法
将该请求设置为下一个待处理的请求(mNextPending)
检查待提交请求队列是否为空
处理下一个待处理的请求,然后取出等待队列中的第一个请求作为下一个待处理的请求
请求结果设置为YFS_STATUS_LOOKING释放该请求
将请求放入等待队列,取出等待队列中的第一个请求
不连续
更新上次提议的事务ID为该请求事务ID,把该请求放入未处理的提案容器中
不为空
取出待提交请求队列中的第一个请求,判断该请求的事务ID与Leader发送的commit消息中包含的事务ID是否一致
开始
结束
为空
不存在
判断是否为写请求
Follower在收到commit消息之后,首先检查该消息中包含的事务ID是否合法
Follower给Leader返回该提案的ACK
检查下一个待处理的请求成员变量是否非空
Leader收到该提案的ACK信息之后,首先检查该提案是否已经被提交了
直接处理该请求
Follower节点收到提案消息后,检查该提案的事务ID与上次收到的提案事务ID是否连续
不合法
直接处理该读请求,处理完成后释放请求
进入commit阶段,首先检查该提案的事务ID与Leader自己维护的上次提交的事务ID是否连续
Leader更新自己维护的上次提交的事务ID为该提案的事务ID,然后向所有Follower广播提交该提案的消息(commit消息)
更新上次收到的事务ID为该提案的事务ID。将该提案对应的请求放入待提交请求队列,并把该请求放入日志线程的请求队列,让日志线程记录该请求的事务日志。
连续
检查该提案的事务ID是否合法
Leader判断大多数节点是否已经同步完成?
Leader在自己维护的待提交提案map容器中寻找该提案的事务ID,检查该事务ID是否存在
0 条评论
下一页