Ajuste del rendimiento de bloqueo

Los valores de las estrategias de bloqueo y del aislamiento de transacciones afectan el rendimiento de las aplicaciones.

Recuperar una instancia almacenada en memoria caché

Para obtener más información, consulte Gestor de bloqueo:

Estrategia de bloqueo pesimista

Utilice la estrategia de bloqueo pesimista en operaciones de correlación de lectura y grabación donde las claves suelen colisionar. La estrategia de bloqueo pesimista tiene un gran impacto sobre el rendimiento.

Aislamiento de transacciones de lectura confirmada y no confirmada

Si utiliza la estrategia de bloqueo pesimista, establezca el nivel de aislamiento de transacción a través del método Session.setTransactionIsolation. Para el aislamiento confirmado de lectura o no confirmado de lectura, utilice los argumentos Session.TRANSACTION_READ_COMMITTED o Session.TRANSACTION_READ_UNCOMMITTED en función del aislamiento. Para restablecer el nivel de aislamiento en el comportamiento de bloqueo pesimista predeterminado, utilice el método Session.setTransactionIsolation con el argumento Session.REPEATABLE_READ.

El aislamiento de lectura confirmada reduce la duración de los bloqueos compartidos, que pueden mejorar la simultaneidad y reducir la probabilidad de puntos muertos. Este nivel de aislamiento debe utilizarse cuando una transacción no necesita la constatación de que los valores de lectura permanecen sin modificar durante la transacción.

Utilice una lectura no confirmada cuando la transacción no necesita ver los datos confirmados.

Estrategia de bloqueo optimista

El bloqueo optimista es la configuración predeterminada. Esta estrategia mejora el rendimiento y la escalabilidad en comparación con la estrategia pesimista. Utilice esta estrategia cuando las aplicaciones puedan tolerar anomalías de actualización optimista y el rendimiento siga siendo mejor que el de la estrategia pesimista. Esta estrategia es excelente en operaciones de lectura y aplicaciones con actualizaciones poco frecuentes.

Plug-in OptimisticCallback

La estrategia de bloqueo optimista realiza una copia de las entradas de la memoria caché y las compara como sea preciso. Esta operación puede resultar costosa porque la copia de la entrada podría implicar la clonación o serialización. Para conseguir el rendimiento más rápido posible, implemente el plug-in personalizado para las correlaciones que no son de entidad.

Si desea más información, consulte Plug-ins para el mantenimiento de versiones y la comparación de objetos de memoria caché.

Uso de campos de versión para entidades

Cuando utilice el bloqueo optimista con entidades, utilice la anotación @Version o el atributo equivalente en el archivo de descriptor de metadatos de entidad. La anotación de versión proporciona a ObjectGrid una forma muy eficiente de realizar el seguimiento de la versión de un objeto. Si la entidad no tiene un campo de versión y se utiliza un bloqueo optimista para la entidad, debe copiarse y compararse toda la entidad.

Estrategia de ningún bloqueo

Utilice esta estrategia en aplicaciones de sólo lectura. La estrategia de ningún bloqueo no obtiene ningún bloqueo ni usa un gestor de bloqueos. Por lo tanto, esta estrategia ofrece el rendimiento y la escalabilidad con más concurrencia.