SlideShare a Scribd company logo
1 of 28
Download to read offline
partita iva e codice fiscale: 12938200156
c.c.i.a.a. milano n.1599095
registro imprese 12938200156
capitale sociale € 2.418.433,00 i.v.
direzione e sede legale
via campanini 6
20124 milano
tel: +39 02/66.732.1 – fax: +39 02/66.732.300
unità operativa
p.zza san benedetto da norcia 33
00071 pomezia (rm)
tel: +39 06/9826.9600 – fax: +39 06/9826.9680
Mirko Conte, System Architect
MySQL Tech Tour Rome, 29 aprile 2015
Progettare, installare e
configurare MySQL Cluster
2
Agenda
• Valutare MySQL Cluster nel proprio progetto
• Esempi di architettura
• Requisiti hardware/network
• Sessione hands-on
3
Valutare MySQL Cluster nel proprio progetto
• MySQL Cluster CGE è una soluzione no-compromise in termini di
scalabilità e uptime
– Viene incontro alle principali richieste di applicazioni enterprise di
ultima generazione a elevata criticità e concorrenza con ritmi di
crescita elevati
• L'architettura di MySQL Cluster introduce complessità
– Hardware e network
– Installazione
– Configurazione e tuning
– Operations
– Differenze rispetto a storage engines più diffusi
• Le specificità di un'architettura distribuita e replica sincrona non lo
rendono adatto a tutti i tipi di workload
– Workload non adatti possono portare a livelli di performance e
stabilità inferiori ad altre soluzioni MySQL
4
Valutare MySQL Cluster nel proprio progetto
• È opportuna una valutazione preventiva
– dei requisiti dell'applicazione
– delle caratteristiche del workload
• Scelta della soluzione MySQL più adatta a caratteristiche e requisiti
del proprio progetto
• Benchmark!!!
5
Valutare le esigenze
• Requisiti di disponibilità
– È richiesto avere i cinque “9” di disponibilità per la propria applicazione
o è sufficiente un servizio ad alta affidabilità con service level SLA più
ampi?
– Valutare quali soluzioni MySQL soddisfano i requisiti di disponibilità della
propria applicazione
• Requisiti sulla scalabilità
– È richiesta scalabilità orizzontale a caldo?
– Valutare la scalabilità verticale di Innodb: fino a 48 CPU thread, centinaia
di GB di RAM e dischi SSD
– Valutare la scalabilità orizzontale sulle letture tramite replica MySQL
• Requisiti sui tempi di risposta
– È richiesto avere tempi di risposta molto brevi e costanti (real-time) su
query semplici, OLTP?
6
Valutare il workload
• Valutare la tipologia di dati/workload
– Concorrenza 
– Accesso seek da indici 
– Join complesse e full table scan 
– Transazioni lunghe 
– Large rows (>14K) 
– Applicazioni certificate con particolari engines
• Benchmark!!!
• Ulteriori approfondimenti
– White paper MySQL Cluster Evaluation Guide
7
 Basic
– 2 hosts (data + SQL nodes + app)
– 1 “small” host (mng node)
Esempi di architettura
Data nodes
SQL nodes
App client SQL
Management nodes
8
 One-to-one
– n hosts (data nodes)
– m hosts (SQL nodes + app + 2 mng nodes)
Esempi di architettura
Data nodes
SQL nodes
App client SQL
Management nodes
9
 Large
– n hosts (data nodes)
– m hosts (SQL nodes)
– 2 hosts (mng nodes)
– app nodes (load balanced)
Esempi di architettura
Load
balancer
SQL nodes
App client SQL
Management nodes
Data nodes
10
• Extra-large
– White paper MySQL Reference Architectures for Massively Scalable Web
Infrastructure
Esempi di architettura
11
Hardware e network
• Rete a bassa latenza tra i nodi
– Raccomandato almeno 1 Gbps meglio 10 Gbps
– Raccomandata rete dedicata
– Possibili link cross nei node group
• I/f rete e switch ridondati
• 4-64 CPU threads
– Meglio freq. clock elevata sui data nodes
• RAM: in base a dimensione database e numero data nodes
• Dischi: devono garantire la piena funzionalità di LCP e GCP ed
eventuale disk data storage
• Server dedicati o virtuali/condivisi
– Risorse h/w dedicate per prestazioni più costanti e “real-time”
Sessione hands-on
13
Preparare il S.O.
• Configurare MAC e firewall
• Risolvere localmente nomi hosts del cluster
• Configurare hostname unici (usati da agent MCM)
• Installare binari MySQL Cluster e MySQL Cluster Manager
• Sicurezza: ownership binari differente da utente del servizio
• Creare utenza del servizio
• Creare data directory Cluster Manager
14
Abilitare gli agent Cluster Manager
• Modificare file di configurazione degli agent mcmd.ini
– log-file
– manager-directory
– pid-file
– permessi 600
• Modificare script di avvio
– MCMD_ROOTDIR
– MCMD_USER
• Abilitare lo start degli agent al boot
15
Usare la console di Cluster Manager
• Configurare environment utente DBA
– PATH binari MySQL e MCM
• Usare la console di MCM
– mcm
• Configurare site
– mcm> create site -h <host>[,<host>]* <sitename>
• Configurare package
– mcm> add package -b <directory> <sitename>
16
Alcuni parametri Linux
• Limiti utente del servizio
– /etc/security/limits.d
– nofile: open files
– memlock: lock pagine in RAM
• Parametri TCP
– host a elevata frequenza di connessioni
– estendere net.ipv4.ip_local_port_range
– attivare net.ipv4.tcp_tw_reuse
• Parametri virtual memory
– ridurre vm.swappiness
17
Alcuni parametri Linux - storage
• Schedulatore I/O
– elevator=deadline
• Opzioni mount
– noatime, nodiratime
– nobarrier (controller con batteria)
• Filesystem
– ext4
• data=writeback journal solo metadati, simile ad XFS
– XFS
18
Configurazione multi-core statica
• MySQL Cluster genera un carico di lavoro CPU bound
• Su host multi-core si possono assegnare staticamente i core ad
alcuni thread dei data node e alle funzioni del sistema operativo
• Isolare i core da dedicare al processo data node
– isolcpus, parametro avvio kernel
• Esempio: isolcpus=0-25
– IRQ_BALANCE_BANNED_CPUS, parametro file
/etc/sysconfig/irqbalance
• Esempio: IRQBALANCE_BANNED_CPUS="3FFFFFF"
• Assegnare i thread principali del processo data node a un core
– ThreadConfig, parametro Cluster
• Ulteriori approfondimenti
– White paper Optimizing MySQL Cluster Performance
19
Creare un cluster
• Creare un cluster
– mcm> create cluster -P <package> -R
<processname>@<host>[,<processname>@<host>]*
20
Ottimizzare alcuni parametri – data nodes
• DataMemory: spazio (in bytes) per storage dei record del database
e degli indici ordered
• IndexMemory: spazio (in bytes) per storage degli indici hash
• LockPagesInMainMemory: lock della memoria in RAM (necessita
ulimit)
21
Ottimizzare alcuni parametri – data nodes
• MaxNoOfConcurrentTransactions: massimo numero di transazioni
parallele in un data node
• MaxNoOfConcurrentOperations: massimo numero di record in fase
di update o lock contemporaneamente
• MaxNoOfTables: massimo numero di tabelle, indici unique hash,
tabelle extra per i blob (massimo 20320)
• MaxNoOfAttributes: massimo numero di colonne (durante alter
table viene usato 3 volte il numero di colonne presenti).
Limitazione max 512 colonne su una singola tabella
• MaxNoOfTriggers: massimo numero di triggers. Trigger interni
vengono creati per ogni indice e per la replica.
22
Ottimizzare alcuni parametri – data nodes
• NoOfFragmentLogParts: numero di gruppi di redo log, multiplo di
4. Deve essere almeno pari al numero di threads LDM (local data
manager, o LQH)
• FragmentLogFileSize: dimensione di ogni file appartenente a un
gruppo di redo log
• NoOfFragmentLogFiles: numero di files di un gruppo di redo log
• RedoBuffer: buffer del gruppo di redo log, se troppo piccolo genera
errori
• MaxDiskWriteSpeed: livello massimo di scritture su disco in bytes/s
per LCP e backup
• MaxDiskWriteSpeedOwnRestart: come sopra durante restart
• MaxDiskWriteSpeedOtherNodeRestart: come sopra durante
<processname>@<host>[,<processname>@<host>]*
23
Ottimizzare alcuni parametri – data nodes
• ODirect: scrittura su disco direct I/O (no cache)
• HeartbeatIntervalDbDb: frequenza dell'heartbeat in millisec
(sequenza circolare tra tra i nodi)
• HeartbeatIntervalDbApi:frequenza dell'heartbeat in millisec verso
api nodes (tra nodo cluster e relativi nodi api connessi)
• MemReportFrequency: log uso data e index memory
• BackupReportFrequency: log avanzamento backup
• LogLevel...: livelli del cluster log
• TransactionInactiveTimeout: chiude transazioni non committate
• TransactionDeadlockDetectionTimeout: massima attesa del
transaction coordinator di risposta da altri data nodes durante una
transazione (deadlock, lunghi lock, overload del nodo)
24
Ottimizzare alcuni parametri – data nodes
• ThreadConfig: controlla i singoli thread dei data node multithread
in numero ed eventuale bind a una CPU
• MaxNoOfExecutionThreads: parametro semplificato per controllare
il parallelismo dei data note multithread
25
Ottimizzare alcuni parametri – altri
• Management nodes
– LogDestination: definisce cluster log e retention
• Data nodes e API nodes
– TotalSendBufferMemory: buffer trasmissione TCP condiviso tra le varie
connections
• Connessioni TCP
– HostName1,HostName2: configurazione del link diretto di un node
group
26
Ottimizzare alcuni parametri – mysqld
• ndb_cluster_connection_pool: connection pool (utilizza slots API
node)
• ndb_autoincrement_prefetch_sz: migliora molto le performance
sulle insert con autoincrement, possibilità di avere id mancanti
• default_storage_engine
• slow_query_log: slow query log
• log_queries_not_using_indexes: logga query che non usano indici
• log_throttle_queries_not_using_indexes: logga al massimo un certo
numero di query che non usano indici al minuto
• long_query_time: soglia durata per slow query log
• tmp_table_size: dimensione max temp table
• max_heap_table_size: dimensione max memory table
• max_connections: connessioni massime
27
Ottimizzare alcuni parametri – mysqld
• thread_cache_size: cache dei thread
• table_definition_cache: cache delle definizioni
• table_open_cache: cache delle open table
• max_allowed_packet: pacchetto massimo, sufficiente per il più
grande blob
• max_connect_errors: blocco client con errori di connessione
direzione e sede legale
via campanini 6
20124 milano
tel: +39 02/66.732.1 – fax: +39 02/66.732.300
unità operativa
p.zza san benedetto da norcia 33
00071 pomezia (rm)
tel: +39 06/9826.9600 – fax: +39 06/9826.9680
Grazie per l’attenzione!

More Related Content

What's hot

Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)MongoDB
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioMongoDB
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkAlessio Biasiutti
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazioneEnrico Pirozzi
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss CloudJBug Italy
 
Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoBioDec
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Codemotion
 
Iaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdataIaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdataVincenzo Fogliaro
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS Imola Informatica
 
May 2010 - Infinispan
May 2010 - InfinispanMay 2010 - Infinispan
May 2010 - InfinispanJBug Italy
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
CCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows ServerCCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows Serverwalk2talk srl
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaGianluca Hotz
 
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLBack to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLMongoDB
 

What's hot (19)

Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
 
Ap Camp 2011
Ap Camp 2011Ap Camp 2011
Ap Camp 2011
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
 
SaaS con Symfony2
SaaS con Symfony2SaaS con Symfony2
SaaS con Symfony2
 
Hadoop in action!
Hadoop in action!Hadoop in action!
Hadoop in action!
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with Spark
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazione
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss Cloud
 
Scheduling In Linux
Scheduling In LinuxScheduling In Linux
Scheduling In Linux
 
Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciuto
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
What's new in Grizzly
What's new in GrizzlyWhat's new in Grizzly
What's new in Grizzly
 
Iaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdataIaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdata
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
May 2010 - Infinispan
May 2010 - InfinispanMay 2010 - Infinispan
May 2010 - Infinispan
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
CCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows ServerCCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows Server
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLBack to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
 

Viewers also liked

MySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and ScalabilityMySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and ScalabilityShivji Kumar Jha
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningSeveralnines
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationShivji Kumar Jha
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMario Beck
 
FOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsFOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsAndrew Morgan
 
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityRamp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityPythian
 
MySQL User Camp: MySQL Cluster
MySQL User Camp: MySQL ClusterMySQL User Camp: MySQL Cluster
MySQL User Camp: MySQL ClusterShivji Kumar Jha
 
Open source India - MySQL Labs: Multi-Source Replication
Open source India - MySQL Labs: Multi-Source ReplicationOpen source India - MySQL Labs: Multi-Source Replication
Open source India - MySQL Labs: Multi-Source ReplicationShivji Kumar Jha
 
MySQL Cluster performance best practices
MySQL Cluster performance best practicesMySQL Cluster performance best practices
MySQL Cluster performance best practicesMat Keep
 
Structural Design pattern - Adapter
Structural Design pattern - AdapterStructural Design pattern - Adapter
Structural Design pattern - AdapterManoj Kumar
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationNuno Carvalho
 
MySQL Query And Index Tuning
MySQL Query And Index TuningMySQL Query And Index Tuning
MySQL Query And Index TuningManikanda kumar
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)Aurimas Mikalauskas
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarAndrew Morgan
 
Adapter Design Pattern
Adapter Design PatternAdapter Design Pattern
Adapter Design PatternAdeel Riaz
 
Oracle my sql cluster cge
Oracle my sql cluster cgeOracle my sql cluster cge
Oracle my sql cluster cgeseungdon1
 

Viewers also liked (20)

MySQL user camp march 11th 2016
MySQL user camp march 11th 2016MySQL user camp march 11th 2016
MySQL user camp march 11th 2016
 
MySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and ScalabilityMySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and Scalability
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance Tuning
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group Replication
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
FOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsFOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worlds
 
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityRamp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
 
MySQL User Camp: MySQL Cluster
MySQL User Camp: MySQL ClusterMySQL User Camp: MySQL Cluster
MySQL User Camp: MySQL Cluster
 
MySQL User Camp: GTIDs
MySQL User Camp: GTIDsMySQL User Camp: GTIDs
MySQL User Camp: GTIDs
 
Open source India - MySQL Labs: Multi-Source Replication
Open source India - MySQL Labs: Multi-Source ReplicationOpen source India - MySQL Labs: Multi-Source Replication
Open source India - MySQL Labs: Multi-Source Replication
 
MySQL Cluster performance best practices
MySQL Cluster performance best practicesMySQL Cluster performance best practices
MySQL Cluster performance best practices
 
Structural Design pattern - Adapter
Structural Design pattern - AdapterStructural Design pattern - Adapter
Structural Design pattern - Adapter
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
 
MySQL Query And Index Tuning
MySQL Query And Index TuningMySQL Query And Index Tuning
MySQL Query And Index Tuning
 
MySQL 5.7 + JSON
MySQL 5.7 + JSONMySQL 5.7 + JSON
MySQL 5.7 + JSON
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinar
 
Adapter Design Pattern
Adapter Design PatternAdapter Design Pattern
Adapter Design Pattern
 
Oracle my sql cluster cge
Oracle my sql cluster cgeOracle my sql cluster cge
Oracle my sql cluster cge
 

Similar to MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster

JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009Sanne Grinovero
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
 
Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning
Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance TuningWebinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning
Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance TuningMongoDB
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSMorlini Gabriele
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
 
CCI2018 - Exchange 2019 (novità e setup)
CCI2018 - Exchange 2019 (novità e setup)CCI2018 - Exchange 2019 (novità e setup)
CCI2018 - Exchange 2019 (novità e setup)walk2talk srl
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
 
MySQL 5
MySQL 5MySQL 5
MySQL 5jekil
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Meet Magento Italy
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsMikhail Zakharenko
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case studyGaetano Giunta
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side JavascriptMatteo Napolitano
 
Alfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Software
 
MySQL Day Milano 2018 - MySQL e le architetture a microservizi
MySQL Day Milano 2018 - MySQL e le architetture a microserviziMySQL Day Milano 2018 - MySQL e le architetture a microservizi
MySQL Day Milano 2018 - MySQL e le architetture a microserviziPar-Tec S.p.A.
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileBioDec
 
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...Par-Tec S.p.A.
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 

Similar to MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster (20)

JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
 
Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning
Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance TuningWebinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning
Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
 
CCI2018 - Exchange 2019 (novità e setup)
CCI2018 - Exchange 2019 (novità e setup)CCI2018 - Exchange 2019 (novità e setup)
CCI2018 - Exchange 2019 (novità e setup)
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
 
OrientDB & Big Data
OrientDB & Big DataOrientDB & Big Data
OrientDB & Big Data
 
MySQL 5
MySQL 5MySQL 5
MySQL 5
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costs
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case study
 
Thread
ThreadThread
Thread
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side Javascript
 
Alfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big Repository
 
MySQL Day Milano 2018 - MySQL e le architetture a microservizi
MySQL Day Milano 2018 - MySQL e le architetture a microserviziMySQL Day Milano 2018 - MySQL e le architetture a microservizi
MySQL Day Milano 2018 - MySQL e le architetture a microservizi
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 

More from Par-Tec S.p.A.

RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...
RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...
RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...Par-Tec S.p.A.
 
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Par-Tec S.p.A.
 
Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...
Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...
Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...Par-Tec S.p.A.
 
MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...
MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...
MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...Par-Tec S.p.A.
 
Webinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo moderno
Webinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo modernoWebinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo moderno
Webinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo modernoPar-Tec S.p.A.
 
MySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQL
MySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQLMySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQL
MySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQLPar-Tec S.p.A.
 
Webinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPA
Webinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPAWebinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPA
Webinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPAPar-Tec S.p.A.
 
MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0Par-Tec S.p.A.
 
MySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranzaMySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranzaPar-Tec S.p.A.
 
Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?
Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?
Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?Par-Tec S.p.A.
 
Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...
Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...
Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...Par-Tec S.p.A.
 
MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0Par-Tec S.p.A.
 
C&CNR2019 - Containers Landscape Review
C&CNR2019 - Containers Landscape ReviewC&CNR2019 - Containers Landscape Review
C&CNR2019 - Containers Landscape ReviewPar-Tec S.p.A.
 
C&CNR2019 - Cloud-Native Landscape Review
C&CNR2019 - Cloud-Native Landscape ReviewC&CNR2019 - Cloud-Native Landscape Review
C&CNR2019 - Cloud-Native Landscape ReviewPar-Tec S.p.A.
 
Open Source Day 2018 - OpenShift accelera la digital transformation di SIAE
Open Source Day 2018 - OpenShift accelera la digital transformation di SIAEOpen Source Day 2018 - OpenShift accelera la digital transformation di SIAE
Open Source Day 2018 - OpenShift accelera la digital transformation di SIAEPar-Tec S.p.A.
 
Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...
Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...
Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...Par-Tec S.p.A.
 
MySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microserviziMySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microserviziPar-Tec S.p.A.
 
Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...
Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...
Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...Par-Tec S.p.A.
 
Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...
Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...
Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...Par-Tec S.p.A.
 
Container e DevOps al servizio dei cittadini: il caso di INAIL
Container e DevOps al servizio dei cittadini: il caso di INAILContainer e DevOps al servizio dei cittadini: il caso di INAIL
Container e DevOps al servizio dei cittadini: il caso di INAILPar-Tec S.p.A.
 

More from Par-Tec S.p.A. (20)

RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...
RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...
RHACS: creare, distribuire ed eseguire applicazioni cloud native in modo più ...
 
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
 
Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...
Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...
Webinar 18 novembre 2021 - Dall’endpoint protection al servizio gestito: come...
 
MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...
MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...
MySQL Day 2021 Digital Edition - Da Percona e MariaDB a MySQL: vantaggi e str...
 
Webinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo moderno
Webinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo modernoWebinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo moderno
Webinar 2 marzo 2021 - DevSecOps: la cybersecurity sposa lo sviluppo moderno
 
MySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQL
MySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQLMySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQL
MySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQL
 
Webinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPA
Webinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPAWebinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPA
Webinar 6 ottobre 2020 - Sicurezza e Compliance a misura di RPA
 
MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Milano 2019 - Da MySQL 5.7 a MySQL 8.0
 
MySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranzaMySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranza
 
Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?
Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?
Open Source Day 2019 - Cosa puoi fare con Ansible in 1200 secondi?
 
Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...
Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...
Forum ICT Security 2019 - L’Identity Governance come difesa dagli insider thr...
 
MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0
MySQL Day Roma 2019 - Da MySQL 5.7 a MySQL 8.0
 
C&CNR2019 - Containers Landscape Review
C&CNR2019 - Containers Landscape ReviewC&CNR2019 - Containers Landscape Review
C&CNR2019 - Containers Landscape Review
 
C&CNR2019 - Cloud-Native Landscape Review
C&CNR2019 - Cloud-Native Landscape ReviewC&CNR2019 - Cloud-Native Landscape Review
C&CNR2019 - Cloud-Native Landscape Review
 
Open Source Day 2018 - OpenShift accelera la digital transformation di SIAE
Open Source Day 2018 - OpenShift accelera la digital transformation di SIAEOpen Source Day 2018 - OpenShift accelera la digital transformation di SIAE
Open Source Day 2018 - OpenShift accelera la digital transformation di SIAE
 
Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...
Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...
Open Source Day 2018 - Caso Cliente INAIL: Soluzioni e competenze che abilita...
 
MySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microserviziMySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microservizi
 
Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...
Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...
Forum ICT Security 2018 - Il GDPR applicato al settore del retail: il caso di...
 
Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...
Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...
Dynatrace Perform Roma 2018 - Red Hat OpenShift: i container per il mondo ent...
 
Container e DevOps al servizio dei cittadini: il caso di INAIL
Container e DevOps al servizio dei cittadini: il caso di INAILContainer e DevOps al servizio dei cittadini: il caso di INAIL
Container e DevOps al servizio dei cittadini: il caso di INAIL
 

MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster

  • 1. partita iva e codice fiscale: 12938200156 c.c.i.a.a. milano n.1599095 registro imprese 12938200156 capitale sociale € 2.418.433,00 i.v. direzione e sede legale via campanini 6 20124 milano tel: +39 02/66.732.1 – fax: +39 02/66.732.300 unità operativa p.zza san benedetto da norcia 33 00071 pomezia (rm) tel: +39 06/9826.9600 – fax: +39 06/9826.9680 Mirko Conte, System Architect MySQL Tech Tour Rome, 29 aprile 2015 Progettare, installare e configurare MySQL Cluster
  • 2. 2 Agenda • Valutare MySQL Cluster nel proprio progetto • Esempi di architettura • Requisiti hardware/network • Sessione hands-on
  • 3. 3 Valutare MySQL Cluster nel proprio progetto • MySQL Cluster CGE è una soluzione no-compromise in termini di scalabilità e uptime – Viene incontro alle principali richieste di applicazioni enterprise di ultima generazione a elevata criticità e concorrenza con ritmi di crescita elevati • L'architettura di MySQL Cluster introduce complessità – Hardware e network – Installazione – Configurazione e tuning – Operations – Differenze rispetto a storage engines più diffusi • Le specificità di un'architettura distribuita e replica sincrona non lo rendono adatto a tutti i tipi di workload – Workload non adatti possono portare a livelli di performance e stabilità inferiori ad altre soluzioni MySQL
  • 4. 4 Valutare MySQL Cluster nel proprio progetto • È opportuna una valutazione preventiva – dei requisiti dell'applicazione – delle caratteristiche del workload • Scelta della soluzione MySQL più adatta a caratteristiche e requisiti del proprio progetto • Benchmark!!!
  • 5. 5 Valutare le esigenze • Requisiti di disponibilità – È richiesto avere i cinque “9” di disponibilità per la propria applicazione o è sufficiente un servizio ad alta affidabilità con service level SLA più ampi? – Valutare quali soluzioni MySQL soddisfano i requisiti di disponibilità della propria applicazione • Requisiti sulla scalabilità – È richiesta scalabilità orizzontale a caldo? – Valutare la scalabilità verticale di Innodb: fino a 48 CPU thread, centinaia di GB di RAM e dischi SSD – Valutare la scalabilità orizzontale sulle letture tramite replica MySQL • Requisiti sui tempi di risposta – È richiesto avere tempi di risposta molto brevi e costanti (real-time) su query semplici, OLTP?
  • 6. 6 Valutare il workload • Valutare la tipologia di dati/workload – Concorrenza  – Accesso seek da indici  – Join complesse e full table scan  – Transazioni lunghe  – Large rows (>14K)  – Applicazioni certificate con particolari engines • Benchmark!!! • Ulteriori approfondimenti – White paper MySQL Cluster Evaluation Guide
  • 7. 7  Basic – 2 hosts (data + SQL nodes + app) – 1 “small” host (mng node) Esempi di architettura Data nodes SQL nodes App client SQL Management nodes
  • 8. 8  One-to-one – n hosts (data nodes) – m hosts (SQL nodes + app + 2 mng nodes) Esempi di architettura Data nodes SQL nodes App client SQL Management nodes
  • 9. 9  Large – n hosts (data nodes) – m hosts (SQL nodes) – 2 hosts (mng nodes) – app nodes (load balanced) Esempi di architettura Load balancer SQL nodes App client SQL Management nodes Data nodes
  • 10. 10 • Extra-large – White paper MySQL Reference Architectures for Massively Scalable Web Infrastructure Esempi di architettura
  • 11. 11 Hardware e network • Rete a bassa latenza tra i nodi – Raccomandato almeno 1 Gbps meglio 10 Gbps – Raccomandata rete dedicata – Possibili link cross nei node group • I/f rete e switch ridondati • 4-64 CPU threads – Meglio freq. clock elevata sui data nodes • RAM: in base a dimensione database e numero data nodes • Dischi: devono garantire la piena funzionalità di LCP e GCP ed eventuale disk data storage • Server dedicati o virtuali/condivisi – Risorse h/w dedicate per prestazioni più costanti e “real-time”
  • 13. 13 Preparare il S.O. • Configurare MAC e firewall • Risolvere localmente nomi hosts del cluster • Configurare hostname unici (usati da agent MCM) • Installare binari MySQL Cluster e MySQL Cluster Manager • Sicurezza: ownership binari differente da utente del servizio • Creare utenza del servizio • Creare data directory Cluster Manager
  • 14. 14 Abilitare gli agent Cluster Manager • Modificare file di configurazione degli agent mcmd.ini – log-file – manager-directory – pid-file – permessi 600 • Modificare script di avvio – MCMD_ROOTDIR – MCMD_USER • Abilitare lo start degli agent al boot
  • 15. 15 Usare la console di Cluster Manager • Configurare environment utente DBA – PATH binari MySQL e MCM • Usare la console di MCM – mcm • Configurare site – mcm> create site -h <host>[,<host>]* <sitename> • Configurare package – mcm> add package -b <directory> <sitename>
  • 16. 16 Alcuni parametri Linux • Limiti utente del servizio – /etc/security/limits.d – nofile: open files – memlock: lock pagine in RAM • Parametri TCP – host a elevata frequenza di connessioni – estendere net.ipv4.ip_local_port_range – attivare net.ipv4.tcp_tw_reuse • Parametri virtual memory – ridurre vm.swappiness
  • 17. 17 Alcuni parametri Linux - storage • Schedulatore I/O – elevator=deadline • Opzioni mount – noatime, nodiratime – nobarrier (controller con batteria) • Filesystem – ext4 • data=writeback journal solo metadati, simile ad XFS – XFS
  • 18. 18 Configurazione multi-core statica • MySQL Cluster genera un carico di lavoro CPU bound • Su host multi-core si possono assegnare staticamente i core ad alcuni thread dei data node e alle funzioni del sistema operativo • Isolare i core da dedicare al processo data node – isolcpus, parametro avvio kernel • Esempio: isolcpus=0-25 – IRQ_BALANCE_BANNED_CPUS, parametro file /etc/sysconfig/irqbalance • Esempio: IRQBALANCE_BANNED_CPUS="3FFFFFF" • Assegnare i thread principali del processo data node a un core – ThreadConfig, parametro Cluster • Ulteriori approfondimenti – White paper Optimizing MySQL Cluster Performance
  • 19. 19 Creare un cluster • Creare un cluster – mcm> create cluster -P <package> -R <processname>@<host>[,<processname>@<host>]*
  • 20. 20 Ottimizzare alcuni parametri – data nodes • DataMemory: spazio (in bytes) per storage dei record del database e degli indici ordered • IndexMemory: spazio (in bytes) per storage degli indici hash • LockPagesInMainMemory: lock della memoria in RAM (necessita ulimit)
  • 21. 21 Ottimizzare alcuni parametri – data nodes • MaxNoOfConcurrentTransactions: massimo numero di transazioni parallele in un data node • MaxNoOfConcurrentOperations: massimo numero di record in fase di update o lock contemporaneamente • MaxNoOfTables: massimo numero di tabelle, indici unique hash, tabelle extra per i blob (massimo 20320) • MaxNoOfAttributes: massimo numero di colonne (durante alter table viene usato 3 volte il numero di colonne presenti). Limitazione max 512 colonne su una singola tabella • MaxNoOfTriggers: massimo numero di triggers. Trigger interni vengono creati per ogni indice e per la replica.
  • 22. 22 Ottimizzare alcuni parametri – data nodes • NoOfFragmentLogParts: numero di gruppi di redo log, multiplo di 4. Deve essere almeno pari al numero di threads LDM (local data manager, o LQH) • FragmentLogFileSize: dimensione di ogni file appartenente a un gruppo di redo log • NoOfFragmentLogFiles: numero di files di un gruppo di redo log • RedoBuffer: buffer del gruppo di redo log, se troppo piccolo genera errori • MaxDiskWriteSpeed: livello massimo di scritture su disco in bytes/s per LCP e backup • MaxDiskWriteSpeedOwnRestart: come sopra durante restart • MaxDiskWriteSpeedOtherNodeRestart: come sopra durante <processname>@<host>[,<processname>@<host>]*
  • 23. 23 Ottimizzare alcuni parametri – data nodes • ODirect: scrittura su disco direct I/O (no cache) • HeartbeatIntervalDbDb: frequenza dell'heartbeat in millisec (sequenza circolare tra tra i nodi) • HeartbeatIntervalDbApi:frequenza dell'heartbeat in millisec verso api nodes (tra nodo cluster e relativi nodi api connessi) • MemReportFrequency: log uso data e index memory • BackupReportFrequency: log avanzamento backup • LogLevel...: livelli del cluster log • TransactionInactiveTimeout: chiude transazioni non committate • TransactionDeadlockDetectionTimeout: massima attesa del transaction coordinator di risposta da altri data nodes durante una transazione (deadlock, lunghi lock, overload del nodo)
  • 24. 24 Ottimizzare alcuni parametri – data nodes • ThreadConfig: controlla i singoli thread dei data node multithread in numero ed eventuale bind a una CPU • MaxNoOfExecutionThreads: parametro semplificato per controllare il parallelismo dei data note multithread
  • 25. 25 Ottimizzare alcuni parametri – altri • Management nodes – LogDestination: definisce cluster log e retention • Data nodes e API nodes – TotalSendBufferMemory: buffer trasmissione TCP condiviso tra le varie connections • Connessioni TCP – HostName1,HostName2: configurazione del link diretto di un node group
  • 26. 26 Ottimizzare alcuni parametri – mysqld • ndb_cluster_connection_pool: connection pool (utilizza slots API node) • ndb_autoincrement_prefetch_sz: migliora molto le performance sulle insert con autoincrement, possibilità di avere id mancanti • default_storage_engine • slow_query_log: slow query log • log_queries_not_using_indexes: logga query che non usano indici • log_throttle_queries_not_using_indexes: logga al massimo un certo numero di query che non usano indici al minuto • long_query_time: soglia durata per slow query log • tmp_table_size: dimensione max temp table • max_heap_table_size: dimensione max memory table • max_connections: connessioni massime
  • 27. 27 Ottimizzare alcuni parametri – mysqld • thread_cache_size: cache dei thread • table_definition_cache: cache delle definizioni • table_open_cache: cache delle open table • max_allowed_packet: pacchetto massimo, sufficiente per il più grande blob • max_connect_errors: blocco client con errori di connessione
  • 28. direzione e sede legale via campanini 6 20124 milano tel: +39 02/66.732.1 – fax: +39 02/66.732.300 unità operativa p.zza san benedetto da norcia 33 00071 pomezia (rm) tel: +39 06/9826.9600 – fax: +39 06/9826.9680 Grazie per l’attenzione!