前阵子对云原生系统软件的主题做了一些研究思考,觉得有了比较清晰的思路后,我开始进一步研究业界对这个问题的看法。之前我曾经提出一种观点,在云时代应该重点考虑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/

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

  1. oracle 调整shared pool,Oracle设置Shared Pool的大小

    在oracle 10G或者11G版本中,如何合理设置shared pool大小,对oracle数据库的性能影响很大. Shared Pool的大小设置规则如下: 1.查到shared pool设置的合 ...

  2. 再见,数据库!MySQL千亿数据分库分表架构,堪称惊艳!

    孙玄,江湖人称"玄姐",前58集团技术委员会主席,前转转二手交易平台首席架构师.今天想跟你聊点儿企业里那些年薪百万的架构师,他们的架构设计思维是如何升级的. 话不多说,咱们直接来聊 ...

  3. 典型数据库架构设计与实践 | 架构师之路

    转载自微信公众号[架构师之路] 本文,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以"用户中心"数据库为例,讲解数据库架构设计的常见玩法. ...

  4. 数据库泰斗王珊:努力创新,精心打磨优质的数据库产品

    2022年7月15日,2022金仓创新产品发布会在北京召开.本次发布会的主题是"稳超胜算.历9弥新",会上,我国数据库泰斗.原人民大学信息学院院长.原中国计算机学会(CCF)副理事 ...

  5. 对数据库要求最苛刻的金融行业,这套架构凭什么异军突起?

    导语 | 在金融行业IT系统国产化的大背景下,国内金融行业开始推动IT基础设施国产化,逐渐摆脱对于传统IOE架构的依赖.微众银行自成立之初,就放弃了传统IOE架构路红,结合腾讯金融级分布式数据库TDS ...

  6. 金仓数据库KingbaseES高可用概述(高可用性需求分析与架构确定)

    本节将提供一个可以有效评估高可用性需求进而选择合适架构的步骤,步骤包括: 3.1. 调研高可用性需求 ¶ 3.2. 确定高可用性需求的方法 ¶ 3.2.1. 业务影响分析 ¶ 3.2.2. 停机代价  ...

  7. 十位数据库专家:如何透过性能优化看系统架构的合理性

    十位数据库专家:如何透过性能优化看系统架构的合理性 本文首发于一年多以前,由当时十位民生银行的数据库专家合著,系统地从架构的角度对数据库性能问题进行分析解读b,是多年项目开发和运维工作的经验总结.文章 ...

  8. 想从单体架构演进到分布式架构,SBA 会是一个不错的选择

    本文分享自华为云社区<从分层架构到微服务架构(五)之服务化架构>,作者:元闰子. 前言 从本文开始,我们进入了<从分层架构到微服务架构>系列中分布式架构的介绍,本文要介绍的是服 ...

  9. 第04章 逻辑架构【1.MySQL架构篇】【MySQL高级】

    第04章 逻辑架构 前言 推荐 第04章 逻辑架构 1. 逻辑架构剖析 1.1 服务器处理客户端请求 1.2 Connectors 1.3 第1层:连接层 1.4 第2层:服务层 1.5 第3层:引擎 ...

最新文章

  1. PAT A1098 堆排序
  2. hardmard积 用什么符号表示_简明算术教程——第四章 线性代数——第1节 矩阵环(二)...
  3. “不允许对64位应用程序进行修改”的解决方法 --“Changes to 64-bit applications are not allowed.”
  4. 面试官绝杀:系统是如何支撑高并发的?
  5. RPM 软件包名中的 el5、el6、el7 是什么?
  6. Tomcat10 端口修改 Linux 环境
  7. [CSS3] touch-action设置移动端拖动行为
  8. [翻译]Chameleon介绍(6) : 动作控件
  9. HTTP Server:从头开始构建简单HTTP服务器需要了解的所有内容
  10. 电脑版微信多开显示网络代理服务器,电脑版微信多开办法,超级简单,一看就会...
  11. Linux 运维工程师职业技能要求
  12. Q-learning原理及其实现方法
  13. 星形杨辉三角形c语言,triangles_triangles是什么意思
  14. android碎片实验报告,三年级下册科学实验报告模板1篇
  15. 计算机论文的摘要和关键词是什么意思,论文中的摘要和关键词是什么?
  16. paypal余额限制_如何将您的PayPal余额转换成可以在任何地方消费的借记卡
  17. 上海浦东新区计算机学校排名2015,2020上海市浦东新区初中学校排名榜单
  18. Java(35):Java Base64编码和解码工具类
  19. IIS中,文件打开报错404的解决办法
  20. 【Guacamole中文文档】二、用户指南 —— 3.用Docker安装Guacamole

热门文章

  1. CREO:CREO软件之工程图【布局】之一般视图、投影视图、详细视图、局部剖视图、向视图、局部放大视图、旋转剖视图的简介及其使用方法(图文教程)之详细攻略
  2. 弱引用WeakReference和软引用SoftReference
  3. iTunes plus aac音乐下载的好去处
  4. PP越狱助手官方最新版 v1.6.0 绿色版
  5. python爬虫工程师 成长之路八 Selenium WebDriver
  6. IDEA2018.1.4 破解教程
  7. 苹果索要30%分成:iPad新媒体焦虑控制权
  8. 爬取虎牙游戏主播人气分析实战
  9. MySQL函数(经典收藏)
  10. 如何做好APP性能测试?