Topologiebezogenes Verhalten für Cache-Vorgänge
NCache stellt verschiedene Caching-Topologien bereit, die sich beim Ausführen von Cache-Vorgängen unterschiedlich verhalten. Nachfolgend sind angegeben NCache Topologien und ihr Verhalten.
- Spiegel-Cache (Nur Enterprise Edition)
- Replizierter Cache
- Partitionierter Cache
- Partitionierter Replikat-Cache (Nur Enterprise Edition)
- Client-Cache (Nur Enterprise Edition)
Spiegeltopologie
Note
Diese Funktion ist nur verfügbar in NCache Enterprise Ausgabe.
In Spiegel In der Topologie kommuniziert der Client nur mit dem aktiven Knoten, während der passive Knoten das Replikat des aktiven Knotens ist und für die Sicherung verwendet wird.
Massenvorgänge werden auf dem aktiven Knoten ausgeführt, wobei die Anwendung darauf wartet, dass die Vorgänge auf dem passiven Knoten repliziert werden.
Asynchrone Vorgänge werden auch auf dem aktiven Knoten ausgeführt, die Kontrolle wird jedoch sofort an die Anwendung zurückgegeben, sodass diese nicht darauf wartet, dass der Vorgang auf beiden Knoten ausgeführt wird. Wenn ein Rückruf registriert ist, wird er bei Erfolg oder Misserfolg des Vorgangs ausgelöst.
Replizierte Topologie
In repliziert In der Topologie ist der Client jeweils mit einem Knoten verbunden. Somit werden die Massen-/asynchronen Vorgänge an den spezifischen Knoten gesendet, mit dem der Client verbunden ist. Diese Vorgänge werden dann synchron zwischen den Knoten repliziert, um die Datenkonsistenz sicherzustellen.
Bei Massenoperationen werden die Operationen an den spezifischen Knoten gesendet, mit dem der Client verbunden ist. Die Kontrolle wird an den Benutzer zurückgegeben, nachdem die Replikation auf allen Knoten des Clusters erfolgt ist.
Bei asynchronen Vorgängen wird die Kontrolle sofort an die Anwendung zurückgegeben, ohne auf die Replikation warten zu müssen. Sobald jedoch die Replikation erfolgt, wird der Rückruf ausgelöst und an den Client zurückgegeben.
Partitionierte Topologie
In partitioniert or partitioniertes Replikat Topologie wird eine Verteilungskarte verwaltet, die für die Datenverteilung im Cluster verantwortlich ist. Bevor wir auf die Details der durchgeführten Operationen eingehen, ist es wichtig zu verstehen, was eine Verteilungskarte ist. Eine Verteilungskarte ist eine Schlüssel-Wert-Paarstruktur, in der Schlüssel die Knotenidentität darstellen und der Wert Informationen zu Buckets (von Daten) enthält, die sich auf diesem Knoten befinden. Auf diese Weise wird eine vollständige Karte für den Cache generiert und auf der Serverseite verwaltet. NCache Lässt den Koordinatorknoten die Datenverteilung basierend auf der Karte entscheiden.
Note
Die Verteilungskarte verteilt alle Daten im Falle eines vollständig verbundenen Clusters (alle Knoten des Clusters sind verbunden). Falls ein Knoten vom Cluster getrennt wird, NCache teilt die Daten anhand der Verteilungskarte nicht weiter auf und sendet die Daten an den nächsten verbundenen Knoten.
Nachdem die Knotenadresse, an der sich der Bucket befindet, von der Verteilungskarte abgerufen wurde, wird der Vorgang an den Zielknoten gesendet. NCache Behält die verteilte Karte auf der Client-Seite bei, sodass die Operation beim Ausführen der nächsten Operation am Schlüssel direkt an den Knoten gesendet wird, auf dem sich die Daten befinden. Dies verbessert die Leistung, da der Vorgang direkt an den Knoten gesendet wird, auf dem sich die Daten befinden.
Angenommen, die Datenelemente 1–500 befinden sich auf N1 und 501–1000 auf N2 (die Daten sind jedoch nicht in einer Reihenfolge unterteilt und werden zufällig gemischt), gemäß der Verteilungskarte. Bei jeder Operation, die an Massenartikeln ausgeführt wird, wird die Operation in einem einzigen Aufruf an den entsprechenden Knoten gesendet. Der größte Vorteil der Verteilungskarte auf der Clientseite besteht in der schnelleren Leistung, da der Vorgang direkt auf dem Datenknoten ausgeführt wird. Die Kontrolle wird an den Benutzer zurückgegeben (für jede weitere Operation), sobald die Operation vollständig ausgeführt wurde.
Bei asynchronen Vorgängen wird der Aufruf nach Ausführung eines Schreibvorgangs sofort an Sie zurückgegeben, während der Vorgang im Hintergrund weiter ausgeführt wird. NCache Unterhält im Hintergrund eine Warteschlange, die (keine Auswirkungen auf Ihre Client-Vorgänge) die Vorgänge in Bezug auf Daten verfolgt. Es bietet großen Komfort bei umfangreichen Datensätzen, bei denen die Ausführung von Vorgängen sehr lange dauert.
Partitionierte Replikattopologie
Note
Diese Funktion ist nur verfügbar in NCache Enterprise Ausgabe.
In partitioniertes Replikat In der Topologie wird der Clientvorgang zunächst auf dem zugewiesenen Knoten ausgeführt und dann je nach Angabe des Benutzers entweder synchron oder asynchron auf sein Replikat repliziert.
Bei Massenoperationen, falls in synchronisieren Im Modus werden die Vorgänge auf dem zugewiesenen Knoten ausgeführt und die Anwendung wartet, bis die Replikation auf dem Replikat der Partition erfolgt. Wenn drin async Im Modus wird die Kontrolle an die Anwendung zurückgegeben, sobald die Operation auf dem Partitionsknoten ausgeführt wird, und wartet nicht auf die Replikation, da sie asynchron ist.
Bei asynchronen Vorgängen wird der Vorgang an den zugewiesenen Partitionsknoten gesendet und die Kontrolle sofort an den Benutzer zurückgegeben, unabhängig vom angegebenen Synchronisierungsmodus.
Client-Cache
Note
Diese Funktion ist nur verfügbar in NCache Enterprise Ausgabe.
A Client-Cache ist ein lokaler Cache, der mit einem Remote-Cluster-Cache synchronisiert ist. Diese Synchronisierung erfolgt durch Abfragen. Wenn ein Cluster-Cache nach seinem standardmäßigen Abfrageintervall von 1 Sekunde eine Änderung für einen seiner Client-Caches erkennt, weist er den Client-Cache an, die geänderten Daten abzufragen. Andernfalls fordert der Client-Cache nach dem Standardintervall von 10 Sekunden den Cluster-Cache auf, die geänderten Daten (falls vorhanden) bereitzustellen.
Bei Schreibvorgängen wird jeder Vorgang zuerst im Client-Cache und anschließend über einen internen Write-Behind-Mechanismus im Remote-Cache ausgeführt.
Bei Massenvorgängen wird die Kontrolle an die Anwendung zurückgegeben, sobald der Vorgang sowohl im Client-Cache als auch im Remote-Cache ausgeführt wird. Bei asynchronen Vorgängen werden Rückrufe vom Remote-Cache an den Client-Cache zurückgegeben, nachdem der Vorgang im Cache ausgeführt wurde.
Bei Lesevorgängen wird der Schlüssel jedoch zunächst im Client-Cache gesucht; Wenn es nicht gefunden wird, ruft der Client-Cache das Schlüsselelement aus dem Remote-Cache ab und gibt es dann an den Client zurück. Dies sorgt für eine maximale Leistungssteigerung und Skalierbarkeit der Anwendung, ohne die Datenintegrität zu beeinträchtigen.
Siehe auch
Daten zum Cache hinzufügen
Vorhandene Daten im Cache aktualisieren
Vorhandene Cache-Daten abrufen
Daten aus dem Cache entfernen