tidb后面如何面对阿里xdb和polardb?

个人感觉tidb架构上落后xdb和polardb,也许有失偏颇,望专业人士解惑一下,谢谢


设计理念其实不太一样。

TiDB 的设计目标排在第一位的是扩展性和可用性,希望在架构上尽可能减少对硬件和特殊 API 的依赖,当然了,我也不会排斥新的硬件带来的提升。

整个分布式数据库的技术方向现在分成两个流派,一个是类似的 Aurora 的「共享存储」型(具体就不展开了,资料很多),还有一个流派是 Spanner 为代表的纯 Share nothing 的架构,我觉得并没有谁比谁高级和落后,Share nothing 的架构在单集群更大规模下的使用场景我觉得会更好,而 Aurora 的架构更适合云(多租户 + 更好的兼容性)。

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

嘛~跑车的引擎是很先进,但是去穿越大沙漠的话,我还是相信我自己能修的引擎。


利益相关:

POLARDB是cloud native设计,在成本、性能、稳定性、复杂的云环境和生态对接上花了很多的笔墨,特别是在针对银行业核心数据库的低延迟、高稳定、高可靠、容灾场景上有深的理解,架构是为了业务和技术实现,所以一开始的目标就很不一样。

POLARDB作为更大更强的MySQL是目前服务大量云数据库用户的RDS的延续,在百T级别的存储上模糊了OLTP和OLAP的界限,Oracle关键特性兼容的能力模糊了主流数据库的边界,低延迟的特性在实时的场景普适性会更强大,和开源社区的合作让更多人可以参与进来。

POLARDB我更愿意理解是个完整的数据库体系而不是单一产品,POLARDB for MySQLPGMongoDB很快都会问世。

热烈欢迎大家一起开创下一代数据库的未来!


关公战秦琼


利益相关,X-DB项目成员。

看来大家对X-DB了解还不多。由于阿里巴巴业务复杂、数据量巨大,而且存在双十一这样的极端场景,这些都对数据库有极高的要求。X-DB的设计的目的便是要解决这些世界级的问题。简单介绍下,它的能力主要包括:

既然是分布式数据库,很强的水平扩展能力是必须要有的,毕竟业务增长很快。

在阿里巴巴业务场景下,高可用也是必须要达到的(5个9)。

全面100%兼容MySQL,对用户来讲,跟使用MySQL一模一样。这一点至关重要,业务无缝切换。

超高性能,我们自研的新一代的存储引擎X-Engine,目前sysbench标准化测试下做到了65万的TPS,相同硬件下是InnoDB最优性能(11万左右)的6倍左右。当然这个我们有信心最终做到10倍以上。而且磁盘占用在InnoDB的30%。 高性能低成本也是X-DB的一大优势。

数据强一致,基于我们自研的X-Paxo,保证跨AZ、跨城副本之间强一致,并且性能损失很小。

其实,今年双十一已经上X-DB 1.0了,零点32.5万笔/秒的峰值,X-DB交出完美答卷,这么大压力下不仅平稳过渡,而且是在跨城强一致的情况下。


水平不够,不谈技术架构,只说脑补的感受:认为Polardb更先进一些:

  1. 有足够的业务打磨产品:无论是产品成熟度上还是架构挑战上。
  2. 已经开始采用先进硬件解决瓶颈问题,降低用户使用成本(如果阿里没骗我的话。。。。)

另外还有一个对tidb不利的地方:

未来大多数数据库都会运行于(公用)云上,目前公有云是大厂逐鹿的天下,大厂们还都有自己的数据库产品(甚至为了产品闭环,数据库可以少/不赚钱),tidb得远远胜于这些亲儿子才能有机会。

这个tidb该如何应对呢?


架构上tidb比aurora是先进的,所以也比polardb先进。xdb没了解过。


推薦閱讀:

資料庫設計必須滿足到第三範式嗎?
SQL新手請教一下設計表的問題?
釘釘數據存儲使用阿里雲的表格存儲,如何設計資料庫?
mysql分表策略?
如何配合使用NoSQL和SQL,特別是原子性問題存在的時候?

TAG:数据库设计 | PolarDB |