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

Was ist angesagt?

Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseDataStax Academy
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationDatabricks
 
Scaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMsScaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMsMatei Zaharia
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPIssac Nolis Ohasi
 
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJAEvaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJADataWorks Summit
 
How to use histograms to get better performance
How to use histograms to get better performanceHow to use histograms to get better performance
How to use histograms to get better performanceMariaDB plc
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
SAP on Azure. Use Cases and Benefits
SAP on Azure. Use Cases and BenefitsSAP on Azure. Use Cases and Benefits
SAP on Azure. Use Cases and BenefitsmyCloudDoor
 
Data Visualization 101: How to Design Charts and Graphs
Data Visualization 101: How to Design Charts and GraphsData Visualization 101: How to Design Charts and Graphs
Data Visualization 101: How to Design Charts and GraphsVisage
 
ClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovAltinity Ltd
 
BI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and DemoBI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and DemoChristopher Foot
 
Knime (presentacion grupal)
Knime (presentacion grupal)Knime (presentacion grupal)
Knime (presentacion grupal)tecnologia1234
 
1.mysql disk io 모니터링 및 분석사례
1.mysql disk io 모니터링 및 분석사례1.mysql disk io 모니터링 및 분석사례
1.mysql disk io 모니터링 및 분석사례I Goo Lee
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guideRyan Blue
 
Cloud Native PostgreSQL
Cloud Native PostgreSQLCloud Native PostgreSQL
Cloud Native PostgreSQLEDB
 
Model serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInData
Model serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInDataModel serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInData
Model serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInDataGetInData
 
Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...
Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...
Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...Alex Levenson
 

Was ist angesagt? (20)

Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical Optimization
 
Scaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMsScaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMs
 
IBM Planning Analytics
IBM Planning AnalyticsIBM Planning Analytics
IBM Planning Analytics
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAP
 
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJAEvaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
 
How to use histograms to get better performance
How to use histograms to get better performanceHow to use histograms to get better performance
How to use histograms to get better performance
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
SAP on Azure. Use Cases and Benefits
SAP on Azure. Use Cases and BenefitsSAP on Azure. Use Cases and Benefits
SAP on Azure. Use Cases and Benefits
 
Druid
DruidDruid
Druid
 
Data Visualization 101: How to Design Charts and Graphs
Data Visualization 101: How to Design Charts and GraphsData Visualization 101: How to Design Charts and Graphs
Data Visualization 101: How to Design Charts and Graphs
 
ClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei Milovidov
 
BI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and DemoBI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and Demo
 
Sap activate overview
Sap activate overviewSap activate overview
Sap activate overview
 
Knime (presentacion grupal)
Knime (presentacion grupal)Knime (presentacion grupal)
Knime (presentacion grupal)
 
1.mysql disk io 모니터링 및 분석사례
1.mysql disk io 모니터링 및 분석사례1.mysql disk io 모니터링 및 분석사례
1.mysql disk io 모니터링 및 분석사례
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
Cloud Native PostgreSQL
Cloud Native PostgreSQLCloud Native PostgreSQL
Cloud Native PostgreSQL
 
Model serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInData
Model serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInDataModel serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInData
Model serving made easy using Kedro pipelines - Mariusz Strzelecki, GetInData
 
Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...
Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...
Hadoop Summit 2015: Performance Optimization at Scale, Lessons Learned at Twi...
 

Andere mochten auch

PostgreSQL: Archtettura per la gestione dei pro
PostgreSQL: Archtettura per la gestione dei proPostgreSQL: Archtettura per la gestione dei pro
PostgreSQL: Archtettura per la gestione dei proEnrico Pirozzi
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryEnrico Pirozzi
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazioneEnrico Pirozzi
 
PostgreSQL: Integrità dei dati
PostgreSQL: Integrità dei datiPostgreSQL: Integrità dei dati
PostgreSQL: Integrità dei datiEnrico Pirozzi
 
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 (13)

PostgreSQL: Archtettura per la gestione dei pro
PostgreSQL: Archtettura per la gestione dei proPostgreSQL: Archtettura per la gestione dei pro
PostgreSQL: Archtettura per la gestione dei pro
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recovery
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazione
 
PostgreSQL: Integrità dei dati
PostgreSQL: Integrità dei datiPostgreSQL: Integrità dei dati
PostgreSQL: Integrità dei dati
 
PostgreSQL : Tuning
PostgreSQL : TuningPostgreSQL : Tuning
PostgreSQL : Tuning
 
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

Terza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdfTerza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdfPierLuigi Albini
 
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
 
Storia dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptxStoria dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptxOrianaOcchino
 
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
 
Esame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptxEsame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptxfedericodellacosta2
 
La produzione e la gestione degli Open Data
La produzione e la gestione degli Open DataLa produzione e la gestione degli Open Data
La produzione e la gestione degli Open DataGianluigi Cogo
 
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
 
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024Damiano Orru
 

Kürzlich hochgeladen (8)

Terza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdfTerza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdf
 
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
 
Storia dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptxStoria dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptx
 
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
 
Esame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptxEsame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptx
 
La produzione e la gestione degli Open Data
La produzione e la gestione degli Open DataLa produzione e la gestione degli Open Data
La produzione e la gestione degli Open Data
 
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
 
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
 

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