In a multi-threaded computing environment, a shared cache system reduces the
amount
of redundant information stored in memory. A cache memory area provides both global
readable data and private writable data to processing threads. A particular processing
thread accesses data by first checking its private views of modified data and then
its global views of read-only data. Uncached data is read into a cache buffer for
global access. If write access is required by the processing thread, the data is
copied into a new cache buffer, which is assigned to the processing thread's private
view. The particular shared cache system supports generational views of data. The
system is particularly useful in on-line analytical processing of multi-dimensional databases.