Fast Data Platforms@HUG_Italy Meetup (17/4/2015)
@andrea_gioia
Un po’ di storia
VoltDB e i Fast Data
Utilizzo di VoltDB in una Enterprise Data Platform
Un po’ di storia
VoltDB e i Fast Data
Utilizzo di VoltDB in una Enterprise Data Platform
FASE 1: ONE SIZE FIT ALL
FASE 2: OLAP vs OLTP
FASE 2: ARCHITETTURA DATI
…MA I VOLUMI CRESCONO VELOCEMENTE
PROBLEMA: SCALABILITA’ SOLO VERTICALE
SOLUZIONE: CODE + SHARDING
SOLUZIONE: CODE + SHARDING
Partition-1 Partition-2 Partition-3 Partition-4 Partition-5 Partition-6
…MA I VOLUMI CRESCONO VELOCEMENTE
Problemi
PROBLEMI
1. Gestione dei fault
2. Gestione applicativa del cluster
3. Ricalcolo massivo
FASE 3: HADOOP 1.0
Componenti1. Dati distribuiti (HDFS)2. Computazione distribuita (Map-Reduce)
Vantaggi1. Maschera la complessità della gestione
del cluster2. Minimizza gli spostamenti dei dati3. Scala orizzontalmente su commodity
hardware
FASE 3: ARCHITETTURA
FASE 3: DATA LAKE
Caratteristiche1. Tutti i dati al massimo livello di
dettaglio (Volume)2. Dati strutturati e non (Varietà)3. Dati aggiunti appena disponibili
(Velocità)4. Dati processabili in modalità
distribuita (Valore)
DATA LAKE != DWH
PROBLEMA: BIG MA NON FAST
COLLECT EXPLORE
ANALYZEACT
RISULTATI1. Scoperta2. Interrogazione3. Ottimizzazione
FASE 4: SQL on HADOOP
FASE 4: ARCHITETTURA
PROBLEMA: VELOCE MA NON ABBASTANZA
…PERCHE’ I DATI CRESCONO IN VOLUME E IN VELOCITA’
FASE 5: SPECIALIZZAZIONE
FASE 5: LAMBDA ARCHITECTURE
Marged View(QUERY)
LAMBDA ARCHITECTURE: PAIN POINTS
Problematiche1. Duplicazione della logica di calcolo2. Integrazione viste effettuata a livello
applicativo3. Molte componenti software da
gestire4. Molte componenti hardware
esposte a possibili fault5. Velocità del fast layer limitata dal
sistema di storage dello stato utilizzato
FAST LAYER SEMPLIFICATO
Un po’ di storia
VoltDB e i Fast Data
Utilizzo di VoltDB in una Enterprise Data Platform
VoltDB è un database…1. In memory2. Partitioned3. Single-threaded4. Distributed5. ACID compliant
COS’E’?
A tutte quelle applicazioni che hanno bisogno di processare grosse quantità di dati in modo affidabile e veloce (fast data)
Requisiti chiave per queste applicazioni sono…
1. Altissimo throughput2. Scalabilità3. Affidabilità4. High Availability
A CHI SERVE
A CHI NON SERVE
A tutte quelle applicazioni che hanno bisogno di immagazzinare e confrontare grosse quantità di dati storici suddivisi su più tabelle (dwhe bi)
DATA PARTITIONING
DATA REPLICATION
DISTRIBUTED PROCESSING
Garantita per mezzo di …1. Replica delle partizioni
(K-SAFETY)
HIGH AVAILABILITY
DURABILITY
Garantita per mezzo di …1. Snapshots periodici2. Command logging (sincrono o
asincrono)3. Replication (business continuity)
Un po’ di storia
VoltDB e i Fast Data
Utilizzo di VoltDB in una Enterprise Data Platform
DATA PLATFORM 1
DATA PLATFORM 2
DATA PLATFORM 2
DATA PLATFORM 2
DATA PLATFORM 2
APP APP
GRAZIE!
DOMANDE?
BIBLIOGRAFIA
1. How to beat the CAP (Nathan Marz)2. Questioning the Lambda Architecture (Jay Kreps)3. The Log: What every software engineer should know about real-
time data's unifying abstraction (Jay Kreps)4. Polyglot Persistence (Martin Fowler)5. Fast Data and the New Enterprise Data Architecture (Scott Jarr)6. Simplifying the (complex) Lambda architecture (John Piekos)
@quantycabiwww.quantyca.it