hujak nosql - mihovil rister
TRANSCRIPT
O MENI
Mihovil Rister, dipl.ing.el.
Software developer
Pet Minuta d.o.o.
Linked In:hr.linkedin.com/in/mihovilrister
PREGLED PREDAVANJA
Što je NoSQL ?
Odakle potreba?
Teorija
Glavni igrači
SQL vs NoSQL. Tko je bolji?
Očekivanja
Zaključak
ŠTO JE NOSQL?
NoSQL = Not only SQL Suprotnost ustaljenim rel. bazama Hype? – skepticizam je prisutan, ali NoSQL i nije
toliko nov Nije direktna zamjena RDBMS Alternativa ili nadopuna Izbjegavanje nepotrebne kompleksnosti Bijeg od „One size fits all” načina razmišljanja Rješenja za pohranu podataka prema DANAŠNJIM potrebama
Rješenja bez fiksne sheme
POTREBA ?
Relacijski model je star (Codd 1969) Pokriti nedostatke RDBMS za današnje potrebe Imati vrhunsku skalabilnost Efektivno raditi s ogromnom količinom podataka
(Big Data) Smanjiti kompleksnost i trošak razvoja s
jednostavnošću (izbaciti ORM, jeftinija rješenja) Veliki pokretač NoSQL-a je računarstvo u oblaku
(CLOUD) Prioritet su Dostupnost i Tolerancija na kvarove Općenito efektivan rad na svom commodity
hardware-u
TEORIJA
ACID (uglavnom RDBMS, no ne isključivo!) A – atomicitet. Ako jedan dio transakcije ne
uspije, niti će cijela transkacija. C – konzistentnost. Sva ograničenja moraju
biti zadovoljena da bi transakcija uspjela. I – izolacija. Druge operacije ne mogu vidjeti
transkaciju koja nije kompletirana. D – durabilnost. Kada je transakcija uspjela,
ona neće biti izgubljena. Perzistirana je.
TEORIJA
BASE (pretežito NoSQL baze) BASIC AVAILABILITY SOFT STATE EVENTUAL CONSISTENCY Baza je dostupna u osnovi cijelo vrijeme
(BA), ne mora biti konzistentna cijelo vrijeme (S) ali će biti u nekom poznatom stanju s vremenom (E)
Apsolutna konzistentnost je glavni fokus RDBMS, ali ne NoSQL
TEORIJA
BASE svojstva su dijametralno suprotna od ACID. ACID :
- pesimističan - forsira konzistentnost na kraju svake operacije
BASE :- optimističan - prihvaća da će konzistentnost baze biti u promijenjivom stanju
U realnom svijetu, kako se nositi s time? To je izvedivo i dovodi do razina skalabilnosti koje
se ne mogu postići rješenjima s ACID svojstvima.
TEORIJA
CAP (Eric Brewer) Teorem 3 poželjne karakteristike distribuiranog sustava
C – konzistentnost. Svaki node u sustavu ima iste podatke (npr. replike su dobro sinkronizirane).
A – dostupnost. Sustav je dizajniran tako da je dostupan i radi iako (neki) nodovi ne rade.
P – particiona tolerantnost. Sustav će nastaviti raditi do potpunog mrežnog kvara.
Teorem kaže da robustan sustav koji želi dobro skalirati može imati SAMO 2 karakteristike
Bilo ACID ili BASE
TEORIJA
Prema CAP: ACID = C + P BASE = A + P A što je sa C + A ?
Google-ov Bigtable je takvo rješenje Što koristiti u vlastitim projektima? Razmisliti o zahtjevima aplikacije i
postupiti po njima. ACID + BASE kombinacija je također u igri.
GLAVNI NOSQL IGRAČI
NoSQL su u glavnom: Key-Value/Tuple baze Wide Column/Column oriented baze Document baze Object baze Graph baze XML, Multivalue i ostale
GLAVNI NOSQL IGRAČI
Kategorizacija i Usporedba
Tip Performanse
Skalabilnost
Fleksibilnost
Kompleksnost
Funkcionalnost
Key-Value Visoke Visoka Visoka Niska Ovisi
Column Visoke Visoka Umjerena Niska Minimalna
Document Visoke Visoka Visoka Niska Ovisi
Graph Ovisi Ovisi Visoka Visoka Teorija grafova
RDBMS Ovisi Ovisi Niska Umjerena Relacijska algebra
Categorization and Comparison by Scofield and Popescu
GLAVNI NOSQL IGRAČI
Key - Value baze: Redis Oracle NoSQL (ACID compliant) Riak Tokyo Cabinet/Tyrant Voldemort Amazon Dynamo Memcached ....
Linked-In, Amazon, BestBuy, Github, AOL,...
GLAVNI NOSQL IGRAČI
Wide Column/Column oriented baze Google BigTable Apache Cassandra Hadoop/Hbase/Hypertable Amazon SimpleDb
Amazon, Google, Facebook, RealNetworks..
GLAVNI NOSQL IGRAČI
Document baze CouchDB (ACID compliant) MongoDB TerraStore Lotus Notes (možda i najstariji) ...
Razne financijske i druge bitne institucije, vojska (U.S.), SAP, MTV, SourceForge...
GLAVNI NOSQL IGRAČI
Objektne baze db4O Versant Objectivity NEO ...
Siemens, Int Ag, China telecom, European Space Agency...
GLAVNI NOSQL IGRAČI
Graph baze: Neo4J InfiniteGraph VertexDb FlocDb
Twitter, Nortler, Ericson, Qualcomm, Siemens,...
SQL VS NOSQL. TKO JE BOLJI?
U osnovi, sve ovisi o potrebama aplikacije
Ništa nije crno i bijelo Ako je bitna konzistentnost tada
RDBMS Ako je bitna dostupnost, tolerannost na
kvarove i skalabilnost tada NoSQL A može i SQL+NoSQL (Best of both
worlds)
OČEKIVANJA
Od NoSQL baza se očekuje da budu: Elastične u skaliranju, ekonomične, jednostavne i
fleksibilne Izazovi koji stoje pred njima:
Zrelost Kvalitetnija podrška (komercijalna) Bolja pogodnost za analitiku i BI 0-administration (pomalo nerealno, ali opet...) Dostupna prihvatljiva ekspertiza (iskusni inženjeri i
admini) Robusniji i jači, ugrađeni sustavi sigurnosti
ZAKLJUČAK
NoSQL nije samo hype i mlada tehnologija Alternativa, uz poznata ograničenja i
mogućnosti RDBMS Killer ? – Nikako, više kao mlađi
brat/sestra koji polako stasava i preuzima dio tereta
Prihvaćenost je sve bolja i bit će kako NoSQL rješenja sazrijevaju
Skepticizam može biti opravdan, ali samo iz pravih, konkretnih razloga