SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
Referent: Andreas Finke
Sichere Systeme
Prof. Dr. Christoph Pleier
WS2014/15
15. Januar 2015
Hochverfügbares NoSQL Datenbank System
• Aspekte IT-Sicherheit
• Verfügbarkeit
• Datensicherheit
• Einsatz von Cassandra im Unternehmen seit 2012
• Finanzumfeld (Kurse, Charts)
• Vorher proprietäre Lösung
• 600 Schreibzugriffe/Sek
• Cassandra
• 26.000 Schreibzugriffe/Sek
2
Motivation
http://keyinvest-ch.ubs.com/marktuebersicht/ubs-deri-risk-indikator
• Apache Cassandra
• Cassandra Architektur
• Daten-Replikation
• Konsistenz
• Sicherheit
• Demo: Daten Modellierung mit CQL
3
Agenda
• Verteilte spaltenorientierte NoSQL Datenbank
• Entwickelt bei Facebook
• Open Source: 2008 (github.com/apache/cassandra)
• Aktuelle Version: 2.1.2 (Stand: 13.Januar 2015)
• Kein Master = Gleichwertige Nodes
• API
• CQL (Cassandra Query Language)
• Apache Thrift
• Treiber
• Java, Python, Ruby, NodeJS, C#
4
Apache Cassandra
A
D B
C
Cassandra Node
r/w
r/w
• SQL: Structured Query Language
• Syntax für Abfragen auf relationale Datenbanken
• Beispiele: MySql, MsSQL Server, Postgres
• NoSQL: Not Only SQL (seit 2009)
• Sammelbegriff für nicht relationale Datenbanken
• Weitere Unterteilungen
5
Exkurs: NoSQL
Typ Beispiele
Spaltenorientiert Cassandra, HBase
Dokumentenbasiert MongoDB, CouchDB
Key-Value Store Redis, Memcache
Graph DB Neo4j
• Bietet horizontale lineare Skalierbarkeit
• Größte produktive Installationen
• Apple: 75T Nodes, 10 PB, 1000+ Cluster, Mehrere Millionen Op/Sek
• Netflix: 2,7T Nodes, 420 TB, über 1 Billion Op/Tag
• Easou: 270 Nodes, 300 TB, 800 Millionen Anfragen/Tag
• Ebay: 100 Nodes, 250 TB
6
Apache Cassandra
http://www.datastax.com/documentation/cassandra/2.0/cassandra/images/intro_cassandra.png
7
Apache Cassandra
https://pbs.twimg.com/media/BxSWW9vCYAALQ58.jpg:large
Apple Vortrag auf Cassandra Summit 2014
8
Apache Cassandra
http://1.bp.blogspot.com/-ZFtW7MFMqZQ/TrG5ujuDGdI/AAAAAAAAAWw/heceeMD50x4/s1600/scale.png
http://2.bp.blogspot.com/-yZqbhRguaH0/TrHO9tg06aI/AAAAAAAAAXI/NVTpTvc2pAw/s1600/activity.png
Netflix Benchmark
• Gegründet: April 2010 von Jonathan Ellis
• Enterprise Support für Apache Cassandra
• ~80% der Commits auf Github
• DataStax Enterprise
• Apache Cassandra + Extra features
• Datastax Community (frei verfügbar)
• OpsCenter (GUI)
• DevCenter (Daten Modellierung)
9
Apache Cassandra
http://www.datastax.com/wp-content/themes/datastax-2013/images/opscenter/opsc4-ring-view-c-hadoop-solr.jpg
Datastax
• Apache Cassandra
• Cassandra Architektur
• Daten-Replikation
• Konsistenz
• Sicherheit
• Demo: Daten Modellierung mit CQL
10
Agenda
• Gesetzmäßigkeit für verteilte Systeme (2002 MIT/Boston)
• Cassandra
• bietet A + P
• bessere Konsistenz gegen höhere Latenz
11
Cassandra Architektur
Konsistenz
Verfügbarkeit Partitionstoleranz
C
A P
Ein verteiltes System kann nur zwei der drei Eigenschaften Konsistenz,
Verfügbarkeit sowie Partitionstoleranz zur selben Zeit gewährleisten
Theoretische Grundlagen: CAP - Theorem
• Quelle: Amazon (Oktober 2007)
• Problem: Notwendigkeit für ~100% Verfügbarkeit
• Lösung:
• Partitionierung der Daten auf 1-n gleichwertige Nodes (masterless)
• Gleichmäßige Verteilung via Consistent Hashing
• Hohe Verfügbarkeit mittels n * Replikation der Daten
• Intra-Cluster Kommunikations Protokoll (Gossip)
12
Cassandra Architektur
“[…] even if disks are failing, network routes are flapping, or data centers are
being destroyed by tornados […]”
Theoretische Grundlagen: Dynamo Paper
• Quelle: Google (November 2006)
• Problem: Skalierung von massiven Datenmengen (PB)
• Lösung:
• Einfaches Datenmodell: row-key—> columns (keine Relationen)
• Logische Strukturierung in ColumnFamilies (analog SQL: Table)
• Persistenz: n * SSTable / ColumnFamily
• Caching pro ColumnFamily:
• Scan Cache: Index über Spalten in SSTable
• Block Cache: Ganze Zeile im RAM
13
Cassandra Architektur
column1 column2
row-key-1 x
row-key-2 y
Theoretische Grundlagen: Big Table Paper
• Quelle: Google (November 2006)
• Problem: Skalierung von massiven Datenmengen (PB)
• Lösung:
• Einfaches Datenmodell: row-key—> columns (keine Relationen)
• Logische Strukturierung in ColumnFamilies (analog SQL: Table)
• Persistenz: n * SSTable / ColumnFamily
• Caching pro ColumnFamily:
• Scan Cache: Index über Spalten in SSTable
• Block Cache: Ganze Zeile im RAM
13
Cassandra Architektur
column1 column2
row-key-1 x
row-key-2 y
Theoretische Grundlagen: Big Table Paper
RAM
• Quelle: Google (November 2006)
• Problem: Skalierung von massiven Datenmengen (PB)
• Lösung:
• Einfaches Datenmodell: row-key—> columns (keine Relationen)
• Logische Strukturierung in ColumnFamilies (analog SQL: Table)
• Persistenz: n * SSTable / ColumnFamily
• Caching pro ColumnFamily:
• Scan Cache: Index über Spalten in SSTable
• Block Cache: Ganze Zeile im RAM
13
Cassandra Architektur
column1 column2
row-key-1 x
row-key-2 y
Theoretische Grundlagen: Big Table Paper
RAM
RAM
14
Cassandra Architektur
API
(CQL/Thrift)
Cluster
(Dynamo)
Storage
(Big Table)
Node 1
API
(CQL/Thrift)
Cluster
(Dynamo)
Storage
(Big Table)
Node 2
API
(CQL/Thrift)
Cluster
(Dynamo)
Storage
(Big Table)
Node n
Client Request
Schichtenmodell
Daten
Gossip
• Partitioner entscheiden über Platzierung auf Node
• Murmur3Partitioner (MurmurHash), RandomPartitioner (MD5)
• Murmur3 Bereich: [-263, 263-1]
• Aufteilung des Bereichs in virtuelle Nodes
• Zuordnung von virtuellen Nodes zu “echten” Nodes
• Node 1 —> n virtueller Node
• Verschiedene Anzahl von virtuellen Nodes möglich (Lastenverteilung)
• Erweiterung des Clusters = Minimale Daten-Neuverteilung
15
Cassandra Architektur
Consistent Hashing und Virtual Nodes
16
Cassandra Architektur
Virtual Nodes
Node
Anzahl
virtuelle Nodes
A 256
B 256
512
A
B
Hashes pro virtueller Node = 264/512
17
Cassandra Architektur
Virtual Nodes
17
Node
Anzahl
virtuelle Nodes
A 256
B 256
C 256
768
A
C
Hashes pro virtueller Node = 264/768
B
17
Cassandra Architektur
Virtual Nodes
17
Node
Anzahl
virtuelle Nodes
A 256
B 256
C 256
768
A
C
Hashes pro virtueller Node = 264/768
B
Daten
Daten
18
Cassandra Architektur
Virtual Nodes
Beispiel: nodetool status
1. Schreib-Anfrage zuerst in ein Commit Log
2. In-Memory Speicherung in Memtables
3. Frequentielle Persistenz in SSTables (Flush)
4. Asynchrone frequentielle Komprimierung (Compaction)
19
Cassandra Architektur
Lokales Schreiben
RAM
HDD
Daten
Commitlog
Memtables
SSTables
Flush
Komprimierte
SSTable
Compaction
• Apache Cassandra
• Cassandra Architektur
• Daten-Replikation
• Konsistenz
• Sicherheit
• Demo: Daten Modellierung mit CQL
20
Agenda
• Design: Festplatten werden ausfallen
• Lösung: Replication Factor (RF = N) pro Keyspace
• Strategien bestimmen Ort der Kopien (Replica Set)
• SimpleStrategy:
• Einfache Verteilung von N-1 Kopien auf die nächsten Nodes im Ring
• NetworkTopologyStrategy:
• Zuordnung der Nodes zu Datacenter (DC) und Rack
• Verteilung von N-1 Kopien unter Beachtung der Netzwerk Topology
• Vermeidung der Speicherung von Kopien im selben Rack
• Verteilung der Kopien auf weitere Datencenter
21
Daten-Replikation
Übersicht
• Beispiel: SimpleStrategy (RF = 2)
22
Daten-Replikation
A
D B
C
Daten
Simple Strategy
Coordinator Node
• Beispiel: SimpleStrategy (RF = 2)
22
Daten-Replikation
A
D B
C
Daten
Daten
Kopie
nächster Node
in Uhrzeigerrichtung
Simple Strategy
Coordinator Node
• Beispiel: NetworkTopologyStrategy (RF = DC1:2)
23
Daten-Replikation
A
D B
C
Daten
DC1
Rack 1 Rack 2
A C
B D
NetworkTopologyStrategy
Coordinator Node
• Beispiel: NetworkTopologyStrategy (RF = DC1:2)
23
Daten-Replikation
A
D B
C
Daten
Daten
Kopie
DC1
Rack 1 Rack 2
A C
B D
nächster Node
im anderen Rack
NetworkTopologyStrategy
Coordinator Node
• Beispiel: NetworkTopologyStrategy (RF = DC1:2, DC2:2)
24
Daten-Replikation
Daten
A
D B
C
DC1 DC2
Rack 1 Rack 2 Rack 1 Rack2
A C E G
B D F H
NetworkTopologyStrategy
E
H F
G
DC1 DC2
Coordinator Node
• Beispiel: NetworkTopologyStrategy (RF = DC1:2, DC2:2)
24
Daten-Replikation
Daten
A
D B
C
DC1 DC2
Rack 1 Rack 2 Rack 1 Rack2
A C E G
B D F H
NetworkTopologyStrategy
E
H F
G
DC1 DC2
Coordinator Node
• Hinted Handoff
• Kurzfristige Lösung zur Wiederherstellung von Daten
• Bei Ausfall eines Nodes “merkt” sich ein anderer Node die Daten
• Wenn Node wieder verfügbar ist werden gemerkte Daten geschrieben
25
Daten-Replikation
Daten
A
D B
C
Ausfall Replica
Set
Ausfall eines Nodes
Coordinator Node
• Hinted Handoff
• Kurzfristige Lösung zur Wiederherstellung von Daten
• Bei Ausfall eines Nodes “merkt” sich ein anderer Node die Daten
• Wenn Node wieder verfügbar ist werden gemerkte Daten geschrieben
25
Daten-Replikation
Daten
A
D B
C
Ausfall Replica
Set
Daten
Daten:Node A
Ausfall eines Nodes
Coordinator Node
X
• Hinted Handoff
• Kurzfristige Lösung zur Wiederherstellung von Daten
• Bei Ausfall eines Nodes “merkt” sich ein anderer Node die Daten
• Wenn Node wieder verfügbar ist werden gemerkte Daten geschrieben
25
Daten-Replikation
Daten
A
D B
C
Ausfall Replica
Set
Daten
Daten:Node A
Online
B
C
Replica
Set
A
D
Ausfall eines Nodes
Coordinator Node
X Daten
• Manuelle Reparatur
• Langfristige Lösung zur Wiederherstellung von Daten
• Reparatur mit Hilfe des lokalen Werkzeugs “nodetool”
• Last gleichmäßig auf alle Nodes aus Replica Set verteilt
26
Daten-Replikation
B
C
Replica Set
A
Online
Daten
D
Ausfall eines Nodes
#NodeA:~ nodetool repair
Daten
• Apache Cassandra
• Cassandra Architektur
• Daten-Replikation
• Konsistenz
• Sicherheit
• Demo: Daten Modellierung mit CQL
27
Agenda
• Konzept: Eventuell Konsistent (Eventual Consistency)
• Konfigurierbare Anforderungen an Konsistenz pro Request
• Lesen, Schreiben (Updaten, Löschen)
• Lesen: Anzahl der Nodes die kontaktiert werden
• Schreiben: Anzahl der Nodes bei dehnen Schreiben erfolgreich
28
Konsistenz
Übersicht
Level Erläuterung
ALL
Alle Nodes aus einem Replica Set
müssen antworten
QUORUM
Die Mehrheit der Nodes aus
einem Replica Set müssen
antworten
ONE
Mindestens ein Node aus einem
Replica Set muss antworten
• Beispiel: Schreiben, Consistency Level = ONE
• Antwort eines Nodes wird abgewartet
• Gesamtlaufzeit = 1ms
29
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
• Beispiel: Schreiben, Consistency Level = ONE
• Antwort eines Nodes wird abgewartet
• Gesamtlaufzeit = 1ms
29
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
• Beispiel: Schreiben, Consistency Level = ONE
• Antwort eines Nodes wird abgewartet
• Gesamtlaufzeit = 1ms
29
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
1ms
20ms
3ms
• Beispiel: Schreiben, Consistency Level = QUORUM
• Antworten der Mehrheit Nodes werden 

abgewartet
• Gesamtlaufzeit = 3ms
30
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
• Beispiel: Schreiben, Consistency Level = QUORUM
• Antworten der Mehrheit Nodes werden 

abgewartet
• Gesamtlaufzeit = 3ms
30
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
• Beispiel: Schreiben, Consistency Level = QUORUM
• Antworten der Mehrheit Nodes werden 

abgewartet
• Gesamtlaufzeit = 3ms
30
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
1ms
20ms
3ms
• Beispiel: Schreiben, Consistency Level = ALL
• Antworten aller Nodes werden abgewartet
• Ausfall eines Replika-Nodes

= Kein Schreiben möglich
• Gesamtlaufzeit = 20ms
31
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
• Beispiel: Schreiben, Consistency Level = ALL
• Antworten aller Nodes werden abgewartet
• Ausfall eines Replika-Nodes

= Kein Schreiben möglich
• Gesamtlaufzeit = 20ms
31
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
• Beispiel: Schreiben, Consistency Level = ALL
• Antworten aller Nodes werden abgewartet
• Ausfall eines Replika-Nodes

= Kein Schreiben möglich
• Gesamtlaufzeit = 20ms
31
Konsistenz
Schreiben
A
D B
C
Data
Replica Set
1ms
20ms
3ms
• Beispiel: Lesen, Consistency Level = ONE
• Ein Node wird kontaktiert
• Auswahl des Nodes je nach Auslastung
• Gossip liefert Information über

Auslastung
32
Konsistenz
Lesen
A
D B
C
Anfrage
Replica Set
• Beispiel: Lesen, Consistency Level = ONE
• Ein Node wird kontaktiert
• Auswahl des Nodes je nach Auslastung
• Gossip liefert Information über

Auslastung
32
Konsistenz
Lesen
A
D B
C
Anfrage
Replica Set
• Beispiel: Lesen, Consistency Level = ONE
• Ein Node wird kontaktiert
• Auswahl des Nodes je nach Auslastung
• Gossip liefert Information über

Auslastung
32
Konsistenz
Lesen
A
D B
C
Anfrage
Replica Set
4ms
Data
• Beispiel: Lesen, Consistency Level = QUORUM
• Mehrheit der Nodes wird kontaktiert
• Eine Daten Anfrage
• Rest sind Digest Anfragen
• Bei Inkonsistenz “read-repair”
33
Konsistenz
Lesen
A
D B
C
Anfrage
Replica Set
• Beispiel: Lesen, Consistency Level = QUORUM
• Mehrheit der Nodes wird kontaktiert
• Eine Daten Anfrage
• Rest sind Digest Anfragen
• Bei Inkonsistenz “read-repair”
33
Konsistenz
Lesen
A
D B
C
Anfrage
Replica Set
Digest Request
Data Request
• Beispiel: Lesen, Consistency Level = QUORUM
• Mehrheit der Nodes wird kontaktiert
• Eine Daten Anfrage
• Rest sind Digest Anfragen
• Bei Inkonsistenz “read-repair”
33
Konsistenz
Lesen
A
D B
C
Anfrage
Replica Set
10ms
Data
Digest Request
Data Request
Hash(Data)
6ms
34
Konsistenz
Kompromiss
Latenz Konsistenz
Quorum
35
Konsistenz
Kompromiss
Latenz Konsistenz
ALL
36
Konsistenz
Kompromiss
Latenz Konsistenz
ONE
• Apache Cassandra
• Cassandra Architektur
• Daten-Replikation
• Konsistenz
• Sicherheit
• Demo: Daten Modellierung mit CQL
37
Agenda
• Authentifikation
• Wer darf sich zu einem Node verbinden
• Standardmäßig nicht aktiviert (AllowAllAuthenticator)
• Einfache Benutzer/Passwort Authentifikation konfigurierbar
(PasswordAuthenticator)
• Erweitert: Eigener Authentifikator (Erweiterung Interface IAuthenticator)
• Authorisierung
• Auf was (Keyspaces, Tabellen) darf man auf einem Node zugreifen
• Standardmäßig nicht aktiviert (AllowAllAuthorizer)
• “Object Permission” Authorisierung konfigurierbar (CassandraAuthorizer)
• Erweitert: Eigene Authorisierung (Erweiterung Interface IAuthorizer)
38
Sicherheit
• Client zu Node Verschlüsselung
• Standardmäßig deaktiviert
• Verschlüsselung über SSL konfigurierbar
• Voraussetzung (auch für Node zu Node):
• Erstellung von Zertifikaten auf allen Nodes
• Verteilung der öffentlich Schlüssel auf alle Nodes
• Client Unterstützung
• Node zu Node Verschlüsselung
• Standardmäßig deaktiviert
• Für verschiedene Ebenen konfigurierbar
• ALL, NONE, DC, RACK
39
Sicherheit
• Apache Cassandra
• Cassandra Architektur
• Daten-Replikation
• Konsistenz
• Sicherheit
• Demo: Daten Modellierung mit CQL
40
Agenda
• http://static.googleusercontent.com/media/research.google.com/
de//archive/bigtable-osdi06.pdf
• http://www.allthingsdistributed.com/files/amazon-dynamo-
sosp2007.pdf
• https://twitter.com//levwalkin/status/510197979542614016/photo/1
• http://www.infoq.com/news/2014/10/netflix-cassandra
• http://www.datastax.com/documentation/cassandra/2.0/cassandra/
gettingStartedCassandraIntro.html
41
Quellen
• http://pixabay.com/static/uploads/photo/2012/04/13/01/23/
key-31667_640.png
• http://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/
Cassandra_logo.svg/2000px-Cassandra_logo.svg.png
42
Bild Quellen
43
Fragen?

Mais conteúdo relacionado

Mais procurados

What CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBDWhat CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBD
ShapeBlue
 
Finding Your Way in Container Security
Finding Your Way in Container SecurityFinding Your Way in Container Security
Finding Your Way in Container Security
Ksenia Peguero
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
RX-M Enterprises LLC
 

Mais procurados (20)

What CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBDWhat CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBD
 
Cassandra and Riak at BestBuy.com
Cassandra and Riak at BestBuy.comCassandra and Riak at BestBuy.com
Cassandra and Riak at BestBuy.com
 
Cassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patternsCassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patterns
 
Parallel Running Automation Solution with Docker, Jenkins and Zalenium
Parallel Running Automation Solution with Docker, Jenkins and ZaleniumParallel Running Automation Solution with Docker, Jenkins and Zalenium
Parallel Running Automation Solution with Docker, Jenkins and Zalenium
 
Thiết kế hệ thống E-Commerce yêu cầu mở rộng
Thiết kế hệ thống E-Commerce yêu cầu mở rộngThiết kế hệ thống E-Commerce yêu cầu mở rộng
Thiết kế hệ thống E-Commerce yêu cầu mở rộng
 
Arquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-ServidorArquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-Servidor
 
Common Patterns of Multi Data-Center Architectures with Apache Kafka
Common Patterns of Multi Data-Center Architectures with Apache KafkaCommon Patterns of Multi Data-Center Architectures with Apache Kafka
Common Patterns of Multi Data-Center Architectures with Apache Kafka
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container Security
 
SQL Server Clustering Part1
SQL Server Clustering Part1SQL Server Clustering Part1
SQL Server Clustering Part1
 
Kinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vnKinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vn
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Finding Your Way in Container Security
Finding Your Way in Container SecurityFinding Your Way in Container Security
Finding Your Way in Container Security
 
11st Legacy Application의 Spring Cloud 기반 MicroServices로 전환 개발 사례
11st Legacy Application의 Spring Cloud 기반 MicroServices로 전환 개발 사례11st Legacy Application의 Spring Cloud 기반 MicroServices로 전환 개발 사례
11st Legacy Application의 Spring Cloud 기반 MicroServices로 전환 개발 사례
 
Kubernetes Architecture v1.x
Kubernetes Architecture v1.xKubernetes Architecture v1.x
Kubernetes Architecture v1.x
 
Cassandra NoSQL Tutorial
Cassandra NoSQL TutorialCassandra NoSQL Tutorial
Cassandra NoSQL Tutorial
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
 
Kafka Reliability - When it absolutely, positively has to be there
Kafka Reliability - When it absolutely, positively has to be thereKafka Reliability - When it absolutely, positively has to be there
Kafka Reliability - When it absolutely, positively has to be there
 
Kafka tutorial
Kafka tutorialKafka tutorial
Kafka tutorial
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete Tutorial
 

Destaque

xplosion & Exasol Vortrag Big Data Award 2012
xplosion & Exasol Vortrag Big Data Award 2012xplosion & Exasol Vortrag Big Data Award 2012
xplosion & Exasol Vortrag Big Data Award 2012
xplosion_de
 
6 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/26 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/2
Fabio Fumarola
 

Destaque (20)

Cassandra - Eine Einführung
Cassandra - Eine EinführungCassandra - Eine Einführung
Cassandra - Eine Einführung
 
Cassandra presentation at NoSQL
Cassandra presentation at NoSQLCassandra presentation at NoSQL
Cassandra presentation at NoSQL
 
Alfresco Day Roma 2015: Full Stack Load Testing
Alfresco Day Roma 2015: Full Stack Load TestingAlfresco Day Roma 2015: Full Stack Load Testing
Alfresco Day Roma 2015: Full Stack Load Testing
 
xplosion & Exasol Vortrag Big Data Award 2012
xplosion & Exasol Vortrag Big Data Award 2012xplosion & Exasol Vortrag Big Data Award 2012
xplosion & Exasol Vortrag Big Data Award 2012
 
MongoDB - Big Data mit Open Source
MongoDB - Big Data mit Open SourceMongoDB - Big Data mit Open Source
MongoDB - Big Data mit Open Source
 
Big Game Data - Event Tracking mit Storm, Kestrel und der Lambda Architektur ...
Big Game Data - Event Tracking mit Storm, Kestrel und der Lambda Architektur ...Big Game Data - Event Tracking mit Storm, Kestrel und der Lambda Architektur ...
Big Game Data - Event Tracking mit Storm, Kestrel und der Lambda Architektur ...
 
Website Tracking
Website TrackingWebsite Tracking
Website Tracking
 
Kenne Deine Kunden - Wie man mit Hilfe von Web-Analyse Umsätze steigern und F...
Kenne Deine Kunden - Wie man mit Hilfe von Web-Analyse Umsätze steigern und F...Kenne Deine Kunden - Wie man mit Hilfe von Web-Analyse Umsätze steigern und F...
Kenne Deine Kunden - Wie man mit Hilfe von Web-Analyse Umsätze steigern und F...
 
Real-Time-Analytics mit Spark und Cassandra
Real-Time-Analytics mit Spark und CassandraReal-Time-Analytics mit Spark und Cassandra
Real-Time-Analytics mit Spark und Cassandra
 
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
 
API-Industrie
API-IndustrieAPI-Industrie
API-Industrie
 
Big Data Bullshit Bingo
Big Data Bullshit BingoBig Data Bullshit Bingo
Big Data Bullshit Bingo
 
Big Data User Prediction: Siegfried Stepke, e-dialog
Big Data User Prediction: Siegfried Stepke, e-dialog Big Data User Prediction: Siegfried Stepke, e-dialog
Big Data User Prediction: Siegfried Stepke, e-dialog
 
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
 
6 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/26 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/2
 
Technologie und SEO: Cloud, Big Data und Mobile First angeschaut
Technologie und SEO: Cloud, Big Data und Mobile First angeschautTechnologie und SEO: Cloud, Big Data und Mobile First angeschaut
Technologie und SEO: Cloud, Big Data und Mobile First angeschaut
 
A NoSQL Summer - The Year After
A NoSQL Summer - The Year AfterA NoSQL Summer - The Year After
A NoSQL Summer - The Year After
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache Cassandra
 
Einführung Big Data
Einführung Big DataEinführung Big Data
Einführung Big Data
 
Big Data: Kunden auf der Spur
Big Data: Kunden auf der SpurBig Data: Kunden auf der Spur
Big Data: Kunden auf der Spur
 

Semelhante a Apache Cassandra - Einführung

OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
AWS Germany
 
Internet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLInternet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQL
FromDual GmbH
 

Semelhante a Apache Cassandra - Einführung (20)

Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-ComputingTipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
 
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
 
Title is loading ... Cache is cold.
Title is loading ... Cache is cold.Title is loading ... Cache is cold.
Title is loading ... Cache is cold.
 
Caching mit Spring Boot - Pain & Gain @ JCON22
Caching mit Spring Boot - Pain & Gain @ JCON22Caching mit Spring Boot - Pain & Gain @ JCON22
Caching mit Spring Boot - Pain & Gain @ JCON22
 
Tech Talk Cassandra
Tech Talk CassandraTech Talk Cassandra
Tech Talk Cassandra
 
openstack Übersicht @GPN15
openstack Übersicht @GPN15openstack Übersicht @GPN15
openstack Übersicht @GPN15
 
Streaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlStreaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der Wahl
 
Nosql Hintergründe und Anwendungen
Nosql Hintergründe und AnwendungenNosql Hintergründe und Anwendungen
Nosql Hintergründe und Anwendungen
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OS
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die CloudSQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
Cloud-native Applikationen
Cloud-native ApplikationenCloud-native Applikationen
Cloud-native Applikationen
 
DTN Routing Verfahren
DTN Routing VerfahrenDTN Routing Verfahren
DTN Routing Verfahren
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Hochleistungsspeichersysteme für Datenanalyse an der TU Dresden (Michael Kluge)
Hochleistungsspeichersysteme für Datenanalyse an der TU Dresden (Michael Kluge)Hochleistungsspeichersysteme für Datenanalyse an der TU Dresden (Michael Kluge)
Hochleistungsspeichersysteme für Datenanalyse an der TU Dresden (Michael Kluge)
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
 
Query Result Caching
Query Result CachingQuery Result Caching
Query Result Caching
 
Internet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLInternet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQL
 
NoSQL CGN: Riak (01/2012)
NoSQL CGN: Riak (01/2012)NoSQL CGN: Riak (01/2012)
NoSQL CGN: Riak (01/2012)
 

Apache Cassandra - Einführung

  • 1. Referent: Andreas Finke Sichere Systeme Prof. Dr. Christoph Pleier WS2014/15 15. Januar 2015 Hochverfügbares NoSQL Datenbank System
  • 2. • Aspekte IT-Sicherheit • Verfügbarkeit • Datensicherheit • Einsatz von Cassandra im Unternehmen seit 2012 • Finanzumfeld (Kurse, Charts) • Vorher proprietäre Lösung • 600 Schreibzugriffe/Sek • Cassandra • 26.000 Schreibzugriffe/Sek 2 Motivation http://keyinvest-ch.ubs.com/marktuebersicht/ubs-deri-risk-indikator
  • 3. • Apache Cassandra • Cassandra Architektur • Daten-Replikation • Konsistenz • Sicherheit • Demo: Daten Modellierung mit CQL 3 Agenda
  • 4. • Verteilte spaltenorientierte NoSQL Datenbank • Entwickelt bei Facebook • Open Source: 2008 (github.com/apache/cassandra) • Aktuelle Version: 2.1.2 (Stand: 13.Januar 2015) • Kein Master = Gleichwertige Nodes • API • CQL (Cassandra Query Language) • Apache Thrift • Treiber • Java, Python, Ruby, NodeJS, C# 4 Apache Cassandra A D B C Cassandra Node r/w r/w
  • 5. • SQL: Structured Query Language • Syntax für Abfragen auf relationale Datenbanken • Beispiele: MySql, MsSQL Server, Postgres • NoSQL: Not Only SQL (seit 2009) • Sammelbegriff für nicht relationale Datenbanken • Weitere Unterteilungen 5 Exkurs: NoSQL Typ Beispiele Spaltenorientiert Cassandra, HBase Dokumentenbasiert MongoDB, CouchDB Key-Value Store Redis, Memcache Graph DB Neo4j
  • 6. • Bietet horizontale lineare Skalierbarkeit • Größte produktive Installationen • Apple: 75T Nodes, 10 PB, 1000+ Cluster, Mehrere Millionen Op/Sek • Netflix: 2,7T Nodes, 420 TB, über 1 Billion Op/Tag • Easou: 270 Nodes, 300 TB, 800 Millionen Anfragen/Tag • Ebay: 100 Nodes, 250 TB 6 Apache Cassandra http://www.datastax.com/documentation/cassandra/2.0/cassandra/images/intro_cassandra.png
  • 9. • Gegründet: April 2010 von Jonathan Ellis • Enterprise Support für Apache Cassandra • ~80% der Commits auf Github • DataStax Enterprise • Apache Cassandra + Extra features • Datastax Community (frei verfügbar) • OpsCenter (GUI) • DevCenter (Daten Modellierung) 9 Apache Cassandra http://www.datastax.com/wp-content/themes/datastax-2013/images/opscenter/opsc4-ring-view-c-hadoop-solr.jpg Datastax
  • 10. • Apache Cassandra • Cassandra Architektur • Daten-Replikation • Konsistenz • Sicherheit • Demo: Daten Modellierung mit CQL 10 Agenda
  • 11. • Gesetzmäßigkeit für verteilte Systeme (2002 MIT/Boston) • Cassandra • bietet A + P • bessere Konsistenz gegen höhere Latenz 11 Cassandra Architektur Konsistenz Verfügbarkeit Partitionstoleranz C A P Ein verteiltes System kann nur zwei der drei Eigenschaften Konsistenz, Verfügbarkeit sowie Partitionstoleranz zur selben Zeit gewährleisten Theoretische Grundlagen: CAP - Theorem
  • 12. • Quelle: Amazon (Oktober 2007) • Problem: Notwendigkeit für ~100% Verfügbarkeit • Lösung: • Partitionierung der Daten auf 1-n gleichwertige Nodes (masterless) • Gleichmäßige Verteilung via Consistent Hashing • Hohe Verfügbarkeit mittels n * Replikation der Daten • Intra-Cluster Kommunikations Protokoll (Gossip) 12 Cassandra Architektur “[…] even if disks are failing, network routes are flapping, or data centers are being destroyed by tornados […]” Theoretische Grundlagen: Dynamo Paper
  • 13. • Quelle: Google (November 2006) • Problem: Skalierung von massiven Datenmengen (PB) • Lösung: • Einfaches Datenmodell: row-key—> columns (keine Relationen) • Logische Strukturierung in ColumnFamilies (analog SQL: Table) • Persistenz: n * SSTable / ColumnFamily • Caching pro ColumnFamily: • Scan Cache: Index über Spalten in SSTable • Block Cache: Ganze Zeile im RAM 13 Cassandra Architektur column1 column2 row-key-1 x row-key-2 y Theoretische Grundlagen: Big Table Paper
  • 14. • Quelle: Google (November 2006) • Problem: Skalierung von massiven Datenmengen (PB) • Lösung: • Einfaches Datenmodell: row-key—> columns (keine Relationen) • Logische Strukturierung in ColumnFamilies (analog SQL: Table) • Persistenz: n * SSTable / ColumnFamily • Caching pro ColumnFamily: • Scan Cache: Index über Spalten in SSTable • Block Cache: Ganze Zeile im RAM 13 Cassandra Architektur column1 column2 row-key-1 x row-key-2 y Theoretische Grundlagen: Big Table Paper RAM
  • 15. • Quelle: Google (November 2006) • Problem: Skalierung von massiven Datenmengen (PB) • Lösung: • Einfaches Datenmodell: row-key—> columns (keine Relationen) • Logische Strukturierung in ColumnFamilies (analog SQL: Table) • Persistenz: n * SSTable / ColumnFamily • Caching pro ColumnFamily: • Scan Cache: Index über Spalten in SSTable • Block Cache: Ganze Zeile im RAM 13 Cassandra Architektur column1 column2 row-key-1 x row-key-2 y Theoretische Grundlagen: Big Table Paper RAM RAM
  • 16. 14 Cassandra Architektur API (CQL/Thrift) Cluster (Dynamo) Storage (Big Table) Node 1 API (CQL/Thrift) Cluster (Dynamo) Storage (Big Table) Node 2 API (CQL/Thrift) Cluster (Dynamo) Storage (Big Table) Node n Client Request Schichtenmodell Daten Gossip
  • 17. • Partitioner entscheiden über Platzierung auf Node • Murmur3Partitioner (MurmurHash), RandomPartitioner (MD5) • Murmur3 Bereich: [-263, 263-1] • Aufteilung des Bereichs in virtuelle Nodes • Zuordnung von virtuellen Nodes zu “echten” Nodes • Node 1 —> n virtueller Node • Verschiedene Anzahl von virtuellen Nodes möglich (Lastenverteilung) • Erweiterung des Clusters = Minimale Daten-Neuverteilung 15 Cassandra Architektur Consistent Hashing und Virtual Nodes
  • 18. 16 Cassandra Architektur Virtual Nodes Node Anzahl virtuelle Nodes A 256 B 256 512 A B Hashes pro virtueller Node = 264/512
  • 19. 17 Cassandra Architektur Virtual Nodes 17 Node Anzahl virtuelle Nodes A 256 B 256 C 256 768 A C Hashes pro virtueller Node = 264/768 B
  • 20. 17 Cassandra Architektur Virtual Nodes 17 Node Anzahl virtuelle Nodes A 256 B 256 C 256 768 A C Hashes pro virtueller Node = 264/768 B Daten Daten
  • 22. 1. Schreib-Anfrage zuerst in ein Commit Log 2. In-Memory Speicherung in Memtables 3. Frequentielle Persistenz in SSTables (Flush) 4. Asynchrone frequentielle Komprimierung (Compaction) 19 Cassandra Architektur Lokales Schreiben RAM HDD Daten Commitlog Memtables SSTables Flush Komprimierte SSTable Compaction
  • 23. • Apache Cassandra • Cassandra Architektur • Daten-Replikation • Konsistenz • Sicherheit • Demo: Daten Modellierung mit CQL 20 Agenda
  • 24. • Design: Festplatten werden ausfallen • Lösung: Replication Factor (RF = N) pro Keyspace • Strategien bestimmen Ort der Kopien (Replica Set) • SimpleStrategy: • Einfache Verteilung von N-1 Kopien auf die nächsten Nodes im Ring • NetworkTopologyStrategy: • Zuordnung der Nodes zu Datacenter (DC) und Rack • Verteilung von N-1 Kopien unter Beachtung der Netzwerk Topology • Vermeidung der Speicherung von Kopien im selben Rack • Verteilung der Kopien auf weitere Datencenter 21 Daten-Replikation Übersicht
  • 25. • Beispiel: SimpleStrategy (RF = 2) 22 Daten-Replikation A D B C Daten Simple Strategy Coordinator Node
  • 26. • Beispiel: SimpleStrategy (RF = 2) 22 Daten-Replikation A D B C Daten Daten Kopie nächster Node in Uhrzeigerrichtung Simple Strategy Coordinator Node
  • 27. • Beispiel: NetworkTopologyStrategy (RF = DC1:2) 23 Daten-Replikation A D B C Daten DC1 Rack 1 Rack 2 A C B D NetworkTopologyStrategy Coordinator Node
  • 28. • Beispiel: NetworkTopologyStrategy (RF = DC1:2) 23 Daten-Replikation A D B C Daten Daten Kopie DC1 Rack 1 Rack 2 A C B D nächster Node im anderen Rack NetworkTopologyStrategy Coordinator Node
  • 29. • Beispiel: NetworkTopologyStrategy (RF = DC1:2, DC2:2) 24 Daten-Replikation Daten A D B C DC1 DC2 Rack 1 Rack 2 Rack 1 Rack2 A C E G B D F H NetworkTopologyStrategy E H F G DC1 DC2 Coordinator Node
  • 30. • Beispiel: NetworkTopologyStrategy (RF = DC1:2, DC2:2) 24 Daten-Replikation Daten A D B C DC1 DC2 Rack 1 Rack 2 Rack 1 Rack2 A C E G B D F H NetworkTopologyStrategy E H F G DC1 DC2 Coordinator Node
  • 31. • Hinted Handoff • Kurzfristige Lösung zur Wiederherstellung von Daten • Bei Ausfall eines Nodes “merkt” sich ein anderer Node die Daten • Wenn Node wieder verfügbar ist werden gemerkte Daten geschrieben 25 Daten-Replikation Daten A D B C Ausfall Replica Set Ausfall eines Nodes Coordinator Node
  • 32. • Hinted Handoff • Kurzfristige Lösung zur Wiederherstellung von Daten • Bei Ausfall eines Nodes “merkt” sich ein anderer Node die Daten • Wenn Node wieder verfügbar ist werden gemerkte Daten geschrieben 25 Daten-Replikation Daten A D B C Ausfall Replica Set Daten Daten:Node A Ausfall eines Nodes Coordinator Node X
  • 33. • Hinted Handoff • Kurzfristige Lösung zur Wiederherstellung von Daten • Bei Ausfall eines Nodes “merkt” sich ein anderer Node die Daten • Wenn Node wieder verfügbar ist werden gemerkte Daten geschrieben 25 Daten-Replikation Daten A D B C Ausfall Replica Set Daten Daten:Node A Online B C Replica Set A D Ausfall eines Nodes Coordinator Node X Daten
  • 34. • Manuelle Reparatur • Langfristige Lösung zur Wiederherstellung von Daten • Reparatur mit Hilfe des lokalen Werkzeugs “nodetool” • Last gleichmäßig auf alle Nodes aus Replica Set verteilt 26 Daten-Replikation B C Replica Set A Online Daten D Ausfall eines Nodes #NodeA:~ nodetool repair Daten
  • 35. • Apache Cassandra • Cassandra Architektur • Daten-Replikation • Konsistenz • Sicherheit • Demo: Daten Modellierung mit CQL 27 Agenda
  • 36. • Konzept: Eventuell Konsistent (Eventual Consistency) • Konfigurierbare Anforderungen an Konsistenz pro Request • Lesen, Schreiben (Updaten, Löschen) • Lesen: Anzahl der Nodes die kontaktiert werden • Schreiben: Anzahl der Nodes bei dehnen Schreiben erfolgreich 28 Konsistenz Übersicht Level Erläuterung ALL Alle Nodes aus einem Replica Set müssen antworten QUORUM Die Mehrheit der Nodes aus einem Replica Set müssen antworten ONE Mindestens ein Node aus einem Replica Set muss antworten
  • 37. • Beispiel: Schreiben, Consistency Level = ONE • Antwort eines Nodes wird abgewartet • Gesamtlaufzeit = 1ms 29 Konsistenz Schreiben A D B C Data Replica Set
  • 38. • Beispiel: Schreiben, Consistency Level = ONE • Antwort eines Nodes wird abgewartet • Gesamtlaufzeit = 1ms 29 Konsistenz Schreiben A D B C Data Replica Set
  • 39. • Beispiel: Schreiben, Consistency Level = ONE • Antwort eines Nodes wird abgewartet • Gesamtlaufzeit = 1ms 29 Konsistenz Schreiben A D B C Data Replica Set 1ms 20ms 3ms
  • 40. • Beispiel: Schreiben, Consistency Level = QUORUM • Antworten der Mehrheit Nodes werden 
 abgewartet • Gesamtlaufzeit = 3ms 30 Konsistenz Schreiben A D B C Data Replica Set
  • 41. • Beispiel: Schreiben, Consistency Level = QUORUM • Antworten der Mehrheit Nodes werden 
 abgewartet • Gesamtlaufzeit = 3ms 30 Konsistenz Schreiben A D B C Data Replica Set
  • 42. • Beispiel: Schreiben, Consistency Level = QUORUM • Antworten der Mehrheit Nodes werden 
 abgewartet • Gesamtlaufzeit = 3ms 30 Konsistenz Schreiben A D B C Data Replica Set 1ms 20ms 3ms
  • 43. • Beispiel: Schreiben, Consistency Level = ALL • Antworten aller Nodes werden abgewartet • Ausfall eines Replika-Nodes
 = Kein Schreiben möglich • Gesamtlaufzeit = 20ms 31 Konsistenz Schreiben A D B C Data Replica Set
  • 44. • Beispiel: Schreiben, Consistency Level = ALL • Antworten aller Nodes werden abgewartet • Ausfall eines Replika-Nodes
 = Kein Schreiben möglich • Gesamtlaufzeit = 20ms 31 Konsistenz Schreiben A D B C Data Replica Set
  • 45. • Beispiel: Schreiben, Consistency Level = ALL • Antworten aller Nodes werden abgewartet • Ausfall eines Replika-Nodes
 = Kein Schreiben möglich • Gesamtlaufzeit = 20ms 31 Konsistenz Schreiben A D B C Data Replica Set 1ms 20ms 3ms
  • 46. • Beispiel: Lesen, Consistency Level = ONE • Ein Node wird kontaktiert • Auswahl des Nodes je nach Auslastung • Gossip liefert Information über
 Auslastung 32 Konsistenz Lesen A D B C Anfrage Replica Set
  • 47. • Beispiel: Lesen, Consistency Level = ONE • Ein Node wird kontaktiert • Auswahl des Nodes je nach Auslastung • Gossip liefert Information über
 Auslastung 32 Konsistenz Lesen A D B C Anfrage Replica Set
  • 48. • Beispiel: Lesen, Consistency Level = ONE • Ein Node wird kontaktiert • Auswahl des Nodes je nach Auslastung • Gossip liefert Information über
 Auslastung 32 Konsistenz Lesen A D B C Anfrage Replica Set 4ms Data
  • 49. • Beispiel: Lesen, Consistency Level = QUORUM • Mehrheit der Nodes wird kontaktiert • Eine Daten Anfrage • Rest sind Digest Anfragen • Bei Inkonsistenz “read-repair” 33 Konsistenz Lesen A D B C Anfrage Replica Set
  • 50. • Beispiel: Lesen, Consistency Level = QUORUM • Mehrheit der Nodes wird kontaktiert • Eine Daten Anfrage • Rest sind Digest Anfragen • Bei Inkonsistenz “read-repair” 33 Konsistenz Lesen A D B C Anfrage Replica Set Digest Request Data Request
  • 51. • Beispiel: Lesen, Consistency Level = QUORUM • Mehrheit der Nodes wird kontaktiert • Eine Daten Anfrage • Rest sind Digest Anfragen • Bei Inkonsistenz “read-repair” 33 Konsistenz Lesen A D B C Anfrage Replica Set 10ms Data Digest Request Data Request Hash(Data) 6ms
  • 55. • Apache Cassandra • Cassandra Architektur • Daten-Replikation • Konsistenz • Sicherheit • Demo: Daten Modellierung mit CQL 37 Agenda
  • 56. • Authentifikation • Wer darf sich zu einem Node verbinden • Standardmäßig nicht aktiviert (AllowAllAuthenticator) • Einfache Benutzer/Passwort Authentifikation konfigurierbar (PasswordAuthenticator) • Erweitert: Eigener Authentifikator (Erweiterung Interface IAuthenticator) • Authorisierung • Auf was (Keyspaces, Tabellen) darf man auf einem Node zugreifen • Standardmäßig nicht aktiviert (AllowAllAuthorizer) • “Object Permission” Authorisierung konfigurierbar (CassandraAuthorizer) • Erweitert: Eigene Authorisierung (Erweiterung Interface IAuthorizer) 38 Sicherheit
  • 57. • Client zu Node Verschlüsselung • Standardmäßig deaktiviert • Verschlüsselung über SSL konfigurierbar • Voraussetzung (auch für Node zu Node): • Erstellung von Zertifikaten auf allen Nodes • Verteilung der öffentlich Schlüssel auf alle Nodes • Client Unterstützung • Node zu Node Verschlüsselung • Standardmäßig deaktiviert • Für verschiedene Ebenen konfigurierbar • ALL, NONE, DC, RACK 39 Sicherheit
  • 58. • Apache Cassandra • Cassandra Architektur • Daten-Replikation • Konsistenz • Sicherheit • Demo: Daten Modellierung mit CQL 40 Agenda
  • 59. • http://static.googleusercontent.com/media/research.google.com/ de//archive/bigtable-osdi06.pdf • http://www.allthingsdistributed.com/files/amazon-dynamo- sosp2007.pdf • https://twitter.com//levwalkin/status/510197979542614016/photo/1 • http://www.infoq.com/news/2014/10/netflix-cassandra • http://www.datastax.com/documentation/cassandra/2.0/cassandra/ gettingStartedCassandraIntro.html 41 Quellen