<div dir="ltr"><div>>  ... `pgr_connectedComponents` for example) on the subsequent graph,</div><div>>  I am facing a malloc issue : invalid memory alloc request size 1080000000.</div><div>> My machine has a bit more than 10GB of free RAM.<br></div><div><br></div><div>Try:</div><div><br></div><div>1.) set the highest "work_mem" for the session and close all other running programs ..<br></div><div><br></div><div>SET work_mem = '8GB';<br></div><div>SELECT pgr_createTopology( ... )<br></div><div>-- set back for the default value; </div><div>SET work_mem = '1GB';<br></div><div><br></div><div>2.) Linux:  Enable Swap space (  ~ 20GB  or  2x of your RAM )</div><div><a href="https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04">https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04</a><br></div><div><br></div><div>3.) optimize table variables storage spaces ( to less space )</div><div>    - change your bigint variables to integer</div><div>    for (about 40M edges) an integer  [      -2147483648 to +2147483647 ] should enought<br></div><div>    <a href="https://www.postgresql.org/docs/current/datatype-numeric.html">https://www.postgresql.org/docs/current/datatype-numeric.html</a><br></div><div><br></div><div>Regards,</div><div> Imre</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Phyks <<a href="mailto:phyks%2Bpgrouting@phyks.me">phyks+pgrouting@phyks.me</a>> ezt írta (időpont: 2023. jan. 21., Szo, 14:06):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I'm trying to use pgRouting on a quite large graph (about 40M edges). My <br>
graph structure is expected to be quite simple and not very connected <br>
(being mostly a simple tree structure).<br>
<br>
I came across the discussion on speeding up `pgr_createTopology` for <br>
large networks <br>
(<a href="https://github.com/pgRouting/pgrouting/discussions/2255#discussioncomment-4739376" rel="noreferrer" target="_blank">https://github.com/pgRouting/pgrouting/discussions/2255#discussioncomment-4739376</a>) <br>
and am trying to put it in practice for my use case. Moving from <br>
`pgr_createTopology` to `pgr_extractVertices` gives a huge increase in <br>
processing time and memory requirements.<br>
<br>
However, when trying to run `pgr_*` (`pgr_dijkstra`, `pgr_contraction` <br>
or `pgr_connectedComponents` for example) on the subsequent graph, I am <br>
facing a malloc issue : invalid memory alloc request size 1080000000.<br>
<br>
This is easily worked around with `pgr_dijkstra` since routing is mainly <br>
local and the edges table can easily be filtered with a bounding box. <br>
This is not as easy for `pgr_contraction` or `pgr_connectedComponents` <br>
where tiling the computation (through bbox) requires some extra <br>
post-processing.<br>
<br>
I'm not sure about the units of the `malloc` error message, but it seems <br>
to me this is about 1GB allocation which should be no issue on the <br>
machine and setup I am running. For the record, my postgresql is having <br>
either a basic configuration (out of the box install) or a pgtune-d one, <br>
same issue in both cases. My machine has a bit more than 10GB of free RAM.<br>
<br>
Would anyone have more insights on this issue which could help me better <br>
understand and work around it? This is particularly frustrating since <br>
computations on a quarter of the table (about 10M edges) work perfectly <br>
fine and in a very reasonable amount of time.<br>
<br>
Thank you in advance,<br>
Best,<br>
_______________________________________________<br>
Pgrouting-users mailing list<br>
<a href="mailto:Pgrouting-users@lists.osgeo.org" target="_blank">Pgrouting-users@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/pgrouting-users" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/pgrouting-users</a><br>
</blockquote></div>