Optimisation des performances de verrouillage

Les stratégies de verrouillage et les paramètres d'isolement de transactions affectent les performances de vos applications.

Extraction d'une instance mise en cache

Pour plus d'informations, voir Gestionnaire de verrous:

Stratégie de verrouillage pessimiste

Recourez à la stratégie de verrouillage pessimiste pour les opérations de mappe en lecture et en écriture pour lesquelles les clés entrent généralement en conflit. La stratégie de verrouillage pessimiste a une incidence considérable sur les performances.

Isolement de transactions lecture validée et lecture non validée

Lorsque vous utilisez la stratégie de verrouillage pessimiste, définissez le niveau d'isolement de transaction à l'aide de la méthode Session.setTransactionIsolation. Pour l'isolement de transactions lecture validée et lecture non validée, utilisez l'argument Session.TRANSACTION_READ_COMMITTED ou Session.TRANSACTION_READ_UNCOMMITTED en fonction de l'isolement. Pour rétablir le comportement de verrouillage pessimiste par défaut pour le niveau d'isolement de transaction, faites appel à la méthode Session.setTransactionIsolation avec l'argument Session.REPEATABLE_READ.

L'isolement lecture validée réduit la durée des verrous partagés, ce qui peut améliorer l'accès simultané et limiter le risque d'interblocage. Ce niveau d'isolement doit être utilisé lorsqu'une transaction ne doit pas garantir l'invariabilité des valeurs de lecture pendant la durée de la transaction.

Utilisez la valeur lecture non validée lorsque la transaction ne doit pas tenir compte les données validées.

Stratégie de verrouillage optimiste

Il s'agit de la configuration par défaut. Cette stratégie améliore les performances et l'évolutivité par rapport à la stratégie pessimiste. Utilisez cette stratégie lorsque vos applications peuvent tolérer certains échecs de la mise à jour optimiste tout en offrant cependant de meilleures performances que la stratégie pessimiste. Cette stratégie s'adapte particulièrement aux opérations de lecture et aux applications de mise à jour exceptionnelles.

Plug-in OptimisticCallback

La stratégie de verrouillage optimiste effectue une copie des entrées de cache et les compare si nécessaire. Cette opération peut être coûteuse car la copie des entrées risque d'entraîner des tâches de clonage ou de sérialisation. Pour augmenter les performances le plus rapidement possible, implémentez le plug-in personnalisé pour les mappes de non-entité.

Voir Plug-in de vérification et de comparaison des versions des objets mis en cache pour plus d'informations.

Utilisation de zones version pour les entités

Lorsque vous utilisez le verrouillage optimiste avec les entités, recourez à l'annotation @Version ou l'attribut équivalent dans le fichier descripteur de métadonnées Entité . L'annotation de version permet à l'ObjectGrid de suivre de façon efficace la version d'un objet. Si l'entité ne comporte pas de zone version et si le verrouillage optimiste est utilisé pour l'entité, l'entité entière doit être copiée et comparée.

Stratégie sans verrouillage

Utilisez la stratégie sans verrouillage pour les applications en lecture seule. Cette stratégie ne déclenche aucun verrouillage et n'utilise aucun gestionnaire de verrous. Par conséquent, elle offre plus d'accès simultanés, de performances et d'évolutivité.