Q&A:数据库基础架构与现代应用程序的匹配之道

日期: 2016-04-10 作者:Beth Pariseau翻译:邹雅玲 来源:TechTarget中国 英文

Jim Starkey曾经编写过至今都在使用的关系数据库,今天他将跟我们一起讨论,为什么要开始新的设计方案。 数据库传奇要追述到支持现代扩展应用程序的那个阶段。 Jim Starkey大学毕业后,作为见习生参与了ARPANET数据计算机的设计工作,为Digital Equipment Corp设计出一些早期的关系数据库,为MySQL开发出Falcon数据库存储。 在SearchDataCenter的一次采访中,Starkey解释了为什么传统交易数据库和新型NoSQL设计无法达到支持现代应用程序的要求,以及启动和NuoDB是如何改变数据库基础架构的。

应用程序是如何改变的?是什么原因促使了数据库……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Jim Starkey曾经编写过至今都在使用的关系数据库,今天他将跟我们一起讨论,为什么要开始新的设计方案。

数据库传奇要追述到支持现代扩展应用程序的那个阶段。

Jim Starkey大学毕业后,作为见习生参与了ARPANET数据计算机的设计工作,为Digital Equipment Corp设计出一些早期的关系数据库,为MySQL开发出Falcon数据库存储。

在SearchDataCenter的一次采访中,Starkey解释了为什么传统交易数据库和新型NoSQL设计无法达到支持现代应用程序的要求,以及启动和NuoDB是如何改变数据库基础架构的。

应用程序是如何改变的?是什么原因促使了数据库革新的?

Jim Starkey:应用程序通常会出现以下问题,尤其是移动应用程序,开发商即将推出20-30个测试应用,突然发现下周他们的用户会激增到1000万名。要想解决可扩展性问题是相当复杂的。只要你能够将其扩展到现有数据库系统并且可以在独立机器上完成运行的程序,那么你就算成功了。但是一旦超过了该范围,数据库系统就不会起到太大的作用了。可扩展性问题随后就会影响到应用程序的开发人员,而该问题又不是开发人员所擅长的。所以当他们试图安抚所有用户时,会突然发现存在巨大的人为障碍。

我们想要使用NuoDB创建一种非常熟悉的、符合标准的和带有标准接口的关系数据库系统,开发人员可以利用接口在NuoDB周围创建应用程序。关系数据库系统创建完成后,我们可以将其公之于众,并部署到计算机中,然后发现更多的性能。应用程序的开发人员不必担心扩展性问题,也不必返回重新定义应用程序分区或者通过分区来更改智能轨迹。他们可以专注于那些对企业成功非常重要的事情,该数据库具有很好的自我维护功能。

对于现在的NoSQL数据库,您还觉得存在哪些不足之处呢?

Starkey:当应用程序与数据库系统结合时,会出现这样一个问题,‘在哪里可以找到智能轨迹?’。在应用程序中,还是数据库系统中?你会让数据库会出现元素位置问题吗?现有哪些索引,用户还想要哪些索引,回去后你需要哪些索引?或者,你必须将这些添加到应用程序中吗?

典型的数据库系统属于高层级的系统:给出SQL查询,会梳理清楚如何做到这一点,并将查询结果反馈给你,同时还可以与系统中的其他用户进行互动沟通,因此,你就不必担心这些问题。NoSQL应用程序非常迟钝。它属于“键值”存储,实际上就是,你有一个主键,并将这个主键赋到存储中,随后你会得到BLOB函数。那么什么是BLOB函数呢?这是你自己需要弄清楚的,而不是数据库帮你梳理清楚。数据库也不能为你做的太多。购物手推车非常方便实用,但是它不可能解决其他问题。

NuoDB是如何让现代应用程序变得与传统数据库不同的呢?

Starkey:作为标准的SQL解决方案,建立应用程序的方式并不会使该系统与其他关系数据库管理系统产生太大的差别。主要差别在于范围不同。如果在独立设备上运行Oracle,并且你已经掌握SQL设备相关技能,切换到Oracle RAC,随后你就可以获取更多的性能。但是,当耗尽时,你就大功告成了。有了NuoDB,不需要改变应用程序扩展性,你就可以直观的感受到书库看应用程序设计,而你需要仅仅是插上更多的计算机。

该模型是如何处理一致性问题的?

Starkey:MVCC(多版本并发控制)的工作方式是,当数据库存储记录后,它会将交易号存储到该记录中。如果有人认想要修改这个记录,可以保存旧版本,在同一个位置储存一个新纪录,使用一个新的ID链接到旧版本中。当工作开始时,它会追踪同一时间所有活动的状态,因此,当你看到记录时,可以看出启动时该记录是否做出过承诺。如果没有做出承诺,那么一旦开始,它便会流向旧版本,进行应用测试,直到,找到与开始时一致的记录版本。它并不会锁定记录。读者不会锁定编写者,同样,编写者也不会锁定读者。

NuoDB是如何通过新的方式来应用MVCC的呢?

Starkey:NuoDB与其他关系数据库系统之间的区别在于,其他数据库系统是基于磁盘页面和磁盘文件的,而NuoDB则不是。SQL引擎会在我们所说的原子上分层,形成了分布式对象,集群的原子中会有许多实例。它们互相熟知,它们可以彼此复制,这就是分布式对象。在数据对象内部便可以找到记录,它可以保持对旧版本和新版本的追踪记录。当你通过事务访问原子时,它可以指出你开始的是哪一个版本,这就是你所看到的那一个。

真正让人感兴趣的是,在磁盘文件周围设计数据库系统,并且磁盘文件还仅仅存在于一个地方。当你将其移动到一个地方时,它并不会自动流向其他地方。但是,对于分布式对象来说,每件事情都是一致的,它们也会自动复制其他对象。

当你在NuoDB集群中插入新的节点时,就如同在于其他人进行了一次“加密握手”,并且还会说‘这是你的主目录,拿走吧’。在目录中,每个人都对原子非常了解,谁有原子,在哪可以找到复制版本,都一目了然。偶尔,他们会撞击彼此,并且知道都有谁做出了回应。机器超过负载量、运行缓慢或者在世界另外一端都不重要,只要知道碰撞返回需要多长时间就可以了。因此,某个节点需要访问原子时,需要知道谁拥有该原子以及挑选出一个相应最多的,很有可能是同一个架构的另一个节点,并且还要说‘与其他人一样,给我一个副本。’这种思路很简单,但是却非常有吸引力。

未来会是什么样子

在本次采访的第二部分中,Starkey与我们探讨了数据库和可扩展应用程序的未来前景,将其与SQL模型分离开来。