Sono molto confuso tra questi due modelli di consistenza. Si prega di fornire alcuni esempi di cronologia insieme a una spiegazione. http://en.wikipedia.org/wiki/Consistency_modelQual è la differenza tra serializzabilità e linearizabilità?
risposta
È stato difficile trovare informazioni su questo argomento. Tuttavia, ad un certo punto ho trovato una dichiarazione che lo spiegava chiaramente:
- La linearizzazione consente l'isolamento a livello di operazioni, mentre la serializzabilità consente l'isolamento a livello di transazioni.
(sintetizzato dalla descrizione approfondita found here)
Ad esempio:
Qui, A, B e C sono tre differenti operazioni esecuzione allo stesso tempo. r (varname) significa che la transazione corrente sta accedendo al valore all'interno di varname e w (varname) significa che la transazione corrente sta scrivendo un certo valore in varname.
Ora, per creare una cronologia linearizzata di questi eventi, dobbiamo assicurarci che non avvengano due operazioni contemporaneamente. Un'operazione avviata mentre un'altra operazione già avviata dovrebbe essere visualizzata dietro la prima operazione.
In questo caso:
Log1: A.r(x), B.r(X), B.r(Y), A.w(X), C.r(Y)
Per creare una storia serializzata di questi eventi, si deve separare tutte le operazioni delle operazioni A, B e C quindi non ci sono operazioni intercalate da altre transazioni.
Dal nostro esempio, questo potrebbe comportare:
Log2: A.r(x), A.w(x), B.r(X), B.r(Y), C.r(Y)
+1, unica cosa che avrebbe reso una risposta migliore sarebbe riferimenti. –
@jameslewis Grazie. Ho aggiunto un riferimento all'articolo che mi ha fatto capire prima. – Qqwy