注意本人的部落格都遷移到本人自己搭建的部落格位址,通過此處可檢視。
1. 訪問介面總體圖
1. 程序和記憶體結構圖
2. 主程序 postmaster
是整個資料庫例項的總控程序,負責啟動和關閉該資料庫例項。
3. syslogger(系統日誌)程序
需要在postgres.conf
中logging_collection
設定為on
,此時主程序才會啟動syslogger
輔助程序。
4. bgwriter(後台)程序
把共享記憶體中的髒頁寫到磁碟上的程序。主要是為了提高插入、更新和刪除資料的效能。
5. walwrite(預寫式日誌)程序
wal:write ahead log(預寫式日誌)
在修改資料之前把修改操作記錄到磁碟中,以便後面更新實時資料時就不需要資料持久化到檔案中。
6. pgarch(歸檔)程序
wal日誌會被迴圈使用,pgarch在歸檔前會把wal日誌備份出來。通過pity(point in time recovery)技術,可以對資料庫進行一次全量備份後,該技術將備份時間點之後的wal日誌通過歸檔進行備份,使用資料庫的全量備份再加上後面產生的wal日誌,即可把資料庫向前推到全量備份後的任意乙個時間點。
7. autovacuum(自動清理)程序
8. pgstat(統計資料收集)程序
做資料的統計收集工作。主要用於查詢優化時的代價估算,包括乙個表和索引進行了多少次的插入、更新、刪除操作,磁碟塊讀寫的次數、行的讀次數。pg_statistic
中儲存了pgstat
收集的各類資訊。
9. 共享記憶體
postgresql啟動後,會生成一塊共享記憶體,用於做資料塊的緩衝區,以便提高讀寫效能。wal日誌緩衝區和clog緩衝區也存在共享記憶體中,除此之外還有全域性資訊比如程序、鎖、全域性統計等資訊也儲存在共享記憶體中。
使用"mmap()「方式的共享記憶體,使用此記憶體的好處是不在需要配置"system v"共享記憶體的引數"kernel.shmmax"和"kernel.shmall」,就能使用較大的共享記憶體。
10. 本地記憶體
非全域性儲存的資料都存在本地記憶體中,主要包括:
postgresql核心架構 安裝後的目錄介紹
程序和記憶體架構圖 主程序 postmaster 位於安裝目錄的bin目錄下,主程序是整個資料庫例項的總控程序,負責啟動和關閉該資料庫例項。可以執行postmaster postgres命令並加上合適的引數啟動資料庫,實際上postmaster命令是乙個指向postgres的鏈結。更多的時候是通過p...
postgresql核心架構 安裝後的目錄介紹
程序和記憶體架構圖 主程序 postmaster 位於安裝目錄的bin目錄下,主程序是整個資料庫例項的總控程序,負責啟動和關閉該資料庫例項。可以執行postmaster postgres命令並加上合適的引數啟動資料庫,實際上postmaster命令是乙個指向postgres的鏈結。更多的時候是通過p...
spark核心架構
driver部分的 sparkconf sparkcontext driver 部分 val conf new sparkconf val sc new sparkcontext conf end executor部分 分布到集群中的 比如 textfile flatman map worker 管...