Paweª Róg Pozna«, maj 2011
Agenda 1 2 3 4 5
Agenda 1 2 3 4 5
NoSQL Inne podej±cie do systemu zarz dzania danymi Dane nie wymagaj okre±lonego schematu tabelarycznego Unikaj operacji join
Po co? Sªaba skalowalno±c tradycyjnych baz danych Aplikacje webowe maj w wi kszo±ci specyczne priorytety: 1 Szybki czas odpowiedzi 2 Skalowalno± (niskim kosztem) 3 Wysoka dost pno± 4 Rozproszenie geograczne (wiele serwerowni)
CAP
PACELC Partition -> Availability OR Consistency ELSE Latency OR Consistency
Agenda 1 2 3 4 5
Model danych Column SuperColumn Row Column Family Keyspace
Column Example Atomowa jednostka danych Skªada si z nazwy(name) oraz warto±ci (value) struct Column { 1: binary name, 2: binary value, 3: i64 timestamp }
Super Column Example Š czy typy Column w wi ksze struktury Jako warto± mog przechowywa inne typy Column { } 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} }
Column Family Zawieraj dowoln ilo± struktur Row Przypominaj tabele znane z baz relacyjnych Posiadaj nazw Map kluczy - odpowiednik identykatorów krotek Dane w krotkach
Keyspace Najwy»sza jednostka informacji Odpowiednik schematów w RDBMS Zawieraj ColumnFamilies
Agenda 1 2 3 4 5
DHT (1)
DHT (2)
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
Agenda 1 2 3 4 5
Zapisy i odczyty Zapis Odczyt Commit Log Tryb dopisywania Sªu»y do odtwarzanie stanu po awarii Memtable SSTable 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
Gossip
Gossip
Gossip
danych ZERO ONE QUORUM ALL ANY
Synchronizacja dost pu. Transakcje? ZooKeeper (Hadoop) + Cages Synchronizacja Dystrybucja konguracji Elekcja Zab - atomic broadcast
Agenda 1 2 3 4 5
Ograniczone zastosowania w systemach transakcyjnych Eventualy consistent Brak operacji grupowania W niektórych zastosowaniach utrudniony dost p do danych
Alternatywa RDBMS np. MySQL + HandlerSocket inne rozwi zania KV oraz NoSQL Redis mongodb CouchDB Memcache InnoDB...
Alternatywa RDBMS np. MySQL + HandlerSocket inne rozwi zania KV oraz NoSQL Redis mongodb CouchDB Memcache InnoDB...
ródªa Podstawowe http://wiki.apache.org/cassandra Dietrich Featherston - : Principles and Application 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/
Dzi kuj Dzi kuj za uwag!