Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pg_ksp is extremely memory intensive for k>1 #1319

Open
ZaninAndrea opened this issue Dec 2, 2019 · 2 comments
Open

pg_ksp is extremely memory intensive for k>1 #1319

ZaninAndrea opened this issue Dec 2, 2019 · 2 comments

Comments

@ZaninAndrea
Copy link

ZaninAndrea commented Dec 2, 2019

Expected behavior and actual behavior

I am using pg_ksp on a subset of the OpenStreetMap database with 270.000 roads and 200.000 vertices, if I set k=1 to find the best path the query takes about a second and around 100 MB of RAM

SELECT * FROM pgr_ksp('SELECT gid as id, source, target, cost FROM ways',12,7,1)

If I set k=2 or greater the ram usage skyrockets to over 100 GB and goes out of RAM before completing.

SELECT * FROM pgr_ksp('SELECT gid as id, source, target, cost FROM ways',12,7,2)

Am I using the command pgr_ksp incorrectly or is this drastic difference between k=1 and k=2 expected (if so why?) ?

Steps to reproduce the problem

Crop OSM graph to the bounding box 9.91,45.5721,12.5,46.54 then load it in postgis using the osm2pgrouting tool.

Specifications like the version of pgRouting/PostGIS and PostgreSQL as well as Operating System

PostgreSQL 10.7 (Debian 10.7-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit

POSTGIS="2.5.2 r17328" [EXTENSION] PGSQL="100" GEOS="3.5.1-CAPI-1.9.1 r4246" PROJ="Rel. 4.9.3, 15 August 2016" GDAL="GDAL 2.1.2, released 2016/10/24" LIBXML="2.9.4" LIBJSON="0.12.1" LIBPROTOBUF="1.2.1" TOPOLOGY RASTER

pgr_version = (2.6.2,v2.6.2,b14f4d56b,master,1.62.0)

@ZaninAndrea
Copy link
Author

Solved the issue: the OSM graph had some edges where source=target, I think this made the algorithm go into infinite recursion. Dropping these edges fixed the issue.

@woodbri
Copy link
Contributor

woodbri commented Dec 2, 2019 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants