前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >非易失性WAL buffer

非易失性WAL buffer

原创
作者头像
yzsDBA
修改2020-02-10 17:04:32
5320
修改2020-02-10 17:04:32
举报

今天看到PG邮件列表里有非易失性内存在PG应用的讨论,做下记录,接着学习其补丁,如何将WAL buffer改造成非易失性buffer,以及和之前有和区别。该补丁是也是日本NTT公司提供。 一、原文

https://www.postgresql.org/message-id/002f01d5d28d$23c01430$6b403c90$@hco.ntt.co.jp_1

二、Non-volatile WAL BUFFER

提出了一个概念证明的新特性:“非易失WAL buffer”。通过将非易失内存(PMEM)替代DRAM,不需要将WAL记录写入WAL段文件即可将其持久化。减少了WAL拷贝和write事务的时间,从而提升数据库性能。

完成此功能的补丁基于PG12(refs/tags/REL_12_0),附在后文。阅读README.nvwal(patch 0003)了解如何使用该特性。

PMEM[1]可插到DIMM槽,具有快速、非易失、字节寻址的特性。已生产有该特性的产品。NVDIMM-N是PMEM模块的一种,包含DRAM和NAND flash,可以像访问DRAM一样访问NVDIMM-N。断点时,将内容写到flash域。加电重启时将flash内容重新拷贝回去即DRAM。大多数操作系统linux和windows都支持PMEM和持久内存开发集(PMDK)[2]。未来数据库管理系统也将支持PMEM。

PMEM比SSD更快,原生支持作为块存储使用。但是传统的软件栈并不能将其红利充分发挥出来,比如用户buffers、文件系统和块层。非易失WAL buffer使PG适配PMEM,即像访问RAM一样直接访问PMEM,获得最大的效益。PG现有WAL buffer机制是针对慢速存储设备HDD、SSD设计的,所以WAL是适配PMEM重新设计数据库的重要的一个模块。

我们的灵感来自2016年的PGCon大会提出的“Non--volatile Memory Logging”[3],比我和Yoshimi之前工作[4][5]更具效率。我在今年的PGCon大会上提交了一个议题,评估分析非易失WAL buffer的性能。如果该议题被接收,我将在大会上和大家讨论该议题。

[1] Persistent Memory (SNIA)

      https://www.snia.org/PM

[2] Persistent Memory Development Kit (pmem.io)

      https://pmem.io/pmdk/

[3] Non-volatile Memory Logging (PGCon 2016)

      https://www.pgcon.org/2016/schedule/track/Performance/945.en.html

[4] Introducing PMDK into PostgreSQL (PGCon 2018)

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

[5] Applying PMDK to WAL operations for persistent memory (pgsql-hackers)

  https://www.postgresql.org/message-id/C20D38E97BCB33DAD59E3A1@lab.ntt.co.jp

三、补丁

补丁

内容类型

大小

0001-Support-GUCs-for-external-WAL-buffer.patch

application/octet-stream

25.9kb

0002-Non-volatile-WAL-buffer.patch

application/octet-stream

44.8kb

0003-README-for-non-volatile-WAL-buffer.patch

application/octet-stream

6.6kb

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档