Cassandra

Transkrypt

Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Cassandra
Paweª Róg
Pozna«, maj 2011
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Agenda
1
Wst¦p
2
Model Danych
3
Saklowalno±¢ + replikacja
4
Spójno±¢
5
Ograniczenia
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Agenda
1
Wst¦p
2
Model Danych
3
Saklowalno±¢ + replikacja
4
Spójno±¢
5
Ograniczenia
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
NoSQL
Inne podej±cie do systemu zarz¡dzania danymi
Dane nie wymagaj¡ okre±lonego schematu tabelarycznego
Unikaj¡ operacji join
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Po co?
Sªaba skalowalno±c tradycyjnych baz danych
Aplikacje webowe maj¡ w wi¦kszo±ci specyczne priorytety:
1
2
3
4
Szybki czas odpowiedzi
Skalowalno±¢ (niskim kosztem)
Wysoka dost¦pno±¢
Rozproszenie geograczne (wiele serwerowni)
P.Róg
Cassandra
CAP
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
PACELC
Partition -> Availability OR Consistency ELSE Latency OR
Consistency
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Agenda
1
Wst¦p
2
Model Danych
3
Saklowalno±¢ + replikacja
4
Spójno±¢
5
Ograniczenia
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Model danych
Column
SuperColumn
Row
Column Family
Keyspace
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Column
Atomowa jednostka danych
Skªada si¦ z nazwy(name) oraz warto±ci (value)
Example
struct Column {
1: binary name,
2: binary value,
3: i64
timestamp
}
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Super Column
Š¡czy typy Column w wi¦ksze struktury
Jako warto±¢ mog¡ przechowywa¢ inne typy Column
Example
{
}
name: "homeAddress",
value: {
street: {name: "street", value: "1234 x street", timestamp: 123456789},
city:
{name: "city", value: "san francisco", timestamp: 123456789},
zip:
{name: "zip", value: "94107", timestamp: 123456789}
}
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Column Family
Zawieraj¡ dowoln¡ ilo±¢ struktur Row
Przypominaj¡ tabele znane z baz relacyjnych
Posiadaj¡ nazw¦
Map¦ kluczy - odpowiednik identykatorów krotek
Dane w krotkach
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Keyspace
Najwy»sza jednostka informacji
Odpowiednik schematów w RDBMS
Zawieraj¡ ColumnFamilies
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Agenda
1
Wst¦p
2
Model Danych
3
Saklowalno±¢ + replikacja
4
Spójno±¢
5
Ograniczenia
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
DHT (1)
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
DHT (2)
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Rodzaje replikacji
Rack unaware
Ignorowanie zycznej topologii klastra
Replikacja na N − 1w¦zªów w pier±cieniu
Rack aware
Uwzgl¦dnia zyczn¡ topologi¦ klastra
Rozpoznawanie w¦zªów na podstawie ró»nic w IP
Ró»nica w drugim oktecie IP - inne centrum danych
Ró»nica w trzecim oktecie IP - inny rack
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Agenda
1
Wst¦p
2
Model Danych
3
Saklowalno±¢ + replikacja
4
Spójno±¢
5
Ograniczenia
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Zapisy i odczyty
Zapis
Commit Log
Tryb dopisywania
Sªu»y do odtwarzanie stanu po awarii
Memtable
SSTable
Odczyt
Jeden Row mo»e by¢ w kilku SSTable
Przeszukanie Memtable w obaprciu o klucz
Przeszukanie struktur SSTable
Struktruy SSTable s¡ okresowo ª¡czone - poprawa efektywno±ci
odczytów
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Gossip
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Gossip
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Gossip
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Spójno±¢ danych
ZERO
ONE
QUORUM
ALL
ANY
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Synchronizacja dost¦pu. Transakcje?
ZooKeeper (Hadoop) + Cages
Synchronizacja
Dystrybucja konguracji
Elekcja
Zab - atomic broadcast
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Agenda
1
Wst¦p
2
Model Danych
3
Saklowalno±¢ + replikacja
4
Spójno±¢
5
Ograniczenia
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Ograniczenia
Ograniczone zastosowania w systemach transakcyjnych
Eventualy consistent
Brak operacji grupowania
W niektórych zastosowaniach utrudniony dost¦p do danych
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Alternatywa
RDBMS
np. MySQL + HandlerSocket
inne rozwi¡zania KV oraz NoSQL
Redis
mongoDB
CouchDB
Memcache InnoDB
...
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Alternatywa
RDBMS
np. MySQL + HandlerSocket
inne rozwi¡zania KV oraz NoSQL
Redis
mongoDB
CouchDB
Memcache InnoDB
...
P.Róg
Cassandra
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
™ródªa
Podstawowe
http://wiki.apache.org/cassandra
Dietrich Featherston - Cassandra: Principles
Pomocnicze
http://wikipedia.org
http://zookeeper.apache.org/
http://code.google.com/p/cages/
http://yoshinorimatsunobu.blogspot.com/
search/label/handlersocket
http://blogs.innodb.com/wp/2011/04/
nosql-to-innodb-with-memcached/
P.Róg
Cassandra
and Application
Wst¦p
Model Danych
Saklowalno±¢ + replikacja
Spójno±¢
Ograniczenia
Dzi¦kuj¦
Dzi¦kuj¦ za uwag¦!
P.Róg
Cassandra