The 5 minute rule: 一部paper的连续剧
来源:互联网 发布:淘宝店铺申请直播条件 编辑:程序博客网 时间:2024/04/29 19:05
今天很无意的研究了一篇92年的paper,并且在它的reference里找到了另一篇感兴趣的文章,一篇87年的老古董。
“The 5 minute rule for trading memoryfor disc accesses and the 10 byte rule for trading memory for CPU time”,SIGMOD 87,就是这篇了。
作者绝对的大牛,Jim Gary,就是前几年失踪的那位,拿过图灵奖的。
文章提出了两个法则:The Five Minute Rule和The Ten Byte Rule。后面这个法则我没太仔细看,不过第一个法则很有意思。
Five MinuteRule: data referenced every five minutes should be memory resident. 意思就是说,如果一个数据每五分钟就会被访问一篇,那么它就应该被放在memory里面。
文章也给出了一个简单的论证。87年的一个硬盘,每秒能够random的访问数据15次,它的售价是15K$(好贵啊…)。所以,如果有一个操作,每秒钟都要执行一次disk的访问,那么这个操作的cost应该是1K$。注意,1K$的价格指的是一个每秒都要执行一次的操作,而不是每秒每操作,我看原文的时候在这困扰了很久。同时,cpu和其它方面的cost也要1K$。所以,每秒钟都要执行一次disk的访问,这个操作整个cost是2K$。
接着说说内存,那个年代,一个1MB的内存大概是5K$,那么平均一个KB的价格是5$。
现在,如果有一条1KB的记录,如果它每秒钟都会被访问,那么把它放在disk上就会花费2K$,而如果把它放在memory上,只需要5$,所以,这样的一条记录当然应该被放在内存中。按照这个思路,我们可以计算一下临界点。如果一个数据每400秒才会被访问一次,那么它在disk上的cost是2K/400 = 5$,正好等于把它放在内存上的开销。因此,如果一个数据访问间隔小于400秒,那么它就应该放在memory上,反之,应该放在disk上。
而400秒大概就是5分钟了(其实已经6分钟多了)。
这个论证还是非常简单直观的。不过这里有一个“反常理”的地方。一般衡量disk的性价比,会用capability这个参数,比如每GB多少多少钱。但在这里,衡量disk用的是IO。其实仔细琢磨一下,会发现这样做是理所当然的。因为paper的目的是想发现什么时候数据应该放在memory或者是disk,而其中的关键就是达到最优化的io。
这篇paper大概就说到这了。更有意思的是,在10年后的97年和20年后的07年,Jim Gary和后继者又写了两篇paper作为update(写paper能写成连续剧,佩服佩服)。最新的07年这篇讨论的是flash出现以后对于系统设计的一些影响,有兴趣的可以深入的研究一下。
Reference:
http://delivery.acm.org/10.1145/40000/38755/p395-gray.pdf 87年的
http://research.microsoft.com/en-us/um/people/gray/5_min_rule_SIGMOD.pdf 97年的
http://staff.ustc.edu.cn/~jpq/paper/flash/2007-DaMon-The%20Five-Minute%20Rule%20Twenty%20Years%20Later,%20and%20How%20Flash%20Memory%20Changes%20the%20Rules.pdf 07年的
- The 5 minute rule: 一部paper的连续剧
- 向程序员推荐一部好看的连续剧
- 关于 I/O 的五分钟法则(Five-Minute Rule)
- 关于 I/O 的五分钟法则(Five-Minute Rule)
- I/O 的五分钟法则(Five-Minute Rule)
- 我看的第一部日本连续剧_水男孩2(WATER BOYS 2)
- The 5-minute Guide to C Pointers
- The 5 minute DBA: Default My.cnf File
- The 30 Minute Regex Tutorial
- The 10 Minute Test Plan
- The element style--Rule 1 to 5
- The Apprentice 学徒--一部活的商务英语教材
- The "right-left" rule
- The rule of game
- The right-left rule
- The Rule of Three
- The Boy Scout Rule
- The Big Three Rule
- static in c
- 编程之美读书笔记_3.7_队列中取最大数操作问题
- 有关游戏竞聘需要了解的常识
- 新文章
- 纯java PHP引擎——Quercus
- The 5 minute rule: 一部paper的连续剧
- 第14届“搜狐杯”智能体大赛——提高组相关信息
- 混合 blending
- jersey client 发送Post请求 【带参数】
- 做人必须保留的7张底牌
- Chrome扩展编写之Hello World(一)
- Gdiplus图片背景透明问题
- LINUX 下动态,静态链接库实战
- 笔试题