当前位置: 首页 > 科技观察

几款优秀的分布式关系型数据库

时间:2023-03-19 17:39:54 科技观察

【.com快译】关系型SQL数据库从20世纪80年代就出现了,用于在大型机或单台服务器上运行。如果你想让你的数据库处理更多的数据并运行得更快,你必须把你的数据库放在一个更大的服务器上,它有更多更快的CPU、内存和磁盘。换句话说,您求助于垂直可扩展性或“向上扩展”。以后,如果需要能够进行故障转移以提高可用性,可以将热备用服务器放在与活动服务器相同的“主动-被动”集群中,通常具有共享存储。需要ACID的四个属性:原子性、一致性、隔离性和持久性来确保数据库事务始终有效,尽管出现网络分区、电源故障和其他错误。对于单个服务器上的数据库来说,遵守ACID的所有四个属性相对容易,但是对于分布式数据库来说,执行它们就有点困难了。最近市场上出现了几种“横向扩展”SQL数据库。更好的是,其中一些数据库可以在不牺牲一致性的情况下处理地理上分散的服务器。由于光速的限制,远程服务器节点比本地节点更新时间更长,但有几种技术可以缓解这个问题,包括使用共识组法定人数和超快网络和存储。通常,您一直在使用的数据库和您要使用的新分布式数据库应该尽可能兼容,以最大限度地减少模式和应用程序切换成本。在简单的情况下,您可以迁移架构和数据,然后只需更改应用程序中的连接字符串。更复杂的是,你需要完成数据转换过程,完全重写存储过程和触发器,大规模重写应用程序的数据层,包括SQL查询。AmazonRDS和AmazonAuroraAmazonRDS(关系数据库服务)是一种Web服务,可让用户更轻松地在云中安装、操作和扩展关系数据库。AmazonRDS支持MySQL、MariaDB、PostgreSQL、Oracle数据库和MicrosoftSQLServer。可以为AmazonRDS数据库配置面向故障转移的同步辅助实例以实现高可用性。不幸的是,您无法从备用辅助实例读取。可以使用MySQL、MariaDB或PostgreSQL只读副本增强读取扩展,但复制是异步的,因此副本的状态可能落后于主实例的状态。AmazonAurora是AmazonRDS中的一项服务,可在快速分布式存储上提供高性能MySQL和PostgreSQL数据库集群。您可以在一个数据库集群中创建最多15个Aurora副本以支持只读查询,并且您可以在多个可用区(AZ)中创建副本以进行全球分布。据亚马逊称,Aurora可以在不改变大多数现有应用程序的情况下提供高达MySQL的五倍吞吐量和高达PostgreSQL的三倍吞吐量。亚马逊还声称更新Aurora只读副本的延迟约为20毫秒,这比MySQL只读副本快得多。AzureSQL数据库AzureSQL数据库是一种完全托管的关系型云数据库服务,可提供广泛的SQLServer引擎兼容性,使您能够动态增加或减少数据库资源。AzureSQL数据库包括创建活动地理副本的选项,这些副本是地理上分散的辅助数据库。同区或异地最多支持4个副库,副库也可以用于只读查询。如果您需要将主数据库故障转移到辅助数据库之一,您可以手动或通过API执行此操作。ClustrixDBClustrixDB现在归MariaDB所有,是一个横向扩展的集群关系HTAP(混合事务/分析处理)数据库,设计有无共享架构。ClustrixDB主要与MySQL和MariaDB兼容。当我查看ClustrixDB时,该产品不支持空间扩展类型和全文搜索;这两个功能在以前的版本中仍然缺乏。将节点添加到ClustrixDB可以扩展读取和写入。ClustrixDB允许跨多个区域部署集群,以在计划外区域故障期间提供容错能力。在独立实验室运行的测试中(但不是《InfoWorld》),ClustrixDB能够在90%读取和10%写入的负载下以15毫秒的延迟每秒处理40,000个事务,为电子商务提供网络星期一可扩展性.CockroachDBCockroachDB是一个水平可扩展、兼容PostgreSQL的开源分布式SQL数据库,由熟悉GoogleCloudSpanner的前Google员工开发。CockroachDB借鉴了Spanner的数据存储系统设计,并使用Raft算法在其节点之间达成共识。CockroachDB不需要GPS和原子钟来同步Spanner。CockroachDB基于事务一致性键值存储系统RocksDB。CockroachDB背后的主要设计目标是支持ACID事务、水平可伸缩性和(最重要的)生存能力,因此得名。CockroachDB默认使用可序列化隔离模式,这优于大多数其他数据库实现的隔离机制。当我在2018年初测试CockroachDB时,它的JOIN性能不是很好。这一点已经解决了。CockroachDB支持跨多个可用区的集群,同时在谷歌云平台和AWS上提供完全托管的云数据库集群。GoogleCloudSpannerGoogleCloudSpanner是一个托管的分布式数据库,具有NoSQL数据库的可扩展性,同时保留了SQL兼容性、关系模式、ACID事务和外部一致性。Spanner看起来像是颠覆了CAP定理。Spanner是分片的,全局分布的,复制的,并使用Paxos算法在节点之间达成共识。Spanner使用两阶段提交来确保强一致性,但将Paxos组视为事务的成员。每个Paxos组只需要一个法定人数,而不是100%的成员。在Google内部使用时,Spanner的可用性超过五个九,即超过99.999%,这意味着每年停机时间少于5分钟。这足以让大多数程序员通常不必费心编写代码来处理Spanner可用性故障。Spanner使用GoogleCommonSQL,一种ANSI2011SQL的方言。通用SQL与PostgreSQL、MySQL、SQLServer或Oracle数据库使用的任何SQL方言都不完全相同,数据类型略有不同,数据操作方面也大不相同。原标题:最好的分布式关系数据库,作者:MartinHeller