Nosql Movement Budai Steliana Gorea Alexandra Diana

13
Mişcarea NoSQL Gorea Alexandra Diana: alexandra.gorea@ infoiasi.ro Budăi Steliana:[email protected] 1 Ce este NoSQL si de ce a aprut? NoSql = noul trend influentat de Google si Amazon; “Bazele da date raţionale oferă prea mult, te forţeză să manipulezi obiectele astfel încat ele să se pottriveasca cu RDBMS. NoSQL îţi ofera tot ce ai nevoie”, citat din Jon Travis. Sistemele NoSql sunt sisteme de stocare de date nerelaţionale ce folosesc o modalitate cheie-valoare, ceeaa ce duce la o modalitate de indexare si obtinere a datelor mult mau simpla decat a unui limbaj de interogare sofisticat. La safarsitul anilor 90 si inceputul anului 2000, paginile web erau in special read- only. Patternurile de acces pentru aceste tipuri s-a inteles foarte bine la acele momente.Web-ul s-a dezvoltat din punct de vedere social, din ce in ce mai multi oameni au inceput sa publice, paginile devenind read- write.Majoritatea dezvoltatorilor web au facut acest lucru fara a se baza pe facilitatile oferite de bazele de date relationale, Spatiul media est plin de exemple de incercari de a scala RDBMS-urile. Twitter a incercat acest lucru de mai multe ori Google si Yahoo aveau in trecut 40,000 maşini MySQL pe care le-au inlocuit apoi cu MapReduce/GFS/HDFS MySpace avea la unmoment dat xx,000 servere Sql Microsoft. Facebook cheltuia $1,000,000 pe luna pentru hardware specializat pentru baze de date doar pentru a tine pozele

Transcript of Nosql Movement Budai Steliana Gorea Alexandra Diana

Page 1: Nosql Movement Budai Steliana Gorea Alexandra Diana

Mişcarea NoSQL

Gorea Alexandra Diana: alexandra.gorea@ infoiasi.ro

Budăi Steliana:[email protected]

1 Ce este NoSQL si de ce a aprut?

NoSql = noul trend influentat de Google si Amazon;“Bazele da date raţionale oferă prea mult, te forţeză să manipulezi obiectele astfel încat ele să se pottriveasca cu RDBMS. NoSQL îţi ofera tot ce ai nevoie”, citat din Jon Travis.

Sistemele NoSql sunt sisteme de stocare de date nerelaţionale ce folosesc o modalitate cheie-valoare, ceeaa ce duce la o modalitate de indexare si obtinere a datelor mult mau simpla decat a unui limbaj de interogare sofisticat.

La safarsitul anilor 90 si inceputul anului 2000, paginile web erau in special read- only. Patternurile de acces pentru aceste tipuri s-a inteles foarte bine la acele momente.Web-ul s-a dezvoltat din punct de vedere social, din ce in ce mai multi oameni au inceput sa publice, paginile devenind read- write.Majoritatea dezvoltatorilor web au facut acest lucru fara a se baza pe facilitatile oferite de bazele de date relationale, Spatiul media est plin de exemple de incercari de a scala RDBMS-urile.

Twitter a incercat acest lucru de mai multe ori Google si Yahoo aveau in trecut 40,000 maşini MySQL pe care le-au

inlocuit apoi cu MapReduce/GFS/HDFS MySpace avea la unmoment dat xx,000 servere Sql Microsoft. Facebook cheltuia $1,000,000 pe luna pentru hardware specializat pentru

baze de date doar pentru a tine pozele companie utilizeaza FPGA pentru a face accesul la disk mai rapid pentru

baze de date, din moment ce au atins limita de scalabilitate pe hardware

2 Cine a pornit această mişcare?

Developerii Java şi WebPentru a se translata aplicaţii Web sau Java intr-un format SQL este costisitor ca timp, spre deosebire de NoSQL car este mai rapidO parte din codul NoSQL , vine din RDB, cu permisiunea autorului acestuia W.HOOBS..

Page 2: Nosql Movement Budai Steliana Gorea Alexandra Diana

3 Proiecte NoSQL open source

3.1 Bazate pe sisteme de fisiere:

Amazon Dynamo/SimpleDB Google Big Table Casandra

3.2 Implementari bazate pe memorie

GigaSpaces Gemstone IBM extremeScale JBoss infinispan Oracle Coherence

4 Principii NoSql:

esecul este inevitabil: discul, masina sau reteaua va ceda, acest lucru nu trebuie evitat ci trebuie sa se incerce sa i se faca fata

reducerea impactul prin pastrarea a mai multe replici, distribuirea datelor reducerea constrangerilor consistentei(CAP Theorem) Folosirea Map/Reduce pentru agregare(interogari paralele, executarea

interogarii aproape de data) disponibilitatea ca o implementare in memorie a sistemelor de fisiere analize de performanta: Twitter ofera 150 cereri pe ora pentru user, pentru

1 milion de utiizatori asta inseamna 40,000 cerer ipe secunda data care chiar trebuie accesata in tim real este fereastra de timp dintre

interactiuni (ultimile 10/30 minute ar trebui sa fie suficiente) restul datelor pot fi stocate in sisteme de fisiere presupunand ca ratia de scriere este de 20% si ca marimea postului este

de 128 bytes=> data produsa =40k*20% * 128 = 1Mb/Sec Se poate tine un buffer de o ora in mai putin de 5 G Solutie:Folosirea unui Data Grid in memorie si a unui system de stocare de fisierepentru o perioada indelungata

5 Exemple de baze de date NoSQL

5.1 Tokyo Cabinet / Tokyo Tyrant

Page 3: Nosql Movement Budai Steliana Gorea Alexandra Diana

Api-ul acestuia este un array asociativ gigantic. Se da o cheie si o valoare, iar apoi avand o cheie se va obtine valoarea.Se foloseste pentru o cantitate mica de date, pentru care este util un update rapid si care poate fi usor modelat ca perechi cheie valoare

5.2 CouchDB

Foloseste si el maparea cheie data, dar filozofia acestuia este diferita. Datele lui sunt obiecte JSON. Este scris in asa fel incat nodurile ce au fost deconectate pentru o perioada lunga de timp pot fi reconectate pot face sync intre ele si pot reconcilia diferentele intr - un mod in care nici o alta baza de date nu poate face.

5.3 Redis

Este un system de stocare cheie-valoare care ofera un Api bogat.Face mai multe operatii in memorie si doar periodic face transfer la disk, deci exista o mai mare posibilitate a pierderii datelor. Este foarte rapida.

Fig 1: imagine preluată de la adresa http://www.slideshare.net/bscofield/nosql-death-to-relational-databases

5.4 Cassandra

Facebook crează sistemul de stocare Casandra pe care-l foloseşte pentru căutare. După cum spune inginerul Facebook Avinash Lakshman, Cassandra poate scrie în sistemul de stocare panala 50GB in doar 0.12 milisecunde, de 2,500 ori mai rapid decat MySQL.

Page 4: Nosql Movement Budai Steliana Gorea Alexandra Diana

Cassandra poate fi privit ca un vector asociativ pe 4, 5 nivele. Nivelul 5 este numit SuperColumn si este unul din motivele pentru care Cassandra este renumit

Cassandra nu oferă support pentru un model de date complet relaţional, ci oferă clienţilor un model de date simplu ce oferă control dinamic asupra formatului si formei datelor.

Modelul de date

fiecare rand este identificat unic de o cheie, de tip string ce nu are limită de lungime

instanţă Cassandra are un table ce este format dintr-una sau mai multe familii de coloane

Comparaţie Cassandra versus SQL

MySQL > 50 GB Data medie scriere : ~300 msmedie citire : ~350 ms

•Cassandra > 50 GB Datamedie scriere: 0.12 msmedie citire : 15 ms

Fig2: preluare de la adresa http://www.slideshare.net/bscofield/nosql-death-to-relational-databases

Page 5: Nosql Movement Budai Steliana Gorea Alexandra Diana

5.5 MongoDB versus CouchDB

CouchDB MongoDB

Implementare Erlang C++

Durabilitate da nu

Atomicitate da da

Update MVCC pe loc

Interogări Prin view materizlizat dinamic

Interfaţă REST Driver nativ

Replicare? da da

Replicare peer da nu

Replicare pe arii largi da da

Model de scalare replicare impărtirea pe randuri

(Sharding )

5.6 Neo4j

Este o bază de date bazată pe grafuri.Multe reprezentări relaţionale ale grafurilor nu sunt eficiente pentru toate operaţiile.Exemplu: se doreste un set al tuturor nodurilor conectate ce satisfac un anumit pedicat, pornind de la un anumit nod, nu exisă o cale naturala de a exprima acest lucru in SQL.Se poate rezolva acest lucru prin doua modalitaţi:Obtinerea muchiilor ce satisfac un anumit predicat si eliminarea muchiilor deconectate, sau printr-un dialog cu serverul de baze de date.Odată cu creşterea internetului, necesităţile au depăşit posibilităţile bazelor de date relaţionale. Reţelele sociale sunt un bun exemplu: tipul interogării necesare pentru a cere 6 grade de KevinBacon este foarte complex, consummator de timp şi resurse. Bazele de date bazate pe grafuri sunt optimizate pentru acest tip de interogare. Problema aceste baze de date au o structură diferită faţă de cele cu care lumea est oboşnuită

Page 6: Nosql Movement Budai Steliana Gorea Alexandra Diana

Avantaje ale bazelor de date orientate graf:

posobilitatea de a prelua date semistructurate, astfel permitand individuallizrea conţinutului

fara scheme predefinite

toata starea este ţinuta in memoria tranzacţională(îmbunătăţeşte concurenţa aplicaţiei

6 Se mai folosete SQL?

eBay are un volum mare de date stocate in fisiere de log stocate in RDBMS.

Yahoo si Facebook prefera Hadoop RDBMS-urilor traditionale.

Miscarea NoSQL nu spune ca SQL nu este ok, ci spune ca exista solutii diferite pentru probleme diferite.

Daca se lucreaza cu o cantitate mare de date si se doreste rularea de interogari dinamice ad-hoc, se va folosi o baza de date relationala cu SQL. Folosirea cheie-valoare nu are sens decat daca se doreste distribuirea muncii pe diferite masini fara a trece prin crearea unui cluster de baze de date.

Daca se doreste pastrarea obiectelor intr-o stare persistenta si se doreste un acces de performanta ridicata la ele se va folosi o stocare cheie valoare.

Page 7: Nosql Movement Budai Steliana Gorea Alexandra Diana

Fig 1: preluare de la adresa http://www.slideshare.net/emileifrem/nosql-east-a-nosql-

overview-and-the-benefits-of-graph-databases?src=related_normal&rel=2602062

Fig 3: preluare de la adresa http://www.slideshare.net/emileifrem/nosql-east-a-nosql-

overview-and-the-benefits-of-graph-databases?src=related_normal&rel=2602062 /

Page 9: Nosql Movement Budai Steliana Gorea Alexandra Diana

Fig 6: preluare de la adresa http://www.slideshare.net/emileifrem/nosql-east-a-nosql-

overview-and-the-benefits-of-graph-databases?src=related_normal&rel=2602062

7 Pro si Cons SQL /NoSQL

Fig7: preluare de la adresa http://www.infoq.com/presentations/click-crash-course-modern-hardware

Page 10: Nosql Movement Budai Steliana Gorea Alexandra Diana

8 Concluzie

Este RDBMS scalabil? Nu mai mult decat multe alte baze de date.Majoritatea lucrurilor ce nu sunt scalabile in RDBMS nu sunt folosite de majoritatea oamenilor. Este NoSQL scalabil?O parte din soluţii da, parte nu. Se poate folosi oricare din cele două soluţii, faptul ca nu se poate alege una dintre cele două soluţii nu ar trebui să oprească opersoană să creeze o apicaţie superb.Si mysql se poate folosi ca un system de stocare cheie valoare.Facebook, Wikipedia, FriendFeed mai folosesc si MySQL foarte mult.NoSQL este de mare ajutor dar nu va face singur o aplicaţie superb, si mai ales utilizatorilor nu le va pasa dca s-a folosit Sql sau nu

9 Bibliografie

1. http://images.google.com/imgres?imgurl=http://12.media.tumblr.com/ VtUX0xD0Nqrqi676aWxmGF0vo1_400.gif&imgrefurl=http://www.cacheop.com/&usg=__cmNKt1_TJj4eK0wIB-4BBQ00fVE=&h=317&w=381&sz=11&hl=en&start=96&um=1&tbnid=CVR9hmTxPtwv_M:&tbnh=102&tbnw=123&prev=/images%3Fq%3Dnosql%2Bmovement%26ndsp%3D18%26hl%3Den%26rlz%3D1C1CHMA_enRO344RO344%26sa%3DN%26start%3D90%26um%3D1

2. http://www.computerworld.com/s/article/9135086/ No_to_SQL_Anti_database_movement_gains_steam_

3. http://www.eflorenzano.com/blog/post/my-thoughts-nosql/ 4. http://asserttrue.blogspot.com/2009/12/nosql-required-

reading.html5. http://www.slideshare.net/emileifrem/neo4j-the-benefits-of-

graph-databases-oscon-20096. http://www.princesspolymath.com/princess_polymath/?

s=graph+databases+are+the+new+black&search=Search)7. http://highscalability.com/blog/2009/12/30/terrastore-scalable-

elastic-consistent-document-store.html8. http://johnpwood.net/2009/06/15/couchdb-a-case-study/ 9. http://journal.uggedal.com/nosql-east-2009---summary-of-day-2 10. http://journal.uggedal.com/nosql-east-2009---summary-of-day-2

Page 11: Nosql Movement Budai Steliana Gorea Alexandra Diana

11. http://blog.oskarsson.nu/2009/06/nosql-debrief.html 12. http://www.facebook.com/note.php?note_id=24413138919