Techniques are described for caching data from a software system, such as
an enterprise software system. The techniques may be applied to a
computing device connected to the software system via a network. In one
example, the cache comprises an elegant, file-based cache that includes
an object store that stores the cached data and an allocation table that
manages allocation of space in the object store. The caching techniques
provide a robust storage system which preserves a previous copy of the
allocation table while updating the current table. Moreover, cache
management techniques are described that utilize an automatic collapse to
keep cache file sizes to a minimum. When multiple software applications
are executing on the computing device, the techniques allow concurrent
access to the cache by the multiple software applications while
maintaining the integrity of the stored data.