最新文章

200行代码实现基于paxos的kv存储

30 分钟阅读

用200行代码实现一个基于paxos的kv存储, 以最简洁的形式展示paxos如何运行, 作为 paxos的直观解释 这篇教程中的代码示例部分

Erasure-Code-擦除码-3-极限篇

31 分钟阅读

没有人比我更懂EC(特辣脯口气): 从指令集和算法两个方向对擦除码实现深度优化, 硬核但不烧脑

Erasure-Code-擦除码-2-实现篇

56 分钟阅读

书接上回 上一篇 第一篇:原理 中, 我们介绍了EC的基本原理, 实际上EC的存储跟恢复过程可以理解为: 一条k-1次曲线可以通过k个系数或曲线上的点来确定. 我们也提到: 但这套理论还不能直接应用到线上产品中. 因为计算机中还要考虑数字大小限制, 例如k个32位整数作为数据, 通过Vandermon...

Erasure-Code-擦除码-1-原理篇

22 分钟阅读

前言 做分布式存储的同学, 一定都知道一个了不地的冗余算法叫作擦除码(Erasure-Code), 它让存储以多副本几分之一的成本来达到同样高的可靠性. 虽然web上有很多介绍EC的文字, 但几乎所有这些文字都为了严(bi)谨(ge)而搞的像牛津词典一样难读, 懂的人不需要看, 不懂的人看不懂. 能把事情...

Art of Pull Requests(翻译)

1 分钟阅读

原文: Art of Pull Requests 正如我之前写的, 我们是一个远程团队,团队成员遍布世界各地。 这意味着code reviews 和 pull requests必须远程完成。 最近,我们团队的一位成员提出了这样的宣言: 作为 PR writer 我会: 保持PR够小...

掐指算算: 你的CDN多花了几百万?

5 分钟阅读

在上篇 互联网中对象访问频率的91分布 我们通过 90%的流量由10%的内容产生 这句经验描述, 得出了访问频率的zipf模型: [f(k) = c/k^s] CDN (Content delivery network) 就是一个典型的符合zipf分布的缓存系统: 将缓存服务部署在距离用户最近的上百个地区(C...

互联网中对象访问频率的91分布

4 分钟阅读

在互联网领域, 流行着这么一句话: 90%的流量由10%的内容产生. 缓存也由此产生: 只为最频繁访问的10%的内容提供更快的存储, 就可以以很低的成本提供尽可能好的服务质量. 一般符合这种互联网访问模型的曲线是下图这样的. 对每个访问的url做独立计数, 并按照从访问最多到最低排序: 这句是...

OpenACID’s Code of Conduct

2 分钟阅读

社交规则 避免”故作惊讶” 第一条规则是, 当对方说他不知道某件事情时, 你最好不要(刻意的或无意的)表现得很惊讶。 包括技术问题(“什么?!我不能相信你不知道堆栈是什么!) 和非技术问题(“你不知道谁是RMS ?!”) (RMS: Richard Matthew Stallman, 自由软件奠基人)。 ...

SlimTrie: 单机百亿文件的极致索引-实现篇

20 分钟阅读

Github: SlimTrie 上一篇 《SlimTrie 设计篇》 中,我们介绍了单机百亿文件的索引设计思路,今天我们来具体介绍下它代码级别的实现。文中我们要解决的问题是: 在一台通用的100TB的存储服务器的内存中, 索引100亿个...

SlimTrie: 单机百亿文件的极致索引-设计篇

15 分钟阅读

Github: SlimTrie 背景 当下信息社会每天都产生大量需要保存的数据,这些数据在刺激海量存储技术发展的同时也带来了新的挑战。比如,海量数据为存储系统增加了大量的小文件,这些小文件的元数据如何管理?如何控制定位某个文件的时间和空间开销? 随着对数据实时性要求...