ݺߣ

ݺߣShare a Scribd company logo
Analisi e comparazione empirica
  di architetture per DBMS

              Mauro Fagnoni

       Universit` degli Studi dell’Insubria
                a
  Dipartimento di Informatica e Comunicazione
       Relatore: Prof. Alberto Trombetta

              14 Ottobre 2011




          Mauro Fagnoni   Analisi e comparazione architetture per DBMS
Obiettivo
                            Benchmark


Obiettivo



  Analizzare e comparare nuove tecnologie di gestione di basi di dati
  Procedura di analisi: benchmark standard
  Database analizzati:
      database relazionali
            Row oriented (MySQL e FirebirdSQL)
            Column oriented (MonetDB e LucidDB)
      database non relazionali
            NoSQL (CouchDB e MongoDB)




                         Mauro Fagnoni   Analisi e comparazione architetture per DBMS
Obiettivo
                            Benchmark


Il benchmark


  Il benchmark TPC-H appartenente allo standard del Transaction
  Processing Performance Council
      ` composto da query di tipo commerciale
      e
      simula un reale caso di database aziendale
      ` composto da query con un alto grado di complessit`
      e                                                  a
           elevato numero di operatori e vincoli di selezione
           vincoli di integrit` sullo schema del database
                              a
           genera un’intensa attivit` del server ponendolo sotto stress
                                    a




                         Mauro Fagnoni   Analisi e comparazione architetture per DBMS
Generazione dei dati
                            Sperimentazione
                          Analisi dei risultati


Fasi di lavoro



  1   Generazione dei dati


  2   Sperimentazione


  3   Analisi dei risultati




                              Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                      Sperimentazione
                    Analisi dei risultati




La generazione dei dati, secondo gli standard proposti dal TPC, `
                                                                e
stata realizzata attraverso il programma DbGen che ha prodotto
un dataset in formato CSV di 1.1 Gigabyte




                        Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                            Sperimentazione
                          Analisi dei risultati


Fasi di lavoro



  1   Generazione dei dati


  2   Sperimentazione


  3   Analisi dei risultati




                              Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                       Sperimentazione
                     Analisi dei risultati




Nella fase di sperimentazione per ogni database sono stati eseguiti:


    Popolamento del database attraverso bulk loading (nei casi in
    cui ` stato possibile)
        e

    Test per mezzo di un programma Java che, attraverso una
    serie di iterazioni, memorizza sia i risultati che le prestazioni




                         Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                       Sperimentazione
                     Analisi dei risultati




Nella fase di sperimentazione per ogni database sono stati eseguiti:


    Popolamento del database attraverso bulk loading (nei casi in
    cui ` stato possibile)
        e

    Test per mezzo di un programma Java che, attraverso una
    serie di iterazioni, memorizza sia i risultati che le prestazioni




                         Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                        Sperimentazione
                      Analisi dei risultati


Problemi riscontrati




      Database relazionali
          Scarso supporto allo standard SQL

      Database non relazionali
          Supporto allo standard SQL assente
          Necessit` di destrutturazione dei dati del modello TPC-H
                  a




                          Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                          Sperimentazione
                        Analisi dei risultati


Destrutturazione dati NoSQL



  Differenti caratteristiche architetturali
       I database NoSQL non supportano il modello relazionale
       Le operazioni di join sono eliminate
       Dati semi strutturati organizzati a documenti
       Impossibilit` di utilizzo del modello standard
                   a
       Supporto al paradigma map/reduce




                            Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                   Sperimentazione
                 Analisi dei risultati


Il paradigma map/reduce




                                                                 Fase di map
                                                                 selezione dei dati utili

                                                                 Fase di reduce
                                                                 aggregazione dei risultati
                                                                 parziali




                     Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                   Sperimentazione
                 Analisi dei risultati


Il paradigma map/reduce




                                                                 Fase di map
                                                                 selezione dei dati utili

                                                                 Fase di reduce
                                                                 aggregazione dei risultati
                                                                 parziali




                     Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                   Sperimentazione
                 Analisi dei risultati


Il paradigma map/reduce




                                                                 Fase di map
                                                                 selezione dei dati utili

                                                                 Fase di reduce
                                                                 aggregazione dei risultati
                                                                 parziali




                     Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                        Sperimentazione
                      Analisi dei risultati


Destrutturazione dati NoSQL




  Soluzioni
      Analisi del modello
      Query che coinvolgessero una sola tabella
      Aggregazione dei dati delle tabelle coinvolte nelle query 1 e 19
      Riscrittura delle query 1 e 19 del modello




                          Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                                            Sperimentazione
                                          Analisi dei risultati


Query 1 - SQL


  select
      l returnflag ,
      l linestatus ,
      sum ( l q u a n t i t y ) a s sum qty ,
      sum ( l e x t e n d e d p r i c e ) a s s u m b a s e p r i c e ,
      sum ( l e x t e n d e d p r i c e ∗(1− l d i s c o u n t ) ) a s s u m d i s c p r i c e ,
      sum ( l e x t e n d e d p r i c e ∗(1− l d i s c o u n t )∗(1+ l t a x ) ) a s s u m c h a r g e ,
      avg ( l q u a n t i t y ) a s a v g q t y ,
      avg ( l e x t e n d e d p r i c e ) a s a v g p r i c e ,
      avg ( l d i s c o u n t ) a s a v g d i s c ,
      count (∗) as c o u n t o r d e r
  from
      lineitem
  where
      l s h i p d a t e <= d a t e ’ 1998−12−01 ’ − i n t e r v a l ’ [ DELTA ] ’ day ( 3 )
  group by
      l returnflag ,
      l linestatus
  o r d e r by
      l returnflag ,
      l linestatus ;




                                               Mauro Fagnoni           Analisi e comparazione architetture per DBMS
Generazione dei dati
                                Sperimentazione
                              Analisi dei risultati


Query 1 - map/reduce

  query: { shipdate: {’$lte’: ’1998-11-28’} },
  map:function() { emit(
                   {returnflag: this.returnflag, linestatus: this.linestatus},
                   {count_order: 1, sum_qty: this.quantity, sum_base_price: this.extendedprice,
                    sum_disc_price:this.extendedprice*(1-this.discount),
                    sum_charge:this.extendedprice*(1-this.discount)*(1 + this.tax) });};
  reduce: function(key, vals){
                    var ret = { count_order: 0, sum_qty: 0, sum_disc_price: 0, sum_base_price: 0,
                    sum_charge: 0 };
                    for (var i=0; i<vals.length; i++){
                          ret.sum_qty += vals[i].sum_qty;
                          ret.count_order += vals[i].count_order;
                          ret.sum_base_price += vals[i].sum_base_price;
                          ret.sum_disc_price += vals[i].sum_disc_price;
                          ret.sum_charge += vals[i].sum_charge;}
                          return ret;};
  finalize: function(key,val) {
                    val.avg_qty = val.sum_qty/val.count_order;
                    val.avg_price = val.sum_base_price / val.count_order;
                    val.avg_disc = val.sum_disc_price / val.count_order;
                    return val;};




                                  Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                            Sperimentazione
                          Analisi dei risultati


Fasi di lavoro



  1   Generazione dei dati


  2   Sperimentazione


  3   Analisi dei risultati




                              Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                           Sperimentazione
                         Analisi dei risultati


Spazio utilizzato su disco




      Cattiva gestione dello spazio nei database NoSQL con dataset ridotto

                             Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                           Sperimentazione
                         Analisi dei risultati


Tempo di caching




     Prestazioni dei database differenti in base alla complessit` delle query
                                                               a
     Migliori tempi di risposta: MySQL e MonetDB
     CouchDB pi` veloce sulla query 19
                 u
     LucidDB non esegue la query 19

                             Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                           Sperimentazione
                         Analisi dei risultati


Tempo medio di esecuzione




     Migliori prestazioni fornite da MySQL

                             Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Generazione dei dati
                          Sperimentazione
                        Analisi dei risultati


Efficienza della cache




     Scarsa ottimizzazione della cache nella maggior parte dei database analizzati
     FirebirdSQL e MongoDB hanno avuto prestazioni peggiori nel rieseguire alcune
     query
                            Mauro Fagnoni       Analisi e comparazione architetture per DBMS
Conclusioni




Considerazioni riguardo al benchmark
    Senza usare repliche e avendo destrutturato i dati non sono
    emerse grosse differenze prestazionali tra i database SQL e
    NoSQL
    MySQL ha fornito migliori prestazioni sia con MyISAM che
    con InnoDB
    CouchDB ha fornito prestazioni simili a MySQL

Considerazioni generali
    Molti database relazionali non rispettano ancora
    completamente lo standard SQL:2008
    Totale mancanza di uno standard nei database NoSQL


                      Mauro Fagnoni    Analisi e comparazione architetture per DBMS
Conclusioni




Considerazioni riguardo al benchmark
    Senza usare repliche e avendo destrutturato i dati non sono
    emerse grosse differenze prestazionali tra i database SQL e
    NoSQL
    MySQL ha fornito migliori prestazioni sia con MyISAM che
    con InnoDB
    CouchDB ha fornito prestazioni simili a MySQL

Considerazioni generali
    Molti database relazionali non rispettano ancora
    completamente lo standard SQL:2008
    Totale mancanza di uno standard nei database NoSQL


                      Mauro Fagnoni    Analisi e comparazione architetture per DBMS
GRAZIE PER L’ATTENZIONE




       Mauro Fagnoni   Analisi e comparazione architetture per DBMS

More Related Content

Viewers also liked (10)

PDF
Whimbey, sul concetto di codice limitato e il programma Head Start
Gabriella Giudici
PDF
Использование Debug утилит в разработке под Android
SoftTechnics
PDF
Rassegna bibliografica su Michelstaedter
Gabriella Giudici
PDF
Cap17parr127 131 causa, generazione e definizione dello stato
Gabriella Giudici
PDF
Le trasformazioni di internet dopo la nascita del file sharing
Gabriella Giudici
PDF
Jervis, Introduzione a Adorno et al, La Personalità autoritaria
Gabriella Giudici
PDF
Stella, DSA un'introduzione
Gabriella Giudici
PPTX
About this course
englishteacher-tnt
DOCX
Getting Started Appendices may 14_2010
i4ppis
PPSX
Introduction to descriptive writing
englishteacher-tnt
Whimbey, sul concetto di codice limitato e il programma Head Start
Gabriella Giudici
Использование Debug утилит в разработке под Android
SoftTechnics
Rassegna bibliografica su Michelstaedter
Gabriella Giudici
Cap17parr127 131 causa, generazione e definizione dello stato
Gabriella Giudici
Le trasformazioni di internet dopo la nascita del file sharing
Gabriella Giudici
Jervis, Introduzione a Adorno et al, La Personalità autoritaria
Gabriella Giudici
Stella, DSA un'introduzione
Gabriella Giudici
About this course
englishteacher-tnt
Getting Started Appendices may 14_2010
i4ppis
Introduction to descriptive writing
englishteacher-tnt

Similar to tesi (20)

PDF
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Nicola Paoletti
PDF
Database Data Aggregator
Davide Ciambelli
PPTX
Presentazione ufficiale
Francesco Rizzo
PDF
Monitoraggio di applicazioni software mediante modelli di Markov - slides
rkjp
PPTX
Alla scoperta dei Vector Database e dei RAG
Commit University
PPS
Software Re Engineering
pantifabr
PDF
An MPI approach to build philogenetics trees
Alessandro Della Rocca
PDF
Tesina di fine seminario sas ed sql
Marco D'Alessandro
PDF
Data Express 4.0 - Conformità, produttività e privacy con dati di Test
Microfocusitalia
PPS
Progetto Di Un Data Warehouse Per Il Supporto Al Monitoraggio Di Prezzi E Tar...
Luca Petrini
PDF
Presentazione
Gabriele Etta
PDF
Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIO...
Boymix81
PDF
Extended summary of code building genetic programming
MartinaMaione1
PDF
Comparazione di Modelli Machine Learning
ARIANET
PPT
Open Bqr
Davide Taibi
PPT
Open Bqr
Davide Taibi
PDF
Presentazione ufficiale splittata
Francesco Rizzo
PDF
Metodologie e sperimentazione di confronto tra tool di data integration
Alessandro Longo
PPTX
Profilazione utente in ambienti virtualizzati
Pietro Corona
PPT
M. Scanu - Sistema unitario di metadati. Componente relativa ai metadati stru...
Istituto nazionale di statistica
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Nicola Paoletti
Database Data Aggregator
Davide Ciambelli
Presentazione ufficiale
Francesco Rizzo
Monitoraggio di applicazioni software mediante modelli di Markov - slides
rkjp
Alla scoperta dei Vector Database e dei RAG
Commit University
Software Re Engineering
pantifabr
An MPI approach to build philogenetics trees
Alessandro Della Rocca
Tesina di fine seminario sas ed sql
Marco D'Alessandro
Data Express 4.0 - Conformità, produttività e privacy con dati di Test
Microfocusitalia
Progetto Di Un Data Warehouse Per Il Supporto Al Monitoraggio Di Prezzi E Tar...
Luca Petrini
Presentazione
Gabriele Etta
Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIO...
Boymix81
Extended summary of code building genetic programming
MartinaMaione1
Comparazione di Modelli Machine Learning
ARIANET
Open Bqr
Davide Taibi
Open Bqr
Davide Taibi
Presentazione ufficiale splittata
Francesco Rizzo
Metodologie e sperimentazione di confronto tra tool di data integration
Alessandro Longo
Profilazione utente in ambienti virtualizzati
Pietro Corona
M. Scanu - Sistema unitario di metadati. Componente relativa ai metadati stru...
Istituto nazionale di statistica
Ad

tesi

  • 1. Analisi e comparazione empirica di architetture per DBMS Mauro Fagnoni Universit` degli Studi dell’Insubria a Dipartimento di Informatica e Comunicazione Relatore: Prof. Alberto Trombetta 14 Ottobre 2011 Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 2. Obiettivo Benchmark Obiettivo Analizzare e comparare nuove tecnologie di gestione di basi di dati Procedura di analisi: benchmark standard Database analizzati: database relazionali Row oriented (MySQL e FirebirdSQL) Column oriented (MonetDB e LucidDB) database non relazionali NoSQL (CouchDB e MongoDB) Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 3. Obiettivo Benchmark Il benchmark Il benchmark TPC-H appartenente allo standard del Transaction Processing Performance Council ` composto da query di tipo commerciale e simula un reale caso di database aziendale ` composto da query con un alto grado di complessit` e a elevato numero di operatori e vincoli di selezione vincoli di integrit` sullo schema del database a genera un’intensa attivit` del server ponendolo sotto stress a Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 4. Generazione dei dati Sperimentazione Analisi dei risultati Fasi di lavoro 1 Generazione dei dati 2 Sperimentazione 3 Analisi dei risultati Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 5. Generazione dei dati Sperimentazione Analisi dei risultati La generazione dei dati, secondo gli standard proposti dal TPC, ` e stata realizzata attraverso il programma DbGen che ha prodotto un dataset in formato CSV di 1.1 Gigabyte Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 6. Generazione dei dati Sperimentazione Analisi dei risultati Fasi di lavoro 1 Generazione dei dati 2 Sperimentazione 3 Analisi dei risultati Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 7. Generazione dei dati Sperimentazione Analisi dei risultati Nella fase di sperimentazione per ogni database sono stati eseguiti: Popolamento del database attraverso bulk loading (nei casi in cui ` stato possibile) e Test per mezzo di un programma Java che, attraverso una serie di iterazioni, memorizza sia i risultati che le prestazioni Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 8. Generazione dei dati Sperimentazione Analisi dei risultati Nella fase di sperimentazione per ogni database sono stati eseguiti: Popolamento del database attraverso bulk loading (nei casi in cui ` stato possibile) e Test per mezzo di un programma Java che, attraverso una serie di iterazioni, memorizza sia i risultati che le prestazioni Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 9. Generazione dei dati Sperimentazione Analisi dei risultati Problemi riscontrati Database relazionali Scarso supporto allo standard SQL Database non relazionali Supporto allo standard SQL assente Necessit` di destrutturazione dei dati del modello TPC-H a Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 10. Generazione dei dati Sperimentazione Analisi dei risultati Destrutturazione dati NoSQL Differenti caratteristiche architetturali I database NoSQL non supportano il modello relazionale Le operazioni di join sono eliminate Dati semi strutturati organizzati a documenti Impossibilit` di utilizzo del modello standard a Supporto al paradigma map/reduce Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 11. Generazione dei dati Sperimentazione Analisi dei risultati Il paradigma map/reduce Fase di map selezione dei dati utili Fase di reduce aggregazione dei risultati parziali Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 12. Generazione dei dati Sperimentazione Analisi dei risultati Il paradigma map/reduce Fase di map selezione dei dati utili Fase di reduce aggregazione dei risultati parziali Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 13. Generazione dei dati Sperimentazione Analisi dei risultati Il paradigma map/reduce Fase di map selezione dei dati utili Fase di reduce aggregazione dei risultati parziali Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 14. Generazione dei dati Sperimentazione Analisi dei risultati Destrutturazione dati NoSQL Soluzioni Analisi del modello Query che coinvolgessero una sola tabella Aggregazione dei dati delle tabelle coinvolte nelle query 1 e 19 Riscrittura delle query 1 e 19 del modello Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 15. Generazione dei dati Sperimentazione Analisi dei risultati Query 1 - SQL select l returnflag , l linestatus , sum ( l q u a n t i t y ) a s sum qty , sum ( l e x t e n d e d p r i c e ) a s s u m b a s e p r i c e , sum ( l e x t e n d e d p r i c e ∗(1− l d i s c o u n t ) ) a s s u m d i s c p r i c e , sum ( l e x t e n d e d p r i c e ∗(1− l d i s c o u n t )∗(1+ l t a x ) ) a s s u m c h a r g e , avg ( l q u a n t i t y ) a s a v g q t y , avg ( l e x t e n d e d p r i c e ) a s a v g p r i c e , avg ( l d i s c o u n t ) a s a v g d i s c , count (∗) as c o u n t o r d e r from lineitem where l s h i p d a t e <= d a t e ’ 1998−12−01 ’ − i n t e r v a l ’ [ DELTA ] ’ day ( 3 ) group by l returnflag , l linestatus o r d e r by l returnflag , l linestatus ; Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 16. Generazione dei dati Sperimentazione Analisi dei risultati Query 1 - map/reduce query: { shipdate: {’$lte’: ’1998-11-28’} }, map:function() { emit( {returnflag: this.returnflag, linestatus: this.linestatus}, {count_order: 1, sum_qty: this.quantity, sum_base_price: this.extendedprice, sum_disc_price:this.extendedprice*(1-this.discount), sum_charge:this.extendedprice*(1-this.discount)*(1 + this.tax) });}; reduce: function(key, vals){ var ret = { count_order: 0, sum_qty: 0, sum_disc_price: 0, sum_base_price: 0, sum_charge: 0 }; for (var i=0; i<vals.length; i++){ ret.sum_qty += vals[i].sum_qty; ret.count_order += vals[i].count_order; ret.sum_base_price += vals[i].sum_base_price; ret.sum_disc_price += vals[i].sum_disc_price; ret.sum_charge += vals[i].sum_charge;} return ret;}; finalize: function(key,val) { val.avg_qty = val.sum_qty/val.count_order; val.avg_price = val.sum_base_price / val.count_order; val.avg_disc = val.sum_disc_price / val.count_order; return val;}; Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 17. Generazione dei dati Sperimentazione Analisi dei risultati Fasi di lavoro 1 Generazione dei dati 2 Sperimentazione 3 Analisi dei risultati Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 18. Generazione dei dati Sperimentazione Analisi dei risultati Spazio utilizzato su disco Cattiva gestione dello spazio nei database NoSQL con dataset ridotto Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 19. Generazione dei dati Sperimentazione Analisi dei risultati Tempo di caching Prestazioni dei database differenti in base alla complessit` delle query a Migliori tempi di risposta: MySQL e MonetDB CouchDB pi` veloce sulla query 19 u LucidDB non esegue la query 19 Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 20. Generazione dei dati Sperimentazione Analisi dei risultati Tempo medio di esecuzione Migliori prestazioni fornite da MySQL Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 21. Generazione dei dati Sperimentazione Analisi dei risultati Efficienza della cache Scarsa ottimizzazione della cache nella maggior parte dei database analizzati FirebirdSQL e MongoDB hanno avuto prestazioni peggiori nel rieseguire alcune query Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 22. Conclusioni Considerazioni riguardo al benchmark Senza usare repliche e avendo destrutturato i dati non sono emerse grosse differenze prestazionali tra i database SQL e NoSQL MySQL ha fornito migliori prestazioni sia con MyISAM che con InnoDB CouchDB ha fornito prestazioni simili a MySQL Considerazioni generali Molti database relazionali non rispettano ancora completamente lo standard SQL:2008 Totale mancanza di uno standard nei database NoSQL Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 23. Conclusioni Considerazioni riguardo al benchmark Senza usare repliche e avendo destrutturato i dati non sono emerse grosse differenze prestazionali tra i database SQL e NoSQL MySQL ha fornito migliori prestazioni sia con MyISAM che con InnoDB CouchDB ha fornito prestazioni simili a MySQL Considerazioni generali Molti database relazionali non rispettano ancora completamente lo standard SQL:2008 Totale mancanza di uno standard nei database NoSQL Mauro Fagnoni Analisi e comparazione architetture per DBMS
  • 24. GRAZIE PER L’ATTENZIONE Mauro Fagnoni Analisi e comparazione architetture per DBMS