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
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 62 .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
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
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.
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.
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.
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 .
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
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 .
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 .
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]
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 .
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 .
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 .
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 .
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 .
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.
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
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 ;
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 .
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.
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.
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.
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.
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.
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 .
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.
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 .
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 .
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 .