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的固定大小表檔案進行擴充套件。
原文地址
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2645657/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PMDK優勢
- 【譯】Introducing “Web Live Preview”WebView
- 【譯】Introducing YARP Preview 1View
- 持久記憶體指令(PMDK)簡介記憶體
- 解放音影片應用的未來!Introducing HoloWAN
- [MetalKit]47-Introducing Metal 3 Metal 3簡介
- 應用PMDK修改WAL操作使之適配持久化記憶體持久化記憶體
- 《Github入門——Introducing Github》Peter Bell&Brent Beer (二)第二章 檢視Github
- PostgreSQL DBA(45) - Hypothetical Indexes in PostgreSQLSQLIndex
- PostgreSQLSQL
- PostgreSQL:WITHSQL
- PostgreSQL DBA(133) - Extension(postgresql_anonymizer)SQL
- PostgreSQL DBA(181) - Using PostgreSQL as a Data WarehouseSQL
- PostgreSQL:Redhat 8.5 + PostgreSQL 14.5 安裝SQLRedhat
- PostgreSQL-PostgreSQL中的public(九)SQL
- postgresql關於postgresql.auto.conf和postgresql.conf的區別SQL
- 【PostgreSQL 】PostgreSQL 15對distinct的優化SQL優化
- PostgreSQL:COPYSQL
- Hacking PostgreSQLSQL
- PostgreSQL核心SQL
- PostgreSQL:表SQL
- PostgreSQL:INDEXSQLIndex
- PostgreSQL:鎖SQL
- PostgreSQL:RULESQL
- PostgreSQL:EXPLAINSQLAI
- PostgreSQL DBA(142) - PG 12(Monitoring PostgreSQL VACUUM processes)SQL
- PostgreSQL TPROC-C基準測試:PostgreSQL 12與PostgreSQL 13效能對比SQL
- postgreSQL學習(一):在Linux下安裝postgreSQLSQLLinux
- PostgreSQL DBA(143) - pgAdmin(Monitoring PostgreSQL VACUUM processes#2)SQL
- PostgreSQL 速查、備忘手冊 | PostgreSQL Quick Find and TutorialSQLUI
- POSTGRESQL postgresql 升級的需求來自哪裡SQL
- 【pgupgrade】Postgresql10升級到Postgresql13SQL
- Postgresql 的CheckpointSQL
- PostgreSQL快取SQL快取
- 初識PostgreSqlSQL
- PostgreSQL 序列(Sequence)SQL
- Using hints for PostgresqlSQL
- PostgreSQL 入門SQL