查看原文
其他

数据库泰斗DeWitt:Shared-nothing架构落幕,Shared-storage架构归来

风轻扬 冷技术热思考 2024-04-14

前阵子对云原生系统软件的主题做了一些研究思考,觉得有了比较清晰的思路后,我开始进一步研究业界对这个问题的看法。之前我曾经提出一种观点,在云时代应该重点考虑shared-storage架构,现在发现数据库界泰斗级人物DeWitt也有类似的观察和发现。David DeWitt这位老爷子在并行数据库领域算是泰斗级的存在了,除了图灵奖之外拿奖拿到手软。之前一直在Winconsin Madison,前两年跑到MIT去了,不知道是不是去跟图灵奖得主石破天同学Stonebraker学习怎么搞图灵奖了。DeWitt和Stonebraker一直是好基友。


话说1985年,Stonebraker写了篇文章《The Case for Shared Nothing》,宣称shared-nothing是最好的分布式和并行数据库体系架构。要知道当年这块的研究才刚刚开始,但Stonebraker一篇雄文,居然说中了以后三十多年的大趋势,图灵奖得主真不是盖的。


但是2017年,作为好基友的DeWitt居然出来做了个报告《Data Warehousing in the Cloud: The End of “Shared-Nothing”》,把shared-nothing架构打入坟墓。居然这么打好基友的脸?这情商也太差了,这样石同学还会帮你搞图灵奖吗?另外这智商也捉急啊,Stonebraker 85年发文,15年才得图灵奖,等了30年。DeWitt就算说中了,也还得再等28年,老爷子身体保重啊。


玩笑归玩笑,搞了一辈子并行数据库和shared-nothing架构的泰斗级人物,都说shared-nothing架构过时了,我们得严肃的看待这个问题。


在报告中,DeWitt首先是论证了数据仓库软件需要针对云的特性来设计,做成SaaS服务。DeWitt对比了购买一体机(Appliance)、软硬件都自己搭建(RYO)、在云上搭建软件(RYOC)和SaaS形式的云数据仓库,认为云数据仓库成本最低、部署最快、弹性最高,但是,天下没有免费的午餐,云数据仓库什么都好,就是性能未必好。取决于不同的设计,性能差异可能很大。对于云数据仓库,老爷子接下来对比分析了shared-nothing和shared-storage架构,shared-nothing架构漂亮,可以做local join,性能高。shared-storage架构则可以充分利用云上低价的存储,而且实现计算和存储的解耦,从而实现弹性,但是local join就别想了。DeWitt据此分析了四个有代表性的云数据仓库产品:

1、AWS Redshift:基本上是shared-nothing的架构,只是在S3上也放了一个副本用来做故障恢复。性能是好,但是弹不了。

2、Snowflake:shared-storage架构,数据都放在对象存储上,计算节点的本地存储只用作缓存。架构上没法批评,就是功能太弱。

3、Azure SQL Data Warehouse: 也是shared-storage架构,但是用的是虚拟块存储,这样计算节点就可以独立伸缩。根据产品文档,存储也可以按需伸缩,伸缩的最小单位是1TB。

4、Google BigQuery:shared-storage架构,数据放Collosus(GFS二代),计算做成Serverless架构,没有计算节点的概念。


DeWitt认为Azure SQL DW的设计综合了shared-nothing了shared-storage的架构优势,特别的diss了Snowflake,说Snowflake功能太弱,没有索引等等。但这里有两个问题需要注意。一是要看成本。Snowflake的存储成本是$0.04 / GB.月,Azure SQL DW的存储价格是$0.123 / GB.月,Snowflake的存储成本只有Azure SQL DW的不到1 / 3。二是DeWitt在到MIT之前长期担任微软Jim Gray系统实验室的主任,Azure SQL DW正是他带队研发的产品,对自己产品的评价,未免可能偏心。


shared-nothing和shared-storage架构都是几十年的老架构了,前三十年shared-nothing架构一直占上风,之所以现在风水轮流转,主要是两点原因:

1、云的普及使得对弹性成为普遍需求。原来不是没有弹性需求,而是不基于云,大家都搞不定。现在你搞不定,别人能搞定你就输了。而shared-storage架构计算存储是分离的,计算部分的弹性才能做好。

2、共享存储的成本发生了极大的变化。原来的共享存储主要是EMC等厂商提供的SAN类产品,价格贼贵。现在云厂商提供的云盘既灵活也便宜,对象存储更是便宜。很多技术专家只分析技术,爱说性能多高,不看价格,这是严重不对滴。


DeWitt的演讲PPT地址:

https://massdatatraining.org/2017/02/23/data-warehousing-in-the-cloud-david-dewitt/



继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存