Lokaler Cache
NCache unterstützt einen eigenständigen, nicht gruppierten Cache, der sich auf einem einzelnen Knoten befindet. Der lokale Cache ähnelt in seinen Funktionen den anderen Cluster-Caches, dh er verfügt über alle Caching-Funktionen, die in jeder anderen Caching-Topologie bereitgestellt werden, ist jedoch nicht skalierbar oder fehlertolerant wie Cluster-Caches. Da es sich um einen Einzelserver-Cache handelt, kann seine Transaktionskapazität nicht durch das Hinzufügen mehrerer Server erhöht werden. Außerdem wird eine einzelne Cache-Instanz erstellt (kein Backup oder Replikat), sodass bei einem Ausfall alle zwischengespeicherten Daten verloren gehen. Ein lokaler Cache eignet sich für Anwendungen mit einer kleinen Anzahl von Clients mit geringer Aktivität oder für Anwendungen, bei denen keine großen Datenmengen zwischengespeichert werden müssen.
Isolationsstufen im lokalen Cache
Ein lokaler Cache verfügt über zwei Isolationsstufen:
InProc (In Bearbeitung)
Diese Isolationsstufe bedeutet, dass sich der Cache im Speicherbereich der Clientanwendung befindet. Da diese Art von Cache innerhalb des Anwendungsprozesses vorhanden ist, ist die Antwortzeit schneller. In InProc, NCache Behält zwischengespeicherte Daten als Live-Objekte (nicht in serialisierter Form), was die Serialisierungs-/Deserialisierungskosten reduziert. Bei solchen Anwendungen kann es jedoch zu Speicherbeschränkungen kommen, da sich Anwendung und Cache denselben Speicher teilen. Außerdem können zwischengespeicherte Daten in diesem Fall nicht mit Anwendungen geteilt werden, die außerhalb dieses Prozesses ausgeführt werden.
Da Objekte im selben Adressraum wie der Cache-Client gespeichert werden, erhalten Cache-Clients den Verweis auf zwischengespeicherte Objekte anstelle einer Kopie. Bei Multithread-Anwendungen, bei denen mehrere Threads dasselbe Objekt ändern, müssen diese Änderungen mithilfe verschiedener in der verfügbaren Synchronisierungstechniken synchronisiert werden .NET framework.
Note
Obwohl Objekte in den InProc-Caches nicht in serialisierter Form gespeichert werden, ist es dennoch erforderlich, dass alle Objekte als markiert sind Serializable
. NCache Berechnet die Größe eines Objekts durch Serialisierung der Objekte, was später bei Bedarf bei der Räumung hilft.
OutProc (Außerhalb des Prozesses)
Diese Isolationsstufe bedeutet, dass sich der Cache in einem separaten Prozess befindet (dem NCache Serviceprozess) aus der Client-Anwendung. Mehrere Clients (lokal und remote) können sich mit demselben Cache verbinden, um Daten auszutauschen. Aufgrund der Kommunikationskosten außerhalb des Prozesses ist die Latenz in diesem Fall höher als der InProc-Cache.
Der lokale OutProc-Cache eignet sich für Situationen, in denen mehrere Clients in der Anwendung auf dieselben zwischengespeicherten Daten zugreifen müssen. Beispielsweise sollte in einem Webgarten, in dem jede ASP.NET-Anwendung in einem separaten Arbeitsprozess ausgeführt wird, ein OutProc-Cache verwendet werden. Außerdem wird in ASP.NET-Anwendungen die Verwendung einer InProc-Cache-Instanz aufgrund von Prozessspeicherbeschränkungen nicht als die beste Option angesehen. Beachten Sie jedoch, dass durch die Datenübertragung zwischen dem Anwendungsprozess und dem Cache selbst ein Mehraufwand entsteht.
Siehe auch
Cache-Topologien
Cache-Cluster
Cache-Client
Client-Cache
Bridge für die WAN-Replikation