DE102012215665B4 - Dynamische Änderung der TTL-Werte in einem Datencache - Google Patents

Dynamische Änderung der TTL-Werte in einem Datencache Download PDF

Info

Publication number
DE102012215665B4
DE102012215665B4 DE102012215665.8A DE102012215665A DE102012215665B4 DE 102012215665 B4 DE102012215665 B4 DE 102012215665B4 DE 102012215665 A DE102012215665 A DE 102012215665A DE 102012215665 B4 DE102012215665 B4 DE 102012215665B4
Authority
DE
Germany
Prior art keywords
data
cost
computer
policy
instructions
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.)
Active
Application number
DE102012215665.8A
Other languages
English (en)
Other versions
DE102012215665A1 (de
Inventor
Snehal S. Antani
Kulvir Singh Bhogal
Nitin Gaur
Christopher D. Johnson
Todd E. Kaplinger
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012215665A1 publication Critical patent/DE102012215665A1/de
Application granted granted Critical
Publication of DE102012215665B4 publication Critical patent/DE102012215665B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/465Structured object, e.g. database record

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren zur Optimierung der Zugriffszeit auf Datenobjekte einer Datenbank, die in einem Datencache in einem Datengitter zwischengespeichert werden können, bei dynamisch optimierter Datencache-Größe, umfassend: das administrative Einstellen einer Toleranzrichtlinie zum Erhöhen der Lebenszeit (Time to Live (TTL)) eines Datenelements mit zunehmenden Kosten bzw. zunehmender Zeit für die Neuerstellung des Datenelements und seine Neuspeicherung im Datencache sowie seine Bereinigung, um ein Datenelement aus seinem Speicherort und Repliken davon zu entfernen; Überwachen instrumentierter Messwerte zum Berichten der Kosten für ein Datenelement; Anpassen der Lebenszeit des Datenelements in Abhängigkeit von den Kosten für das Datenelement entsprechend der Toleranzrichtline; Bereitstellen von zusätzlichem bzw. weniger Speicherplatz für den Datencache mit zunehmender bzw abnehmender angepasster Lebenszeit der im Datencache behaltenen Datenelemente.

Description

  • Die vorliegende Erfindung betrifft allgemein die Datenspeicherung und insbesondere die Änderung der Lebenszeit(TTL)-Werte in einem Datencache als Reaktion auf Kostenfaktoren.
  • Ein Cache ist eine speicherinterne Speicherkomponente, die Daten auf transparente Weise speichert, damit künftige Anforderungen nach diesen Daten schneller bedient werden können. Die Daten, die gespeichert werden, können zuvor berechnete Werte oder Kopien von woanders gespeicherten Werten sein. Da die Cachegröße relativ klein ist, sind typischerweise mehr Daten vorhanden als speicherinterner Speicherplatz verfügbar ist. Daher implementieren Datencaches gewöhnlich eine Bereinigungsrichtline wie z. B. Time to Live (TTL, deutsch: „Lebenszeit”), Least Recently Used (LRU, deutsch: „Am längsten nicht verwendet”) oder Least Frequently Used (LFU, deutsch: „Am wenigsten verwendet”), wovon jede gewöhnlich einen festen Wert definiert, der auf der Toleranz des Clients für veraltete Daten und auf der Menge des im Cache verfügbaren Speicherplatzes basiert. Die Bereinigungsrichtlinien berücksichtigen nicht die Kosten der Neuerstellung der Daten, wenn sie angefordert werden, nachdem sie bereinigt worden sind. Oft ist es wünschenswert, bei erwarteten oder tatsächlichen erhöhten Verkehrsvolumina durch einen Bereitstellungsprozess vorübergehend die Größe des Caches und des Bereinigungsrichtlinienfensters zu erhöhen.
  • Es gibt auch Anwendungsfälle, in denen die Kosten der Neuerstellung der Daten im Cache die Kosten des Lesens veralteter Daten übersteigen. Wenn zum Beispiel die Datenbank unerreichbar ist oder die Verbindung zur Datenbank überlastet ist, ist die vorübergehende Deaktivierung oder Erhöhung der Bereinigungsrichtlinie vorteilhafter, als wenn man den Benutzer endlos warten oder ein Verbindungszeitlimit überschreiten lässt, wodurch sich das Datenbankproblem auf die Front-End-Systeme niederschlagen kann.
  • KURZBESCHREIBUNG
  • Die Erfindung wird inbesondere verwirklicht durch ein Verfahren nach Ansporuch 1, durch ein Computersystem nach Anspruch 7 und durch ein Computerprogrammerzeugnis nach Anspruch 13. Die Unteransprüche sollen vorteilhafte Ausführungsformen der Erfindung unter Schutz stellen.
  • Nach einer Ausführungsform der vorliegenden Erfindung wird ein TTL-Wert für ein Datenobjekt, das speicherintern in einem Datengitter gespeichert wird, dynamisch angepasst. Eine Toleranzrichtlinie für veraltete Daten wird eingestellt. Messwerte zum Berichten der Kosten der Neuerstellung und Neuspeicherung des Datenobjekts werden berechnet, und der TTL-Wert wird auf der Basis der berechneten Messwerte angepasst.
  • Nach einer Ausführungsform der vorliegenden Erfindung passt ein Computersystem einen TTL-Wert für ein Datenobjekt, das speicherintern in einem Datengitter gespeichert wird, dynamisch an. Das Computersystem umfasst einen Prozessor und Speicher, der mit dem Prozessor verbunden ist. Der Speicher ist mit Anweisungen codiert, die, wenn sie ausgeführt werden, Anweisungen zur Einstellung einer Toleranzrichtlinie für veraltete Daten umfassen. Die Anweisungen umfassen auch Anweisungen zur Berechnung von Messwerten, um die Kosten der Neuerstellung und Neuspeicherung des Datenobjekts zu berichten und den TTL-Wert auf der Basis der Messwerte anzupassen.
  • Nach einer Ausführungsform der vorliegenden Erfindung passt ein Computerprogrammerzeugnis einen TTL-Wert für ein Datenobjekt, das speicherintern in einem Datengitter gespeichert wird, dynamisch an. Das Computerprogrammerzeugnis umfasst ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der darauf enthalten ist. Der computerlesbare Programmcode umfasst computerlesbaren Programmcode, der dafür konfiguriert ist, eine Toleranzrichtlinie für veraltete Daten einzustellen. Der computerlesbare Programmcode ist auch dafür konfiguriert, Messwerte zu berechnen, um die Kosten der Neuerstellung und Neuspeicherung des Datenobjekts zu berichten und den TTL-Wert auf der Basis der Messwerte anzupassen.
  • KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN IN DEN ZEICHNUNGEN
  • 1 ist eine Veranschaulichung der Computer-Hardware, in welcher eine Ausführungsform der vorliegenden Erfindung implementiert werden kann;
  • 2 ist ein speicherinternes Datenspeichersystem, wie es im Stand der Technik bekannt ist;
  • 3 ist ein Flussdiagramm nach einer Ausführungsform der vorliegenden Erfindung und
  • 4 veranschaulicht das Variieren der Abrufzeiten und Replikationen eines speicherinternen Datenspeichersystems nach einer Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie der Fachmann erkennen wird, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammerzeugnis ausgeführt werden. Daher können Aspekte der vorliegenden Erfindung die Form einer gänzlich hardwaremäßigen Ausführungsform, einer gänzlich softwaremäßigen Ausführungsform (einschließlich Firmware, speicherresidente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte kombiniert, die hierin alle allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammerzeugnisses annehmen, das in einem computerlesbaren Medium oder in mehreren computerlesbaren Medien mit einem darauf enthaltenen computerlesbaren Programmcode ausgeführt ist.
  • Es kann jede beliebige Kombination eines computerlesbaren Mediums oder mehrerer computerlesbaren Medien (Speicher oder Einheit) verwendet werden. Das computerlesbare Medium kann ein computerlesbarer Signalträger oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel, ohne aber darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-System, eine entsprechende Vorrichtung oder Einheit oder jede geeignete Kombination des Vorstehenden sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium schließen Folgendes ein: eine elektrische Verbindung mit einem Draht oder mehreren Drähten, eine Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flashspeicher), eine Glasfaser, eine CD-ROM, eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorstehenden. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem oder einer entsprechenden Vorrichtung oder Einheit enthalten oder speichern kann.
  • Ein computerlesbarer Signalträger kann ein verbreitetes Datensignal mit einem computerlesbaren Programmcode sein, der zum Beispiel im Basisband oder als Teil einer Trägerwelle darin enthalten ist. Ein derartiges verbreitetes Signal kann verschiedene Formen annehmen, einschließlich, ohne aber darauf beschränkt zu sein, elektromagnetisch, optisch oder jede geeignete Kombination daraus. Ein computerlesbarer Signalträger kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem oder einer entsprechenden Vorrichtung oder Einheit übertragen, verbreiten oder transportieren kann.
  • Der Programmcode, der auf einem computerlesbaren Medium enthalten ist, kann durch jedes geeignete Medium übertragen werden, einschließlich, ohne aber darauf beschränkt zu sein, drahtlos, festnetzgebunden, Glasfaserkabel, HF usw., oder jede geeignete Kombination des Vorstehenden.
  • Der Computerprogrammcode zur Durchführung von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehrerer Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und konventioneller prozeduraler Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann gänzlich auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder gänzlich auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer durch jede Art von Netz einschließlich eines lokalen Netzes (LAN) oder eines Weitverkehrsnetzes (WAN) mit dem Computer eines Benutzers verbunden sein, oder die Verbindung kann (zum Beispiel über das Internet durch einen Internet-Service-Provider) zu einem externen Computer hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden im Folgenden in Bezug auf die Fluss- und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammerzeugnissen nach Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Fluss- und/oder Blockdiagramme und Kombinationen von Blöcken in den Fluss- und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, Spezialcomputers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine zugeführt werden, sodass die Anweisungen, die über den Prozessor des Computers oder der sonstigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der Funktionen/Vorgänge ergeben, die im Block oder in den Blöcken der Fluss- und/oder Blockdiagramme angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten anweisen kann, auf eine bestimmte Weise zu funktionieren, sodass die Anweisungen, die im computerlesbaren Medium gespeichert sind, ein Erzeugnis mit Anweisungen ergeben, die die Funktionen/Vorgänge implementieren, die im Block oder in den Blöcken der Fluss- und/oder Blockdiagramme angegeben sind.
  • Die Computerprogrammanweisungen können auch in einen Computer, in eine andere programmierbare Datenverarbeitungsvorrichtung oder in sonstige Einheiten geladen werden, um die Durchführung einer Reihe von Arbeitsgängen auf dem Computer, der anderen programmierbaren Vorrichtung oder sonstigen Einheiten zu bewirken, um einen computergestützten Prozess zu ergeben, sodass die Anweisungen, die auf dem Computer oder der sonstigen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Implementierung der Funktionen/Vorgänge ergeben, die im Block oder in den Blöcken der Fluss- und/oder Blockdiagramme angegeben sind.
  • Die Fluss- und Blockdiagramme in den Figuren veranschaulichen die Architektur, die Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten nach verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Fluss- oder Blockdiagrammen ein Codemodul, ein Codesegment oder einen Codeteil darstellen, die eine oder mehrere ausführbare Anweisungen zur Implementierung der angegebenen logischen Funktion(en) umfassen. Es ist auch anzumerken, dass in einigen alternativen Implementierungen die in den Blöcken genannten Funktionen in einer anderen Reihenfolge als der in der Figur genannten auftreten können. Zum Beispiel können zwei Blöcke, die aufeinanderfolgend dargestellt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der beteiligten Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Es ist auch anzumerken, dass jeder Block der Block- und/oder Flussdiagramme und Kombinationen von Blöcken in den Block- und/oder Flussdiagrammen durch Systeme auf der Basis von Spezialhardware, die die angegebenen Funktionen oder Vorgänge durchführen, oder durch Kombinationen von Spezialhardware und Computeranweisungen ausgeführt werden können.
  • Die hierin verwendete Terminologie dient nur der Beschreibung spezieller Ausführungsformen und soll die Erfindung in keiner Weise einschränken. Die Singularformen „ein, eine” und „der, die, das”, wie sie hierin verwendet werden, schließen auch die Pluralformen ein, sofern der Kontext nicht eindeutig etwas anderes besagt. Ferner versteht es sich, dass die Ausdrücke „umfasst” und/oder „umfassend”, wenn sie in dieser Patentschrift verwendet werden, das Vorhandensein der genannten Funktionen, Unterpunkte, Schritte, Operationen, Elemente und/oder Komponenten angibt, aber das Vorhandensein oder den Zusatz einer oder mehrerer anderer Funktionen, Unterpunkte, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließt.
  • 1 ist ein Beispiel eines Computersystems 10, das zur Ausführung von Computersoftware zur dynamischen Änderung von TTL-Werten in einem Datencache geeignet ist. Andere Verarbeitungseinheiten, die zur Ausführung der Software geeignet sind, können ein drahtloses Telefon, ein Personal Digital Assistant (PDA), ein tragbarer Computer, eine intelligente Fernsteuerung oder jede andere Verarbeitungseinheit sein, die solch eine Software ausführen kann.
  • Das Computersystem 10 ist eines Typs, der unter einem geeigneten Betriebssystem läuft, das auf dem Computersystem 10 installiert ist. Die Komponenten des Computersystems 10 umfassen einen Computer 12, eine Tastatur 22, eine Maus 24 und einen Bildschirm 20. Der Computer 12 umfasst einen Prozessor 26, einen Speicher 28, Eingabe/Ausgabe(E/A)-Schnittstellen 30 und 32, eine Videoschnittstelle 34 und eine Speichereinheit 36.
  • Der Prozessor 26 ist eine zentrale Verarbeitungseinheit (CPU), die das Betriebssystem und die unter dem Betriebssystem laufende Computersoftware ausführt. Der Speicher 28 umfasst Arbeitsspeicher (RAM) und Nur-Lese-Speicher (ROM) und wird unter der Leitung des Prozessors 26 genutzt.
  • Die Videoschnittstelle 34 ist mit einem Bildschirm 20 verbunden und führt diesem Videosignale zu, die darauf angezeigt werden. Die Benutzereingabe zur Bedienung des Computers 12 wird von der Tastatur 22 und der Maus 24 zugeführt. Die Speichereinheit 36 kann ein Plattenlaufwerk oder jedes andere geeignete Speichermedium einschließen, wie oben beschrieben. Jede der Komponenten des Computers 12 ist mit einem internen Bus 40 verbunden, der Daten-, Adress- und Steuerbusse einschließt, um den Komponenten des Computers 12 den Datenaustausch miteinander über den Bus 40 zu ermöglichen. Das Computersystem 10 kann über eine Eingabe/Ausgabe(E/A)-Schnittstelle 32 mit einem Übertragungskanal 38 zu einem Netz, das als das Internet 18 dargestellt ist, mit einem oder mehreren anderen entsprechenden Computern verbunden sein. Über ein Netz wie das Internet 18 können ein oder mehrere Server 19 mit dem Computer 12 verbunden sein. Die Server 19 können dieselbe physische Anordnung wie der Computer 12 aufweisen und können benachbart zum Computer 12 oder Teil davon sein.
  • Die Computersoftware kann auf einem computerlesbaren Speichermedium gespeichert sein, wobei der Zugriff auf das Computersoftwareprogramm durch das Computersystem 10 in diesem Fall von der Speichereinheit 36 aus erfolgt. Alternativ dazu kann der Computer 12 über das Internet 18 direkt auf die Computersoftware zugreifen. In beiden Fällen kann ein Benutzer unter Verwendung der Tastatur 22 und der Maus 24 mit dem Computersystem 10 interagieren, um die programmierte Computersoftware, die auf dem Computer 12 ausgeführt wird, zu bedienen.
  • Nun auf 2 Bezug nehmend, wird eine Client/Server-Umgebung 200 nach dem Stand der Technik veranschaulicht. Eine Vielzahl von Clients 202 ist mit einem Hostsystem 204 vernetzt. Das Hostsystem 204 kann eine Vielzahl von Anwendungsservern 206 auf einer Vielzahl von Hostservern 208, 210, und 212 umfassen.
  • Jeder Anwendungsserver 206 ist mit einem Cache 214 versehen. Jeder Anwendungsserver 206 kann selbst ein Client sein und kann mit einer Gruppe von Java Virtual Machines (JVMs) vernetzt sein, die zusammen ein Datengitter 216 bilden (eine JVM stellt einen Adressraum, eine Art Container bereit, um Objekte zu speichern, weshalb der Zweck eines speicherinternen Datengitters (IMDG), das an einem Datengitter beteiligt ist, darin liegt, einen Container zum Speichern von Java-Objekten bereitzustellen). Der Anwendungsserver 206 verbindet sich wie ein Client mit dem Gitter 216 und sucht Datenobjekte, die sich im Gitter 216 befinden. Zu diesen Datenobjekten im Gitter 216 wird ein Zeitgeber (als Lebensdauer oder TTL bekannt) geführt. Der Zeitgeber wird geführt, um zu verhindern, dass Datenobjekte ungenutzt liegen bleiben und ständig Speicherplatz belegen (obwohl sie nicht benötigt werden) und begrenzte speicherinterne Speicherressourcen verbrauchen. Wenn ein Datenobjekt häufig angefordert wird oder die Kosten des Abrufens der Daten zuzüglich der Kosten des Replizierens/Kopierens der Daten hoch sind (was auf einen übermäßigen Ressourcenverbrauch schließen lässt), kann es kostengünstiger sein, die TTL zu erhöhen, damit eine Anwendung weiter auf die Datenobjekte im Gitter 216 zugreifen kann.
  • Eine Hostdatenbank 218 stellt persistenten Speicher für die von den Anwendungsservern 206 benutzten Daten bereit. Wie dem Fachmann bekannt ist, werden die Caches 214 und somit das Datengitter 216 verwendet, um Daten zu speichern, die für die Rechenleistung der Anwendungsserver 206 vorteilhaft sind, d. h. auf Daten, die in den Caches 214 gespeichert sind, wird schneller zugegriffen als auf Daten in der Datenbank 218. Es wird eine Spiegeldatenbank 220 als Backup der Datenbank 218 (eine Kopie davon) verwendet, und um Daten für die Verwaltungsfunktion wie zum Beispiel Berichte zu erhalten.
  • Jedes Mal, wenn ein Objekt aktualisiert/bereinigt/ungültig gemacht wird, ist jede synchrone oder asynchrone Kopie des Objekts davon betroffen, und es kann erforderlich sein, den ganzen Weg bis zu einer Back-End-Datenbank (218) zu gehen, um diese Daten abzurufen, mit den Daten Berechnungen anzustellen und Kopien (zur Speicherung in einer Vielzahl der Caches 214 im Datengitter 216 und in der Backup-Datenbank 220) zu erstellen, was die Leistungskosten für den Betrieb des Gitters 216 erhöht. Ein Geschäft kann entscheiden, wie viele synchrone und asynchrone Kopien in einem Datengitter oder über mehrere Datengitter hinweg notwendig sind, um eine hohe Verfügbarkeit und Datengitterkonsistenz zu gewährleisten. Die IMDG-Standardimplementierungen stellen eine TTL jedoch nur auf der Basis der Zeit ein, die benötigt wird, um die Daten aus der Back-End-Datenbank abzurufen, ohne die Zusatzkosten für die Erstellung von Kopien im Datengitter oder in der Backup/Spiegeldatenbank zu berücksichtigen. Demnach ist die TTL die Lebensdauer eines Objekts im Gitter, wie es vom Geschäft definiert wird, welche die Zeit berücksichtigen kann, die für den Abruf aus einer einzelnen Back-End-Datenbank benötigt wird.
  • Eine Ausführungsform der vorliegenden Erfindung verwendet nicht nur die Zeit für den Abruf aus einer Back-End-Datenbank, sondern berücksichtigt auch die Kosten des Replizierens oder Erstellens von Kopien und der Bereinigung. Das unterschiedliche Ausmaß der Kosten (zum Beispiel ist das synchrone Replizieren oder Kopieren kostenintensiver als das asynchrone Replizieren/Kopieren) und die Kosten, keine Kopie verfügbar zu haben, beziehen sich nicht nur auf die Kosten des Abrufs der Daten aus einer Datenbank. Eine Entscheidung, die TTL des Objekts in einem Cache dynamisch zu erhöhen (oder zu verringern oder unverändert zu lassen), basiert auf den Gesamtkosten der Neuübertragung der Daten in das Gitter.
  • Im Vorliegenden werden die Gesamtkosten als die Kosten des Abrufens der Daten aus der Back-End-Datenbank zuzüglich der Kosten einer asynchronen/synchronen Replikation zuzüglich der Kosten der Bereinigung (Zeit für die Datenbereinigung (DEv) + Zeit für die Entfernung von Repliken (DRr) (Async oder Sync)) definiert. Wenn die Gesamtkasten der Rehydrierung oder der Neuübertragung der Daten in das Gitter einen bestimmten Wert erreichen (je nach Richtlinie, siehe Tabelle 1, d. h. wenn die Datenabrufzeit X ist, wird die TTL auf Y erhöht), wird die TTL angepasst, um den Gesamtprozess des Abrufens und der Cachefüllung effizienter zu machen und effizient zu rechnen. Um die Leistungsfähigkeit des Datengitterbetriebs zu gewährleisten, erhöht eine Ausführungsform der vorliegenden Erfindung die TTL auf dynamische Weise, wenn die Kosten der Gitter-Hydrierung rechenintensiv sind. Die Toleranzrichtlinie für veraltete Daten, wie sie definiert wurde, steuert die Wirkungsweise der dynamischen Änderungen der TTL.
  • 3 veranschaulicht ein Beispiel des Flusses der vorliegenden Erfindung. Eine Anwendung wie z. B. eine, die auf den Anwendungsservern 206 läuft, verwendet ein Datengitter (216, 2) als Seitencache, um wiedergegebene Portlets zu speichern, die von mehreren verschiedenen Diensten (Datenbank, Web-Service, CICS usw.) kommen. Die Portlets werden mit einer Methode „generatePage()” generiert und in einem verteilten Abbild namens „genPagesCache” gespeichert. Bezug nehmend auf
  • 3 legt der Kunde in Block 300 eine Toleranzrichtlinie für veraltete Daten fest und ordnet sie dem Abbild „genPagesCache” zu. Zum Beispiel wird eine Richtlinie wie in Tabelle 1 gezeigt eingestellt:
    Datenabrufzeit in Millisekunden (ms) TTL-Toleranzrichtlinie für veraltete Daten
    Weniger als 500 Millisekunden 30 Sekunden
    > 500 ms < 5000 ms 300 Sekunden
    > 5000 ms endlos
    Tabelle 1
  • In Block 302 werden Messwerte zum Berichten der Kosten der Neuerstellung des Datenelements instrumentiert. Zum Beispiel wird die Methode „generatePage()” des Kunden instrumentiert, um die Zeit zu berichten, die benötigt wird, um die Portletseite zu generieren und sie im Cache (das Datenelement) zu speichern. Dies kann durch aspektorientierte Programmierung (AOP) oder andere gängige Instrumentierungsmethoden erfolgen.
  • In Block 304 wird die Datenerstellungszeitstatistik (die instrumentierten Messwerte) zum Beispiel durch einen Überwachungsagenten überwacht. Das TTL-Zeitlimit, das für die Datenbereinigung (einige gängige Bereinigungstools sind Least-Recently-Used(LRU)- oder Least-Frequently-Used(LFU)-Werte) verwendet wird, wird auf der Basis der verfügbaren Messwerte, der administrativen Eingabe, der Toleranzrichtlinie für veraltete Daten automatisch angepasst, und optional werden zusätzliche Server bereitgestellt, um potenzielle Datenzunahmen zu handhaben, die auf eine erhöhte Menge der im Cache behaltenen Daten zurückzuführen sind. Dementsprechend können weniger Server/speicherinterner Speicherplatz bereitgestellt werden, wenn aufgrund niedrigerer Kosten der Neuerstellung, wie sie durch die instrumentierten Messwerte bestimmt wurden, geringere Mengen an Daten behalten werden.
  • Eine Ausführungsform der vorliegenden Erfindung ist eine Voraussageanalyse, die durchgeführt wird, um die Bereinigung eines Cacheeintrags zu verhindern, dessen Neuerstellung kostenintensiv ist und weitere Leistungseinbußen des Caches oder Gitters zur Folgen haben kann. Dies ist wichtig in einem IMDG, da Gitteroperationen wie die Bereinigung und Replikation eine Hauptursache von Gitterinstabilität sein können.
  • In einer Ausführungsform der vorliegenden Erfindung ist Cr der Gesamtwert oder die Gesamtkosten des Abrufens der Daten aus einer Datenbank in ein verteiltes Cache-Gitter. Das Cache-Überwachungssystem überwacht die periodische Datenabrufzeit aus der Datenquelle (Rt). Wenn mehrere Datenquellen/Datenbanken (für ein zusammengesetztes Objekt) vorhanden sind, wird ein Mittelwert der Gesamtsumme aller Datenabrufzeiten (dRt) genommen. Die periodische Replikationszeit basiert auf einer Replikationsrichtlinie, die z. B. synchron (SRp) und/oder asynchron (AsRp) ist. Daher werden die Datenabrufkosten anhand der folgenden Formel bestimmt: Cr = (Rt oder dRt) + SRp* + AsRp* (*Wenn keine Replikationsrichtlinie definiert ist, weder synchron noch asynchron, ist der Wert von SRp (und/oder) AsRp = 1, sodass die Replikationskosten nicht 0 sind.)
  • Ein anderer Faktor, der zu berücksichtigen ist, sind die Bereinigungskosten. Die Bereinigungskosten (Cc) sind die Zeit, um Daten aus einem Speicherort zu entfernen (DEv), und die Zeit, um Repliken zu entfernen (DRr): Cc = DEv + DRr
  • Die Gesamtkosten sind daher: Ct = Cr + Cc
  • Ein Anfangswert TTLi wird entweder durch Konfiguration (statisch) oder durch Verwendung eines Mittelwerts der periodischen Datenabrufzeit eines Prozentsatzes von Objekten eingestellt, die während einer Gitter-Einlaufzeit im Gitter erstellt wurden, zum Beispiel 40 % der Gesamtcache(Tc)-Ladezeit. Der Anfangswert TTLi ist dann: TTLi = Cr × (Tc) × (40/100)
  • Eine Toleranz für veraltete Cacheeinträge wird eingestellt (keine/hoch) (siehe Tabelle 1). Eine niedrige Toleranz für Veraltung bedeutet, dass die Bereinigung ungeachtet der Kosten gewiss ist, und eine hohe Toleranz bedeutet, dass die TTL auf der Basis der Werte von Cr, TTL und der Veraltungstoleranz eingestellt wird.
  • Der TTL-Wert wird geändert (erhöht), wenn die Gesamtkosten (Ct) einen Schwellenwert erreichen, zum Beispiel 20 % mehr als der Anfangswert, da dies auf eine Leistungseinbuße des Caches schließen lässt (die auf die Berücksichtigung der Neuerstellung von Cacheeinträgen und Replikationen zurückzuführen ist).
  • Nach einer Ausführungsform der vorliegenden Erfindung kann das Cache-Überwachungssystem diese Berechnung ständig für alle Cacheeinträge durchführen, deren Bereinigung nahe bevorsteht. Das IMDG gewährleistet eine hohe Verfügbarkeit, indem es sicherstellt, dass redundante Kopien von Daten/Objekten im Gitter vorhanden sind. Daher ist im Falle eines JVM/Prozessfehlers eine Zweitkopie der Daten/Objekte verfügbar. Dies wird durch die auf Richtlinien basierende Replikation und die vorliegende Erfindung erzwungen.
  • Bezug nehmend auf 4 wird eine Ausführungsform der vorliegenden Erfindung veranschaulicht. Ein IMDG-Client 400 fügt in einer Vielzahl von JVMs/Caches/Datengittern/speicherinternen Speicherplätzen 402, 404, 406, und 408 Daten hinzu oder macht diese ungültig. Jeder Cache 402408 umfasst einen Schlüsselwert (K) zur Kennzeichnung eines Objektswerts V, der einen TTL-Wert für die Lebenszeit aufweist. Zur Veranschaulichung ist der Objektwert V ein zusammengesetztes Objekt, das aus der Datenbank 410 und der Datenbank 412 erhalten wird.
  • Die Zeit, die benötigt wird, um den ersten Teil (zum Beispiel einen Benutzernamen und Bankkontostand) des zusammengesetzten Objektwerts V für den Cache 402 aus Db 410 (Bank 1) zu erhalten, wird durch den Pfeil 414 angezeigt und kann zum Beispiel 500 ms betragen. Die Zeit, die benötigt wird, um den zweiten Teil (zum Beispiel den Benutzernamen und Bankkontostand) des zusammengesetzten Objektwerts V für den Cache 402 aus Db 412 (Bank 2) zu erhalten, wird durch den Pfeil 416 angezeigt und kann zum Beispiel 700 ms betragen. Die Abrufkosten dRt betragen also 500 ms + 700 ms = 1200 ms.
  • Nach dem Erhalt dieses zusammengesetzten Werts V wird es je nach Geschäftsrichtlinie notwendig sein, Kopien zu erstellen.
  • Zum Beispiel erfordert das Geschäft die Erstellung eines synchronen Replikats im Cache 404, was 40 ms (SRp) in Anspruch nimmt. Zusätzlich erfordert das Geschäft zwei asynchrone Replikate, die jeweils 20 ms (AsRp) in Anspruch nehmen, jeweils eines im Cache 406 und eines im Cache 408, was Datenabrufkosten (Cr = dRt + SRp + AsRp) von 1280 ms ergibt. Wenn es möglich ist, die TTL für das Datenobjekt V einfach zu erhöhen, können somit 1280 ms eingespart werden. Wenn eine Million solcher Objekte vorhanden sind, ist es möglich, Rechenleistung einzusparen. Auch wenn dies im Beispiel nicht gezeigt wird, könnten die Bereinigungskosten diese Einsparung sogar noch vergrößern.
  • Die vorliegende Erfindung bietet dem Stand der Technik gegenüber Vorteile durch den Zusatz dynamischer Anpassungen der TTL auf der Basis einer Veraltungsrichtlinie, die die aktuelle Replikationsrichtlinie berücksichtigt, um sicherzustellen, dass ein Objekt sich einen berechneten Zeitraum lang in einem Gitter befindet, und die dadurch eine optimale Gitterleistung gewährleistet.
  • Die entsprechenden Strukturen, Ausrüstungen, Vorgänge und Äquivalente aller Elemente in den folgenden Ansprüchen schließen alle Strukturen, Ausrüstungen und Vorgänge zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen ein, wie sie spezifisch beansprucht werden. Die Beschreibung der vorliegenden Erfindung soll der Veranschaulichung und Beschreibung dienen, ohne aber erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt zu sein. Dem Durchschnittsfachmann werden viele Modifikationen und Varianten einfallen, ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Prinzipien der Erfindung und die praktische Anwendung am besten zu erklären und um anderen Durchschnittsfachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen, wie sie für die vorgesehene spezifische Anwendung geeignet sind, zu ermöglichen.
  • Nachdem die Erfindung der vorliegenden Anmeldung ausführlich und in Bezug auf Ausführungsformen davon beschrieben wurde, ist offensichtlich, dass Modifikationen und Variationen möglich sind, ohne vom Umfang der Erfindung abzuweichen, der in den beiliegenden Ansprüchen definiert wird.

Claims (13)

  1. Verfahren zur Optimierung der Zugriffszeit auf Datenobjekte einer Datenbank, die in einem Datencache in einem Datengitter zwischengespeichert werden können, bei dynamisch optimierter Datencache-Größe, umfassend: das administrative Einstellen einer Toleranzrichtlinie zum Erhöhen der Lebenszeit (Time to Live (TTL)) eines Datenelements mit zunehmenden Kosten bzw. zunehmender Zeit für die Neuerstellung des Datenelements und seine Neuspeicherung im Datencache sowie seine Bereinigung, um ein Datenelement aus seinem Speicherort und Repliken davon zu entfernen; Überwachen instrumentierter Messwerte zum Berichten der Kosten für ein Datenelement; Anpassen der Lebenszeit des Datenelements in Abhängigkeit von den Kosten für das Datenelement entsprechend der Toleranzrichtline; Bereitstellen von zusätzlichem bzw. weniger Speicherplatz für den Datencache mit zunehmender bzw abnehmender angepasster Lebenszeit der im Datencache behaltenen Datenelemente.
  2. Verfahren nach Anspruch 1, wobei das Anpassen des TTL-Werts außerdem das Verwenden einer administrativen Eingabe umfasst.
  3. Verfahren nach Anspruch 2, wobei das Anpassen des TTL-Werts außerdem eine Richtlinie für veraltete Daten umfasst.
  4. Verfahren nach Anspruch 3, außerdem umfassend das Bereitstellen von zusätzlichem speicherinternem Speicherplatz, um eine potenzielle Datenzunahme zu handhaben, die auf die längere Speicherung der Daten vor der Bereinigung zurückzuführen ist, wenn die Kosten ihrer Neuerstellung oberhalb eines Richtlinienwerts liegen.
  5. Verfahren nach Anspruch 3, außerdem umfassend das Bereitstellen von weniger speicherinternem Speicherplatz, um eine potentielle Datenabnahme auszunutzen, die auf die kürzere Speicherung der Daten vor der Bereinigung zurückzuführen ist, wenn die Kosten ihrer Neuerstellung unterhalb eines Richtlinienwerts liegen.
  6. Verfahren nach Anspruch 1, wobei das Berechnen der Messwerte die Verwendung einer aspektorientierten Programminstrumentierung zur Prüfung der Messwerte umfasst.
  7. Computersystem zur dynamischen Anpassung eines TTL-Werts für ein Datenobjekt, das speicherintern in einem Datengitter gespeichert wird, umfassend: einen Prozessor und Speicher, der mit dem Prozessor verbunden ist, wobei der Speicher mit Anweisungen zur Ausführung eines Verfahrens nach einem der vorhergehenden Ansprüche ausgestattet ist.
  8. System nach Anspruch 7, wobei die Anweisungen zur Anpassung des TTL-Werts außerdem Anweisungen zur Verwendung einer administrativen Eingabe umfassen.
  9. System nach Anspruch 8, wobei die Anweisungen zur Anpassung des TTL-Werts außerdem Anweisungen zum Einschluss einer Richtlinie für veraltete Daten umfassen.
  10. System nach Anspruch 9, außerdem umfassend Anweisungen zur Bereitstellung von zusätzlichem speicherinternem Speicherplatz, um eine Datenzunahme zu handhaben, die auf die längere Speicherung der Daten vor der Bereinigung zurückzuführen ist, wenn die Kosten ihrer Neuerstellung oberhalb eines Richtlinienwerts liegen.
  11. System nach Anspruch 9, außerdem umfassend Anweisungen zur Bereitstellung von weniger speicherinternem Speicherplatz, um eine Datenabnahme zu handhaben, die auf die kürzere Speicherung der Daten vor der Bereinigung zurückzuführen ist, wenn die Kosten ihrer Neuerstellung unterhalb eines Richtlinienwerts liegen.
  12. System nach Anspruch 7, wobei die Anweisungen zur Berechnung von Messwerten Anweisungen zur Verwendung einer aspektorientierten Programminstrumentierung zur Prüfung der Messwerte umfassen.
  13. Computerprogrammerzeugnis zur dynamischen Anpassung eines TTL-Werts für ein Datenobjekt, das speicherintern in einem Datengitter gespeichert wird, wobei das Computerprogrammerzeugnis ein computerlesbares Speichermedium mit einem darauf enthaltenen computerlesbaren Programmcode zur Durchführung eines Verfahrens nach einem der Ansprüche 1–6 umfasst.
DE102012215665.8A 2011-09-19 2012-09-04 Dynamische Änderung der TTL-Werte in einem Datencache Active DE102012215665B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/235,633 US8918602B2 (en) 2011-09-19 2011-09-19 Dynamically altering time to live values in a data cache
US13/235,633 2011-09-19

Publications (2)

Publication Number Publication Date
DE102012215665A1 DE102012215665A1 (de) 2013-03-21
DE102012215665B4 true DE102012215665B4 (de) 2017-03-23

Family

ID=47751513

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012215665.8A Active DE102012215665B4 (de) 2011-09-19 2012-09-04 Dynamische Änderung der TTL-Werte in einem Datencache

Country Status (3)

Country Link
US (1) US8918602B2 (de)
CN (1) CN103116472B (de)
DE (1) DE102012215665B4 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543554B1 (en) 2010-08-10 2013-09-24 ScalArc Inc. Method and system for transparent database query caching
US9250869B1 (en) * 2012-03-30 2016-02-02 Emc Corporation Synchronous business process execution engine for action orchestration in a single execution transaction context
US20150019547A1 (en) * 2012-04-20 2015-01-15 Krishnamurthy Thalapathy Unified user profiles
US9083614B2 (en) 2012-10-15 2015-07-14 Oracle International Corporation System and method for supporting out-of-order message processing in a distributed data grid
US9348752B1 (en) * 2012-12-19 2016-05-24 Amazon Technologies, Inc. Cached data replication for cache recovery
US10216631B1 (en) * 2013-09-05 2019-02-26 United Services Automobile Association (Usaa) Revising cache expiration
CN103631726B (zh) * 2013-11-28 2017-01-25 北京锐安科技有限公司 一种串接流式计算节点的文件处理方法及装置
US9342542B2 (en) * 2014-01-08 2016-05-17 International Business Machines Corporation Analytics driven in-memory data grid (IMDG) hydration
JP2016048498A (ja) * 2014-08-28 2016-04-07 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
CN105446909A (zh) 2014-08-29 2016-03-30 国际商业机器公司 用于缓存管理的方法和系统
US10044629B1 (en) * 2014-09-22 2018-08-07 Amazon Technologies, Inc. Dynamic TTL based on endpoint health checking
KR102295664B1 (ko) * 2014-10-21 2021-08-27 삼성에스디에스 주식회사 글로벌 서버 로드 밸런서 장치 및 상기 장치에서의 동적 캐쉬 유효 기간 제어 방법
US9819763B2 (en) 2015-08-07 2017-11-14 Fortinet, Inc. Cache management based on factors relating to replacement cost of data
US9731188B2 (en) * 2016-11-28 2017-08-15 Ching-Ho Yeh Adjustable roller skate
CN108255892B (zh) * 2016-12-29 2021-11-30 北京国双科技有限公司 Cookie生命周期的计算方法及装置
US10515013B2 (en) * 2017-11-15 2019-12-24 Salesforce.Com, Inc. Techniques for handling requests for data at a cache
US11088925B2 (en) * 2017-12-04 2021-08-10 Salesforce.Com, Inc. Technologies for capacity remediation in multi-tenant cloud environments
CN108196792B (zh) * 2017-12-29 2021-06-01 北京奇虎科技有限公司 清除过期数据的方法及装置
US10440142B2 (en) * 2018-03-06 2019-10-08 Akamai Technologies, Inc. Automated TTL adjustment using cache performance and purge data
US10942867B2 (en) * 2018-07-11 2021-03-09 EMC IP Holding Company LLC Client-side caching for deduplication data protection and storage systems
US10846227B2 (en) * 2018-12-21 2020-11-24 Paypal, Inc. Controlling cache size and priority using machine learning techniques
US10754559B1 (en) * 2019-03-08 2020-08-25 EMC IP Holding Company LLC Active-active storage clustering with clock synchronization
US11843680B2 (en) * 2020-02-13 2023-12-12 Comcast Cable Communications, Llc Methods and systems for cache optimization
US11870828B2 (en) 2021-09-30 2024-01-09 17Live Japan Inc. System, method and computer-readable medium for rendering a streaming
WO2023055364A1 (en) * 2021-09-30 2023-04-06 17Live Japan Inc. System, method and computer-readable medium for determining a cache ttl
CN115996177B (zh) * 2022-10-17 2024-05-07 北京航空航天大学 一种面向周期性复制系统的成本最小化一致性维护方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772203B1 (en) * 1999-05-14 2004-08-03 Pivia, Inc. Updating data objects for dynamic application caching
US6983318B2 (en) * 2001-01-22 2006-01-03 International Business Machines Corporation Cache management method and system for storing dynamic contents

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188106A1 (en) * 2002-03-26 2003-10-02 At&T Corp. Cache validation using rejuvenation in a data network
US7076611B2 (en) 2003-08-01 2006-07-11 Microsoft Corporation System and method for managing objects stored in a cache
US20050210508A1 (en) 2004-03-19 2005-09-22 Lau Vincent W System and method for managing time-go-live information of media content
US7315872B2 (en) 2004-08-31 2008-01-01 International Business Machines Corporation Dynamic and selective data source binding through a metawrapper
US8645973B2 (en) * 2006-09-22 2014-02-04 Oracle International Corporation Mobile applications
US20100077152A1 (en) * 2008-09-24 2010-03-25 Yahoo! Inc. Primary-secondary caching scheme to ensure robust processing transition during migration and/or failover
US8086803B2 (en) 2009-05-13 2011-12-27 International Business Machines Corporation Managing cache elements
US8630979B2 (en) * 2010-02-26 2014-01-14 Red Hat, Inc. Non-blocking input output based storage
US8209491B2 (en) * 2010-04-27 2012-06-26 Symantec Corporation Techniques for directory server integration
US8949294B2 (en) * 2011-03-23 2015-02-03 Red Hat, Inc. Data grid supporting multiple protocols
CN102170634B (zh) * 2011-04-18 2013-09-25 搜船(北京)网络技术有限公司 一种移动终端位置数据缓存与实时更新系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772203B1 (en) * 1999-05-14 2004-08-03 Pivia, Inc. Updating data objects for dynamic application caching
US6983318B2 (en) * 2001-01-22 2006-01-03 International Business Machines Corporation Cache management method and system for storing dynamic contents

Also Published As

Publication number Publication date
CN103116472A (zh) 2013-05-22
US8918602B2 (en) 2014-12-23
US20130073809A1 (en) 2013-03-21
DE102012215665A1 (de) 2013-03-21
CN103116472B (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
DE102012215665B4 (de) Dynamische Änderung der TTL-Werte in einem Datencache
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE60117818T2 (de) Verwaltung des ersetzens von daten in einem zwischenspeicher auf einem knoten aufgrund von zwischenspeichern anderer knoten
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE60029914T2 (de) System und Verfahren zum Zwischenspeichern
DE112012002452B4 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
DE112019001480B4 (de) Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung
DE202020005734U1 (de) Beschneiden von Indizes zur Verbesserung einer Verarbeitung von Datenbankabfragen
DE112013000650B4 (de) Datenzwischenspeicherungsbereich
DE102013205069A1 (de) Erhöhte effizienz bei inline-deduplizierungen
DE102012224265A1 (de) Gemeinsame Nutzung dicht benachbarter Daten-Cachespeicher
DE112012005037T5 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE102014114108A1 (de) Prozessleitsysteme und -verfahren
DE112021000338B4 (de) Auslagern der statistikerfassung
DE202023101653U1 (de) Organisations- und cloudübergreifende automatisierte Datenpipelines
DE112013003300T5 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE202021004295U1 (de) Gleichzeitige Transaktionsverarbeitung in einem Datenbanksystem
DE102013201973A1 (de) Verteilte Anwendung mit Vorwegnahme von Server-Antworten
DE202021004340U1 (de) Beschränkte Sichten zum Steuern des Zugriffs auf Informationen in einem Datenbanksystem
DE202021004328U1 (de) Mit Daten-Cloud verbundene Anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009500000

Ipc: G06F0012120000

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE GBR, DE

Representative=s name: RICHARDT PATENTANWAELTE PART GMBB, DE

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final