Skip to content

Files

Latest commit

Dec 15, 2023
f400df2 · Dec 15, 2023

History

History
79 lines (45 loc) · 3.84 KB

20210803_03.md

File metadata and controls

79 lines (45 loc) · 3.84 KB

推杠赛, 挑战赛 设计

作者

digoal

日期

2021-08-03

标签

PostgreSQL , 问题 , 回应


背景

类似这种:

《为PostgreSQL讨说法 - 浅析《UBER ENGINEERING SWITCHED FROM POSTGRES TO MYSQL》》

找同一赛道的两个产品进行同台对抗.

目标: 找到产品在市场、场景、商业、生态、设计等方面的优点、缺点.

例子:

(推)挑战:

  • PG的PK查询多一次索引回表的IO.

(接)回应或反驳:

  • 数据库要讲究综合性能, 不是只有PK查询, 如果只有PK查询为什么不用redis缓存.
  • 多1次IO没什么问题, 现在SSD的IO延迟也就几十US, 而且内存这么便宜, 一个IO也就8K, 热数据都可以在内存中缓存下来.
  • 反倒是索引组织表存在写入性能问题, 节点膨胀问题, 收缩代价问题, 二级索引性能差等问题等. 为了节省1个IO简直是丢了西瓜捡芝麻.

(推)挑战:

  • PG是进程模型, 高并发性能差.

(接)回应或反驳:

  • Oracle也是进程模型, 全球市场占有率第一, 大家都想干掉它.
  • 进程模型不代表高并发性能差, 要分析清楚主要矛盾和次要矛盾, 事务快照问题目前才是亟待解决的, PG高并发的问题在POLARDB已经解决了. 而且后面还在做线程池, 支持更高的并发.
  • 而且现在都是多核服务器, 进程模型可以更好的发挥计算能力. PG的并行计算利用多核的计算能力, 换来指数级提升就是个很好的证明.

(推)挑战:

  • PG存在OS和DB双重缓存问题, 浪费内存.

(接)回应或反驳:

  • 要分清主要矛盾和次要矛盾, 现在都用云盘了, IO延迟很高, 所以有buffer IO在前面挡一层, 写性能实际上会更好, 同时os层merge io可以减少IO.
  • 浪费一点内存, 换来更好的写入性能何乐不为.

(推)挑战:

  • PG的catalog是本地缓存, 每个链接都要缓存访问过的数据库对象的元数据, 在SaaS场景高并发长链接的情况下容易出现OOM的问题.

(接)回应或反驳:

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

digoal's wechat