Introducing PMDK into PostgreSQL

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: Introducing PMDK into PostgreSQL

将PMDK引入PostgreSQL


持久性内存(PMEM)具有快速、非易失和可字节访问的特性,能够通过load/store指令被CPU直接访问。现在已有供应商提供这种产品。相对于HSS或者SSD,数据库管理系统跑在PMEM上性能更好。借助PMDK(Persistent Memory Development Kit),将数据库修改成适配PMEM的产品,可以进一步提高其性能。本次演讲的话题围绕如何修改Postgresql使之适配PMEM,以及修改后的效果如何。我们第一步将围绕WAL日志以及表来提升OLTP性能和checkpoint时间。

有两种方法使用PMEM。第一种是最简单的方法,通过直接访问(DAX,direct-access)文件系统,即跳过操作系统的页缓存,直接访问磁盘。这种方法不用修改PG。另一种方法:PMDK包含适配PMEM的lib库,可以绕过内核直接到PMEM映射文件以及跳过CPU缓存进行内存拷贝。这种方法性能更好。

使用PMDK修改PG,主要关注WAL和表段文件。我们使用PMDK提供的PMEM函数替代系统调用函数open、lseek、read、write和fdatasync。然后和跑在DAX文件系统上的原生PG进行性能比较。试验中,我们使用飞翼式的DIMM(NVDIMM)作为PMEM。结果显示,在WAL方面,在INSERT场景中我们可以提升1.8倍的TPS。我们做出的修改将近1200行。对于表,我们checkpoint时可以减少将近20%的时间。

另一方面,我们也在其他方面进行探索,例如控制NUMA影响、消除SQL解析的开销、对PMEM-mapped的固定大小表文件进行扩展。


原文地址


https://www.pgcon.org/2018/schedule/events/1154.en.html

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
6月前
|
存储 算法 关系型数据库
【PostgreSQL】Introduction to PostgreSQL Index Types
【PostgreSQL】Introduction to PostgreSQL Index Types
54 0
【PostgreSQL】Introduction to PostgreSQL Index Types
|
存储 NoSQL 关系型数据库
An Overview of PostgreSQL & MySQL Cross Replication
An Overview of PostgreSQL & MySQL Cross Replication
103 0
|
SQL 存储 运维
Mastering PostgreSQL 13 的中文版出来了
Mastering PostgreSQL 13 的中文版出来了
211 0
|
SQL 关系型数据库 分布式数据库
|
SQL 关系型数据库 分布式数据库
|
SQL 关系型数据库 MySQL
Best Practices for RDS MySQL Storage Optimization
This article talks about spatial optimization of ApsaraDB for RDS MySQL. We will discuss the various objects which comprise the RDS Console with an understanding of the composition of objects.
1684 0
Best Practices for RDS MySQL Storage Optimization
|
分布式计算 关系型数据库 MaxCompute
Best Practices for Data Migration from MaxCompute to HybridDB for PostgreSQL
Users often struggle to migrate data from MaxCompute to HybridDB. This blog describes five steps that will help you migrate data conveniently.
2947 0
Best Practices for Data Migration from MaxCompute to HybridDB for PostgreSQL
|
SQL 关系型数据库 数据库
PostgreSQL Tutorial | psql的使用
本文提供一系列常用的psql命令,能够帮助你快速和高效的从数据库中获取数据。 Connect to PostgreSQL database 1.使用psql 连接到数据库,回车后会提示你输入密码 [postgres@localhost ~]$ psql -dtest -Upostgres -W Password for user postgres: psql (10.
1707 0
|
关系型数据库 PostgreSQL
下一篇
无影云桌面