如何评价阿里云新一代关系型数据库 PolarDB？
从架构上来说，我觉得PolarDB很Aurora还是有本质上的差异的。 PolarDB是Share Disk。 Aurora是Share Storage。 可能有同学要说Share Disk和Share Storage不都一样吗，但是我觉得还是有本质区别的。 PolarDB这种ShareDisk架构必须要借助RDMA这种非常强的硬件，否则扩展性就是渣渣。Aurora的路子不一样，通过各种努力来降低网络传输量(Log Structured Storage)，不依赖特殊硬件。 虽然都是计算/存储分离，但是他们也是有本质区别的。Aurora是计算引擎/存储引擎 分离。PolarDB是 计算/存储介质 的分离。 要说哪种结构更好，我认为还是Aurora，而且个人觉得好不少。 不同的架构对系统的影响是： 主要是因为两个checkpoint之间的数据访问，需要在读节点的buffer中重做。如果在一个读请求向读节点发起时，缓存命中了，问题可能并不严重，因为读节点可以传统主备方式一样根据log来redo内存页。但是如果在读节点缓存中没命中，那可能需要从上个checkpoint来重放这个页的所有修改。如何来redo的问题。我不清除polardb的实现细节是啥，但是这两个问题是不可避免的，而且会直接影响到读节点的性能和读节点的扩展性。 相对来说，Aurora在这方面的处理要灵活的多，Aurora直接在存储节点上来redo。读节点缓存可以采用传统的主备方式来redo，也可以直接从存储节点上读取最新数据（特别是针对不命中的数据）。  我仅从架构上来判断的话，感觉Aurora的架构更优。当然有可能实际情况会有出入。 ================= 补充：我个人觉得Aurora的精髓是Log Structured Storage。显然PolarDB采用的不是这种方案。华为的Taurus也不是这种方案。在我看来，不管官方如何宣传（我从好几个不同的渠道听到的PolarDB的评价，第一个标签就是类似Aurora），我的看法是不管是PolarDB还是Taurus，在架构上跟Aurora不要说类似，根本就不同。当然，我并没有贬低PolarDB的意思，作为业内人士，我太能理解做个自研的数据库有多么难了（不仅是技术上的），阿里的DB团队依然是国内最牛逼的之一(分母不超过3)，但是特别爱吹牛 我说阿里爱吹牛，阿里的同学别不高兴，吹牛也不是贬义词。 今天想起来了，再更新一点我的理解，理解有限，难免出错： Aurora的关键应该是两点： 在Aurora的Paper中应该主要体现的是第1点，第2点没怎么披露  Taurus的主要优化在第1点上，也就是说能够做到计算引擎/存储引擎分离，可以实现1写多读扩展，但是弹性存储的能力应该还没有实现。 PolarDB目前公开的版本优化点主要在第2点上，当然从细节上有些区别，PolarDB中公共的buffer在Aurora应该是没有的，原因也很简单，因为PolarDB的storage并不感知DB的redo/undo逻辑，因此需要一个Buffer来实现脏页在读节点和写节点之间的同步。  也就是说两个国产的产品目前应该是都借鉴了一部分aurora的架构。但是这两个点并不冲突。我不负责任的预测PolarDB的下一步大概率可能也会把第一点中的redo下沉也给做了。 Taurus的下一步一定是实现分布式的存储，自动扩缩容，要不然这个计算/存储分离的架构也就意义不大了。 我要是说错了尽管喷我哈，我不介意。 总的来说，到了今天这一步，我个人感觉Aurora的架构的主要部分实现起来其实并没有想象中的那么难，但是有一定复杂度。（难和复杂的区别应该比较容易理解吧）。当然，如果做到高可用、读性能接近线性扩展、完全自动化运维和完善的周边工具等等在工程上还是很有挑战的。  前两天Aurora发布了 Muti-Master的新特性，如果有新的材料披露了，我也打算学习一下持续更新。 2018/2/12更新 更新我对Aurora的认识：最近在深入研究这个系统，在基于日志写的分布式存储这一层，具体实施下来坑很多，复杂度比我想象的要大。