搜索引擎google、baidu数据存储方式

全球第一牛站google,能够如此快速的对搜索的关键字做出反映,让人赞不绝口,在看google earth,goole map等大量的图形数据。这些数据如何存储的呢?一直让人感觉很神秘。相传,google最牛的技术,就是让一大批普通机器,配置成大型的集群,来应对 google的海量存储。

 

    但,具体如何存储呢?

 

    google的存储为GFS(Google file system)分布式存储文件系统,多读少写的数据如大索引文件,google map地图文件, 静态网页等采用bigtable来存储,bigtable是一种弱关系型存储系统,建立在GFS之上,字段并不满足关系数据库范式中的原子性等,而是可根 据时间戳来存储单个数据的多版本,列分为列簇(column family),可把一系列相关的列定义为一个列簇。GFS的数据存储是分块(block) 存储的,一个文件被分成64M/block的若干块,可同时往多个数据服务器插入,而下载时,可同时从多个数据服务器拿一个文件的不同部分,这就提高了数 据的吞吐效率。此外GFS的文件采用分段压缩机制,即若干block作为一个压缩单元进行压缩,而非整个文件进行全压缩,这样可以在读取文件时边读边解压 缩。bigtable中也可以建立列的索引,理想情况下一次I/O预先加载索引,然后再一次I/O定位磁盘中的数据,然后作顺序读来载入数据。这样比一般 关系数据库的载入速度要快,如果我没有记错的话,一般关系数据库定位数据至少需要4次左右的磁盘I/O。
GFS适合海量数据存储,而bigtable适合弱关系型数据的存储。

     至于百度,百度在数据操作上,网站方面用的mysql,但百度在mysql的源码基础上做了一些特定的优化。
在数据存储介质上,百度有些地方用的是SD卡,但SD卡同样只适合于多读少写的应用场合,否则SD卡寿命很快耗尽,这样比物理操作的磁盘要高效很多。

任何东西要看具体应用来讲,关系型数据库适合于逻辑,业务复杂的企业级系统。对稳定性,可扩展性,安全性,容错性,事务性要求比较高的场合采用oracle,sqlserver等绝对没错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值