跳至主要内容

分布式系统领域的经典论文【转载】

作者:严林  编辑于 2015-05-08
链接:https://www.zhihu.com/question/30026369/answer/46476717
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

分布式系统在互联网时代,尤其是大数据时代到来之后,成为了每个程序员的必备技能之一。分布式系统从上个世纪80年代就开始有了不少出色的研究和论文,我在这里只列举最近15年范围以内我觉得有重大影响意义的15篇论文(15 within 15)。

1. The Google File System:
这是分布式文件系统领域划时代意义的论文,文中的多副本机制、控制流与数据流隔离和追加写模式等概念几乎成为了分布式文件系统领域的标准,其影响之深远通过其5000+的引用就可见一斑了,Apache Hadoop鼎鼎大名的HDFS就是GFS的模仿之作;

2. MapReduce: Simplified Data Processing on Large Clusters:
这篇也是Google的大作,通过Map和Reduce两个操作,大大简化了分布式计算的复杂度,使得任何需要的程序员都可以编写分布式计算程序,其中使用到的技术值得我们好好学习:简约而不简单!Hadoop也根据这篇论文做了一个开源的MapReduce;

3. Bigtable: A Distributed Storage System for Structured Data:
Google在NoSQL领域的分布式表格系统,LSM树的最好使用范例,广泛使用到了网页索引存储、YouTube数据管理等业务,Hadoop对应的开源系统叫HBase(我在前公司任职时也开发过一个相应的系统叫BladeCube,性能较HBase有数倍提升);

4. The Chubby lock service for loosely-coupled distributed systems:
Google的分布式锁服务,基于Paxos协议,这篇文章相比于前三篇可能知道的人就少了,但是其对应的开源系统zookeeper几乎是每个后端同学都接触过,其影响力其实不亚于前三篇;

5. Finding a Needle in Haystack: Facebook's Photo Storage:
facebook的在线图片存储系统,目前来看是对小文件存储的最好解决方案之一,facebook目前通过该系统存储了超过300PB的数据,一个师兄就在这个团队工作,听过很多有意思的事情(我在前公司的时候开发过一个类似的系统pallas,不仅支持副本,还支持Reed Solomon-LRC,性能也有较多优化);

6. Windows Azure Storage: a highly available cloud storage service with strong consistency:
windows azure的总体介绍文章,是一篇很好的描述云存储架构的论文,其中通过分层来同时保证可用性和一致性的思路在现实工作中也给了我很多启发;

7. GraphLab: A New Framework for Parallel Machine Learning:
CMU基于图计算的分布式机器学习框架,目前已经成立了专门的商业公司,在分布式机器学习上很有两把刷子,其单机版的GraphChi在百万维度的矩阵分解都只需要2~3分钟;

8. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing:
其实就是 Spark,目前这两年最流行的内存计算模式,通过RDD和lineage大大简化了分布式计算框架,通常几行scala代码就可以搞定原来上千行MapReduce代码才能搞定的问题,大有取代MapReduce的趋势;

9. Scaling Distributed Machine Learning with the Parameter Server:
百度少帅李沐大作,目前大规模分布式学习各家公司主要都是使用ps,ps具备良好的可扩展性,使得大数据时代的大规模分布式学习成为可能,包括Google的深度学习模型也是通过ps训练实现,是目前最流行的分布式学习框架,豆瓣的开源系统paracell也是ps的一个实现;

10. Dremel: Interactive Analysis of Web-Scale Datasets:
Google的大规模(近)实时数据分析系统,号称可以在3秒相应1PB数据的分析请求,内部使用到了查询树来优化分析速度,其开源实现为Drill,在工业界对实时数据分析也是比价有影响力;

11. Pregel: a system for large-scale graph processing:
Google的大规模图计算系统,相当长一段时间是Google PageRank的主要计算系统,对开源的影响也很大(包括GraphLab和GraphChi);

12. Spanner: Google's Globally-Distributed Database:
这是第一个全球意义上的分布式数据库,Google的出品。其中介绍了很多一致性方面的设计考虑,简单起见,还采用了GPS和原子钟确保时间最大误差在20ns以内,保证了事务的时间序,同样在分布式系统方面具有很强的借鉴意义;

13. Dynamo: Amazon’s Highly Available Key-value Store:
Amazon的分布式NoSQL数据库,意义相当于BigTable对于Google,于BigTable不同的是,Dynamo保证CAP中的AP,C通过vector clock做弱保证,对应的开源系统为Cassandra;

14. S4: Distributed Stream Computing Platform:
Yahoo出品的流式计算系统,目前最流行的两大流式计算系统之一(另一个是storm),Yahoo的主要广告计算平台;

15. Storm @Twitter:
这个系统不多说,开启了流式计算的新纪元,几乎是所有公司流式计算的首选,绝对值得关注;

评论里边 和 提到的两篇论文也挺不错的,一并补充在这里。
1. Large-scale cluster management at Google with Borg;
2. F1 - The Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business;
 

Popular posts from 产品随想的博客

CAD 天正与 AI 工作流

基本步骤   1. 天正导出 T3 .dwg 文件,尽量在2007版本   2. AI 打开,打开时候可以选择比例,因为 AI 画布是基于真实尺度   3. AI 打开 .dwg 后,更改画布到所需要的大小   4. 之后用 PS 打开 AI 文件,可以维持想要的大小和比例   5. 而且 AI 可以读取天正的图层 课外了解   1. ETH 风格平面图   2. 日本创新性的停车方式   3. AI中的实时上色功能去了解

产品爱好者周刊 第36期:走进Linux

Products OpenShot   https://github.com/OpenShot/openshot-qt OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows 开源的视频剪辑工具,跨平台 Run   https://github.com/The-Run-Philosophy-Organization/run 润学全球官方指定GITHUB,整理润学宗旨、纲领、理论和各类润之实例 Dozer   https://github.com/Mortennn/Dozer Hide menu bar icons on macOS ThisIsWin11   https://github.com/builtbybel/ThisIsWin11 Win11的隐私保护 RoundedTB   https://github.com/torchgm/RoundedTB Add margins, rounded corners and segments to your taskbars! Droptop Four   https://github.com/Droptop-Four/Basic-Version Droptop Four is the fourth iteration of the popular dropdown app launcher for Windows & Rainmeter. LibreTube   https://github.com/Libre-tube/LibreTube An alternative frontend for YouTube, for Android. nheko   https://github.com/Nheko-Reborn/nheko Quaternion   https://github.com/quotient-im/Quaternion 多平台的Matrix客户端 FluffyChat   https://fluffychat.im/ Phone端的Matrix...

Steve Jobs: `There's Sanity Returning', 1998

Nobody can doubt the charisma of Steven P. Jobs. The interim CEO of Apple Computer Inc., who returned to the company last July after his ignominious 1985 ouster, has brought back his legendary vision, impatience, and infectious passion for the Macintosh. Jobs spoke to Business Week Correspondent Andy Reinhardt in Apple's stark, fourth-floor boardroom, just after the company rolled out its new software strategy on May 11. Note: This is an extended, online-only version of the Q&A that appears in the May 25, 1998, issue of Business Week. Q: Now that you've introduced the new, bold-looking iMac, are you going to do some radically different products? A: There's a lot of talk about such things -- about handhelds, set-top boxes. A lot of computer companies have been searching for a consumer product. My view is that the personal computer has been the most successful consumer product of the last 10 years. What we have to do, what the industry stopp...

BG投资十问(Baillie Gifford)

  1,公司是否能正面推动经济、社会或者文化发 展? 如果做不到,BG可能就不会再往下看了。比如军火、赌博类公司再便宜,BG不会去看。 2,公司销售额在5年之内能否翻倍? 为什么要讨论销售额?因为BG关注公司成长,销售额是比较简单直观的指标,而利润可有一些方法调节。所以,BG主要先关注销售额,再看现金流。 3,公司5年之后会怎么样? 这是未来5到10年或者5到15年的中间维度,一是看公司的成长空间究竟还有多大,二是考虑5年之后,公司的短期估值会不会下降,会不会变得成熟。 4,公司的竞争优势到底是什么?随着时间会变 强还是变弱? BG认为,如果公司的竞争优势是不断变弱的,将来在更远期挣回现金流的可能性就更低了。 5,公司是否有非常独特的文化?文化是否能够进化? 毕竟要投资这么长时间,对创始人和公司管理文化是非常关注的。特别喜欢创始人领导的公司,而不是说创始人什么都不干,创始人在做房地产,找了一些人在做新公司,要尽量避免这样的公司。 谈到进化在BG看来,大部分公司都会有大公司病,需要看它怎么能维持比较灵活的管理,变大之后还能够保持非常快速的成长,比如亚马逊的day one文化(注:就是始终处在 创业启动状态,充满迷茫和压力,但是充满创造力和颠覆思想 )。 6,公司过去的回报率怎么样? 一方面是考虑到公司的ROE(净资产收益率),二是考虑公司的Margins(利润),看它的过去是不是值得投资,如果每年ROE都不到10个点,可能长期来看也没什么意思。 7,ROE能不能随着时间增长? 有些公司一开始没有盈利,一直在烧钱,5年之后说不定ROE会到20%或者更高,它是一个动态过程。这样的公司BG也会投资,包括一些早期项目,很多公司都是没有盈利的。 8,公司怎么分配资本? 资本现金流无非就是5种方法:再投资、收购、还债、分红、回购股份,要看公司在某个阶段的资本分配是不是最优的。 如果公司明明可以发展更多,结果乱分红了;或者是明明到了特别成熟的时候,还不愿意分红,都是错误的分配资本。 9,公司怎样才能长成5倍? BG关注的是怎样,而不是能不能。这会强迫BG每个人去设想一些未来的可能性,包括公司现在的底层架构能不能够延伸到更多的业务。 比如,早期的亚马逊或者是阿里,连一个概念都没有,BG会考虑这个公司有没有这种机遇,以后去扩展到可触及的市场。 10,市场对公司有哪些误解,哪些事...

Rhino_GH从入门到精通听课笔记_二

一. 基础操作   1. Rhino F6精确更改相机视野   2. 中键和左菜单栏弹出时间都是可以自己设置缩短的 二. 软件技巧   1. GH搭配生成楼梯,柱子,栏杆   2. SU\3DS\OBJ 均可被Rhino识别   3. 已命名工作位置很有用,和和已命名是图标是不一样的   4. Rhino等轴测做法          显示——投影——改为平行          旋转改为0/360          视图——等角视图 三. 奇技淫巧   1. 善用微信搜索,比如“地形制作”,第三讲前半部分讲解利用高程点制作地形   2. Rhino转折剖制作方法,用面split模型,即模型被切成两个,类似于佐罗刀   3. 转折剖模型制作时间很久,工作量比较大 四. Rhino命令   1. worksession  链接文件进来,以一个图层显示,类似于SU里面的另存再载入的操作,可       以节省运算量,比ctrl+c ctrl+v快   2. ctrl+w  局部放大   3. hatch  嵌面

微软收购暴雪来给腾讯游戏业务做个估值

  微软收购暴雪来给腾讯游戏业务做个估值 1月18日,微软宣布将以每股95美元的价格收购动视暴雪,全现金交易,总价值687亿美元。预计将在2023财年完成交易。 这个信息出来后,书房老朋友@李强 利用这个收购做了个估值对比,思路挺清晰的。我修正了几个数字分享给大家,谢谢李强 李强:其实倒是可以借助微软收购暴雪来给腾讯游戏业务做个估值。 2020年,腾讯总收入4820亿,非国际准则口径净利润1227亿。非国际准则口径净利率=1227/4820=25.45%。 2020年,腾讯游戏收入1921亿。由于已知游戏的毛利率和净利率,远高于广告业务和金融科技及企业服务。 所以我们可以推测,游戏业务的净利润最保守的估计也应该不低于1921×25.45%=489亿。 按照2020年美元平均汇率6.89折算,相当于489/6.89=71亿美金。 暴雪2020年净利润是22亿美金,微软出全现金687亿美元收购。 按照这个比率,腾讯游戏业务的价值至少不低于71/22×687亿≈2200亿美元,约1.4万亿人民币(按照目前6.35汇率折算)。 按照目前腾讯约455港币的价格(指1月19日上午),总市值不超过3.6万亿人民币。 3.6万亿里,减去腾讯持有的约1.5万亿股权投资(三季报数据:市值1.08万亿的联合营股权,约4500亿笋子和粽子),再减去游戏业务市值1.4万亿。 这意味着除了游戏和投资之外,腾讯的广告、视频、音乐、文学、金融科技、企业服务等其他板块,合并起来的总估值3.6-1.5-1.4=0.7万亿。 而 这些业务2020年的净利润是1227-489=738亿,不足10倍市盈率,属于明显低估。 即使将有息负债约3500亿算上(借款、应付票据、其他金融负债),对应也就约14倍市盈率,依然属于明显低估。   这大概就是不管怎么算,都能看见的“低估”吧!

产品随想 | 周刊 第67期:静水铭室

Products Design Scenes #77   https://walling.app/TGE6qnCacxmwEV3d2lg2/design-scenes-77efbc88e4bbaeefbc89 非常不错的产品/设计周报 静水铭室   https://liuliu.me/ 静水可铭,丰山须镂。 - Silent Water and Curved Mountain 不错的中英博客 Classic HCI Demos   https://jackrusher.com/classic-ux/ A curated collection of HCI demo videos produced during the golden age from 1983-2002. 经典老演示Demo health-code-index   https://github.com/ilovexjp/health-code-index 健康码模拟 - 索引 EnergyStar   https://github.com/imbushuo/EnergyStar EnergyStar is a terrible* Windows application that leverages Windows EcoQoS API to throttle any inactive user process and background applications to improve system thermal and battery life, similar to the process management strategy on modern Apple macOS releases. 中共政治精英数据库   https://chinadatalab.ucsd.edu/elites/ Victor Shih/史宗瀚维护的一个履历库 Tribler   https://github.com/Tribler/tribler Privacy enhanced BitTorrent client with P2P content discovery 在美国执法区会有帮助 nuclear   https://github....

Rhino Make2d工作流

作者:毛伟伟 链接:https://www.zhihu.com/question/22117854/answer/55730599 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 rhino下当然是make2d,技巧在于对齐和不同线段的分层,首先,把每个要导出的模型分好图层,把模型移动到稍微离远点有一段距离的地方。对齐,定好角度保存角度,在模型下画一个框,选择第一部分模型和框,隐藏其他,点击保存好的角度,make2d,建立这个部分的make2d图层,这时候是选中的,group,移动命令,键盘敲击0,确定,这个框和make2d的图会回到原点,以此方式做循环。(装逼一下,既然是一样的loop,我是后来写了一个代码去重复这个步骤的,减少了好大一部分工作量) maya,vetor render导出,不多说,有兴趣可以找我或者找网络教学 su,调好显示模式导出pdf就好,经验是,导出纯线框显示模式的pdf不如导出带色不带光影的pdf,因为在ai下能选择同样的颜色的部分,你只需要分好颜色,在ai下选择分层起来就很方便。因为直接导出线框显示模式的pdf,每一段线都是段的选择起来或者描起来极其浪费时间。 这些都是为了导出线框矢量文件(可是是任何软件看你擅长,ai,cdr(我很不想建议,但是我要表达同一擅长方面的软件一个就好)都行)。(所以你说学不学?) ai 下调整各种线宽,line weight绝对是一个很大的学问,比如何使用ai重要百倍。然后箭头什么的尽量都在ai下完成把。 ps的调整是图已经完成,需要在填充下做一些advanced的表达效果。因为ps下的蒙板橡皮擦对图片纹理等等有关图片的素材处理起来太方便。包括光,光暗,图片效果。 id或者ai下做好排版,把这些素材放进去

毕设采访问卷自己的回答

1.      提一个作品中的有意思的设计点。       毕设中,自己觉得最有趣的一点是,尝试将商业建筑的一层开放给城市绿色空间,让其 作为 公园的一部分,让建筑的入侵感变弱。       很期待上海以后能出现这样的设计,尽管这样的设计短期看对于开发商没有利益,但我认 为 长期看对于城市使用者、对于城市管理者是有好处的,而我也还在思考,怎样去弥补这样 的 设计对于开发商造成的损失,希望能塑造共赢的局面,这个思考、设计的过程自己非常开 心,觉得有意思。 2.      如何看待城市发展过程中新旧交织的困局?设计师能做什么?        城市发展一般是从无到有,发展到一定阶段,最开始的就成了旧的,不可避免地会和新的产生冲突。        作为建筑设计师,面对旧的,我们常思考的是,它好不好?如果好,那新的要与他保持和谐,形式可能有新旧,但内核、设计语言是一致的;如果旧的不好,我们的思维是,趁着新的发展,一并改造、更新,让新旧作为整体面向城市。总的来说,就是设计师要整体考虑,对于旧的不能一味保留,也不能一味摈弃。 3.      完成毕设过程中遇到的困难以及如何解决的?从中收获了什么?        遇到最大的困难是城市总平面设计中,对于基地新旧建筑的考虑,自己常希望能多保留一些,但设计中又发现如何把握度有些困难,后来解决方法是制定一个标准,旧的能不能提供新价值,如果不能,果断抛弃;如果能,留下。        按这样思路,困难算成功克服,小小收获是当你很贪心地想多留东西时,想想它是不是累赘,想清楚就不累了。 4.      导师在你完成毕设过程中的角色?(可以举一个例子)        我的毕设导师是王林教授,她一直是我毕设中的鼓励者和点拨人。     ...

V-Ray DMC采样器原理释疑

各采样器比较 自适应细分是一个几乎所有其他“有偏差的非物理渲染器”(注 1 )都在采用的算法。它是一种相对来说有点老式,但在绝大多数情形下都非常好用的算法。它会算出干净且采样细致的图像结果,在静帧渲染时的表现非常出色,但是与 DMC 采样器相比,自适应细分往往会在一些本可以采样再少一点的地方过多采样