Postgresql

如何有效地擴展 OpenStreetMap 數據

  • April 4, 2012

一年多以來,我正在執行一個內部的 PostGIS 伺服器,該伺服器充滿了 OSM 數據,用於基於 Mapnik 的切片生成和基於 Nominatim 的地理編碼,並使用日複製進行更新。這工作得很好。

然而,隨著使用量呈指數增長,我希望通過添加額外的 PostgreSQL 伺服器來獲得更好的可靠性和性能。我有點迷路了。

由於 PostgreSQL 本身似乎不處理複製,我會考慮使用像 PgPool-II 這樣的中間件來保持伺服器同步。但我擔心這種用法只是必要的:非常高的讀寫比,所有寫入每天都在相同的確切時間完成。

我的問題很簡單:你會怎麼做才能讓這些伺服器保持同步?而且,OpenStreetMap Foundation、MapQuest、Mapbox 或 CloudMade 對此做了什麼?

謝謝。

首先,Postgres 9 及更高版本確實具有內置的複制支持,這就是我們(OpenStreetMap 運營團隊)現在(大約 90 分鐘前)在 Postgres 9.1 上執行的主數據庫所期望使用的。

為了回答您關於 OSM 做什麼的問題,到目前為止,我們還沒有進行任何類型的複制 - 有一個大型 Postgres 數據庫充當網站後面的主數據庫並保存原始數據。然後是用於渲染和地理編碼的輔助 Postgres+Postgis 數據庫,這兩個數據庫都使用行星轉儲和差異來填充以進行更新。

引用自:https://serverfault.com/questions/376572