Nosql Movement Budai Steliana Gorea Alexandra Diana
1. Micarea NoSQLGorea Alexandra Diana: alexandra.gorea@ infoiasi.roBudi Steliana:steliana.budai@infoiasi.roCe 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 scalaRDBMS-urile.Twitter a incercat acest lucru de mai multe ori
2. Google si Yahoo aveau in trecut 40,000 maini MySQL pe care le-au inlocuit apoi cu MapReduce/GFS/HDFS
5. companie utilizeaza FPGA pentru a face accesul la disk mai rapid pentru baze de date, din moment ce au atins limita de scalabilitate pe hardwareCine a pornit aceast micare?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..Proiecte NoSQL open sourceBazate pe sisteme de fisiere:Amazon Dynamo/SimpleDB
11. Oracle CoherencePrincipii 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
19. 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 indelungataExemple de baze de date NoSQLTokyo Cabinet / Tokyo TyrantApi-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 valoareCouchDBFoloseste 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.RedisEste 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-databasesCassandraFacebook creaz sistemul de stocare Casandra pe care-l folosete pentru cutare. 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 renumitCassandra 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 datefiecare rand este identificat unic de o cheie, de tip string ce nu are limit de lungime
20. instan釘 Cassandra are un table ce este format dintr-una sau mai multe familii de coloaneCompara釘ie Cassandra versus SQLMySQL > 50 GB Data medie scriere : ~300 msmedie citire : ~350 msCassandra > 50 GB Datamedie scriere: 0.12 msmedie citire : 15 msFig2: preluare de la adresa http://www.slideshare.net/bscofield/nosql-death-to-relational-databasesMongoDB versus CouchDBCouchDB MongoDB ImplementareErlang C++Durabilitate da nu Atomicitatedada Update MVCC pe loc InterogriPrin view materizlizat dinamicInterfa釘RESTDriver nativReplicare?dadaReplicare peer da nuReplicare pe arii largidadaModel de scalarereplicare imprtirea pe randuri (Sharding )Neo4jEste o baz de date bazat pe grafuri.Multe reprezentri 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 creterea internetului, necesit釘ile au depit posibilit釘ile bazelor de date rela釘ionale. Re釘elele sociale sunt un bun exemplu: tipul interogrii 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 obonuitAvantaje ale bazelor de date orientate graf:posobilitatea de a prelua date semistructurate, astfel permitand individuallizrea con釘inutuluifara scheme predefinitetoata starea este 釘inuta in memoria tranzac釘ional(樽mbunt釘ete concuren釘a aplica釘ieiSe 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=2602062Fig 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=2602062Fig 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=2602062Fig 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=2602062Pro si Cons SQL /NoSQLFig7: preluare de la adresa http://www.infoq.com/presentations/click-crash-course-modern-hardwareConcluzieEste 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 nuBibliografiehttp://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%3D1http://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.htmlhttp://www.slideshare.net/emileifrem/neo4j-the-benefits-of-graph-databases-oscon-2009http://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.htmlhttp://johnpwood.net/2009/06/15/couchdb-a-case-study/http://journal.uggedal.com/nosql-east-2009---summary-of-day-2http://journal.uggedal.com/nosql-east-2009---summary-of-day-2http://blog.oskarsson.nu/2009/06/nosql-debrief.htmlhttp://www.facebook.com/note.php?note_id=24413138919