Parallelitätsmethoden (Windows Server AppFabric-Cache)
Die Windows Server AppFabric-Cachefunktion unterstützt optimistische und pessimistische Parallelitätsmodelle. Die folgenden Abschnitte erläutern, wie die Cacheclientmethoden mit diesen Modellen zusammenhängen. Weitere Informationen über Parallelität finden Sie unter Parallelitätsmodelle (Windows Server AppFabric-Cache).
Optimistisches Parallelitätsmodell
Im optimistischen Parallelitätsmodell werden für Aktualisierungen zwischengespeicherter Objekte keine Sperren verwendet. Stattdessen liest der Cacheclient zuerst die Version des zu aktualisierenden Objekts und sendet diese Versionsinformationen zusammen mit dem aktualisierten Objekt. Das System aktualisiert das Objekt nur dann, wenn die gesendete Version mit der aktuellen Version des Objekts übereinstimmt. Jede Aktualisierung eines Objekts ändert seine Versionsnummer. Dies verhindert, dass die Aktualisierung die Änderungen anderer Benutzer überschreibt.
Methode | Beschreibung |
---|---|
Nimmt entwurfsbedingt keine Sperren an. Get ist immer erfolgreich, wenn das Element vorhanden ist. Wenn das Objekt aktualisiert wird, wartet die Methode Get nicht, und nur die aktuelle Version des Objekts wird zurückgegeben. |
|
Gibt alle DataCacheItem-Objekte zurück. Neben den zwischengespeicherten Objekten und anderen Informationen, z. B. Tags, werden die Versionsinformationen zum Objekt ebenfalls zurückgegeben. |
|
Kann zum Überprüfen verwendet werden, ob sich das zwischengespeicherte Objekt in der Datenquelle geändert hat. Damit der Netzwerkdatenverkehr so gering wie möglich ist, wird das zwischengepeicherte Objekt nur zurückgegeben, wenn eine neuere Version verfügbar ist. |
|
Verwendet keine optimistischen parallelitätsbezogenen Überladungen. Add ist erfolgreich oder fehlerhaft. |
|
Unterstützt optimistische Parallelität, indem Versionsinformationen als ein optionaler Parameter angenommen werden. Put ist nur erfolgreich, wenn das zu ersetzende Objekt die gleiche Version aufweist. |
|
Unterstützt optimistische Parallelität, indem Versionsinformationen als ein optionaler Parameter angenommen werden. Remove ist nur erfolgreich, wenn das zu löschende Objekt die gleiche Version aufweist. |
Pessimistisches Parallelitätsmodell
Im pessimistischen Parallelitätsmodell sperrt der Client Objekte ausdrücklich, um Vorgänge auszuführen. Andere Vorgänge, die Sperren anfordern, werden zurückgewiesen (das System blockiert Anforderungen nicht), bis die Sperren freigegeben wurden. Wenn Objekte gesperrt sind, wird ein Sperrhandle (als ein Ausgabeparameter) zurückgegeben. Das Sperrhandle ist zum Aufheben der Sperre des Objekts erforderlich. Tritt ein Clientfehler vor der Freigabe eines gesperrten Objekts auf, werden Timeouts bereitgestellt, um die Sperren freizugeben. Gesperrte Objekte laufen niemals ab, sie können jedoch nach dem Aufheben ihrer Sperre sofort ablaufen, wenn ihre Ablaufzeit überschritten wurde.
Hinweis
Vorgangsübergreifende Transaktionen werden nicht unterstützt. Die Anwendung, die den Cache verwendet, ist für die Ermittlung der Reihenfolge der Sperren und ggf. das Erkennen Deadlocks verantwortlich.
Warnung
Gesperrte Objekte im Cache können dennoch durch beliebige Cacheclients mit der Methode Put ersetzt werden. Cacheaktivierte Anwendungen sind für die konsistente Verwendung von PutAndUnlock für Elemente verantwortlich, die das pessimistische Parallelitätsmodell verwenden.
In der folgenden Tabelle werden die Methoden angezeigt, die Sie zum Sperren eines Objekts und zum Aufheben von Sperren verwenden können.
Methode | Beschreibung |
---|---|
Gibt das zwischengespeicherte Objekt zurück und sperrt dieses (wenn vorhanden). Weitere GetAndLock-Methodenaufrufe für das gleiche Objekt führen zu einem Fehler, solange die Sperre gültig ist. Reguläre Get-Methodenaufrufe werden nicht blockiert und greifen immer auf die aktuellste Version des zwischengespeicherten Objekts zu. |
|
Aktualisiert das gesperrte Objekt und gibt die Sperre dann frei. Das von GetAndLock abgerufene Sperrhandle ist ein erforderlicher Parameter und muss mit dem Sperrhandle des gesperrten Objekts übereinstimmen, um erfolgreich zu sein. |
|
Hebt die Sperre eines zwischengespeicherten Objekts ausdrücklich auf, wenn der Sperrhandleparameter mit dem des gesperrten Objekts übereinstimmt. Unlock unterstützt außerdem das Erweitern des Ablaufs des aktuellen Elements, damit verhindert wird, dass es abläuft, sobald seine Sperre aufgehoben wird (wenn die Sperre nach seiner Ablaufzeit aufgehoben wird). |
Siehe auch
Konzepte
Klassenübersicht (Windows Server AppFabric-Cache)
Grundlegende Cachemethoden (Windows Server AppFabric-Cache)
Tagbasierte Methoden (Windows Server AppFabric-Cache)
Konfigurationsmethoden (Windows Server AppFabric-Cache)
Verwenden grundlegender Cachemethoden (Windows Server AppFabric-Cache)
Windows Server AppFabric-Cachekonzepte
2011-12-05