读《百度基础架构技术发展之路》有感 .
2014-07-26 18:18
621 查看
这篇文章主要介绍SDF的研发过程,包括问题的提出,解决方案,以及部署在实际系统过程中遇到的问题。SDF的论文发表在ASPLOS
2014会议上。首先问题来自于实际工业环境:随着数据中心将成为承载互联网用户存储和计算的主要战场,如何设计和改进体系结构以满足大规模系统对性能,成本,功耗以及可扩展性的要求成为新的挑战。可以看到的是百度的ARM云服务器方案解决了存储的成本和功耗问题,而SDF架构则幅度提升了性能的问题(当然也会降低成本和功耗)。
SDF的提出是为了应对固态盘的诸多缺陷:其中包括带宽利用率低,空间利用率低以及性能的不可预测性。硬件上的问题需要通过软件来屏蔽以向上层提供性能良好,运行稳定的服务接口。SDF的几个features是:
软件管理数据布局(layout),用算法实现更高程度的并行。
扁平文件系统和I/O stack,分别解决可扩展性和延迟性问题。
考虑SSD在存储时的硬件特征,读写块设置尽量对硬件友好。
类似于hadoop的副本机制,消除了数据存储时的校验操作。
让人感到惊讶的是百度内部的开发速度之快,之前听赖春波前辈介绍百度ARM云存储服务器的整体设计和开发过程,就对百度内部雷厉风行,风驰电掣的开发效率印象深刻。同样这篇文章也能间接的让人感受到这种气场。比如一个入职两年的硬件工程师和实习生在半年内完成了1万行的verilog代码+3000行的C语言代码;一个工程师用半年的时间将包含100多万行代码的基础库和存储系统代码从x86-64架构移植到ARM-32位架构上的移植并完成测试;高效率的系统原型到上线过程:从20台到100台再到500台再到1000台的迅速扩展。相信他们一定是有非常充足的工作热情才能完成这样在工作量和工作难度都非常有挑战的任务。
这也让我怀念起在三年前做本科毕业设计时,和张胤同学一起用verilog编写了1万3千多行实现了一个六级流水、支持函数跳转、支持中断操作、支持分支预测的全功能MIPS处理器,用C#编写了1万多行的汇编器,自定义了一套编程语言规范和汇编指令,然后在此基础上又编写了3000多行的汇编代码(包括贪吃蛇游戏,弹球游戏等等)玩遍了开发箱上的所有外设(键盘,彩色触屏,LED点阵等等)。驱动这些外设的驱动程序也是用verilog编写的。那段时光真的非常充实,至少现在看来可以在做过的最让自己感动和自豪的事情中排名第二了。
读博士之后,发现自己越来越懒散了,之前的那种冲劲慢慢的消退,这太可怕了!还有两年就要毕业了,在这两年里一定要抓紧时间,学习一切让自己兴奋的知识,让自己high起来充实起来。哎,说道工作激情和效率就扯远了,接着说百度的基础技术的指导原则---全栈式自主研发。具体这样做的原因,文中给出了这么几点:
业务发展速度快,基础架构要支撑新的业务,仅仅依赖于开源社区是达不到的。
仅仅在开源方案上修修补补,丧失自主研发大系统的能力
全栈式自底而上的研发做到软件和硬件的协同设计,从而达到系统的最优.
技术方面,百度确实是一个令人钦佩的企业,不过感觉其搜索的准确性上还有很大的缺点,而且准确率似乎在下滑。不知道是不是因为融入了“深度学习”之类的新兴技术。比如我要搜索《百度基础架构技术发展之路》这篇文章的pdf版,在百度搜索框中输入“百度基础架构技术发展之路 pdf”,根据首页呈现的内容来看,结果并不是很让人期待。
2014会议上。首先问题来自于实际工业环境:随着数据中心将成为承载互联网用户存储和计算的主要战场,如何设计和改进体系结构以满足大规模系统对性能,成本,功耗以及可扩展性的要求成为新的挑战。可以看到的是百度的ARM云服务器方案解决了存储的成本和功耗问题,而SDF架构则幅度提升了性能的问题(当然也会降低成本和功耗)。
SDF的提出是为了应对固态盘的诸多缺陷:其中包括带宽利用率低,空间利用率低以及性能的不可预测性。硬件上的问题需要通过软件来屏蔽以向上层提供性能良好,运行稳定的服务接口。SDF的几个features是:
软件管理数据布局(layout),用算法实现更高程度的并行。
扁平文件系统和I/O stack,分别解决可扩展性和延迟性问题。
考虑SSD在存储时的硬件特征,读写块设置尽量对硬件友好。
类似于hadoop的副本机制,消除了数据存储时的校验操作。
让人感到惊讶的是百度内部的开发速度之快,之前听赖春波前辈介绍百度ARM云存储服务器的整体设计和开发过程,就对百度内部雷厉风行,风驰电掣的开发效率印象深刻。同样这篇文章也能间接的让人感受到这种气场。比如一个入职两年的硬件工程师和实习生在半年内完成了1万行的verilog代码+3000行的C语言代码;一个工程师用半年的时间将包含100多万行代码的基础库和存储系统代码从x86-64架构移植到ARM-32位架构上的移植并完成测试;高效率的系统原型到上线过程:从20台到100台再到500台再到1000台的迅速扩展。相信他们一定是有非常充足的工作热情才能完成这样在工作量和工作难度都非常有挑战的任务。
这也让我怀念起在三年前做本科毕业设计时,和张胤同学一起用verilog编写了1万3千多行实现了一个六级流水、支持函数跳转、支持中断操作、支持分支预测的全功能MIPS处理器,用C#编写了1万多行的汇编器,自定义了一套编程语言规范和汇编指令,然后在此基础上又编写了3000多行的汇编代码(包括贪吃蛇游戏,弹球游戏等等)玩遍了开发箱上的所有外设(键盘,彩色触屏,LED点阵等等)。驱动这些外设的驱动程序也是用verilog编写的。那段时光真的非常充实,至少现在看来可以在做过的最让自己感动和自豪的事情中排名第二了。
读博士之后,发现自己越来越懒散了,之前的那种冲劲慢慢的消退,这太可怕了!还有两年就要毕业了,在这两年里一定要抓紧时间,学习一切让自己兴奋的知识,让自己high起来充实起来。哎,说道工作激情和效率就扯远了,接着说百度的基础技术的指导原则---全栈式自主研发。具体这样做的原因,文中给出了这么几点:
业务发展速度快,基础架构要支撑新的业务,仅仅依赖于开源社区是达不到的。
仅仅在开源方案上修修补补,丧失自主研发大系统的能力
全栈式自底而上的研发做到软件和硬件的协同设计,从而达到系统的最优.
技术方面,百度确实是一个令人钦佩的企业,不过感觉其搜索的准确性上还有很大的缺点,而且准确率似乎在下滑。不知道是不是因为融入了“深度学习”之类的新兴技术。比如我要搜索《百度基础架构技术发展之路》这篇文章的pdf版,在百度搜索框中输入“百度基础架构技术发展之路 pdf”,根据首页呈现的内容来看,结果并不是很让人期待。
相关文章推荐
- 读《百度基础架构技术发展之路》有感
- 读《百度基础架构技术发展之路》有感
- BAT解密:互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范
- 互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范
- BAT解密:互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范
- 读《技术人员的发展之路》有感
- BAT解密:互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范
- 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析
- BAT解密:互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范
- 《豆瓣网技术架构的发展历程》
- 豆瓣技术架构的发展历程 @ QCon Beijing 2009
- YouTube开放基础技术架构 让用户建自家YouTube
- 豆瓣网技术架构的发展历程 视频下载
- WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构
- 软件架构训练基础教程之面向组件技术
- Novell基础架构方案引领云计算发展
- 学习豆瓣网的技术架构发展历程
- YouTube开放基础技术架构 让用户建自家YouTube
- 计量是所有科学发展的技术基础
- IBM职业之路-职业规划和技术发展