MIT6.824 Lab2调试过程

2021-12-12 21:50

测试了5次,通过了并发用例。运行并发的用例的时候,会报第6个entry没有被三个节点中的任意一个apply。

看了看日志,发现第6个entry一直没有被apply,没有被apply的原因是leader的commitIndex一直很小,导致

follower的commitIndex也很小。开始以为是发送处理AE RPC的过程有死锁导致程序卡住,但是后来在仔细

看日志,才发现是leader的entry都已经commit到两三个了,才更新自己的commitIndex到1,因为我的实现里

leader在根据figure2的规则更新了commitIndex之后就结束了, 并没有再次增加N,直到不满足figure2的条件。

修改之后,leader的commitIndex更新了,并且每一个entry也都能及时apply。

今天的调试过程总耗时8小时(粗略估计),实际产出一行注释,很痛心。实际上好好搞,根本用不了这么长时间。过程中值得反思的地方有:

1、分析问题要细致,看日志的时候不要盲目,要根据日志去看代码的逻辑。盯着屏幕发呆是不行的。

2、注意力要很集中,否则不会产生心流。避免频繁中断,看手机。

Original: https://www.cnblogs.com/dennis-wong/p/15680897.html
Author: 成蹊0xc000
Title: MIT6.824 Lab2调试过程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582780/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 音视频技术入门课- 03 如何做音视频的封装和转码

    视频转码主要涉及编码压缩算法(Encoding)、格式封装操作 (Muxing)、数据传输 (例如 RTMP、RTP)、格式解封装(Demuxing)、解码解压缩算法(Decodi…

    Linux 2023年6月7日
    057
  • 【Redis】单线程理解及可能影响性能的操作

    一. Redis的单线程 二. 可能影响单线程性能的操作 1. bigKey操作 2. 复杂命令 3. 大量key集中过期 4. 淘汰策略 5. 主从全量同步生成RDB 6. AO…

    Linux 2023年5月28日
    0133
  • Linux 学习笔记

    Linux 学习笔记 作者:Grey 原文地址: 博客园:Linux 学习笔记 CSDN:Linux 学习笔记 说明 本文如果没有特别说明,环境是 CentOS 7, 主要是日常学…

    Linux 2023年5月27日
    0119
  • Linux之虚拟专用网络—VPN

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    Linux 2023年5月27日
    0117
  • 用动态端口,增强winrm,open sshd的,服务器安全

    前言 我开发了一套开源,免费,跨平台的devops脚本批量运维工具。【kaiiit家的饭店】是软件的正式名字。【卡死你3000】是第一版开发代号。 想要增强win被控机密码安全。可…

    Linux 2023年6月14日
    085
  • 站长工具

    背景 日常测试全国各种某网站的响应情况使用 站长工具 站长工具 http://tools.wujingquan.com/ 站长工具 ping检测 ping检测 https://pi…

    Linux 2023年6月6日
    0116
  • Nginx 配置文件说明

    bash;gutter:true;</p> <h1>定义Nginx运行的用户和用户组</h1> <p>user www www;&l…

    Linux 2023年6月8日
    097
  • Docker 安装 Redis

    docker 启动 redis 命令 docker run -p 6379:6379 –name redis -v /usr/local/docker/redis.conf:/e…

    Linux 2023年5月28日
    0100
  • 【转】谈谈 JVM 内部锁升级过程

    一、加锁发生了什么 //System.out.println&#x90FD;&#x52A0;&#x4E86;&#x9501; public void…

    Linux 2023年6月16日
    0126
  • 模拟一个简单的tomcat

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月11日
    0124
  • Linux进度条制作

    进度条 先了解一下/r 的用法 /r 讲光标回到当前行的最开始 4 int main() 5 { 6 int i=0; 7 for(i=0;i10;i++) 8 { 9 print…

    Linux 2023年6月13日
    096
  • springboot2 整合 redis 并通过 aop 实现自定义注解

    1,相关依赖 pom.xml 片段 org.springframework.boot spring-boot-starter-aop org.springframework.boo…

    Linux 2023年5月28日
    0108
  • Linux NFS服务配置

    bash;gutter:true; 服务端配置: 1. 安装nfs-utils和rpcbind</p> <h1>yum install nfs-utils …

    Linux 2023年6月13日
    080
  • Vim 编辑器|批量注释与批量取消注释

    添加注释 ctrl + v 进入块选泽模式。 上下键选中需要注释的行。 按大写 I 进入插入模式,输入注释符。 按两次 ESC 退出,即完成添加注释。 取消注释 ctrl + v …

    Linux 2023年5月27日
    0111
  • Linux静默安装weblogic12(fmw_12.1.3.0.0_wls.jar)

    1、安装JDK环境 2、创建安装用户 3、配置JAVA环境变量 4、创建响应文件wls.rsp 响应文件中的项一定要写全,否则会报奇怪的错误。 5、创建Loc文件oraInst.l…

    Linux 2023年6月14日
    0103
  • 高等代数:1 线性方程组的解法

    1 线性方程组的解法 1、线性方程组:左端为未知量x的一次齐次式,右端是常数。关键词:系数、常数项、n元线性方程组、解集 2、线性方程组的初等变换:1)把一个方程的倍数加到另一个方…

    Linux 2023年6月8日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球