[PostGIS] #5808: Weird constant ram increase using topology

PostGIS trac at osgeo.org
Fri Nov 8 05:04:33 PST 2024


#5808: Weird constant ram increase using topology
-----------------------+---------------------------
  Reporter:  latot     |      Owner:  strk
      Type:  defect    |     Status:  new
  Priority:  medium    |  Milestone:  PostGIS 3.5.1
 Component:  topology  |    Version:  3.5.x
Resolution:            |   Keywords:
-----------------------+---------------------------
Comment (by Lars Aksel Opsahl):

 I am now running a test with POSTGIS="3.6.0dev 3.5.0-44-g6366bd678" on a
 small test server with code (before memory fixes) and I have enabled sar
 so we have something to compare with before upgrade to 75d9b03d6c. This
 test server is only used by me and it's only running Postgres.

 The test below start at 2024-11-08 11:19:36.246308+01

 {{{
 CALL topo_rog_static.rog_overlay(
    ARRAY[
 'sk_grl.n5_forvaltning_flate n5',
 'prod_dyrkbarjord_05.snapshot_ar5_flate ar5',
 'prod_dyrkbarjord_05.snapshot_ssb_flate ssb',
 'prod_dyrkbarjord_05.snapshot_mdir_flate mdir',
 'prod_dyrkbarjord_05.snapshot_dmk_flate dmk',
 'prod_dyrkbarjord_05.snapshot_ravine_dtm10_dmk_flate dtm10',
 'prod_dyrkbarjord_05.snapshot_ravine_statsforvalter_flate ravine'
    ],
    'tmp_dyrkbarjord_12.dyrkbarjord_06',
    4258, --srid
    0, -- no snapto
    10.0, -- min m2 area to keep
    0, --max vertx length
    false, -- _break_up_big_polygons
    1.0, -- min negative buffer value null, remove sliver polygons
    ARRAY[
 ('0103000020A21000000100000005000000B3C573C549A82240C2497FD1316F4F40B3C573C549A8224059E5729B33DC4F40A3DA057EEABE264059E5729B33DC4F40A3DA057EEABE2640C2497FD1316F4F40B3C573C549A82240C2497FD1316F4F40','037')::rog_input_boundary::rog_input_boundary
   ]
    , -- run all the area blocks
    true, -- do_qualitycheck_on_final_reseult
    --  Method 1 topology.TopoGeo_addLinestring
    --  Method 2 topology.TopoGeo_LoadGeometry
    --  Method 3 select from tmp toplogy into master topology
    3,
    10, -- _max_parallel_jobs int, -- this is the max number of paralell
 jobs to run. There must be at least the same number of free connections
    600, -- _max_rows_in_each_cell int, -- this is the max number rows that
 intersects with box before it's split into 4 new boxes
    null
    );

 }}}

 From sar we get this now (code before memory update)

 {{{

 10:40:03    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached
 kbcommit   %commit  kbactive   kbinact   kbdirty
 10:50:02     61142104  62946200   1626848      2.47      7648   2735980
 11859148     16.01    945192   3015284     20028
 11:00:03     61767944  63616128    981120      1.49      7648   2754880
 11137220     15.04    915536   2399188      4188
 11:10:03     61862556  63702900    894176      1.36      7648   2747308
 11025260     14.89    925372   2279068         0
 11:20:03     61872684  63714484    882952      1.34      7648   2748788
 11016896     14.87    927924   2279844         0
 11:30:03     58305508  61577628   1874804      2.85      7648   5276428
 12172268     16.43   1429888   5337516     58492
 11:40:03     57976656  61490612   1779184      2.70      7648   5686004
 12166740     16.43   1801400   5268476     51368
 11:50:00     57702720  61385112   1753320      2.66      7648   5969336
 12038992     16.25   2069776   5260776     51224
 12:00:00     55847564  59955040   2786572      4.23      7648   6780304
 13041736     17.61   2571516   6582200     66796
 12:10:03     55552520  59719364   2629196      3.99      7648   7227376
 12882832     17.39   2998324   6447184     68128
 12:20:03     55907020  60163276   2184968      3.32      7648   7307164
 12457596     16.82   3027800   6053332     62032
 12:30:03     55200784  59687440   2657892      4.04      7648   7530040
 12938772     17.47   3068752   6706968     63724
 12:40:03     54830648  59466128   2827212      4.29      7648   7723292
 13078288     17.66   3153496   6991212     49348
 12:50:03     54771540  59572044   2591820      3.94      7648   8008060
 12870848     17.38   3313932   6876356     89092
 13:00:03     54692636  59587800   2412788      3.66      7648   8259492
 12682264     17.12   3508396   6756404     99048
 13:10:03     54025556  59064720   2847752      4.33      7648   8484700
 13111368     17.70   3615164   7301200     58748
 13:20:03     54191400  59361784   2376192      3.61      7648   8782652
 12638620     17.06   3815340   6936244     94432
 13:30:03     54325484  59513960   2186832      3.32      7648   8828776
 12438336     16.79   3871348   6733536     59352
 13:40:02     53758532  59113036   2499584      3.80      7648   9075556
 12770044     17.24   3982756   7182092     91200
 13:50:03     52994504  58588208   2993372      4.55      7648   9334628
 13243072     17.88   4029592   7863608     67640

 }}}
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5808#comment:18>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list