High performance dynamic maps with open layers, mapserver and nginx

ps2015_directors-cut.gifDynamic maps are maps with underlying data that changes over time. Election results are a good example of such maps. You can see such a map here: http://maps.nrc.nl/ps2015/ps2015-100pct.php and during this article i'll describe our solution to the problem of the changing data, thus recreating map tiles and the need for a reliable cache. The cache is of essence in our example, because the vast majority of users will use the map while it is in flux. And that means extreme high server load. As long as a tile is in cache, the impact of a client hitting the server is minimal, we can serve the still valid tile to the user and spare our limited resources.

Creating Trackstat

The last weekend i've build my own scrobbling application visible for the world. Of course it's not finished, but the framework is working and it does what i missed since i abandoned last.fm. I hacked a couple of things together using of course the database of the squeezeserver software. This wonderful piece of software keeps track of what you listen when you use either a hardware player, or the softsqueeze simulation software. There was only one thing that prevented using the listening history of the squeezeserver and that was the fact that each rescan of your library did reset your play count. This can be solved by installing the trackstat plugin for the squeezeserver. This plugin delivers a lot more goodies once you start rating your tracks, but you can read all that on the original plugin page.
I added an extra table to my squeezeserver database, track_statistic_monthly which holds the history for each track. In the end this will give me the opportunity for instance to see which songs i liked two years ago, but never listen to anymore.

Tumblelog with Drupal, Simplefeed, Taxonomy and views

For my own documentation purposes I write this howto. If ths howto is helpful for you, that's even better. Keep in mind that with Drupal there are roughly unlimited ways to achieve what you want, that's the power as well as the weakness of Drupal.

For this website I wanted to create an aggregated Tumblelog. I wanted to import my bookmarks, findings and babblings elsewhere as a node. All items should be grouped under their original source and should show up in the correct order on th timeline. As described I tried FeedAPI to take care if importing the feeds as node, but I could not get it to act the way I intended it to be. And I'm now very happy with SimpleFeed.

Modules needed:

MySQL table cache

Dit is voorlopig het laatste deel over MySQL tuning. In de eerdere delen zagen we al dat een juiste instelling van de query_cache en key_buffer variabelen voor een betere performance van MySQL kunnen zorgen. De table_cache variabele verhoogt helaas niet de performance. Toch is een correcte instelling wel essentieel. Een foute (te lage) instelling beinvloedt de performance van MySQL in negatieve zin. Eerst maar eens onderzoeken wat de standaard instelling van MySQL is voor de table_cache.

MySQL Key buffers

In een andere howto hebben we gekeken hoe we ervoor kunnen zorgen dat MySQL queries kon oplsaan in zijn cache waardoor er een performance winst geboekt kan worden wanneer dezelfde query nogmaals wordt uitgevoerd. Voor de keys of indexen bestaat er eenzelfde mechanisme. Ik zal bij de behandeling ervan niet ingaan op de uitbreiding van dit principe in versie 4.1 en hoger.

MySQL query cache

De MySQL query cache kan de performance van de database ennorm vergroten. Standaard staat de query cache van MySQL aan, maar met een beetje betere keuze van de standaard waardes is het mogelijk om betere performance en betere resultaten te boeken. In deze howto alles over de query cache, wat het doet en hoe je hier optimaal gebruik van kan maken.

MySQL replicatie

Je kan verschillende redenen aanvoeren om serieus gebruik te maken van de replicatie mogelijkheden van MySQL. De belangrijkste reden blijkt in veel gevallen beschikbaarheid en een constante backup te zijn. Maar replicatie kan ook een uitkomst zijn voor performance problemen. In deze stap voor stap handleiding zal ik productie database repliceren op een tweede machine. Alle informatie die ik hier weergeef komt uit de prima online documentatie van MySQl zelf: setup replication.

thank you for watching  Creative Commons License