什么是分布式SQL( 二 )


2.具有本地故障转移与修复的超强弹性
在分布式SQL数据库中,我们使用基于分片(per-shard)的分布式共识复制(consensus replication)等技术,来确保每个分片(而不是每个实例)在出现故障时,仍可保持高可用性 。
如此,基础架构一旦出现故障,它始终只会影响到目标数据的某个子集(也就是那些被leader分割开的碎片),而不会影响到整个集群 。并且,由于剩余的分片副本能够在几秒钟之内自动地选出新的leader,因此,集群会在出现故障时表现出一定的自我修复能力 。
此外,这些发生在后台群集配置上的更改对于应用程序来说是完全透明的,它们可以照常运行,而不会出现任何中断或是性能的骤降 。
3.具有按需进行水平写入的可扩展性
《如何在分布式SQL数据库中进行数据分片》一文(https://dzone.com/articles/how-data-sharding-works-in-a-distributed-sql-datab),说明了开发人员通常是如何在分布式SQL数据库中实现自动化数据分片的 。无论有新节点的加入,还是现有节点的删除,分片都将会在所有可用节点之间保持自动的平衡状态 。
目前,那些需要处理事务的应用程序都具有可扩展能力的微服务 。它们在不需要新增基础架构的基础上,完全可以直接依赖于内存中的缓存(无需从数据库中读取请求,而保留对于写入请求的处理)或NoSQL数据库(虽然能够扩展写入操作,但是无法保证ACID) 。
4.针对地域分布式数据的低延迟性
正如《构建具有低延迟的云原生、以及地域分布式SQL应用的9种技术》一文(https://dzone.com/articles/9-techniques-to-build-cloud-native-geo-distributed)所强调的那样:分布式SQL数据库可以提供多种技术,来构建地域分布式的应用程序 。这些技术不仅有助于对于区域性故障实现自动化容灾,而且还能够在一定程度上通过让数据更接近来自本区域的最终用户,以实现更低的数据延迟性 。
原文标题:What Is Distributed SQL? ,作者:Sid Choudhury

【什么是分布式SQL】


推荐阅读