存儲管理器的體系結構:
存儲管理器的主要任務:
- 緩沖池管理:緩沖池在PG中起緩存作用,數據庫中的事務常常需要頻繁的存取數據,為了減少對磁盤的讀寫,在事務執行時,數據首先將會放入緩沖池中,PG設立了進程間共享的緩沖池(共享緩沖池)以及進程間似有的緩沖池(本地緩沖池)。
- Cache機制:將進程最近使用的一些系統數據緩存在其私有內存中,其級別高於緩沖池。
- 悉尼文件描述符管理:PG通過虛擬文件描述符(Virtual File Descriptor,VFD)來對物理文件進行管理,避免因為操作系統對進程打開文件數的限制出現錯誤。
- 空閑空間管理:用於快速定位到表文件中的空閑空間以便於插入新的數據,從而提高空間利用率。
- 進程間通信機制(IPC):PG是一個多進程的系統,IPC用來在多個后台進程之間進行通信和消息的傳遞,比如使用消息隊列來同步進程產生的無效消息,同事IPC還提供了對共享內存的管理。
- 大數據存儲管理:提供大對象和TOAST機制。大對象機制是一種由用戶控制的大數據存儲方法,它允許用戶調用函數,通過SQL語句直接向表中插入一個大尺寸文件(圖片、視頻、文檔等)。而TOAST機制則是在用戶插入的變長數據超過一定限度時自動觸發,用戶無法對TOAST加以控制。