从Uber切换Postgres说起

  1. 云栖社区>
  2. 博客>
  3. 正文

从Uber切换Postgres说起

云计算小粉 2016-11-03 14:51:00 浏览2045
展开阅读全文

本文PPT来自云徙科技联合创始人及CTO李元佳于10月16日在2016年杭州云栖大会上发表的《从Uber切换Postgres说起》。

为什么Uber的工程师放弃使用Postgres,转而使用MySQL?这与下面的事件背景有关:Uber的工程师在使用Postgres时遇到了限制,具体是限制写入的低效率架构、低效的数据复制、潜在的表格损坏、不完善的MVCC支持、难以升级到新版本等,看来问题还不少呢!

尽管在Uber发展的早期Postgres能很好地胜任工作,但随着业务的扩展,Postgres开始逐渐显得力不从心了。现在,除开一些遗留的Postgres实例,Uber数据库的主体要么是基于MySQL,要么在某些特殊的情形下,使用了像Cassandra这样的NoSQL数据库。

具体而言,Postgres中记录的多版本机制在旧版本回收和管理问题问题比较大,记录写入路径比较长,中途需要度旧版本的话,代价比较大。在索引与数据的关系这个方面上,与MySQL使用Clustered Index不同,Postgres处理关系采用的是B-Tree + Heap 组合,这种索引结构差异导致一系列小问题,如记录物理位置变更会导致所有索引的变更,二级索引的检索需要进行两次索引检索,并且如果主索引的数据量大的话,比较消耗空间。其他的问题还包括Postgres表结构中存在的写放大问题(一次更新,四次写入),Postgres流复制问题.....针对这些问题,人们提出了逻辑复制解决方案、复制的业务问题解决方案,来解决这些问题。

所以难怪Uber会切换Postgres,这一切还得从Postgres自身说起呀!

831c0ad8c94c7bc8ae25a06d26bd9f9ad9a7555d

d0816f6f7886f34d533e6b62bf8e249edacf587c

523e92c2868615feb7e8c20128dce3ab8f90be16

03319211e1dbc3d8c69ce122014809ca52ba6fa9

515cc42034ee6f764d789b827f58fac7ba3e780e

ec8e2edf12ae83ad6e1f5234c536cc7640340cfd

c136685bcb83735ddc2188fb4ebcd2f7fb2d092e

cac9fc0f1a56dbf3b1c3909c3c3c024aaadbbfdc

7c2ab7ffee8fe74078cad7c01f30c98304cc1378

b9d63330022861ebd0987bdb4585750c60cb47d4

cedf19fb484fa1a82fb7a8aa69c794a6cf7b6a1f

69f432c9be26a45af31f414383a3f26452a136c2

c265e632ec6a32ac00f39c24811b489f7ef8efe5


网友评论

登录后评论
0/500
评论
云计算小粉
+ 关注