Response time of WMS 1.3.0 significantly higher than vs WMS 1.x.x on systems whose axis in north/east order

Description

This question was brought up at the geoserver-users list. The following description is a rough copy-paste of the e-mail exchange.

It seems that GeoServer WMS GetMap response times for WMS 1.3.0 are longer than those of WMS 1.x. If the number of features to be rendered in the response is small then the difference is not that noticable. But if for example with 20K+ point features the difference becomes noticable, e.g.

WMS 1.1.1 https://gsavalik.envir.ee/geoserver/eelis/ows?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=eelis%3Akr_puurkaev&STYLES=point&SRS=EPSG%3A3301&WIDTH=1432&HEIGHT=906&BBOX=372111.0,6382027.0,738667.0,6614170.0
takes around 3 seconds to return

WMS 1.3.0 https://gsavalik.envir.ee/geoserver/eelis/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=eelis%3Akr_puurkaev&STYLES=point&CRS=EPSG%3A3301&WIDTH=1432&HEIGHT=906&BBOX=6382027.0,372111.0,6614170.0,738667.0
gets a timeout, but I've checked it with a longer timeout setting and it returns in 30+ seconds

Catching the executed SQL from geoserver.log for either request and executing it in the database yields no significant time difference (< 50 ms)

switching image/png with image/jpeg makes no difference. Also requesting for FORMAT=application/json;type=geojson (using the vector tiles plugin) results in ~ 4x response time diff for WMS 1.3.0 and 1.x.

I did some additional tests with a local fresh 2.11.2 stable bin installation, using shapefiles
and three different native SRSs - EPSG:3035, EPSG:4326 and EPSG:3301.
All the required DATA_DIR files to rerun this are available at
https://drive.google.com/drive/folders/0BwPIVpJhp8rHbzhUWk9VSV9FSGM.
Some chrome screenshots aswell at
https://drive.google.com/drive/folders/0BwPIVpJhp8rHUEUyNTBvVDFya1E.

But in conclusion:

data native in EPSG:3301 (data/test/puurkaev_3301.shp)
[1] WMS 1.1.1 takes ~ 0.2 s. see img/EPSG3301_1.1.1.png in the screenshots dir
[2] WMS 1.3.0 takes ~ 4.7 s. see img/EPSG3301_1.3.0.png

data native in EPSG:3035 (data/test/puurkaev_3035.shp)
[3] WMS 1.1.1 takes ~ 0.2 s. see img/EPSG3035_1.1.1.png
[4] WMS 1.3.0 takes ~ 3.9 s. see img/EPSG3035_1.3.0.png

data native in EPSG:4326 (data/test/puurkaev_4326.shp)
[5] WMS 1.1.1 takes < 0.2 s. see img/EPSG4326_1.1.1.png
[6] WMS 1.3.0 takes < 0.2 s. see img/EPSG4326_1.3.0.png

data native in EPSG:4326 (data/test/puurkaev_4326.shp) but requested
in EPSG:3301
[7] WMS 1.1.1 takes < 0.5 s. see img/EPSG4326_to_EPSG3301_1.1.1.png
[8] WMS 1.3.0 takes < 0.5 s. see img/EPSG4326_to_EPSG3301_1.3.0.png

Request URLs aswell for the sake of making it easier to repeat the requests

[1] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_3301&STYLES=point&SRS=EPSG%3A3301&WIDTH=768&HEIGHT=486&BBOX=320676.1358612784%2C6349387.490053313%2C789779.5117497771%2C6646241.970107753

[2] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_3301&STYLES=point&CRS=EPSG%3A3301&WIDTH=768&HEIGHT=486&BBOX=6349387.490053313,320676.1358612784,6646241.970107753,789779.5117497771

[3] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_3035&STYLES=point&SRS=EPSG%3A3035&WIDTH=768&HEIGHT=525&BBOX=4953071.972760203%2C3888121.7958570817%2C5422175.348648702%2C4208797.93171836

[4] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_3035&STYLES=point&CRS=EPSG%3A3035&WIDTH=768&HEIGHT=525&BBOX=3888121.7958570817,4953071.972760203,4208797.93171836,5422175.348648702

[5] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_4326&STYLES=point&SRS=EPSG%3A4326&WIDTH=768&HEIGHT=330&BBOX=20.7861328125%2C56.788330078125%2C29.2236328125%2C60.413818359375

[6] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_4326&STYLES=point&CRS=EPSG%3A4326&WIDTH=768&HEIGHT=330&BBOX=56.788330078125,20.7861328125,60.413818359375,29.2236328125

[7] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_4326&STYLES=point&SRS=EPSG%3A3301&WIDTH=768&HEIGHT=486&BBOX=320676.1358612784%2C6349387.490053313%2C789779.5117497771%2C6646241.970107753

[8] http://localhost:8080/geoserver/test/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=puurkaev_4326&STYLES=point&CRS=EPSG%3A3301&WIDTH=768&HEIGHT=486&BBOX=6349387.490053313,320676.1358612784,6646241.970107753,789779.5117497771

Environment

  • Geoserver 2.8.1 (war deploy) on Debian, data in a PostgreSQL/PostGIS database (different host)

  • GeoServer 2.9.1 (bin deploy) on CentOS, data in a SpatiaLite database

  • GeoServer 2.11.2 (bin deploy) on Ubuntu, data in a PostgreSQL/PostGIS database (same host)

  • GeoServer 2.11.2 (bin deploy) on Ubuntu, data in shapefiles

Status

Assignee

Andrea Aime

Reporter

tõnis kärdi

Triage

Fix versions

Affects versions

None

Priority

Medium
Configure