云计算也可以扩展后端吗?

时间:2009-06-18 13:27:21

标签: cloud

我正在为网络应用程序选择一个平台。

我了解云计算如何扩展前端服务器,但他们如何处理数据库服务器呢?

开发人员必须做些什么来实现这个目标吗?

7 个答案:

答案 0 :(得分:2)

总的来说,是的。跨多台计算机扩展数据库的最常用方法是使用column store。这样,表中的每一列都可以存储在一台单独的计算机上,从而大大增加了可用于搜索的CPU功率和带宽。搜索也可以并行完成,对公司列的搜索只能访问一个服务器,因此对年份列的搜索不会更慢。

据我所知,这就是Google的MapReduce的工作原理。

维基百科的专栏商店页面的benefits section特别有用。

沿着类似的路线,OLAP很有意思。 OLAP完全改变了读/写权衡。对于大型复杂查询,查询和读取速度很快,但编写新数据需要耗时的重建过程。

答案 1 :(得分:1)

简答:是的。

长答案:这取决于。需要做什么样的处理?可以减少地图吗?对于这种事情存在许多解决方案。分布式缓存和内存缓存也可以帮助扩展后端的许多服务。

答案 2 :(得分:1)

这在很大程度上取决于您为后端选择的解决方案。某些应用程序使用混合来处理不同类型的数据。

当需要进行缩放时,很难使用MySQL或PostgreSQL等数据库。对于我们的项目,我们决定使用Cassandra(当时你问的可能还不存在!)这允许你在任意数量的后端计算机上存储数据。这样做还允许后端进程在完全独立的计算机上运行,​​这样您就可以进行各种计算,而无需减慢数据库或前端(即Apache)的速度。

我在本页的项目中谈到这个:

http://snapwebsites.org/implementation/snap-websites-processes

搜索“过程”一词。还有一个代表不同进程的图像,每个进程可以在一台单独的计算机上运行(如果你有这么大的负载,你需要更多的马力):

enter image description here

实际上是一些Snap!该示例中显示的后端可以在多台计算机上运行,​​而一个实例处理此网站,另一个实例将处理该其他网站。相当强大。

答案 3 :(得分:0)

这取决于数据库

Slicehost使用MySQL Cluster,谷歌使用map-reduce炒作等。取决于云提供商和他们使用的数据库

其他人只提供一个虚拟机,并在具有私有IP的虚拟机上设置自己的数据库

答案 4 :(得分:0)

如果您使用的云提供商只是为您提供了对虚拟机的ssh访问权限,那么您需要实现自己的数据库扩展。如果您在Google AppEngine,Intuit合作伙伴平台或类似产品上运行,则可扩展性内置于提供给您的数据存储区中。

基本上,云计算并不神奇。为了获得这种内置的可扩展性,您放弃了一些自由。 Google的数据存储区不提供完整关系数据库的所有方面,但您可以扩展到荒谬的流量。

答案 5 :(得分:0)

亚马逊和谷歌使用数据存储,它与传统的RDBMS不同。

您可以按照link

找到更多背景信息

您可以找到数据存储的简短列表here

答案 6 :(得分:0)

至于如何,我最近发表了一篇致力于此的论文。这是在一个讲座中讨论过的,所以虽然我对这篇论文的内容很熟悉,但我自己并没有阅读过。尽管如此,讲座仍有非常有趣的想法:http://reports-archive.adm.cs.cmu.edu/anon/2008/CMU-CS-08-150.pdf