克雷格斯。穆林斯,总统&首席顾问,Mullins
by 克雷格斯。穆林斯,总统&首席顾问,Mullins Consulting,Inc。

什么是弹性的SQL方法?

编者注:这是一份更大的白皮书摘录 克雷格穆林斯 探索数据库缩放选项。你可以下载完整的白皮书 这里.

弹性SQL.:替代,基于服务的方法

到目前为止,我们已经检查了现状,其中提供了使用现有解决方案实现改进的弹性和可扩展性的各种架构替代方案。但是这些方法中的每一个都有一些重要的缺点:共享磁盘需要昂贵的硬件和软件来实现,共享 - 没有要求分区可能与所有应用程序的要求不匹配,并且NoSQL消除酸和通常,SQL。清楚地,需要一种替代方法 - 一种不会尝试解决现有解决方案的缺点的方法。

许多组织希望一个数据库平台,维护行业标准的SQL和酸性的数据完整性,但是使用架构,可根据需要提供灵活性和敏捷性,以根据需要以上下缩放。幸运的是,弹性的SQL数据库系统提供了一种引人注目的服务,以传统的方法脱离客户思维心态。有许多不同的方法来源SQL - 从同步复制的变化,依赖于全局时间戳依赖于使用多版本并发控制的双层方法。由于前者严重依赖于操作的最小延迟,我们将主要关注后者。

有一些方面是弹性SQL方法,使其能够提供可扩展性,同时消除传统方法的许多缺点。

弹性SQL架构的一个例子

考虑例如,拆分事务层和存储层的双层体系结构。这与您在Hadoop中可能发现的内容并不不同,其中计算处理独立于存储。交易层提供内存,在多个服务器上分布的内存,甚至是地理上分散的数据中心。存储层使用一组点对点协调消息来管理事务缓存中不可用的提交处理和访问数据。

这种双层架构可提供酸合规性,但分离数据耐久性(“D”酸中的“酸”)从事务处理(处理酸中的“ACI”)。这种可扩展的架构既不对磁盘吞吐量(如共享磁盘)也不敏感,也不需要显式分区和分片(如同共享)。

因为事务进程与存储过程分开部署,所以它们每个都可以独立于另一个缩放。当吞吐量增加时,即使在新的地域也可以很快启动额外的交易流程。添加另一个事务流程后,系统会验证其进行处理和余额工作负载。这允许无缝缩放以使用不占用的额外事务处理能力。自然数据亲和根据使用模式,超速性能建立在缓存中。如果工作量减少,则可以停止交易进程,系统将重新平衡剩余的运行交易对等体的工作负载。

弹性SQL方法的最大益处是,它提供了具有行业标准SQL的交易一致性和耐用性,并且弹性脱轨简单。

同样,可以启动多个存储过程。这样做的结果是多个,独立,持久的数据库副本。启动新存储过程时,系统会自动将其与活动数据库同步。在弹性SQL的某些部署中,可以管理磁盘I / O以更好地支持密集的修改要求。通过确定每个耐久性对等体(即数据库的子集而不是整体的子集)以及管理有多少数据副本,可以以不可见的方式改进磁盘I / O.

弹性SQL架构

图3。 弹性SQL架构。 

参考 图3. 有关弹性SQL架构的概述。

由于数据可以缓存在一个或多个位置,因此数据需要自制,以确保在所有独立事务和存储层中的一致性。如果对等体需要不在自己的缓存中的数据,则它请从具有它的最近的对等体请求它。只有其他对等体具有所需数据或更新,插入或删除时,才需要磁盘I / O。每个对等体都知道在其自身缓存中存储的每条数据的其他位置,因此可以协调一致性。

在这种体系结构中,可以通过根据需要在线和离线和离线来调整数据库性能,延迟,冗余和可用性,没有停机时间。没有单个对等体完全负责给定的任务或数据,因此任何任务都可能会失败或无故障地关闭,而不会影响服务可用性。

使用MVCC或多版本并发控制启用对系统的读/写访问权限的协调。 MVCC通过将所有数据视为版本化而工作。这意味着所有修改操作都会创建新版本的数据。每个事务过程都将多个版本的任何给定对象的版本缓存,并在关联的事务提交之前使用新版本进行若要。因为数据永远不会改变,所以可以乐观处理更新;回滚只需从缓存中删除待处理的修改。通过在行(或行组)级别的锁管理,数据库可以减少冲突和干扰。只要锁定管理器未固定,它就可以将位置移位为访问模式更改。

弹性SQL方法的最大益处是,它提供了具有行业标准SQL的交易一致性和耐用性,并且弹性脱轨简单。虽然弹性SQL架构存在许多好处,但当然,存在缺点。今天的弹性SQL系统的强度在OLTP工作负载中。也就是说,可以使用弹性SQL进行混合事务分析处理(HTAP);也就是说,通过为每个的单独的交易过程致力于单独的交易过程,同时执行OLTP和实时分析查询而不会互相干扰。由于有不同的架构方法来实现弹性SQL,因此额外的限制是供应商依赖的。

NOODB是弹性SQL数据库系统的示例。其他人包括Google云扳手和蟑螂,它们都依赖于全局时间戳进行一致性协调。在评估弹性SQL数据库系统时,请务必比较和对比SQL功能(并非所有提供SQL的覆盖范围),并评估符合您需求的成功客户使用情况。

表格1 提供共享磁盘与共享除了集群与弹性SQL的功能的摘要,并概述了本白皮书中讨论的三种建筑方法的基本优缺点。

共享磁盘 共享 - 没有 弹性SQL.
适应工作负载的适应性;负载均衡 可以利用更简单,更便宜的硬件 使用更简单,更便宜的硬件来适应更改工作负载;自动负载均衡
高可用性;故障转移 高可扩展性;更多停机时间 持续可用性;弹性失败;用于激活部署的本机支持;滚动升级;高可扩展性
简单的扩展能力  数据分区与缩放不兼容 简单的扩展能力
在沉重的读取环境中表现良好 适用于大容量,读写环境 适用于繁重的读写读写环境
数据不需要分区 数据必须在群集中分区 数据不需要分区,但可以分组为改进的I / O吞吐量

表格1。 共享 - 磁盘与共享 - 没有弹性SQL

下周在TechBlog上,Craig将总结他对数据库可扩展性的调查结果。 

---

克雷格穆林斯克雷格是总统&主要顾问 Mullins Consulting,Inc。, a consultant for datavail.,以及出版商/编辑 数据库网站。他的经验跨越多个行业(银行,公用事业,软件开发,研究和咨询)。

Craig为许多计算机/ IT出版物写作,为受欢迎的文章提供了流行的IT和数据库期刊和网站,包括 数据库趋势和应用, TDAN.Techtarget. 和别的。