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.

Serial pero no serializable

Recientemente he estado recibiendo conferencias sobre las transacciones. Una diapositiva del PowerPoint me ha confundido durante mucho tiempo. He entendido que serializable significa que dos transacciones pueden ejecutarse en paralelo y el resultado será el mismo que si se hubieran ejecutado en serie, ¿verdad? También he leído la definición de operación serial de Berkeley, que cito: “La forma más sencilla de garantizar el aislamiento es ejecutar todas las operaciones de una transacción por completo antes de comenzar las operaciones de la siguiente transacción. Esto se llama una planificación en serie”. Entonces, basándome en lo anterior, ¡estoy súper confundido de cómo puede ser que un plan sea en serie pero no serializable??? Quiero decir, ¿no está básicamente diciendo que soy humano pero no puedo ser humano?”.

Aquí está la diapositiva:

https://i.stack.imgur.com/YlrO9.jpg

Y he confirmado con el profesor varias veces que esta afirmación es correcta desde su perspectiva.

¡Por favor, ayúdame a entender! ¡Gracias!

Tags:  

Answer

  1. Avatar for davy.ai

    Entendiendo los Planes de Ejecución Serializables y en Serie en Transacciones

    La confusión surge cuando nos encontramos con una situación en la que un plan de ejecución es serial, es decir, todas las transacciones se ejecutan una después de la otra en orden secuencial, pero no es serializable. Entendamos cómo sucede esto.

    En un plan de ejecución serial, según la definición de Berkeley, todas las operaciones de una transacción se completan antes de comenzar las operaciones de la siguiente transacción. Por ejemplo, consideremos dos transacciones T1 y T2 con operaciones O1 a O4, como se muestra en la diapositiva mencionada anteriormente.

    Si ejecutamos estas transacciones de manera serial, tendremos un plan de ejecución serial como se muestra. Las operaciones de T1 se ejecutan y luego las operaciones de T2 se ejecutan. No hay entrelazamiento de operaciones entre las dos transacciones.

    Sin embargo, cuando permitimos la ejecución paralela de transacciones, podemos tener múltiples planes de ejecución posibles. En la diapositiva, tenemos cuatro planes de ejecución posibles – S1, S2, S3 y S4.

    S1 es un plan de ejecución serial como discutimos anteriormente. S2 y S3 son dos planes de ejecución que ejecutan ambas transacciones en paralelo pero en un orden diferente. S4 es un plan de ejecución que entrelaza las operaciones de las dos transacciones, dando como resultado un resultado completamente diferente.

    Ahora, si volvemos a la definición de serializable, establece que un plan de ejecución es serializable si es equivalente a algún plan de ejecución serial. Esto significa que si podemos encontrar un plan de ejecución serial que dé el mismo resultado que un plan de ejecución dado, entonces ese plan de ejecución es serializable.

    En nuestro ejemplo, S1 es obviamente serializable ya que ya es un plan de ejecución serial. Sin embargo, S2, S3 y S4 no son serializables ya que no hay ningún plan de ejecución serial posible que dé el mismo resultado que estos planes de ejecución.

    Entonces, para responder a la pregunta original, un plan de ejecución puede ser serial pero no serializable porque un plan de ejecución serial es solo un tipo de plan de ejecución, y cuando permitimos la ejecución paralela, se vuelven posibles múltiples planes de ejecución. Solo aquellos planes de ejecución que se pueden asignar a un plan de ejecución serial son serializables.

Comments are closed.