NuoDB
by NuoDB

我们能终于找到数据库圣杯吗?

此3件博客系列最初是如此 云计算杂志.

世界在交易数据库系统上运行。每个企业都依赖于它们,我们每天都多次与他们互动。此外,世界需要在交易数据库系统上建立数千个更多的应用来支持下一代Web。没有任何争议的存在,但有一个问题:交易数据库系统顽固地拒绝加入21世纪。

世界其他地区正在向数据中心架构迁移,这些架构预测成千上万的商品机器,商品网络和“扩展”设计。这些数据中心将提供按需计算服务,可根据需要立即增加或减少对应用的容量。只需根据需要添加更多Web服务器,应用程序服务器或存储服务器很容易。不幸的是,在计算堆栈中的每个其他级别工作,它不适用于数据库层。数据库系统是扩展系统,而不是扩展系统。

传统上,如果您希望交易数据库更快,则需要更大的机器。时期。解决这个问题是数据库世界的圣杯。与其他圣杯一样,很多人都放弃了任务。但是有一套新的想法,可能只是改变游戏。有三种常见的设计模式用于构建分布式事务数据库(“共享磁盘”,“共享”和“同步提交”),现在具有称为耐用分布式缓存(DDC)的新思想。这是我们在诺德布的第四种方式真的很兴奋。但在谈论之前提供一些背景是有意义的。

数据库事务非常强大。人们经常要求我命名真正需要事务的应用程序,我的回复通常会要求他们命名一个真正需要数据库的应用程序。这两种情况都是错误的问题,因为你明白并不真正需要交易,数据库,编译器,操作系统等,而不是你真正需要雨伞。缺乏一些这些东西可以解决,而其他工具和子系统可以被一个基本的家庭烘焙食物代替。使用数据库事务的原因不是您无法在应用程序中找到一些kludgy的方式,但它大大简化了系统的语义,特别是涉及卓越条件。简化可降低成本,降低实施时间并提高最终产品的质量和可维护性。在几乎任何应用中,交易担保都非常可取,但我们有时会考虑计算(和美元)的成本太高。最好的答案不会更加谨慎地使用事务系统,而是在技术创新中允许我们更普遍地使用它们。

为了说明这种情况,让我们举个例子,你和我都希望同时从同一账户中取出最后一个1000美元。帐户余额存储在酸兼容的事务数据库中,因此数据库系统必须确保我们大多数人成功。如果两个事务必须在同一台计算机上运行,​​则有多种方法可以执行此操作。无论使用哪种算法,它都有效地订购了交易,以便我们判断我们的哪个人才能达到1,000美元。那个有效。一个很酷的事情是如果我得到更大的机器,它将更快地工作。

但如果我不想买一个更大的机器怎么办?如果我想通过使用第二台小机器加速它怎么办?即使在我们非常简单的例子中,您也可以快速查看问题。我们每个人都有代表我们的交易,试图减少1000美元的账户余额1000美元。如果您的交易在不同的机器上运行,那么我们将每个都有更多的机械资源分配给我们,并且可能期望更快,但我们的机器必须协调。别无选择,因为这两个事务都没有允许成功。原则上,每个计算机都需要获得更新账户余额的值的许可。这涉及网络通信,并且比在单台机器上协调两个交易的协调级数更昂贵。在许多情况下,第二种机器实际上可以减慢您的应用程序,因此传统的答案只是获得更大的机器。

更大的机器策略远非理想。显然,您的大机器有多大的限制。您必须希望您的新网站不会吸引太多的活动用户来掌握最大数据库服务器。除了按需容量外,扩展系统还使其他非常诱人的承诺。除了与商品硬件和/或云部署有关的更具吸引力的基础经济学之外,它们还允许您为负载要求提供容量,并可能提供更好的冗余和可用性模型。所以我们被引导到这个博客系列的主题,即设计真正分布式的事务数据库系统的替代模式是什么?

在这个系列的其余部分(第二部分 & 第三部分),我将阐明我对四种替代模型的看法:共享磁盘,共享无线,同步提交和持久分布式缓存(DDC)。