• xindoo
    2019-07-17
    局部性原理真是计算机各类优化的基石,小到cpu cache,大到cdn。而且不仅仅是存储,java的jit也是利于局部性优化性能。任何东西只要不是均匀分布的,就有优化空间。
    
     31
  • 许童童
    2019-07-17
    假设淘宝网有12亿商品数量,每件商品需要 4MB 的存储空间,那么一共需要 4800TB( = 12 亿 × 4MB)的数据存储
    如果1%的热点数据做为缓存则需要48TB的内存 72 万美元( = 48TB/1MB × 0.015 美元 = 72 万美元)
    另外还需要99%的硬盘 19 万美元( = 4752TB/1MB × 0.00004 美元 = 19 万美元)
    
     13
  • leslie
    2019-08-22
    其实这还是一个负载均衡的问题:如何合理的使用内存库;就如同现在某些行业的数据库其实是定时入数据库的,效率的平衡性确实;物理设备代价的平衡性,程序、数据库、中间件的使用平衡性,需要整体考虑。

    作者回复: leslie同学,

    你好,这是一个trade-off的问题,是一个选择、平衡、妥协的问题,但是不是一个负载均衡的问题哦

    
     2
  • 随心而至
    2019-10-22
    我记得编程珠玑有一章中,专门考察了估算能力,老师关于亚马逊的估算真的是很赞。
    
     1
  • 拓山
    2019-10-16
    局部性原理放之四海而皆准
    现实生活中的人际关系也是如此啊
    
     1
  • 靠人品去赢
    2019-07-17
    时间局部性,从时间维度上将东西关联起来,一部电视剧电视剧第一集第二集这种,有时间轴的那种。
    空间复杂度,从类似于空间的概念关联起来,比如说同类商品,竞品或者同一品牌的不同系列。
    实际中,感觉还是把访问次数最多的放进去,或者干脆就是交给Redis来管设个时间就完了。那实际中我们怎么更好贯彻这两个局部性?
     3
     1
  • -_-_aaa
    2020-01-18
    文中“一块 HDD 硬盘只能支撑每秒 100 次的随机访问,2400TB 的数据,以 4TB 一块磁盘来计算,有 600 块磁盘,也就是能支撑每秒 6 万次( = 2400TB/4TB × 1s/10ms )的随机访问”,600 块磁盘构成了一个集群吗

    作者回复: -_-_aaa同学,

    你好,并不一定是一个集群,通常很多服务器,一个主板上可以有8块乃至12块硬盘的接口用50台服务器提供服务就可以了。

    
    
  • 阿斯蒂芬
    2020-01-02
    老师举的这个亚马逊商品缓存的例子,我理解就是利用了时间局部性的特征,一个商品如果被访问了,那么猜测很快会被第二次访问。我再尝试理解空间局部性,也拿老师说的《哈利波特》全集的例子,如果《哈1》被访问了,那么《哈2-7》被访问的可能性也很高,因此这也可以作为缓存预热的一种策略,类似地我还想到了电商经常用的“看相似”和“看过这个的同时也喜欢...”这一类推荐,细想一下背后也是一种“空间局部性”的应用,在后台基于大数据做离线分析,生成内容相关推荐,可以在适当时候优先加载到更快速的存储上以达到更快的响应。当然,可能实际上是否会优先加载不一定,但是透过老师的讲解,把这块联系上了计算机组成原理的理论,还是觉得嗨森,哈哈哈。

    作者回复: 👍

    
    
  • 悟空
    2019-12-03
    太赞了,这种结合实际场景说明计算机原理理论的方式方法让人受益匪浅。
    
    
  • Zhangxuesong
    2019-10-30
    请问 估算每天的活跃用户为 1 亿,这 1 亿用户每人平均会访问 100 个商品,那么平均每秒访问的商品数量,就是 12 万次 这 12万次是如何计算出来的?
     2
    
  • 亡翎
    2019-10-16
    利用缓存+内存+硬盘+磁盘的访问速度和容量大小,根据局部性原理 ,来设计存储器的层次结构
    
    
  • coldpark
    2019-10-03
    感觉老师在冒险与预测的专题之后看材料的时间就比原来少了,内容也没那么干活满满了,希望之后几章能恢复过来。
    
    
  • ........
    2019-09-30
    老师, 感觉硬盘应该还是需要能够完全支撑用户访问, 因为一开始数据应该都是存放在硬盘中, 然后通过用户的不断点击来更新缓存? 不知道是不是这样

    作者回复: 是这样的。但是一般我们可以做缓存预热,也就是warm-up,预先把我们认为可能会高频访问的数据先加载到缓存里面来。

    
    
  • 吴宇晨
    2019-08-28
    感觉还能加一层ssd缓存,内存和ssd差价太大速度也差很多,可以内存存千分一,ssd存百分一

    作者回复: 吴宇晨同学,

    你好,是的,SSD在今天是一个更好的选择。而且因为SSD不是易失性存储设备,而且价格也大幅度下降了。现在大家都直接用作存储了,而不是用来作为缓存设备了。

    
    
  • Jag
    2019-08-22
    现在通常加一个redis ,在加一个本地缓存,来帮数据库分担压力

    作者回复: Jag同学,

    你好,在这一讲里,我们已经用上了本地缓存。你可以尝试估算一下淘宝的数据量,看看到底要用多少机器才能装得下这么多数据呢?

    
    
  • 活的潇洒
    2019-08-21
    我工作经常和缓存打交道、也知道缓存的应用场景、知道怎么用,但是就是不知道底层的实现原理

    day36 笔记:https://www.cnblogs.com/luoahong/p/11328360.html
    
    
  • Sch0ng
    2019-07-26
    非计科的程序员看到局部性原理这个词有中热泪盈眶的感觉。
    
    
我们在线,来聊聊吧