2KB项目,专业的源码交易网站 帮助 收藏 每日签到

缓存是新的内存

  • 时间:2019-05-17 11:56 编辑:2KB 来源:2KB.COM 阅读:362
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:Cac
英文原文:Cache is the new RAM

这是一次在 defrag 2014的演讲。 

Screen Shot 2014-11-11 at 3.37.03 PM
这是颠末长工夫地屡次技术革新后的(多个)技术优势之一。你看到了实践上打破。假如你只是看到了此中的一部分,很难准确揣度。你要末短时间有停顿,要末落伍很远。使人诧异的不是事物变更的速度,而是一点一滴长久工程理论的打破。这是史端乔交流机,一个主动衔接德律风线路装备,在1891年创造的。

Screen Shot 2014-11-11 at 3.37.53 PM

1951年,恰是转向数字交流技术之时,一个典范的集中式交流中间根本上仍是维多利亚时代的技术的放大版。每一个转接过去的德律风都有本人独自的strowger交流机。

事先来看,这曾经是最牛逼的技术。固然我们看来,这只不外是事先天下上最大的蒸汽朋克(Steampunk,布景设在19世纪的科幻小说)作风的装备艺术(art installations)。

Screen Shot 2014-11-11 at 3.42.16 PM

对此觉得自卑感多是不合错误的。固然集成电路(integrated circuit)曾经面世65年了,依然有数亿计的这类装备嗡嗡咔咔地运转着。直到如今,我们才真正地处在完整电子盘算(solid-state computing, solid-state与机械绝对,指基于半导体的)的转机点。

最使人高兴的技术改变,一个是新的模子成为可行,另外一个是旧的限制不再存在。在我们的产业界,这两品种型的改变都在演出。

Screen Shot 2014-11-11 at 3.42.40 PM

分布式盘算(distributed computing)如今是贯串全部软件栈的主导性的编程模子。所谓的地方处置单位(central processing unit)不再是中间化的,乃至都不是一个单位了。它仅仅算是数据之山(a mountain of data)上匍匐的一群虫子(Bugs)中的一个。数据库是最初的碉堡。

Screen Shot 2014-11-11 at 3.43.37 PM

同时,内存与硬盘存储间的延迟正在变得可有可无。30年来,数据库功能的首要关怀点,在于拜访内存与硬盘存储上的随机数据的宏大差异。既然如今我们可以把数据全体放在内存中,这些懊恼通通不必思索了。固然不是这么容易,你不克不及用一个B树,mmap一下,然后就可以搞定。在完整基于内存的设计计划推出之前另有非常多相干的工具要处理。

这两种新趋向发生了完整簇新的方法来考虑、设计、构建使用。如今我们来谈下我们怎样到达,我们怎样做的,将来给我们的启发。

Screen Shot 2014-11-11 at 3.44.15 PM
(史前时期,从下文看应当是2000年前,用户被描绘成恐龙,作者的小风趣)

那时分,架构图里的每一个组件都有一个断定的描绘与之相干。每一个组件都是一个独自的功用:数据库、webServer,都成为一屋之剧中的分歧脚色(一屋指的是机房或data center)。 顺带提一下,这就是“the cloud”这个词的起源。一个轻软/毛茸茸的云是WAN的规范符号,而WAN的细节我们完整不必费心。

Screen Shot 2014-11-11 at 3.45.10 PM
(2000年,负载均衡处理一切)

轻易完成的分布式盘算失掉了主流的亲睐。多个完整类似的使用顺序Server藏在一个负载均衡器(load balancer)以后,这个平衡器把负载差未几均匀地分派到使用顺序Server上去。只负载均衡那些架构中形态有关的部分逃避了非常多哲学上的问题(实际上的状况?)。当系统扩大时,这些组件从侧翼包围,最初解围了“the” database。我们通知本人,给数据库换上更快的磁盘、更快的CPU很正常,究竟仍是只需求一台机械。硬件供给商很快乐地赚着我们的钱。

Screen Shot 2014-11-11 at 3.45.42 PM
(2002:备份处理一切)

最初,数据库备份成为通情达理的,加了一个热备份数据库(hot spare database)后,我们的良知失掉些许快慰。然后我们通知本人,不会再有任何以障了。固然,这类准确性只存在了几分钟。

固然,热备份常常是闲暇的(sitting idle)。一旦贸易剖析员意想到,他们可以在不触及生产数据的状况下,也能对生产数据实行大范围查询,那末所谓的热备份也简直跟生产数据一样Start繁忙而且相当主要了。我们又通知本人,在紧迫状况下把热备份临时拿出来也还好。但这就好像说,我们完整没需要带备胎,由于我们可以从其他车上偷一个过去!

Screen Shot 2014-11-11 at 3.46.59 PM
(2004:memcached/缓存处理一切)

然后,Brad Fitzpatrick宣布了memcached,一个可以在内存中缓存数据的守护顺序(因而叫memcached, memory cached)。这是个简化版的分布式哈希表,并且的确十分适用,因此以后就在学术界盛行起来。它具有非常多特征:备份(a form of replication?),程度分区,负载均衡,容易数学运算等。 我们再次通知本人,既然大部分的负载都是读,我们为何还要敦促数据库从磁盘一遍一遍做类似的查询?你只需求一组内存很大的小范围(small-calibre,小口径)Server,固然硬件供给商也快乐地赚我们(买内存)的钱。

或许需求你写些缓存失效(cache invalidation)代码,这听起来不难,对吧。

Screen Shot 2014-11-11 at 3.47.06 PM
(2004:memcached处理一切,添加了缓存失效)

确如其宣称,memcached的计划使我们受益很长工夫。它把硬盘的随机IO操作交换为内存的随机IO操作。虽然如斯,那台数据库机械仍是愈来愈大,愈来愈忙。我们意想到,缓存的内存开支最少会跟任务集一样大(否则就是无效了),再加入让人不克不及忍的缓存耐久化。我们通知本人,这就是收集级范围(web scale?)的开支。

Screen Shot 2014-11-11 at 3.47.12 PM
(2006:程度分区/切分化决一切)

更使人担忧的是使用愈来愈庞杂,愈来愈谈天化(chattier,可能谈天顺序对数据库写的次数非常多)。简直每次都会实行屡次数据库写操作。如今,写,而不是读,成了瓶颈。这时候我们才终极仔细看待数据库切分。Facebook最后是依据university字段来切分其用户数据,然后做成了"哈佛数据库(The Harvard Database)",而且保持了很长一段工夫。Flickr是另外一个好例子。他们运用PHP手动树立了一个切分系统,这个系统运用用户ID的哈希值来切分数据库,跟memcached依据key来切分很像。在技术交换会上,他们泄漏,不能不对数据表去标准化(denormalize),和对一些工具(比方评论、音讯、爱好)实行两次写(doule-write)。

要处理无限伸缩(infinite scaling)总要支出点价格,对吧。

Screen Shot 2014-11-11 at 3.47.18 PM
(2008:NoSQL处理一切)

手动切分关系型数据库的问题是,你的关系型数据库曾经没了。切分API实践上成为你的查询言语了。你对操作的头疼还没好,而修正一组形式(schema)愈加苦楚。

这就需求大师深呼一口吻,列出大师选用的SQL完成的一切缺乏和瑕疵,然后因而责备SQL。一波潮人似的NoSQL,灾黎似的XML数据库呈现了,而且都作出了基本办不到的许诺。它们供给了主动切分,灵敏的形式,一些冗余,...,一Start也就这么多。可是总比本人写要很多多少了。

你晓得,“不必本人写”成为首要卖点的工具老是使人失望。

Screen Shot 2014-11-11 at 3.47.25 PM
(2010:Map/Reduce处理一切)

转移到NoSQL其实不比运用手动切分差,由于我们曾经放弃了运用经常使用的客户端Tools把持和剖析数据的盼望。但这没很多多少少。之前由贸易职员(business folks)编写的SQL查询酿成了开发职员保护的报表代码。

还记得用于备份和剖析的热备份数据库吧?如今它变身为Hadoop filestores和上层的Hive查询而东山再起了。既然见效,贸易职员不再来烦我们了。但一个大问题是,这些系统的操作庞杂性。就像航天飞机一样,它们是作为牢靠且简直不必保护的产品出售的,可是最初仍是需求大量的手动操作。另外一个大问题是,数据的存入和掏出:破费一成天的工夫曾经相当不错了。第三个大问题是IO同时成为收集和磁盘的瓶颈。我们通知本人,这就是从大数据(big data)结业的价格。

不论如何,Google就是如许做的,对吧。

Screen Shot 2014-11-11 at 3.47.32 PM
(2012:NoSQL再次处理一切)

跟着一些NoSQL数据库的逐步成熟,它们的API发作了诡异的变更:它们Start长得像SQL一样。这是由于SQL是关系型聚集实际(relational set theory)的相当间接的完成,而数学不是那末好捉弄的。

Screen Shot 2014-11-11 at 3.47.46 PM

我重述下Paul Graham对Lisp那难以忍耐、并趾高气扬的评论:一旦你添加了group by, filter, join,你也不克不及宣称创造了新的查询言语,由于这仅仅算是SQL的一个新方言。并且语法很Low,还没有优化器。

因为我们绕过了SQL,大部分系统都缺少了一些很主要的工具,比方存储引擎、查询优化器,而这些都是基于关系型聚集实际设计的。迟延到前期去完成招致了严重的功能问题。即便对处理了功能问题的那些(或许经过停驻在内存中来掩饰此问题),也缺少了其他工具,如适宜的备份。

本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部