DE19961499A1 - Caching von Objekten in Platten-gestützten Datenbanken - Google Patents
Caching von Objekten in Platten-gestützten DatenbankenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement 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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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;
- 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.
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)
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)
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)
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 |
-
1999
- 1999-12-20 DE DE19961499A patent/DE19961499A1/de not_active Withdrawn
-
2000
- 2000-12-07 AU AU28407/01A patent/AU2840701A/en not_active Abandoned
- 2000-12-07 WO PCT/EP2000/012356 patent/WO2001046809A1/en active Application Filing
- 2000-12-19 US US09/741,122 patent/US6941432B2/en not_active Expired - Lifetime
Patent Citations (1)
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)
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 |