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