Becoming Friends with Cassandra

Post on 16-Apr-2017

208 views 0 download

Transcript of Becoming Friends with Cassandra

Cassandra, réplication et langage de requête

Jonathan Ellis

RDBMS & VOUS

SQLITE, PYTHON SCRIPTS, FICHIERS LOG

EXEMPLE ?

DONNÉES DE PETITE TAILLE

LA PLUPART DES SITES WEB

RDBMS

DONNÉES DE TAILLE MOYENNE

RDBMS CONVIENT-IL AUX DONNÉES MASSIVES ?

VOUS BIG DATA

SCALABILITÉ VERTICALE Taille des

données au démarrage

OH, WHOA, THINGS ARE KICKING UP

“ACID”, PAS TOUJOURS VRAIATOMICITÉ COHÉRENCE ISOLATION DURABILITÉ

Cohérence ?

RÉPLICATION ASYNCHRONE != COHÉRENCE

CLIENTMAITRE ESCLAVE

Délai de Réplication

NON! HUH?

LA 3ÈME FORME NORMALE NE SCALE PAS

HORRIBLE

▸ IMPRÉVISIBLE

▸ DONNÉES >>MÉMOIRE ?

▸ RECHERCHE SUR DISQUE —> LENT

▸ UTILISATEURS MÉCONTENTS

PARTITIONNER

CLIE

NTCAUCHEMAR

DISPONIBILITÉ?PAS AVEC CES

TÊTES DE MULE …

CONCLUSION: GESTION DE LA CROISSANCE DES DONNÉES, PAS SI SIMPLE …

VOTRE MEILLEUR AMI, CASSANDRA

ARCHITECTURE

ARCHITECTURE

PEER TO PEER

▸ Cassandra, architecture Masterless: ni Maître ni Esclave

▸ Chaque noeud gère lui-même ses données

▸ Comment est-ce possible ?

▸ Réplication

▸ Niveau de cohérence

NOEUD1

NOEUD2

NOEUD3

NOEUD4

RÉSULTAT ?SCALABILITÉ LINÉAIRE

HAUTE DISPONIBILITÉ

CLIENT

TOPOLOGIE

OPÉRATION

▸ Le “facteur de réplication” définit le nombre de “copies”

ARCHITECTURE

CASSANDRA DISTRIBUE ET RÉPLIQUE LES DONNÉES

NOEUD 1

NOEUD 2

NOEUD 3

NOEUD 4

▸ Les copies acquittent auprès du coordinateur;

▸ le coordinateur acquitte auprès du client

ARCHITECTURE

COMMENT ACQUITTE T-ON LES ÉCRITURES ?

COORDINATEUR

ack

NOEUD 1

NOEUD 2

NOEUD 3

NOEUD 4

ARCHITECTURE

NIVEAUX DE COHÉRENCE AJUSTABLE ?▸ ONE

▸ QUORUM

▸ ALL

NOEUD 1

NOEUD 2

NOEUD 3

NOEUD 4

ONE

ARCHITECTURE

▸ Une seule copie acquitte

NOEUD 1

NOEUD 2

NOEUD 3

NOEUD 4

▸ Toutes les copies acquittent

ARCHITECTURE

ALL

NOEUD 1

NOEUD 2

NOEUD 3

NOEUD 4

ARCHITECTURE

QUORUM▸ Quorum = (somme du facteur de réplication / 2) + 1

▸ Question: combien de copies doivent-ils acquitter si le facteur de réplication est 3 & on veut du quorum?

NOEUD 1

NOEUD 2

NOEUD 3

NOEUD 4

PARAMÈTRES MULTI-DC▸QUORUL vs. LOCAL_QUORUM

▸ONE vs. LOCA_ONE

US-EAST FR-PARIS

PARTITIONER

CONSISTENT HASHINGComment les données sont elle réparties sur le cluster en réalité ?

LA MODÉLISATION DE DONNÉES AVEC CASSANDRA SEMBLE DIFFICILEPAS EXACTEMENT

KEYSPACE TABLE PARTITION LIGNE

STRUCTURE DE DONNÉES DANS CASSANDRA

CLÉ PRIMAIRE = CLÉ DE PARTITION + CLUSTERING COLUMNS

CLÉ DE PARTITION

SEULE MANIÈRE DE LOCALISER LA PARTITION SUR LE CLUSTER

CLUSTERING COLUMNS

POUR DÉFINIR LE TRI, L’ORDRE ET L’UNICITÉ

POURQUOI LES CLUSTERING COLUMNS SONT SI EFFICACES ?

UN EXEMPLE

CRÉER UN KEYSPACECREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}; USE test;

CRÉER UNE TABLECREATE TABLE timeline (  user_id text,  tweet_id timeuuid,  tweet_author text, tweet_body text,  PRIMARY KEY (user_id, tweet_id));

CLÉ PRIMAIRE EN BLANC

EXEMPLE DE REQUÊTE D’INSERTIONinsert into timeline (user_id, tweet_id, tweet_author, tweet_body) values ('jbellis', now(), ‘Jonathan Ellis', 'Bonjour Paris!');

CRÉER UNE TABLECREATE TABLE timeline (  user_id text,  tweet_id timeuuid,  tweet_author text, tweet_body text,  PRIMARY KEY (user_id, tweet_id));

LA CLÉ DE PARTITION PERMET LE ROUTAGE

PARTITIONER

CRÉER UNE TABLECREATE TABLE timeline (  user_id text,  tweet_id timeuuid,  tweet_author text, tweet_body text,  PRIMARY KEY (user_id, tweet_id));

QU’EN EST-IL DES CLUSTERING COLUMNS?

user_id tweet_id _author _body

jbellis 3290f9da.. rbranson loremjbellis 3895411a.. tjake ipsum... ... ...

driftx 3290f9da.. rbranson loremdriftx 71b46a84.. yzhang dolor... ... ...

yukim 3290f9da.. rbranson loremyukim e451dd42.. tjake amet... ... ...

SELECT * FROM timelineWHERE user_id = ’driftx’;

MODÈLE DE DONNÉES ORIENTÉ REQUÊTE

LES RDBMS, C’ÉTAIT SI BIEN…

JE N’AVAIS PAS BESOIN DE DÉ-NORMALISER

MAIS N’OUBLIONS PAS QUE…

LA 3ÈME FORME NORMALE NE SCALE PAS!

HORRIBLE

▸ LES TRIS GLOBAUX SONT COUTEUX

▸ LES JOINTURES MULTI-MACHINES SONT ENCORE PLUS COUTEUSES

▸ UTILISATEURS MÉCONTENTS !

PAS DE PANIQUE!

ROULEMENT DE TAMBOUR …

MAINTENANT C’EST DUY HAI DOAN !