cassandra - javacro.files.wordpress.com€¦ · | cassandra mit ili proročanstvo? | 4 povijest...

22
| | Mit ili proročanstvo? 1 Cassandra Mit ili proročanstvo? Cassandra Mario Lukica Krešimir Jurasović Vedran Pugar 03.06.2013

Upload: others

Post on 22-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 1 Cassandra

Mit ili proročanstvo?

Cassandra

Mario Lukica

Krešimir Jurasović

Vedran Pugar 03.06.2013

Page 2: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 2 Cassandra

Kapsch – O kompaniji

03.06.2013

Page 3: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 3 Cassandra

Osnovne karakteristike

■ Otvoreni kod

■ Java

■ Distribuirana

■ Decentralizirana

■ Elastično skalabilna

■ Visoko dostupna, otporna na

greške

■ Podesivo konzistentna

■ Orijentirana prema stupcu

■ Time-to-live

■ Kompresija podataka

■ Ugrađena priručna memorija

03.06.2013

Page 4: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 4 Cassandra

Povijest

03.06.2013

2007

Facebook

2008

Dynamo BigTable

Google

Code

2009 2010 2011 2012

Apache

Incubator

Apache

Top-Level

v 0.6

2013

v 0.7

v 0.8

v 1.0 v 1.1 v 1.2

Page 5: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 5 Cassandra

Primjena

■Puno upisa

■ Upis aktivnosti korisnika ili uređaja

■ Korištenje društvenih mreža

■ Statistika aplikacije, nadzor, logiranje

■Geografska distribucija

■Replikacija između više podatkovnih centara ili zona dostupnosti

■ Podaci blizu klijenata

■Georedundancija

■Aplikacije u razvoju

■Model podataka bez sheme

03.06.2013

Page 6: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 6 Cassandra

Klijenti

03.06.2013

Page 7: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 7 Cassandra

CAP teorem

03.06.2013

■ Brewer, 2000

■Odaberi bilo koja 2 od:

■ Konzistencija

■ Dostupnost

■ Otpornost na razdiobu

■ Formalno dokazana

■Naglasak Cassandre

na dostupnost i

otpornost na razdiobu

Dostupnost

Konzistencija Otpornost

na

razdiobu

Page 8: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 8 Cassandra

Klaster

03.06.2013

0

75

50

25

Primjer tokena: 9786649238011895861830862952942418766

>76

1 - 25

26 - 50

51 - 75

■ Gossip

■ Replike

■ Replikacijski faktor

■ Strategija razmještaja

replika

■ Raspon tokena

■ Dijelitelj

■ Konzistentno raspršivanje

■ Snitch

Red 1

Red 2

RF = 3

Page 9: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 9 Cassandra

Topologija s više podatkovnih centara

03.06.2013

■ NetworkTopologyStrategy

0

75

50

25

1

76

51

26 PC 1 PC 2

RF = 3 RF = 2

Red 1

Page 10: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 10 Cassandra

Operacije

03.06.2013

RF = 3

Klijent

■ Koordinator

■ Razina konzistencije definirana

za svaku operaciju

■ Razina konzistencije definirana

u odnosu na replikacijski faktor –

ne ovisi o broju servera u

klasteru

■ Najnovija vrijednost stupca se

vraća kod čitanja

■ Popravak kod čitanja

■ Nagovještaj prijenosa

■ Redovno održavanje baze

Page 11: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 11 Cassandra

Razine konzistencije

■ ZERO (upis)

■ ANY (upis)

■ ONE

■ TWO

■ THREE

■ QUORUM

■ LOCAL_QUORUM

■ EACH_QUORUM

■ ALL

03.06.2013

Page 12: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 12 Cassandra

Jaka i odgođena konzistencija

Jaka konzistencija:

W + R > RF

Odgođena konzistencija:

W + R <= RF

W – broj upisa

R – broj čitanja

RF – replikacijski faktor

03.06.2013

Page 13: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 13 Cassandra

Pohrana podataka

03.06.2013

memorija

disk

CommitLog

Memtable

CF2

Memtable

CF1

- samo izmjene

- koristi se za sve CF-ove

- 1 po CF-u

SSTable-CF1-1 - više SSTable-ova za CF

- više datoteka za SSTable:

- podaci

- indeks

- bloom filter

- informacije o kompresiji

- statistički podaci

Klijent

1.

2.

asinhrono

Page 14: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 14 Cassandra

Data Model

03.06.2013

name1

value1

name2

value2

name3

value3

Stupac

rowId1

name1

value1

name4

value4 rowId2 Redak

name5

value51

name6

value61

rowId3

superColName1

name5

value52

name6

value62

superColName2

Super stupac

Obitelj stupaca

Keyspace

■ Kompozitni stupci

■ Vremenski ograničeni stupci

■ Stupci brojači

■ Tipovi podataka (Comparators &

Validators)

Page 15: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 15 Cassandra

cassandra-cli

CREATE COLUMN FAMILY users WITH comparator = UTF8Type AND key_validation_class=UTF8Type AND column_metadata = [ {column_name: full_name, validation_class: UTF8Type} {column_name: email, validation_class: UTF8Type} ];

SET users['ID1']['full_name']='Robert Jones'; SET users['ID1']['email']='[email protected]';

LIST users; GET users[utf8('ID1')][utf8('full_name')];

DEL users ['ID1']['email'];

03.06.2013

Page 16: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 16 Cassandra

CQL 3

CREATE TABLE tweets ( tweet_id bigint PRIMARY KEY, author varchar, body varchar );

CREATE INDEX tweets_author_idx ON tweets (author);

INSERT INTO tweets (tweet_id, author, body) VALUES (123, 'john', 'Checking up on Cassandra');

SELECT * FROM tweets WHERE author = 'john' ORDER BY tweet_id DESC LIMIT 50;

UPDATE tweets USING TTL 86400 SET body = 'Was checking up on Cassandra' WHERE author = 'john';

DELETE body FROM tweets WHERE author = 'john';

03.06.2013

Page 17: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 17 Cassandra

Klijenti

■ Java:

■ Hector, Astyanax, Pelops, Firebrand OCM, PlayOrm, Kundera, DataStax

Java Driver

■Scala

■ Cascal

■Python

■ Pycassa

■Ostali

■ Node.js, Clojure, .NET, Ruby, PHP, Perl, C++, Haskell, Erlang, Go

03.06.2013

Page 18: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 18 Cassandra

Monitoring i održavanje

■ JMX

■ nodetool

■Cassandra Cluster Admin

■OpsCenter (CE, EE)

03.06.2013

Page 19: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 19 Cassandra

Komercijalna rješenja

■DataStax

■ Community i Enterprise

■ Enterprise

■ Objedinjava podatke u realnom vremenu (Cassandra), analitiku (Hadoop)

i pretraživanje (Solr)

■ Podrška, trening, konzalting

■ OpsCenter

■Acunu

■ Real-Time Analytics

03.06.2013

Page 20: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 20 Cassandra

Zaključak

■Postoje opcije kod odabira baze podataka

■ SQL

■ NoSQL

■ NewSQL

■ ... još više opcija unutar svake obitelji baza

■Cassandra je jako dobar izbor u nekim situacijama

■Odaberite ovisno o zahtjevima aplikacije

03.06.2013

Page 21: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 21 Cassandra

Reference

■ Documentation : DataStax http://www.datastax.com/docs

■ Cassandra Wiki http://wiki.apache.org/cassandra/

■ git clone http://git-wip-us.apache.org/repos/asf/cassandra.git

■ Dynamo: Amazon’s Highly Available Key-value Store http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf

■ Bigtable: A Distributed Storage System for Structured Data http://research.google.com/archive/bigtable.html

■ Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-

Tolerant Web Services http://lpd.epfl.ch/sgilbert/pubs/BrewersConjecture-SigAct.pdf

03.06.2013

Page 22: Cassandra - javacro.files.wordpress.com€¦ · | Cassandra Mit ili proročanstvo? | 4 Povijest 03.06.2013 2007 Facebook 2008 2011 Dynamo BigTable Google Code 2009 2010 2012 Apache

| | Mit ili proročanstvo? 22 Cassandra

Hvala!

03.06.2013