论文笔记
樊文飞院士的论文解读(DGFD, GAR)
想看系列文章吗?
点击下方你感兴趣的笔记内容吧!
这段时间一直在更新自己的博客, 碰到三个很困扰的问题:
git add
命令执行后总有 Warning 提示: Warning: in the working copy of CRLF will be replaced by LF the next time Git touches it.
git clone
一个新的 repo
会直接显示文件 modified
, 明明什么都没有改动.后来发现这 3 个问题其实都是一个问题导致的: CRLF
符号. 网上搜索有很多人也遇到同样的问题, 都说要更改 Git 的配置, 但是没有人把原理说得很明白, 今天写文档记录一下.
在一个分布式系统中, 通常拥有许多节点. 节点之间如果需要达成共识, 确保节点之间的一致性成为了所有分布式系统都关注的问题.
Raft 是非常经典的一个分布式算法, 它可以保证一个分布式系统中所有节点都保持连续的一致性状态, 是一种用于管理复制日志的一致性算法. Raft 算法旨在通过提供容错和确保选出单个领导者来协调操作所有节点. 本文中我们将深入研究 Raft 算法的核心概念, 重点在于节点的一致性和领导节点的选举.
"一致性 Hash" 似乎是一个具有迷惑性的名字, 因为 Hash 函数的结果不管在哪里计算都应该是一样的, 为什么会存在一致性的问题? 其实我们提出一致性 Hash 这个概念是为了解决分布式存储中的问题. 在分布式存储中不同的机器会存储不同的对象的数据, 我们使用 Hash 函数来建立数据到服务器之间的映射关系. 那么为什么会存在 "不一致" 呢?
我们都知道的是 TCP 连接的建立存在 "三次握手, 四次挥手", 但是这中间到底发生了什么? 为什么挥手的次数要更多? 如果只用两次握手会怎么样? 如果握手和挥手的过程中存在网络延迟或者包的丢失会发生什么? 这篇文章将会给你答案.
栈和堆之间的区别可能会让很多人感到困惑. 因此, 这里有一份有关栈和堆的问题和答案清单, 我认为非常有帮助.
正如 David Wheeler 所说的那样:
"All problems in computer science can be solved by another level of indirection."
"计算机科学中的所有问题都可以通过增加一个间接层来解决"
代理 的思想在计算机的许多领域都有体现. 本质上就是原本 A 和 B 可以直接联系, 但是我们增加一个 C 作为中介, A 和 B 都通过 C 来进行联系.
作为一个程序员, 为自己的项目或仓库撰写 README
是必不可免的工作. 一个好的规范的 README
文件可以让其他人快速准确地理解你的仓库代码, 快速地安装并使用, 并在必要的时候知道如何与你合作, 对开源项目的传播有极大的帮助.
那么该如何撰写一份规范简介的 README
文件呢? 一个标准的 README
文件又该具备哪些部分? 如果你同样有这些疑问, 请仔细阅读本文, 我相信会给你很大的帮助.
Redis是非常常用的KV数据库, 使用内存以及HashMap进行存储的特点带来了高效的查询. 本文将围绕Redis的常见开发使用场景, 阐述在Redis集群中各个节点是如何进行数据同步, 每个节点如何进行持久化以及在长期使用中如何对数据进行更新和淘汰.
如果你想了解 Go 是如何进行 GC (garbage collection), 即垃圾回收的. 又在网上看了很多关于"三色标记法", 但是觉得说的非常复杂不够简单的. 那么这篇文章是你对于 Go 的 GC 机制非常好的入门参考.