![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 93
一把健
专硕如何在中山大学毕业呢?
展开
-
mit_6.824_2021_lab2D_log_compaction
mit_6.824_2021_lab2D_log_compactionlab2D 主要是日志压缩功能,实验里是采用论文的最简单的方式,snapshot 压缩快照,并且更简单的是不分块的形式;感觉主要有两点需要注意:快照功能的加入对原有逻辑的修改快照功能的流程(InstallSnapshot, Snapshot, CondInstallSnapshot, applyCh)lab2D_log_compaction实验内容要实现快照功能,需要实现 Snapshot、CondInstallSnap原创 2021-10-17 17:12:19 · 757 阅读 · 0 评论 -
mit_6.824_2021_lab2C_persistence
mit_6.824_2021_lab2C_persistencepersistence 引入持久化,持久化的相关代码已经在 persister.go 中实现,我们要做的只是调用 api 就好,相对容易的一节;但同时也是不容易的一节,因为这一节中有两个关于 图8 的网络崩溃节点崩溃实验,基本都会出 bug,出 bug 基本都是因为 lab2A 和 lab2B 引入的 bug;本人也因为 lab2B 引入的 bug 导致在 lab2C 卡了很久;这里阐述一下自己的心路历程lab2C_persistenc原创 2021-10-15 20:36:56 · 340 阅读 · 0 评论 -
mit_6.824_2021_lab2B_log_replication
mit_6.824_2021_lab2B_log_replicationlab2B,日志复制,我愿称之为 raft 核心中的核心,细节爆炸????,细节都在魔鬼中还是需要将 Fig2 完全实现,并且将 5.3 和 5.4节完全实现,这里我在实现的时候顺便把 nextIndex 优化给做了,具体实现可以直接在助教的 guide 中直接找到lab2B:log replication实验内容实现 leader 和 follower 的相关代码以实现日志追加,用go test -run 2B -race进原创 2021-10-13 17:11:50 · 596 阅读 · 2 评论 -
mit_6.824_2021_lab2A_leader_election
mit_6.824_2021_lab2A_leader_election做完 lab2 之后回来写系列文章总结如果说 lab1 的 mapreduce 是用来入门分布式系统课程的,那么 lab2 开始就是课程设计的真正开始lab2 系列为 raft 分布式一致性协议算法的实现,论文 extended Raft paper 更是要反复看,尤其是 Figure 2,以及第五章节的一些实现细节raft 将分布式一致性共识分解为若干个子问题,lab2 系列也随之挂钩:leader election,领原创 2021-10-10 23:46:21 · 512 阅读 · 1 评论 -
mit_6.824_2021_lab1_mapreduce
mit 6.824 2021 lab1 mapreducelab1 mapreduce实验:https://pdos.csail.mit.edu/6.824/labs/lab-mr.html实验结果源码:https://github.com/SwordHarry/mit6.824实验背景mapreduce paper: https://static.googleusercontent.com/media/research.google.com/zh-CN//archive/mapreduce-原创 2021-07-17 23:39:35 · 812 阅读 · 2 评论 -
《算法导论》散列表与Go语言中的map
《算法导论》读书笔记:散列表(附-Go语言中的map)参考书籍:《算法导论》散列表参考博客:https://mp.weixin.qq.com/s/OJSxIXH87mjCkQn76eNQsQ1. 直接寻址表全域 U 直接到槽 K但当全域 U 很大时,不可取2. 散列表装载因子表示哈希表中元素的填满程度。它的计算公式:装载因子=填入哈希表中的元素个数/哈希表的长度。装载因子越大,填入的元素越多,空间利用率就越高,但发生哈希冲突的几率就变大。反之,装载因子越小,填入的元素越少,冲突发生的几率原创 2020-11-03 20:16:43 · 377 阅读 · 0 评论 -
Go语言中的map[math.NaN()]
Go语言中的map[math.NaN()]最近在研究 Go 语言的 map 数据结构时发现的一个关于math.NaN()和map联动的现象func main() { m := make(map[float64]string) m[math.NaN()] = "123" m[math.NaN()] = "345" v, ok := m[math.NaN()] if ok { fmt.Println(v) } else { fmt.Println("未找到 math.NaN()") }原创 2020-11-03 20:15:19 · 736 阅读 · 0 评论 -
论文笔记《Understanding_Real-World_Concurrency_Bugs_in_Go》
论文笔记《Understanding_Real-World_Concurrency_Bugs_in_Go》论文会议:ASPLOS年份:2019论文概述该论文主要针对 Go 语言中的并发编程,对开源市场上的 6 款主流程序包括 Docker、Kubernetes 和 gRPC 等做了 bug 分析和重现,并分析了他们的 bug fix commit。通过对这些 bug 进行分类和源码分析与修复,得出未来Go 语言可进行工作的方向和需要注意的编程点。重点bug 分类论文将 bug 从两个正交维原创 2020-10-23 15:01:46 · 352 阅读 · 0 评论 -
goblog:基于gin、gorm和中间件的个人博客
goblog:基于gin、gorm和中间件的个人博客前言一直想尝试在互联网中留下属于自己的足迹,故搭建了一个从数据存储到页面展示都自主开发的个人博客;同时也是使用go语言开发,进行web练手学习。github:https://github.com/SwordHarry/goblog博客地址:备案中。。。主要围绕 gin 和 gorm 进行博客网页部分和api部分的业务开发,现支持 markdown 文件的上传部分细节参考于《Go 语言编程之旅》一书,好评业务总体上分为用于浏览的网页业务和原创 2020-08-17 18:24:29 · 3434 阅读 · 3 评论 -
goPetStore_v2:基于gin和sqlx的go web项目
goPetStore_v2: 基于gin和sqlx的go web项目前言为基于go的无框架web项目的框架版,采用 gin 和 sqlx 进行框架开发;旨在上手 go 主流框架github: https://github.com/SwordHarry/gopetstore_v2业务模块商品模块categoryproductitemsearch购物车模块cart用户模块account订单模块orderlineItemsequence架构temp原创 2020-06-23 23:03:26 · 921 阅读 · 2 评论 -
goPetStore: 基于go的无框架web项目
goPetStore: 基于go的无框架web项目前言原项目为 java 编写的 jpetStore,原 java 版:https://blog.csdn.net/qq_39446719/article/details/80821440现改为使用 go 语言编写,旨在上手 go web 编程,github:https://github.com/SwordHarry/gopetstore业务模块商品模块categoryproductitemsearch购物车模块cart用原创 2020-06-14 16:01:27 · 642 阅读 · 0 评论