Skip to content

Latest commit

 

History

History
65 lines (35 loc) · 2.99 KB

20220930_01.md

File metadata and controls

65 lines (35 loc) · 2.99 KB

重新发现PostgreSQL之美 - 55 代码搬运工

作者

digoal

日期

2022-09-30

标签

PostgreSQL , plxxx , C , python , julia , perl , java , rust , go


背景

视频回放: https://www.bilibili.com/video/BV1p14y1a7Xc/

场景:

  • 业务层逻辑流程长, 与数据库交互次数多, 例如ERP、银行开账修改等业务.
  • 计算和渲染场景, 需要拖取大量数据到本地进行计算, 少量结果进行渲染
  • CS结构的应用, 需要将数据从集中数据库存储拖取到本地后进行计算得到少量结果. 例如气象、地震分析.

总结起来就是2种场景:

  • 频繁交互
  • 计算要的数据量大, 结果数据集少.

挑战:

  • 频繁的网络交互导致网络延迟在整个过程的占比变高, 处理吞吐必然降低.
  • 每次计算都要拖取大量数据, 容易触发网络带宽瓶颈, 同时拖拽耗时也很长. 变化条件又要重新拖取数据,效率低.

PG解决方案:

通过搬运代码而不是搬运数据的形式, 提高整体运行效率.

如果你认为计算量不行, 我告诉你, PG可以支持低延迟的物理流复制, 增加只读节点即可. 如果你认为只读节点会导致数据存储多分, 我告诉你可以选择计算存储分离架构的PolarDB(此计算支持pushdown), 一份存储多份计算, 而且已经开源了.

https://polardbpg.com/home

在业界, 我们可以看到很多让数据和计算尽量靠近来提升性能的例子, 例如sqlite3, duckdb, 都集成到程序lib了, 程序和库完美融合.

digoal's wechat