ContentsCSDN要闻3大脑理论与智能机器探索者JeffHawkins专访4封面报道探讨数据时代构建高可用数据库的新技术10使用Marathon管理Spark2.0.2实现运行运行期扩容的executor调度14解析阿里云分布式调度系统伏羲20大数据引擎Greenplum那些事26人工智能WSDM2017精选论文30无人驾驶中的决策规划控制技术34Bandit算法与推荐系统41主办单位:CSDN出品人:陈鸣顾问:李航俞栋总编:孟迎霞主编:卢鸫翔编辑:魏伟唐小引陈秋歌张红月郭芮钱曙光屠敏仲培艺付江贾维娣特约编辑:徐威龙杨福川张国强流程编辑:何永灿美术设计:纪明超美术编辑:张虓Tel:010-64351458E-mail:editor@csdn.net读者服务部读者信箱:reader@csdn.net地址:北京市朝阳区广顺北大街33号院6号楼福泰中心9层邮政编码:100102电话:010-64351436传真:010-64348545出版日期:每月1日文章版权归CSDN所有,未经许可不得转载如发现装订错误或缺页,请寄回读者服务部调换2017.03欢迎关注CSDN微信公众账号移动谈Fuzz技术挖掘Android漏洞5058同城移动端PassportSDK的设计与技术细节56饿了么移动基础设施建设61携程无线工程技术系列从零打造携程无线持续交付平台MCD实践65技术C++14实现编译期反射——剖析magic_get中的magic71双11背后的运维技术——阿里巴巴基础运维平台StarAgent的架构演进77在Node.js中看JavaScript的引用81缓存那些事85OLTP类系统数据结转最佳实践100百味PNG故障的艺术104Hacker曾经知晓的那些事112News资讯要闻Headline3GitLab误删除数据库事件UTC时间1月31日晚,GitLab官方发布推文,承认由于UNIX运维的误操作,300GB生产环境数据已被彻底删除。该消息一出,众皆哗然。此次数据库误删直接导致GitLab网站长时间宕机,截至UTC时间2月1日晚,网站恢复在线。据外媒透露,本次事件起因是一名网站系统管理员在深夜加班进行数据库维护时,在疲劳状态下导致的工作失误。对此,GitLab官方回应不归咎于个人,同时开启直播,并提交了详细的事故报告,力求恢复工作透明化。有评论在分析综合原因时,强调了备份策略针对“人为因素”的优化,以及定期防灾演戏的重要性,而其官方面对事故的应急处理方式也得到了肯定。Google推出CloudSpanner近日,Google正式宣布推出CloudSpanner的Beta版,其为面向关键任务应用程序的全球分布式关系数据库服务。官方称其能让用户实现“鱼与熊掌兼得”:该服务支持ACID事务和SQL语义,同时还提供横向扩展性和强一致性。CloudSpanner一经发布,立刻引发大量讨论,有评论指出,这将严重威胁到Oracle在托管数据库服务领域的市场,而未来在该项服务上的竞争也将愈演愈烈,开发者将收获更多选择。同时,也有评论表达了对MSSQL领域从业者职业生涯今后发展的忧虑。微软开源Git虚拟文件系统GVFSGit是一款开源的分布式版本控制系统,素来受到广泛应用,但随着代码库的不断扩展,其在性能上的局限渐显,工作效率陡降。对此,微软推出了针对特大repo的Git虚拟文件系统——GVFS,并于2月3日正式宣布将其开源。同时,GabrielAul也通过Twitter透露,微软将从SCM迁移到Git,并引入新技术。有评论认为微软的这一举措类似于Google内部自行开发的版本控制系统Piper(通过CitC访问),极大肯定了其在处理大型代码库、提升运行速度层面的贡献。对此,有回复指出Google在这一方面的发展要先进得多。此外,也存在颇多辩证的观点,一方面指出Git相对明显的缺陷(如复杂的UI),另一方面也肯定了微软着手改进Git这一主动性尝试的意义。Rust1.15发布:新特性落地Rust是一种专注于安全性、速度和并发性的系统编程语言,2月2日,其发布了最新版本Rust1.15,详细发布说明参见GitHub。该稳定版新增了一项备受期待的特性——自定义derive,有效扩展此前derive特性的用例范围,如Serde和Diesel。此外,新版本更新还包括用Cargo重写的构建系统,以及对i686-unknown-openbsd、MSP430和ARMv5TE的Tier3支持。VisualStudioCode1.9版本更新发布遵循每月例行的发布周期,VisualStudioCode推出了版本1.9,它是一款由微软开发的跨平台编辑器,可运行于OSX、Windows和Linux之上。该版本亮点在于能够定义执行多命令的任务,故而支持自定义流程,为开发人员运行复杂任务提供了极大的便利。此外,新版本所涵盖的重要更新还包括新的欢迎主页、InteractivePlayground、Markdown同步预览、自定义特定语言的设置、Inline变量显示、Node.js调试配置拓展、任务运行支持改进、更快的集成终端等。日本游戏产业先驱中村雅哉逝世1月30日,万代南梦宫发讣闻称,日本游戏产业先驱、南梦宫(NAMCO)创始人中村雅哉(MasayaNakamura)已于1月22日逝世,享年91岁。南梦宫早期主营营业用街机,并于1974年收购雅达利日本分公司,正式进军家用电子游戏产业,后相继推出多款经典游戏。其中,1980年发行的街机游戏《吃豆人》更是火速风靡全球,中村雅哉亦由此被誉为“吃豆人之父”。他彼时的预见性决策成功打开了早期投币式游戏市场,而这些游戏更是承载了众多玩家的童年记忆。Python正式迁移至GitHub关于Python迁移到GitHub的讨论由来已久,早在2014年12月,Python社区内便发起了相关讨论,包括部分核心开发者在内的支持者表示GitHub更易于使用且优势明显,此外,对于大部分开发者而言GitHub都无疑是一个相对熟悉的环境;而反对者则认为此举是对社区理念的背离。2016年1月,Python官方宣布将迁移到GitHub,同时从Mercurial切换到Git,并于2017年2月中旬正式完成项目迁移。对此,开发者普遍持乐观态度。CSDN要闻2017年1月28日~2月28日HallofFame名人堂44News资讯大脑理论与智能机器探索者JeffHawkins专访“虽然没人确切知道恐龙是怎么灭绝的,与之相关的理论却很多——关于大脑则完全相反。”作为工程师,JeffHawkins创立了两家便携式计算机公司,Palm和Handspring,开发了风靡一时的PalmPilot和Treo智能电话。然而作为科学家,理解大脑运作方式、原理,并按同样原理制造智能机器才是他一生的追求。日前,JeffHawkins接受了《程序员》采访。蜿蜒求索1979年,从康奈尔大学工程学院毕业的JeffHawkins选择在Intel开启他的计算机行业生涯,然而三个月后,他就发现自己入错了行——那年9月出版的《科学美国人》是大脑研究专刊,专题最后一篇文章中,FrancisCrick(DNA结构发现人之一)写道,“尽管人们积累了大量有关大脑研究的详尽数据,但其工作原理仍是难解之谜。神经科学只是一堆没有任何理论的数据,最明显的是缺乏概念框架”。Crick甚至没用“理论”这个词,他说,我们根本不知道怎么去想,因为连基本框架都没有——Crick的话像号角,唤醒了Hawkins长久以来研究大脑,制造智能机器的梦想。Hawkins那些认为“大脑无法理解自身”的说法除了似有禅意,实则毫无用处,“人们常怀有根深蒂固但错误的假设,正是这种偏见阻止我们探寻答案。翻开科学史,你就会发现,哥白尼的天体运行说,达尔文的进化论和魏格纳的大陆漂移学说都跟大脑理论有诸多相似,都曾有许多无法解析的数据,而一旦拥有理论框架,一切就都变得有意义了。”然而将这一计划付诸实施尚需时日。在Intel展开研究自然是最便捷的渠道,Hawkins致信当时的公司主席GordonMoore,建议成立研究小组,图1大多数科学理论与数据相互印证,而神经科学拥有海量数据却无框架和理论可用记者/卢鸫翔HallofFame名人堂5News资讯专攻大脑工作原理:“该工作可从一个人,即本人开始,随后进一步拓展。本人有信心承担该工作。相信有一天它会给我们带来无限商机。”不过随后的讨论中,公司并未支持他的想法,因为没人相信在可预见的未来能研究出大脑的工作原理。此路不通,只得另辟蹊径。他首先向当时的人工智能研究“航母”MIT人工智能研究院发出申请:“我想设计和制作智能机器,但我的想法是先研究大脑怎么运作。”“你不需要这样做,我们只需要为计算机编程。”“不,应该先研究大脑。”“你错了。”“不,你们错了。”他们直截了当地告诉Hawkins,要认识智力和建造机器,没必要研究真正的大脑,“他们认为研究大脑会限制思维,对大脑如何工作毫无兴趣。采取‘只求结果,不问手段’的方式开展研究,甚至有人还为自己跳开了生物学这一阶段而沾沾自喜。”MIT拒绝了他的申请。Hawkins无所适从,但仍一心渴望研究大脑,他参加了人体生理学函授课程——因为函授学校不会拒绝任何人。他努力学习,准备考试,几年后被UCBerkeley接收为生物物理学研究生。欣喜若狂之余,意味着原本打算买房生子的计划搁浅,他需要甘心变成一个不能挣钱养家的人。他原以为这次可以终于可以研究大脑理论了,但学校告诉他,他选择的研究方向,得不到经费。Hawkins很沮丧,只能回到原点——他熟悉的计算机行业。“我计划干4年,挣点钱,组织自己的家庭,那时自己可能会成熟点,神经系统科学可能也会成熟点。结果比4年长多了,已经大概16年,但我终于做到了。”Hawkins在这段时间创立了PalmComputing(也许值得一提的是,Palm商标目前归中国公司TCL所有)和Handspring,推出了一系列风靡一时的掌上手写电脑。Palm使用的手写识别系统Graffiti灵感来自Hawkins曾学习的一种与大脑有关的数学——1987年夏天,一家名为Nestor的公司展示了一种能识别手写文字的神经网络,要价100万美元,“他们在神经网络规则上大作文章,将它吹嘘成一项重大突破,但我觉得手写识别问题可以通过另一种更简单、传统的方法解决。两天后,我设计出一种速度更快,体积更小,使用更灵活的手写识别器。”生物神经网络终于“挣到点钱”的Hawkins将自己的研究方向全面转向神经科学,2002年他建立了非盈利的科学研究机构RedwoodCenterforTheoreticalNeuroscience,2005年建立了Numenta继续他的研究。此前一年,他出版了《OnIntelligence》,HallofFame名人堂66News资讯向大众介绍大脑和智能理论。书中他提出了“记忆-预测”框架(Memory-predictionframework)——大脑的新皮质、海马体和丘脑联合匹配感官输入,存储记忆模式,并将这个过程如何用于预测。进而根据这一生物学框架发展出了HTM(HierarchicalTemporalMemory)机器学习模型。Hawkins将其称为“生物神经网络”(BiologicalNeuralNetwork),与之对应的,他将DeepLearning为代表的神经网络称为“简单神经网络”(SimpleNeuralNetwork)。“大脑以稀疏分布表示(sparsedistributedrepresentations,SDR)表征信息,我相信未来所有智能机器都将基于SDR。而现有机器学习技术却无法将SDR加入其中,因为SDR是构建其他一切的基础。生物神经也远比‘简单神经网络’复杂得多。而作为生物神经网络的一种,HTM已能从数据流中学习结构,做出预测和发现异常,还能从未标记的数据中连续学习。”Hawkins这样解释“生物神经网络”的独特之处,他还觉得目前人工智能对认知功能被分割了——分为语音,视觉,自然语言等领域,而人脑