[mapserver-dev] mappostgis.c

Stephen Woodbridge woodbri at swoodbridge.com
Tue Nov 4 19:39:24 EST 2008


Paul, Steve,

I think I idly asked this in the past and it was ignored. Why would we 
not consider using something like SQLite to:
   1) cache the parse epsg codes into, or
   2) just compile the epsg codes into a SQLite DB that could be 
accessed instead of the textfile.

Here are some random thoughts on the subject:

o the data could be preparsed into fields or a C struct that is copied 
into a blob and retrieved as needed
o SQLite licensing is compatible with mapserver
o yes - people might not want to have to compile the epsg file into a DB
o yes - it increases the technology footprint slightly
o but it might be useful for many other mapserver caching needs
o its thread safe, stable and very fast
o it could be configured to support both models: DB or text file by a 
PROCESSING directive in the MAP PROJECT block to point to the DB. 
Although it is probably cleaner to just support one. A simple utility 
could be provided like "epsg2db /path/to/proj.db" to compile the text 
file into a db.

I'm just thinking out loud here. Does this make sense to anyone else?
25% of the processing time is a huge win! that means a server would have 
25% more capacity or you could serve the same number of requests with 
75% of the hardware you currently need.

-Steve W

Paul Ramsey wrote:
> On Tue, Nov 4, 2008 at 10:54 AM, Steve Lime
> <Steve.Lime at dnr.state.mn.us> wrote:
>> A good threat, probably long overdue. Do you have any feel for the
>> performance end of things? I recall the Geoserver tests showing
>> GeoServer performing substantially better than MapServer w/regards 
>> to PostGIS.
> 
> OK, this isn't testing against Geoserver, just against 5.2, and the 
> result is, 5.4trunk is maybe 5% slower. Which is not unsurprising, 
> since now the geometry is transiting a text encoding on the way. I
> had my fingers crossed that the simpler database handling would speed
>  things up, but no go.
> 
> In terms of straight-up profiling information:
> 
> 25% of cycles are still spent in pj_init, and this is *after* I moved
>  the two relevant EPSG codes to the top of the file. Geoserver has 
> objects cached. 20% of cycles are spent in image compression (gif or
> png). The Geoserver ImageIO might have optimized image compressors
> (my work with IPP impresses on me how much gain is available in this
> area).
> 
> The penalty for parsing the proj4 definitions every time, even for 
> layers that aren't being drawn, is certainly high, and of course
> grows the more layers you have.  However, these overheads also exist
> in the shape file chain, so the difference between PostGIS and Shape
> relative to Geoserver remains unexplained.
> 
> P. _______________________________________________ mapserver-dev
> mailing list mapserver-dev at lists.osgeo.org 
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev



More information about the mapserver-dev mailing list