A middle-tier Web server with a queryable cache that contains items from
one or more data sources. Items are included in the cache on the basis of
the probability of future hits on the items. When the data source
determines that an item that has been included in the cache has changed,
it sends an update message to the server, which updates the item if it is
still included in the cache. In a preferred embodiment, the data source is
a database system and triggers in the database system are used to generate
update messages. In a preferred embodiment, the data access layer
determines whether a data item required by an application program is in
the cache. If it is, the data access layer obtains the item from the
cache; otherwise, it obtains the item from the data source. The queryable
cache includes a miss table that accelerates the determination of whether
a data item is in the cache. The miss table is made up of miss table
entries that relate the status of a data item to the query used to access
the data item. There are three statuses: miss, indicating that the item is
not in the cache, hit, indicating that it is, and unknown, indicating that
it is not known whether the item is in the cache. When an item is
referenced, the query used to access it is presented to the table. If the
entry for the query has the status miss, the data access layer obtains the
item from the data source instead of attempting to obtain it from the
cache. If the entry has the status unknown, the data access layer attempts
to obtain it from the cache and the miss table entry for the item is
updated in accordance with the result. When a copy of an item is added to
the cache, miss table entries with the status miss are set to indicate
unknown.
Een server van het midden-rijWeb met een queryable geheim voorgeheugen dat punten uit één of meerdere gegevensbronnen bevat. De punten zijn inbegrepen in het geheime voorgeheugen op basis van de waarschijnlijkheid van toekomstige klappen op de punten. Wanneer de gegevensbron dat bepaalt is een punt dat in het geheime voorgeheugen is omvat veranderd, verzendt het een updatebericht naar de server, die het punt bijwerkt als het in het geheime voorgeheugen nog inbegrepen is. In een aangewezen belichaming, is de gegevensbron een gegevensbestandsysteem en brengt in het gegevensbestandsysteem teweeg wordt gebruikt om updateberichten te produceren. In een aangewezen belichaming, bepaalt de laag van de gegevenstoegang of een gegevensonderdeel dat door een toepassingsprogramma in het geheime voorgeheugen is wordt vereist. Als het is, verkrijgt de laag van de gegevenstoegang het punt uit het geheime voorgeheugen; anders, verkrijgt het het punt uit de gegevensbron. Het queryable geheime voorgeheugen omvat een juffrouwlijst die de bepaling versnelt van of een gegevensonderdeel in het geheime voorgeheugen is. De juffrouwlijst wordt samengesteld uit de ingangen van de juffrouwlijst die met elkaar in verband het statuut van een gegevensonderdeel met de vraag brengen die wordt gebruikt om tot het gegevensonderdeel toegang te hebben. Er is drie status: juffrouw erop wijst, die dat het punt niet in het geheime voorgeheugen, klap is erop wijst, die dat het, en onbekend, erop wijst dat het niet geweten is of het punt in het geheime voorgeheugen is. Wanneer een punt referenced is, wordt de vraag die wordt gebruikt om toegang te hebben tot het voorgesteld aan de lijst. Als de ingang voor de vraag statusjuffrouw heeft, verkrijgt de laag van de gegevenstoegang het punt uit de gegevensbron in plaats van het proberen om het uit het geheime voorgeheugen te verkrijgen. Als de ingang de onbekende status heeft, hebben toegang de gegevens laag tot pogingen om het uit het geheime voorgeheugen te verkrijgen en de ingang van de juffrouwlijst voor het punt wordt bijgewerkt overeenkomstig het resultaat. Wanneer een exemplaar van een punt aan het geheime voorgeheugen wordt toegevoegd, worden de ingangen van de juffrouwlijst met statusjuffrouw geplaatst om op onbekend te wijzen.