不揮発性WAL buffer


今日PGメールのリストの中で不揮発性メモリがPG応用の討論を見て、記録をして、それからそのパッチを勉強して、どのようにWAL bufferを不揮発性bufferに改造して、および以前と区別があります.このパッチは日本のNTT社も提供しています.
一、原文https://www.postgresql.org/message-id/[email protected]_1
二、Non-volatile WAL BUFFERは概念証明の新しい特性を提出した:「WAL bufferを失いにくい」.DRAMの代わりに不揮発メモリ(PMEM)を使用することで、WALレコードをWALセグメントファイルに書き込むことなく永続化できます.WALコピーとwriteトランザクションの時間を短縮し、データベースのパフォーマンスを向上させます.
この機能を完了したパッチは、PG 12(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/[email protected]
三、パッチ
コンテンツの種類
サイズ
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