【DB吐槽大会】第21期 - PG 没有持久化Shared Buffer

背景


1、产品的问题点

  • PG 没有持久化Shared Buffer

2、问题点背后涉及的技术原理

  • PG Shared Buffer采用1个大池子(除了ring buffer以外), 数据访问和修改需要先将数据写入shared buffer, 当内存不够时使用LRU算法淘汰shared buffer中的page.

3、这个问题将影响哪些行业以及业务场景

  • OLTP类业务

4、会导致什么问题?

  • 一些突发的大的查询可能将热数据挤出shared buffer, 从而影响热数据相关SQL的响应速度, 导致性能抖动, 体验下降.

5、业务上应该如何避免这个坑

  • 暂时没有好的解决方案, 只能在发布前做好严格的测试再发布, 避免突发大查询

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 成本较高, 无法完全避免
  • 人为的大查询无法避免, 通过管理手段可以减少风险, 但是无法避免.

7、数据库未来产品迭代如何修复这个坑

  • 增加几类独立的shared buffer池, 可以将明知的热的表永久保留在池子内, 避免干扰. 增加DBA的可管理手段.



上一篇:【DB吐槽大会】第44期 - PG 同步复制不支持自动升降级


下一篇:【DB吐槽大会】第46期 - PG copy不能跳过错误行