Leistung von Sperren optimieren

Sperrstrategien und Transaktionsisolationseinstellungen wirken sich auf die Leistung Ihrer Anwendungen aus.

Zwischengespeicherte Instanz abrufen

Weitere Informationen finden Sie unter Sperrenmanager:

Pessimistische Sperrstrategie

Verwenden Sie die pessimistische Sperrstrategie für Lese- und Schreiboperationen in Maps, wenn die Anzahl der Schlüsselkollisionen sehr hoch ist. Die pessimistische Sperrstrategie hat die größten Auswirkungen auf die Leistung.

Transaktionsisolationsstufen "read committed" und "read uncommitted"

Wenn Sie eine pessimistische Sperrstrategie verwenden, setzen Sie die Transaktionsisolationsstufe mit der Methode "Session.setTransactionIsolation". Für die Isolationsstufen "read committed" und "read uncommitted" verwenden Sie das Argument "Session.TRANSACTION_READ_COMMITTED" bzw. das Argument "Session.TRANSACTION_READ_UNCOMMITTED". Wenn Sie die Transaktionsisolationsstufe auf das pessimistische Standardsperrverhalten zurücksetzen möchten, verwenden Sie die Methode "Session.setTransactionIsolation" mit dem Argument "Session.REPEATABLE_READ".

Die Isolationsstufe "read committed" verringert die Dauer gemeinsamer Sperren, was die Anzahl gemeinsamer Zugriffe erhöhen und das Risiko von Deadlocks verringern kann. Diese Isolationsstufe sollte verwendet werden, wenn eine Transaktion keine Zusicherung benötigt, dass gelesene Werte für die Dauer der Transaktion unverändert bleiben.

Verwenden Sie die Isolationsstufe "uncommitted read", wenn die Transaktion die festgeschriebenen Daten nicht sehen muss.

Optimistische Sperrstrategie

Optimistisches Sperren ist die Standardkonfiguration. Diese Strategie bietet im Vergleich mit der pessimistischen Sperrstrategie sowohl eine bessere Leistung als auch eine bessere Skalierbarkeit. Verwenden Sie diese Strategie, wenn Ihre Anwendungen einige Fehler bei optimistischen Aktualisierungen tolerieren können und dabei eine bessere Leistung bieten als bei der pessimistischen Strategie. Diese Strategie eignet sich bestens für Leseoperationen und Anwendungen, die nur selten Aktualisierungen vornehmen.

OptimisticCallback-Plug-in

Bei der optimistischen Sperrstrategie wird eine Kopie der Cacheeinträge erstellt, und diese werden dann bei Bedarf mit den Originaleinträgen verglichen. Diese Operation kann kostenintensiv sein, weil das Kopieren der Einträge Klon- und Serialisierungsoperationen umfassen kann. Um die beste Leistung zu erzielen, implementieren Sie das angepasste Plug-in für Maps, die keine Entitäts-Maps sind.

Weitere Informationen finden Sie unter Plug-ins für die Versionssteuerung und den Vergleich von Cacheobjekten.

Versionsfelder für Entitäten verwenden

Wenn Sie optimistisches Sperren für Entitäten verwenden, verwenden Sie die Annotation "@Version" oder ein äquivalentes Attribut in der Metadatendeskriptordatei der Entität. Die Versionsannotation bietet ObjectGrid eine effiziente Methode für die Verfolgung der Versionen eines Objekts. Wenn die Entität kein Versionsfeld hat und optimistisches Sperren für die Entität verwendet wird, muss die vollständige Entität kopiert und verglichen werden.

Strategie ohne Sperren verwenden

Verwenden Sie die Strategie ohne Sperren für Anwendungen, die nur Leseoperationen durchführen. Bei dieser Strategie werden weder Sperren angefordert, noch wird ein Sperrenmanager verwendet. Deshalb bietet diese Strategie die höchste Anzahl gemeinsamer Zugriffe, die höchste Leistung und die höchste Skalierbarkeit.