• Non ci sono risultati.

Dbms basati sui grafi: Analisi e prototipazione di neo4j.

N/A
N/A
Protected

Academic year: 2021

Condividi "Dbms basati sui grafi: Analisi e prototipazione di neo4j."

Copied!
86
0
0

Testo completo

(1)

ALMA MATER

STUDIORUM

UNIV ERSIT À DI

BOLOGNA

C

AMP US DI

C

ESENA

-

S

CUOLA DI

S

CIENZE

Corso di Laurea in Scienze e Tecnologie Informatiche

DBMS

BASATI SUI GRAFI

:

ANALISI E PROTOTIPAZIONE DI NEO

4

J

Relazione finale in

Laboratorio di Basi di Dati

Relatore

Chiar.mo Prof.

Matteo Golfarelli

Correlatore

Dott. Simone

Graziani

Presentata da

Matteo Torta

Sessione II°

Anno Accademico 2013/2014

(2)
(3)

S

OMMARIO

I ntro d uz io ne . . . 6 C a pi to lo I Gr ap h DB M S . . . 1 0 1 .1 I DB M S No S Q L . . . 1 0 1 .2 I G rap h DB M S . . . 1 1 1 .2.1 G r ap h Co mp ut e E ngi ne . . . 1 2 1 .2.2 Grap h DB M S . . . 1 2 1.2.3 Che cos’è un Grafo? ... 13 1 .2.4 Il P rop er t y Gr ap h M ode l . . . 1 4 1 .2.5 Le po te nz ia li tà d e i G ra p h DB M S . . . 1 5 1 .2.6 La M ode ll az io ne d i un Gra fo . . . 1 6 C a pi to lo II N eo4j . . . 2 0 2 .1 P r e se nta zi o ne . . . 2 0 2 .2 Arc hi te t t ur a . . . 2 1 2 .2.1 S tor e F il e . . . 2 2 2 .2.2 Ca c he . . . 2 3 2 .2 .3 T ra nsa ct io n M a na ge me nt . . . 2 5 2 .2.4 AP I . . . 2 6 2 .2.5 D ec i si o ni Arc hi te ttur a li . . . 2 8 2 .3 I l mo de l lo d e i Da ti . . . 3 6 2 .3.1 No di . . . 3 6 2 .3.2 Re la zi o ni . . . 3 6

(4)

2 .3.3 P ropr ie tà . . . 3 7

2 .3.4 La be l s . . . 3 7

2 .3.4 P er cor s i (P at h) . . . 3 8

2 .4 Gl i I nd ic i . . . 3 8

2 .4.1 S c he ma I nd e x . . . 3 8

2 .4.1 No n -S c he ma I nde x ( Luce ne) . . . 3 9

2 .5 Co ns tr ai nt . . . 3 9

2 .6 C yp her I l Li ngua ggio di I nter ro gaz io ne . . . 4 0

2 .6.1 ST ART . . . 4 2

2 .6.2 M AT C H . . . 4 2

2 .6.3 RET U R N . . . 4 3

2 .6.4 Al tre c la uso l e C yphe r . . . 4 3 2.7 L’attraversamento del grafo ...44 2 .7.1 G l i Al gori t mi s ui G ra fi . . . 4 4 2 .7.2 Q uer y . . . 4 5 2 .8 La s el ez io ne d ei da t i . . . 4 5 2 .8.1 T ec nic he d i s el ez ione . . . 4 5 2 .9 Aggr e ga z io ne de i da ti . . . 4 8 2 .10 I mp i e ghi F ut ur i . . . 4 9 2 .10.1 V i s te M at er ia li zza t e . . . 4 9 2 .10 .2 P a tt er n M i ni ng . . . 5 3 C a pi to lo III B e nc hMa r ki ng . . . 5 6 3 .1 Se t up de i T e s t . . . 5 7

(5)

3 .1.1 S tr ut t ur a e d or ga niz za z io ne de i da ti . . . 5 7 3 .1.2 T rad uz io ne d e ll a ba s e d a ti . . . 5 9 3 .1.3 I Da ta Se t e i Da tab a se . . . 6 1 3 .1.4 Co nfi gur az io ne . . . 6 2 3 .2 Ana l i si G e ne ra le . . . 6 3 R i s ul t at i : . . . 6 4 3 .3 Ana l i si D et t a gl i at a . . . 6 7 3 .3.1 S e le tt i vit à . . . 6 7 3 .3.2 N ° di J oi n d i Ora c le . . . 7 1 3 .3.3 N ° Hop N eo4j . . . 7 7 C a pi to lo IV Co ncl us io ni . . . 8 2 B ib lio gra fi a . . . 8 5

(6)
(7)

Introduzione

I si s te mi i nfor ma t i vi ( SI) so no una co mp o ne nte ce nt ra le de l le az i e nde e c o nse nto no d i ri vol uz iona re i pr oc e ss i prod ut tivi co n lo sco po d i mi gli o -rarne l’efficienza e la produttività . Un sistema informativo è composto d al le i nfor ma z io ni uti l iz za t e, ges t it e e p rodo t te da una or ga niz za zi one. Q ue s t i da t i de vo no po te r d e scr i vere q ua l s ia s i s fac ce t ta t ur a d el mo ndo r e al e, e per far si c he un sis t e ma i nfor ma t i vo ge s ti sc a a al me gal io q ues t e i nfo r -ma z i o ni , e s se do vra nno es s e re i m-ma ga z z i na te e d or ga niz za t e .

D a ta la c re sc e nte mo l e e va ri et à di i nfo r ma zi o ni c he q ue s t i s i st e mi d e -vo no ma ni pol ar e, è na ta l ’e s i ge nza di appo ggia r si a s is t e mi i nfor ma t ic i mu ni t i d i t ec nolo gi e d i i mma ga z z i na me nt o d ei d at i s e mp re p i ù e f fic ac i e c ap ac i di r appr e se nt are o gni po s si bi le a spe tt o d el la vi ta r ea le , a q ue st o s c opo so no na te l e ba s i di da t i . I n i nfor ma t i ca , i l t er mi ne dat ab a se [1] , b a-s e d i da t i o b a nca da t i (a vol te abbr e vi a to co n la a-s i gla DB ), i nd ic a u n ar-c hi vio da ti , o un i ns i e me di ar ar-c hi vi be n str ut t ura t i, i n ar-c ui l e i nfor ma z i oni i n e s so co nte nut e so no str ut t ur at e e col l e ga te t ra lor o se co nd o un pa rt ic ol ar e mo de l lo lo gic o. Il comp i t o di are pear iar e e ma nut e near e i d a ti di q ue st i a ar c hi vi è a ffi da to a de ll e p ar ti co lar i t ec no lo gi e c he pr e ndo no i l no me d i Da

-ta ba s e M anag e me n t Sys t e m ( DB M S ). La ge st ione d e ll e i nfor ma z io ni è la

chiave di volta che a permesso all’informatica di avanzare e svilupparsi ne l cor so d e gli a nni, pe r me t te ndo co s ì la na sc i ta d i una i nnume r e vole q ua nti tà d i te c no lo gie.

Q ua s i s i n d a ll a na sc it a de i da tab a se , il mo d el lo re l az io nal e è st a to s ic u -r a me nt e q ue ll o d i ma ggi o-r s ucce s s o e c he me gl io ha pe -r me s s o d i -rapp -r e-s e n t are e e-str ut t ur ar e i da t i. E e-s e-so co ne-se nt e d i o rga ni zz ar e le i nfor ma z ioni s c he ma t i zz a ndo le so tto fo r ma d i e nti tà c o nne s s e da re l az io ni. Co n q ue sto mo d e ll o lo gico è st at o po s s ib il e d e scr i vere a l me gl i o q ua si l ’i nt era tot a li tà dei casi d’uso che si presentavano nel mondo reale. Tuttavia, la sua natura gl i i mp o ne c he l ’or ga nizz az io ne de i d at i se gua una s er ie d i vi nco l i e r e gol e c he no n c o nse nto no al la s tr ut t ur a di a rc hi via zi one d i ad a tt ar si a d e i ca m-b ia me nt i i mp r e vi s t i . Q ues t i vi nco li so no l a s ua più gra nd e fo rz a e al te mp o s t e s so l a c a usa de l la s ua d ebo le zz a.

(8)

C o n l ’a vve nto d i I nter net a gli i niz i de li a nni ’90 e p i ù r ec e nt e me nt e co n l’affermarsi dei Social Network come Facebook e T witter, il mondo d’oggi è se mp r e p i ù co nne s so e s e mp re p i ù t ipi d i i nforma z i o ni ve ngo no cor re lat e t ra l oro . Q ue s t ’ult i me sono se mp re me no so no sogge t t e a q uei vi nco l i c he p er me t t e va no d i d e fi ni re una s tr ut t ur a d i b a se a lla q ual e at te ner s i .

C o lo s s i te c no lo gic i co me Goo gle , lo s te s so F ac ebo o k e a l tr i c o me Eb a y, hanno un po’ abbandonato la “via del relazionale ” per appoggiarsi a diver-s i t ip i mo de ll i. I da t i e la bor at i e pr od ot ti da q ue diver-s t e mul t i naz io nal i , diver-s ono sicuramente l’esempio più lampante che meglio può far comprendere le pr obl e ma t i c he c he de ri va no ne l ge s ti r e un r ea l tà fa t t a d i co nne s s io ni. I n un mo nd o c o sì al ta me nt e co nne s so e i n co st a nte evo l uzio ne no n po te va che ve r i fi ca r si la na s ci ta di te c no lo gie di i mma ga z zi na me nt o d e i da t i c apa c i di a da tt ar s i a q ue st a nuo va e ra .

I Gra p h D at ab a se e d i co ns e gue nz a i Gra p h DB M S so no s i c ur a me nt e l a r i spo s ta p i ù for te c he è st a ta da t a d al mo ndo de l l’i nfo r ma t ic a a l na sc ere di q ue st e nuo ve e si ge nze. P e rc iò , i l mod el lo re la zio ne i nco mi nc i a a va ci l lar e e a p erd er e i l s uo pr i ma to d i mi gl i or me t od o di ra ppr e se nta zi o ne de i d at i, e nuo ve t ec no lo gi e i nco mi nc i a no a p ropor s i for te me nt e co me s ua a l ter na ti va .

D a to c he il mo ndo co mme rc ia l e è a ncor a fo rt e me nt e le ga to a gl i RDB M S ( Re la tio na l Dat ab a se M ana ge me n t Sy st e m ) , o vvero a q ue ll e te c no logi e c he s fr ut ta no i l mo de llo r el az io nal e co me lo gic a d i ba s e ne l sa l va r e e ge -s t ir e l e i nfor ma z io ni, e d ato c he pe r o ra -so lo le gr a nd i co mp a gni e p o-s -s ono p er me t t er si d i s vil uppar e ed e ffet t uare de gl i s t ud i a cc ur a ti s ui Graph DBMS, è assai scarsa la conoscenza generale che si ha di quest’ultime di t e c no lo gie.

L’obiettivo di questa tesi è, appunto, quello di mettere a confronto due mo nd i : q uel lo d ei DB MS re l az io nal i e q ue llo de i DB M S a gra fo , c o n lo s c opo di c o mpr e nd ere me gl i o q ue st e nuo ve tec nol o gi e c he gio r no dopo gi or no r a ffor za no la loro pre s e nz a s ul me r ca to i nt er naz io na le. P er pot er r a ggi ungere q ue sto ar d uo obi e tt i vo , si è de ci so d i s ce gl ier e co me c a vie di s t ud io, le d ue te c no lo gie c he me gl io rapp re s e nta no i lo ro mo ndi : Or ac le p er gli R DB M S e N eo4j p er i Gr ap h D B M S. I d ue DB M S so no st at i so tt o -po s t i ad una s er ie d i i nte rro gaz io ni at te a te s tar e le per for ma nc e a l var iare d i de ter mi na t i fat to ri , com e l a s el et t i vit à, i l nume ro di j oi n c he Ora c le e f-fe t t ua , e tc.

(9)

I t e s t s vo l ti si c ol lo ca no ne l l 'a mb i to b usi ne s s i ntel l i ge nc e e i n pa rt ic ol a -r e i n q ue l lo de l l ’a na li s i O L AP - O n- L i ne A nal yt ica l P-ro ce s s i ng . Q ues t 'u l t i mo è i l p arad i gma pr i nci pa le i mp e gna to p er e ffet t uare l ’a na li ues i i nt e -r at t i va e vel oc e d i g-r a nd i q ua nti tà di i nfo-r ma z io ni. I n una tip i ca s e ss ione O LAP l 'ut e nte r i c hi ed e un i ns ie me d i mi s ure cor r i spo nde nt i ad una c er ta pr o spe tt i va d i a nal i s i e , t ra mi t e una se ri e d i op era zi o ni , t ra s fo r ma l’interrogazione iniziale fino ad arrivare ad un risultato per lui più intere s-s a nt e. O vvero, l e te c ni c he O LAP ve ngo no i mp ie ga t e, ad e s-s e mp io, pe r a n a-lizzare i risultati delle vendite di un’azienda, l’andamento dei costi di a c-q ui s to me rc i, pe r m i s ur ar e i l s uc ce s so d i una camp a gna p ubb l ic it ar ia , etc . Molto spesso accade che il database su cui viene effettuata un’analisi per me z z o di t ec ni c he O LAP , pro vi e ne da un co ntes t o O LT P O nl i ne T ra n

-s a cti o nal P roc e -s -si ng . G l i -s tr ume nt i O LAP -si d i ffer e nz ia no d a gl i OLT P

p er i l fa t to c he i pr i mi ha nno co me ob ie t ti vo l a pe r for ma nc e nel l a ri cer ca e i l ra ggi ungi me nt o d i un'a mp i e zz a d i i nt erro gaz ione q ua nt o p i ù gr a nd e po s -s i bi l e; i -se co nd i, i nvec e, ha nno co m e ob i et t i vo l a gar a nzi a d i i nte gri t à e s i c ur ez za de l le tr a ns az ioni .

I l s e guito de l la t e si è cos ì or ga niz za to :

 I l p ri mo c ap it olo ha l ’obi e tt i vo di for nir e d el l e info r ma z io ni c he c o nse nt a no a l le tt ore d i c o mp r e nd ere i l mo ndo de i Gr ap h DB M S , p er p oi a ffro nta r e a l me gl io i c ap ito l i s ucc e s si vi.

 N e l se co ndo cap i to lo viene pr es e nta to Neo 4j , me tt e nd o i n ri s al to l e c ara t ter i s ti c he pr i nci pa l i, l a s tr ut t ur a d i ba se , l e st r ut t ur e da ti d i r i fer me nt o e il s uo l i ngua ggi o d i i nte rro gaz io ne .

 I l t erz o cap i to lo p re s e nt a i t e s t e ffe tt ua ti , i q ua l i ve ngo no d i -s c u-s -s i i n mo do ta le d a me t t e re i n r i-s a lto le c ara t te ri -s ti c he d e ll a nuo va te c no lo gia . I n p ar ti co la re ve ngo no pr e se ntat i i d at ab as e s u c ui s o no s ta t i e ffe t t ua t i i te s t, i ri s ul ta ti de i te s t e l a d i sc us s io ne d i q ue s ti .

 I nfi ne ne l cap i to lo co ncl us i vo s i ri a s s ume q ua nto gi à de tt o pr e -c ed e nt e me nt e.

(10)
(11)

Capitolo I

Graph DBMS

I n q ue s to cap i tol o ve ngono i ntro dot t i i DB M S No S Q L, for ne ndo a l l e t -t or e una pa nar mo ni c a sul l e loro c ara -t -ter i s -ti c he p ri nc ipa l i, e l e p ri nci pa li t ip olo gi e ( s ez i o ne 1.1) . S ucc es s i va me nt e verr à pr e se nt at o i l mo ndo dei G ra p h DB MS , il l us tr a ndo l e car a tt er i st ic he e i c o nc et t i d i ba s e d i q ue sto nuo vo mo do di s tr ut t ur are ed or ga niz zar e le i nforma z i o ni ( se zi o ne 1.2 ) .

1.1 I DBMS NoSQL

N e gl i ult i mi a nni è i ncr ed ib il me nt e a u me nt a t a la po pol ar it à d el l e te c n o l o gie d i i mma ga z zi na me nt o d i i nfo r ma z io ni co nos c i ute co n i l no me d i N o -S Q L, a cro ni mo c he st a p er No t onl y -S Q L [7] . Ma co s a so no di pr ec iso q ue st e t ec no lo gi e? I NoS Q L D at aba s e Ma na geme nt S ys t e m s o no s i st emi s o ft wa r e c he co ns e nt o no d i i mma ga z z i nar e e or ga ni zz ar e i da ti se nza fare a ffi da me nt o s ul mod e llo re la z io na le , so li ta me nt e i mp i e gato d a d at aba se t ra di zi o na l i .

I No S Q L D B M S so no i no lt re co ntrad di s t i nt i d al fa t to c he no n ut i li zz a no un s i s t e ma t ra ns az io nal e AC I D , il q ual e gar a nti sc e c he o gni s ua tra ns az i o -ne sodd i s fi le se gue nti pro pri e tà [6] :

A to mi c i ty - una transazione è un’unità di elaborazione atomica,

ind i vi sib i le . C iò s i gni fi ca c he indo vrà e s s ere e se gui ta to ta l me nt e opp u -r e p e-r ni e nt e, se nza s c i nd e-r la i n p a-r t i p i ù pi cco l e.

C o n si st e ncy - q ua ndo vie ne l a nc i at a, una t ra ns azi o ne tro va il d at a -b a se i n uno s ta to c o nsis t e nte , a l s uo co mp le t ame nt o i l D at a-ba se do vrà a ncor a god er e d i que s t a pr opr ie tà .

I s o lat io n - una tr a nsa zione do vrà e ss er e i s ol at a co mp l et a me nt e d a l -l e a-l tr e. I n ca so di fa -l-li me nt o no n do vrà i nter fe ri re co n -le a-l tre t ra ns az io ni i n e s ec uzi o ne .

D u ra b il ity - gl i e ffe t ti d i una tr a nsa zi o ne c he ha te r mi na to c orr e t -t a me n-t e l a s ua es ec uz io ne de vo no e s se re per s i s -ten-t i ne l -t e mpo .

(12)

I nfi ne, s pe s so q ue s ti t ipi d i D B M S so no sch ema - l es s [7 ] , o vvero no n po s s ie do no uno sc he ma fi s s o a c ui de vo no a t te ne r si , e vi ta ndo sp e s so c os ì l e ope ra zio ni di j oi n e punt a no a sc a lar e o ri zzo nta l me nt e .

Le p ri nc ipa l i c a te go ri e di DB M S No S Q L so no [7 ]: - K ey - Va l ue s tor e . - D oc u me n t -o ri e nte d . - C o lu mn F a mi l y sto re . - Gr a p h DB M S .

1.2 I Graph DBMS

Numerosi progetti e prodotti per la gestione, l’elaborazione e l’analisi d ei gra fi so no a ppa rs i negl i ul t i mi a nni . Q ue s ta gr a nd e q ua nt i tà d i te c no l o -gi e r e nd e d i ffi ci l e te ner t ra cc i a d i q ues t i s tr ume nt i e co me e s si s i d i ffer e n-z i a no, a nc he pe r col oro che d a te mp o la vora no i n q ue st o c a mp o.

T ut ta vi a , i l mo ndo d ei Gr a fi, s e vi sto da ll ’a l to , è po s s ibi le di ved er lo i n d ue ma c r o ca te gor ie :

1 . T e cno log ie im pi ega te p ri nc ipa l men te p e r “ t ran sa ct iona l on li ne graph persistence”, tipicamente accedute per mezzo di applic a-z i on i rea l ti me . Q ue s te te c no lo gie ve ngo no chi a ma t e Gra p h

D B M S. E ss e so no l ’eq uiva l e nte d e i si s te mi O LT P d el mo ndo r e

-l a zio na -le . Q ue s t i si s t emi s o no car at t er izz a ti d a nume r o se ma s e mp l i ci e ve loc i tra ns az io ni e se gui te , sp es s o, in ma ni e ra co n -c orr e nz ia l e [2 ] .

2 . T e cno log ie i mp ieg at e pr i nc ipa l men te pe r l ’anal i s i O ff l ine de i g ra f i. S ol i tam en te e se gui t e com e u na s e ri e d i b at ch st ep . Q ue ste

(13)

1.2.1 Graph Compute Engine

U n Gr ap h C o mp ute E ngi ne è una t ec no l o gi a c he p er me t te d i es e guire Al go r it mi C o mp ut az io na l i s u G ra fi G loba l i sopr a gra ndi d a ta s et [2] . I gr ap h co mp ut e e ngi ne sono pro get t at i p er e se gui re op era zi o ni co me id e nt i-ficare clusters all’interno dei dati, oppure rispondere a delle domande c o-me “Qual è la o-media della relazi oni che posseggono gli utenti di una social network?” .

A c a us a de l l ’i mpo ne nza de l le i nt er r o ga zi o ni , i gr ap h c o mp ute e ngi ne s o no o tt i mi z z at i per sc a nd ir e e pr oc e s sar e e nor mi q ua nt it à di b loc c hi d i i n-fo r ma z io ne .

1.2.2 Graph DBMS

U n Gra p h Da tab a se M ana g e me nt S ys t e m [2] è un s i s te ma d i ge st io ne o n l i ne c he so t topo ne un mo d e ll o da t i a gr a fo , a me t o di di C rea z io ne , Le t -t ur a, Aggi or na me n-t o e C a nc el l az io ne ( Cr ea -te , R e ad , U pda -te e De le -t e : C R U D ). I Gr ap h DB MS so no ge ner al me nt e c o s tr ui t i p er s i st e mi t ra ns az i o -na l i O LT P . D i co ns e guenz a ve ngo no p ro ge t ta t i in mo d o da ot t i mi z zar e le pr e st az io ni e l ’i nte gri tà d el le op era z io ni t ra ns az io nal i.

V i so no d ue co mpo ne nt i d a t e ne r i n me nt e q ua ndo s i s i vuo le a na l iz zar e una te c no lo gia di q ue sto g e ne re :

Underlying S torage

S e bbe ne s ia s co nta to pens a re c he q ue st i s i s te mi p o ss e gga no o gni loro c o mpo ne nte pro ie tt a ta ve r so il mo do d ei gra fi , i n r ea l tà so lo q ua lc he G ra p h DB M S ut i li zz a de i na t iv e g raph s to rag e , o vvero , po s si ed e una p ia t -t a for ma di s al va -ta ggio d el le i nfor ma z io ni so-t -tos -t a n-te na -ta e d o-t -t i mi z za-t a p er s a l va re i d at i s ot to for ma d i gra fo. D i ver si gr ap h DB M S, i n e ffet t i, t r a -d uco no e s al va no l e i nfor ma z io ni i n mo-d i -d i ffer ent i , o vver o a l l ’i nt er no -di u n da ta ba se re l az io nal e, d i u n da ta ba s e or ie nt at o a gl i o gge t ti , o q ua lc he a l-t ro l-t ipo di da l-ta sl-to re .

(14)

Processing Engine

Le d e fi niz io ni for nit e da l mo ndo de i gra fi r ic hi edo no c he , p er e s ser e c o nsi der at i ta li , i Grap h D B M S d ebba no ut i li zz are l’ind ex - f re e ad jan cen cy (q ue s to si gni fi ca c he o gni e le me nt o co nti e n e un p unt ato re d ir et to ai s uoi e l e me nt i adi ac e nti re nde ndo co sì l e r i cer c he vi a i nd i ce no n nec e s sar ie ). T ut ta vi a, co me de t to i n pr ec ed e nz a, è po s s ibi l e es pa nd er e l a d e fi ni z ione d i Gr ap h D at ab a se M a nage me nt S ys t e m a t ut t i que i DB M S c he p er me t t ano d i e se gui re de l le op era z io ni C RU D s u un mod el lo da t i a gra fo. C iò s i gni f i -c a -c he , po s si a mo di s t i ngue re i grap h DB M S i n due -c at e gor i e , la p ri ma t ut ti quelli che sfruttano la l’index -free adjancency , processing engine nativo (p i ù p er for ma nt e) ; la s ec o nda q ue l li c he n o n la us a no , p roc e s si ng e ngine no n nat i vo .

La fi gura 1.1 pe r me t te d i a ve re un’i de a d el l e te c no lo gie pr e se nt i o ggi s ul me r ca to [2]

F i gur a 1. 1: S er ie di G raph DB M S pr e se nt i o ggi s ul me c at o.

1.2.3 Che cos’è un Grafo?

I Gr ap h D B M S or ga niz za no l e i nfor ma z io ni so t to fo r ma di gra fo, pe rciò è na t ura le c hie der s i co sa s ia un gra fo [ 2] .

S o no s tr ut t ure e spr e s si ve c he c i p er me t t o no d i mo d e ll ar e t ut ti i t ip i d i s c e nari . U n gr a fo è una ra cc ol ta d i v er t ic i e a rc h i , i n p aro le se mp l i ci , è un i ns i e me d i nod i co nne s s i d a re la z io ni . I gra fi r appr e se nt a no le e nti tà co n i no di, e il modo nel q ua le q ue st e e nti tà si r apport a no c o n i l mo ndo , co n le r el az io ni .

(15)

E s e mp io : Le i nfo r ma z ioni d i T wi t t er p os s o no e s s e re rap pre s e nt a te co me un grafo. L’immagine sottostante rappresenta una piccola rete di followers .

F i gur a 1. 2: G ra fo c he rapp re s e nt a una ca te na di fo ll o we r s [2] .

Le r el az io ni so no l a c hia ve p er co mp re nder e la s e ma nt i c a de l co nte s to (d i co no c hi se gue c hi e c hi è se gui to da c hi ). O vvi a me nt e , il vero gra fo di twitter è centinaia di milioni di volte più grande dell’esempio. La figura 1 .3 mo s tr a il po te re e spre s s i vo de l mo de l lo a grafo .

E’ facile notare che Ruth ha pubblicato una sequenza di messaggi. Il p i ù re ce nt e me s s a ggi o p uò e s ser e tro va to se gue ndo l a R e la zio ne C U R-R E NT ; l a r el az io ne P R-R EV I OU S ver rà cr ea ta me nt re vie ne es e gui to un po st .

1.2.4 Il Property Graph Model

E s i s to no s vari a te tip ologi e d i gr a fo e i l mo nd o d el la te ori a de i Gra fi fornisce un’infinità di soluzioni , tuttavia l’attenzione verrà posta su un s o-l o p ar ti co o-lar e t ipo d i mo d eo-l o-lo, i o-l p ro pe rty gra p h mo d e o-l [2] .

F i gur a 1. 3 : Gr a fo c he r app re se nt a una c a tena d i fo l lo we r s, conl’aggiunta dei messagi [2]

(16)

U n p ro pe rty g ra p h mo d e l è co s ì d e fi ni to :  U n gra fo c o nt ie ne nod i e re la zi o ni .

 I nod i po s s e ggo no d el le pr op r ie tà (c opp ie di c hiave -va lo re) .  Le r el az io ni po s s e ggo no un no me e so no d ire zio nat e, ed ha nno

s e mp r e un nodo d i pa rt enz a e un nod o d i arr i vo .  Anc he le r el az io ni p os s ono a ver e d el le prop ri e tà.

M ol t e p er so ne tro va no i l prop er t y gr ap h mod el int ui t i vo e fa ci l e d a c a p ir e. Sebb e ne s e mp l ic e, p uò e s se re us ato p er d e sc ri ver e l a st ra gra nd e ma g -gi or a nz a d e i c a si d ’uso gr a fic i , i n mod o ta le c he d i a no i nd ic az io ni ut i li sui no s tr i d at i.

1.2.5 Le potenzialità dei Graph DBMS

Q ua l s ia s i c o sa p uò e s sere mod e ll at a i n u n gr a fo , e i grap h DB M S for n i s c o d e ll e pot e nti ed or i gi na l i te c nic he di mo de l laz io ne de i da t i. E s s i o ffr o no un mod el lo d at i fle ss i bi l e e a gi le c he p er me t te d i a da tt ar s i co nt i nu a -mente all’evolversi della realtà. Ecco quelle che sono le loro potenzialità

[2 ] .

Performance

Le per for ma nc e de i G rap h DB M S t e ndo no ad es s e re o tt i ma l i q ua ndo i d at i da arc hi vi are so no a l ta me nt e co nne s si e la mo l e de l da ta s et è e st r ema me nt e gra nde. Al cont r ari o d e gli RDB M S ( R e l at io na l Da tab a se M an a ge me nt S ys t e m) , l a loro na t ura gl i co nse nt e d i e vi t ar e l e o nero s e op er az i o -ni d i j o i n s e mp l ic e me nt e at tr a ver sa ndo le re la z io-ni c he co nne tt o no i nodi .

Flessibilità

I grap h DB M S so no S ch em a -l e s s, i n al tr e p arol a no n po s s e ggo no uno s c he ma pr e fi ss a to a l q ual e at te ner s i. La loro nat ur a gl i p er me t t e di ada t ta si all’evolversi del dominio applicativo senza dover rimodellare e conve r-tire l’intera base dati. Inoltre, l’aggiunta di nuove relazioni e nodi non c o mpr o me t te l e i nte rro ga z io ni c he so no st a te cos t r u it e per l a ve cc hia ve r -s i o ne de l da tab -s e .

(17)

1.2.6 La Modellazione di un Grafo

E s s e ndo i Gra p h D MB S una te c no lo gia re ce nt e, no n e s i st e a nc ora una pr ec i sa e b e n co nso lid a ta t ec ni ca d i mo de l la zione . I n e ffe tt i, s i p uò a ffe r -ma r e c he ne s s uno po s si ed e la “r ic et t a p er fet ta ” d el la mod e ll az io ne d i uno s c he ma a gr a fo . E s i st o no t eor ie di ffer e nti e a vo lt e co ntra s t a nt i s u l come do vreb be e s ser e la t ec nic a d i mo de l la zio ne , i l p iù de ll e vo l te e s sa pr e vede l a cr ea zi o ne uno s c he ma E -R i n t utt o p er t utto .

Lo sc he ma E R, p ur es s end o la ba s e d i par te nz a de l le t ec ni c he d i mo de l -l a zio ne d i un ba s e d at i r e-l az io ne, è s ic ura me nt e i-l di a gr a mma c he pi ù si a vvi c i na a l p rope rt y gr aph mo d el .

P ur no n e s se ndo pr e se nti t eor ie b e n c o nsol id at e, verr à i ll us tr a ta la p i ù a cc red i ta ta ed ut i li zz a ta d el le t ec ni c he d i mo de ll az io ne.

Tecnica di Modellazione di un Grafo

F a se 1 - A na l i si : Ne lle pr i me fa s i de ll ’a nal i s i, il l a vo ro ri c hied e d i

a ver e un appr oc cio s i mi l e a q uel lo d el mo d el lo r el az io na le : uti l iz za ndo me t o di lo fi (a b as s a fede l tà , p oco pro fe s s io na l e) vi e ne d at a una d es cr iz i o -ne a ppro s s i ma t i v a de l do mi ni o, ma c he p er me t t a d i a ve re un’i de a d i c o me s a rà po i s tr utt ura to i l nos t ro mo d el lo fi na le . I n que s t a fa se vie ne cr ea to un mo d e ll o mo l to s i mi l e a l lo s c he ma E -R .

F a se 2 - Ar ri cc h i me n to : Dop o a ver fat to ci ò , inve c e d i t ra s fo r ma re le

e nt i tà de l mo d el lo i n tabe l le , o s s ia c re a ndo q ue l lo c he vi e ne c hi a ma to M o d el lo Lo gico , l o ar ri cc hia mo , co n l ’o bi et t i vo d i pr od urr e un’a cc ura ta ra p pr e se nt az io ne d e gli a sp et t i s al i e nt i de l do mi ni o. O vvero , cre i a mo da l n o -s t ro -sc he ma E -R, -si mi l e ad un gra fo, un mode l lo a gr a fo a rri cc hi to di pr opr ie tà e r el az io ni c he c erc hi di d e scr i vere a l me gl i o il do mi ni o de l pr o -b le ma .

In molti casi in aggiunta allo schema “arricchito” , si decide di non pro-ge t ta re uno sc he ma pro-ge ne ra l iz za to, ma r appr e se nt ar e un ti pi co ca so d ’uso c he p er me t ta d i da re una d e sc ri zi o ne glob al e del do mi ni o . O s s ia , c i s i b a s e rà s u uno sc he ma c he mo s t r a i va lor i d el l e si ngo le e nt it à e d e ll e l oro r e -l a zio ni , e sa t ta me nt e i-l co ntr ar io di q ue -l-lo c he vie ne fat to pe r un da tab a se r el az io na le, o vvero ve rrà uti l iz za ta u n a so tt o -i s ta nz a d el do mi ni o per d e-s c ri ver lo a l me gl io .

(18)

La modellazione nella pratica: The Movie Graph

P e r me gl io co mp re nd er e q ue st a te c nica ver rà o ra mo s tra to un e s e mpio d i mo de l la zio ne.

D o mi n i o : “S i vuol e rappr e se nt are il mo nd o ci ne ma t o gra fic o e co me i

va r i co mp o ne nt i pr i nc ipa l i ne ll a prod uz io ne di un fi l m s i r el az io na no co n e s s o .

O gni fil m po s si ed e una se ri e d i a t tor i c he i nt erp re ta no un r uolo , de i pr od utto ri , r e gis t i, s cr it tor i e c hi lo ha r e vi sio na to .”

F a se 1 - A na l is i : S i c erc her à d i rap pre s e ntar e pe r me zz o di uno s c he ma

simile all’entità relazioni la str uttura di base del dominio , esso dovrà esse-r e appesse-ro s s i ma t i vo e oesse-r ient a to a ll e esse-r el az io ni.

Figura 1.4: Modello simile all’E -R, prodotto dall’anailisi 1.

F a se 2 – A rr ic ch i me n t o:

D a ll o sc he ma na to nel l a fa s e p re ced e nte , n e verrà cr ea to uno nuo vo pi ù r ic co di i nfo r ma zi o ni e c he me gl io de s cr i va la na t ura de l do mi ni o app l ic a -t i vo .

(19)

La fi gur a sop ra s ta nt e mo s t r a i l mo d el lo ar ric c hit o d i pa rt ic ol ar i e p er me t t e si di a ve re una vi s io ne de ll a s tr utt ura ge ne r a le d el gr a fo, ma non c o nse nt e d i a ver e una ver a co mp re ns io ne ” de ll ’a sp et to ” fi na le de l d at aba s e.

F i gur a 1. 5: Rapp re s e nt azi o ne d i una so t to -i st a nz a de l d at aba s e

Con quest’ultimo modello si può meglio comprendere la natura del d at ab a se , a nc he s e vie ne r a ppr e se nata ata s ol a me nat e una so atato i s ata nza de l dom i -ni o .

(20)
(21)

Capitolo II

Neo4j

I n q ue s to c ap it olo vi e ne de s cri t to nel d e tt a gl io Neo4j . I niz ia l me nt e – c o n l a se z io ne 2. 1 – viene d a ta una d es cr iz io ne d i ma s s i ma d el la te c no lo -gia, con l’obiettivo di fornire delle conoscenze di base che permettano di a ffro nt are me gl io l e pa rti s uc ce s s i ve d el ca pi to lo. N el l a se zi o ne 2.2 vi e ne descritta l’architettura della tecnologia NoSQL. Con la 2.3 vengono mo-s t ra te l e c ara t te ri mo-s ti c he d el mo d el lo d at i a c ui Ne o4j fa a ffid a me nto . Con l e s ez io ni 2. 4 e 2.5, ve ngo no de s cr it t e l e s tr utt ure da t i c he il Gr ap h DB MS s fr ut ta p er ra ggi unger e fa c il me nt e le i nfor ma z ioni e per ma nt e ner le i n o r -d i ne . C o n le se zi o ni 2. 6, 2.7, 2. 8 e 2 .9 vi e ne pr e se nt at o il li ngua ggio -d i i n-t er ro ga z io ne di N eo4j , e ve ngo no de s cr in-t n-t e a lc une funzi o na li n-t à d i i mp i ego d el l i ngua ggio di i nte rroga z io ni . I nfi ne, co n la se z io ne 2.10 , ve ngo no pr o -posti degli impieghi futuri nell’analisi OLAP.

2.1 Presentazione

N eo 4j [1] è un G rap h DB M S op e n s o ur ce t r a nsaz io na le, pr odo tto da l la s o ft wa r e ho use N eo T echno lo gy. P o s s ied e p roc es s i ng e ngi ne e unde rl yi ng s t ora ge na ti vi ed è s vi l upp at o co mp l e ta me nt e i n J a va. É ro b ust o, sc a lab i le e ad a l te pre s ta z io ni. È do ta to di :

 T ra ns az io ni AC I D,  H i gh Ava i lab i li t y ,

 p uò me mo r i zz are mi l ia rdi d i no di e re la z io ni ,

 a l ta ve lo ci tà d i i nt err o gaz io ne tr a mi t e at tr a ve r same nt i ,  l i ngua ggio d i i nt err o ga zio ne d ic hi ar at i vo e gra fi co .

È un DB M S s c he ma l e s s, c iò st a a si gni fi car e c he i s uoi da ti no n d e v o -no a t te ner s i a l a lc una s trut t ura d i r i f er me nt o p re fi s s a ta, i -no ltr e -no n po s si e-d e una po l it i ca e-di a cc es so co ntro l la ta .

(22)

La i nd e x fre e a dj a nc e ncy è al l a b as e d e ll e s ue al t e p re s ta zio ni di a tt r a -versamento, d’interrogazione e di scrittura, ed è uno degli aspetti chiave della sua architettura. L’inde x-free adjancency è una lista ( o tabella), ove o gni s uo e le me nt o è co mpo s to da un no do de l grafo e d a i p unt a tor i ai no di c o nne s s i ad e s so.

N eo 4j s al va i d at i d e nt ro d i una se ri e d i st o re f ile , c o nt e nut i a ll ’i nt er no di un’unica cartella . Ognuno di questi file contiene al suo interno le i n-fo r ma z io ni re la t i ve ad una si ngo la p art e d el gr a n-fo ( e. g. nod i, r el az ioni , pr opr ie tà ). Q ues t a sep ara z io ne de l la s tr ut t ur a d el gr a fo fa ci l it a i l s uo a t-t ra ver s a me nt-t o.

2.2 Architettura

La figura sottostante mostra l’architet tura di base di un server Neo4j.

(23)

T ut t i i da ti e le i nfor ma zi o ni de l gra fo c he il s er ve r st or ic iz za e ge st i sc e vengono salvate all’interno di una serie di file che prendono il nome di S t o re F il e, i q ua li ve ngo no me mo r i zz at i a ll ’i nte r no di un’uni c a car t el la, d et ta Ca r te l la di Da taba s e . O gni d at aba s e o gra fo po s si ed e una prop ria D a tab a se D ir ec tor y, e un s er ve r p uò ge s ti re una so la di q ue s te ca rt el l e per vo l ta. P r i ma di a vvi ar e il s er ver è po s s ibi l e d e fi ni re d a q ua le c ar te l la c ar i-c ar e il gr a fo, mod i fii-c a ndo un de i fi le di i-co nfi gura zio ne pre s ent i nell’albero cartelle del server (conf/Neo4j -server.conf).

G l i S tor e F il e d i un gr a fo s o no i nnume r e vo l i, ma l e i nfor ma z i o ni c he ne d e scr i vo no la s tr ut t ur a e i d at i c he e s so co n t ie ne so no e s s e nz ia l me nt e t re :

- n eo st o re. r el at ion sh ip s tor e .db pe r le re la z io ni;

- n eo st o re. pr ope r ty s to r e.db pe r le prop ri et à ;

- n eo st o re. node s to r e.db pe r i no di .

2.2.1 Store File

O gni e le me nt o sa l vat o a l l ’i nter no de gl i S to re F i l e [2] p os s i ede una s t r utt ura da t i d i me mo r i zz az io ne co n l unghe zz a fis s a de t ta Re co rd .

F i gur a 2. 2 : St r ut t ura de l re cord de i no di .

La fi gura so pra s ta nt e mo s tra l a s tr utt ura di un r eco rd d el lo S tor e F il e d ei nod i , i l q ual e è l ungo 9 b yt e . I l p ri mo b y t e ra ppr e se nta un fl a g c he i n d ic a se i l r eco rd è i mp i ega to o me no p er s al var e i da t i d i un nodo , i s uc es s i vi q ua t tro b yt e ra ppre se nt a no l ’I D d el l a pr i ma r el az io ne c o nne s s a a l n o -do, i restanti byte rappresentano l’ID della prima proprietà del nodo.

Il fl a g -b yt e è un d e nomi na t o re co mune d ei rec ord d e gli S tor e F i le d i N eo 4j . E s so co nse nt e a N eo 4j di r i ci cl ar e gl i ID : q ua ndo vie ne c re ato un no do, s e è pr e se nt e un re cor d no n uti li zz a to, e s so ver rà i mp i e ga to per sa l va re i da ti de l nuo vo nodo , a l tr i me nt i verr à c r e at o un nuo vo re cord da p o -s i z io nare i n fo ndo al fi le . La l unghez za fi -s -sa d ei re cord p er me t te a Neo4j d i e ffe t t ua re d el l e ri ce rche ve lo ci s s i me : q ua l or a s i vo gli a r ic er car e i l nodo

(24)

c o n id 1 00 b a st er à sc orr er e i pr i mi 900 b yt e d el fil e.

F i gur a 2. 3 : St r ut t ura de l re cord de ll e re la zio ni .

I r eco rd de l le r el az io ni so no l unghi 33 b yt e . O gni re cor d co nti e ne gl i I D d el nodo d i pa rt e nza e d i a rri vo, il p un ta tore a l t ipo d i r el az io ne , i p unt ato ri a i re cord de l la pr ec ed e nt e e p ro s si ma r el az io ne d e l no do di p ar te nza e d i a rri vo. G l i ul ti mi 4 b yt e co nte ngo no l ’ID de ll a pr ima pr opr ie tà de l la re la zi o ne.

F i gur a 2. 4 : St r ut t ura de l re cord de ll e p ropr ie t à

I record delle proprietà sono anch’essi lunghi 33 byte e sono composti d al p unta tor e al t ipo di p ropr ie t à, da l p unt at or e al l ’i nd ic e, d a ll ’Id d e lla successiva proprietà dell’elemento a cui appartiene e da un blocco di mmo r i zz az io ne . Q ue s t ’ult immo p art e co nte rrà il valor e a s s unto d a ll a p ropr i e-t à d e l nodo o d el la re l azi o ne sol o q ual ora s i e-tr ae-t e-t a s se d i va lor i d i p ic cole d i me ns i o ni , nel ca s o d i l unghe s tr i nghe ed ar ra y, i va lor i verr a nno s a l vat i i n uno S tore Fi le a par t e.

Q ue s ta s udd i vi sio ne fi s ic a d e i d at i e il mod o i n c ui so no me mo r iz za ti all’interno degli Store File è la chiave che sta alla base delle alte prest a-z io ni di a tt ra ver s a me nto d i q ue s to DB M S .

2.2.2 Cache

N eo 4j [3] po s si ed e d ue ca c he d i d i ver sa t ipo lo gia :

- F i le Sy s te m C ach e ;

(25)

La F i le S ys t e m c a c he agi s c e s ugl i Sto re Fi l e, c ar ic a ndo s i i n me mo r ia po rz io ni d i e s s i. O gni Stor e F i le vie ne d i vi so i n un nu me ro se mp r e ugua le d i pa rt i, t utt e de ll a st e s sa gra nde zz a. La pol i ti ca d i r i mp ia zzo d e ll e por zi o -ni d i fi le è s i mi l e a ll a LR U ( La s t Re cen t ly U s ed ).

L’Object Cache agisce ad alto livello, essa mantiene in memoria po r-z io ni d i gra fo c he so no st a te c ar ic at e pre ce de nteme nt e da l fil e s yt e m e no n s o no so t t o for ma di r ecord d e gli Sto re Fi le , ma i n una c he co nse nt e d i mi gl i ora re la ve loc i tà d i att ra ver s a me nt o de l gr a fo . P e r l a pr ec i s io ne i l co n -t e nu-to di q ue s -ta ca c he s o no o gge -t -t i ( Obj ec -t s) c o n una r appr e se n-t az io ne or i e nt a ta a so s te nere le AP I di Neo4j e gli at tra ver s a me nt i de l gr a fo. Le op er az io ni d i l et t ur a po ss o no e s s er e d al l e 5 a 10 vo l te pi ù vel oc i ri sp et to a q uel l e d e ll a F i le S ys t e m C a c he

.

Neo 4j p er me t te d i ab il i ta re o me n o q ue st a c ac he, s e mp re a ge ndo s ui fil e d i co nfi gur az io ne de l s er ver. L’O bj ec t C ac he è co mp o s ta a s ua vol ta da d ue c ac he :

- R e fe re nc e s Ca che ;

- H i gh -P e rf o rma nc e Ca che .

La pr i ma c er c he rà d i ut il i zz ar e l a ma ggi or p ar te d el le Ja va V i r tua l Ma

-c hin e H eap M em o ry me s s a a di s po si zi o ne , e d i mp ie ga una po li ti -ca d i r i

m-p ia zzo LR U. Q ue st a c ache s fr ut ta le m-por zi o ni di me mo r i a i n co mune co n l e a l tr e app l i ca zi o ni d el l a st e s sa J VM , q ui ndi e ss a sa rà i n co s ta nte “co mp e t i-zione” per lo spazio. Ciò sta a significare che verrà tolta de lla memoria a t ut t i q ue gl i o gge tt i c he c o n le i co nd i vido no la J VM , a d es e mp io : o gge tti i nt er me d i pro dot t i da l le Que r y Cyp he r ( i l l i ngua ggi o di i nte rro gaz io ne di N eo 4j ) , al tr e app li ca z ioni cr ea te da l l ’a mmi ni s t ra to re de l s er ver, a l tre ap -p li ca z io ni -pr odo tt e d al lo s te s so ser ver N eo4j .

L’High-Performance Cache è disponibile solamente nella versione en-t er pri s e de l ser ver . Ad e s s a vie ne ad ib ien-t a una por z io ne d i me mo r i a de lla J VM co mp l e ta me nt e d edi c at a, pe rò d i di me ns i o ne ma s s i ma l i mi t a ta . Q uest a c ac he c ar ic a i n me mo r ia po rz io ni di gr a fo fi no ad r a ggi ungere i l l i mi te ma s s i mo , una vo l ta r a ggi unt o sa rà es s a a ri mp i azz ar e gli o gge t ti , i nve ce d i a ffi da rs i a l Gar ba ge C o l le ct io n d el la J V M. L'o ver head d el la H i gh -P e r for ma nc e ca c he è mo lt o pi ù pi cco lo r i sp et to a ll a R e fe re nce s C ac he , c osì c o me i t e mp i di i ns er i me nt o e d i ri cer ca .

I nfi ne , è po s s ib il e us ufrui r e d el l a ca c he de l si s tema o per a ti vo c he o sp it a i l ser ver N eo4j , a nc he q ue s t a vo l ta mo d i fic a ndo i fi l e di co nfi gura z io ne .

(26)

2.2.3 Transaction Management

I l T ra ns ac ti o n M a na ge me nt e i l T ra ns ac ti o n Lo g, r ac c hi udo no i n se t u t -t i q uei me c ca ni s mi c he ha nno i l co mp i -to di ga ra n-t i re l e p ropr ie -tà AC I D a l-l e tr a nsa z io ni d i Neo 4j .

T utte le operazioni che vengono effettuate sul database, dall’accesso al grafo all’utilizzo di un indice, ve ngono eseguite all’interno di una trans a-z io ne. Le t ra ns aa-z io ni di N eo 4j so no d i t ipo “ f la t n es t ed t ra ns ac ti on s”, o v -ve ro o gni tra ns az io ne p uò r ac c hi ude re a l s uo i nter no una tra ns a zio ne a nn i-d at a (i-di l i vel lo i nfe rio re ), l a q ua le se no n co mp le ta t a corr et t a me nt e p uò c o mpo rt are i l ro l lbac k de l la tr a nsa z io ne ma dre a c ui ap par t ie ne e di t ut te le altre transazioni da cui dipende quest’ultima.

Q ui so t to vie ne ri por ta to un t ip i co c ic lo d i i te ra zio ne [3] c he d e sc ri ve i l mo d o i n c u i la vo ra no le tr a nsa zi o ni :

1 ) I ni zio de l la tr a ns az io ne .

2 ) E s ec uz io ne de l le ope ra zio ni s ul da tab a se .

3 ) S e gna la zi o ne de l l ’a vve nut o s ucc e s so o me no d e lla t ra ns az io ne. 4 ) F i ne de ll a tr a nsa zi o ne .

E’ fondamentale completare una transazione perché, fino al suo complet a me ncomplet o , e s s a no n ri l as ce rà i loc k (b loc c hi) ac q ui s i complet i s ugl i o gge complet completi d el d acomplet a -b a se, e no n li-b er erà l a me mo r ia de l la J VM oc c upa t a da t ut ti q ue gl i o gge t ti che vengono modificati, creati e cancellati. E’ bene suddividere le grandi t ra ns az io ni i n al tr e pi ù p ic co le i n mo do t al e da no n e sa ur ir e l a J VM Heap M e mo r y a d ipo s iz io ne d el se r ve r.

I l T ra ns ac t io n Lo g è un p roc e s so c he ge s ti s ce un “d ia rio ”, a ll ’i nt er no d el q ua l e ve ngo no a nnota t e t ut t e le mo d i fic he app ort a te da ll e tr a nsa zio ni. Q ue s to c o mpo ne nte d i Ne o4j è fo nd a me nt al e q ual ora s i vo gli a ma nt e nere i l prop ri o d at aba s e i n una st a to co ns i st e nte e coer e nte a nc he i n c a so di una F a i l ur e , la q ual e co st ri nge Neo 4j ad e s e gui re un ro llb ac k . Il T ra nsa ct io n Lo g p uò e s ser e ab i li ta to o me no mo d i fi ca ndo i fi l e d i co nfi gur az io ne de l s e r ve r.

(27)

2.2.4 API

Anc he s e i l fi le s ys t e m e le i nfra s tr ut t ure di c ac hi ng so no mo l to a ffa s c i -na nt i, i pr o gr a mma t o ri ra ra me nt e i nt er a gi s co no d ir et ta me nt e c o n e s se, ma pr e fer is co no appo ggi ar si ad a l tr i s tr ume nt i , q ue st ’ul t i mi s o no l e AP I [2 ] . Le Ap pl ica t ion P r og ra mm i ng In te r fac e - A PI so li t a me nt e so no una ser ie di pr oc ed ur e / lib rer ie me s s e a di sp os i zio ne de l pro gra mma t or e , l e q ual i gl i p er me t to no d i i nt era gi re co n un t ec nol o gi a s frut t a ndo un li ngua ggi o di pr o gr a mma z i o ne o a l tro, s e nza do ver co no s cer e e ge st ir e i me c c a ni s mi i n -t er ni de l la -te c no lo gia i n q ue s-t io ne.

N eo 4j met t e a d ipo s iz ione d i ver s e AP I , e la sc elt a d i i mp i e gare una i n -vece che un’altra dipende dal tipo di utilizzo che se ne vuole fare di questa t e c no lo gia.

Kernel API

Al p i ù b a s so l i vel lo d ell o st ac k de ll e AP I di Ne o4j , si tro va il K e rne l

T r an sa ct ion Ev en t Heand le r . Q ue s ta AP I co nse nt e al pro gr a mma t or e d i i n

-t er a gire co n i l c ic lo d i vi -t a de l le -tr a nsa zi o ni e cap -ta r ne gl i e ve n-ti , pe r me - t-t e nd o gl i di mo d i fic are e ge st-t ir e il r i s ul t-t at-to c he una t-tra ns a zio ne p rod ur rà. Un tipico caso d’uso è quando si vuole evitare che i nodi vengano elimin a-t i fi si ca me na-t e , a li ve llo d i r ec ord de ll o S a-tore Fi le , ma s i i na-te nde e l i mi narl i s o lo d al p unto di vi s ta lo gic o, i n mo do ta l e d a p ot er ne r e c up er are i dati a nc he i n un se co nd o mome nt o .

Core API

La C or e AP I d i N eo4j , chi a ma t a a nc he B e a ns AP I , è una J a va Ap i i mp e -r at i va c he co ns e nte a l p-r o g-r a mma t o -re di e sp o-r-r e il g-r a fo a p-r i mi t i ve di c re az io ne, mo d i fi ca , e l imi na z i o ne ed i nt erro gazi o ne t ra mi t e co d ic e J a va. Q ue s ta AP I p uò e s s ere re a l me nt e vel oc e, ma a pa t to c he c ol ui c he la ut i li z z a co no s ca i n mo do appro fo nd it o la st r utt ura del gra fo, l a q ua le do vr à e s -sere riproposta all’interno del codice Java. Questo sta a significare che, i mp i e ga ndo la Cor e AP I, i l pro gra mma c he ne na s ce rà sar à mo l to pi ù vu l -ne ra bi le al le var ia zi o ni d el do mi ni o app li ca t i vo c he si pr e se nt a no co n i l p a s sar e d el t e mp o.

(28)

Traversal API

La T ra ver sa l AP I è una J a va AP I d ic hi ara t i va . Al co ntr ar io de l la C ore AP I, co n la q ual e b i so gna r ip ropor re l a s tr ut t ura d el gr a fo a l l ’i nt er no de l c odi ce J a va, co n l a T rave r sa l AP I è po s s ib il e int e rro gare i l gra fo se mp l i -c e me nt e i nd ic a ndo i vico l i ge ner al i c he p er me t to no d i li mi t are l’attraversamento. Ciò sta a significare che, invece di indicare nel cod ice d i pro gr a mma z io ne i p ar t ico la ri tip i di no di , r el a zio ni e pr opr ie tà c he si vo gl io no e st rar re , è pos s i bi le co s tr uir e l e i nt er ro ga zi o ni s e mp l ic e me nte ponendo come limiti dell’attraversamento, la struttura generale del sotto -gr a fo d i i nter e s se . Co n q ue st a AP I è po s s ibi l e co s tr uir e i nter ro ga z io ni pi ù ge ne ra li zz at e, ma me no p er fo r ma nt i.

Cypher

C yp he r è il li ngua ggi o di i nte rro gaz io ne na ti vo di Ne o4j . E s so è un l i n -gua ggi o gr a fico , o vvero si b a sa s ul la r ipr od uz ione gra fi ca d el so t to -gra fo c he si vuol e e s tra rre . E ss o co ns e nte d i cr ea re, mod i fic ar e, e li mi na t e e i n-t er ro ga re i da n-t i d e l da n-taba s e.

I l s ot to gra fo rip rodo tt o ne l le q ue r y vi e ne c hi ama t o p at te rn , e per pr o -d urlo no n s er vo no st r ume nt i par t ico la ri , ma bas t a s e guire -de ll e s e mp lic i r e go le c he p er me t to no d i d i se gnar lo i mp i e ga ndo i c ara t te ri AS C II ( i ca ra t-t er i pre s e nt-ti s ul la t-t a st-t i era ).

I n ger go te c nico la r iprod uzi o ne gr a fic a de l sot to -gra fo vi e ne c hia ma t a “things like this”, è una frase che tradotta significa “ cose come questa”. G i à s i p uò me gl i o co mpr e nd ere i l c o nc et to c he s t a al l a ba s e d i d el la c o s t r uz io ne de l le q uer y C yp he r . P i ù a va nti verr à d e scr i tto i n ma ggi o de tt a -gl i o q ue st o li ngua ggio d i i nte rro gaz io ne.

Altre API

O l tr e a ll e AP I a ppe na de s cr it t e, N eo4j ne me t te a d i spo s iz io ne al tr e di d i ve r sa na t ura . La RE ST AP I è si c ur a me nt e la p i ù i mpo rt a nte tr a q uell e no n me nz i o na te p re ced ent e me nt e . E s sa fo r nis ce una s er ie d i funz io na lit à r ic hi a ma bi l i p er me z zo di r ic hi e st e htt p d i ti po P O ST e GET . S u di e s sa si basa l’interfaccia Web REST ful che consente all’amministr atore di visio-na re lo s t ato d el s erve r e d i e se guir e di ve r s i tip i d i o per az io ni, dall’esecuzione di SCRIPT Cypher, alla creazione di indici.

(29)

2.2.5 Decisioni Architetturali

Q ua ndo s i vuo le co st r ui re un s i st e ma b a sa to s u un gr ap h D B M S, vi s ono d i ve r se de ci s i o ni ar c hi te t t ur al i c he d e vo no e s se re e ffe tt ua te [2] . Q ue st e d ec i si o ni d ip e ndo no d a l pr odo tto fi nal e c he s i vuo le o t te nere . N eo4j for n i-s c e una q ua nt i tà di i-so l uzi o ni c he pe r me t to no d i i-sod di i-s far e gr a n par t e d el le e s i ge nz e.

At t ua l me nt e mo l t i DB MS ve ngo no es e gui ti co me app li ca z io ni s er ver a s e s ta nt i, le q ua li ve ngono ac ced ut e pe r me zzo d i a l tri so ft wa r e co st r uit i c o n l ibre ri e cl i e nt . Ne o4j è un D B M S i nus ua le , pe rc hé è p o ss ib i le i ncorp o -ralo all’interno dei software client oppu re eseguirlo nella maniera classica, i n al tr e p aro le i n mod a li tà ser ver .

Embedded Mode

In modalità Embedded, Neo4j viene eseguito all’interno del processo dell’applicazione che si sta costruendo. Embedded Neo4j è l’ideale per c o mp ute r d e s ktop opp ur e H ard wa r e D e vice , add ir it t ura p uò e s s ere i mp i e g a-t o per co sa-t r uire una propr i a app li ca z io ne c he funga da se r ve r d i da a-t aba se . V ed ia mo o ra q ua l i so no i va nta ggi for ni ti da q ue st o ti po d i ar c hi t et t ur a .

Vantaggi:

L ow Lat e ncy: I te mp i d i r is po st a da pa rt e de l d a ta ba s e s o no c hiar a me n

-t e rap id i s si mi , visto che quest’ultimo è una parte integrante dell’applicazione.

S c el ta d e ll e AP I : I n q ues t a mod al i tà è d is po nibi le la to t al i tà de l le AP I ,

p er cr ear e ed i nte rro gare i d at i : le Cor e AP I, il tr a ver sa l fra me wo r k, e i l l i ngua ggio d i i nt err o ga zio ne C yp he r.

T r a n saz io n i e s pl ic it e: U t i li zz a ndo le Cor e AP I, è po s s ib il e co ntro l lare

i l c ic lo di vit a tr a nsa zi ona l e , e se gue ndo arb it rar ia me nt e una co mp l e ss a s e -quenza di comandi a carico del database, tutto all’interno di una singola t ra ns az io n e. Le J a va AP I co ns e nto no di me t te re a nud o il c ic lo d i vit a de lla t ra ns az io ni, p er me t t e ndo di a ggi unge re una p er so nal e ge s ti o ne de l le t ra n s a z io ni vi a e ve nto, i n mod o t al e da po t er a ggi unge re d e ll e lo gi ca add iz io -na l e ad o gni t ra ns az io ne.

(30)

N a me d I n d e xe s : L’E mb edde d Mode fo r ni s ce una co ntro ll o co mp le to

s ul l a cre az io ne e la ge s ti o ne d i i nd ic i muni t i d i no me . Q ue s ta funzio na lit à è a nc he di spo nib i le gra zie a ll a we b -ba s ed RE ST int e r fa ce ; C yp her no n ne è c ap ac e.

Q ua ndo si e se gue Neo4j i n mo da l it à E mb ed ded è b uo na re go l a t e ne r c o nt o a nc he d el l e se gue nt i no te .

J VM o nly : Ne o4j è un da tab a se ba s a to s ul la J a va V ir t ua l M ac hi ne

(J VM ). D i ver se de l le sua AP I so no, t ut ta vi a, a c c e s si bi l i so la me nt e per me z z o d e l li ngua ggio bas e de l la J V M, i n a lt re paro l e il J a va.

C o mp o r ta me n to d e lla Ga r bag e Col l ect io n: Qua ndo vi e ne e se gui to in

E mb e dded Mode , Ne o4j è s o gge t to a l co mp ort ame nt o d e ll a G arba ge Co l -l e ct io n ( G C) de -l-l ’app -l ic az io ne c he -lo o sp i ta . Lunghe p a use do vut e a-l G C si r i fle t to no s ui t e mp i di ris po s ta de l le q ue r y. Ad dir i tt ura, p uò c ap it are a vo l -t e, c he q ua ndo una is -t a nz a i n E mb ed ded mod e fa par -t e d i un cl us -t er Neo4j H i gh Ava il ab le ( H A), una l unga p a usa d a pa rt e de l G C p uò i nd urre i l c l u-ster a rieleggere il proprio mau-ster (quest’ultima parte risulterà più chiara una vol ta c he verr à a ffr ont a ta l ’ar c hit e tt ura N eo4j H A).

D ata ba s e l if e cyc l e : L’a ppl i ca zio ne ho s t è re spo ns ab il e de l co ntro llo

d el c ic lo di vit a de l d ata ba s e. Il so ft wa r e c he inc orpo ra i l da tab a se N eo4j d e ve e s se re i n gr ado di la nc iar e e s top par e il d at aba s e i n mo do c ore t to, c o nt ro ll a ndo l e var ie prob le ma t i c he c he ne der i vano .

Server Mode

N eo 4j S er ver è l a mo dal i tà pi ù co mune me nt e uti l iz za t a a t t ua l me nt e . Il c uor e di un da ta ba se N eo4j se r ve r è un i st a nza di t ipo E mb edde d. E cco a l -c uni de i be ne fi-c i d er i va nt i da q ue s to mod al i tà di e s e-c uz io ne.

Vantaggi

R E S T AP I: I l se r ver è mu ni t o di una r ic ca R E ST AP I c he p er me t to no ai

c l ie nt d i sp ed ire r i c hi es t e i n for ma t o J S ON pe r me z zo d el pr oto co llo HT T P . Le ri s po st e ve ngo no r e st i t ui t e al l ’i nter no di do c ume nt i J S O N arr i c -c hi t i -co n H ype r me di a Lin ks -c he me t to no i n r i sa lt o ul ter ior i -car a tt er i st i-c he d el d at a se t. So no mo l tep li c i le funz io nal i tà me s s e a d i spo s iz io ne da lla R E ST AP I, ma i l s uo p iù gra nde va nt a ggio è q ue l lo d i pot er vi ac ce ndere p er me zz o d i una s e mp lic e app li ca z io ne br o ws e r, c o me F ire fo x, C hr o me o I nt er ne t E xp lor er.

(31)

P lat for m I n d e p e n de nc e: Da to c he le i nfor ma z io ni c o nt e nute ne l s er ver

ve ngo no acc ed ute p er me z zo di do c ume nt i J SO N sp edi t i at tr a ver so l ’HT T P, l e ap pl ic az io ni c li e nt pos s o no e s s er e co st r uit e su q ual s ia s i t ipo d i p i at t a -fo r ma , b a st a p o ss ed ere de l le l ibr er ie c li e nt HT TP.

S c al i ng I n de p en d e nc e : Q ua ndo neo4j vie ne e se gui t o i n mo da l it à se r ve r

po s s ia mo a ume nt a re o d imi nui r e i l nume ro d i comp o ne nt i de l c l us ter i nd i -p e nde nt e da l ti -po d i a-p-pl i ca zi o ne .

I s o la me n t o da l co mp o rta me n t o de l GC de ll e a lt re a pp l ica z io ni : I n

mo d a li t à se r ve r, N eo4j è pro te tt o d al l ’i nfl ue nz a che po tr ebb e a ver e la Gar-b a ge Co l lec t io n ( G C) di q ua l s ia s i a ltr a app l ic az io ne. O vvi a me nt e, es s e ndo N eo 4j una te c no lo gia rec e nte e b a sa ta s ul la J VM , a nco ra prod uce q ua lc he “garbage” (sta a significare che, nel momento in cui si conclude un qua l-c he t ipo d i pr ol-c ed ur a i nte r na a l da tab a se , la me mor i a no n vie ne l-co mp l et a-me nt e r il a sc ia ta d a q ue st i pro ce s s i i nte r ni ). N el c or so de l t e mpo l ’i mp a tto d i Ne o4j s ul ga rba ge col l ec tor è st ato a t t e nta me nt e mo ni tor ato , e d ura nte l o s vi l uppo è s ta to ot t i mi z za to p er re nder e mi ni mo o gni e ffe t to.

Q ua ndo si e se gue Neo4j i n mo da l it à E mb ed ded è b uo na re go l a t e ne r c o nt o a nc he d el l e se gue nt i no te .

N etw o r k Ov er h ea d: Vi è un cer to o ver hea d d i co muni c a z io ne pe r o gni

r ic hi e st a ht tp . Dopo la pr i ma r ic hie s ta , l a co nne s s io ne T CP r i ma ne ap er ta fi no a ll a c hi us ur a d a p arte de l c li e nt.

P er r eq u e st t ra n sa cti ona l: O gni r ic hie s t a da p art e d el c li e nt vi e ne e s e

-gui t a co me una s i ngo la tr a nsa zi o ne , a to mi c a me nt e se par a ta d a ll e a l tre . T ut ta vi a , la RE ST AP I for ni s ce un s up por to pe r l ’e s ec uz io ne d i op er az ioni in batch (ovvero l’esecuzione “accorpata” delle operazioni).

Clustering – Neo4j High Available

Q ua lor a s i vo gl ia gar a ntir e c he i l pr opr io s i st e ma s ia i n gr ado d i for nire un s er vi zio di er o ga zi o ne de i d a ti co nt i nuo , se nza f ai lu re po in t e i n grado di bilanciare e gestire un’enorme mole di richieste, Neo4j High Available ( H A) è l a r i spo s ta a q ues t a e si ge nza [3] . N eo4j H A è s ta to pr o get ta to pe r r e nd ere se mp l ic i, le tr ans a z io ni d a una si ngol a ma c c hi na ad un una ma c c hi na mul t i p la, se nza dove r ca mb i ar e la t ipo lo gia d el le i s ta nz e c he a nd ra n -no a co mp orr e il c l us ter .

(32)

C o ns id er ia mo un i st anz a d i d a tab a se N eo4j e s i s te nte , pr e se nte all’interno di una sin gola macchina, già popolato e configurato a dovere . P e r r ep li ca re t a le app li c az io ne i n una ma c c hi na mul t i pl a (o cl us t er) , l’unico cambiamento richiesto è quello di cambiare un semplice parametro d i co nfi gura z io ne d el l ’i st a nza . S ia Neo 4j s ta nd alo ne c he H A, i mp le me nt a-no l a s te s s a i nt er fac c ia, e a-no n r ic hie do a-no ul te rio ri mo di fi c he .

N eo 4j H A è i n grado d i for nir e le se gue nt i funz iona l i tà :

1 . F or ni s ce una fa ul t to le ra n t d ata ba se a rc h i te ct ur e , ne l la q ual e d i -ve r se i st a nz e , c hia ma t e “S l a -ve ”, -ve ngo no co nfigur a te pe r p ot er e s se re l’esatta copia di una singola istanza, detta “Master”. Questo permette al s i s t e ma ut e nt e fi na le d i e s s er e co mp l et a me nt e funz io na le s ia le tt ura c he i n s cr it t ur a i n ca so d i un had wa r e fa i l ur e , i n a ltr e p aro la ne l ca s o una ma c c hi na c he co mpo ne i l cl us t er s i “ro mp a ”.

2 . F or ni s ce una ho r i zo n tal l y s ca li ng r ead -m o st ly a rc h it ec t u re c he p er me t t e a l si s t e ma di ge s t ire me gl io il c ari co di l e tt ura d i una s i ngo la i s t a nz a d i da tab a se N eo4j .

O gni co mp o ne nt e d i un c l us te r Ne o4j po s s ie de al s uo i nter no una co pia d el l ’i nter o da ta ba s e. R i sp et to ad a l tre i mp o st az io ni ma st e r s la ve r epl i c a

-t io n , Neo4j è i n grad o di ge s-t ir e l e r ic hie s -te di s cr i -t-t ura s u -t u-t-t e l e ma c c h

n e , co s ic c hé no n ci si a i l bi s o gno di ri ndi ri zz are spe c i fi ca t a me nt e le r i-c hi e st e al ma s t er.

C o me è s ta to ac ce nna to i n pr ec ede nza , un d at aba s e E mb edd ed p uò far p ar te di un c l us ter , co me se fo s s e una ve rs io ne s e r ve r. I nfat t i, un cl us t er N eo 4j p uò e s s er e co mpos t o s ia d a i s ta nze i n S er ve r M od e c he i n E mb edd ed M ode . Q ue s ta a rc hi te tt ur a “ibr ida ” è co mune i n q ue gli sc e nar i i n c ui un i mp r e sa vuo l e r e nd er e il prop rio s i st e ma co mp let a me nt e i nt e gr at o ( E nte r-pr i se I nte gra t io n) ; i rego la ri a ggio r na me nt i che ve ngo no e s e gui ti s ule i s t a nz e E mb edde d d i Neo4j , ve ngo no a lor o vo l ta app li ca t i s ui s er ver.

(33)

Come opera Neo4j HA

U n c l ust er N eo4j H A o pe ra co rpor at i va me nt e e ogni i s ta nza d i d a tab ase c o nt i e ne l a l o gi ca ne ce s sa ri a al fi ne d i c oord i nar si co n gli a ltr i me mb r i del c l us te r. Al l 'a vvio un'i s t anz a d i da t aba s e N eo4j HA c erc her à di co nnet t er si a un c l us te r e si s te nt e sp ec i fic at o i n fa s e d i confi gur a zio ne. Se i l c l uste r e s i s te, l 'i s ta nza s i unir à c o me uno sl a ve . I n ca s o c o nt rar io , ver rà c re at o i l c l us te r e l 'i st a nz a di ve nte rà i l s uo ma s t er . Q ua ndo N eo4j vie ne e se gui to in H A mo d e, il c l ust er c he ne na sce rà s ar à se mp re co mpo s to da al me n o un s i ngo lo ma s t er e z ero s lave .

Scrittura

Q ua ndo s i e se gue un'ope ra zi o ne d i sc ri t t ur a s u uno s la ve , o gni az io ne s a rà si ncro ni zz at a co n il ma s t er , e do vra nno e ss e re a cq ui si ti loc ks (b lo c -c hi ) s ia s ul ma s t e r -c he s ul l o s la ve . Ne l mo me nt o i n -c ui vi e ne es e gui to i l c o mmi t de l la tra ns a zio ne , sar à i nna nz it ut to co mp le ta t a s ul ma s t er e po i, i n c a so di s uc ce s so , s ull o sl a ve . P er gar a nti r e l a c oe re nza , i da ti d el lo s la ve do vra nno e s s er e se mp re i n li ne a co n q uel l i de l ma s t er pr i ma di e se guir e un'o p era z io ne d i s cr it t u ra . È i l pro to col lo d i comu ni c a zi o ne tra lo s la ve e i l ma s t er c he co ns e nte di ma nt e ne re il s i s te ma in uno st at o di co ere nt e , i n mo d o c he gli a ggio r na me nt i ve nga no ap pl ic at i aut o ma t i ca me nt e a uno sla -ve c he co muni c a co n il suo ma s t er .

Le t ra ns az io ni di s cri t t ura c he ve ngo no e se gui te d ir et ta me nt e s ul ma s t er saranno eseguite come se quest’ultimo fosse in non-HA mode (normal-me n t e ) . I n c a so d i s ucce s s o de l la t ra ns az io ne, e s s a verr à i nvia ta ( p us he d o ut) ad un nume r o co nfigur ab i le di sl a ve (d i d e fa ul t u n o ). Q ue s ta pro ced u -r a vi e ne fa t ta co n “ot t imi s mo ” , o vve-r o , q ual o-ra l ’op e-ra z io ne d i -rep l ic a de i d at i fa l li s ca , è co munq ue gar a nt i ta la d urab i li tà de l le i nfor ma z i o ni , da to che sono presenti all’interno dell’istanza master . Scrivere direttamente sul ma s t e r a ume nt a c o m u n q u e i ri s c hi d i p erd i ta del l e tr a nsa zi o ni no n a ncor a c o mp le ta t e , è b uo na re gol a co m uni c a re s ol a me nt e co n gl i s la ve .

(34)

Gestione delle Failure

Ogni volta che un’istanza Neo4j non è più disponibile, ad esempio per vi a d i un gua st o hard wa r e o i nt err uzi o ni d el l a r ete , le a l tr e i st a nz e de l cl u s t er so no i n gra do d i ri l e va rl o e se gna l ar lo come t e mp or a ne a me nt e fa i

-l ed . U na i s ta nza d i d at ab a se c he d i ve nta d i spo nib i-l e do po -l’i ndi sp o ni bi -l ità

ve rr à a uto ma t ic a me nt e ins e ri t a nel c l ust er . Se i l ma s t e r vi e ne me no , un a lt ro me mb r o (i l pi ù ada lt lto ) sa rà e le lt lto da s la ve a ma s lt er do po c he i l q u o -r um s a -r à s t ato -r a ggi unto a l l 'i nte -r no de l c l us te-r. Q ua nd o i l nuo vo ma s t e-r a vrà c a mb i ato il s uo r uo lo i nfor me r à t utt i i gli a l tr i co mpo ne n -t i . Nor ma l me n-t e un nuovo ma s -t er vi e ne e le -t-t o e d i vie ne a -t -ti vo ne l giro di po c hi se co nd i e d ura nte q ue st o per iod o ne s s un a op er az io ne di s cr it t ur a può a vve nir e, e s s e ve ngo no b loc ca t e e i n rar i ca s i vi e ne l a nc ia t a un'e cc ez i o n e . L'uni c a vol t a c he q ue s to ac ca de è q ua ndo un vec c hio ma s t er ha appo r -t a -to d e i c a mb ia me n-t i pr ima d i d i ve n-t ar e i nd i spo ni bi l e, e i c a mb i a me n-t i non s o no st a ti rep l ic at i s u nes s un a lt ro me mb r o d e l c lus t er . S e i l nuo vo ma s t er vi e ne e le tt o ed e se gue mod i fic he pr i ma c he i l vec c hio ri tor ni a t ti vo , c i sa r a nno d ue " d ira ma z i o ni " de l da ta ba se do po i l p unt o i n c ui il vec c hi o ma -s t er è di ve nuto i nd i -spo ni bi l e . Il ma -s t er d ec ad uto -si p or ter à vi a i l pro prio d at aba s e ( la s ua “di ra ma z io ne” ) e sc ar ic herà una c opi a co mp l e ta d el nuovo ma s t e r , pe r po i di ve ntar e di spo nib i le co me s la ve .

Tutto questo può essere riass unto:

 O pe ra zio ni di s cr it t ur a po s so no e s s ere e s e guit e s u q ua l si a s i i s ta nza d i d at ab a se d i un cl us t er.

 N eo 4j H A è fa ul t t ol era nt e p uò co nti nuar e a d ope rar e si a c he r i s ul t i -no o ffli ne una s eri e d i ma c c hi ne opp ur e c he ne r i ma nga a nc he solo una at t i va .

 G l i sc h i a vi s ar a nno s i ncro ni zz at i a uto ma t i c a me nt e co n i l ma s t er d u -r a nte l e o pe-r az io ni d i s c-r i tt u-ra.

 S e il ma s t er di vi e ne o ffli ne ( vi e ne me no) un nuovo ma s t er sar à e le tt o a uto ma t i c a me nt e.

 I l cl us te r ge s t i sc e a utoma t i c a me nt e le i s ta nze c he d i ve ngo no i nd i -s po nib i li (pe r e -s e mp io a ca u-s a d i p robl e mi d i ret e) , e fa i n mod o di a cc e tt ar li co me me mb r i d el cl us t er a nc he q ua ndo so no di nuo vo d i -s po nib i li .

 Le t ra ns az io ni so no a tomi c he , coe re nt i e d ur e vo li , e po i e ve nt ua l -me nt e prop a ga t e a d a l tr i s l a ve .

(35)

 G l i a ggior na me nt i de gl i s l a ve so no co er e nt i per na t ur a, ma po s so no e s s er e c o nfi gur at i p er es s e re “s p i nt i ot t i mi s t ic ame nt e ” d a un ma s ter d ura nte i l co mmi t .

 S e i l ma s t er di vi e ne o ffli ne , q ual s ia s i oper az io ne d i s cr it t ur a i n e s e -c uz io ne ver rà b lo-c -ca ta e verr à e s e guito il r ol lba -c k . I n ol tr e t ut te le nuo ve tr a nsa z io ni ve rra nno bl oc ca te o fa l li t e fi no a q ua ndo un nuo vo ma s t e r t or nerà d i spo nibi l e.

 Le le tt ure s o no H A e la c ap ac it à d i ge st ir e i c ar ic hi di l et t ur a sc al ano con l’aumentare delle istanze di database che compongono il cluster .

Arbiter (arbitro)

S o no p ar ti co lar i i s ta nz e d i s er ver N eo4j . Gl i ar bit r i p o ss o no e s se re c o n -s i der a ti co me pa rt ec ipa nt i a l cl u-s t er e i l loro r uo lo è q ue ll o d i pre ndere p ar te a ll e e l ez io ni d i u n ma s t er co n l 'uni co sc opo di ro mp er e i le ga mi che b loc ca no il pro c e s so d i el e zio ne de l ma s t er .

S c e na ri o: Abbi a mo un cl us t er i n c ui s i di s po ne d i un gr uppo d i d ue i s t a nz e d i da tab a se Neo 4j e un'i s ta nz a arb i tro s upp le me nt a re , i l c l ust er a n -c ora god e d el l a tol le ra nza d i un si ngol o gua sto d i una de ll e tr e i st a nz e.

Load Balancing

Q ua ndo vie ne c os tr ui to un cl us t er, bi so gna co nsi de rar e d i bi l a nc ia re il c ar ic o de l tr a ffico de ll e r i c hi e st e c he lo a ttr a ver s a, i n mo do d a a i uta rlo a ma s s i mi z z ar e il t hro ughp ut (r e nd i me nto ) e r id ur re l a la t e nz a. N eo4j non po s s ie de un Loa d B a la nc er n a ti vo, pe rc iò il co mp it o de l b il a nci a me nto è a ddo s sa to c o mp le ta me nt e d e ll e i nfra s tr ut t ure c he co mp o ngo no l a re te . D ato c he l e i nter ro ga z io ni ve ngo no sp ed it e via HT T P , vi e ne co ll oc ato t ra l a r ete e s t er na i l c l us ter un Ser ver P ro xy c he funge da B i la nc ia tor e d i Car i co. Q ue s to ser ver si l i mi t er à a di re zio nar e le r ic hi e ste d i le t t ur a ver so gli sl ave e q uel le d i sc ri t t ura ve r so i l ma s t er .

Figura

Figura 1.4: Modello simile all’E -R, prodotto dall’anailisi 1.   F a se  2  –   A rr ic ch i me n t o:
Figura  2.6:  Rappresentazione  dell’attraversamento  ch e  viene  effettutato  i n  a s se nza
Figura  2.7:  Rappresentazione  dell’attraversamento  che  viene  effettu a- a-t oi n pr e se nza  de i  nod i a ggr e gaa-t i

Riferimenti

Documenti correlati

Difesa: assoluzione dell’imputato perché il fatto non è previsto dalla legge come reato e, in subordine, perché il fatto non sussiste o per non avere commesso il fatto.. MOTIVAZIONE

In relazione alle richieste da parte di colleghi infermieri di partecipare ai soccorsi alla popolazione colpita dal sisma riteniamo utile precisare che l’intervento sanitario

Invito tutti i paesi a investire nella salute pubblica, e in particolare nell'assistenza sanitaria di base, e seguire l'esempio della

Per molte persone, la pandemia è una fonte di paura, ma può anche essere una fonte di speranza che possiamo sconfiggere COVID-19 e possiamo sconfiggere l'HIV.. C'è molta

Il dato digitale che ottengo con il campionamento può comunque essere “molto grande” rispetto ai dati che tradizionalmente tratta una base di dati, pertanto si introduce un

Per realizzare pagine dinamicamente è necessaria una “qualche tecnologia” lato server, che permetta di inserire all’interno delle pagine stesse delle istruzioni che vengono

Amministr Via Vai Milano Prod P.le Lavater 3 Torino Distrib Via Segre 9 Roma Direzione Via Vai 2 Milano Ricerca Via Morone 6 Milano Dipartimento(Nome, Indirizzo,

Per allenare queste abilità e far acquisire ai bambini l’attitudine a domandarsi il perché delle cose, il lavoro nei diversi ambiti disciplinari trae spunto