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

Post on 22-Jul-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

| | Mit ili proročanstvo? 1 Cassandra

Mit ili proročanstvo?

Cassandra

Mario Lukica

Krešimir Jurasović

Vedran Pugar 03.06.2013

| | Mit ili proročanstvo? 2 Cassandra

Kapsch – O kompaniji

03.06.2013

| | 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

| | 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

| | 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

| | Mit ili proročanstvo? 6 Cassandra

Klijenti

03.06.2013

| | 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

| | 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

| | 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

| | 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

| | Mit ili proročanstvo? 11 Cassandra

Razine konzistencije

■ ZERO (upis)

■ ANY (upis)

■ ONE

■ TWO

■ THREE

■ QUORUM

■ LOCAL_QUORUM

■ EACH_QUORUM

■ ALL

03.06.2013

| | 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

| | 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

| | 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)

| | 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']='bobjones@gmail.com';

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

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

03.06.2013

| | 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

| | 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

| | Mit ili proročanstvo? 18 Cassandra

Monitoring i održavanje

■ JMX

■ nodetool

■Cassandra Cluster Admin

■OpsCenter (CE, EE)

03.06.2013

| | 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

| | 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

| | 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

| | Mit ili proročanstvo? 22 Cassandra

Hvala!

03.06.2013

top related