diff --git a/index.html b/index.html
index a4dfec2..93aa739 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-
Coherence's Blog
+Coherence's Blog
Coherence's Blog
存档
标签
分类
diff --git a/posts/index.xml b/posts/index.xml
index 94e6ed5..6785245 100644
--- a/posts/index.xml
+++ b/posts/index.xml
@@ -1,4 +1,4 @@
-Posts on Coherence's Blog https://blog.coherence.codes/posts/Recent content in Posts on Coherence's Blog Hugo zh-cn Coherence. 本站遵循 CC BY-NC-SA 4.0 协议 Sat, 27 Apr 2024 00:00:00 +0000 日本之旅 https://blog.coherence.codes/posts/2024/japan_trip/Wed, 24 Apr 2024 00:00:00 +0000 https://blog.coherence.codes/posts/2024/japan_trip/ 计划 我和 Moo 一开始说的是去新马泰,后来改为日本,真正开始做攻略已经是三月下旬了。日本只支持旅行社送签,我在 3/26 申请了签证并提交了材料,4/3 出签,花了六个工作日,还是挺快的。
+Posts on Coherence's Blog https://blog.coherence.codes/posts/Recent content in Posts on Coherence's Blog Hugo zh-cn Coherence. 本站遵循 CC BY-NC-SA 4.0 协议 Sun, 02 Jun 2024 00:00:00 +0000 日本之旅 https://blog.coherence.codes/posts/2024/japan_trip/Wed, 24 Apr 2024 00:00:00 +0000 https://blog.coherence.codes/posts/2024/japan_trip/ 计划 我和 Moo 一开始说的是去新马泰,后来改为日本,真正开始做攻略已经是三月下旬了。日本只支持旅行社送签,我在 3/26 申请了签证并提交了材料,4/3 出签,花了六个工作日,还是挺快的。
订机票和酒店的时候差不多离出发还有半个月,这时候的价格已经挺贵了,可能提前两三个月订会更便宜。初步的计划是东京->京都->大阪,详细的计划写在 hackmd 上。实际上我们的计划并不详细,只是提前订了 Tokyo Skytree、Shibuya sky 的票,规定了一下在东京的那几天每天在哪个区域活动,而在京都和大阪的行程则完全没有计划,全靠临时起意。
我在出发前半个月用多邻国速成了两周日语,非常失败,五十音都没认全,还是只能用英语交流。结论为不如用 Anki 认五十音。
流水账 4/13 终于踏上了去东京的旅程,虽然很怕在途中突然被要求改论文/交材料,but be it,放心玩,越玩越稳。
@@ -17,11 +17,13 @@ Go 包管理的转折来源于 2018 年 2 月 Go 作者之一 Russ Cox 在其博
我还观察到 vlc 是不是也会出现播放时自动停止的现象,另外 youtube/bilibili 播放视频时会经常自动跳转到开头。后来证实这其实都是同一个问题导致的..
线索 在 mpv 的 issue 中找到了一个问题相同的 bug report,开发者认为这是插件导致的,但是我已经禁用所有插件了,于是我留言询问应该如何排查,有一个人指出了可能和 mpv-mpris 有关。
MPRIS 是一个 dbus 接口,提供了控制媒体播放器的相应 API,绝大多数应用,包括上述提到的几个,都支持这一接口。mpv 的 mpris 支持通过 mpv-mpris 包提供。看到这个名字我恍然大悟,mpv-mpris 由系统包管理器安装,因此并没有出现在用户的插件目录下。当即我查看了 mpv-mpris 的源码,发现其为 mpv C 拓展,而不是常见的 Lua 拓展。
-从这里可以看到,它在收到 mpris 的 Stop() 方法后,会向 mpv 发送 stop 命令,因此我准备加一行日志看看到底是不是 mpv-mpris 导致了上述问题。询问了 ChatGPT 之后发现其对于如何在 mpv C 扩展中打印日志完全是在瞎扯. MIT 6.824 学习笔记(二) Raft https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/Sun, 01 Oct 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/ Note: 为了保持准确性,我会尽量使用英文术语。
-Introduction 在过去十年, Leslie Lamport 的 Paxos 几乎成了共识的同义词.. Paxos 首先定义了一种协议来对单个决定达成共识, 比如一条单个的 log entry, 这被称为 single-decree Paxos. 其支持多个决定的版本 (比如 log) 被称为 muti-Paxos。然而,Paxos 的缺点是难以理解,并且没有提供一个良好的基础来构建可行的实现。
+从这里可以看到,它在收到 mpris 的 Stop() 方法后,会向 mpv 发送 stop 命令,因此我准备加一行日志看看到底是不是 mpv-mpris 导致了上述问题。询问了 ChatGPT 之后发现其对于如何在 mpv C 扩展中打印日志完全是在瞎扯. MIT 6.824 学习笔记(二) Raft https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/Sun, 01 Oct 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/ 本文主要是对 Raft 论文的翻译,为了保持准确性,我会尽量使用英文术语。
+Introduction 在过去十年,Leslie Lamport 的 Paxos 协议几乎成为了共识的同义词。Paxos 首先定义了一种协议来对单个决定达成共识, 比如一条单个的 log entry, 这被称为 single-decree Paxos。 其支持多个决定的版本 (比如 log) 被称为 muti-Paxos。然而,Paxos 的缺点是难以理解,并且没有提供一个良好的基础来构建可行的实现。
+试图为这个主题增添一点幽默的尝试以惨淡的失败告终。……这个希腊寓言显然使阅读论文的人们分心了,以致于他们无法理解这个算法。我把论文发给了一些人,其中包括 Nancy Lynch, Vassos Hadzilacos 和 Phil Bernstein,他们声称读过了论文。几个月后我发邮件给他们问了如下问题:
+你能否实现一个分布式数据库,它能容忍任何进程的故障(可能是所有进程)而不牺牲一致性,并且在超过半数进程恢复之后继续正常工作? 没有人察觉到这个问题和 Paxos 算法之间有任何联系。
+—— Leslie Lamport 对 The Part-Time Parliament 的评论
相较于 Paxos,Raft 的目标是易于理解且符合直觉。为了使 Raft 易于理解,作者采取了解耦 (Raft 将共识问题分解成几个子问题 leader election, log replication, safety, and membership changes) 和缩减状态空间的方式。
-Raft 和已有的共识算法类似(尤其是 Viewstamped Replication),但它有一些新特性。Raft 采取了强 leader 的设计,例如 log entry 只会从 leader 向其他节点分发。这可能是为了性能考虑(比无 leader 要更快,RPC 也更少)Raft 采用基于随机计时器的 leader 选举, 从而用一种简单的方法来解决冲突。另外还有处理成员变更方面的改进。
-为了解决单点故障问题,Raft 采用了 Majority Vote,基本上任何操作都需要得到多数确认才能够执行。为了避免 tie,Raft 的节点数量必须为奇数。因此在一个 2f+1 个节点的系统中,最多允许 f 个节点故障,f+1 即为法定人数(quorum)。 git 入门 https://blog.coherence.codes/posts/2023/git_%E5%85%A5%E9%97%A8/Mon, 18 Sep 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/git_%E5%85%A5%E9%97%A8/ 本文的大部分内容来自于 Pro Git 这本书。
+Raft 和已有的共识算法类似(尤其是 Viewstamped Replication),但它有一些新特性。Raft 采取了强 leader 的设计,例如 log entry 只会从 leader 向其他节点分发。这可能是为了性能考虑(比无 leader 要更快,RPC 也更少)Raft 采用基于随机计时器的 leader 选举, 从而用一种简单的方法来解决冲突。另外还有处理成员变更方面的改进。 git 入门 https://blog.coherence.codes/posts/2023/git_%E5%85%A5%E9%97%A8/Mon, 18 Sep 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/git_%E5%85%A5%E9%97%A8/ 本文的大部分内容来自于 Pro Git 这本书。
Objects git 中最基础的元素是 object,每个 object 由一个 object ID (OID) 唯一标识,OID 是一个 160 bits (用 hex 字符串表示为四十个字符) 的 SHA-1 哈希。具体而言,git 中主要存在三种 objects:
blobs: 存储文件内容,OID 即为文件内容的哈希
trees: 一个文件名(path entries)的有序列表,OID 为这个列表的哈希。列表的每一行如下:
diff --git a/sitemap.xml b/sitemap.xml
index 7a1d176..fd90fac 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-https://blog.coherence.codes/ 2024-04-27T00:00:00+00:00 https://blog.coherence.codes/posts/ 2024-04-27T00:00:00+00:00 https://blog.coherence.codes/tags/ 2024-04-27T00:00:00+00:00 https://blog.coherence.codes/tags/travel/ 2024-04-27T00:00:00+00:00 https://blog.coherence.codes/posts/2024/japan_trip/ 2024-04-27T00:00:00+00:00 https://blog.coherence.codes/posts/2024/go_pkg_mgmt_1_toturial/ 2024-01-07T00:00:00+00:00 https://blog.coherence.codes/tags/golang/ 2024-01-07T00:00:00+00:00 https://blog.coherence.codes/tags/package-management/ 2024-01-07T00:00:00+00:00 https://blog.coherence.codes/tags/linux-desktop/ 2023-12-10T00:00:00+00:00 https://blog.coherence.codes/posts/2023/mpv_debug/ 2023-12-10T00:00:00+00:00 https://blog.coherence.codes/tags/distributed-system/ 2023-10-11T00:00:00+00:00 https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/ 2023-10-11T00:00:00+00:00 https://blog.coherence.codes/tags/git/ 2023-09-18T00:00:00+00:00 https://blog.coherence.codes/posts/2023/git_%E5%85%A5%E9%97%A8/ 2023-09-18T00:00:00+00:00 https://blog.coherence.codes/posts/2023/mit_6.824_1_gfs/ 2023-09-05T00:00:00+00:00 https://blog.coherence.codes/tags/kde/ 2023-09-04T00:00:00+00:00 https://blog.coherence.codes/posts/2023/%E7%A5%9E%E7%A7%98%E7%9A%84%E8%87%AA%E5%8A%A8%E5%85%B3%E9%97%AD%E6%98%BE%E7%A4%BA%E5%99%A8%E5%A4%B1%E6%95%88%E9%97%AE%E9%A2%98/ 2023-09-04T00:00:00+00:00 https://blog.coherence.codes/posts/2023/%E5%BC%BA%E5%88%B6-chromium-%E4%BD%BF%E7%94%A8%E6%B5%85%E8%89%B2%E6%A8%A1%E5%BC%8F/ 2023-05-30T00:00:00+00:00 https://blog.coherence.codes/posts/2023/kubernetes-%E7%94%9F%E6%80%81%E4%B8%AD%E7%9A%84%E8%88%AA%E6%B5%B7%E9%9A%90%E5%96%BB/ 2023-04-30T00:00:00+00:00 https://blog.coherence.codes/posts/2023/%E5%8D%9A%E5%AE%A2%E9%87%8C%E5%BA%94%E8%AF%A5%E5%86%99%E4%BB%80%E4%B9%88/ 2023-04-24T00:00:00+00:00 https://blog.coherence.codes/posts/2023/ipv6-%E9%85%8D%E7%BD%AE%E5%85%A5%E9%97%A8/ 2024-02-24T00:00:00+00:00 https://blog.coherence.codes/tags/blog/ 2023-04-24T00:00:00+00:00 https://blog.coherence.codes/posts/2022/hello_hugo/ 2023-04-24T00:00:00+00:00 https://blog.coherence.codes/posts/2022/the-2022-python-language-summit/ 2022-05-23T00:00:00+00:00 https://blog.coherence.codes/posts/2022/%E6%B0%91%E6%97%8F%E4%B8%BB%E4%B9%89%E8%87%AA%E5%AA%92%E4%BD%93%E6%98%AF%E5%A6%82%E4%BD%95%E6%B6%88%E8%B4%B9%E6%88%91%E4%BB%AC%E7%9A%84/ 2022-10-02T00:00:00+00:00 https://blog.coherence.codes/posts/2022/%E6%88%91%E7%9A%84%E6%89%8B%E6%9C%BA%E5%8F%98%E8%BF%81%E5%8F%B2/ 2022-04-07T00:00:00+00:00 https://blog.coherence.codes/posts/2022/surface_on_linux/ 2022-02-26T00:00:00+00:00 https://blog.coherence.codes/tags/archlinux/ 2021-12-08T00:00:00+00:00 https://blog.coherence.codes/posts/2021/my_first_archlinux_package/ 2021-12-08T00:00:00+00:00 https://blog.coherence.codes/tags/ctf/ 2021-10-30T00:00:00+00:00 https://blog.coherence.codes/posts/2021/hackergame_2021_writeup/ 2021-10-30T00:00:00+00:00 https://blog.coherence.codes/posts/2021/2020summary_2021plan/ 2021-02-25T00:00:00+00:00 https://blog.coherence.codes/tags/%E6%80%BB%E7%BB%93/ 2021-02-25T00:00:00+00:00 https://blog.coherence.codes/posts/2021/anki_workflow/ 2021-02-24T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/codeforces_634_div3/ 2020-04-19T19:00:00+00:00 https://blog.coherence.codes/tags/%E7%AE%97%E6%B3%95/ 2020-04-19T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/codeforces_629_div3/ 2020-04-12T19:00:00+00:00 https://blog.coherence.codes/tags/%E5%8D%9A%E5%AE%A2/ 2020-04-01T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/write_a_script_to_classify_posts/ 2020-04-01T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/kickstart_2020_round_a/ 2020-03-26T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/2019summary_2020plan/ 2020-02-01T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/wsl%E4%BD%BF%E7%94%A8%E4%BD%93%E9%AA%8C/ 2019-12-08T19:12:51+00:00 https://blog.coherence.codes/posts/2020_and_before/reinstall-hexo/ 2019-08-07T16:03:29+00:00 https://blog.coherence.codes/posts/2020_and_before/%E5%A4%A7%E4%BA%8C%E4%B8%8B%E5%AD%A6%E6%9C%9F%E6%9C%9F%E6%9C%AB%E5%A4%8D%E4%B9%A0/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/tags/nginx/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/tags/python/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/isoftstone-practice/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/tags/ci/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/tags/hexo/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/use-ci-auto-deploy-blog/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/arch-linux-install/ 2019-04-24T08:00:00+00:00 https://blog.coherence.codes/tags/linux/ 2019-04-24T08:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/fiber-modem-crack/ 2019-02-19T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/2018summary_2019plan/ 2019-02-14T00:00:00+00:00 https://blog.coherence.codes/tags/acm/ 2019-12-08T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/domjudge-config/ 2019-12-08T00:00:00+00:00 https://blog.coherence.codes/tags/kms/ 2018-12-01T00:00:00+00:00 https://blog.coherence.codes/tags/office/ 2018-12-01T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/visio-kms-activate/ 2018-12-01T00:00:00+00:00 https://blog.coherence.codes/tags/markdown/ 2019-01-22T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/all-about-markdown/ 2019-01-22T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/about_me/ 2018-11-03T16:37:04+00:00 https://blog.coherence.codes/tags/fonts/ 2019-02-13T00:00:00+00:00 https://blog.coherence.codes/tags/windows/ 2019-02-13T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/windows10%E5%AD%97%E4%BD%93%E5%B4%A9%E6%BA%83%E4%BF%AE%E5%A4%8D/ 2019-02-13T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9%E4%BA%86%E7%8B%AC%E7%AB%8B%E5%8D%9A%E5%AE%A2/ 2019-04-21T20:13:11+00:00 https://blog.coherence.codes/posts/2020_and_before/hexo%E6%90%AD%E5%BB%BA%E5%B0%8F%E8%AE%B0/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/hello-world-0/ 2018-10-14T20:38:00+00:00 https://blog.coherence.codes/tags/test/ 2018-10-14T20:38:00+00:00 https://blog.coherence.codes/about/ https://blog.coherence.codes/friends/ https://blog.coherence.codes/categories/
\ No newline at end of file
+https://blog.coherence.codes/ 2024-06-02T00:00:00+00:00 https://blog.coherence.codes/posts/ 2024-06-02T00:00:00+00:00 https://blog.coherence.codes/tags/ 2024-06-02T00:00:00+00:00 https://blog.coherence.codes/tags/travel/ 2024-04-27T00:00:00+00:00 https://blog.coherence.codes/posts/2024/japan_trip/ 2024-04-27T00:00:00+00:00 https://blog.coherence.codes/posts/2024/go_pkg_mgmt_1_toturial/ 2024-01-07T00:00:00+00:00 https://blog.coherence.codes/tags/golang/ 2024-01-07T00:00:00+00:00 https://blog.coherence.codes/tags/package-management/ 2024-01-07T00:00:00+00:00 https://blog.coherence.codes/tags/linux-desktop/ 2023-12-10T00:00:00+00:00 https://blog.coherence.codes/posts/2023/mpv_debug/ 2023-12-10T00:00:00+00:00 https://blog.coherence.codes/tags/distributed-system/ 2024-06-02T00:00:00+00:00 https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/ 2024-06-02T00:00:00+00:00 https://blog.coherence.codes/tags/git/ 2023-09-18T00:00:00+00:00 https://blog.coherence.codes/posts/2023/git_%E5%85%A5%E9%97%A8/ 2023-09-18T00:00:00+00:00 https://blog.coherence.codes/posts/2023/mit_6.824_1_gfs/ 2023-09-05T00:00:00+00:00 https://blog.coherence.codes/tags/kde/ 2023-09-04T00:00:00+00:00 https://blog.coherence.codes/posts/2023/%E7%A5%9E%E7%A7%98%E7%9A%84%E8%87%AA%E5%8A%A8%E5%85%B3%E9%97%AD%E6%98%BE%E7%A4%BA%E5%99%A8%E5%A4%B1%E6%95%88%E9%97%AE%E9%A2%98/ 2023-09-04T00:00:00+00:00 https://blog.coherence.codes/posts/2023/%E5%BC%BA%E5%88%B6-chromium-%E4%BD%BF%E7%94%A8%E6%B5%85%E8%89%B2%E6%A8%A1%E5%BC%8F/ 2023-05-30T00:00:00+00:00 https://blog.coherence.codes/posts/2023/kubernetes-%E7%94%9F%E6%80%81%E4%B8%AD%E7%9A%84%E8%88%AA%E6%B5%B7%E9%9A%90%E5%96%BB/ 2023-04-30T00:00:00+00:00 https://blog.coherence.codes/posts/2023/%E5%8D%9A%E5%AE%A2%E9%87%8C%E5%BA%94%E8%AF%A5%E5%86%99%E4%BB%80%E4%B9%88/ 2023-04-24T00:00:00+00:00 https://blog.coherence.codes/posts/2023/ipv6-%E9%85%8D%E7%BD%AE%E5%85%A5%E9%97%A8/ 2024-02-24T00:00:00+00:00 https://blog.coherence.codes/tags/blog/ 2023-04-24T00:00:00+00:00 https://blog.coherence.codes/posts/2022/hello_hugo/ 2023-04-24T00:00:00+00:00 https://blog.coherence.codes/posts/2022/the-2022-python-language-summit/ 2022-05-23T00:00:00+00:00 https://blog.coherence.codes/posts/2022/%E6%B0%91%E6%97%8F%E4%B8%BB%E4%B9%89%E8%87%AA%E5%AA%92%E4%BD%93%E6%98%AF%E5%A6%82%E4%BD%95%E6%B6%88%E8%B4%B9%E6%88%91%E4%BB%AC%E7%9A%84/ 2022-10-02T00:00:00+00:00 https://blog.coherence.codes/posts/2022/%E6%88%91%E7%9A%84%E6%89%8B%E6%9C%BA%E5%8F%98%E8%BF%81%E5%8F%B2/ 2022-04-07T00:00:00+00:00 https://blog.coherence.codes/posts/2022/surface_on_linux/ 2022-02-26T00:00:00+00:00 https://blog.coherence.codes/tags/archlinux/ 2021-12-08T00:00:00+00:00 https://blog.coherence.codes/posts/2021/my_first_archlinux_package/ 2021-12-08T00:00:00+00:00 https://blog.coherence.codes/tags/ctf/ 2021-10-30T00:00:00+00:00 https://blog.coherence.codes/posts/2021/hackergame_2021_writeup/ 2021-10-30T00:00:00+00:00 https://blog.coherence.codes/posts/2021/2020summary_2021plan/ 2021-02-25T00:00:00+00:00 https://blog.coherence.codes/tags/%E6%80%BB%E7%BB%93/ 2021-02-25T00:00:00+00:00 https://blog.coherence.codes/posts/2021/anki_workflow/ 2021-02-24T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/codeforces_634_div3/ 2020-04-19T19:00:00+00:00 https://blog.coherence.codes/tags/%E7%AE%97%E6%B3%95/ 2020-04-19T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/codeforces_629_div3/ 2020-04-12T19:00:00+00:00 https://blog.coherence.codes/tags/%E5%8D%9A%E5%AE%A2/ 2020-04-01T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/write_a_script_to_classify_posts/ 2020-04-01T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/kickstart_2020_round_a/ 2020-03-26T19:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/2019summary_2020plan/ 2020-02-01T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/wsl%E4%BD%BF%E7%94%A8%E4%BD%93%E9%AA%8C/ 2019-12-08T19:12:51+00:00 https://blog.coherence.codes/posts/2020_and_before/reinstall-hexo/ 2019-08-07T16:03:29+00:00 https://blog.coherence.codes/posts/2020_and_before/%E5%A4%A7%E4%BA%8C%E4%B8%8B%E5%AD%A6%E6%9C%9F%E6%9C%9F%E6%9C%AB%E5%A4%8D%E4%B9%A0/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/tags/nginx/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/tags/python/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/isoftstone-practice/ 2019-07-20T00:00:00+00:00 https://blog.coherence.codes/tags/ci/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/tags/hexo/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/use-ci-auto-deploy-blog/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/arch-linux-install/ 2019-04-24T08:00:00+00:00 https://blog.coherence.codes/tags/linux/ 2019-04-24T08:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/fiber-modem-crack/ 2019-02-19T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/2018summary_2019plan/ 2019-02-14T00:00:00+00:00 https://blog.coherence.codes/tags/acm/ 2019-12-08T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/domjudge-config/ 2019-12-08T00:00:00+00:00 https://blog.coherence.codes/tags/kms/ 2018-12-01T00:00:00+00:00 https://blog.coherence.codes/tags/office/ 2018-12-01T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/visio-kms-activate/ 2018-12-01T00:00:00+00:00 https://blog.coherence.codes/tags/markdown/ 2019-01-22T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/all-about-markdown/ 2019-01-22T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/about_me/ 2018-11-03T16:37:04+00:00 https://blog.coherence.codes/tags/fonts/ 2019-02-13T00:00:00+00:00 https://blog.coherence.codes/tags/windows/ 2019-02-13T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/windows10%E5%AD%97%E4%BD%93%E5%B4%A9%E6%BA%83%E4%BF%AE%E5%A4%8D/ 2019-02-13T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9%E4%BA%86%E7%8B%AC%E7%AB%8B%E5%8D%9A%E5%AE%A2/ 2019-04-21T20:13:11+00:00 https://blog.coherence.codes/posts/2020_and_before/hexo%E6%90%AD%E5%BB%BA%E5%B0%8F%E8%AE%B0/ 2019-04-21T00:00:00+00:00 https://blog.coherence.codes/posts/2020_and_before/hello-world-0/ 2018-10-14T20:38:00+00:00 https://blog.coherence.codes/tags/test/ 2018-10-14T20:38:00+00:00 https://blog.coherence.codes/about/ https://blog.coherence.codes/friends/ https://blog.coherence.codes/categories/
\ No newline at end of file
diff --git a/tags/distributed-system/index.xml b/tags/distributed-system/index.xml
index 234c9a2..fc5b7c6 100644
--- a/tags/distributed-system/index.xml
+++ b/tags/distributed-system/index.xml
@@ -1,8 +1,10 @@
-Distributed System on Coherence's Blog https://blog.coherence.codes/tags/distributed-system/Recent content in Distributed System on Coherence's Blog Hugo zh-cn Coherence. 本站遵循 CC BY-NC-SA 4.0 协议 Wed, 11 Oct 2023 00:00:00 +0000 MIT 6.824 学习笔记(二) Raft https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/Sun, 01 Oct 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/ Note: 为了保持准确性,我会尽量使用英文术语。
-Introduction 在过去十年, Leslie Lamport 的 Paxos 几乎成了共识的同义词.. Paxos 首先定义了一种协议来对单个决定达成共识, 比如一条单个的 log entry, 这被称为 single-decree Paxos. 其支持多个决定的版本 (比如 log) 被称为 muti-Paxos。然而,Paxos 的缺点是难以理解,并且没有提供一个良好的基础来构建可行的实现。
+Distributed System on Coherence's Blog https://blog.coherence.codes/tags/distributed-system/Recent content in Distributed System on Coherence's Blog Hugo zh-cn Coherence. 本站遵循 CC BY-NC-SA 4.0 协议 Sun, 02 Jun 2024 00:00:00 +0000 MIT 6.824 学习笔记(二) Raft https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/Sun, 01 Oct 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/mit_6.824_2_raft/ 本文主要是对 Raft 论文的翻译,为了保持准确性,我会尽量使用英文术语。
+Introduction 在过去十年,Leslie Lamport 的 Paxos 协议几乎成为了共识的同义词。Paxos 首先定义了一种协议来对单个决定达成共识, 比如一条单个的 log entry, 这被称为 single-decree Paxos。 其支持多个决定的版本 (比如 log) 被称为 muti-Paxos。然而,Paxos 的缺点是难以理解,并且没有提供一个良好的基础来构建可行的实现。
+试图为这个主题增添一点幽默的尝试以惨淡的失败告终。……这个希腊寓言显然使阅读论文的人们分心了,以致于他们无法理解这个算法。我把论文发给了一些人,其中包括 Nancy Lynch, Vassos Hadzilacos 和 Phil Bernstein,他们声称读过了论文。几个月后我发邮件给他们问了如下问题:
+你能否实现一个分布式数据库,它能容忍任何进程的故障(可能是所有进程)而不牺牲一致性,并且在超过半数进程恢复之后继续正常工作? 没有人察觉到这个问题和 Paxos 算法之间有任何联系。
+—— Leslie Lamport 对 The Part-Time Parliament 的评论
相较于 Paxos,Raft 的目标是易于理解且符合直觉。为了使 Raft 易于理解,作者采取了解耦 (Raft 将共识问题分解成几个子问题 leader election, log replication, safety, and membership changes) 和缩减状态空间的方式。
-Raft 和已有的共识算法类似(尤其是 Viewstamped Replication),但它有一些新特性。Raft 采取了强 leader 的设计,例如 log entry 只会从 leader 向其他节点分发。这可能是为了性能考虑(比无 leader 要更快,RPC 也更少)Raft 采用基于随机计时器的 leader 选举, 从而用一种简单的方法来解决冲突。另外还有处理成员变更方面的改进。
-为了解决单点故障问题,Raft 采用了 Majority Vote,基本上任何操作都需要得到多数确认才能够执行。为了避免 tie,Raft 的节点数量必须为奇数。因此在一个 2f+1 个节点的系统中,最多允许 f 个节点故障,f+1 即为法定人数(quorum)。 MIT 6.824 学习笔记(一) GFS https://blog.coherence.codes/posts/2023/mit_6.824_1_gfs/Tue, 05 Sep 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/mit_6.824_1_gfs/ 存储系统通常是一个分布式系统的基石,通常应用可以是无状态的,而所有状态便由存储系统来管理。
+Raft 和已有的共识算法类似(尤其是 Viewstamped Replication),但它有一些新特性。Raft 采取了强 leader 的设计,例如 log entry 只会从 leader 向其他节点分发。这可能是为了性能考虑(比无 leader 要更快,RPC 也更少)Raft 采用基于随机计时器的 leader 选举, 从而用一种简单的方法来解决冲突。另外还有处理成员变更方面的改进。 MIT 6.824 学习笔记(一) GFS https://blog.coherence.codes/posts/2023/mit_6.824_1_gfs/Tue, 05 Sep 2023 00:00:00 +0000 https://blog.coherence.codes/posts/2023/mit_6.824_1_gfs/ 存储系统通常是一个分布式系统的基石,通常应用可以是无状态的,而所有状态便由存储系统来管理。
Google 文件系统(The Google File System, GFS)在 2003 年于一篇同名论文中被提出,发表在系统领域顶会 SOSP 上,是 Google 大数据三驾马车之一1。GFS 是一个成功的系统,在 00 年代早期,人们对于分布式文件系统已经有很好的理解了,但是尚未有一个可以扩展到上千个节点的系统被实现出来。很多 GFS 的设计被 HDFS 等后来的分布式文件系统上。
GFS 基于以下几个方面的观察:
节点故障是常见的,因为其运行在大量普通机器(commodity components)上 存储的文件以大文件(数百 MB 到数 GB)为主,小文件应当被支持,但不应对其优化 对文件的大多数写入操作是追加 (append)而不是覆盖/随机写,大多数读取操作是顺序读 (1 MB 或更多) 所以系统必须有良好的并发追加操作的语义 工作负载通常是批处理任务,所以高吞吐量比低延时重要 同时设计应用和文件系统 API 有利于整个系统的灵活性 架构 GFS 采用 Master/Slave 架构,集群中存在一个 master 和多个 chunkservers,并且被多个 clients 访问。(由于单 master 的存在,GFS 存在单点故障的可能性,虽然 master 同样有备份,但恢复可能需要人工干预)一个文件将被分割成多个 chunk。chunk 的特性如下:
diff --git a/tags/index.xml b/tags/index.xml
index fcae9a8..9c42b69 100644
--- a/tags/index.xml
+++ b/tags/index.xml
@@ -1 +1 @@
-Tags on Coherence's Blog https://blog.coherence.codes/tags/Recent content in Tags on Coherence's Blog Hugo zh-cn Coherence. 本站遵循 CC BY-NC-SA 4.0 协议 Sat, 27 Apr 2024 00:00:00 +0000 Travel https://blog.coherence.codes/tags/travel/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/travel/ Golang https://blog.coherence.codes/tags/golang/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/golang/ Package Management https://blog.coherence.codes/tags/package-management/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/package-management/ Linux Desktop https://blog.coherence.codes/tags/linux-desktop/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/linux-desktop/ Distributed System https://blog.coherence.codes/tags/distributed-system/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/distributed-system/ Git https://blog.coherence.codes/tags/git/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/git/ KDE https://blog.coherence.codes/tags/kde/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/kde/ Blog https://blog.coherence.codes/tags/blog/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/blog/ Archlinux https://blog.coherence.codes/tags/archlinux/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/archlinux/ CTF https://blog.coherence.codes/tags/ctf/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/ctf/ 总结 https://blog.coherence.codes/tags/%E6%80%BB%E7%BB%93/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/%E6%80%BB%E7%BB%93/ 算法 https://blog.coherence.codes/tags/%E7%AE%97%E6%B3%95/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/%E7%AE%97%E6%B3%95/ 博客 https://blog.coherence.codes/tags/%E5%8D%9A%E5%AE%A2/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/%E5%8D%9A%E5%AE%A2/ Nginx https://blog.coherence.codes/tags/nginx/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/nginx/ Python https://blog.coherence.codes/tags/python/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/python/ CI https://blog.coherence.codes/tags/ci/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/ci/ Hexo https://blog.coherence.codes/tags/hexo/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/hexo/ Linux https://blog.coherence.codes/tags/linux/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/linux/ ACM https://blog.coherence.codes/tags/acm/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/acm/ KMS https://blog.coherence.codes/tags/kms/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/kms/ Office https://blog.coherence.codes/tags/office/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/office/ Markdown https://blog.coherence.codes/tags/markdown/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/markdown/ Fonts https://blog.coherence.codes/tags/fonts/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/fonts/ Windows https://blog.coherence.codes/tags/windows/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/windows/ Test https://blog.coherence.codes/tags/test/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/test/
\ No newline at end of file
+Tags on Coherence's Blog https://blog.coherence.codes/tags/Recent content in Tags on Coherence's Blog Hugo zh-cn Coherence. 本站遵循 CC BY-NC-SA 4.0 协议 Sun, 02 Jun 2024 00:00:00 +0000 Travel https://blog.coherence.codes/tags/travel/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/travel/ Golang https://blog.coherence.codes/tags/golang/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/golang/ Package Management https://blog.coherence.codes/tags/package-management/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/package-management/ Linux Desktop https://blog.coherence.codes/tags/linux-desktop/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/linux-desktop/ Distributed System https://blog.coherence.codes/tags/distributed-system/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/distributed-system/ Git https://blog.coherence.codes/tags/git/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/git/ KDE https://blog.coherence.codes/tags/kde/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/kde/ Blog https://blog.coherence.codes/tags/blog/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/blog/ Archlinux https://blog.coherence.codes/tags/archlinux/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/archlinux/ CTF https://blog.coherence.codes/tags/ctf/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/ctf/ 总结 https://blog.coherence.codes/tags/%E6%80%BB%E7%BB%93/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/%E6%80%BB%E7%BB%93/ 算法 https://blog.coherence.codes/tags/%E7%AE%97%E6%B3%95/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/%E7%AE%97%E6%B3%95/ 博客 https://blog.coherence.codes/tags/%E5%8D%9A%E5%AE%A2/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/%E5%8D%9A%E5%AE%A2/ Nginx https://blog.coherence.codes/tags/nginx/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/nginx/ Python https://blog.coherence.codes/tags/python/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/python/ CI https://blog.coherence.codes/tags/ci/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/ci/ Hexo https://blog.coherence.codes/tags/hexo/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/hexo/ Linux https://blog.coherence.codes/tags/linux/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/linux/ ACM https://blog.coherence.codes/tags/acm/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/acm/ KMS https://blog.coherence.codes/tags/kms/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/kms/ Office https://blog.coherence.codes/tags/office/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/office/ Markdown https://blog.coherence.codes/tags/markdown/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/markdown/ Fonts https://blog.coherence.codes/tags/fonts/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/fonts/ Windows https://blog.coherence.codes/tags/windows/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/windows/ Test https://blog.coherence.codes/tags/test/Mon, 01 Jan 0001 00:00:00 +0000 https://blog.coherence.codes/tags/test/
\ No newline at end of file