1年以上の間、私はOSMデータで満たされた社内PostGISサーバーを実行しています。これは、Mapnikベースのタイル生成とNominatimベースのジオコーディングの両方に使用され、日の複製で更新されます。これはかなりうまく機能します。
ただし、使用量が急激に増加しているため、PostgreSQLサーバーを追加することで信頼性とパフォーマンスを向上させたいと考えています。そして、私はちょっと迷っています。
PostgreSQLはそれ自体ではレプリケーションを処理していないように見えるので、サーバーの同期を維持するためにPgPool-IIのようなミドルウェアのパイドを使用することを考えます。しかし、この使用法には必要なだけだと思います。非常に高い読み取り/書き込み比率で、すべての書き込みが毎日同じ正確な時間に実行されます。
私の質問は簡単です:これらのサーバーの同期を保つために何をしますか?そして、OpenStreetMap Foundation、MapQuest、Mapbox、またはCloudMadeでこれに対して何が行われていますか?
ありがとう。
まず、Postgres 9以降にはレプリケーションサポートが組み込まれています。これは、メインデータベース用にPostgres 9.1で実行している(約90分前の時点で)現在、私たち(OpenStreetMap運用チーム)が使用することを期待しています。
OSMの機能に関する質問に答えるために、これまでのところ、レプリケーションは一切行っていません。Webサイトの背後でマスターデータベースとして機能し、生データを保持する1つの大きなPostgresデータベースがあります。次に、レンダリングとジオコーディング用のセカンダリPostgres + Postgisデータベースがあり、どちらも更新用の惑星ダンプと差分を使用して入力されます。
私はここで2つのオプションを見ることができます: