<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>分布式 on Nekonull's Garden</title><link>https://nekonull.me/tags/%E5%88%86%E5%B8%83%E5%BC%8F/</link><description>Recent content in 分布式 on Nekonull's Garden</description><generator>Hugo</generator><language>zh-CN</language><copyright>CC-BY-SA-4.0</copyright><lastBuildDate>Sun, 12 Dec 2021 20:47:32 +0300</lastBuildDate><atom:link href="https://nekonull.me/tags/%E5%88%86%E5%B8%83%E5%BC%8F/index.xml" rel="self" type="application/rss+xml"/><item><title>分布式系统课程笔记</title><link>https://nekonull.me/posts/distributed-system-course-notes/</link><pubDate>Sun, 12 Dec 2021 20:47:32 +0300</pubDate><guid>https://nekonull.me/posts/distributed-system-course-notes/</guid><description>&lt;p&gt;这学期选了一门分布式系统的课程，实际上内容大概是 MIT 的分布式系统（6.824）和普林斯顿的分布式系统（COS 418）课程的混合。大概覆盖了以下内容：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分布式系统基础：RPC 和消息语义，逻辑时钟，分布式快照，一致性模型, CAP/FLP 理论&lt;/li&gt;
&lt;li&gt;最终一致性系统：Bayou, DHT, Dynamo&lt;/li&gt;
&lt;li&gt;共识和状态机复制：Primary-backup, Viewstamped Replication, Paxos, Raft, P-BFT&lt;/li&gt;
&lt;li&gt;分布式事务与强一致性：2PC, 2PL, Spanner&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;回想之前大一大二断断续续上的一些分布式相关的课程，有些东西果然是需要一些经验才会慢慢理解。&lt;/p&gt;
&lt;p&gt;课程内容之外，作业基本上也是从 MIT 的作业改的，分别是实现以下系统：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MapReduce (Sequential / Distributed)&lt;/li&gt;
&lt;li&gt;Raft (Election, Log Replication, Fault Tolerance)&lt;/li&gt;
&lt;li&gt;K-V Storage based on Raft (KV-Raft)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其中可能比较值得一提的是后两项作业，因为算是自己可能从来不会主动去写的类型，一想到可能的巨大复杂度就打退堂鼓了。不过实际上因为配套的测试比较完备，最后写起来其实也就是一个 case 一个 case 过，并没有想象中的那么困难。（不过从日志 debug 的确容易烦躁就是了。）最后实际上 Raft 和 KVRaft 都是在两天内写完的，不过的确是全神贯注的两天了。&lt;/p&gt;
&lt;p&gt;尝试着把自己的（中文）笔记整理了一下，放在下面的链接。不过课件还是要点回课程网站手动获取，我并没有 redistribute 的权限。如有错漏，欢迎指出。
&lt;a href="https://nekonull.me/distsys_notes/#/page/all%20distributed%20system%20lectures"&gt;All distributed system lectures&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;总而言之，上完这门课并且写完作业，稍微算是对自己实现复杂系统的能力更有一些些信心了吧。&lt;/p&gt;</description></item></channel></rss>