サポート (#26) - shortest_pathでPostgreSQLがダウンします (#319) - Message List
shortest_pathでPostgreSQLがダウンします
shortest_pathを実行するとPostgreSQLがダウンするときがあります。 その際PostgreSQLのログにはこのようなエラーが記録されています。
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
少し調べたところ、データ量は関係なく一部のデータが原因のようです。 原因の特定方法などお分かりになりましたら教えてください。
環境
Ubuntu 8.04.3 PostgreSQL 8.4.1 PotGIS 1.4.0 pgRouting 1.03
利用データ
Orkneyルート検索用道路データ 北海道
yasue
12/17/09 21:19:51 (11 months ago)
-
Message #1297
こんにちは。
道路データのノードIDの値が大きすぎることによるエラーかもしれませんので、 ご利用されているデータのノードID(フィールド名:id1, id2)を1から振り直してみてはいかがでしょうか。
ダイクストラの探索で利用するグラフのノードのIDは1~ノード数とするべきだそうです。これはpgRoutingというよりは、ダイクストラの探索で利用しているライブラリ(boost)の仕様です。 ご利用されているデータのノードIDは11桁と大きな値となっており、このノードをグラフに追加しようとすると、グラフはこのノードを含めるためにノード[1..11桁のノードID]をもつような巨大なグラフに拡張しようとしてメモリ確保に失敗してしまうようです。
ノードIDを振り直すのは手間がかかるかと思いますが、 検討してみてください。
orkney12/21/09 17:20:17 (11 months ago)