es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Manejo de concurrencia optimista en Azure Table Storage?

En las bases de datos relacionales tradicionales, para evitar un escenario de “Last Writer Wins” (último escritor gana), generalmente las actualizaciones se realizan de la siguiente manera:

update MyTable
set myColumn = @newValue,
    version=version+1
where myPk = @pk and version = @versionObtainedPreviously

¿Cómo puedo implementar un comportamiento similar utilizando Azure Table Storage?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Azure Table Storage no tiene un mecanismo de versionado incorporado como las bases de datos relacionales tradicionales. Sin embargo, existen varias aproximaciones para evitar un escenario de “El último escritor gana” en Azure Table Storage:

    1. ETag: Azure Table Storage proporciona una propiedad ETag para cada entidad, que cambia cada vez que la entidad se actualiza. Puedes utilizar ETag en combinación con solicitudes condicionales para asegurarte de que estás actualizando la última versión de una entidad. Si el ETag de la solicitud coincide con el ETag actual de la entidad, la actualización será exitosa. De lo contrario, la actualización fallará y deberás recuperar la última versión de la entidad e intentarlo nuevamente.
    2. Timestamp: Azure Table Storage también proporciona una propiedad Timestamp para cada entidad, que representa la fecha y hora en que fue modificada por última vez. Puedes utilizar Timestamp para implementar un comportamiento similar al versionado. Al actualizar una entidad, puedes recuperar su Timestamp actual e incluirlo en tu solicitud de actualización como una condición. Si el Timestamp de la solicitud coincide con el Timestamp actual de la entidad, la actualización será exitosa. De lo contrario, la actualización fallará y deberás recuperar la última versión de la entidad e intentarlo nuevamente.

    En general, ambas aproximaciones te permiten evitar un escenario de “El último escritor gana” en Azure Table Storage al asegurarte de que solo estás actualizando la última versión de una entidad.

Comments are closed.