[ka-Map-users] Performance problems

Paul Spencer pspencer at dmsolutions.ca
Mon Feb 5 08:06:40 EST 2007


Pje,

using no-cache is a "BAD THING" (tm).  It causes the whole metatile  
to redraw for every tile request.  This is absolutely the worst case  
performance.

What you really want to do is use is something like:

"tile_source" "redraw"
"redraw_interval" "150"
"refresh_interval" "300"

This will cause the client to automatically re-request tiles every  
300 seconds (5 minutes) and the tiles will be considered stale and be  
recreated every 150 seconds (2.5 minutes).

This allows the tiles to be cached for 2.5 minutes so when a client  
loads a tile, it only causes one map draw per metatile rather than a  
map draw per tile.  The tiles are time-stamped and when a request  
comes in for a tile that is past the time allowed, it redraws the  
cached tiles.  The timestamp is done per-layer so that all the tiles  
are synchronized.

The refresh interval ensures that the layer is dynamically updated  
even if the user does nothing.

You can play with the times to get the desired effect and balance  
your load, but you should find that this produces substantially  
better results for you.

Cheers

Paul

On 5-Feb-07, at 7:53 AM, Pje wrote:

> Hi,
>
> I am having some problems with two layers that use tile_source  
> "nocache".
>
> I am using it because these layers are respectively points sent by  
> fishing vessels and areas. These points are sent at 5min intervals  
> and the areas are inserted by the user. So, *i think* i can't use  
> cache in this case.
>
> The problem is that the map is taking too much time to load. The  
> points table in the database have 18.000 registers... and there  
> will be a lot more. And there is about 18 areas.
>
> Also, I am using variable substitution in mapfile. My points layer  
> is something like that:
>
> layer
>     name "track"
>     group "Track"
>     connectiontype POSTGIS
>     connection "dbname=xxx user=xxx password=xxx host=xxx port=5432"
>     data "%data%"
>     type line
>     status on
>     metadata
>         tile_source "nocache"
>     end
>     class
>         name "track"
>         color 0 0 0
>     end
> end
>
>
> When the user select some vessel, I do that using javascript:
>
> var map = myKaMap.getCurrentMap();
> var track = mapa.getLayer('track');
> track.replacementVariables = {vessel: id_vessel};
> track.redraw();
>
> The areas layer is using the same logic.
>
> So, there is a way to achieve that but with better perfomance? The  
> performance was ok before I add these two layers. Any tips?
> _______________________________________________
> ka-Map-users mailing list
> ka-Map-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/ka-map-users

+-----------------------------------------------------------------+
|Paul Spencer                          pspencer at dmsolutions.ca    |
+-----------------------------------------------------------------+
|Chief Technology Officer                                         |
|DM Solutions Group Inc                http://www.dmsolutions.ca/ |
+-----------------------------------------------------------------+






More information about the ka-Map-users mailing list