百度技术总监陈尚义在“中国非结构化数据管理高峰论坛”上向与会的专家学者展示百度在大数据存储和处理上取得的成果,并阐释百度未来在大数据上的思考。
中新网1月7日电 中国非结构化数据管理高峰论坛(CUDMS 2011)昨日在京举行,百度技术总监陈尚义在会上向与会的专家学者展示了百度在大数据存储和处理上取得的成果,并阐释了百度未来在大数据上的一些思考。
据了解,作为互联网公司,百度每天面对海量数据。其每天收集几千亿网页,系统每天都产生海量日志,其容量达到百PB级,需要数万台服务器存储,这还不算用户在使用百度产品中自己生成的内容(UGC)和百度客户的数据,这部分数据加起来就有几个PB,仅这些数据就比传统企业的大上成千上万倍。并且随着网页资源增加和搜索质量提升,网页和超链数据将随之急剧增加。
陈尚义表示,百度数据呈现海量、高增长,结构化和非结构化大量并存,记录大小差距巨大,数据一致性强弱不一,数据冷热不均,突发事件常导致数据访问波峰等特点。
与此同时,百度业务对数据存储和处理提出极高要求。要求数据高可用、高可靠、高通量、高时效、高并发、高可扩展(简称“六高”),要求百度的数据存储能力和处理能力必须以非常简单的方式获得扩容,以降低维护升级的代价。
陈尚义称,面对这些特点和要求,百度必须开发自己的大数据存储系统。在百度最早上线数据存储系统时,类似Hadoop和HDFS等开源系统还没有发布,而且还由于开源系统的性能受限、无法充分利用机器的各种资源尤其是新硬件(flash/SSD)资源、无法为特定的访问模式做优化、缺乏满足工业界的稳定性等诸多原因,百度不能使用开源系统。不仅开源的用不上,而且市场上也无现成商业化产品可供百度使用,因为任何一个厂商都没有如此海量、如此复杂的数据。
百度一开始就自主开发了大数据存储系统,用于存储网页和超链、客户信息和用户产品、系统日志等海量数据,支持Table、Pipe、File和KV等数据类型,满足百度业务的流式和触发式计算、文件存储和访问、低延迟、高并发的需求。在此基础之上,百度还面向广大网民推出云存储系统,在前不久发布的百度易手机上,每个用户可拥有100G的免费存储空间。
陈尚义介绍说,为了应对上百PB的数据,满足诸多近乎苛刻的要求,百度作出了巨大努力。
第一,开发了网页更新模型,将对磁盘的随机写转化为批量的顺序写,大大提高了数据的写入速度,缩短了网页数据的更新周期,提高了搜索引擎等产品的时效果性。
第二,对涉及数据存储和访问的各个方面进行了全局优化。包括:针对访问模式采用数据索引、缓存热点数据、外存预读、IO缓存等技术手段,降低在线访问的延迟,提高系统的吞吐量;针对各种存储资源的特点,细粒度地发挥各种资源的优势;对单机硬件进行合理调配,优化CPU、内存、硬盘、SSD容量的配比;与CDN结合,将最常被访问的、相对静态的大数据自动缓存到距离用户最近的数据中心。
第三,定制Flash,使存储系统直接对Flash的多通道(Multiple Chanel)编程,既提高了并发性,又提高了存储资源的容量。
第四.采取多副本存储,以提高系统的可靠性和可用性。
第五,创造性地开发了自主知识产权的复制协议(Replication Protocol)。这个协议和TCP类似,TCP是基于连接的可靠性传输协议,而Replication Protocol是跨节点、跨连接的可靠传输协议。
第六,采取数据分治策略,保证数据存储的各个部件可以水平扩展,即通过简单地增加服务器就可以达到扩展的目的。
第七,采用拆片存储技术,避免单机存储热点记录或大记录所带来的性能瓶颈。
第八,运用局部更新大记录的策略,对于大记录分块存储,只有修改了的块才被更新,而不是对整个大文件都重写。这样极大地节约数据更新的成本。
第九,采用三层数据存储模型,将热点数据存放于内存,较热的数据存放于flash, “冷”数据存放于磁盘,针对数据访问的特性充分利用各种资源的优势。
陈尚义透露,未来,百度还将开发跨数据中心的存储系统,面临带宽、通信稳定性所带来的压力;在数据量、吞吐量急剧增大的背景下,不断提高时效性、一致性、减低延迟、提高并发;在新的Flash/SSD硬件和万M网络的引入、数据存储和处理瓶颈发生转移的情况下,百度原来积累的存储体系将面临变革。