2007年4月22日 星期日

PostgreSQL 對於分散式資料庫的實現 - pgpool-II

Standard

其實一直以來我都有去注意各家資料庫的發展,直到最近因為專案的需要,又有時間與機會研究和使用 PostgreSQL 。對於當初的構想─分散式的資料庫查詢﹝參考之前發表過的『對於高負載資料庫的突發奇想』一文就網友回應和查詢資料後,Oracle和MySQL新版已有這種設計,而在 PostgreSQL 我是採用 contrib/dblink 來實現其分 散式資料查詢的架構,雖然這種非正規的做法,的確可以實現我對高負載資料庫的設計,但畢竟此做法還是非正規且沒有簡單完整的設計流程,在實行上有著相當的 困難和複雜度。最近在仔細探討和研究 PostgreSQL 等相關專案中,意外在之前被我忽略的專案『pgpool』裡發現了較完整正規的解決辦法。

由於pgpool-I沒有平行化和不支援夠多的資料庫節點,之前一直被我所忽略,甚至沒發現他推出了新的版本─ pgpool-II ,閱讀後官方網站後,發現pgpool-II有以下新特色:


  • uses multiple DB nodes to process search queries in parallel for higher performance compared to a single PostgreSQL server
  • comes with web-based administration tool called "pgpoolAdmin" for easier operation (figure on the right)
  • up to 128 DB nodes can be attached (can be extended by recompilation)
  • can be operated using a port opened in pgpool-II for administration via network


從文中大略上是說有平行化查詢、更好用的Web-based管理工具、支援到128台伺服器節點等。在官方網站有註明它的最後修改日期:『Last modified: Fri Sep 8 14:15:32 2006』,看來最晚在去年9月以前它就已經出爐面世了,愚蠢的我居然沒有發現,還自己土法練鋼的去想辦法實現平行化的功能,真是笨!

pgpool-II的官方網站是 http://pgpool.projects.postgresql.org/pgpool-II/en/,有興趣的人可以參考。