• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo
 

PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo

on

  • 2,453 views

La presentazione di Gabriele Bartolini

La presentazione di Gabriele Bartolini
in occasione del Codemotion, Roma 5 marzo 2011 http://www.codemotion.it

Statistics

Views

Total Views
2,453
Views on SlideShare
2,377
Embed Views
76

Actions

Likes
0
Downloads
0
Comments
0

5 Embeds 76

http://www.codemotion.it 40
http://2011.codemotion.it 29
http://codemotion.macaronilab.com 4
http://codemotion.it 2
http://www.google.it 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Every application that needs to persistently store some data uses a database

PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo Presentation Transcript

  • PostgreSQL 9 il database Open Source di fascia Enterprise più avanzato al mondo Gabriele Bartolini Italian PostgreSQL Users' Group www.postgresql.org www.itpug.org
  • Il progetto PostgreSQL Parte I
  • Postgres o PostgreSQL?
    • Il nome ufficiale è PostgreSQL
    • Postgres era il nome iniziale del progetto
    • Con l'aggiunta del supporto SQL (1996) il progetto cambiò nome in PostgreSQL
    • Postgres è accettato come sinonimo
  • PostgreSQL e le funzionalità chiave
    • Open-Source Database Management System
    • Conformità con gli standard (SQL:2008)
    • Multi-Version Concurrency Control
      • Multi-utente, progettato per la concorrenza
    • Estensibilità:
      • Tipi di dato
      • Funzioni
  • Applicazioni, database, DBMS SQL DBMS
  • 100% Open-Source e di Comunità
    • Distribuito secondo una licenza in stile BSD
      • The “PostgreSQL License” (TPL)
        • http://www.opensource.org/licenses/postgresql
      • Altamente permissiva
      • Non soggetto a cambi di licenza
        • sarà sempre open-source
      • Non soggetto ad acquisizioni
    • Un progetto di comunità
  • La storia di PostgreSQL (1/2)
    • 1986 – 1993: University Postgres
      • (Michael Stonebraker)
    • 1994 – 1995: Postgres95
      • (Jolly Chen e Andrew Yu)
  • La storia di PostgreSQL (2/2)
    • 1996 – oggi: PostgreSQL:
      • Fase 1, 1996 – 1998: eliminazione dei crash
      • Fase 2, 1998 – 2001: aderenza allo standard SQL
      • Fase 3, 2001 – 2004: robustezza e stabilità
      • Fase 4, dal 2004 in poi : funzionalità di classe enterprise
    • Contributo di centinaia di sviluppatori provenienti da tutto il mondo
  • Mailing list 'Hackers'
    • Release di PostgreSQL
    • Attuale release stabile: 9.0.3 (1 Febbraio 2011)
    • Major release corrente: 9.0 (settembre 2010)
      • 5 major release negli ultimi 5 anni
    • Release più vecchia supportata: 8.1 (2005)
      • Su piattaforma Windows: 8.2
    • Major release supportate dalla comunità:
      • 8.1, 8.2, 8.3, 8.4 e 9.0
  • L'evoluzione di PostgreSQL
    • Aggiungere nuove funzionalità e migliorare le prestazioni
    • Bisogni nati per scopi diversi:
      • Commerciali
      • Accademici
        • Il più utilizzato in ambito PhD
      • Interesse personale (in pieno spirito hacker )
    • Presenza occasionale di committenti
  • Cicli di sviluppo
    • Obiettivo : una major release l'anno
    • Le nuove funzionalità vengono proposte in più finestre temporali, chiamate Commit fest
    • Le proposte hanno la forma di vere e proprie patch complete di documentazione
    • Review : ad ogni patch viene assegnato un esperto che dovrà valutare se applicare la patch al codice
  • Il rilascio di una versione di PostgreSQL
    • Beta : viene rilasciata una versione per testing diffuso
    • Fase di pre-rilascio: la comunità prepara gli annunci nelle principali lingue (italiano incluso)
    • Viene rilasciata la versione M.m.0
    • Inizia il periodo di manutenzione che può durare diversi anni
      • Attualmente almeno 5 anni
  • L'ecosistema “PostgreSQL”
    • Comunità
      • Sviluppatori
      • Utenti
    • Utilizzatori
      • Aziende e organizzazioni
      • Consulenti
      • Privati
    • Aziende sponsor
      • Sviluppatori
    • Stakeholder esterni
      • Aziende che sponsorizzano lo sviluppo di funzionalità
  • La comunità in Italia e in Europa
    • Associazione culturale ITPUG (Italian PostgreSQL Users' Group)
      • http://www.itpug.org/
    • Associazione PostgreSQL Europe
      • http://www.postgresql.eu/
  • Chi ha già scelto PostgreSQL
    • Skype
      • Skype utilizza PostgreSQL per memorizzare i profili dei propri utenti
    • Afilias
      • Secondo più grande servizio di registrazione domini al mondo
    • MyYearBook
      • Social network (fra i 25 siti più visitati negli USA)
  • PostgreSQL 9 Parte II
  • Architettura
    • Client / Server
    • Multi processo
    • Scritto in linguaggio ANSI C
    • Utilizza servizi stabili del sistema operativo
    • Multi piattaforma
  • PostgreSQL su C64?
  • Alcuni esempi di utilizzo
    • Sistemi transazionali (OLTP)
    • Telecomunicazioni
    • E-Commerce
    • Monitoraggio di dispositivi elettronici
    • ERP, CRM, data warehouse, BI
    • Piattaforme di social networking
    • Siti web ad alto volume di traffico
    • Sistemi territoriali (estensione PostGIS)
    • Web CMS, Blog
    • ecc.
  • Un prodotto versatile
    • Molteplici interfacce di connessione:
      • Nativa, JDBC, Python, Perl, PHP, ODBC, .Net, ...
    • Molteplici linguaggi lato server:
      • PL/pgSQL, PL/Java, PL/Perl, PL/Python, ecc.
    • Utenti, path, opzioni, variabili di ambiente
  • Alcune funzionalità “interessanti”
    • Viste
    • Stored procedure
    • Trigger
      • Anche di colonna e condizionali
    • Transazioni ACID
    • Schemi
    • Tablespace
    • Partizionamento
    • Tipi personalizzati
    • Regole di riscrittura (Rule)
  • Sicurezza
    • Concetto di “ sicurezza di default ”
    • Modello di sicurezza multi-livello
      • server, database, tabella, colonna
    • SSL
    • Integrazione con l'infrastruttura aziendale di sicurezza
    • Completa divulgazione delle vulnerabilità
    • Rapido fix dei bug di sicurezza
  • Funzionalità per tecnologie web
    • Supporto a SQL:2008
    • Supporto standard UNICODE (codifica UTF-8)
    • Supporto per espressioni regolari
    • Supporto XML
    • Collation a livello di database
    • Localizzazione standard (NLS)
  • Funzionalità avanzate per il web
    • Ricerca full text
    • Array
    • Compressione trasparente dei campi testo
    • Tipi di dato (enumerazioni, uuid, cidr, macaddr, hstore, ...)
    • Parametri di sessione con SET
    • Commit asincrona
  • Disaster recovery, HA e Replica
    • Robustezza e affidabilità (WAL file)
    • Hot backup
    • Online Backup e Point in time recovery
    • Warm Standby (HA)
    • Replica asincrona Master/Slave nativa (introdotte in 9.0):
      • Hot Standby
      • Streaming replication
  • Hot Standby Continuous recovery Host A Database primario Host B Database standby Log shipping
  • Altre soluzioni di replica
    • Non facenti parte del nucleo di PostgreSQL
      • Uniche soluzioni disponibili per PostgreSQL < 9
    • Molteplici alternative
      • Slony
      • PGPool
      • Bucardo
      • Londiste (Skype)
  • VLDB
    • Nel mondo vi sono molte installazioni di database PostgreSQL con dimensioni superiori al terabyte
    • Utilizzo tipico in contesti da 100GB e oltre
    • Funzionalità chiave:
      • Architetture SMP
      • Tablespace
      • Partizionamento orizzontale
    • Scalabilità: MySQL vs PostgreSQL
  • Scalabilità
    • Cache di risultati:
      • pgmemcache per integrazione con memcached
    • Distribuzione su più nodi:
      • PgBouncer (connection pooling)
      • PL/Proxy
        • Map/Reduce (RUN ON ALL, ANY, singolo nodo)
  • Tool di amministrazione e monitoraggio
    • Linea di comando:
      • psql, pg_dump, pg_restore, ecc.
    • GUI:
      • PgAdmin3
    • Web:
      • PHPpgAdmin
    • Alerting:
      • integrazione con Nagios
    • Monitoring:
      • integrazione con Munin e Cacti
    • Controllo della replica:
      • repmgr ( devel )
  • Estensione spaziale PostGIS
    • La principale estensione di PostgreSQL
    • Utilizzata dal progetto OpenStreetMap
    • Fornisce tipi di dato geografici
      • Open Geospatial Consortium
    • Trasforma PostgreSQL in un geodatabase
    • Integrazione in un sistema informativo territoriale
      • GIS (Geographical Information System)
  • Il futuro prossimo: PostgreSQL 9.1 (autunno 2011)
    • Miglioramenti nelle operazioni
    • Packaging delle estensioni
    • Nuove funzionalità e miglioramenti di prestazioni in aree chiave
    • Synchronous Replication (in corso)
    • Trigger su viste (“updatable views”)
    • Collation su colonna
    • Writable CTE
    • Serializable Snapshot Isolation
    • Miglior partizionamento
    • ...
  • Parte III Conclusioni
  • Chi passa a Postgres?
    • Crisi finanziaria:
      • Taglio nei costi di licenza
      • Migrazione da database proprietari
    • Database geografici:
      • Alta qualità delle soluzioni PostGIS
    • Abbandono di MySQL:
      • Dual licensing
      • Incertezza sul futuro open source
  • Conclusioni sull'adozione di Postgres
    • 0 costi di licenza
    • Modello di licenza semplice
    • Immune dal monopolio
    • Riduce il costo di proprietà totale (TCO) per una soluzione di database
    • Rimuove il vendor lock-in
    • Investimento in conoscenza
    • Più grande comunità per un progetto di database open-source
  • Associazione culturale ITPUG (Italian PostgreSQL Users Group)
    • Promuovere PostgreSQL con professionalità verso PA, scuole e aziende
    • Organizzare l'evento PostgreSQL Day italiano ogni anno
    • Partecipare a iniziative/conferenze su software libero e open-source
    • Punto di incontro fra la comunità internazionale e quella italiana
    • Creare progetti che possano migliorare PostgreSQL:
      • Localizzazione
      • Manuale in italiano ( http://docs.itpug.org/ )
  • Domande?
  • Licenza Creative Commons Attribuzione Non commerciale Condividi allo stesso modo 2.5 Italia http://creativecommons.org/licenses/by-nc-sa/2.5/it/ Copyright 2011 2ndQuadrant Italia ( http://www.2ndQuadrant.it/ )