[Mapserver-dev] Fwd: MapServer testing results

Paul Ramsey pramsey at refractions.net
Sat Sep 18 19:46:02 EDT 2004


Howard,
I am not completely clear on your explanation...
I see you first pull the extent of the layer and do a quick test to see if the
current draw extent intersects the data at all:

  status = SE_layerinfo_get_envelope(sde->layerinfo, &envelope);

Is this guaranteed to be cheap in all cases, at all times? What if I have not
indexed my SDE layer?
Paul



Quoting Howard Butler <hobu at iastate.edu>:

> Paul,
> 
> Is the extent that you are drawing a subset of the entire set of
> layers?  ie, do you have an extent for the map that is set to the entire
> extent of all layers before you draw?  MapServer basically queries the
> extent that is given in the mapfile in SDE.  If you are subsetting, set the
> extent to something smaller first, and then draw your query.  I use a kind
> of multi-tiered query approach to get the responsiveness I want in my
> applications.  First I query for a region (like BC), set my map extent to
> that and then draw.  This is with mapscript of course.
> 
> There is a quite a bit of brute force geometry conversion going on in
> MapServer to convert from SDE geometries. The geometries stored in SDE are
> the same as in shapefiles (I think, not 100% positive on this - Frank might
> have more insight).  Maybe we could look into using shapelib or OGR's
> geometry stuff to do the conversion instead of what exists in
> MapServer.  The memory costs are also high because we are making at least
> one extra copy of all of the points in the geometries to get them in
> MapServer format.
> 
> Then maybe we're copying them again when we project them... :(  I'm
> speculating that ArcIMS hands off the projection duties to the server when
> the projection it is drawing doesn't match the projection of the
> layer.  This saves ArcIMS from having to deal with a full copy of all of
> the geometries and then projecting them all like MapServer does.  I would
> rather poke my eyes out with flaming dung sticks than try to make MapServer
> behave this way though :)
> 
> With current CVS, I've also noticed that the first time connection cost is
> very high, with subsequent costs being very cheap due to the connection
> pooling.  ArcIMS's connection cost profile should be quite similar to
> MapServer, as I would assume that it is doing some connection pooling as
> well.
> 
> There still are some bugs with connection pooling that cause my stuff to
> segfault from time to time.  After I upgraded to SDE 9.0, the strategy that
> I took to prevent them didn't work anymore.  I will be getting back to this
> problem soon, but I don't think it is an issue here.
> 
> The first thing we could do is feed the extent that is given in the request
> to SDE instead of using the one specified in the mapfile.  That will
> prevent SDE from sending back a lot of extra geometries (and attributes if
> you're getting those as well).  I don't know that it does this now...Steve
> might have more insight/comments on this.
> 
> Enough speculation an innuendo for a Saturday night...
> 
> Howard
> 
> 
> 
> 







More information about the mapserver-dev mailing list