写很昂贵
写意味着事务
写磁盘意味着磁盘寻道,一次磁盘寻道需要10ms
读很便宜
读不需要事务,只需要保证一致性
数据只需要从磁盘读取一次,然后就可以缓存了
从内存读取1MB数据只要250微妙(0.25毫秒)
因此一秒钟,可以从内存中读取4GB数据
如果每次读取1MB的内容,一秒钟可以读取4000次
其他数字
L1 cache引用需要0.5纳秒,也就是1毫秒可以读取两百万次
L2 cache引用,需要7纳秒,1毫秒可以读取14.28万次
互斥锁(mutex lock/unlock) 需要100纳秒,那么1毫秒可以进行1万次
内存引用需要100ns, 1毫秒可以进行1万次
使用Zippy压缩1kB数据,需要10,000纳秒
通过1Gbps网络发送2k bytes数据,需要20,000纳秒
从内存读取1MB的顺序数据,需要250微秒
从网络顺序读取1MB数据,需要10毫秒
从磁盘顺序读取1MB数据,需要30毫秒
Send package CA->荷兰->CA 150毫秒
教训
写比读要昂贵40倍
全局共享的数据是昂贵的,这是一个分布式系统的基本局限
http://www.itshouce.com.cn/other/numbers-everyone-should-know.html