随想    技术    关于    友链    返回普通版本

Five Minutes Rule

时间相信大家都很熟悉,但五分钟原则又是什么呢?下面就跟小编一起来看一下吧

很久之前从 LSM 树论文的参考文献里找到了这一篇神秘的论文,之后花了相当大的精力都没有搞懂它在干什么 —— 直观上来说它就是在带我算账,但这账我越算越糊涂。

现在我终于搞懂了 Five Minutes Rule 的主要思想,没错,谈钱虽世俗但有用。于是我决定写一篇解释 Five Minutes Rule的博客。

0.硬件原状

由于内存速度比磁盘快得多,所以可以假定内存的访问效率是没有上限的。

1. 实验设计

我们可以设置这样一个理想实验:假设有 1,000,000 条只读记录,每条大小为 1 KiB,现在要实现每秒 1,000 次访问 (1,000 a/s)

2. 局部性原理

局部性原理的大致意思就是在多数时间里只有少部分数据被取用。放到上述问题上,假设比例是 80% / 20%,那么有 800 a/s 的访问量都针对 200,000 条记录,而剩下的 200a/s 则来自于剩下的 800,000 条记录。如果按照局部性原理来优化上述的方案:

3. Five minutes rule

那么所有这一切和本文的主题 —— Five minutes rule 有什么关系呢?

回到第一节,我们可以这么算账:

假设这条数据实际的访问频率为 f,显而易见的是,访问频率越低,把数据放在内存里就越不划算。而频率的分界线,用方程 f * 2k$ == 5$ 可以解出,答案是 1/400,也就是 400 秒一次。400秒“约”为5分钟(原文如此,不知道作者数学怎么学的),因而这篇论文的名字就叫 Five minutes rule。如果局部性原理阐述的是优化对“热”数据的访问这一思路,那么 Five minutes rule 则是定义了“热”数据本身。

随着时间的推移和硬件技术的发展,硬件变的越来越强大且可靠,而 Five minutes rule 的实际规则也在不断演进,在 1997 年发表的 Five minutes rule ten years later 中,“分界”频率变成了 1/60,也就是一分钟一次。而在 2008 年的 Five minutes rule twenty years later 中… 抱歉我还没看这论文,等我看了再写。

4.结语

我还是搞不懂 LSM tree 的狗币作者为什么要引用这篇文章,也许我得重新读一下他在 93 年发的那篇 SB tree。