如何有效地扩展 OpenStreetMap 数据

Pie*_*rre 9 postgresql replication postgis

一年多以来,我一直在运行一个充满 OSM 数据的内部 PostGIS 服务器,用于基于 Mapnik 的瓦片生成和基于 Nominatim 的地理编码,并使用日复制更新。这很好用。

然而,随着使用量呈指数级增长,我希望通过添加额外的 PostgreSQL 服务器来实现更好的可靠性和性能。我有点迷失了。

由于 PostgreSQL 似乎不能自己处理复制,我会考虑使用像 PgPool-II 这样的中间件来保持服务器同步。但恐怕对于这种用法来说,这只是必要的:非常高的读写比率,所有写入每天都在同一确切时间完成。

我的问题很简单:你会怎么做才能使这些服务器保持同步?而且,OpenStreetMap Foundation、MapQuest、Mapbox 或 CloudMade 为此做了什么?

谢谢。

Tom*_*omH 13

首先,Postgres 9 和更高版本确实具有内置的复制支持,这就是我们(OpenStreetMap 运营团队)现在希望使用的东西,因为我们(截至大约 90 分钟前)在 Postgres 9.1 上为主数据库运行。

为了回答您关于 OSM 做什么的问题,到目前为止,我们不进行任何类型的复制 - 有一个大型 Postgres 数据库充当网站背后的主数据库并保存原始数据。然后还有用于渲染和地理编码的辅助 Postgres+Postgis 数据库,这两个数据库都使用行星转储和差异进行填充以进行更新。