2011-11-20 18 views

Respuesta

16

Era difícil encontrar información sobre este tema. Sin embargo, en algún momento encontré una declaración que lo explicaba claramente:

  • Linearizabilidad da aislamiento en el nivel de las operaciones, mientras que Serializability da aislamiento en el nivel de las transacciones.

(resumen de la descripción en profundidad found here)

Como un ejemplo:

enter image description here

Aquí, A, B y C son tres operaciones diferentes que se ejecutan al mismo hora. r (varname) significa que la transacción actual está accediendo al valor dentro de varname, y w (varname) significa que la transacción actual está escribiendo un cierto valor en varname.

Ahora, para crear un historial linealizado de estos eventos, debemos asegurarnos de que no haya dos operaciones al mismo tiempo. Una operación que se inició mientras otra operación ya comenzaba debería aparecer detrás de la primera operación.

En este caso:

Log1: A.r(x), B.r(X), B.r(Y), A.w(X), C.r(Y) 

Para crear una historia serializada de estos eventos, hay que separar todas las operaciones de las transacciones A, B y C para que no haya operaciones intercaladas de otras transacciones.

De nuestro ejemplo esto podría resultar en:

Log2: A.r(x), A.w(x), B.r(X), B.r(Y), C.r(Y) 
+0

+1, lo único que habría hecho una mejor respuesta sería referencias. –

+0

@jameslewis Gracias. He agregado una referencia al artículo que me hizo entenderlo antes. – Qqwy

Cuestiones relacionadas