PGDay 2009 FSGateway Ing. Torello Querci Resp. Architetture SW - Negens S.r.l. 4 Dicembre 2009, Pisa
FSGateway – Ing.Querci - Agenda Introduzione Come funziona Cosa supporta Esempi d'uso Evoluzione Domande e risposte
FSGateway – Ing.Querci - FSGateway è un software che rende accessibili i metadati di un database come file di testo. Sottotitolo: finalmente posso fare un grep su di un database per cercare in quali tabelle viene usato un dato campo Introduzione
FSGateway – Ing.Querci - Introduzione Performance elevate nelle ricerche Ricerche complesse senza scrivere codice ma usando un linguaggio naturale Possibilità di strutturare i dati dinamicamente I dati non sono accessibili direttamente Difficoltà di gestione delle struttura se non attraverso script Difficoltà di versionamento PRO CONTRO Database: perché vengono usati?
FSGateway – Ing.Querci - Possibilità di vedere la struttura del database come un normale filesystem Il contenuto di ogni file è lo script che crea l'oggetto stesso Possibilità di copiare la parte di struttura dati Possibilità di ricercare dove un certo nome di un campo viene usato Possibilità di eseguire un DIFF tra la struttura del database di produzione e quella del database di sviluppo Introduzione
FSGateway – Ing.Querci - Come funziona FSGateway si appoggia al modulo FUSE per consentire l'accesso ad un filesystem specifico da parte di un utente non privilegiato. FSGateway non usa nessun modulo specifico del kernel (a parte FUSE ovviamente) L'utente può montare e smontare database sia locali che remoti in piena autonomia Ogni database montato richiede una nuova istanza e questo gli conferisce una certa robustezza in quanto un errore su di un filesystem non ha conseguenze negli altri database
FSGateway – Ing.Querci - Il codice di fsgateway è scritto in Mono e quindi può essere facilmente esteso L'interfacciamento con fuse è affidato ad una libreria, la “mono- fuse” che purtroppo non è disponibile in tutte le distribuzioni come pacchetto preconfigurato Come funziona
FSGateway – Ing.Querci - Cosa supporta FSGateway non nasce solo per database ma anche per consentire l'accesso a strutture dati come file XML e datastore di Sugar I database al momento supportati: PostgreSQL (fino alla versione 8.4) SQLite (versione 3)
FSGateway – Ing.Querci - L'idea di questo modulo nasce da una esigenza pratica che mi è capitata più di una volta: Per un certo progetto abbiamo un database di produzione versione 1.0 presso il cliente Viene commissionata una evoluzione del software che fa evolvere il database fino alla versione 1.5. Questo viene fatto nell'ambiente di produzione Saranno corretti tutti gli script per migrare il database dalla versione 1.0 alla 1.5? Esempi d'uso
FSGateway – Ing.Querci - Esempi d'uso Non usando FSGateway i passi da seguire sono: Fare dump del database di produzione Passare gli script per aggiornare la struttura del database dalla versione 1.0 alla versione 1.5 Fare il dump dello schema (dg_dump -s) del database di produzione e di quello di sviluppo per poter eseguire un diff alla ricerca di eventuali errori Procedere in produzione (o meglio in un ambiente di test pre rilascio … non si sa mai)
FSGateway – Ing.Querci - Esempi d'uso Utilizzando FSGateway: Posso controllare le differenze tra i due database (produzione versione 1.0 e sviluppo 1.5) direttamente senza dover creare un database di appoggio Posso applicare le varie patch e vedere subito le differenze tra i due database eseguendo nuovamente un diff tra i due filesystem
FSGateway – Ing.Querci - Esempi d'uso
FSGateway – Ing.Querci - Esempio d'uso
FSGateway – Ing.Querci - esempi – non solo database Avendo a disposizione un file XML “file.xml” ecco il risultato di: mono fsgateway.exe xmlfs file.xml mountpoint
FSGateway – Ing.Querci -
Evoluzione Supporto per SQLServer e MySQL Aggiungere il supporto anche per i vincoli strutturali Migliorare le performance......
FSGateway – Ing.Querci - Domande e risposte Ora tocca a voi … :)
FSGateway – Ing.Querci - Licenza Questo materiale è stato rilasciato sotto la licenza CreativeCommons Attribuzione-non-commerciale-opere-derivate 2.5 Italia. Per leggere una copia della licenza visita il sito WEB: O spedisci una lettera a: Creative Commons, 171 Second Street, Suite 300, San Francisco, California, USA