为了让各位小伙伴能够方便、快速的了解到 PolarDB 的相关的使用问题,社区每周将精选群内高质量的问题通过该栏目予以统一答复,希望能够对大家有所帮助。
1、
Q:startup 进程回放某日志(里面包含需原子回放的两个页A和B),两个页加入 mini_trans 对应的槽,此时一个 backend 回放 A 页前,获取了 A 所在槽的锁,然后开始回放,startup 进程在回放该日志结束时会等待所有的槽上的锁都被释放,也就是说 startup 进程会等待 backend 回放结束才能继续工作,为什么要做这样的设计?
A:首先上锁是必要的,仅仅是读取 logindex 的元信息。这样做的目的是为了决定页面的回放终点,保证 backend能读到已经回放的最新页面;为了加速回放的速度,我们另外创建了 background 回放进程,该进程按插入 logindex 的顺序,枚举页面进行回放,它会决定 buffer pool 中已经存在页面回放的起始点,加速回放。
2、
Q:同样的配置,PolarDB 云原生产品比 PG 的原生版本性能有多少提升?
A::具体相关数据可参考产品文档:https://github.com/ApsaraDB/PolarDB-for-PostgreSQL/blob/main/doc/PolarDB-CN/Architecture.md
3、
Q:PolarDB 为什么不支持创建表空间?
A:因为云上实例就一个盘。
4、
Q: PolarDB 是否支持快速克隆出一个测试环境?变化的部分存在于克隆空间,类似 aurora?
A: PolarDB 支持秒级克隆,线上实例是通过 polarstore 的分布式一致性快照来实现的,delta 的部分通过 cow,因此成本很低速率很快。
- PolarDB for PostgreSQL 已在 GitHub 开源,欢迎前往了解和支持:https://github.com/ApsaraDB/PolarDB-for-PostgreSQL
- 欢迎扫码加入钉钉群与我们一起交流,共建社区: