分布式数据库选型

本文探讨了分布式数据库的两大派别,以Google Spanner的Share nothing架构和AWS Aurora的共享存储型架构为例进行比较。Spanner提供自动分片、分布式事务和弹性扩展,而Aurora保持高兼容性并注重云环境的适应性。尽管各有优势,但选择应基于应用场景,如物联网、交易关系、分析关系、KV分析、KV文档和HTAP等不同需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分布式数据库也有人称之为new SQL数据库,主要有两派:一个是以Google Spanner为代表,一个是以AWS Auraro为代表。

 

1、Spanner 的 Share nothing 架构

        Spanner 是 shared nothing 的架构,内部维护了自动分片、分布式事务、弹性扩展能力,数据存储还是需要 sharding模式,plan 计算也需要涉及多台机器,也就涉及了分布式计算和分布式事务。

        同类型的开源产品,有TiDB、CockroachDB、OceanBase等;这三个产品可以说目前话题量不相上下,TiDB属于国产PingCAP公司的、CockroachDB比TiDB早出来一年、OceanBase阿里团队的,2017年双11交出4200万/秒的处理能力。

 

2、Auraro 共享存储型架构

       Auraro 是共享存储型架构,主要思想是计算和存储分离架构,使用共享存储技术,这样就提高了容灾和总容量的扩展。但是在协议层,只要是不涉及到存储的部分,本质还是单机实例的 MySQL,不涉及分布式存储和分布式计算,这样就和 MySQL 兼容性非常高。

      同类型的产品,有国内阿里的PolarDB,只作为云产品提供服务,不开源

 

3、比较

        我觉得并没有谁比谁高级和落后,Share nothing 的架构在单集群更大规模下的使用场景我觉得会更好,而 Aurora 的架构更适合云环境(多租户 + 更好的兼容性)。

       我一直认为大规模分布式系统本身是特别脆弱的,架构的先进与否并不重要,甚至某些情况下性能(延迟)都是可以放弃的。普适性、高质量的实现、完备且极端的测试在我看来更加重要。

 

4、以应用场景来区分

       a、物联网方向:时序数据库产品,满足IoT数据的收集、存储和统计。时序数据库产品也是现在对内存数据库产品冲击最大的。例如:InfluxDB、Kudu、kdb、OpenTSDB;

       b、交易关系方向:替代传统交易关系型数据库产品Oracle/DB2等满足不了海量吞吐、海量并发、海量交易、海量存储的在线交易业务场景。例如:蚂蚁金服Oceanbase、腾讯TDSQL、热璞HotDB、中兴GoldenDB、开源MyCAT、开源Cobar。

      c、分析关系方向:解决结构化数据存储和数据分析的业务场景,例如:Greenplum、Vertical、Gbase8a等。不过这块收到KV分析型产品巨大的冲击;

     d、KV分析方向:Hadoop、Spark是当下的基石,国内国外较多公司都是在其基础上再做二次研发,尤其是实现兼容SQL标准语法,已迎合业务场景和研发人员。

     e、KV文档方向:解决在线文档类型的非结构化数据存储和数据处理,例如:MongoDB、巨衫SequoiaDB,不过也都在拼命地在兼容SQL标准语法。

     f、HTAP:交易分析混合型分布式数据库产品,从技术原理的角度而言这是没有理论创新支撑的方向,只是我们技术人员内心美好的愿望,例如:国内TiDB、国外Spanner/F1(无人知晓到底长啥样,体验如何)。

     每种路线都会有自己的特定算法、特定架构和产品特征,很难有一款产品能全部兼容且性能很棒。



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值