Version 8 (modified by 14 years ago) ( diff ) | ,
---|
MapGuide RFC 90 - Meta Tiling Support
This page contains an change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.
Status
RFC Template Version | (1.0) |
Submission Date | (Date/Time submitted) |
Last Modified | (your name here) Timestamp |
Author | Zac Spitzer, Uv |
RFC Status | (draft) |
Implementation Status | (testing sandbox) |
Proposed Milestone | (2.2) |
Assigned PSC guide(s) | (when determined) |
Voting History | (vote date) |
no vote |
Overview
Add support internally to the MapGuide Server Engine to map tile requests to larger meta tiles and then slice them up into the standard tile sizes.
Motivation
With complex maps, it's more efficient to render one large tile than many small ones.
There is little or no benefit for simple maps like the Sheboygan Sample.
Using our 140 layer example map we can observe the following timing using metatilefactor 1 & 4 and 3 different locking strategies in the attached chart MetatilingChart1.jpg.
Proposed Solution
Add a meta tile factor to the tile service, which then will render larger tiles enlarged by the provided factor.
to be sliced up into the smaller tiles which then get served to clients.
e.g.
Client -> GetTile(0,1) -> RenderMetaTile(0,0 - 1,1) -> SplitUp -> ReturnTile (0,1)
-> GetTile(1,1) -> wait................................... ReturnTile (1,1)
Issues
Locking the threads to the implicit producer consumer scheme is complex and the file locking seems not very efficient. To improve polling delay the Polling configuration value has been changed to ms semantics so we can specify 500ms.
In addition an ace_condition has been implemented to get rid of the lockfiles all together and further improve the response time. (LockMethod == 3) In addition to the standard approach with one lock per sub tile (LockMethod == 2) we also experimented using a single file per metatile (LockMethod == 1).
Implications
For example when using a meta tiling factor of 4, 15 tiles will wait while the meta tile is rendered and sliced up. A most efficient locking scheme will have significant effect on this behaviour.
Test Plan
The output of a tile map request should be identical whether served with meta tiling enabled or without.
Funding/Resources
TBD
Sandbox
Attachments (4)
-
MetatilingChart1.jpg
(9.1 KB
) - added by 15 years ago.
First test results with metatiling
-
GetTileCacheLifeCycles.png
(75.7 KB
) - added by 14 years ago.
Sequence for GetTile with Caching
-
MapGuideMemoryMetatilingLockfiles.png
(18.9 KB
) - added by 13 years ago.
MapGuideMemoryMetatilingLockfiles
-
MapGuideMemoryNoMetatiling.png
(16.8 KB
) - added by 13 years ago.
MapGuideMemoryNoMetatiling.png
Download all attachments as: .zip