System is processing data
Please download to view
...

Joomla! e MariaDB: una combinazione vincente per alte prestazioni

by mariadb

on

Report

Category:

Software

Download: 0

Comment: 0

1,879

views

Comments

Description

Joomla! e MariaDB: una combinazione vincente per alte prestazioni - M. Luisa Raviol, Senior Sales Engineer at MariaDB - Milan, Italy - 8th November 2014 - http://www.joomladay.it/
Download Joomla! e MariaDB: una combinazione vincente per alte prestazioni

Transcript

  • 1. Joomla!eMariaDB:unacombinazionevincenteperalteprestazioniMariaLuisaRaviolMariaDB-­‐SeniorSalesEngineer©MariaDBCorpora,onAb.CompanyConfiden,al.
  • 2. MariaDB Corporation• MariaDB Corporation (già SkySQL AB) è stata fondata dagli stessi fondatori di MySQLincluso Michael “Monty” Widenius.• Conta sul il più vasto team di esperti di MySQL (circa il 90% dei suoi dipendenti sono exdipendenti MySQL AB)• Fornisce supporto tecnico 24/7 secondo un modello noto come “follow-the-sun”, 24/7 alivello enterprise sia per MariaDB che MySQL• Ha una distribuzione molto efficace ed una vasta base clienti• MariaDB è adottato dalle pricipali community OpenSource•Wikipedia (English, German) si basa su MariaDB• MariaDB Corporation conta oltre 400 clienti enterprise©MariaDBCorpora,onAb.CompanyConfiden,al.2
  • 3. Più di 400 Clienti in 33 PaesiFinance Travel RetailTelecom Technology & .gov/.edu Media©MariaDBCorpora,onAb.CompanyConfiden,al.3
  • 4. Cos’è il database MariaDB?•MariaDB può definirsi un “drop-in replacement” avanzato per MySQL•Orientato alla Community•Non ha alle spalle una realtà commerciale, è governato dalla MariaDB Foundation(MariaDB.org)•E’ supportato dalla MariaDB Corporation che a sua volta supporta ed è supportata dallafoundation•MariaDB sta diventando sempre più il database di riferimento per il cloud•RHEL7, Debian, Fedora, OpenSUSE e SLES 12 (da ottobre 2014) distribuiscono MariaDBcome database di default nel LAMP stack•MariaDB è di fatto la nuova “M” nel LAMP stack©MariaDBCorpora,onAb.CompanyConfiden,al.4
  • 5. IlMondoOpenSourcestapassandodaMySQLaMariaDB©MariaDBCorpora,onAb.CompanyConfiden,al.5
  • 6. Perché MariaDB for Joomla!?• MariaDB è:• al 100% drop in replacement per MySQL• ha un ottimizzatore migliore per le Query• ha caratteristiche avanzate che sono in MariaDB e non in MySQL che possono migliorarele prestazioni di Joomla!©MariaDBCorpora,onAb.CompanyConfiden,al.6
  • 7. MariaDB al confronto con MySQLMolti più Storage Engines•XtraDB (drop-in replacement per InnoDB)•SphinxSE•TokuDB•....Miglioramento delle prestazioni•Ottimizzatore completamente riscritto (Le Subqueries sono finalmente usabili)•Parallel Replication•Pool di Threads•Replicazione più veloce e sicura•...Estensioni e nuove funzionalità•Supporto per le Colonne Dinamiche•User Statistics estese•KILL di tutte le queries di uno specifcio utente•KILL QUERY ID - abortisce una query in base al query-id, lasciando laconnessione attiva•Group commit per il binary log.Questo fa sì che la replicazione sia notevolmente più veloce.•GIS•Multi-source replication.•Roles. — nuovi nella 10.0©MariaDBCorpora,onAb.CompanyConfiden,al.7
  • 8. Le caratteristiche di MariaDB per gli utenti Joomla!XtraDB Storage Engine• E’ lo storage engine di default per MariaDB• E’ una versione più sofisticata di InnoDB• prestazioni più stabili, minor numero di accessi al disco• sviluppato congiuntamente da MariaDB Corporation e Percona• molto più veloce nelle ripartenze dopo arresti• migliore uso della RAM• prestazioni migliorate per i single core• estremamente efficace nelle installazioni per il cloud• Completamente compatibile con InnoDB• può quindi essere usato come drop-in replacement per InnoDB• State ancora usando MyISAM?• E’ ancora un grande Storage Engine per inserimenti massivi (bulk insert)• perà può generare colli di bottiglia in lettura a causa del key buffer• CONSIGLIO: migrate a InnoDB or XtraDB a meno che esistano ragionispecifiche per usare MyISAM©MariaDBCorpora,onAb.CompanyConfiden,al.8
  • 9. Le caratteristiche di MariaDB per gli utenti Joomla!Sphynx Storage Engine• MariaDB supporta full text search con SphinxSE• Con MariaDB SphynxSE è possibile eseguire delle full text search utilizzando sphynx senzasmettere di usare il database standard• L’Engine si connette direttamente alla componente searchd di SphinxCREATE TABLE t(...) ENGINE=SPINX CONNECION=”sphinx://localhost:9312/test”;• Facciamo fare a Sphinx quello per cui è stato progettato per fare al meglio• indicizzare, fare ricerche, ordinamenti, filtri• e’ possibile fare delle ricerche con JOIN a tabelle di MariaDB©MariaDBCorpora,onAb.CompanyConfiden,al.9
  • 10. Le caratteristiche di MariaDB per gli utenti Joomla!Altri storage enginesTokuDB• usa un’indicizzazione basata sui frattali invece del classico B-Tree• operazioni di scrittura rese più efficienti e rapide• compressione dei dati• particolarmente adatto per l’utilizzo con SSDCONNECT• può compiere operazioni di read/write/update in/to diversi formati: .DBF, .CSV, .INI e moltialtri©MariaDBCorpora,onAb.CompanyConfiden,al.10
  • 11. Le caratteristiche di MariaDB per gli utenti Joomla!Threadpool• Questa è probabilmente la funzionalità più utile per gli utenti Joomla!• Ci sono spesso molte query “brevi” che vengono eseguite ogni qual volta un sito web vieneraggiunto e quando si accede ad una pagina che non viene trovata nella cache• Se ci sono più client concorrenti che accedono alla pagina allo stesso tempo, viene aperta unathread per ogni user• Molte thread attive allo stesso tempo sono un killer per le prestazioni• Con MariaDB è possibile creare dei Pool di thread che rimangono aperte e continuano adessere riutilizzate• Quando è opportuno usare il ThreadPool?• Threadpools sono maggiormente efficaci nelle situazioni dove le query sonorelativamente brevi e il carico totale insiste sulla CPU (OLTP workloads).• Quindi se la vostra applicazione vede la presenza di molti utenticontemporanei che potenzialmente usano una thread a testao avete molti client che accedono al DB specificate l’uso del threadpooling nel vostro My.cnf©MariaDBCorpora,onAb.CompanyConfiden,al.11
  • 12. Le caratteristiche di MariaDB per gli utenti Joomla!Subqueries• Con MariaDB, Subqueries si dice che “Materializzano”• in pratica “funzionano”• Gli utenti esperti di MySQL sanno che in pratica nella maggior parte dei casi le subquerynon funzionano e l’unica soluzione è riscriverle usando delle JOIN o spezzarle in più queryseparate• MariaDB ha introdotto una Subquery cache che consente di avere una più alta prestazionein caso di presenza di subqueries se confrontata con l’ottimizzatore delle subquery diMySQL 5.6©MariaDBCorpora,onAb.CompanyConfiden,al.12
  • 13. Le caratteristiche di MariaDB per gli utenti Joomla!Group Commit• L’idea della group commit è di ammortizzare il costo di ogni singola fsync() nel caso dicommit multiple relative a multiple transazioni in parallelo.• Se ci sono più transazioni in paralleo che cercano di completare la commit, con MariaDB èpossibile forzare la scrittura di tutte quante insieme in una singola fsync() invece di tantefsync() quante sono le commit• Questa funzionalità è estremamente efficace nel caso si usi la replicazione• può ridurre al massimo il ritardo degli slaves rispetto al master• Un grande utilizzatore di questa funzione è Facebook©MariaDBCorpora,onAb.CompanyConfiden,al.13
  • 14. Le caratteristiche di MariaDB per gli utenti Joomla!Online ALTER TABLE• Prima di questa funzionalità era necessario portare il DB offline• era comunque una operazione molto lenta perche richiedeva molto spesso la copia di tuttii dati nella nuova tabella modificata, ora per molte modifiche questo non è più necessario• E’ comunque un’operazione costosa• Con MariaDB è possibile verificare lo stato di avanzamento in tempo reale della modifica online della tabella• Questa particolare funzionalità è stata sviluppata per Booking.comDynamic colums• Consente di archiviare differenti gruppi di colonne in ogni riga(sul modello NoSQL)• I dati di questo set sono salvati in un Blob con alcune funzionispecifiche per manipolarli• Utilissima per l’e-commerce perché è possibile assegnare diversi attibutiper ogni elemento©MariaDBCorpora,onAb.CompanyConfiden,al.14
  • 15. Le caratteristiche di MariaDB per gli utenti Joomla!GIS precise support• in MySQL era solo abbozzata• MySQL si basa su OpenGIS SFS e consente di trovare la regione di minimo• MariaDB has invece totale supporto nativo di OpenGIS sin dalla versione 5.3• SQL with full geometry types• https://mariadb.com/kb/en/mariadb/documentation/gis-functionality/gis-features-in-533/©MariaDBCorpora,onAb.CompanyConfiden,al.15
  • 16. Le caratteristiche di MariaDB per gli utenti Joomla!Parallel replication• Con la replicazione standard quando ci sono molte scritture (INSERT/UPDATE) sul mastergli slaves spesso non riescono a tenere il passo del master e “rimangono indietro”• Con la Replicazione Parallea (o Parallel Slave) gli slaves tengono più facilmente il passocon il master adattandosi al suo passo e replicando gli eventi presenti nel binlog inparallelo.• Le transazioni vengono eseguite in parallelo se sono state eseguite in parallelo sul master©MariaDBCorpora,onAb.CompanyConfiden,al.16
  • 17. Le caratteristiche di MariaDB per gli utenti Joomla!Multi source replication• Se la soluzione si basa su un ambiente Master/Slave spesso può rivelarsi utile partizionarei dati o implementare quello che si chiama Sharding• La replicazione Multi Source consente a molti master di replicare tutti su un singolo slave• Attività di ETL, reportistica, Business Analysis, possono accedere a un singolo slave senzacompromettere le attività sui master• Backup completo ditutti i master su unsingolo server©MariaDBCorpora,onAb.CompanyConfiden,al.17Master1 Master2 Master3 Master4SlaveMul,-­‐Source
  • 18. MariaDB Galera Cluster (in breve...)©MariaDBCorpora,onAb.CompanyConfiden,al.18•E’ una soluzione MultiMaster basata su replicazione Sincrona•Si basa su InnoDB e quindi anche su XtraDB•Consente completa scalabilità nelle operazioni di lettura e scrttura•Garantisce completa sincronizzazione dei server e nessuna transazione persa•Creata per avere grandi prestazionie utilizzo anche negli ambientiCloud
  • 19. MariaDB Galera Cluster (in breve...)• Per gli utilizzatori di Joomla! ilMariaDB Galera Cluster vienevisto come un unico grandedatabase con entry point multipli• I client si connettono a unoqualsiasi dei nodi del clusterindifferentemente• Una volta che una transazione èstata completata su un nodo siamosicuri che tutti gli altri nodi hannoricevuto la transazione©MariaDBCorpora,onAb.CompanyConfiden,al.19
  • 20. MariaDB Galera Cluster (in breve...)Quorum Failure• Galera Cluster si basa sul concetto di quorum• quando si verifica una interruzione dell’integrità del cluster (uno o più nodi non sonoaccessibili o non rispondono) se la maggioranza dei nodi superstiti costituisce il 50% + 1dei nodi del cluster prendi in carica il servizio tagliando fuori i non disponibili• I nodi non disponibili non riceveranno transazioni• cercheranno di riconnettersi al cluster non appena saranno pronti• Solitamente è a carico di un Load Balancer/ Proxy rilevare errori e disponibilità dei nodi e incaso di errore o non disponibulta rimuoverli dal pool• Dal momento che la maggiornaza è data da 50%+1 dei nodi del cluster si capisce che perevitare condizioni di Split Brain il numero minimo dei nodi di un Cluster Galera è di 3• Galera lavora anche in data center distribuiti geograficamente su WANs• ottimo per soluzioni distribuite e nel cloud• è possibile creare topologie che combinano replicazione sincrona e asincrona• importante nel caso di WAN non particolarmente efficienti©MariaDBCorpora,onAb.CompanyConfiden,al.20
  • 21. ReferencesMaria Luisa Raviol: luisa@mariadb.comMariaDB: www.mariadb.orgwww.mariadb.comKB: https://mariadb.com/kb/en/mariadb/documentation/optimization-and-tuning/https://mariadb.com/kb/en/mariadb/documentation/storage-engines/https://mariadb.com/kb/en/mariadb/documentation/replication-cluster-multi-master/©MariaDBCorpora,onAb.CompanyConfiden,al.21
  • Fly UP