NoSql

download NoSql

of 5

  • date post

    14-Nov-2014
  • Category

    Technology

  • view

    1.831
  • download

    0

Embed Size (px)

description

Raport in format LNCS - Tema 11

Transcript of NoSql

  • 1. Micarea NoSQL i Web-ul social/semantic
    Damian T. Sorin-Alexandru, Ionel R. Ancua
    Abstract. Micarea NoSQL, dei poarta de mai puin de un an aceasta denumire, este o alternativ la tradiionalele baze de date relaional i se gsete n completarea acestora, att la nivelul specificrii datelor ct i la nivelul beneficiilor pe care le aduce. Marile companii productoare de software sau care i expun serviciile prin intermediul internetului au dezvoltat n ultima decad proiecte pilot, opensource i nu numai care sa vin n ntmpinarea nevoilor i cerinelor utilizatorilor de astzi - de a avea acces oricnd i n bune condiii la serviciile pe care le doresc. Renunnd la ideea ca bazele de date relaionale ofer exclusiv toate soluiile de care o aplicaie de dimensiuni mari are nevoie companiile n cutare de alternative au gsit completarea n exprimrile NoSQL. Aflat n plin ascensiune, aceast micare poate revoluiona web-ul social i semantic.
    Keywords: web social, web semantic, NoSQL, baze de date, eventualy consistent
    Introducere
    Sub denumirea de NoSQL se adun coleciile de date non-relaionale care de cele mai multe ori iau natere din baze de date relaionale. Primul termen legat de bazele de date relaionale i noiunea care cuprinde cel mai bine esena lor este ACID (atomicitate, consisten, izolare, durabilitate). La polul opus, coleciile de date NoSQL nu sunt constrnse de scheme fixe precum cele ale bazelor de date.
    Ideea de NoSQL a luat fiin n contextul unei nevoi de scalare pe orizontal. Wikipedia [5] prezint scalabilitatea pe orizontal ca o tendin a arhitecturilor de astzi cu efect direct asupra bazelor de date, ideea de scalare orizontal o implic pe cea de sistem distribuit. Adam Wiggins [4] prezint problema scalabilitii bazelor de date SQL i concluzioneaz c singura metod de rezolvare, dup ani n care att programatorii ct i administratorii de sisteme au ncercat soluii de moment, este redefinirea.
    Influene asupra Web-ului social/semantic
    Influena micrii NoSQL asupra web-ului semantic sau a webului sociale se observ la o simpl enumerare a companiilor care s-au afiliat. Google folosete BigTable pentru mare parte din aplicaiile pe care le pune la dispoziia utilizatorilor: Google Earth, Google Reader, Google Maps, Google Code, YouTube.
    Amazon, unul dintre cei mai mari operatori de e-commerce din lume folosete Dynamo, o colecie de perechi cheie-valoare cu o rat foarte mare de disponibilitate[3], iar pentru a atinge acest obiectiv renun la conceptul de consisten, esenial pentru sistemele de baze de date relaionale.
    LinkedIn Proiectul Voldemort
    Proiectul Voldemort de la LinkedIn este inspirat din Dynamo, este de asemeni o tabel hash de dimensiuni foarte mari, distribuit, persistent. n cazul n care un server cade, disponibilitatea ntregii aplicaii nu este compromis deoarece nodurile care compun tabela nu depind unele de altele, informaiile sunt replicate i distribuite. Performanele unui nor pot ajunge la 10-20 mii pe secund. LinkedIn a reuit s mute unele aplicaii (de exemplu Who has viewed my profile) care au nevoie de sute de milioane de citiri-scrieri pe secund pe sistemul Voldemort i s obin timpi de rspuns de sub 10 ms, valoare care anterior era peste 400 ms [6]. Dei iniial au pornit cu o baz de date relaional de dimensiuni mari pe care apoi au partiionat-o, aceasta nu a putut face fa aplicaiilor care implicau att un numr mare de citiri ct i un numr mare de scrieri simultane. LinkedIn este un exponent al web-ului sociale i afilierea sa la micarea NoSQL prin proiectul Voldemort este un vot de ncredere pentru aceast micare.Proiectul Voldemort nu se ncadreaz n web-ul semantic dar ar putea sa rezolve problemele de performan i scalabilitate, pstrarea i accesarea unui volum mare de informaii.
    Facebook - Cassandra
    Facebook este un alt reprezentant al web-ului social care i-a canalizat eforturile n direcia micrii NoSQL. Facebook a avut nevoie de o solutie de pastrare a indecilor care sa scaleze eficient din punct de vedere a costurilor. Astfel a aparut Cassandra, un sistem distribuit de stocare i indexare a datelor structurate. Cassandra a fost definit ca un hibrid ntre modelul BigTable i infrastructura de la Amazon, Dynamo. In Cassandra fiecare instanta are o singura tabela in care randurile sunt identificate unic iar coloanele sunt grupate in familii de coloane. Datele sunt distribuite in noduri redundante care pot fi replicate inclusiv in cadrul mai multor datacenter-e.Primul deployment de Cassandra a fost pentru sistemul de Search din Inbox-urile utilizatorilor Facebook unde s-au obtinut rezultate foarte bune cu indeci de peste 120TB intr-un cluster cu peste 600 de procesoare[9].
    Apache HBase
    HBase are ca punct de plecare BigTable, modelul susinut de Google, dar este scris n Java i beneficiaz de suportul fundaiei Apache. Scopul proiectului a fost s stocheze tabele foarte mari. Dei la capitolul scalabilitate se comport foarte bine, la acest moment nu are performane de vitez.
    Heart[10] este un RDF store distribuit care folosete HBase pentru stocarea triplelor i Hadoop pentru procesare. Dei este n stadiu de propunere, este o verig care leag micarea NoSQL de web-ul semantic. Apariia proiectului face plauzibil stocarea i procesarea datelor n format RDF i expunerea lor prind terminale SPARQL.
    Componenta Heart Data Loader (HDL) citete date dintr-un fiier n format RDF i le organizeaz ntr-o tabel HBase n aa fel nct s fie eficient procesate.
    Studii de caz
    Google BigTable
    Pentru administrarea datelor structurate, Google folosete un sistem de stocare distribuit, numit BigTable. Numeroase proiecte Google i stocheaz aici datele: indexarea web, Google Earth, YouTube sau Google Finance sunt doar cteva exemple. Aceste aplicaii difer n natur i au nevoi diverse fie c este vorba de dimensiunea datelor sau de viteza cu care se dorete regsirea lor.
    BigTable ofer flexibilitate i performan. Nu suport un model relaional dar pune la dispoziia clienilor un model care permite control dinamic asupra datelor i formatului acestora.
    Indexarea datelor cu iruri i coloane ale cror nume pot fi orice ir de caractere, tratarea datelor ca simple iruri de caractere i posibilitatea clienilor de a controla datele din schem fac din BigTable un suport fantastic pentru aproape orice aplicaie de orice dimensiune.
    BigTable poate fi folosit mpreun cu MapReduce, framework-ul Google pentru calcul paralel.
    Google Analytics
    Google Analytics pstreaz informaiile despre sesiunea unui utilizator ce viziteaz un site ntr-o singur linie BigTable. Tabela care pstreaz aceste informaii despre toi utilizatorii este deaproximativ 200 TB. Tabela ce cuprinde statistici este de aproximativ 20 TB i este actualizat din tabela anterioar la inervale regulate de timp.
    Aplicaia se leag de conceptul de web social prin statisticile pe care le ofer sau abloanele ce pot fi extrase. Provocrile web-ului semantic la nivel de stocare i procesare peste un volum foarte mare de date s-ar reduce, dupa modelul Google Analytics i BigTable, la gsirea unor denumiri care s rezolve problema stocrii comprimate.
    Google Earth
    Google Earth are o serie de servicii care ofer utilizatorilor acces la imagini de rezoluie foarte nalt cu suprafaa Pmntului. Aici se folosesc dou tabele: una de preprocesare i una cu imaginile propriu-zise. Fiecare rnd din tabele corespunde unui segment geografic; rndurile sunt denumite astfel nct s asigure ca segmente geografice adiacente sunt stocate unul lng cellalt.
    Aplicaie web 2.0 n natur, Google Earth i modelul su de stocare pot constitui un punct de plecare pentru specificarea datelor web-ului semantic.
    Cutarea personalizat
    n cazul cutrii personalizate, pentru fiecare utilizator, aciunile sale sunt stocate ntr-un singur rnd dintr-o tabel. Tabela este partajat de mai multe echipe Google i a rezultat o tabel cu mai multe familii de coloane (principiul BigTable presupune existena unui numr controlabil de familii de coloane, de ordinul sutelor i n cadrul lor, a orictor coloane).
    Fiind folosit foarte intens i fiind necesar o laten foarte mic, aceast tabel este replicat pe multe clustere.
    Web-ul social are n centrul preocuprilor sale utizatorul i satisfacerea nevoilor acestuia. Cutarea personalizat ine contde istoricul aciunilor i preferinelor unui utilizator contruind pentru acesta un profil transparent.
    Amazon Dynamo
    Dynamo este o colecie de perechi cheie-valoare, este distribuit, versionat, partiionat i replicat. Nu este expus ca serviciu web dar este parte integrant din Amazon Web Services, precum S3.
    Ca sistem de e-commerce, Amazon a dezvoltat de-a lungul timpului soluii de business intelligence pentru a-i promova produsele. Asemeni cutrii personalizate de la Google, Amazon ia n considerare profilul utilizatorului pentru a face sugestii inteligente.
    Pe lng informaiile despre produse i utilizatori, Amazon coreleaz utilizatorul de informaiile ce ar putea prezenta interes pentru acesta. Soluia SQL are ca avantaje consistena dar aduce ca principal dezavantaj disponibilitatea.
    Teorema lui Brewer se aplic n cazul Amazon astfel: s-a optat pentru disponibilitate (availability din CAP) n defavoarea consistenei (C din ACID).
    Procesarea unui numr mare de triple necesit un efor computaional semnificativ, iar n cazul Amazon aceasta s-ar traduce n pierderi financiare. Reprezentarea informaiilor n format RDF i asocierea produselor cu eventuale concepte definite extern nu pare a fi una din prioritile companiei la momentul acesta. Totui, o colecie stabil i flexibil cum este Dynamo ar putea propulsa Amazon n universul web-ului semantic.
    Concluzii
    Micarea NoSQL nu susine ca SQL sau bazele de date relaionale ar fi elemente negative, nici c web-ul social ar avea de suferit de pe urma lor. Pentru 99.8% din site-urile disponibile, bazele de date relaionale sunt suficiente. Pentru cteva companii mari, ale cror aplica