SlideShare ist ein Scribd-Unternehmen logo
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?

Weitere ähnliche Inhalte

Was ist angesagt?

Smart Memory ppt
Smart Memory pptSmart Memory ppt
Dell emc back up solution in azure cloud
Dell emc back up solution in azure cloud Dell emc back up solution in azure cloud
Dell emc back up solution in azure cloud
vipinvips
 
Monitoring Orange’s applications with the Elastic Stack
Monitoring Orange’s applications with the Elastic StackMonitoring Orange’s applications with the Elastic Stack
Monitoring Orange’s applications with the Elastic Stack
Elasticsearch
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
Amazon Web Services
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
Taras Matyashovsky
 
Amazon Redshift Deep Dive
Amazon Redshift Deep Dive Amazon Redshift Deep Dive
Amazon Redshift Deep Dive
Amazon Web Services
 
storage device
storage device storage device
storage device
victorypriya
 
Netezza vs Teradata vs Exadata
Netezza vs Teradata vs ExadataNetezza vs Teradata vs Exadata
Netezza vs Teradata vs Exadata
Asis Mohanty
 
Designing data intensive applications
Designing data intensive applicationsDesigning data intensive applications
Designing data intensive applications
Hemchander Sannidhanam
 
Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012
Jay Patel
 

Was ist angesagt? (10)

Smart Memory ppt
Smart Memory pptSmart Memory ppt
Smart Memory ppt
 
Dell emc back up solution in azure cloud
Dell emc back up solution in azure cloud Dell emc back up solution in azure cloud
Dell emc back up solution in azure cloud
 
Monitoring Orange’s applications with the Elastic Stack
Monitoring Orange’s applications with the Elastic StackMonitoring Orange’s applications with the Elastic Stack
Monitoring Orange’s applications with the Elastic Stack
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
Amazon Redshift Deep Dive
Amazon Redshift Deep Dive Amazon Redshift Deep Dive
Amazon Redshift Deep Dive
 
storage device
storage device storage device
storage device
 
Netezza vs Teradata vs Exadata
Netezza vs Teradata vs ExadataNetezza vs Teradata vs Exadata
Netezza vs Teradata vs Exadata
 
Designing data intensive applications
Designing data intensive applicationsDesigning data intensive applications
Designing data intensive applications
 
Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012
 

Andere mochten auch

Cassandra - Eine Einführung
Cassandra - Eine EinführungCassandra - Eine Einführung
Cassandra - Eine Einführung
Mikio L. Braun
 
Cassandra presentation at NoSQL
Cassandra presentation at NoSQLCassandra presentation at NoSQL
Cassandra presentation at NoSQL
Evan Weaver
 
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
Alfresco Software
 
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 2012xplosion_de
 
MongoDB - Big Data mit Open Source
MongoDB - Big Data mit Open SourceMongoDB - Big Data mit Open Source
MongoDB - Big Data mit Open Source
B1 Systems GmbH
 
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 ...
Volker Janz
 
Website Tracking
Website TrackingWebsite Tracking
Website Tracking
Oliver Lindner
 
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...
ITABS GmbH
 
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
Thomas Mann
 
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
Valentin Zacharias
 
API-Industrie
API-IndustrieAPI-Industrie
API-Industrie
kspichale
 
Big Data Bullshit Bingo
Big Data Bullshit BingoBig Data Bullshit Bingo
Big Data Bullshit Bingo
Danny Linden
 
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
e-dialog GmbH
 
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)?
Kai Wähner
 
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
 
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
Ralf Schwoebel
 
A NoSQL Summer - The Year After
A NoSQL Summer - The Year AfterA NoSQL Summer - The Year After
A NoSQL Summer - The Year After
MeMo News AG
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache Cassandra
DataStax
 
Einführung Big Data
Einführung Big DataEinführung Big Data
Einführung Big Data
Stefan Kasberger
 
Big Data: Kunden auf der Spur
Big Data: Kunden auf der SpurBig Data: Kunden auf der Spur
Big Data: Kunden auf der Spur
B2B Smartdata GmbH
 

Andere mochten auch (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
 

Ähnlich wie Apache Cassandra - Einführung

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
Jörn Dinkla
 
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
 
Title is loading ... Cache is cold.
Title is loading ... Cache is cold.Title is loading ... Cache is cold.
Title is loading ... Cache is cold.
QAware GmbH
 
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
QAware GmbH
 
Tech Talk Cassandra
Tech Talk CassandraTech Talk Cassandra
Tech Talk Cassandra
adesso AG
 
openstack Übersicht @GPN15
openstack Übersicht @GPN15openstack Übersicht @GPN15
openstack Übersicht @GPN15
m1no
 
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
Matthias Niehoff
 
Nosql Hintergründe und Anwendungen
Nosql Hintergründe und AnwendungenNosql Hintergründe und Anwendungen
Nosql Hintergründe und Anwendungen
Andy Whole
 
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
Ralf Ernst
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
AWS Germany
 
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
AWS Germany
 
Cloud-native Applikationen
Cloud-native ApplikationenCloud-native Applikationen
Cloud-native Applikationen
QAware GmbH
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
QAware GmbH
 
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)
data://disrupted®
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
Karin Patenge
 
Internet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLInternet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLFromDual GmbH
 
NoSQL CGN: Riak (01/2012)
NoSQL CGN: Riak (01/2012)NoSQL CGN: Riak (01/2012)
NoSQL CGN: Riak (01/2012)
Sebastian Cohnen
 

Ähnlich wie 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