[PostgreSQL] pg源碼src/backend/目錄下的結構

【轉載地址】http://blog.csdn.net/fly2nn/article/details/7002761


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:實現查詢優化的代碼。如“圖4-查詢優化代碼結構圖”( http://blog.163.com/li_hx/blog/static/183991413201152884321219/ )。

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對於內存管理的代碼等等。如“圖6-輔助功能代碼結構圖”。

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