您好,登錄后才能下訂單哦!
pg源碼src/backend/目錄下的結構是怎樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1. src\backend\acess:很重要的一個目錄,數據訪問層,存放了和索引相關以及事務處理相關的代碼。如“圖3-事務處理和索引相關結構圖”(http://blog.163.com/li_hx/blog/static/183991413201152884321219/ )。本層之下,是數據緩沖區,再下層,是真正的數據存儲層。
2. src\backend\bootstrap:初始化數據庫時要使用的代碼。和src\bin\initdb下的initdb工具緊密相關。
3. src\backend\catalog:PG提供的針對系統表的操作代碼。系統表定義在incl?\catalog中。
4. src\backend\commands:SQL命令被解析后執行具體命令時對應的操作代碼。
5. src\backend\executor:SQL命令被解析后得出語法分析樹和查詢計劃,從形式上看,他們都是一顆多叉的樹,每個子樹由若干子樹和節點(node)組成。不同節點的執行方式在經系統判斷后各不相同,如是執行順序掃描還是索引掃描還是嵌套循環等等。與commands目錄中的代碼聯合完成查詢處理功能。
6. src\backend\lib:字符串處理和鏈表處理輔助函數。
7. src\backend\libpq:同身份認證或口令識別相關代碼,以進行安全的網絡通訊。如ssl,md5等等。
8. src\backend\main:PG的main函數所在。PG啟動入口。
9. src\backend\nodes:語法分析或查詢計劃上的節點的處理代碼,如必要時對節點進行復制等。
10. src\backend\optimizer:實現查詢優化的代碼。
11. src\backend\parser:對SQL語句進行解析的代碼。注意gram.y文件。
12. src\backen\po:實現國際化(i18n)功能的一部分。把一些數據庫的提示信息國際化。
13. src\backend\port:屏蔽一些不同操作系統在一些實現上的差別。如windows上的socket、darwin系統上對system函數的支持、sunos4系統對于float類型的支持等。
14. src\backend\postmaster:PG的主要進程。如主服務進程postmaster,歸檔進程pgarch等。
15. src\backend\regex:對正則表達式的處理代碼。
16. src\backend\rewrite:PG的查詢重寫系統代碼。
17. src\backend\snowball:支持全文檢索的代碼。
18. src\backend\storage:很重要的一個目錄。有關物理存儲系統相關代碼。主要包括存儲管理器(可方便提供多種存儲方式的切換)、緩沖區管理、文件管理、文件空間管理、大對象管理、鎖管理、使用消息隊列進行cache同步等。如“圖5-存儲系統代碼結構圖”。
19. src\backend\tcop:真正的處理用戶SQL的服務進程?—postgres。
20. src\backend\tserach:全文檢索相關代碼。
21. src\backend\utils:輔助功能代碼。如adt目錄下對于各種數據類型的處理代碼;cache目錄中提供一些緩存的支持,如查詢計劃緩存;error目錄中提供PG系統的錯誤處理機制;fmgr目錄有PG提供的函數管理機制;mb目錄中有對國際化的支持(多字節字符);misc目錄提供對于系統參數的處理機制;mmgr目錄提供PG對于內存管理的代碼等等
關于pg源碼src/backend/目錄下的結構是怎樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。