• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Nosql Movement Budai Steliana Gorea Alexandra Diana
 

Nosql Movement Budai Steliana Gorea Alexandra Diana

on

  • 1,596 views

 

Statistics

Views

Total Views
1,596
Views on SlideShare
1,593
Embed Views
3

Actions

Likes
0
Downloads
44
Comments
0

1 Embed 3

http://localhost:2518 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Nosql Movement Budai Steliana Gorea Alexandra Diana Nosql Movement Budai Steliana Gorea Alexandra Diana Document Transcript

    • Mişcarea NoSQL
      Gorea Alexandra Diana: alexandra.gorea@ infoiasi.ro
      Budăi Steliana:steliana.budai@infoiasi.ro
      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
      Cine a pornit această mişcare?
      Developerii Java şi Web
      Pentru a se translata aplicaţii Web sau Java intr-un format SQL este costisitor ca timp, spre deosebire de NoSQL car este mai rapid
      O parte din codul NoSQL , vine din RDB, cu permisiunea autorului acestuia W.HOOBS..
      Proiecte NoSQL open source
      Bazate pe sisteme de fisiere:
      • Amazon Dynamo/SimpleDB
      • Google Big Table
      • Casandra
      Implementari bazate pe memorie
      • GigaSpaces
      • Gemstone
      • IBM extremeScale
      • JBoss infinispan
      • Oracle Coherence
      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
      Exemple de baze de date NoSQL
      Tokyo Cabinet / Tokyo Tyrant
      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
      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.
      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
      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.
      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 ms
      medie citire : ~350 ms
      •Cassandra > 50 GB Data
      medie scriere: 0.12 ms
      medie citire : 15 ms
      Fig2: preluare de la adresa http://www.slideshare.net/bscofield/nosql-death-to-relational-databases
      MongoDB versus CouchDB
      CouchDB MongoDB ImplementareErlang C++Durabilitate da nu Atomicitatedada Update MVCC pe loc InterogăriPrin view materizlizat dinamicInterfaţăRESTDriver nativReplicare?dadaReplicare peer da nuReplicare pe arii largidadaModel de scalarereplicare impărtirea pe randuri (Sharding )
      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ă
      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
      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.
      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 /
      Fig 4: 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 5: 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 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
      Pro si Cons SQL /NoSQL
      Fig7: preluare de la adresa http://www.infoq.com/presentations/click-crash-course-modern-hardware
      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
      Bibliografie
      • 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
      http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_
      http://www.eflorenzano.com/blog/post/my-thoughts-nosql/
      http://asserttrue.blogspot.com/2009/12/nosql-required-reading.html
      http://www.slideshare.net/emileifrem/neo4j-the-benefits-of-graph-databases-oscon-2009
      http://www.princesspolymath.com/princess_polymath/?s=graph+databases+are+the+new+black&search=Search)
      http://highscalability.com/blog/2009/12/30/terrastore-scalable-elastic-consistent-document-store.html
      http://johnpwood.net/2009/06/15/couchdb-a-case-study/
      http://journal.uggedal.com/nosql-east-2009---summary-of-day-2
      http://journal.uggedal.com/nosql-east-2009---summary-of-day-2
      http://blog.oskarsson.nu/2009/06/nosql-debrief.html
      • http://www.facebook.com/note.php?note_id=24413138919