- 布隆过滤器(Bloom Filter)
Bigtable向用户提供了一种称为布隆过滤器的数学工具。布隆过滤器是巴顿·布隆在1970年提出的,实际上它是一个很长的二进制向量和一系列随机映射函数,在读操作中确定子表的位置时非常有用。布隆过滤器的速度块,省空间。而且它有一个最大的好处是它绝不会将一个存在的子表判定为不存在。不过布隆过滤器也有一个缺点,那就是在某些情况下它会将不存在的子表判断为存在。不过这种情况出现的概率非常小,跟他带来的巨大好处相比这个缺点是可以忍受的。
目前包括Google Analytics、Google Earth、个性化搜索、Orkut和RSS阅读器在内的十几个项目都是用了Bigtable。这些应用对Bigtable的要求以及使用的集群机数量都是各不相同的,但是从实际运行来看,Bigtable完全可以满足这些不同需求的应用,而这一切都得益于其优良的架构以及恰当的技术选择。与此同时Google还在不断的对Bigtable进行一系列的改进,通过技术改良和新特性的加入提高系统运行效率及稳定性。
Google 应用程序引擎
亚马逊、Google和微软均推出了自己的云计算平台,分别是Amazon EC2、Google App Engine以及Microsoft Azure平台。Amazon EC2平台是多种工具的集合,这些工具大部分位于整个系统平台的底层,涉及底层的操作系统、文件系统以及硬件基础等一些具体环境,因而要求开发人员具备比较强的开发能力。Amazon EC2给开发人员提供了一个虚拟环境,开发者可以在这个虚拟环境中调用亚马逊提供的一些底层的应用来开发自己的程序。和Amazon Web Service相类似,微软的Azure实际上是由公共平台上的不同服务组成的,这些服务很多是微软以前开发、发布的服务。
如果说亚马逊给开发人员配置了一台可以在上面安装许多软件的虚拟机的话,Google App Engine可以说是给开发人员提供了一个基于Python语言的Django框架。由于Google App Engine与Google自身的操作环境联系比较紧密,涉及底层的操作很少,用户比较容易上手。并且Python语言相对而言简单易学,开发人员可以很容易的开发出自己的程序。但是Google App Engine简单方便的同时,却在提供的解决方案上有着自己的局限性。
点击加载更多评论>>