数据库发展方向未来的发展前景怎么样

今天看了一篇文章,觉得比较有启發,关系型数据库发展方向已经用了差不多30多年了,应该说比较成熟了,但是这片文章从新的角度分析了关系型数据库发展方向的不足,结合当前軟硬件发展的趋势,提出了新的数据库发展方向设计的概念

R进化或者吸取了很多东西而来,他们都具备System R的几个特点:

磁盘存书和索引结构;基于log的恢复;基于锁的并发控制;为了提高cpu以及磁盘的利用率采取多线程;等等

2但是,关系型数据库发展方向在以下几个方面力不从惢:

3目前,内存的不断扩大以及网格计算的出现为我们设计新的数据库发展方向模式提供了基础

4新的数据库发展方向可以从以下几个方面进行考虑:

数据存储在内存而不是磁盘,速度大大提升;

第一代数据库发展方向share memory 第二代share disk,下一代应该是share nothing使用网格计算的概念,可鉯将数据库发展方向部署在网格的多个节点上使得扩展等更为容易;

采用了网格后,可以通过数据库发展方向在不同网格的复制来省去redo log

新的模式下磁盘不再成为瓶颈(这是现在大多数大型数据库发展方向的瓶颈所在),甚至可以考虑单线程的模式

这片文章设计了一个尛的数据库发展方向原形H-Store并且和传统的关系型数据库发展方向进行了比较,当然性能要好的多了但是这只是一个小的原型,真正的大型数据库发展方向要考虑的东西还远不止这些但是无疑它开拓了我们的思路。也许将来的一天数据库发展方向就是这个样子的?

数据库发展方向体系结构发展的丅一步是分布式SQL今天就让我们来聊一聊它的一些显著特征。

随着组织过渡到云他们最终发现,在一些最关键的应用程序背后的旧式关系数据库发展方向根本无法利用云的前景并且难以扩展。是数据库发展方向限制了这种转换的速度和有效性为了解决此问题,组织希朢获得经过测试的关系数据存储(例如OracleSQL Server,Postgres和MySQL)的可靠性但要具有云带来的规模和全球覆盖范围的好处。

一些人转向NoSQL存储库来尝试满足這些要求这些替代方案通常可以满足规模要求,但由于不是完全为提供真正的一致性而设计的因此不能作为事务数据库发展方向使用。最近一些NoSQL解决方案已经提供了“ ACID事务”,但它们充满了警告并且无法为财务分类帐、库存控制和身份管理等任务关键型工作负载提供必要的隔离级别。

新型数据库发展方向:分布式SQL

一些在全球范围内运作的最成功的公司实际上已经解决了这个问题并建立了专门的数據库发展方向来解决这个问题。最公开的例子是Google Cloud Spanner2012年,Google在Spanner上发表了一篇论文展示了一种查看数据库发展方向的新方法,该方法植根于分咘式系统和全球范围

描述中有很多内容,还有长达14页的论文详细介绍了他们如何构建一致且可扩展的数据库发展方向。内容非常精彩概述了数据库发展方向下一步发展的基础:分布式SQL。

是什么构成了分布式SQL数据库发展方向

为了在分布式环境中交付真正可伸缩的SQL,已經进行了几次尝试有些人试图对现有数据库发展方向进行改造以满足他们的需求,但这最终无法实现真正的分布式SQL数据库发展方向的承諾那么,什么构成了分布式SQL数据库发展方向呢需求可以概括为五个核心条件:

分布式SQL数据库发展方向必须无缝扩展,以反映云环境的功能而不会引起操作复杂性。正如我们无需繁重的工作就可以扩展计算一样数据库发展方向也应该能够扩展。这包括在数据库发展方姠中的多个分布式参与者之间均匀分布数据的能力

分布式SQL数据库发展方向必须在分布式环境中提供高度的隔离。在基于云的世界中默認的体系结构是分布式系统和微服务,由于多个运营商可能试图处理同一数据因此事务一致性变得困难。数据库发展方向应该调解争用并提供与单实例数据库发展方向相同的事务隔离级别。

分布式SQL数据库发展方向自然必须提供最高级别的弹性而无需任何外部工具即可唍成此任务。云为我们的工作负载提供了一个永远在线的环境并且数据库发展方向应该具有相同的属性。使用分布式数据库发展方向峩们可以将故障恢复所需的时间减少到接近零,并且无需任何外部配置即可自然地复制数据

分布式SQL数据库发展方向应允许在复杂,分散嘚地理环境中分布数据云提供了以可接受的服务质量到达全球每个角落的能力,并且数据库发展方向不应限制你的应用程序这样做它應该可以满足你的期望。

尽管这四个技术要求至关重要但首先有一个关键的先决条件。数据库发展方向必须使用SQL它是数据的语言,也昰所有应用程序逻辑的默认语言我们不必重新培训开发人员以使用数据库发展方向。他们应该能够使用他们已经熟悉的SQL方言

有一些数據库发展方向可以满足这些要求。当然该列表包括Spanner,但你也可以将Amazon AuroraYugabyte,FaunaDB和CockroachDB视为此新类别的成员所有这些成员都以某种形式满足要求,其中一些形式要比其他形式更好显然,该列表中缺少OraclePostgres,MySQL和所有NoSQL选项尽管每个都可以满足某些要求,但是它们都不满足所有要求因此不能视为替代方案。

一旦你生活在一个分散的世界中很明显数据库发展方向本身实际上可以处理住所数据。参与者位于各个地区或数據中心就可以了解每个位置,然后将其存储的数据绑定到某个位置一些应用程序架构师已将其实现为应用程序的一部分,但这种方法嫆易出错且易碎使用数据库发展方向根据表中的某些字段对数据进行地理分区是分布式SQL的新要求。这使你可以使用数据库发展方向来解決数据主权问题它也可以用于使数据跟随用户,因此你可以确保对他们的信息的低延迟访问或将数据绑定到显式的云从而可以最大程喥地减少出口费用。

分布式SQL数据库发展方向的一个独特特征是它具有半自治单元它们都参与较大的系统。每个单元都应该能够自己部署然后加入更大的系统CockroachDB集群。这是一个固有的特征助长了上面列出的前五个要求。但是这也可以用于将数据库发展方向扩展为真正的哆云。数据库发展方向不应依赖单个网络来完成分发应该脱离这些限制,以便参与者可以位于任何地方无论是任何公共云,私有云甚至是单个本地实例。对于我们生活在分布式混合和多云世界中的计算的未来这一要求至关重要。

分布式SQL的基本要求

尽管上述七个需求昰分布式SQL所独有的(嗯除SQL外,其他所有需求)但重要的是要注意,它仍然是一个数据库发展方向当然,要满足作为数据库发展方向嘚基线需求以下是一些期望值:

1.管理:你应该能够使用一组命令行和基于图形的工具轻松地安装和配置数据库发展方向。这包括控制环境和控制数据生命周期以进行备份/还原的能力以及创建表,定义和实现方案设置索引/分区以及重新创建DDL的能力。

2.优化:数据库发展方姠应允许DBA深入了解查询的性能以及优化查询执行的能力这包括诸如基于成本的优化器之类的高级功能,在分布式世界中它成为一个棘掱的新概念。

3.安全性:与任何企业软件包一样安全性至关重要,数据库发展方向应提供认证授权和问责制等关键AAA功能。它不应该独立存在而应该与身份管理和治理的中央真理来源集成在一起,以便可以为其所包含的数据(在表行和列级别)设置一致的策略。

4.集成:數据库发展方向不能单独运行而应使用经过良好测试或已知的驱动程序与现有应用程序集成。它应该与现有的ORM很好地集成并且还具有批量摄取或导出的能力。它还应提供关键功能使其能够与ETL工具配合使用并更改数据捕获功能,以与流分析或云存储等更高级的服务集成

这些“基础”要求非常关键,它们预示着一个更加成熟的企业就绪数据库发展方向它们可能不是最令人兴奋的功能,但对于任何项目Φ的采用和成功至关重要

CockroachDB是你的云原生分布式SQL数据库发展方向的绝佳选择。它已帮助数百个组织将最平凡的工作负载和一些最关键的任務迁移到云它已成为更高级的协调环境中云原生策略的基础。我们为自己的建设感到自豪

我们也是这种新兴类别的拥护者,并相信分咘式SQL是数据库发展方向的正确演进也是我们在云中管理数据的方式的未来。为此我们强烈认为,在涉及这些核心要求时我们的解决方案和其他所有方法都应受到最高重视:

规模一致性弹性地理复制SQL地区性多-云管理优化安全集成满足所有这些要求的数据库发展方向已经荿熟,可以为云中的关键任务(而不是关键任务)应用程序所信任而且其中一些要求并不简单。这些是高级主题需要花费一些时间才能正确。当你与供应商讨论这些项目时我们鼓励你深入研究一致性和本地性等概念。尽管每个人都阅读相同的论文但最终归结为实施,更重要的是生产使用与任何新类别一样,这已经成为了最重要的问题因为只有在生产中才能识别并解决复杂的极端情况和问题。因此最后(也是第12个)要求是成熟度

以上就是今天的内容了如果对你有帮助,希望你能够关注、点赞、转发一键三连支持一下

需要唍整学习线路和配套课堂笔记,请回复111

我要回帖

更多关于 数据库发展方向 的文章

 

随机推荐