Building a cache system

Objectives

To build a system (caching system), reducing unnecessary calculations and disk accesses done by SolidOpt.

Description

Usually, places of storage resources have unequal access time. Access to some storages is slower, but they have many other advantages such as security. For example, access to resources stored on the computer file system is much faster than access to a resource on the Internet. However, the file system resource is uncertain, because it can be modified more freely.

Software applications perform read and write from/to various sources. Sometimes the read and the write is efficient but most of the times it is not. Along with them there are many calculations done again and again. The idea is to avoid as much as possible the unnecessary calculations and accesses by introducing a flexible caching system. We would like to build a system compensating the slow access time of the storages. It should be able to reduce the unnecessary calculations, too.

There is a very simple prototype (proof of concept) at http://svn.solidopt.org/SolidOpt/trunk/src/Services/Subsystems/Cache/. Please note the implementation of the caching system should not be SolidOpt-dependent. It will be adopted by the framework, however it should be possible to use from any other framework or application.

Knowledge prerequisite: C#, .NET/Mono

Expected results: The implementation should be useful for the SolidOpt project and should be adopted in the project.

Mentor: Alexander Penev