PostgreSQL文件擴展機制

       擴展的底層函數爲mdextend。先通過_mdfd_getseg獲取指定頁號的段文件描述符,然後根據頁號計算出偏移,向該偏移出寫入一頁:大部分情況寫入一頁0來進行擴展。

       _mdfd_getseg獲取頁號所在段文件的描述符,當沒有打開過對應文件時,根據入參是否爲EXTENSION_CREATE或EXTENSION_CREATE_RECOVERY,設置標記O_CREATE作爲open參數,當文件不存在時會創建新文件,若存在則會打開。如果flag帶有O_EXCL | O_CREATE,則若文件存在,則open失敗,返回fd爲-1,errno爲17表示文件已存在。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章