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. In one embodiment, a dedicated collector
reclaims cache memory blocks for the processing threads. By utilizing a
dedicated collector thread, any processing penalty encountered during the
reclamation process is absorbed by the dedicated collector. Thus the user
session threads continue to operate normally, making the reclaiming of
cache memory blocks by the dedicated collector task thread transparent to
the user session threads. In an alternative embodiment, the process for
reclaiming page buffers is distributed amongst user processes sharing the
shared memory. Each of the user processes includes a user thread collector
for reclaiming a page buffer as needed and multiple user processes can
concurrently reclaim page buffers.
In een multi-threaded gegevensverwerkingsmilieu, vermindert een gedeeld geheim voorgeheugensysteem de hoeveelheid overtollige informatie die in geheugen wordt opgeslagen. Een voorgeheugengebied verstrekt zowel globale leesbare gegevens als privé programmeerbare gegevens aan verwerkingsdraden. Een bepaalde verwerkingsdraad heeft toegang tot gegevens door zijn privé meningen van gewijzigde gegevens en toen zijn globale meningen van read-only gegevens eerst te controleren. Het gegeven van Uncached wordt gelezen in een geheim voorgeheugenbuffer voor globale toegang. Als schrijf wordt de toegang vereist door de verwerkingsdraad, wordt het gegeven gekopieerd in een nieuwe geheim voorgeheugenbuffer, die aan de privé mening van de verwerkingsdraad wordt toegewezen. Het bijzondere gedeelde geheim voorgeheugensysteem steunt generationalmeningen van gegevens. Het systeem is bijzonder nuttig in online analytische verwerking van multidimensionele gegevensbestanden. In één belichaming, wint een specifieke collector voorgeheugenblokken voor de verwerkingsdraden terug. Door een specifieke collectordraad te gebruiken, wordt om het even welke verwerkingssanctie die tijdens het terugwinningsproces wordt ontmoet geabsorbeerd door de specifieke collector. Aldus blijven de draden van de gebruikerszitting normaal werken, makend terugwinnen van voorgeheugenblokken door de specifieke draad van de collectortaak aan de draden van de gebruikerszitting transparant. In een alternatieve belichaming, wordt het proces om paginabuffers terug te winnen verdeeld onder gebruikersprocessen delend het gedeelde geheugen. Elk van de gebruikersprocessen omvat een collector van de gebruikersdraad voor het terugwinnen van een paginabuffer zoals nodig en de veelvoudige gebruikersprocessen kunnen paginabuffers gelijktijdig terugwinnen.