溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Introducing PMDK into PostgreS

發(fā)布時間:2020-07-21 10:10:06 來源:網(wǎng)絡(luò) 閱讀:794 作者:yzs的專欄 欄目:數(shù)據(jù)庫

將PMDK引入PostgreSQL
持久性內(nèi)存(PMEM)具有快速、非易失和可字節(jié)訪問的特性,能夠通過load/store指令被CPU直接訪問?,F(xiàn)在已有供應(yīng)商提供這種產(chǎn)品。相對于HSS或者SSD,數(shù)據(jù)庫管理系統(tǒng)跑在PMEM上性能更好。借助PMDK(Persistent Memory Development Kit),將數(shù)據(jù)庫修改成適配PMEM的產(chǎn)品,可以進(jìn)一步提高其性能。本次演講的話題圍繞如何修改Postgresql使之適配PMEM,以及修改后的效果如何。我們第一步將圍繞WAL日志以及表來提升OLTP性能和checkpoint時間。

有兩種方法使用PMEM。第一種是最簡單的方法,通過直接訪問(DAX,direct-access)文件系統(tǒng),即跳過操作系統(tǒng)的頁緩存,直接訪問磁盤。這種方法不用修改PG。另一種方法:PMDK包含適配PMEM的lib庫,可以繞過內(nèi)核直接到PMEM映射文件以及跳過CPU緩存進(jìn)行內(nèi)存拷貝。這種方法性能更好。

使用PMDK修改PG,主要關(guān)注WAL和表段文件。我們使用PMDK提供的PMEM函數(shù)替代系統(tǒng)調(diào)用函數(shù)open、lseek、read、write和fdatasync。然后和跑在DAX文件系統(tǒng)上的原生PG進(jìn)行性能比較。試驗(yàn)中,我們使用飛翼式的DIMM(NVDIMM)作為PMEM。結(jié)果顯示,在WAL方面,在INSERT場景中我們可以提升1.8倍的TPS。我們做出的修改將近1200行。對于表,我們checkpoint時可以減少將近20%的時間。

另一方面,我們也在其他方面進(jìn)行探索,例如控制NUMA影響、消除SQL解析的開銷、對PMEM-mapped的固定大小表文件進(jìn)行擴(kuò)展。

原文地址
https://www.pgcon.org/2018/schedule/events/1154.en.html

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI