<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on codedump notes</title>
    <link>https://www.codedump.info/en/</link>
    <description>Recent content in Home on codedump notes</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Fri, 26 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.codedump.info/en/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The Charm of Distributed Systems</title>
      <link>https://www.codedump.info/dist-system-en/forward/</link>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/forward/</guid>
      <description>&lt;p&gt;This is a story about &amp;ldquo;how to build reliable systems out of unreliable components.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;When you open your phone on a rainy night to order food delivery, the system behind it is undergoing complex collaboration: your request passes through a load balancer and gets routed to an instance of the order service; the order data is persisted to the master node of the database and synchronized to two replica nodes across datacenters in milliseconds; at the same time, the inventory service in another cluster is deducting stock, and the payment system is calling a third-party gateway. If any step fails, a series of compensation logics will automatically trigger. The whole process spans dozens of servers, unreliable network links, and hardware that might strike at any time—but in most cases, your food still arrives on time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chapter 1: Overview of Distributed Systems</title>
      <link>https://www.codedump.info/dist-system-en/introduction/</link>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/introduction/</guid>
      <description>&lt;p&gt;In the evolution of modern software engineering, the transition from single-node applications to distributed architectures represents a critical watershed. This leap is not merely a matter of hardware stacking or code migration, but a profound transformation involving shifts in mindset, design philosophy, and even a renewed understanding of the laws of physics.&lt;/p&gt;&#xA;&lt;p&gt;As the opening chapter of this book, it will lead readers out of the comfort zone of single-node systems and confront the real challenges of distributed environments. We will first clarify the core definition of distributed systems and analyze their essential differences and advantages over centralized systems. Next, we will focus on the unavoidable technical problems in this field&amp;mdash;from unreliable network communication to fragmented global clocks, and the uncertainty brought by partial failures. Finally, this chapter will elaborate on the mindset shifts architects must undergo during this transition: moving from pursuing absolute certainty to seeking a balanced trade-off between consistency and availability. Understanding these fundamental concepts and paradigms is a prerequisite for mastering the complex algorithms and consistency models in subsequent chapters, and it is also the cornerstone of building highly reliable and scalable systems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chapter 2: Models of Distributed Systems</title>
      <link>https://www.codedump.info/dist-system-en/systemmodel/</link>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/systemmodel/</guid>
      <description>&lt;p&gt;In the previous chapter, we compared single-node systems with distributed systems. A single-node system communicates through shared memory, has a globally unique clock, and exhibits deterministic behavior when errors occur, making programming on such systems relatively straightforward. In contrast, a distributed system consists of multiple nodes that communicate via messages, which makes distributed systems significantly more complex. Therefore, before designing a distributed system, we need a theoretical framework to describe how the system operates. Designers must clarify the assumptions and conditions of the runtime environment at design time, as different conditions entail varying implementation challenges. &lt;em&gt;Models of distributed systems&lt;/em&gt; are the theoretical frameworks used to describe and analyze the behavior, properties, and design of distributed systems. They provide an abstraction for studying communication, computation, failures, and synchronization in distributed systems, helping designers and researchers understand system behavior and solve practical problems in complex environments.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chapter 3: Time and Order in Distributed Systems</title>
      <link>https://www.codedump.info/dist-system-en/time/</link>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/time/</guid>
      <description>&lt;p&gt;In distributed systems, multiple nodes work together. Client requests are sent to different nodes for processing, and these requests become events on individual nodes. As we will see, the system&amp;rsquo;s state is formed by executing these events one by one in a &lt;em&gt;specific order&lt;/em&gt;. Therefore, the order of events is particularly important. Different nodes may see different sequences of events, which can lead to different states on these nodes.&lt;/p&gt;&#xA;&lt;p&gt;From this, it is evident that when processing multiple events, the order in which they occur affects the state of nodes. Thus, how to measure the order of events becomes a core problem in distributed systems. A natural idea is to sort events according to their &lt;em&gt;physical time&lt;/em&gt;. In the following sections, we will learn about the principles of physical clocks and, unfortunately, discover that in a distributed system, comparing physical time across multiple nodes to determine the order of events is not precise and can sometimes even lead to errors. Once the order of events is disrupted, the state of the entire distributed cluster becomes corrupted.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chapter 4: Replication</title>
      <link>https://www.codedump.info/dist-system-en/replication/</link>
      <pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/replication/</guid>
      <description>&lt;p&gt;In distributed systems, data replication is one of the core design strategies. Its primary purpose is to improve system reliability, availability, performance, and fault tolerance by redundantly storing identical copies of data:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;High Availability: If only a single node provides service, a single-node failure will render the service unavailable. By replicating data across multiple nodes, even if one node fails, other nodes can continue to provide service.&lt;/li&gt;&#xA;&lt;li&gt;Fault Tolerance and Disaster Recovery: Hardware failures, network partitions, or data center disasters can lead to permanent data loss. Multi-copy storage (e.g., cross-rack or cross-region replication) ensures that data is recoverable.&lt;/li&gt;&#xA;&lt;li&gt;Reduced Latency: The physical distance between users and data centers causes access latency (e.g., when accessing cross-border services). Replicating data to geographically distributed nodes allows users to access the nearest replica.&lt;/li&gt;&#xA;&lt;li&gt;Read Performance Optimization: A single node can become a bottleneck for read requests. Multiple replicas can distribute the read load to improve read performance.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Based on whether a primary node is involved in replication, replication is divided into &lt;em&gt;primary-backup replication&lt;/em&gt; and &lt;em&gt;leaderless replication&lt;/em&gt;. Primary-backup replication means there is a central node in the system responsible for coordinating write operations and replicating them to other copies. Correspondingly, leaderless replication is a decentralized architecture.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chapter 5: Distributed Consensus Algorithms</title>
      <link>https://www.codedump.info/dist-system-en/consensus/</link>
      <pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/consensus/</guid>
      <description>&lt;p&gt;In the preceding chapters, we discussed how replication can prevent data loss caused by single points of failure, how partitioning can handle massive amounts of data, and how distributed transactions can ensure the atomicity of cross-node operations.&lt;/p&gt;&#xA;&lt;p&gt;However, when we try to combine these mechanisms into a truly production-grade system that runs 24/7 with automatic fault tolerance, we discover an obvious gap: how can surviving nodes reach agreement on the system state when some nodes have failed?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chapter 6: Partitioning</title>
      <link>https://www.codedump.info/dist-system-en/partitioning/</link>
      <pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/partitioning/</guid>
      <description>&lt;p&gt;So far, in the systems we have discussed, we have assumed that every machine stores &lt;em&gt;all&lt;/em&gt; data. In the earlier chapter on replication, when the primary node receives a write request from a client, it saves the entire dataset both locally and on other replica nodes. This storage approach has the following problems:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: If data replication is done in a primary-backup manner, all the work falls on the primary node. Under heavy load, the primary node quickly becomes a bottleneck.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Single-node bottleneck&lt;/strong&gt;: A single node, due to the physical limits of its hardware (disk, memory, CPU, etc.), will always hit an upper bound on processing capacity.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Failure isolation&lt;/strong&gt;: If a node hosting a specific portion of the data fails, that data becomes unavailable, reducing the overall availability of the system. For example, if data from different cities were stored on different nodes, a service outage in one region would not affect data in other regions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;When scaling a system, engineers typically choose between two primary strategies, as illustrated below:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chapter 7: Transactions</title>
      <link>https://www.codedump.info/dist-system-en/transaction/</link>
      <pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/dist-system-en/transaction/</guid>
      <description>&lt;p&gt;So far, we have introduced replication and partitioning. Replication (including the consensus algorithms) improves system fault tolerance, while partitioning improves system scalability; these two techniques address the &lt;em&gt;physical problems&lt;/em&gt; of data. In addition, data access in distributed systems often faces &lt;em&gt;&amp;ldquo;logical problems&amp;rdquo;&lt;/em&gt;, which are solved by the &lt;em&gt;transaction&lt;/em&gt; technology introduced in this chapter:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Replication&lt;/strong&gt;: The main goal is &lt;em&gt;high availability and data redundancy&lt;/em&gt;. By storing identical copies of data on different nodes, when one node fails, the system can continue to provide service from other replicas. It answers the question: &amp;ldquo;Will my data be lost or inaccessible because one machine goes down?&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Partitioning (Sharding)&lt;/strong&gt;: The main goal is &lt;em&gt;scalability&lt;/em&gt;. When a single node&amp;rsquo;s storage or computing capacity cannot handle all the data and requests, we horizontally split the data across multiple nodes. It answers the question: &amp;ldquo;How does my system handle ever-growing data volumes and access pressure?&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Transaction&lt;/strong&gt;: The main goal is the &lt;em&gt;correctness of data operations&lt;/em&gt;. It packages a series of operations into an indivisible logical unit, ensuring that these operations either all succeed or all fail, and that they do not interfere with each other when executed concurrently. It answers the question: &amp;ldquo;How can I ensure that a series of related operations maintain data correctness under any circumstances (concurrency, failures)?&amp;rdquo;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Why are replication and partitioning alone not enough? Let us look at a few typical scenarios:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rockraft: A Strongly-Consistent KV Storage Framework Based on OpenRaft and RocksDB</title>
      <link>https://www.codedump.info/en/post/20260412-rockraft/</link>
      <pubDate>Sun, 12 Apr 2026 09:59:41 +0800</pubDate>
      <guid>https://www.codedump.info/en/post/20260412-rockraft/</guid>
      <description>&lt;h2 class=&#34;heading&#34; id=&#34;motivation&#34;&gt;&#xA;  Motivation&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#motivation&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The Redis protocol has become the de facto standard for key-value storage protocols. Beyond the official Redis implementation, we have seen various compatible alternatives:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/valkey-io/valkey&#34;&gt;Valkey&lt;/a&gt;: The Linux Foundation&amp;rsquo;s official fork of Redis 7.2, licensed under BSD. It is the community&amp;rsquo;s true open-source alternative after Redis switched to SSPL, fully compatible with the Redis protocol and persistence mechanisms.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/dragonflydb/dragonfly&#34;&gt;Dragonfly&lt;/a&gt;: A modern multi-threaded in-memory database pursuing extreme performance, offering up to 25x the throughput of Redis with lower tail latency, but licensed under BSL (transitioning to Apache 2.0 after 4 years).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/snapchat/keydb&#34;&gt;KeyDB&lt;/a&gt;: A multi-threaded Redis fork maintained by Snapchat, adding Active Replication and Flash storage extensions on top of 100% Redis API compatibility, though updates have slowed down.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/apache/kvrocks&#34;&gt;Kvrocks&lt;/a&gt;: An Apache top-level project, a distributed KV storage based on RocksDB that persists data to disk, supporting dozens of terabytes at 1/5–1/10 the cost of in-memory solutions, suitable for large-capacity, low-cost scenarios.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;However, none of the above implementations have gone further on strong consistency in distributed systems. In this dimension, they all adopt the eventual consistency of the native Redis implementation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Read Code</title>
      <link>https://www.codedump.info/en/post/20200605-how-to-read-code/</link>
      <pubDate>Mon, 15 Feb 2021 09:46:47 +0800</pubDate>
      <guid>https://www.codedump.info/en/post/20200605-how-to-read-code/</guid>
      <description>&lt;p&gt;The ability to read source code is considered to be one of the underlying fundamental programmer skills, and the reason why this ability is important is that&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;inevitably need to read or take over other people&amp;rsquo;s projects. For example, researching an open source project, such as taking over a project from someone else.&lt;/li&gt;&#xA;&lt;li&gt;Reading good project source code is one of the important ways to learn from other people&amp;rsquo;s good experience, which I know myself.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Reading code and writing code are two not quite the same skills, the reason is that &amp;ldquo;&lt;a href=&#34;https://www.zhihu.com/question/21820752/answer/19427754&#34;&gt;writing code is expressing yourself, reading code is understanding others&lt;/a&gt;&amp;rdquo;. Because of the many projects, the authors of the project have their own style, it takes a lot of energy to understand.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://www.codedump.info/en/page/about-en/</link>
      <pubDate>Thu, 20 Sep 2018 23:08:27 +0800</pubDate>
      <guid>https://www.codedump.info/en/page/about-en/</guid>
      <description>&lt;p&gt;Hi, I&amp;rsquo;m &lt;strong&gt;lichuang&lt;/strong&gt;, also known as &lt;strong&gt;codedump&lt;/strong&gt; (not &amp;ldquo;coredump&amp;rdquo;). I picked the name because I like digging into how code works under the hood — dumping its internals, so to speak.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m a software engineer based in Guangzhou, China (UTC+8), building distributed systems and infrastructure tools, mostly in &lt;strong&gt;Rust&lt;/strong&gt;. I&amp;rsquo;m comfortable working asynchronously across time zones.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m currently open to &lt;strong&gt;remote Rust roles&lt;/strong&gt; in:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Distributed systems&lt;/li&gt;&#xA;&lt;li&gt;Databases / storage engines&lt;/li&gt;&#xA;&lt;li&gt;Developer tooling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;featured-projects&#34;&gt;&#xA;  Featured Projects&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#featured-projects&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/lichuang/rockraft&#34;&gt;rockraft&lt;/a&gt;&lt;/strong&gt; — A library-first distributed consensus engine built on &lt;strong&gt;Raft&lt;/strong&gt; and &lt;strong&gt;RocksDB&lt;/strong&gt;, providing clean abstractions for strongly consistent systems.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/lichuang/coredb&#34;&gt;coredb&lt;/a&gt;&lt;/strong&gt; — A &lt;strong&gt;Redis-compatible distributed database&lt;/strong&gt; with Raft-based strong consistency and automatic cluster failover.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/lichuang/replited&#34;&gt;replited&lt;/a&gt;&lt;/strong&gt; — Replicate &lt;strong&gt;SQLite&lt;/strong&gt; to cloud storage (S3, FTP, WebDAV, Google Drive, Dropbox, etc.) without heavyweight infrastructure.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/lichuang/ironcode&#34;&gt;ironcode&lt;/a&gt;&lt;/strong&gt; — A terminal-native, AI-powered CLI coding assistant written in Rust.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/lichuang/Lua-Source-Internal&#34;&gt;Lua-Source-Internal&lt;/a&gt;&lt;/strong&gt; — A deep dive into the Lua VM, compiler, and runtime.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;open-source-contributions&#34;&gt;&#xA;  Open Source Contributions&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#open-source-contributions&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/datafuselabs/databend&#34;&gt;databend&lt;/a&gt;&lt;/strong&gt; — Modern cloud data warehouse&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/datafuselabs/openraft&#34;&gt;openraft&lt;/a&gt;&lt;/strong&gt; — Advanced Raft consensus in Rust&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/apache/arrow-rs&#34;&gt;arrow-rs&lt;/a&gt;&lt;/strong&gt; — Official Rust implementation of Apache Arrow&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/lancedb/lance&#34;&gt;lance&lt;/a&gt;&lt;/strong&gt; — Open lakehouse format for multimodal AI&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;books&#34;&gt;&#xA;  Books&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#books&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://leanpub.com/distributed-system-illustrated&#34;&gt;&lt;em&gt;Distributed Systems Illustrated&lt;/em&gt;&lt;/a&gt; — A visual, engineering-focused guide to distributed systems.&lt;/li&gt;&#xA;&lt;li&gt;《Lua设计与实现》(&lt;em&gt;Lua Design and Implementation&lt;/em&gt;) — A walkthrough of the Lua 5.1 source code.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://item.jd.com/12172435.html&#34;&gt;JD.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://product.dangdang.com/25156893.html&#34;&gt;Dangdang&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ituring.com.cn/book/2001&#34;&gt;Turing e-book&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.books.com.tw/products/0010807362&#34;&gt;Traditional Chinese edition — 月亮般輕盈：用Lua成為指令稿語言大師&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;find-me&#34;&gt;&#xA;  Find Me&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#find-me&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/lichuang&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.codedump.info/en/index.xml&#34;&gt;Blog RSS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://t.me/codedump_notes&#34;&gt;Telegram — codedump notes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://x.com/lichuang&#34;&gt;Twitter / X&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.zhihu.com/people/codedump&#34;&gt;Zhihu&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://weibo.com/1642628345/profile?topnav=1&amp;amp;wvr=6&#34;&gt;Weibo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.douban.com/people/Lichuang/&#34;&gt;Douban&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://www.codedump.info/en/page/about/</link>
      <pubDate>Thu, 20 Sep 2018 23:08:27 +0800</pubDate>
      <guid>https://www.codedump.info/en/page/about/</guid>
      <description>&lt;p&gt;Netizen name &amp;ldquo;codedump,&amp;rdquo; not &amp;ldquo;coredump.&amp;rdquo; I chose this name because I enjoy exploring the principles of code, hence the name &amp;ldquo;code dump.&amp;rdquo;&#xA;Areas of personal interest:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Distributed storage (hobbyist).&lt;/li&gt;&#xA;&lt;li&gt;Systems programming (some knowledge).&lt;/li&gt;&#xA;&lt;li&gt;Storage engines (passion).&lt;/li&gt;&#xA;&lt;li&gt;Programming language implementation (amateur enthusiast).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;网名“codedump”，不是“coredump”。取这个名字，是因为喜欢研究代码的原理，所以就取名“code dump”了。&lt;/p&gt;&#xA;&lt;p&gt;个人感兴趣领域：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;分布式存储（业余）。&lt;/li&gt;&#xA;&lt;li&gt;系统编程（略懂）。&lt;/li&gt;&#xA;&lt;li&gt;存储引擎（爱好）。&lt;/li&gt;&#xA;&lt;li&gt;编程语言的实现（民科）。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;“发表是最好的记忆” &amp;ndash; 侯捷&lt;/p&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;找到我&#34;&gt;&#xA;  找到我&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%e6%89%be%e5%88%b0%e6%88%91&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.codedump.info/zh/index.xml&#34;&gt;RSS订阅本博客&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/lichuang&#34;&gt;Github&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://weibo.com/1642628345/profile?topnav=1&amp;amp;wvr=6&#34;&gt;微博&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.douban.com/people/Lichuang/&#34;&gt;豆瓣&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.zhihu.com/people/codedump&#34;&gt;知乎&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://t.me/codedump_notes&#34;&gt;电报频道-codedump的电报频道&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;公众号&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;博客文章也会更新到公众号上（不一定同步），扫描下面的二维码关注我：&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;figure class=&#34;&#34;&gt;&#xA;&#xA;    &lt;div&gt;&#xA;        &lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; alt=&#34;qrcode&#34; src=&#34;https://www.codedump.info/media/imgs/reward/qrcode.png&#34; &gt;&#xA;    &lt;/div&gt;&#xA;&#xA;    &#xA;    &lt;div class=&#34;caption-container&#34;&gt;&#xA;        &lt;figcaption&gt; qrcode &lt;/figcaption&gt;&#xA;    &lt;/div&gt;&#xA;    &#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;正式出版作品&#34;&gt;&#xA;  正式出版作品&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%e6%ad%a3%e5%bc%8f%e5%87%ba%e7%89%88%e4%bd%9c%e5%93%81&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://book.douban.com/subject/27108476/&#34;&gt;《Lua设计与实现》&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://item.jd.com/12172435.html&#34;&gt;京东购买链接&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://product.dangdang.com/25156893.html&#34;&gt;当当购买链接&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ituring.com.cn/book/2001&#34;&gt;图灵官网可购买电子版&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.books.com.tw/products/0010807362&#34;&gt;台湾繁体版购买链接-月亮般輕盈：用Lua成為指令稿語言大師&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;支持与赞赏&#34;&gt;&#xA;  支持与赞赏&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%e6%94%af%e6%8c%81%e4%b8%8e%e8%b5%9e%e8%b5%8f&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;可以通过下面的微信赞赏来支持我&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://www.codedump.info/en/page/weekly/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.codedump.info/en/page/weekly/</guid>
      <description>&lt;h1 class=&#34;heading&#34; id=&#34;周刊目录&#34;&gt;&#xA;  周刊目录&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%e5%91%a8%e5%88%8a%e7%9b%ae%e5%bd%95&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;2022年&#34;&gt;&#xA;  2022年&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#2022%e5%b9%b4&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220507-weekly-14/&#34;&gt;周刊（第14期）：重读Raft论文中的集群成员变更算法（二）：实践篇&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220417-weekly-13/&#34;&gt;周刊（第13期）：重读Raft论文中的集群成员变更算法（一）：理论篇&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220410-weekly-12/&#34;&gt;周刊（第12期）：Page oriented类存储引擎里可能同时存在多种结构&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220327-weekly-11/&#34;&gt;周刊（第11期）：mmap适用于存储引擎吗？&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220319-weekly-10/&#34;&gt;周刊（第10期）：“忘记目标，专注于体系”&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220313-weekly-9/&#34;&gt;周刊（第9期）：Mozilla rr使用简介&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220304-weekly-8/&#34;&gt;周刊（第8期）：技术配图的一些心得&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220227-weekly-7/&#34;&gt;周刊（第7期）：一个C系程序员的Rust初体验&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220220-weekly-6/&#34;&gt;周刊（第6期）：《sqlite 3.36 btree实现解析》番外篇&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220211-weekly-5/&#34;&gt;周刊（第5期）：从存储模型聊一聊时序数据库的应用场景&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220204-weekly-4/&#34;&gt;周刊（第4期）：为什么我还在看中国足球&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220129-weekly-3/&#34;&gt;周刊（第3期）：一个前游戏开发者眼中的游戏后端技术&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220123-weekly-2/&#34;&gt;周刊（第2期）：从笔记软件谈被体制化&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.codedump.info/post/20220116-weekly-1/&#34;&gt;周刊（第1期）：开刊，数字化生活数据&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
