[pgrouting-dev] pgrouting in batch mode ?

Stephen Woodbridge stephenwoodbridge37 at gmail.com
Sun May 17 15:22:23 PDT 2020


Hello all,

I looked into some potential ways to solve this problem in the past and 
will through out some ideas for your consideration in no particular order.

* in my address standardizer I created a postgresql session cache and 
stored lots of data there, that was then accessible by other queries 
using the same session, and was freed when the connection was closed. 
This same mechanism could be used to store a graph. Postgresql has 
various cache life cycles, like at the query level, or the connection 
level, and maybe at the database level.

* one could serialize the graph and store it in a blob, and then have 
the queries fetch the blob and unserialize it for the query. Not sure 
about the cost of unserialize would be. There are also costs associated 
toasting/untoasting blobs.

* sqlite/spatialite does not have the cost of toasting/untoasting blobs 
so it might be considerably faster than postgresql for saving large 
amounts of data in blobs

* it is also possible to build a a graph in a fixed segment of memory 
and use mem-mapped I/O to save it to a file and later open the file and 
map it back to memory into a fixed segment of memory to use at a later 
date. This is extremely fast, yes works on Windows also, but the down 
side is you have to manage the memory segment yourself instead of using 
nice C++ structures so this is probably a non-starter. There may be C++ 
libraries that facilitate this for C++ code, but I have not looked.

Vicky, if you want to follow up on any of these at a later time, let me 
know. I do not plan to attend the meeting, just throwing some ideas of 
the fence.

Best regards,
   -Steve

On 5/17/2020 11:48 AM, Vicky Vergara wrote:
> Hello all,
>
> MobilityDB [1] [2] will be using pgRouting to test using the benchmarks
> mentioned on attached mail
>
> [1] https://github.com/ULB-CoDE-WIT/MobilityDB
> [2] https://docs.mobilitydb.com/nightly/
>
> The Agenda for monday meeting May 18, 2pm UTC = 9am in Mexico = 7:30pm 
> in India will be:
> - Review of work done to have travis working
> - Understanding MobilityDB + pgRouting + problem description
> - Discussion of a possible solution to the problem
>
>
>
> On Sat, May 16, 2020 at 1:53 AM Esteban Zimanyi 
> <estebanzimanyi at gmail.com <mailto:estebanzimanyi at gmail.com>> wrote:
>
>     Dear Vicky
>
>     In mobility applications we need to generate data according to a
>     given scenario at various scale factors to make simulations. This
>     requires to send thousands of requests to pgrouting and this
>     number of requests increases with the scale factor used for the
>     generation.
>
>     As a concrete example, the BerlinMOD data generator
>     http://dna.fernuni-hagen.de/secondo/BerlinMOD/BerlinMOD.html
>     uses a workweek scenario in which persons go in the morning to
>     work, return back to home in the afternoon, and possibly do an
>     extra trip after working hours for leisure. As another example, we
>     described in
>     https://www.mdpi.com/2220-9964/8/4/170/htm
>     a scenario in which a home appliances shop needs to deliver the
>     appliances to the customers and thus vehicles are loaded at a
>     warehouse in the morning and spent the day delivering to the
>     clients given a specified schedule to finally return back to the
>     warehouse at the end of the day.
>
>     We have done a first profiling of these data generators and
>     realized that 87% of the time is spent in pgrouting building the
>     graph thousands of times, at each query sent to pgrouting. On the
>     other hand, the real work of MobilityDB only accounts for 0.11%
>
>     VirtualBox_mobilitydb-dev_13_05_2020_17_11_39 (1).png
>
>     For this reason we would need an API in which we build the graph
>     once at the beginning of the simulation, send to pgrouting
>     thousands of calls to pgr_dijkstra, pgr_aStar, pgr_dijkstraVia,
>     etc. and then delete the graph, free the memory and start the
>     simulation.
>
>     Any idea how to achieve this ?
>
>     Many thanks for your valuable help.
>
>     Esteban
>
>     ------------------------------------------------------------
>     Prof. Esteban Zimanyi
>     Department of Computer & Decision Engineering (CoDE) CP 165/15
>     Universite Libre de Bruxelles
>     Avenue F. D. Roosevelt 50
>     B-1050 Brussels, Belgium
>     fax: + 32.2.650.47.13
>     tel: + 32.2.650.31.85
>     e-mail: ezimanyi at ulb.ac.be <mailto:ezimanyi at ulb.ac.be>
>     Internet: http://cs.ulb.ac.be/members/esteban/
>     ------------------------------------------------------------
>
>
>
> -- 
> Georepublic UG (haftungsbeschränkt)
> Salzmannstraße 44,
> 81739 München, Germany
>
> Vicky Vergara
> Operations Research
>
> eMail: vicky at georepublic.de  <http://georepublic.de>
> Web:https://georepublic.info
>
> Tel: +49 (089) 4161 7698-1
> Fax: +49 (089) 4161 7698-9
>
> Commercial register: Amtsgericht München, HRB 181428
> CEO: Daniel Kastl
>
>
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/pgrouting-dev



More information about the pgrouting-dev mailing list