This presentation was held by Murali Krishnaprasad, who is a prestigious Microsoft professional. He is Principal Architect of Velocity – the distributed caching platform”. His presentation revolved around new methods and services for better caching web application, but also on scaling this methods for a computer farm or a cluster.
Let’s take a look on the system architecture:
First are presented three ways that helps websites by caching:
- Reference Data (Social Network) : local cache in webtier who keeps the link between Usernames and their corresponding database IDs and distributed cache keeping friends list usernames;
- Activity-Oriented Data (Enterprise LOB Application): the caches are now kept in Application Tier instead directly in Web tier, and integrated hubs keep their catalogs cached for easy retrieval;
- Resource-Oriented Data (Flight inventory and pricing booking service): the cache gets now his own compact layer whom keeps track on flight itineraries, segments of travel for interconnection in case of no direct flight, flight prices and seat inventory since most of customers want to choose also a specific seat (I personally love to fly on a seat with window, between cockpit and the wing plane because of visibility of terrain).
So there are lots of types of cache implementations – the question which arise is how this new service can improve the caching already existing ?
First thing that we notice is that it is a repository for cache. It is an explicit environment where almost any type of objects can be stored. Secondly, it can be distributed over several machines and still acts unitary.
More interesting points are underlined by Mr. Murali Krishnaprasad:
- it uses any device who has an Windows operating system, .Net framework installed, memory and network interface – not only expensive servers, but also normal development machines ( by example during the weekend when no one is in office );
- it increases performance by caching objects close to application;
- you can add more machines dynamically (by using one line of command prompt) as the load increases – the prerequisite is to have the Velocity service installed;
- the service has a backup mechanism which ensures that no data is lost when a machine who has a portion of cache exits ungracefully by keeping on all machines backups of cache from the other machines.
- it is an embedded service in ASP .Net application, so it can be used without much hassle, by using some directives in config file and CreateRepository and GET / PUT
One bad point that I noticed (in the final of the presentation – Questions part) is that all caching data is kept in memory, not being saved actively on hard drive.
The caching mechanism implements a expiry mechanism who ensures that the cached data is dropping old and unused data, but also refreshes it from time to time.
NOTE: All images presented here belong to Microsoft Corporation.