DE19961499A1 - Caching von Objekten in Platten-gestützten Datenbanken - Google Patents

Caching von Objekten in Platten-gestützten Datenbanken

Info

Publication number
DE19961499A1
DE19961499A1 DE19961499A DE19961499A DE19961499A1 DE 19961499 A1 DE19961499 A1 DE 19961499A1 DE 19961499 A DE19961499 A DE 19961499A DE 19961499 A DE19961499 A DE 19961499A DE 19961499 A1 DE19961499 A1 DE 19961499A1
Authority
DE
Germany
Prior art keywords
data
access frequency
memory
data storage
storage section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19961499A
Other languages
English (en)
Inventor
Mikael Ronstroem
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to DE19961499A priority Critical patent/DE19961499A1/de
Priority to PCT/EP2000/012356 priority patent/WO2001046809A1/en
Priority to AU28407/01A priority patent/AU2840701A/en
Priority to US09/741,122 priority patent/US6941432B2/en
Publication of DE19961499A1 publication Critical patent/DE19961499A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value

Abstract

Eine Datenverarbeitungseinrichtung (DPD) umfasst einen Hauptspeicher (MM) und eine Verarbeitungseinrichtung (PM). Daten von einem Datenbanksystem (DBS) werden als Seiten in dem Hauptspeicher (MM) gespeichert. Während einer Verarbeitung der einzelnen Objekte (OB) der Seiten (P) wird die Zugriffsfrequenz auf jedes Objekt (OB), das in dem Hauptspeicher (MM) gespeichert ist, bestimmt. Objekte mit ähnlichen Zugriffsfrequenzen werden in demselben Datenspeicherbereich des Hauptspeichers (MM) gespeichert. Insbesondere können Datenobjekte (OB) an Datenspeicherobjekte höherer Ordnung bewegt werden, denen eine höhere Zugriffsfrequenzbereich zugewiesen worden ist. Somit bleiben Daten, die häufiger von der Verarbeitungseinrichtung (PM) verwendet werden, in dem Hauptspeicher (MM) länger, und Datenobjekte, die nicht so häufig verwendet werden, werden an die Datenbank zurückgeschrieben oder werden früher überschrieben. Somit kann eine effiziente Verwendung des Speicherplatzes und eine Verringerung der Zugriffszeit zum häufigen Bewegen von verwendeten Datenobjekten erzielt werden.

Description

GEBIET DER ERFINDUNG
Die vorliegende Erfindung betrifft ein Verfahren und eine Datenverarbeitungseinrichtung zum Lesen von Daten von einer primären Speichereinrichtung und zum Speichern der Daten in einer sekundären Speichereinrichtung für einen Lese-/Schreib- Zugriff durch eine Verarbeitungseinrichtung. Die Daten in der primären Speichereinrichtung sind in einer Vielzahl von Datenblöcken organisiert, die jeweils aus einem oder mehreren Datenobjekten bestehen. Die Erfindung betrifft auch ein Datenbanksystem, das als eine primäre Speichereinrichtung einen Plattenspeicher, der die Datenbank enthält, einschließt, und eine Datenverarbeitungseinrichtung zum Verarbeiten, d. h. Schreiben/Lesen und Aktualisieren von individuellen Datenobjekten der Datenbank umfasst.
Insbesondere adressiert die Erfindung das Problem, wie Speicherplatz in den sekundären Speicher effizient verwendet werden kann, wenn eine große Vielzahl von Datenobjekten vorübergehend in der zweiten Speichereinrichtung gespeichert werden müssen.
HINTERGRUND DER ERFINDUNG
Fig. 1-1 zeigt ein typisches Datenbanksystem DBS, das einen primären Speicher D, z. B. einen primären Plattenspeicher D, und eine Datenverarbeitungseinrichtung DPD umfasst. In dem primären Speicher D werden Daten einer Datenbank DB als eine Vielzahl von Datenblöcken p00, p01, . . . p32 gespeichert. Typischerweise werden die einzelnen Datenblöcke p als Seiten (pages) der Datenbank DB bezeichnet, d. h. die Daten in der primären Speichereinrichtung D sind als eine Vielzahl von Seiten P organisiert. Wie in Fig. 1-1 angezeigt, besteht jeder Datenblock oder jede Datenseite P aus einem oder mehreren Datenobjekten OB. Wie für den Datenblock P02, P32 gezeigt, umfasst jede Seite eine Vielzahl von N und M Datenobjekte OB02-1 . . . OB02-M, OB32-1 . . . OB32-M.
Die Datenverarbeitungseinrichtung DPD umfasst als die zweite Speichereinrichtung mm einen Hauptspeicher MM, z. B. einen Arbeitsspeicher in einem Computer, und eine Verarbeitungseinrichtung PM, z. B. eine Zentralverarbeitungseinheit eines Computers. Ferner kann die Datenverarbeitungseinrichtung DPD eine sogenannte Hash- Tabelle HT zum Bestimmen der Adressen in der sekundären Speichereinrichtung mm umfassen. Die Verwendung der Hash- Tabelle HT wird mit näheren Einzelheiten nachstehend erläutert.
Wie in Fig. 1-1 gezeigt, umfasst der Hauptspeicher MM wenigstens einen Seiten-Cache-Speicherabschnitt PCS, der als die traditionelle Lösung zum Caching von Objekten in Datenbanken verwendet wird. Zusätzlich hat der Hauptspeicher einen Arbeitsspeicher oder einen Speicherabschnitt RDS für residente Daten, in dem Datenobjekte ebenfalls gespeichert werden können. Wo der Seiten-Cache-Speicherabschnitt PCS angeordnet ist, hängt von der Konfiguration der Datenverarbeitungseinrichtung ab. Zum Beispiel kann der Seiten-Speicher PCS auch innerhalb der Verarbeitungseinrichtung PM vorgesehen sein.
Die Verwendung eines Seiten-Cache-Speichers PCS ist in der Computertechnologie altbekannt. Grundlegend können Befehle und Daten in einem Cache-Speicher gespeichert sein und wenn auf derartige Befehle und Daten in dem Cache-Speicher wiederholt innerhalb einer kurzen Zeitperiode zugegriffen werden, so wie dies oft mit Programmschleifen in der Verarbeitungseinrichtung PM passiert, dann wird die Programmausführung, d. h. der Lese-/Schreib-Zugriff beschleunigt werden. Der Cache kann normalerweise nur kleine Teile der ausführenden Befehle oder Daten halten. Wenn der Cache-Speicher voll ist, werden seine Inhalte durch neue Befehle oder Daten ersetzt, sowie sie aus dem primären Speicher D geholt werden. Eine Vielzahl von Cache- Ersetzungsalgorithmen werden verwendet. Das Ziel von diesen Algorithmen besteht darin, die Wahrscheinlichkeit zu maximieren, dass die Befehle oder Daten, die in der Datenverarbeitungseinrichtung DPD benötigt werden, in dem Cache-Speicher gefunden werden. Diese Wahrscheinlichkeit ist als das Cache-Treffer-Verhältnis (Cache-hit-ratio) bekannt. Ein höheres Trefferverhältnis bedeutet, dass ein größerer Anteil der Befehle oder Daten in dem Cache gefunden werden und keinen Zugriff auf einen langsameren Speicherabschnitt RDS für residente Daten benötigen. Die grundlegende Idee der Verwendung eines Cache-Speichers kann an verschiedenen Punkten in einem Computersystem in Fällen angewendet werden, bei denen der Hauptspeicher nicht groß genug ist, um sämtliche Programme und deren Daten zu enthalten.
Wie bereits voranstehend in der Diskussion der Datenbank DB angezeigt, werden Datenblöcke oder Segmente eines Programms oder von Daten oft als Seiten (pages) bezeichnet und von dem Plattenspeicher D zu dem Hauptspeicher MM zur Verarbeitung übertragen. Wenn andere Seiten benötigt werden, können sie die Seiten ersetzen, die bereits in dem Cache-Speicher vorhanden sind, wenn der Cache-Speicher voll ist. Die automatische Bewegung eines großen Programms oder eines Datensegments zwischen dem Hauptspeicher MM und dem Plattenspeicher D, wenn die Verarbeitungseinrichtung PM arbeitet, wird durch eine Kombination einer Betriebssystem- Software und einer Steuer-Hardware gemanagt. Der gesamte Prozess zum Laden und Organisieren von Daten in dem Hauptspeicher MM wird als Speichermanagement (Speicherverwaltung) bezeichnet.
In Fig. 1-1 können die Daten der Datenbank DB im Zusammenhang mit dem Seiten-Cache-Speicherabschnitt PCS wie folgt verwaltet werden. Wenn die Verarbeitungseinrichtung zum Beispiel einen Lesezugriff auf ein bestimmtes Objekt OB der Datenbank ausführen möchte, berechnet sie zunächst ihre Seiten-Identität. Die Seiten-Identität ist grundlegend ein Identifizierer, der der Verarbeitungseinrichtung PM die Seiten-Identifikation mitteilt, zu der das gewünschte Datenobjekt OB gehört. Wenn die Verarbeitungseinrichtung z. B. einen Lesezugriff auf das Objekt OB02-2 oder das Datenobjekt OB32-2 wünscht, die Teile der Datenblöcke (Seiten) p02, p32 sind, berechnet die Verarbeitungseinrichtung PM zunächst die Seitenidentität PID = p02, p32 in Schritt S1. Diese Seitenidentität identifiziert die Seite, wenn sie noch in der Datenbank DB gespeichert ist und wenn sie bereits an den Seiten-Cache-Speicherabschnitt PCS transferiert worden ist.
Wie in Fig. 1-1 gezeigt, sind die Datenbank DB sowie der Seiten-Cache-Speicherabschnitt PCS beide in Datenblöcken organisiert, die aus Seiten bestehen. Das heißt, die Datenbank DB umfasst die Daten, die in Seiten organisiert sind, und in dem Seiten-Cache-Speicherabschnitt sind auch seitenartige Datenbereiche PCSP vorgesehen. Der Grund ist, dass sowieso nur Seiten für Datenblöcke von den primären Speicher D an den sekundären Speicher MM transferiert werden, selbst wenn nur ein kleines Datenobjekt OB benötigt wird.
Eine typische Größe eines Datenobjekts OB ist 4 kBytes oder 8 kBytes. Eine Seite ist somit eine logische Konstruktion eines Blocks auf der Platte. Eine typische Zugriffszeit zum Auffinden einer Seite auf der Platte ist 8 ms, wohingegen nur eine viertel Mikrosekunde zum Zugreifen auf Daten erforderlich ist, die in dem Hauptspeicher MM gespeichert sind. Deshalb ist die Zeit, die zum Auffinden der Seite und zum Transferieren der Seite an dem Seiten-Cache- Speicherabschnitt PCS benötigt wird, ein wichtiger Faktor, der die Zugriffszeit auf ein individuelles Datenobjekt verringert.
Wenn die Seitenidentität p02, p32 im Schritt S1 bestimmt worden ist, besteht der nächste Schritt darin, einen Nachschlag in einer Datenstruktur durchzuführen, die als die Hash-Tabelle HT bezeichnet wird, um zu identifizieren, wo die gewünschten Seiten gegenwärtig in dem Hauptspeicher, genauer gesagt in den Seiten-Cache-Abschnitt PCS, gespeichert sind. Zwei Szenarien können auftreten, d. h. entweder ist die Seite bereits in dem Seiten-Cache-Speicher abschließend gespeichert oder die relevante Seite ist noch nicht in dem Seiten-Cache- Speicherabschnitt gespeichert worden. Wenn die Seite, die das gewünschte Datenobjekt enthält, bereits gespeichert worden ist, z. B. wenn die Seite P02 das gewünschte Objekt OB02-2 enthält, bereits in dem Seiten-Cache-Speicher gespeichert worden ist, dann ist es nur erforderlich, im Schritt S2 die Adressenstelle AD-P02 der relevanten Seite P02 aus der Hash- Tabelle HT auszulesen. Im Schritt S3 gibt die Verarbeitungseinrichtung PM eine Lesezugriffsaufforderung an den Hauptspeicher, um das Datenobjekt aus der Seite P92 an der bestimmten Speicherstelle AD-P02 auszulesen.
Wenn die Seite in dem Seiten-Cache-Speicherabschnitt PCS noch nicht gespeichert worden ist, dann berechnet die Verarbeitungseinrichtung PM in ähnlicher Weise die relevante Seite p32, eine Ladeaufforderung zum Laden der relevanten Seite P32 aus der Datenbank DB wird in Schritt S1 gegeben; und dann werden die Schritte S2, S3 mit der relevanten Adresse AD-P32 der Seite, wo das gewünschte zu lesende Objekt OB32-2 vorhanden ist, wiederholt. Die Datenstruktur, die zum Bestimmen der Adressen für die Seiten verwendet wird, ist oft eine Hash-gestützte Datenstruktur, wie voranstehend erläutert.
Wie sich aus der obigen Beschreibung entnehmen lässt ist es immer erforderlich, dass die vollständige Seite in dem Seiten-Cache-Speicherabschnitt PCS in einem von seinen Datenbereichen PCSP gespeichert ist, sogar wenn nur ein kleines Datenobjekt von wenigen hundert Bytes von der Verarbeitungseinrichtung PM gelesen werden muss. Ferner sei darauf hingewiesen, dass der Seiten-Cache-Speicher PCS nur ein vergleichsweise kleiner Speicher ist und dass er nach einer gewissen Zeit mit neuen Daten von der Datenbank aktualisiert werden muss. Im Zusammenhang mit dem Hash- Tabellenzugriff ist es auch möglich, die Datenbereiche PCSP zu spezifizieren, die zuerst überschrieben werden, z. B. bevor andere Datenbereich PCSP überschrieben werden, wenn neue Daten von der Datenbank DB geladen werden. Somit ist eine Art von Hierarchie bezüglich des Ladens und des Überschreibens von Daten in dem Seiten-Cache-Speicherabschnitt PCS möglich.
Ferner können zu einem bestimmten Zeitpunkt p10, p01, p02, p32, p05, p22 in dem Seiten-Cache wie in Fig. 1-1 gezeigt, gespeichert worden sein, jedoch können häufige Lesezugriffe nur auf die Seiten p02, p06 durchgeführt worden sein (dies ist mit einer Schraffierung von der linken unteren Ecke zu der rechten oberen Ecke in Fig. 1-1 dargestellt), wohingegen auf Seiten p01, p22 nur mäßig zugegriffen worden ist (was mit einer Schraffierung von der oberen linken Ecke zu der rechten unteren Ecke in Fig. 1-1 angedeutet ist). Auf die Seite p10 (die keine Schraffierung aufweist) ist nicht sehr häufig zugegriffen worden. Nachstehend wird ein Seiten-Datenbereich PCSP, auf den häufig zugegriffen worden ist, auch als eine "heiße" Seite bezeichnet. Genauso wird auch ein Seiten- Datenbereich PCSP, auf den nicht häufig zugegriffen wird, als eine "kalte" Seite bezeichnet. Seiten, die Lesezugriffe dazwischen aufweisen, werden als "warme" Seiten bezeichnet.
Wie es sich der Fig. 1-1 entnehmen lässt, wird auch von der Tatsache, dass immer vollständig Seiten in dem Seiten-Cache gespeichert werden müssen, ein großer Teil des Speicherplatzes in dem Seiten-Cache-Speicherabschnitt PCS belegt, obwohl die Seiten selbst Lesezugriffsfrequenzen aufweisen, weil auf individuelle Datenobjekte nur dadurch zugegriffen werden kann, dass zunächst die vollständige Seite in dem Seiten-Cache gespeichert wird.
Jedoch weisen die meisten Datenbanksysteme DBS nicht die Möglichkeit auf, ein Objekt von einer Seite zu einer anderen Seite zu bewegen. Der Grund ist, dass der Seiten- Identifizierer PID ein Teil der Referenzen zu dem Datenobjekt ist und diese Referenz entweder ein Teil der kleineren Referenzen oder ein Teil von Referenzen von sogenannten Indices sein könnte. Deshalb erfordert eine Sammlung von Datenobjekten aus "heißen" Seiten auf der neuen Seite, dass sämtliche Referenzen zu der (nur vorübergehend verfügbaren) Seiten-Struktur in dem Seiten-Cache-Speicher PCS aktualisiert werden müssen. Dies erfordert Zeit und ist unpraktisch.
In den meisten Datenbanken DBS sind die ursprünglichen Daten als Seiten auf einem Plattenspeicher gespeichert und der Hauptspeicher MM enthält einen Seiten-Cache-Speicher PCS, der mit neuen Daten von der Datenbank DB zu spezifischen Zeiten überschrieben wird, wenn ein Zugriff auf ein bestimmtes Datenobjekt benötigt wird. Jedoch führt die Verarbeitungseinrichtung PTM natürlich nicht nur Lesezugriffe auf die Seiten in dem Seiten-Cache aus, sondern verarbeitet auch Datenobjekte und aktualisiert somit Daten auf den Datenobjekten. Wenn z. B. ein Datenobjekt die Adresse eines Kunden betrifft, dann greift die Verarbeitungseinrichtung PM, wenn sich die Adresse des Kunden ändert, auf dieses Datenobjekt zu und ändert die Adressenspezifikation und speichert das Datenobjekt dann wieder auf seiner Seite in dem Seiten-Cache PCS. Somit können die Daten auf den Seiten- Cache-Speicherseiten neuer als auf dem Plattenspeicher D sein. Deshalb müssen die Hauptspeicherseiten manchmal an den Plattenspeicher D zurückgesendet werden, Gewöhnlicherweise stellt ein Log sicher, dass Aktualisierungen, die nicht auf der Platte sind, nicht verloren gehen.
Während in Fig. 1-1 nur vorübergehend eine Anzahl von Seiten, nicht sämtliche Seiten der Datenbank DB, in dem Seiten-Cache- Abschnitt PCS gespeichert worden sind, weist irgendeine bestimmte Art von Hauptspeicher-Datenbank wie in Fig. 1-2 gezeigt, sämtliche Daten in dem Seiten-Cache-Speicher PCS gespeichert auf. Ein derartiger Typ von Datenbanken wird als Hauptspeicherdatenbanken bezeichnet und erfordert natürlich einen immensen Speicherplatz in dem Seiten-Cache-Speicher PCS. Während dies die Zugriffszeit verringert, da es nicht erforderlich ist, zunächst die Seite in der Datenbank DB zu lokalisieren und diese Seite in dem Seiten-Cache-Speicher PCS zurückzuholen, sind die Speicheranforderungen für den Fall von großen Datenbanken DB sehr extensiv.
Wie in Fig. 1-1 gezeigt ist es auch möglich, dass der Sekundärspeicher MM einen ersten (Seiten-Cache) Speicher PCS enthält, aber auch einen zweiten Speicherabschnitt RDS (für residente Daten). Irgendwelche neuen Typen von Datenbanksystemen DBS weisen Daten auf, die immer in dem Speicherabschnitt RDS für residente Daten vorhanden sind, wobei Daten nur gelegentlich in dem Seiten-Cache- Speicherabschnitt gespeichert werden. Zum Beispiel sind, wie in Fig. 1-1 angezeigt, die Datenobjekte OB01-1, OB10-1, OB22-1, OB32-2 in dem Speicherabschnitt RDS für residente Daten (der auch als ein Seiten-Datenblock RDSP organisiert ist) resident sind und andere Seiten der Datenbank DB können als Seiten in dem Seiten-Cache-Speicher PCS gespeichert werden. Es ist sogar möglich, dass ein Teil einer Seite oder einer Aufzeichnung immer in dem Speicherabschnitt RDS für die residente Daten vorhanden ist und andere Teile der Seite oder der Aufzeichnung nur gelegentlich in dem Seiten-Cache- Speicherabschnitt PCS vorhanden sind. Natürlich muss es, wie in Fig. 1-1 angezeigt, Referenzen REF01, REF22, REF32 zwischen diesen Teilen geben. Dies stellt die Möglichkeit bereit, leicht Daten zu bewegen, die vorübergehend in dem Seiten-Cache residieren, d. h. Seiten, die nicht zu häufig verwendet werden ("kalte" Seiten) an die Datenbank DB zurückzubewegen und nur Teile der Seite, d. h. das Objekt OB22-1, wird in dem Speicherabschnitt RDS für residente Daten gehalten. Natürlich müssen sämtliche Referenzen zu dem Speicherabschnitt für residente Daten durchgeführt werden und dies bedeutet, dass es leicht wird, die Plattendaten zu bewegen.
ZUSAMMENFASSUNG DER ERFINDUNG
Wie voranstehend erläutert gibt es verschiedene Typen von Datenbanken DBS, die nur einen Seiten-Cache-Speicher PCS oder einen Seiten-Cache-Speicherabschnitt PCS zusammen mit einem Speicherabschnitt RDS für residente Daten in dem Hauptspeicher MM zum Zugreifen auf Datenobjekte verwenden. In dem Seiten-Cache-Speicherabschnitt PCS sowie in dem residenten Speicherabschnitt RDS werden immer Seiten- Datenbereiche PCSP, RDSP vorhanden sein, die mit Daten früher als andere in einem Datenblock PCSP, RDSP überschrieben werden. Unabhängig davon, wie "kalt" oder "heiß" die Seiten sind, gibt es immer die Notwendigkeit, vollständige Seiten in dem Seiten-Cache-Speicherabschnitt PCS zu speichern und Referenzen REF zu Datenobjekten einzurichten, die in dem Speicherabschnitt RDS für residente Daten residieren (es sei darauf hingewiesen, dass in Fig. 1-1 die Zeile zwischen PCS und RDS nicht eine Bewegung von Objekten, sondern die Herstellung von Referenzen bezeichnet).
Wenn man die Tatsache berücksichtigt, dass deshalb Seiten in dem Seiten-Cache gespeichert werden, die nicht häufig verwendet werden und somit Datenobjekte einer einzelnen Seite unter Umständen individuell unterschiedliche Lesezugriffsfrequenzen aufweisen können, ist die Speicherverwaltung wie voranstehend erläutert bezüglich der Speicheranforderung und der Speicherverwendung sehr ineffizient. Das heißt, Daten werden gespeichert und zurückgeholt, die tatsächlich nur selten verwendet werden.
Deshalb zielt die vorliegende Erfindung darauf ab, die voranstehend beschriebenen Nachteile zu umgehen. Insbesondere besteht die Aufgabe der vorliegenden Erfindung darin, ein Speicherverfahren und eine Datenverarbeitungseinrichtung so bereitzustellen, dass eine Speicherverwaltung mit einer effizienten Verwendung des verfügbaren Speicherplatzes in dem sekundären Speicher möglich ist.
Diese Aufgabe wird gelöst durch ein Verfahren (Anspruch 1) zum Speichern von Daten, die von einer primären Speichereinrichtung gelesen werden, in einer zweiten Speichereinrichtung für einen Lese-Schaltzugriff durch eine Verarbeitungseinrichtung, wobei die Daten in der primären Speichereinrichtung als eine Vielzahl von Datenblöcken organisiert sind, die jeweils aus einem oder mehreren Datenobjekten bestehen, und wobei die Datenobjekte an einem oder mehreren Datenbereichen der sekundären Speichereinrichtung gespeichert werden, wobei die Sekundärspeichereinrichtung eine Vielzahl von Datenspeicherabschnitten umfasst, die jeweils einen oder mehrere Datenbereiche umfassen, umfassend die folgenden Schritte: Bestimmen der Zugriffsfrequenz, die die Anzahl von Zugriffen in einem Einheitszeitintervall darstellt, für jedes Datenobjekt; und Speichern von Datenobjekten, dessen Zugriffsfrequenz in einem vorgegebenen Zugriffsfrequenzbereich fällt in Datenbereichen, die zu dem gleichen Datenspeicherabschnitt gehören.
Ferner wird diese Aufgabe gelöst durch eine Datenverarbeitungseinrichtung (Anspruch 10) zum Verarbeiten von Daten, die auf einer primären Speichereinrichtung gespeichert sind, wobei die Daten in der primären Speichereinrichtung als eine Vielzahl von Datenblöcken organisiert sind, die jeweils aus einem oder mehreren Datenobjekten bestehen, umfassend eine sekundäre Speichereinrichtung, die dafür ausgelegt ist, um die Datenobjekte an einem oder mehreren Datenbereichen zu speichern, wobei die sekundäre Speichereinrichtung umfasst: eine Vielzahl von Datenspeichereinrichtungen, die jeweils einen oder mehrere Datenabschnitte umfasst, und eine Verarbeitungseinrichtung, die eine Lese-/Schreibeinrichtung umfasst, die zum Lesen und Schreiben von Datenobjekten von dem und an die Datenbereiche der sekundären Speichereinrichtung umfasst, wobei die Verarbeitungseinrichtung ferner umfasst: eine Zugriffsfrequenz-Bestimmungseinrichtung, die dafür ausgelegt ist, um für jedes Datenobjekt, das in den Datenbereichen der sekundären Speichereinrichtung gespeichert ist, die Zugriffsfrequenz zu bestimmen, die die Anzahl von Zugriffen bezeichnet, die von der Lese-/Schreibeinrichtung in einem Einheitszeitintervall durchgeführt werden; wobei die Lese-/Schreib­ einrichtung dafür ausgelegt ist, um Datenobjekte, deren bestimmte Zugriffsfrequenz in einen vorgegebenen Zugriffsfrequenzbereich fällt, in Datenbereiche zu schreiben, die zu dem gleichen Datenspeicherabschnitt gehören.
Gemäß der vorliegenden Erfindung wird die Lese- oder Schreib­ oder Lese-/Schreib-Zugriffsfrequenz auf einer Datenobjekt- Ebene bestimmt. Deshalb kann entschieden werden, wann ein Datenobjekt an einen "heißeren" Datenspeicherbereich des sekundären Speichers bewegt werden sollte. Extrem "heiße" Datenobjekte können somit zu einem oft verwendeten Datenspeicherabschnitt des sekundären Speichers bewegt werden. Sehr "heiße" Datenobjekte können an den Hauptspeicher für einen Zugriff durch die Verarbeitungseinrichtung bewegt werden und "heiße" Objekte werden zu "heißen" Seiten in dem Seiten-Cache-Speicher bewegt. Somit können "heiße" Datenobjekte zusammengesammelt (in getrennten Seiten) in einem "heißen" Speicherbereich gesammelt werden und "kalte" Daten bleiben nicht länger in dem Seiten-Cache als erforderlich. Es sei darauf hingewiesen, dass dieses Konzept auf Datenbanksysteme DBS, die nur den Seiten-Cache- Speicherabschnitt verwenden oder den Seiten-Cache- Speicherabschnitt sowie den Abschnitt für residente Daten verwendet, anwendbar ist. Deshalb muss für nicht so heiße Objekte nicht so viel Hauptspeicherplatz verschwendet werden. Die Idee zum Bewegen von Objekten zwischen Seiten kann sicherstellen, dass heiße Objekte auf den gleichen Seiten bleiben und somit weniger Speicher für kalte Objekte verschwendet wird.
Gemäß einem ersten Aspekt (Anspruch 2, 11) der Erfindung sind die Zugriffsfrequenzen eines Zugriffsfrequenzbereichs eines (i-1)-ten Datenspeicherabschnitts größer als die Zugriffssequenzen eines i-ten Datenspeicherabschnitts, und jeder Zugriffsfrequenzbereich umfasst einen oberen und einen unteren Zugriffsfrequenzbereich-Schwellwert, wobei ein Datenobjekt des i-ten Datenspeicherabschnitts von dem i-ten zu dem (i+1)-ten Datenspeicherabschnitt bewegt wird, wenn die Zugriffsfrequenz des Datenobjekts größer als der obere Zugriffsfrequenzschwellwert ist und/oder ein Datenobjekt des (i+1)-ten Datenspeicherabschnitts von dem (i+1)-ten zu dem i-ten Datenspeicherabschnitt bewegt wird, wenn die Zugriffsfrequenz des Datenobjekts kleiner als der untere Zugriffsfrequenz-Schwellwert ist.
Durch Einstellen von vorgegebenen Zugriffsfrequenzbereichen für jeden Datenspeicherabschnitt kann sichergestellt werden, dass Datenobjekte zwischen Seiten bewegt werden, die zu unterschiedlichen Datenspeicherabschnitten gehören. Somit können Datenobjekte mit einer ähnlichen "Wärme" in dem gleichen Datenspeicherabschnitt gesammelt werden.
Gemäß einem zweiten Aspekt (Anspruch 3, 12) der Erfindung ist es auch möglich, Datenobjekte von einem Datenbereich zu einem anderen Datenbereich innerhalb des gleichen Datenspeicherabschnitts zu bewegen.
Somit kann eine feinere Diskretisierung der Bewegung von Datenobjekten zwischen Datenspeicherabschnitten ausgeführt werden, d. h. selbst innerhalb jedes Datenspeicherabschnitts muss das Datenobjekt, dessen Zugriffsfrequenz ansteigt, zunächst durch die Datenbereiche mit einer anderen Zugriffsfrequenz innerhalb des gleichen Datenspeicherabschnitts laufen.
Gemäß einem dritten Aspekt der Erfindung (Anspruch 4, 13) umfasst die sekundäre Speichereinrichtung: einen ersten Speicher mit einer Anzahl J von ersten Speicherdaten- Speicherabschnitten und einen zweiten Speicher mit einer Anzahl I der zweiten Speicherdaten-Speicherabschnitte, wobei jedem Daten-Speicherabschnitt ein vorgegebener Zugriffsfrequenzbereich zugeordnet ist, wobei die Lese-/Schreib- Einrichtung dafür ausgelegt ist, um ein Datenobjekt, das in einem i-ten zweiten Speicherdaten-Speicherabschnitt gespeichert ist und dessen Zugriffsfrequenz den entsprechenden oberen Zugriffsfrequenz-Schwellwert übersteigt, an den (i+1)-ten zweiten Speicherdaten- Speicherabschnitt oder an einen ersten Speicherdaten- Speicherabschnitt des ersten Speichers zu bewegen, und/oder ein Datenobjekt, das in einem i-ten zweiten Speicherdaten- Speicherabschnitt gespeichert ist und dessen Zugriffsfrequenz kleiner als die entsprechende untere Zugriffsfrequenz- Schwellwert ist, an den (i-1)-ten zweiten Speicherdaten- Speicherabschnitt oder an einen ersten Speicherdaten- Speicherabschnitt des ersten Speichers zu bewegen. Somit können Datenobjekte nicht nur zwischen Datenspeicher- Abschnitten eines Speicherabschnitts für residente Daten oder einem Seiten-Cache-Speicherabschnitt, sondern auch zwischen dem Seiten-Cache-Abschnitt und dem Speicherabschnitt für residente Daten bewegt werden.
Gemäß einem vierten Aspekt (Anspruch 5, 14) wird die bestimmte Zugriffsfrequenz zusammen mit dem Datenobjekt in den relevanten Datenbereich gespeichert. Somit trägt jedes Datenobjekt seinen eigenen Identifizierer bezüglich seiner "Wärme", wenn es zwischen Datenbereichen oder Datenspeicherabschnitten bewegt wird.
Gemäß einem fünften Aspekt der Erfindung (Anspruch 9, 18) ist der obere Zugriffsfrequenz-Schwellwert eines i-ten Datenspeicherbereichs größer als der untere Zugriffsfrequenz- Schwellwert des (i+1)-ten Datenspeicherbereichs, so dass eine Hysterese verwendet wird, wenn die Datenobjekte zwischen dem i-ten und dem (i+1)-ten Datenspeicherbereich bewegt wird, d. h. bei einer Bewegung aufwärts an die Datenspeicherbereiche wird eine Bewegung von einem Datenspeicherbereich an einen anderen Datenspeicherbereich - im Hinblick auf die Lesezugriffsfrequenz - früher ausgeführt als von einem höheren Datenbereich zu einem niedrigeren Datenspeicherbereich.
Weitere vorteilhafte Ausführungsformen und Verbesserungen können den abhängigen Ansprüchen entnommen werden. Ferner sei darauf hingewiesen, dass die Erfindung nicht auf die bestimmten nachstehenden Ausführungsformen beschränkt ist. Das heißt, die Erfindung umfasst auch Ausführungsformen, die Merkmale umfassen, die in der Beschreibung und/oder den Ansprüchen getrennt beschrieben worden sind. Nachstehend werden spezielle Ausführungsformen, die gegenwärtig von den Erfindern als die beste Vorgehensweise der Erfindung angesehen werden, unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben.
KURZBESCHREIBUNG DER ZEICHNUNGEN
In den Zeichnungen zeigen:
Fig. 1-1 ein Blockschaltbild eines herkömmlichen Datenbanksystems DBS;
Fig. 1-2 eine herkömmliche Hauptspeicher-Datenbank;
Fig. 2 ein Blockschaltbild eines Datenbanksystems DBS gemäß der Erfindung;
Fig. 3 eine vergrößerte Ansicht von Datenbereichen in Fig. 2;
Fig. 4 ein Flussdiagramm des Verfahrens gemäß einer Ausführungsform der Erfindung;
Fig. 5a eine Aktualisierungsprozedur zum Aktualisieren einer physikalischen Referenz zu einem Objekt unter Verwendung einer n-Indexstruktur; und
Fig. 5b eine Aktualisierungsprozedur unter Verwendung von Dateibeschreibungsattributen.
Es sei darauf hingewiesen, dass in den Zeichnungen die gleichen oder ähnliche Bezugszeichen die gleichen oder ähnliche Teile überall bezeichnen.
PRINZIP DER ERFINDUNG
Wie voranstehend erläutert ist eine der stärksten Einschränkungen bei der Verwendung des Hauptspeichers MM, dass die gesamten Daten einer Seite immer in dem Seiten- Cache-Speicher PCS unabhängig davon gespeichert werden, ob Datenobjekte der bestimmten Seite tatsächlich häufig von der Verarbeitungseinrichtung PM benötigt werden oder nicht. Wie erwähnt, ist es wünschenswert, sicherzustellen, dass heiße Objekte in dem Hauptspeicher gespeichert werden, ohne zu fordern, dass andere nicht-heiße Objekte auf einer Platte gespeichert werden.
Die grundlegende Idee der Erfindung besteht darin, dass Daten, auf die von der Verarbeitungseinrichtung PM nicht häufig zugegriffen, z. B. gelesen, geschrieben oder gelesen/geschrieben, wird, in dem Seiten-Cache PCS oder dem Speicherabschnitt RDS für residente Daten nicht gespeichert werden sollten. Die Idee besteht darin, dass durch Berechnen der Wärme eines Objekts bestimmt werden kann, wann ein Datenobjekt in einen heißeren Teil der Datenbank bewegt werden sollte.
Wie in Fig. 2 gezeigt umfasst eine Datenverarbeitungseinrichtung DPD zum Verarbeiten von Daten, die in einer primären Speichereinrichtung D gespeichert sind, wobei die Daten in der primären Speichereinrichtung D als eine Vielzahl von Datenblöcken P organisiert sind, die jeweils aus einem oder mehreren Datenobjekten OB bestehen: eine sekundäre Speichereinrichtung mm, die dafür ausgelegt ist, die Datenobjekte OB an einem oder mehreren Datenbereichen PCSP; RDSP zu speichern. Die zweite Speichereinrichtung mm umfasst eine Vielzahl I, J von Datenspeicherabschnitten PCS-1; RDS-1, die jeweils einen oder mehrere Datenbereiche PCSP, RDSP enthalten. Die Verarbeitungseinrichtung PM umfasst eine Lese-/Schreibeinrichtung R/W, die dafür ausgelegt ist, die Datenobjekte OB von Datenbereichen der zweiten Speichereinrichtung mm zu lesen und Datenobjekte OB an diese zu schreiben. Die Verarbeitungseinrichtung umfasst ferner: eine Zugriffsfrequenz-Bestimmungseinrichtung RAF-DM, die dafür ausgelegt ist, um für jedes Datenobjekt OB, das in dem Datenbereich der sekundären Speichereinrichtung mm gespeichert ist, die Zugriffsfrequenz RAF zu bestimmen, die die Anzahl von Zugriffen anzeigt, die von der Lese-/Schreibeinrichtung R/W in einem Einheitszeitintervall ausgeführt werden. Die Lese-/Schreibeinrichtung R/W ist dafür ausgelegt, Datenobjekte, deren bestimmte Zugriffsfrequenz in einen vorgegebenen Zugriffsfrequenzbereich fällt, in Datenbereiche zu schreiben, die zu dem gleichen Datenspeicherbereich gehören.
In dem Kontext der Fig. 2 wird die primäre Speichereinrichtung D durch den Plattenspeicher einschließlich der Datenbank DB gebildet, die auf dem Plattenspeicher D gespeicherten Daten sind Daten der Datenbank DB, die Datenblöcke DB sind Seiten der Datenbank, die Datenobjekte umfassen jeweils eine Vielzahl von Datenbytes, und der sekundäre Speicher MM ist ein Hauptspeicher des Datenprozessors.
Wie unter Bezugnahme auf Fig. 1-1 erläutert wurde, gibt es Datenbanken, die nicht notwendigerweise den Speicherabschnitt RDS für residente Daten verwenden, und das oben beschriebene Prinzip der Erfindung kann auf einen Hauptspeicher MM angewendet werden, der nur den Seiten-Cache-Speicher umfasst. Jedoch kann die Erfindung wie oben erläutert natürlich im Zusammenhang mit einem Hauptspeicher MM verwendet werden, der einen Seiten-Cache-Speicher PCS und einen Arbeitsspeicher RDS für residente Daten, wie in Fig. 2 gezeigt, aufweist.
Wie in Fig. 2 gezeigt und voranstehend erläutert, ist es leicht, mehrere Datenspeicherabschnitte PCS-1 . . . PCS-j, . . . PCS-J in dem Seiten-Cache-Abschnitt und eine Vielzahl von Datenspeicherbereichen RDS-1 . . ., RDS-i, . . ., RDS-I in dem Speicher RDS für residente Daten bereitzustellen. Die Anzahl von Seiten-Cache-Abschnitten J und die Anzahl von Abschnitten I für residente Daten können die gleichen sein. Jedoch können sie sich auch unterscheiden. Nur für Illustrationszwecke ist die Größe der jeweiligen Datenspeicherbereiche PCS-j und RDS-i so gezeigt, dass sie die gleichen sind, oder unterschiedlich sein können. Nur für Illustrationszwecke ist die Größe der jeweiligen Datenspeicherabschnitte PCS-j und RDS-i so dargestellt, dass sie gleich ist.
Eine Zuweisung eines vorgegebenen "Wärmepegels" an jeden Datenspeicherabschnitt bedeutet im wesentlichen das Zuweisen eines vorgegebenen Zugriffsfrequenzbereichs pch-1, . . . pch-j . . ., pch-J; rdh-1, . . . rdh-i, . . . rdh-I an jeden Datenspeicherabschnitt (pch: Seiten-Cache-Wärme; rdh: Residentdaten-Wärme). Im einfachsten Fall, wie in Fig. 2 gezeigt, kann der vorgegebene Lesezugriffs-Frequenzbereich nur ein einzelner Wert sein.
Gemäß der Erfindung wird jedes Datenobjekt OB, das in dem Hauptspeicher MM gespeichert ist (mit der Schraffierung in Fig. 2 gezeigt) bezüglich seiner Lesefrequenz durch die Verarbeitungseinrichtung PM ausgewertet. Es sei darauf hingewiesen, dass tatsächlich der Lesezugriff der bestimmende Faktor ist, da selbst dann, wenn ein in der Datenbank gespeichertes Objekt beschrieben wird, dies zunächst das Laden der Seite in den Hauptspeicher MM erfordern und das nachfolgende Zurückholen des Datenobjekts in die Verarbeitungseinrichtung PM, das Aktualisieren des Datenobjekts und nur dann das erneute Schreiben des Datenobjekts an seine jeweilige Seite in seinem Hauptspeicher mm erfordern wird. Jedoch kann natürlich auch, in Abhängigkeit von der Anwendung, die Lesezugriffsfrequenz oder die kombinierte Lese-/Schreib-Zugriffsfrequenz (d. h. die gesamte Anzahl von Zugriffen) verwendet werden. Deshalb ist die Lesezugriffs-Frequenzbestimmung nur eine bevorzugte Ausführungsform der Erfindung.
Die Bestimmung der Zugriffsfrequenz kann durch das Bereitstellen einer Zeitmarke auf jeder Seite durchgeführt werden. Diese Zeitmarke wird bei jedem x-ten Zugriff (x = 100 als ein Beispiel) aktualisiert. Wenn die Zeitmarke aktualisiert wird, dann werden die Zugriffszähler für jedes Objekt aktualisiert. Das heißt, die Zugriffsfrequenz- Bestimmungseinrichtung RAF-DM zählt (mit Hilfe der Zugriffszähler) die Anzahl von Zugriffsoperationen (Lesen, Schreiben oder Lesen/Schreiben), die in einem Einheitszeitintervall (Zeitmarke) ausgeführt werden. Dies kann periodisch oder bei Zeitintervallen, die von der Verarbeitungseinrichtung PM vorgegeben werden, durchgeführt werden. Jedoch wird in jedem Fall die Zugriffsfrequenz oder "Wärme" eines individuellen Objekts OB nach dem Ablauf jedes Einheitszeitintervalls mit der Bestimmung der Anzahl von Zugriffen in diesen Einheitszeitintervall bestimmt. Immer dann, wenn ein Lese-, Schreib- oder Lese-/Schreib-Zugriff auf das bestimmte Objekt ausgeführt wird, wird der Zugriffs- Zählwert aktualisiert und somit kann die Frequenz eines Zugriffs in dem Einheitszeitintervall bestimmt werden. Somit kann für jedes Datenobjekt die "Wärme" oder Zugriffsfrequenzseite der letzten Aktualisierung der Zeitmarke berechnet werden. Vorzugsweise wird die Zugriffsfrequenz zusammen mit dem Datenobjekt indem jeweiligen Datenbereich des Datenspeicherabschnitts gespeichert.
Wie sich aus den voranstehenden Erläuterungen verstehen lässt, ermöglicht ein Berechnen der Zugriffsfrequenz für jedes Objekt der Lese-/Schreib-Einrichtung R/W Datenobjekte, deren bestimmte Zugriffsfrequenz in einen vorgegebenen Lesezugriffs-Frequenzbereich fällt, in Datenbereiche, die zu dem gleichen Datenspeicherabschnitt gehören, zu schreiben oder zu sammeln.
Wie in Fig. 2 gezeigt, umfasst jeder Datenspeicherabschnitt PCS-j, RDS-i, eine Anzahl von Datenbereichen PCSP, RDSP. Wenn die "Wärme" mit Datenspeicherabschnitten höherer Ordnung ansteigt, wie in Fig. 2 angedeutet, ist es deshalb möglich, Objekte OB4, OB5 mit einer ähnlichen Wärme rdh-I in dem heißesten Hauptspeicherbereich zu sammeln. Somit ermöglicht die Erfindung den Vorteil, dass heiße Daten zusammengesammelt werden können und kalte Daten nicht länger in dem Hauptspeicher, z. B. in dem Seiten-Cache-Speicher PCS bleiben als tatsächlich erforderlich ist.
Zum Beispiel kann in dem Seiten-Cache-Speicher PCS eine Hierarchie zum Überschreiben von Datenbereichen (Seiten) so zugewiesen werden, dass die Datenbereiche niedrigerer Ordnung, z. B. des Datenspeicherabschnitts PCS-1, die ersten sind, die überschrieben sind, wenn neue Seitendaten aus der Datenbank zurückgewonnen werden. Das heißt, "heißere" Bereich (Bereiche mit einem höheren Lese-/Schreib-Zugriffsfrequenzwert oder -bereich) werden weniger wahrscheinlich überschrieben. Deshalb werden Objekte OB7, OB8 die letzten sein, die überschrieben werden, wenn neue Seitendaten aus der Datenbank zurückgeholt werden. Da diese Objekte OB7, OB8 in dem Datenspeicherabschnitt PCS-J liegen, weisen sie auch die höchsten Lese-/Schreib-Zugriffsfrequenzen auf und deshalb ist es gerechtfertigt, sie so lange wie möglich in dem Hauptspeicher MM zu halten. Dies trifft genauso auf die Objekte OB4, OB5 in dem Residentdaten-Speicherabschnitt RDS-I zu.
Obwohl in Fig. 2 nur gezeigt ist, dass ein einziges Datenobjekt OB in einer einzigen Seite PCSP, RDSP vorhanden ist, können Vorkehrungen auch so getroffen werden, dass die gesamte Wärme für zwei oder für mehrere Objekte, die in der gleichen Seite gespeichert sind, für die Auswertung verwendet wird, ob die Kombination von zwei oder mehreren Objekten an einen Datenspeicherabschnitt höherer Ordnung bewegt werden kann.
Ferner ist es auch möglich, zunächst die Daten von einer Seite nur in den Residentdaten-Speicherabschnitt zu laden, d. h. vollständige Seiten in die Datenbereiche der jeweiligen Datenspeicherabschnitte und dann nur die einzelnen Datenobjekte in den Seiten-Cache-Speicher zu bewegen. In diesem Fall ist der Seiten-Cache-Speicherbeginn leer und wird nachfolgend nur Datenobjekte anstelle von einzelnen Seiten enthalten. Es sei darauf hingewiesen, dass in jedem Fall die Verarbeitungseinrichtung PM auf irgendein Objekt in dem Hauptspeicher MM zugreifen kann, vorausgesetzt, dass es dort gespeichert ist. Durch Berechnen der Lese-/Schreib-Zugriffe kann die gesamte Lese-/Schreib-Zugriffsfrequenz innerhalb einer Zeitperiode bestimmt werden.
Der Hauptvorteil der Berechnung der "Wärme" über die Lese-/Schreib-Zugriffsfrequenz auf einer Datenobjektebene besteht darin, dass Datenobjekte mit vergleichbarer Relevanz für die Verarbeitungseinrichtung in dem gleichen Datenspeicherbereich PCS-j, RDS-i gesammelt werden können. Somit kann die Verarbeitungseinrichtung PM Datenbereiche von Datenspeicher-Abschnitten mit einem niedrigeren Rang früher als Datenbereiche von Datenspeicherabschnitten mit einem höheren Rang überschreiben. Deshalb wird der Hauptspeicher MM nicht unzulässig von Daten (Datenobjekten) belegt, die nicht häufig verwendet werden und deshalb ist es gerechtfertigt - wenn in der Tat derartige Datenobjekte benötigt werden - sie aus dem Plattenspeicher D zurückzuholen, wenn sie benötigt werden (durch Zurückholen der entsprechenden Seite, wie unter Bezugnahme auf Fig. 1-1 beschrieben wurde).
Jedoch gibt es auch eine gewisse Dynamik in dem Datenverarbeitungsverfahren (Speicherverwaltung), da die Datenobjekte nicht nur in den Datenspeicherabschnitten mit einer ähnlichen Wärme gesammelt werden können, sondern sie auch für die Verarbeitungseinrichtung PM über eine längere oder kürzere Zeitperiode verfügbar gehalten werden können, da die Objekte OB tatsächlich zwischen unterschiedlichen Datenspeicherabschnitten gemäß ihrer "Wärme" (Lese-, Schreib­ oder Lese-/Schreib-Frequenz) bewegt werden können. Deshalb wird der Hauptspeicher MM vorwiegend von Daten belegt, deren Verarbeitung durch die Verarbeitungseinrichtung M sehr relevant ist, wobei dies auf einer Datenobjektbasis und nicht auf einer Seiten-Basis durchgeführt wird.
Es sei auch darauf hingewiesen, dass das oben beschriebene Prinzip nicht auf die Verwendung von zwei unterschiedlichen Speicherabschnitten in dem Hauptspeicher MM (d. h. einen Seiten-Cache-Speicher und einen Residentdaten- Arbeitsspeicherbereich) beschränkt ist. Das heißt, selbst wenn - wie voranstehend erläutert - nur der Seiten-Cache- Speicher verwendet wird, können unterschiedliche Datenspeicherbereiche nur für diesen einzelnen Speicher mit verschiedenen Wärmeebenen versehen werden, um eine Bewegung von Datenobjekten zu ermöglichen, wenn deren jeweils berechnete Wärme sich ändert. Deshalb kann es auch in diesem Fall passieren, dass an einem bestimmten Zeitpunkt ein Datenobjekt aufgrund seiner hohen Lese-/Schreib oder Lese-/Schreib-Zugriffsfrequenz sehr relevant wird. Zu einer anderen Zeit kann das gleiche Datenobjekt seine Wichtigkeit verlieren (mit der verringerten Zugriffsfrequenz angedeutet) und kann sich tatsächlich an einen Datenspeicherabschnitt niedriger Ordnung bewegen.
Wenn der Hauptspeicher MM mit den Seiten-Cache-Abschnitten sowie mit den Residentdaten-Abschnitten versehen ist, kann eine Migration oder Bewegung von Datenobjekten nur zwischen Datenbereichen des gleichen Speichers (Seiten-Cache oder Residentdaten-Speicher) stattfinden, aber es gibt auch eine Querbewegung von einem Abschnitt zu einem anderen Abschnitt, wie mit der Bewegung des Datenobjekts OB2 zu dem Datenobjektbereich OB8 in Fig. 2 angedeutet ist. Natürlich werden die jeweiligen Bewegungen von den jeweiligen Zugriffsfrequenzbereichen pch-j, rdh-i beeinflusst, die jeweils den Datenspeicherbereichen in dem Seiten-Cache und dem Hauptspeicher-Residentdatenbereich zugewiesen sind.
Wie mit dem Objekt OB* angedeutet, ist es auch möglich, dass ein Datenobjekt, welches sehr "kalt" ist, in dem Plattenspeicher D (wenn es aktualisiert worden ist) zurückgespeichert wird oder dass es einfach mit neuen Daten aufgrund seiner "Kälte" überschrieben wird. Somit wird eine flexible Verwendung mit einer maximalen Speichereffizienz des Hauptspeichers MM möglich.
ERSTE AUSFÜHRUNGSFORM
Die Fig. 3 und die Fig. 4 zeigen eine erste Ausführungsform der Erfindung, wenn zwei verschiedene Speicherabschnitte in dem Hauptspeicher MM verwendet werden, d. h. ein Seiten-Cache- Speicher und ein Residentdaten-Speicher. Wie in Fig. 3 ersichtlich, ist jedem Datenspeicherbereich vorzugsweise ein gegebener Zugriffsfrequenzbereich pch-1, pch-2; rdh-1, rdh-2 zugewiesen. Nur für Illustrationszwecke sind zwei Datenspeicherabschnitte gezeigt. Jeder Zugriffsfrequenzbereich weist einen oberen und einen unteren Zugriffsfrequenz-Schwellwert pch-low, pch-1up, pch-2low, pch-2up; rdh-1low, rdh-1up, rdh-2low, rdh-2up.
Im allgemeinen werden Vorkehrungen so getroffen, dass die Zugriffsfrequenzen eines Zugriffsfrequenzbereichs eines (1+1)-ten Speicherabschnitts PCS-i/RDS-i größer als die Lesezugriffsfrequenzen eines i-ten Datenspeicherbereichs ist und jeder Zugriffsfrequenzbereich einen oberen und einen unteren Zugriffsfrequenz-Schwellwert umfasst, wobei die Lese- Schreib-Einrichtung R/W dafür ausgelegt ist, um ein Datenobjekt des i-ten Datenspeicherabschnitts von dem i-ten zu dem (i+1)-ten Datenspeicherabschnitt zu bewegen, wenn die Zugriffsfrequenz des Datenobjekts größer als der obere Zugriffsfrequenz-Schwellwert ist und/oder ein Datenobjekt des (i+1)-ten Datenspeicherabschnitts von dem (i+1)-ten zu dem i-ten Datenspeicherabschnitt zu bewegen, wenn die Zugriffsfrequenz des Datenobjekts kleiner als der untere Zugriffsfrequenz-Schwellwert ist.
Wie in Fig. 4 gezeigt, wird im Schritt ST1 der Hauptspeicher MM in zwei Datenspeicherabschnitte in dem Seiten-Cache und dem Residentdaten-Abschnitt aufgeteilt. Im Schnitt ST2 werden die jeweiligen Zugriffsfrequenzbereiche jedem Datenspeicherabschnitt zugewiesen. Jeder Datenspeicherabschnitt kann die gleiche Anzahl von Datenbereichen PCSP, RDSP (zum Beispiel die Größe einer Seite) umfassen oder können eine unterschiedliche Anzahl von Datenbereichen umfassen.
Im Schritt ST3 werden neue Daten aus der Datenbank DB in den Hauptspeicher MM geladen. Wenn die Daten zuerst als eine Seite von dem Plattenspeicher D geladen werden, ist es nicht bekannt, ob es ein "heißes" oder ein "kaltes" Datenobjekt enthalten wird. Wenn Daten zuerst in den Hauptspeicher MM geladen werden, werden sie deshalb auf dem unteren Datenspeicherabschnitt RDS-1 oder PCS-1 plaziert. Vorzugsweise werden die Daten in den "kalten" Abschnitt des Seiten-Cache-Speichers geladen.
Im Schritt ST4 wird der Datenzugriffs-Frequenzwert für jedes Objekt OB berechnet.
Im Schritt ST5 wird die Datenobjekt-Zugriffsfrequenz mit einem jeweiligen Schwellwert verglichen, der in jedem Zugriffsfrequenzbereich enthalten ist. Die Schwellwerte können zum Beispiel die oberen und unteren Werte UP, LOW sein. Wenn man ein spezifisches Datenobjekt OB betrachtet, gibt es fünf Möglichkeiten, wo es in Abhängigkeit von seiner Relevanz oder der Zugriffsfrequenz bewegt werden könnte.
Zunächst könnte das Objekt OB* an den Datenspeicherabschnitt PCS-2 bewegt werden. Ferner könnte es aufwärts an den Datenspeicherabschnitt PCS-3 bewegt werden. Ferner könnte es aufwärts zu dem Datenspeicherabschnitt RDS-3 bewegt werden. Ferner könnte es nach unten an den Datenspeicherabschnitt PCS-1 bewegt werden oder es könnte nach unten an den Datenspeicherabschnitt RDS-1 bewegt werden. Dies ist mit den Möglichkeiten P1, P2, P3, P4, PS für das Objekt OB* in Fig. 3 angedeutet. Wenn im Schritt ST5 (auf Grundlage eines Vergleichs des jeweiligen Datenobjekts-Zugriffszählwerts mit dem entsprechenden Schwellwert) bestimmt worden ist, dass das Objekt bewegt werden sollte, dann findet das jeweilige Bewegen des Objekts in Schritt ST6 in Abhängigkeit von der bestimmten Zugriffsfrequenz statt.
Genauso ist es möglich, dass eines der Objekte, z. B. OB** in dem Seiten-Cache-Abschnitt PCS-2, in die entsprechenden Richtungen P1, P2, P3, P4, PS bewegt wird, d. h. auch die Datenobjekte OB** in dem Seiten-Cache-Datenspeicherabschnitt könnten an den Residentdaten-Abschnitt und umgekehrt bewegt werden.
Ferner sei darauf hingewiesen, dass angenommen worden ist, dass der komplette Datenspeicherbereich in dem Seiten-Cache­ speicher oder in dem Residentdaten-Speicher des Hauptspeichers MM Datenbereiche aufweist, die jeweils einem gleichen Zugriffsfrequenzbereich entsprechen, der mit pch-2, pch-1; rds-2, rds-1 in Fig. 3 angedeutet ist. Um jedoch eine feinere Diskretisierung zu ermöglichen, ist es auch möglich, dass die Datenbereiche selbst hierarchisch angeordnet sind, so dass sogar eine Bewegung eines bestimmten Datenobjekts OB innerhalb des gleichen Datenspeicherabschnitts möglich ist. Wenn z. B. pch-2low dem untersten Datenbereich entspricht und pch-2up dem höchsten Datenbereich entspricht, ist sogar eine Bewegung der Datenobjekte OB innerhalb des gleichen Speicherabschnitts in Abhängigkeit von der bestimmten Zugriffsfrequenz möglich.
Immer dann, wenn das Objekt über einen bestimmten Wärmepegel reicht, wird deshalb auch in Fig. 3 das Objekt an einen höheren Wärmebereich transferiert, und wenn die Wärme unter einen bestimmten Pegel absinkt, dann wird das Objekt an einen kälteren Bereich bewegt. Eine Hysterese kann hierfür verwendet werden. Das heißt, wenn ein Objekt OB in dem unteren Datenspeicherabschnitt RDS-1 seinen oberen Schwellwert rds-1UP übersteigt, wird es an den nächsthöheren Datenspeicherbereich bewegt, z. B. RDS-2. Jedoch wird das Objekt nur von RDS-2 nach RDS-1 zurückbewegt, wenn seine Zugriffsfrequenz unter einen Wert fällt, der niedriger als rds-lup ist. Das heißt, die obere Zugriffsfrequenz- Schwellwert eines i-ten Datenspeicherabschnitts RDS-i kann identisch zu dem unteren Zugriffsfrequenz-Schwellwert des (i+1)-ten Datenspeicherbereichs RDS-i sein oder nicht. Somit wird eine Hysterese für das Bewegen der Objekte eingeführt.
ZWEITE AUSFÜHRUNGSFORM
Wie voranstehend gemäß der Erfindung beschrieben umfasst der Haupt- (sekundäre) Speicher MM einen ersten (Seiten-Cache) und einen zweiten (Residentdaten) Speicher. Jedoch kann ein Hauptspeicher nur aus einem Speicher bestehen. Wenn zwei Speicher in dem Hauptspeicher MM vorgesehen sind, wie erläutert und in Fig. 2 gezeigt, dann kann das Datenobjekt OB zwischen Datenbereichen von unterschiedlichen Datenabschnitten bewegt werden. In diesem Fall wird eine Aufwärts-Hierarchie zum Überschreiben des Speichers verwendet, so dass Datenobjekte, die "heißer" sind (deren Zugriffs-Zählwert höher ist) weniger häufig überschrieben werden.
Ferner ist es gemäß einer zweiten Ausführungsform der Erfindung nicht nur möglich, einen ersten und einen zweiten Speicherabschnitt in einem Speicher MM zu verwendet. Das heißt, der Hauptspeicher MM kann auch - horizontal - eine Vielzahl von Abschnitten enthalten, zwischen denen Datenobjekte OB bewegt werden können. Jedem von diesen ist ein anderer Zugriffsfrequenzbereich zugeordnet, so dass horizontal und vertikal eine Priorität für das Überschreiben zugewiesen werden kann. Wiederum wird der gleiche Effekt wie in der ersten Ausführungsform und in dem Prinzip der Erfindung erhalten, d. h. das Datenobjekte OB mit einem ähnlichen Zugriffs-Zählwert in Datenbereichen gespeichert werden, die zu dem gleichen Datenspeicherabschnitt gehören.
DRITTE AUSFÜHRUNGSFORM
Wie unter Bezugnahme auf die Fig. 1-1 erläutert wurde und wie auch in Fig. 2 gezeigt, muss die Verarbeitungseinrichtung PM immer dann, wenn sie auf ein Datenobjekt auf einer bestimmten Seite der Platten-Datenbank DB zugreifen möchte, die Seite lokalisieren, wo das bestimmte gewünschte Datenobjekt OB auf der Datenbank DB liegt. Wenn ein Objekt von dem Seiten-Cache- Abschnitt PCSP an die Datenbank DB zurückgespeichert wird (nachdem es möglicherweise mit neuen Daten zu einer Zeit aktualisiert wurde, als es in dem Hauptspeicher resident war), wird dies mit "Speichern" in Fig. 1-1 angedeutet, und die Verarbeitungseinrichtung PM muss ebenfalls Information erhalten, wo (d. h. auf welcher Seite) das (möglicherweise aktualisierte) Datenobjekt, das in dem Hauptspeicher gespeichert ist, in der Datenbank DB gespeichert werden sollte. Deshalb muss von der Verarbeitungseinrichtung PM irgendeine Art von Referenz bezüglich der Tatsache aufrecht erhalten werden, wo das Datenobjekt OB in dem Hauptspeicher vorliegt, von wo es zurückgeholt wurde und wo es wieder gespeichert werden sollte.
Natürlich wird die Situation noch komplizierter, wenn das Datenobjekt OB zwischen Seiten in dem Seiten-Cache-Abschnitt und den Residentdaten-Abschnitten umherbewegt wird, wie in Fig. 2 gezeigt. Hier ist die ursprüngliche Referenz, oder das Datenobjekt in dem Seiten-Cache-Abschnitt oder dem Residentdaten-Abschnitt gespeichert, vollständig verloren gegangen (da die Datenobjekte OB zwischen verschiedenen Seiten-Cache-Abschnitten oder Residentdaten-Abschnitten hin- und herbewegt werden), außer wenn eine Referenz- Aktualisierungsprozedur verwendet wird. Das heißt, das Datenobjekt OB wird in den Seiten-Cache-Abschnitten und den Residentdaten-Abschnitten bewegt, und schließlich wird es in einer entsprechenden Weise in der Datenbank DB umherbewegt. Deshalb kann ein Datenobjekt, welches zum Beispiel auf der Seite p22 (mit einer bestimmten Referenz) gespeichert worden ist, an der Datenbank DB auf einer anderen "Wärme"-Ebene gespeichert werden, z. B. auf der Seite p02 (die eine andere Referenz hat). Ein Beispiel soll dieses Problem illustrieren.
Auf Objekte in einer Datenbank wird normalerweise durch irgendeine Art von Schlüssel zugegriffen. Das heißt, wenn ein Objekt zurückgeholt werden soll, werden eine Seitennummer (Seiten-Referenz) und ein Seiten-Index benötigt (wenn Objekte als eine Plattenstruktur organisiert sind). Benutzer einer Datenbank stellen normalerweise keine Referenzen zu Objekten in einem Speicher her, sondern anstelle davon eine logische Referenz.
Fig. 5a zeigt eine Situation, in der ein Benutzer einen Zugriff auf die Daten anfordert, die zu einem bestimmten Kunden gehören. Der Benutzer gibt eine bestimmte sogenannte logische Referenz "c_ID1", zum Beispiel eine Kundenidentifikation oder einen Kundennamen ein. Dies ist ein logischer Referenzschlüssel. In der Bearbeitungseinrichtung PM muss ein Index INX (d. h. eine Datenstruktur- Referenztabelle) bereitgestellt werden, um diese logische Referenz auf eine physikalische Referenz (Seitenreferenz und Seitenindex) abzubilden, die auf den Seitenabschnitt weist, wo ein Datenobjekt OB, das zu "c_ID1" gehört, angeordnet sein könnte. Es sei darauf hingewiesen, dass die physikalische Frequenz p_ID1 genauso auf die Position in der Platten- Datenbank DB oder in den Hauptspeicherabschnitten, z. B. in dem Seiten-Cache-Abschnitt PCSP verweisen kann.
Wenn gemäß der Erfindung das Datenobjekt von p_ID1 bis p_ID* (d. h. an einen anderen Wärmepegel) bewegt werden würde, z. B. in dem Seiten-Cache-Abschnitt PCSP wie mit der Bewegung "M" angedeutet, dann ist natürlich die Verwendung der physikalischen Referenz p_ID1 nicht mehr zum Lokalisieren des jeweiligen Datenobjekts korrekt. Dies wird sogar noch schlechter, wenn das Datenobjekt nicht an der ursprünglichen Position p_ID1 in der Plattendatenbank DB (siehe ST2), sondern an der entsprechenden Seite p_ID* in der Plattendatenbank DB (siehe ST1) zurückgespeichert wird. Dann ist der physikalische Ort, der der logischen Referenz in der Indexstruktur INX zugewiesen ist, richtig, d. h. sie verweist nicht auf den tatsächlichen physikalischen Ort, wo das bewegte Datenobjekt OB nun gespeichert ist. Deshalb umfasst die Verarbeitungseinrichtung PM gemäß der Erfindung eine Referenz-Aktualisierungseinrichtung REF-UE, die die neue physikalische Referenz p_DU* empfängt und den entsprechenden Eintrag in der Indexstruktur INX aktualisiert. Wenn nun der gleiche Benutzer oder ein weiterer Benutzer einen Zugriff auf Daten, die zu der logischen Referenz c_ID1 gehören sucht, dann wird die neue physikalische Referenz p_ID* von der Indexstruktur INX angedeutet. Das heißt, wenn Objekt sich bewegen und sich ihre physikalischen Referenzen ändern, dann wird die Indexstruktur INX mit der neuen physikalischen Referenz aktualisiert, so dass zukünftige Benutzer das Kundenobjekt ebenfalls finden werden.
Während Fig. 5a ein Beispiel zeigt, bei dem die Indexstruktur INX und die Aufzeichnungsspeicherung getrennt ist, d. h. wobei der Index eine Referenz zu der Aufzeichnung enthält und wobei diese Referenz aktualisiert wird, wenn das Objekt bewegt wird, zeigt Fig. 5b ein weiteres Beispiel, bei dem die Indexstruktur und die Aufzeichnungsstruktur kombiniert ist, d. h. wo die Aufzeichnungsspeicherung in mehrere Teile getrennt ist.
Wie in Fig. 5b gezeigt, enthält der Aufzeichnungsspeicher einen ersten (residenten) Teil mit den Dateibeschreibungs- Attributen (jeweils zum Beispiel 32 Bit) in dem Datei- Beschreibungsteil FDP. Der Dateiinhalt, d. h. das Datenobjekt selbst (≈ 10 kB) wird in dem Plattenteil gespeichert. Eines der Datei-Beschreibungsattribute FD1 (file descriptive attributes) weist immer auf die jeweilige Speicherstelle des Dateiinhalts in dem Plattenteil. Wenn eine Bewegung des Dateiinhalts-Teils, d. h. des Objekts, gemäß dem Pfeil M stattfindet, dann ist es dieser Datei-Beschreibungsteil FD1, der mit der neuen Stelle des Dateiinhalts in dem Plattenteil aktualisiert wird. Auf den ersten Teil (residenten Teil) kann dann entweder durch eine Indexstruktur INX wie in Fig. 5b dargestellt Bezug genommen werden oder er kann ein Teil der Indexstruktur INX (d. h. des Datei-Beschreibungsteils FDP) sein, und ist in der rechten Spalte p_ID der Indexstruktur INX angeordnet. Alternativ, obwohl in Fig. 5b nicht gezeigt, besteht eine andere Möglichkeit darin, dass auf den ersten Teil FDP (FD1) direkt über eine Referenz in dem Schlüssel, d. h. in der logischen Referenz c_ID1 Bezug genommen wird. In allen Fällen kann der Dateiinhalt bewegt werden, solange die Referenzen in den ersten (residenten) Teil aktualisiert werden.
Somit wird gemäß der dritten Ausführungsform der Erfindung, wie in Fig. 5a, 5b dargestellt, immer dann, wenn ein Objekt in dem Hauptspeicher gemäß der Zugriffsfrequenz bewegt wird, eine Referenz, die für dieses Datenobjekt aufrechterhalten wird, aktualisiert. Deshalb kann der Ort (d. h. der physikalische Ort) immer nachverfolgt werden, so dass logische Referenzen noch verwendet werden können, selbst wenn das Datenobjekt an einen anderen Abschnitt in dem Hauptspeicher oder in dem Datenbank Abschnitt DB bewegt worden ist.
Ferner sei darauf hingewiesen, dass der residente Teil FDP in dem Residentdaten-Abschnitt RDS gespeichert werden kann, und der Dateiinhalt FT in dem Residentdaten-Abschnitt RDS gespeichert werden kann.
VIERTE AUSFÜHRUNGSFORM
In den ersten bis dritten Ausführungsformen wurde beschrieben, dass die Datenobjekte in dem Seiten-Cache- Abschnitt und dem Resident-Speicherabschnitt gemäß ihrer Zugriffsfrequenz, d. h. gemäß ihrer "Wärme" bewegt werden. In dieser Hinsicht wird in den ersten bis dritten Ausführungsformen die Zugriffsfrequenz gemäß der "absoluten" Zugriffsfrequenz des jeweiligen Datenobjekts bestimmt.
Jedoch ist es gemäß der vierten Ausführungsform auch möglich, die jeweilige Zugriffsfrequenz eines Datenobjekts "relativ" zu der Zugriffsfrequenz eines anderen Objekts zu definieren. Eine andere Möglichkeit zum Realisieren einer derartigen "relativen" Zugriffsfrequenzbestimmung ist durch Verwendung einer doppelt verbundenen Liste (doubly linked list) und der Bewegung von Objekten zum oberen Teil der Liste, wenn auf sie zugegriffen werden. Zum Beispiel kann einem bestimmten Seiten-Cache-Abschnitt PCS-j in Fig. 2 ein bestimmter Bereich von Zugriffsfrequenzen, z. B. 5 bis 10 zugewiesen sein. Natürlich können in diesem Bereich zwei Datenobjekte mit einer Zugriffsfrequenz von z. B. 6 und 9 in diesem Bereich angeordnet sein. Bezüglich eines dritten Datenobjekts, das in dem Seiten-Cache-Abschnitt pch-J mit einer Zugriffsfrequenz von 15 resident ist, weisen die ersten und zweiten Datenobjekte relative "Zugriffsfrequenz-Abstände" von 9 bzw. 6 auf. Dann wird das Datenobjekt, das den nächsten "Zugriffsfrequenz-Abstand" aufweist, an den nächsten höheren (heißeren) Seiten-Cache-Abschnitt bewegt werden. Somit kann die Bewegung von Datenobjekten von der relativen Zugriffsfrequenz abhängig gemacht werden. Natürlich muss die zugehörige Liste die relative Zugriffsfrequenz für sämtliche Datenobjekte enthalten, die jeweils in dem Seiten-Cache- Abschnitt und/oder dem Residentdaten-Abschnitt vorhanden sind. Ferner sei darauf hingewiesen, dass auch die relative Zugriffsfrequenz (Liste) zusammen mit den Daten in dem Datenobjekt gespeichert werden können.
GEWERBLICHE ANWENDBARKEIT
Wie voranstehend erläutert ist die vorliegende Erfindung besonders nützlich, wenn sie in Zusammenhang mit einem Datenbanksystem DBS verwendet wird, das einen primären Plattenspeicher D (auf dem die Daten der Datenbank gespeichert sind) und eine Datenverarbeitungseinrichtung DTD umfasst.
Jedoch kann die Erfindung nicht nur zum Zurückholen, Speichern und Verwalten von Daten von einer Datenbank verwendet werden. Wie voranstehend erläutert, wird ein Seiten-Cache-Speicher oftmals zum Speichern von Befehlen verwendet, die von einem Prozessor verwendet werden. Auch eine derartige Art von Befehlsspeicherung kann durch Verwendung der Erfindung ausgeführt werden. D. h., Befehle, die häufiger verwendet werden, werden an heißere Bereiche des Hauptspeichers MM bewegt, und Befehle, die nicht so häufig verwendet werden, werden an einen unteren Abschnitt des Seiten-Cache-Speichers bewegt, so dass sie früher überschrieben werden.
Das voranstehend beschriebene Verfahren zum Speichern von Daten oder die Datenverarbeitungseinrichtung bezüglich der Bewegung von Objekten auf Grundlage der "Wärme" (z. B. Zugriffsfrequenz) kann in vorteilhafter Weise auch auf das Caching (Einfangen) von Objekten in Clients (Klienten) angewendet werden, wenn Objektdatenbanken verwendet werden. Das allgemeine Konzept zum Caching von Objekten in Clients ist z. B. in "an adaptive hybrid server architecture for client caching object DMBSs", Seiten 150-161 in "Proceedings of the 25th VLDB conference, Edinburgh, Scotland, 1999" beschrieben. In einer derartigen Architektur sind ein Objekteserver und ein Page-(Seiten)-Server die zwei miteinander in Konkurrenz stehenden Datenversende- Architekturen (data-shipping architectures). In Datenversende-Systemen holen die Clients Daten aus dem Server in ihre Caches und führen irgendeine Art der Datenverarbeitung lokal aus. Somit helfen Klienten von einem Skalierungs-Standpunkt her dem Server, dass er kein Engpass wird, indem ein gewisser Teil der Arbeit ausgelagert wird. Das voranstehende Konzept der Erfindung zum Speichern und Bewegen von Datenobjekten in einem Speicher kann genauso auf die Bewegung von Daten oder Objekten in dem Cache-Speicher der Clients angewendet werden.
Es sei auch darauf hingewiesen, dass die vorliegende Erfindung eine große Anwendung zum Speichern von Computerbefehlen aufweist. Das heißt, normalerweise ist die Speicherung von Computerbefehlen Page-gestützt und "Code"- Seiten werden an eine sogenannte Swap-Datei auf der Platte gesendet. Das heißt, die primäre Speichereinrichtung kann die Swap-Datei auf der Platte sein und die zweite Speichereinrichtung kann ein Seiten-Cache-Abschnitt sein, während das Datenobjektgebiet jeweils einen oder mehrere Computerbefehle speichert. Ein einzelner Befehl oder ein Satz von Computerbefehlen kann gemäß seiner "Zugriffsfrequenz" bewegt werden, wobei Zugriffsfrequenz die Verwendungsfrequenz der Computerbefehle ist. Ferner kann die gleiche Behandlung einer Bewegungs- und Datenobjekten auf normale Daten in einem Betriebssystem eines Computers angewendet werden. Hierbei sind die Sätze der normalen Daten, die von einem Betriebssystem behandelt werden, die Datenobjekte, die gespeichert und bewegt werden sollen.
Es sei auch darauf hingewiesen, dass in der Computertechnologie normalerweise der Speicher des Prozessors als der "primäre Speicher" bezeichnet wird, während irgendein zusätzlicher Speicher als ein "sekundärer Speicher" bezeichnet wird. Für den Zweck der vorliegenden Erfindung ist die Terminologie umgekehrt, d. h. der Prozessorspeicher ist der "sekundäre Speicher" und der zusätzliche Speicher ist der "primäre Speicher". Jedoch wird dies hier nur durchgeführt, um die Beschreibung der Erfindung zu erleichtern und ein Durchschnittsfachmann erkennt offensichtlich die richtige normale Verwendung der Sprache in der Computertechnologie.
Ferner kann der Durchschnittsfachmann weitere Ausführungsformen, Modifikationen und Variationen der Erfindung auf Grundlage der hier enthaltenen technischen Lehren ableiten. Insbesondere kann die Erfindung Ausführungsformen umfassen, die aus Merkmalen bestehen, die in der Beschreibung und/oder den Ansprüchen getrennt beschrieben und/oder beansprucht sind. Deshalb ist der Schutzumfang der Erfindung vollständig durch den Umfang der beigefügten Ansprüche definiert.
Bezugszeichen in den Ansprüchen dienen nur Verdeutlichungszwecken und engen den Umfang der Erfindung nicht ein.

Claims (26)

1. Verfahren zum Speichern von Daten (DB), die aus einer primären Speichereinrichtung (D) gelesen werden, in eine sekundäre Speichereinrichtung (MM) für einen Lese-/Schreibe-Zugriff durch eine Verarbeitungseinrichtung (PM), wobei die Daten in der primären Speichereinrichtung (D) als eine Vielzahl von Datenblöcken (P) organisiert sind, die jeweils aus einen oder mehreren Datenobjekten (OB) bestehen, und wobei die Datenobjekte (OB) an einem oder mehreren Datenbereichen (PCSP; RDSP) der sekundären Speichereinrichtung (MM) gespeichert werden, wobei die sekundäre Speichereinrichtung (MM) eine Vielzahl (I, J) von Datenspeicherabschnitten (PCS-1; RDS-1) umfasst, die jeweils einen oder mehrere Datenbereiche (PGSP, RDSP) umfassen, gekennzeichnet durch die folgenden Schritte:
  • a) Bestimmen der Zugriffsfrequenz, die die Anzahl von Zugriffen in einem Einheitszeitintervall anzeigt, für jedes Datenobjekt (OB); und
  • b) Speichern von Datenobjekten, deren Zugriffsfrequenz in einen vorgegebenen Zugriffsfrequenzbereich fällt, in Datenbereichen, die zu dem gleichen Datenspeicherabschnitt gehören.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Zugriffsfrequenzen eines Zugriffsfrequenzbereichs eines (i+1)-ten Datenspeicherabschnitts (PCS-i; RDS-i) größer als die Zugriffsfrequenzen eines i-ten Datenspeicherabschnitts sind und jeder Zugriffsfrequenzbereich einen oberen und einen unteren Zugriffsfrequenz-Schwellwert. umfasst, wobei ein Datenobjekt des i-ten Datenspeicherabschnitts von den i-ten zu dem (i+1)-ten Datenspeicherabschnitt bewegt wird, wenn die Zugriffsfrequenz des Datenobjekts größer als der obere Zugriffsfrequenz-Schwellwert ist und/oder ein Datenobjekt des (i+1)-ten Datenspeicherabschnitts von dem (i+1)-ten an den i-ten Datenspeicherbereich bewegt wird, wenn die Zugriffsfrequenz des Datenobjekts kleiner als der untere Zugriffsfrequenz-Schwellwert ist.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in jedem Datenspeicherbereich jedem Datenbereich eine vorgegebene Zugriffsfrequenz des Zugriffsfrequenzbereichs zugewiesen ist, wobei die Datenobjekte innerhalb des Datenspeicherbereichs an Datenabschnitte gemäß der bestimmten Zugriffsfrequenz bewegt werden.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die sekundäre Speichereinrichtung (MM) einen ersten Speicher (PCS) mit einer Anzahl J von ersten Speicherdaten-Speicherabschnitten (PCS-1, . . ., PCS-j, . . ., PCS-J) und einen zweiten Speicher (RDS) mit einer Anzahl I von zweiten Speicherdaten-Speicherabschnitten (RDS-1, . . . RDS-i, . . ., RDS-I) umfasst, wobei jedem Datenspeicherabschnitt eine vorgegebener Lesezugriffsfrequenzbereich zugewiesen ist, wobei ein Datenobjekt, das in einen i-ten zweiten Speicher Daten- Speicherabschnitt gespeichert ist und dessen Zugriffsfrequenz den entsprechenden oberen Zugriffsfrequenz-Schwellwert übersteigt, an den (i+1)- ten zweiten Speicherdaten-Speicherabschnitt oder an einen ersten Speicherdaten-Speicherabschnitt des ersten Speichers bewegt wird, und/oder ein Datenobjekt, das in einem i-ten zweiten Speicherdaten-Speicherabschnitt gespeichert ist, und dessen Zugriffsfrequenz niedriger als der entsprechende untere Zugriffsfrequenz- Schwellwert ist, an den (i-1)-ten zweiten Speicherdaten- Speicherabschnitt oder an einen ersten Speicherdaten- Speicherabschnitt des ersten Speichers bewegt wird.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Zugriffsfrequenz zusammen mit dem Datenobjekt in dem Datenbereich gespeichert wird.
6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die primäre Speichereinrichtung (D) ein Plattenspeicher (D) ist, die auf dem Plattenspeicher (D) gespeicherten Daten Daten einer Datenbank sind, die Datenblöcke (P) Seiten der Datenbank sind, die Datenobjekte jeweils eine Vielzahl von Datenbytes umfassen, der sekundäre Speicher (MM) ein Hauptspeicher eines Datenprozessors ist, der erste Speicher des Hauptspeichers ein Seiten-Cache- Speicher (PCS) ist und der zweite Speicher des Hauptspeichers (MM) ein Resident-Daten-Arbeitsspeicher ist.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass ein Teil der Daten einer einzelnen Aufzeichnung einer Datenbank in dem Seiten-Cache-Speicher gespeichert ist und ein anderer Teil in dem Residentdaten- Arbeitsspeicher gespeichert ist.
8. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der obere Zugriffsfrequenz-Schwellwert eines i-ten Datenspeicherbereichs (RDS-i) identisch zu dem unteren Zugriffsfrequenz-Schwellwert des (i+1)-ten Datenspeicherbereichs (RDS-i) ist.
9. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der obere Zugriffsfrequenz-Schwellwert eines i-ten Datenspeicherbereichs (RDS-i) größer als der untere Zugriffsfrequenz-Schwellwert des (i+1)-ten Datenspeicherbereichs (RDS-i) ist, so dass eine Hysterese verwendet wird, wenn die Datenobjekte zwischen dem i-ten und dem (i+1)-ten Datenspeicherbereich bewegt werden.
10. Datenverarbeitungseinrichtung (DPD) zur Verarbeitung von Daten, die auf einer primären Speichereinrichtung (D) gespeichert sind, wobei die Daten in der primären Speichereinrichtung (D) als eine Vielzahl von Datenblöcken (P) organisiert sind, die jeweils aus einem oder mehrere Datenobjekten (OB) bestehen, umfassend:
  • a) eine sekundäre Speichereinrichtung (MM), die dafür ausgelegt ist, um die Datenobjekte (OB) an einen oder mehreren Datenbereichen (PCSP; RDSP) zu speichern, wobei die sekundäre Speichereinrichtung (MM) eine Vielzahl von Datenspeicherabschnitten (PCS-1; RDS-1) umfasst, die jeweils einen oder mehrere Datenbereiche (PCSP, RDSP) umfassen;
  • b) eine Verarbeitungseinrichtung (PM), die eine Lese-/Schreib-Einrichtung (R/W) umfasst, die dafür ausgelegt ist, Datenobjekte aus Datenbereichen der sekundären Speichereinrichtung (MM) zu lesen und Datenobjekte dorthin zu schreiben;
dadurch gekennzeichnet, dass die Verarbeitungseinrichtung (PM) ferner umfasst:
  • 1. eine Zugriffsfrequenz-Bestimmungseinrichtung (RAF-DM), die dafür ausgelegt ist, um für jedes Datenobjekt (OB), das in dem Datenbereich in der sekundären Speichereinrichtung (MM) gespeichert ist, die Zugriffsfrequenz (RAF), die die Anzahl von Zugriffen anzeigt, die von der Lese-/Schreib- Einrichtung (R/W) in einem Einheitszeitintervall ausgeführt werden, zu bestimmen; und
  • 2. wobei die Lese-/Schreib-Einrichtung (R/W) dafür ausgelegt ist, um Datenobjekte, deren bestimmte Zugriffsfrequenz in einen vorgegebenen Zugriffsfrequenzbereich fällt, in Datenbereiche zu schreiben, die zu dem gleichen Datenspeicherabschnitt gehören.
11. Einrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Zugriffsfrequenzen eines Zugriffsfrequenzbereichs eines (i+1)-ten Datenspeicherabschnitts (PCS-i; RDS-i) größer als die Zugriffsfrequenzen eines i-ten Datenspeicherabschnitts sind und jeder Zugriffsfrequenzbereich einen oberen und einen unteren Zugriffsfrequenz-Schwellwert umfasst, wobei ein Datenobjekt des i-ten Datenspeicherabschnitts von den i-ten zu dem (i+1)-ten Datenspeicherabschnitt bewegt wird, wenn die Zugriffsfrequenz des Datenobjekts größer als der obere Zugriffsfrequenz-Schwellwert ist und/oder ein Datenobjekt des (i+1)-ten Datenspeicherabschnitts von dem (i+1)-ten an den i-ten Datenspeicherbereich bewegt wird, wenn die Zugriffsfrequenz des Datenobjekts kleiner als der untere Zugriffsfrequenz-Schwellwert ist.
12. Einrichtung (DPD) nach Anspruch 10, dadurch gekennzeichnet, dass in jedem Datenspeicherabschnitt jedem Datenbereich eine vorgegebene Zugriffsfrequenz des Zugriffsfrequenzbereichs zugewiesen ist, wobei die Lese-/Schreib-Einrichtung (R/W) dafür ausgelegt ist, Datenobjekte innerhalb des Datenspeicherbereichs an andere Datenabschnitte des gleichen Datenspeicherbereichs gemäß der bestimmten Zugriffsfrequenz zu bewegen.
13. Einrichtung (DPD) nach Anspruch 11, dadurch gekennzeichnet, dass die sekundäre Speichereinrichtung (MM) einen ersten Speicher (PCS) mit einer Anzahl J von ersten Speicherdaten-Speicherabschnitten (PCS-1, . . ., PCS-j, . . . PCS-J) und einen zweiten Speicher (RDS) mit einer Anzahl I von zweiten Speicherdaten-Speicherabschnitten (RDS-1, . . . RDS-i, . . ., RDS-I) umfasst, wobei jedem Datenspeicherabschnitt ein vorgegebener Lesezugriffsfrequenzbereich zugewiesen ist, wobei ein Datenobjekt, das in einen i-ten zweiten Speicher Daten- Speicherabschnitt gespeichert ist und dessen Zugriffsfrequenz den entsprechenden oberen Zugriffsfrequenz-Schwellwert übersteigt, an den (i+1)-ten zweiten Speicherdaten-Speicherabschnitt oder an einem ersten Speicherdaten-Speicherabschnitt des ersten Speichers bewegt wird, und/oder ein Datenobjekt, das in einem i-ten zweiten Speicherdaten-Speicherabschnitt gespeichert ist, und dessen Zugriffsfrequenz niedriger als der entsprechende untere Zugriffsfrequenz- Schwellwert ist, an den (i-1)-ten zweiten Speicherdaten- Speicherabschnitt oder an einen ersten Speicherdaten- Speicherabschnitt des ersten Speichers bewegt wird.
14. Einrichtung (DPD) nach Anspruch 10, dadurch gekennzeichnet, dass die Lese-/Schreib-Einrichtung (R/W) dafür ausgelegt ist, um die Zugriffsfrequenz zusammen mit dem Datenobjekt in dem Datenbereich zu speichern.
15. Einrichtung (DPD) nach Anspruch 13, dadurch gekennzeichnet, dass die primäre Speichereinrichtung (D) ein Plattenspeicher (D) ist, die auf dem Plattenspeicher (D) gespeicherten Daten Daten einer Datenbank sind, die Datenblöcke (P) Seiten der Datenbank sind, die Datenobjekte jeweils eine Vielzahl von Datenbytes umfassen, der sekundäre Speicher (MM) ein Hauptspeicher eines Datenprozessors ist, der erste Speicher des Hauptspeichers ein Seiten-Cache- Speicher (PCS) ist und der zweite Speicher des Hauptspeichers (MM) ein Resident-Daten-Arbeitsspeicher ist.
16. Einrichtung (DPD) nach Anspruch 15, dadurch gekennzeichnet, dass ein Teil der Daten einer einzelnen Aufzeichnung einer Datenbank in dem Seiten-Cache-Speicher gespeichert ist und ein anderer Teil in dem Residentdaten- Arbeitsspeicher gespeichert ist.
17. Einrichtung (DPD) nach Anspruch 11, dadurch gekennzeichnet, dass der obere Frequenz-Schwellwert eines i-ten Datenspeicherbereichs (RDS-i) identisch zu dem unteren Zugriffsfrequenz-Schwellwert des (i+1)-ten Datenspeicherbereichs (RDS-i) ist.
18. Einrichtung (DPD) nach Anspruch 11, dadurch gekennzeichnet, dass der obere Zugriffsfrequenz-Schwellwert eines i-ten Datenspeicherbereichs (RDS-i) größer als der untere Zugriffsfrequenz-Schwellwert des (i+1)-ten Datenspeicherbereichs (RDS-i) ist, so dass eine Hysterese verwendet wird, wenn die Datenobjekte zwischen dem i-ten und dem (i+1)-ten Datenspeicherbereich bewegt werden.
19. Datenbanksystem (DBS) umfassend einen primären Plattenspeicher (D), auf dem die Daten der Datenbank gespeichert werden, und eine Datenverarbeitungseinrichtung gemäß einem oder mehreren der Ansprüche 1-18.
20. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die bestimmte Zugriffsfrequenz die Anzahl von Lesezugriffen, Schreibzugriffen oder Lese & Schreibzugriffen auf ein Datenobjekt anzeigt.
21. Einrichtung (DPD) nach Anspruch 11, dadurch gekennzeichnet, dass die bestimmte Zugriffsfrequenz die Anzahl von Lesezugriffen, Schreibzugriffen oder Lese & Schreibzugriffen auf ein Datenobjekt anzeigt.
22. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass eine physikalische Referenz (p_ID1) aktualisiert wird (p_ID*), wenn das Datenobjekt von einem Datenspeicherabschnitt an einen anderen Datenspeicherabschnitt bewegt wird.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, dass die physikalische Referenz in einer Indexstruktur (INX) strukturiert wird.
24. Verfahren nach Anspruch 22, dadurch gekennzeichnet, dass jedes Datenobjekt einen ersten residenten Teil (FDP), der Attribute (FD1, FD2, FD3) enthält und einen zweiten bewegbaren Dateiinhalt (FT) umfasst, wobei eine physikalische Referenz, die in einem der Attribute (FD1) enthalten ist, aktualisiert wird, wenn der Dateiinhalt (FT) des Datenobjekts (OB) bewegt wird.
25. Verfahren nach Anspruch 24, dadurch gekennzeichnet, dass der erste residente Teil (FDP) auf den Plattendatenbankbereich angeordnet ist und der bewegbare Dateiinhaltteil (FT) in dem Hauptspeicher angeordnet ist.
26. Einrichtung nach Anspruch 10, gekennzeichnet durch eine Referenzaktualisierungseinrichtung (REF-UP) zum Aktualisieren einer physikalischen Referenz (p_ID1, p_ID*), wenn ein Datenobjekt von einem Datenspeicherabschnitt zu einem anderen Datenspeicherabschnitt abhängig von der Zugriffsfrequenz bewegt wird.
DE19961499A 1999-12-20 1999-12-20 Caching von Objekten in Platten-gestützten Datenbanken Withdrawn DE19961499A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE19961499A DE19961499A1 (de) 1999-12-20 1999-12-20 Caching von Objekten in Platten-gestützten Datenbanken
PCT/EP2000/012356 WO2001046809A1 (en) 1999-12-20 2000-12-07 Caching of objects in disk-based databases
AU28407/01A AU2840701A (en) 1999-12-20 2000-12-07 Caching of objects in disk-based databases
US09/741,122 US6941432B2 (en) 1999-12-20 2000-12-19 Caching of objects in disk-based databases

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19961499A DE19961499A1 (de) 1999-12-20 1999-12-20 Caching von Objekten in Platten-gestützten Datenbanken

Publications (1)

Publication Number Publication Date
DE19961499A1 true DE19961499A1 (de) 2001-07-05

Family

ID=7933443

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19961499A Withdrawn DE19961499A1 (de) 1999-12-20 1999-12-20 Caching von Objekten in Platten-gestützten Datenbanken

Country Status (4)

Country Link
US (1) US6941432B2 (de)
AU (1) AU2840701A (de)
DE (1) DE19961499A1 (de)
WO (1) WO2001046809A1 (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010049818A1 (en) * 2000-02-09 2001-12-06 Sanjeev Banerjia Partitioned code cache organization to exploit program locallity
US6640285B1 (en) 2000-10-26 2003-10-28 Emc Corporation Method and apparatus for improving the efficiency of cache memories using stored activity measures
JP2002207620A (ja) * 2001-01-10 2002-07-26 Toshiba Corp ファイルシステム及び該システムにおけるデータキャッシング方法
US7162480B2 (en) * 2001-12-26 2007-01-09 Sbc Technology Resources, Inc. Usage-based adaptable taxonomy
GB2384875B (en) * 2002-01-31 2005-04-27 Hewlett Packard Co Storage and management of semi-structured data
US7155440B1 (en) 2003-04-29 2006-12-26 Cadence Design Systems, Inc. Hierarchical data processing
US7302536B2 (en) * 2003-06-17 2007-11-27 Hitachi, Ltd. Method and apparatus for managing replication volumes
US7206786B2 (en) * 2003-11-03 2007-04-17 Hewlett-Packard Development Company, L.P. Method and system for adapting memory-resident database in flexible service logic execution environment
US9690811B1 (en) * 2003-11-05 2017-06-27 Hewlett Packard Enterprise Development Lp Single repository manifestation of a multi-repository system
US7304905B2 (en) * 2004-05-24 2007-12-04 Intel Corporation Throttling memory in response to an internal temperature of a memory device
US8275802B2 (en) 2004-06-17 2012-09-25 International Business Machines Corporation Optimized least recently used lookup cache
US7523285B2 (en) * 2004-08-20 2009-04-21 Intel Corporation Thermal memory control
US8260753B2 (en) 2004-12-31 2012-09-04 Emc Corporation Backup information management
US20080162685A1 (en) * 2004-12-31 2008-07-03 Emc Corporation Information management architecture
US8688904B1 (en) * 2005-05-23 2014-04-01 Hewlett-Packard Development Company, L.P. Method for managing data storage
US8010764B2 (en) * 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
US20070043705A1 (en) * 2005-08-18 2007-02-22 Emc Corporation Searchable backups
US9026512B2 (en) * 2005-08-18 2015-05-05 Emc Corporation Data object search and retrieval
US20070156640A1 (en) * 2005-12-29 2007-07-05 International Business Machines Corporation Hot tuple detection
US7680641B1 (en) 2006-06-09 2010-03-16 Hewlett-Packard Development Company, L.P. Identifying a minimum cut and/or a maximum flow using balancing of vertex excesses
US7761444B2 (en) * 2006-10-05 2010-07-20 Hewlett-Packard Development Company, L.P. Identifying a sequence of blocks of data to retrieve based on a query
WO2008070814A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a scalable, composite, reconfigurable backplane
US20080189495A1 (en) * 2007-02-02 2008-08-07 Mcbrearty Gerald Francis Method for reestablishing hotness of pages
US20090066873A1 (en) 2007-09-12 2009-03-12 Reynold Li Liao LCD Display with LED Backlight Optimized for Minimum Notebook Computer Dimensions
US9141477B2 (en) * 2007-10-12 2015-09-22 International Business Machines Corporation Data protection for variable length records by utilizing high performance block storage metadata
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
JP5186982B2 (ja) * 2008-04-02 2013-04-24 富士通株式会社 データ管理方法及びスイッチ装置
US8230317B2 (en) * 2008-04-09 2012-07-24 International Business Machines Corporation Data protection method for variable length records by utilizing high performance block storage metadata
US8504776B2 (en) * 2008-08-29 2013-08-06 Infineon Technologies Ag Device and method for controlling caches
US8190832B2 (en) * 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
GB2480985B (en) * 2009-03-10 2014-12-17 Hewlett Packard Development Co Optimizing access time of files stored on storages
US8259506B1 (en) * 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
JP5310399B2 (ja) * 2009-09-01 2013-10-09 富士通株式会社 索引管理装置の処理方法および索引管理装置
US8473680B1 (en) * 2009-09-18 2013-06-25 Marvell International Ltd. Hotspot detection and caching for storage devices
US8321703B2 (en) * 2009-12-12 2012-11-27 Microsoft Corporation Power aware memory allocation
US8726147B1 (en) * 2010-03-12 2014-05-13 Symantec Corporation Systems and methods for restoring web parts in content management systems
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US10114750B2 (en) * 2012-01-23 2018-10-30 Qualcomm Incorporated Preventing the displacement of high temporal locality of reference data fill buffers
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US8984028B2 (en) * 2012-05-29 2015-03-17 Recommind, Inc. Systems and methods for storing data and eliminating redundancy
US9514174B2 (en) 2012-06-30 2016-12-06 Microsoft Technology Licensing, Llc Classification of data in main memory database systems
CN103793329B (zh) * 2012-10-26 2017-12-22 腾讯科技(北京)有限公司 数据存储方法及数据存储装置
CN103902473B (zh) * 2012-12-31 2018-07-03 华为技术有限公司 一种数据处理方法及数据缓存系统
US9317548B2 (en) 2013-01-30 2016-04-19 International Business Machines Corporation Reducing collisions within a hash table
US9311359B2 (en) 2013-01-30 2016-04-12 International Business Machines Corporation Join operation partitioning
JP6065642B2 (ja) * 2013-02-25 2017-01-25 富士通株式会社 ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法
US9582604B2 (en) 2013-03-27 2017-02-28 Thomson Licensing Caching mechanism to improve user interface responsiveness
US9471710B2 (en) 2013-06-14 2016-10-18 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
US9367556B2 (en) 2013-06-14 2016-06-14 International Business Machines Corporation Hashing scheme using compact array tables
US9471249B2 (en) 2013-09-04 2016-10-18 International Business Machines Corporation Intermittent sampling of storage access frequency
US9471250B2 (en) 2013-09-04 2016-10-18 International Business Machines Corporation Intermittent sampling of storage access frequency
CN104102695B (zh) * 2014-06-26 2017-11-10 晨星半导体股份有限公司 智能设备启动过程的数据处理方法及智能设备
US10331649B2 (en) 2014-06-29 2019-06-25 Microsoft Technology Licensing, Llc Transactional access to records on secondary storage in an in-memory database
US9672248B2 (en) 2014-10-08 2017-06-06 International Business Machines Corporation Embracing and exploiting data skew during a join or groupby
US10650011B2 (en) 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
US9922064B2 (en) 2015-03-20 2018-03-20 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US10303791B2 (en) 2015-03-20 2019-05-28 International Business Machines Corporation Efficient join on dynamically compressed inner for improved fit into cache hierarchy
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US10108653B2 (en) 2015-03-27 2018-10-23 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers
US10310474B2 (en) * 2016-02-11 2019-06-04 Philip Wernersbach System and method for monitoring and analyzing industrial operations
US11301422B2 (en) * 2016-02-23 2022-04-12 Samsung Electronics Co., Ltd. System and methods for providing fast cacheable access to a key-value device through a filesystem interface
US20180032555A1 (en) * 2016-07-28 2018-02-01 Bank Of America Corporation Object database system including an object-specific historical attribute-change information system
KR102340094B1 (ko) * 2017-03-31 2021-12-17 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
CN110413214B (zh) * 2018-04-28 2023-07-18 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
CN112329919B (zh) * 2020-11-05 2022-07-29 北京百度网讯科技有限公司 模型训练方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
US6324620B1 (en) * 1998-07-23 2001-11-27 International Business Machines Corporation Dynamic DASD data management and partitioning based on access frequency utilization and capacity
TW451132B (en) * 1998-12-15 2001-08-21 Nippon Electric Co System and method for cache processing
US6330556B1 (en) * 1999-03-15 2001-12-11 Trishul M. Chilimbi Data structure partitioning to optimize cache utilization
US20010049818A1 (en) * 2000-02-09 2001-12-06 Sanjeev Banerjia Partitioned code cache organization to exploit program locallity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Information and Software technology, Vol. 30, No. 2, März 1980, S. 66-80 *

Also Published As

Publication number Publication date
US6941432B2 (en) 2005-09-06
WO2001046809A1 (en) 2001-06-28
AU2840701A (en) 2001-07-03
US20010013087A1 (en) 2001-08-09

Similar Documents

Publication Publication Date Title
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
DE10055603B4 (de) Verfahren zum Zugriff auf eine Datei in einer Vielzahl von Datenspeicherbibliotheken und Datenspeicherbibliothek-System
DE69836796T2 (de) Datenverarbeiter mit lokalisierter gedächtnisreklamierung
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
DE60035151T2 (de) Hardware-Anordnung zur Verwaltung von Cachespeicherstrukturen in einem Datenspeichersystem
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE3743890C2 (de)
DE3151745C2 (de)
DE60313783T2 (de) Bewegen von daten zwischen speichereinheiten
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE102007052853A1 (de) Zeilentauschschema zur Verringerung von Rückinvalidierungen in einem Snoopfilter
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112011105774B4 (de) Verschiebbarer Speicher, der In-Memory-Datenstrukturen unterstützt
DE4221073A1 (de) Datenspeichersystem und -verfahren mit geraeteunabhaengigen dateiverzeichnissen
DE102004056701A1 (de) Verfahren und Einrichtung zur Erzeugung einer inhaltsbezogenen Adresse zum zeitnahen Hinweis auf in ein Speichersystem eingeschriebene Dateneinheiten
DE102013200032A1 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE102012212183B4 (de) Verfahren und Speichercontroller zur Bestimmung einer Zugriffscharakteristik einer Datenentität
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
DE102020104701A1 (de) Cache data location system
DE102013210719B4 (de) Verfahren und Systeme zum Verwalten von Cache-Speichern

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee