SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Transazioni e concorrenza




              Cenni su Transazioni e concorrenza


27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 1
Transazioni e concorrenza


           Definizione di transazione
           Effetti della concorrenza sulle transazioni
           Livelli di isolamento delle transazioni
           MVCC – Multi version concurrency control overview
           Differenze tra MVCC e locking
           Row level Locking




27/11/08     /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 2
Cos'è una transazione
   E' un insieme di istruzioni che deve essere eseguita 
   in maniera atomica → o tutto o niente
   Una transazione deve essere ACID
        Atomicity  :  atomicità,  la  transazione  è  indivisibile  nella  sua 
        esecuzione e la sua esecuzione deve essere o totale o nulla, non 
        sono ammesse esecuzioni intermedie;

        Consistency  :  coerenza,  quando  inizia  una  transazione  il 
        database si trova in uno stato coerente e quando la transazione 
        termina  il  database  deve  essere  in  uno  stato  coerente,  ovvero 
        non deve violare eventuali vincoli di integrità, quindi non devono 
        verificarsi contraddizioni (inconsistency) tra i dati archiviati nel DB

        Isolation, isolamento, ogni transazione deve essere eseguita in 
        modo  isolato  e  indipendente  dalle  altre  transazioni,  l'eventuale 
        fallimento  di  una  transazione  non  deve  interferire  con  le  altre 
        transazioni in esecuzione

        Durability:  persistenza,  dopo  un  commit  work,  i  cambiamenti 
        apportati non dovranno essere più persi. 
 27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 3
I livelli di isolamento
   Sono  richiesti  quattro  livelli  di  isolamento  delle 
   transazioni  per  prevenire  questi  tre  comportamenti 
   indesiderabili 


        Dirty  read:  una  transazione  legge  i  dati  provenienti  da  una  transazione 
        simultanea uncomitted


        Non  repeatable  read:  una  transazione  rilegge  i  dati  che  ha 
        precendentemente  letto  e  trova  che  i  dati  sono  stati  modificati da un'altra 
        transazione che ha eseguito il commit dal momento della lettura iniziale



        phantom  read:  una  transazione  riesegue  una  query  che  restituisce  un 
        insieme  di  righe  che  soddisfano  la  condizione  di  ricerca  e  trova  che 
        l'insieme delle righe che soddisfano questa condizione è cambiato a causa 
        di un'altra transazione che ha eseguito un commit di recente


 27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 4
I livelli di isolamento

Isolation level  Dirty Read            Non repeatable read Phantom Read
Read Uncommitted Possible              Possible            Possible
Read Committed Not Possible            Possible            Possible
Repeatable Read Not Possible           Not Possible        Possible
Serializable     Not Possible          Not Possible        Not Possible




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 5
I livelli di isolamento
   PostgreSQL possiede solo 2 livelli di isolamento : 
   Read comitted, Serializable
   Read commited: 

        E' il livello di isolamento di default
        Postgresql  vede  i  dati  che  hanno  avuto  un  commit  prima 
        che la transazione partisse.
        La  query  però  può  vedere  gli  effetti  di  aggiornamenti 
        avvenuti  all'interno  della  stessa  transazioni  che  non 
        possono essere visti da query al di fuori della transazione.
        Le transazioni non restano in attesa

   Serializable: le transazioni avvengono una di seguito all'altra, 
   come se fossero in sequenza  




 27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 6
I livelli di isolamento
   Dove si cambiano i livelli di isolamento?




                        File postgresql.conf



 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 7
Locking          ­ un esempio


                                                         Begin work;
                                                       lock table testtb;
       Transazione 1                                         .........




                                                     Select * from testtb;
       Transazione 2




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp     page 8
Locking          ­ un esempio




      Istante                                                   Istante
      Tempo                                                     Tempo
   Transazione                                               Transazione 
         T1                                                        T2




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 9
Locking un esempio



          Output
       Transazione 2




                                                 In attesa della fine del lock




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 10
Locking          ­ un esempio



                                                         Commit work;
       Transazione 1




                           Dati dalla Transazione T2




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 11
Locking          ­ un esempio




                                                  Facciamo un
                                                    esempio
                                                    Pratico?




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 12
Differenze MVCC ­ Locking

      Nel modello MVCC i lock messi dal sistema durante 
      le operazioni di scrittura non bloccano le operazioni 
      di  lettura  e  viceversa  come  avviene  invece  nei 
      meccanismi di lock tradizionale




      Esistono dei sistemi di locking più raffinato?
            Si  :  ad  esempio  select  ...  for  update  o  select  ... 
            for  share  che  metteno  un lock  sulla singola riga 
            che  viene  modificata,  ed  esegue  un  locking  a 
            livello di ROW



 27/11/08     /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 13
Punto della situazione



               Abbiamo parlato di 
                    Definizione di transazione
                    Effetti della concorrenza sulle transazioni
                    Livelli di isolamento delle transazioni
                    MVCC – Multi version concurrency control 
                    overview
                    Differenze tra MVCC e locking
                    Row level Locking




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp   page 14

Weitere ähnliche Inhalte

Andere mochten auch

PostgreSQL : Architettura di storage
PostgreSQL : Architettura di storagePostgreSQL : Architettura di storage
PostgreSQL : Architettura di storageEnrico Pirozzi
 
Pgtraining bdr
Pgtraining bdrPgtraining bdr
Pgtraining bdrPgTraining
 
Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb PgTraining
 
PostgreSQL: Approximated searches
PostgreSQL: Approximated searchesPostgreSQL: Approximated searches
PostgreSQL: Approximated searchesEnrico Pirozzi
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)PgTraining
 

Andere mochten auch (8)

PostgreSQL : Architettura di storage
PostgreSQL : Architettura di storagePostgreSQL : Architettura di storage
PostgreSQL : Architettura di storage
 
Pgtraining bdr
Pgtraining bdrPgtraining bdr
Pgtraining bdr
 
Ap Camp 2011
Ap Camp 2011Ap Camp 2011
Ap Camp 2011
 
PostgreSQL
PostgreSQL PostgreSQL
PostgreSQL
 
Messa in rete
Messa in reteMessa in rete
Messa in rete
 
Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb
 
PostgreSQL: Approximated searches
PostgreSQL: Approximated searchesPostgreSQL: Approximated searches
PostgreSQL: Approximated searches
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)
 

Ähnlich wie PostgreSQL: Transazioni e locking

Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioniguestbe916c
 
Xe One Day - Adaptive Code
Xe One Day - Adaptive CodeXe One Day - Adaptive Code
Xe One Day - Adaptive CodeMirco Vanini
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureStefano Valle
 
Terracotta JUG Milano
Terracotta JUG MilanoTerracotta JUG Milano
Terracotta JUG MilanoGuido Anselmi
 
Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...
Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...
Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...Francesco Ciclosi
 
Programmazione concorrente in Java (vecchio modello)
Programmazione concorrente in Java (vecchio modello)Programmazione concorrente in Java (vecchio modello)
Programmazione concorrente in Java (vecchio modello)Davide Carboni
 
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"GiacomoVassallo
 
Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...
Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...
Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...Francesco Lacerenza
 
Lezione InternetWorking: Switches e Funzionalità
Lezione InternetWorking: Switches e FunzionalitàLezione InternetWorking: Switches e Funzionalità
Lezione InternetWorking: Switches e FunzionalitàLuca Matteo Ruberto
 
Presentazione sistemi-Pipeline
Presentazione sistemi-PipelinePresentazione sistemi-Pipeline
Presentazione sistemi-Pipelinesimoxx_98
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNMatteo D'Amore
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide SitoDavide Sito
 
Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)brossi676
 
Sicurezza e resilienza di Architetture a Containers
Sicurezza e resilienza di Architetture a ContainersSicurezza e resilienza di Architetture a Containers
Sicurezza e resilienza di Architetture a ContainersGianluca Magalotti
 

Ähnlich wie PostgreSQL: Transazioni e locking (20)

Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioni
 
Xe One Day - Adaptive Code
Xe One Day - Adaptive CodeXe One Day - Adaptive Code
Xe One Day - Adaptive Code
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architetture
 
Terracotta JUG Milano
Terracotta JUG MilanoTerracotta JUG Milano
Terracotta JUG Milano
 
Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...
Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...
Implementare il paradigma Software-Defined Networking utilizzando OpenFlow sw...
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Programmazione concorrente in Java (vecchio modello)
Programmazione concorrente in Java (vecchio modello)Programmazione concorrente in Java (vecchio modello)
Programmazione concorrente in Java (vecchio modello)
 
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
 
Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...
Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...
Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti ...
 
unreal IRCd 3281
unreal IRCd 3281unreal IRCd 3281
unreal IRCd 3281
 
Virtualizzazione
VirtualizzazioneVirtualizzazione
Virtualizzazione
 
Blockchainvis Backend
Blockchainvis BackendBlockchainvis Backend
Blockchainvis Backend
 
Concurrency
ConcurrencyConcurrency
Concurrency
 
Lezione InternetWorking: Switches e Funzionalità
Lezione InternetWorking: Switches e FunzionalitàLezione InternetWorking: Switches e Funzionalità
Lezione InternetWorking: Switches e Funzionalità
 
Presentazione sistemi-Pipeline
Presentazione sistemi-PipelinePresentazione sistemi-Pipeline
Presentazione sistemi-Pipeline
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDN
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide Sito
 
Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Sicurezza e resilienza di Architetture a Containers
Sicurezza e resilienza di Architetture a ContainersSicurezza e resilienza di Architetture a Containers
Sicurezza e resilienza di Architetture a Containers
 

Kürzlich hochgeladen

IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
Ticonzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza culturaTiconzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza culturaPierLuigi Albini
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 
La seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medieLa seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medieVincenzoPantalena1
 

Kürzlich hochgeladen (8)

IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
Ticonzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza culturaTiconzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza cultura
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 
La seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medieLa seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medie
 

PostgreSQL: Transazioni e locking

  • 1. Transazioni e concorrenza Cenni su Transazioni e concorrenza 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 1
  • 2. Transazioni e concorrenza Definizione di transazione Effetti della concorrenza sulle transazioni Livelli di isolamento delle transazioni MVCC – Multi version concurrency control overview Differenze tra MVCC e locking Row level Locking 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 2
  • 3. Cos'è una transazione E' un insieme di istruzioni che deve essere eseguita  in maniera atomica → o tutto o niente Una transazione deve essere ACID Atomicity  :  atomicità,  la  transazione  è  indivisibile  nella  sua  esecuzione e la sua esecuzione deve essere o totale o nulla, non  sono ammesse esecuzioni intermedie; Consistency  :  coerenza,  quando  inizia  una  transazione  il  database si trova in uno stato coerente e quando la transazione  termina  il  database  deve  essere  in  uno  stato  coerente,  ovvero  non deve violare eventuali vincoli di integrità, quindi non devono  verificarsi contraddizioni (inconsistency) tra i dati archiviati nel DB Isolation, isolamento, ogni transazione deve essere eseguita in  modo  isolato  e  indipendente  dalle  altre  transazioni,  l'eventuale  fallimento  di  una  transazione  non  deve  interferire  con  le  altre  transazioni in esecuzione Durability:  persistenza,  dopo  un  commit  work,  i  cambiamenti  apportati non dovranno essere più persi.  27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 3
  • 4. I livelli di isolamento Sono  richiesti  quattro  livelli  di  isolamento  delle  transazioni  per  prevenire  questi  tre  comportamenti  indesiderabili  Dirty  read:  una  transazione  legge  i  dati  provenienti  da  una  transazione  simultanea uncomitted Non  repeatable  read:  una  transazione  rilegge  i  dati  che  ha  precendentemente  letto  e  trova  che  i  dati  sono  stati  modificati da un'altra  transazione che ha eseguito il commit dal momento della lettura iniziale phantom  read:  una  transazione  riesegue  una  query  che  restituisce  un  insieme  di  righe  che  soddisfano  la  condizione  di  ricerca  e  trova  che  l'insieme delle righe che soddisfano questa condizione è cambiato a causa  di un'altra transazione che ha eseguito un commit di recente 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 4
  • 5. I livelli di isolamento Isolation level Dirty Read Non repeatable read Phantom Read Read Uncommitted Possible Possible Possible Read Committed Not Possible Possible Possible Repeatable Read Not Possible Not Possible Possible Serializable Not Possible Not Possible Not Possible 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 5
  • 6. I livelli di isolamento PostgreSQL possiede solo 2 livelli di isolamento :  Read comitted, Serializable Read commited:  E' il livello di isolamento di default Postgresql  vede  i  dati  che  hanno  avuto  un  commit  prima  che la transazione partisse. La  query  però  può  vedere  gli  effetti  di  aggiornamenti  avvenuti  all'interno  della  stessa  transazioni  che  non  possono essere visti da query al di fuori della transazione. Le transazioni non restano in attesa Serializable: le transazioni avvengono una di seguito all'altra,  come se fossero in sequenza   27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 6
  • 7. I livelli di isolamento Dove si cambiano i livelli di isolamento? File postgresql.conf 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 7
  • 8. Locking ­ un esempio Begin work; lock table testtb; Transazione 1 ......... Select * from testtb; Transazione 2 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 8
  • 9. Locking ­ un esempio Istante Istante Tempo Tempo Transazione  Transazione  T1 T2 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 9
  • 10. Locking un esempio Output Transazione 2 In attesa della fine del lock 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 10
  • 11. Locking ­ un esempio Commit work; Transazione 1 Dati dalla Transazione T2 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 11
  • 12. Locking ­ un esempio Facciamo un esempio Pratico? 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 12
  • 13. Differenze MVCC ­ Locking Nel modello MVCC i lock messi dal sistema durante  le operazioni di scrittura non bloccano le operazioni  di  lettura  e  viceversa  come  avviene  invece  nei  meccanismi di lock tradizionale Esistono dei sistemi di locking più raffinato? Si  :  ad  esempio  select  ...  for  update  o  select  ...  for  share  che  metteno  un lock  sulla singola riga  che  viene  modificata,  ed  esegue  un  locking  a  livello di ROW 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 13
  • 14. Punto della situazione Abbiamo parlato di  Definizione di transazione Effetti della concorrenza sulle transazioni Livelli di isolamento delle transazioni MVCC – Multi version concurrency control  overview Differenze tra MVCC e locking Row level Locking 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch3.odp page 14