BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

云计算中无法使用关系型数据库吗?

| 作者 Jon Arild Tørresdal 关注 0 他的粉丝 ,译者 赵劼 关注 5 他的粉丝 发布于 2009年2月24日. 估计阅读时间: 3 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

最近对云计算的关注增加了键/值数据库的使用,有关这种存储方式最常见的主题便是其伸缩性。对各厂商来说,即使无需构建高度伸缩的应用程序或服务,云计算的其他一些优势也对它们有着强大的吸引力——尽管良好的伸缩性是云计算的关键要素之一。

目前可以猜测的使用场景有:

  • 创业公司无需在本地服务器上进行投资,只要购买它们的计算和存储即可。
  • 公司想要将现有的应用程序或服务器移植到云上时,它们无需重新架构他们的数据层。
  • 需要在较短的时间段内获得大量计算能力。

Tony Bain最近发布了一篇文章,探讨关系数据库的末日是否已经来临。他将目光对准关系型数据库和键/值数据库的区别,以及从两者选择其一的原因上。根据Tony的说法,关系型数据库在伸缩性上会遇到一些挑战:

当越来越多的应用程序发布于高负荷(例如Web Services)环境中时,它们对伸缩性的需求将会十分明显。首先,它们会迅速增长。其次,它们最终的规模也会非常可观。对于前者来说,我们难以管理单个内部服务器上部署的关系型数据库,例如你的负载一夜之间增加两倍,你升级硬件的速度又能有多快?而后者一直便是关系型数据库在管理上的难点。

他列举了四种选择键/值数据库,而不是关系型数据库原因:

  1. 你的数据是高度面向文件的。
  2. 你的开发环境是高度面向对象的。
  3. 你的数据存储很便宜,并且很容易和合作伙伴的Web Service平台集成。
  4. 你的最先关注的是按需增长,规模庞大的伸缩能力。

David Chappell在他关于Azure服务器平台的文件中简单讨论了这个问题。David提出了在云中使用键/值数据库的多种原因,不过他也谈到:

……微软宣布了一个计划:将SQL Data Service更进一步关系化。与Windows Azure存储不同,SQL Data Service构建于SQL Server之上,使得这种发展更加自然。无论这种模型是什么样的,这个技术的目标是不变的:提供一种伸缩性更强,更可靠,成本更低的云数据库,并适合各种类型的应用程序。

依赖于不同的关系型特性,有以上需求的公司可以更容易地采纳这种技术,并以此降低成本。

类似由Brian Aker发起的Drizzle数据库,它的目标是可伸缩的关系型能力。Drizzle基于MySQL 6.0的原代码,并针对云和网络应用程序进行了优化。现在他们已经从原来的代码中去除了许多功能,并增加了许多新特性:

  • 微内核架构,使Drizzle比MySQL更为模块化
  • 更多接口,如认证和日志记录
  • 多核优化(与MySQL相比)
  • 更少的数据类型
  • 更少的引擎
  • 更少的代码,相对更小并且更易于维护的代码库

Drizzle仍处于Alpha阶段,它为类Unix操作系统开发,目前不支持Windows。

查看英文原文:Is the Relational Database Not an Option in Cloud Computing?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

关于数据库服务器的负载增长问题 by Zhang Yida

为什么不考虑采用 Oracle 11g 或 10g 的 RAC Database 呢?用户可以通过动态增加 Cluster Node 来平行扩展数据库服务的负载能力,无需对现有的硬件作改动。
如果说要解决存储容量的扩展问题的话,也可以采用 ASM(Automatic Storage Management)来动态管理存储。

Re: 关于数据库服务器的负载增长问题 by wen bob

我们说的是WAN上分布的几百几千台服务器这样的集群,Oracle 11g对此是无能为力的,楼上的看来不理解云啊

Re: 关于数据库服务器的负载增长问题 by Zhang Yida

谢谢 Bob 的补充。Cloud Computing 作为一项新兴的构架有许多值得学习和探讨的地方。

然而对于本文以及 Tony Bain 的文中,重点就 Scale Out Capability 来阐述 Key/Value DB 在云应用中将替代 RDBMS,未免有些言之过早。目前的 RDBMS 产品中也有集通常关系型数据库的优越性与可扩展性于一身的,颇具代表性的就是 Oracle Real Application Cluster Database。在维持高度数据整合性的同时实现了接近线性的 Scale Out,并且提供了更高的信赖性——Cluster 中的即使某些 Node 发生故障整个数据库服务也不会因此终止。有兴趣的朋友可以去了解一下更详细的内容。

如果云的应用中有某些需求是 RDBMS 怎么也无法实现的,我们倒是非常有兴趣来了解一下。

对应用程序的亲和性似乎更应该成为 Key/Value DB 在云应用中的亮点。对此我觉得 MS SDS 的做法颇值得借鉴,即在 RDBMS 基础上架一层抽象的 Key/Value 数据服务。这一点 Bain 在其文章最后也提到了。

让不同的技术做各自最擅长的事,然后将他们有机地整合起来,或许是最可行的解决方案。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT