introduzione a couchbase
DESCRIPTION
Couchbase e' il database NoSQL ad alta scalibilita' e performance attualmente utilizzato in produzione da aziende come Orbitz, Amadeus e PayPal. In Couchbase e' estremamente semplice aggiungere o rimuovere nodi, sempre mantenendo l'applicazione live. Couchbase supporta il formato JSON e permette di indicizzare i documenti tramite la funzione di map-reduce . Couchbase inoltre supporta la replica attiva tra piu' centri dati, permettendo cosi' di scalare l'applicazione a un livello globale.TRANSCRIPT
Introduzione+a+NoSQL+e+Couchbase+
Franco+Caporale+
Perché+il+NoSQL?+
Tre+Nuove+Tendenze+
Big+Data+ SaaS/Cloud+MolC+UtenC+
0+
0.2+
0.4+
0.6+
0.8+
1+
1.2+
1.4+
1.6+
1.8+
2+
2000+ 2006+ 2011+
Source:(IDC(2011(Digital(Universe(Study((h<p://www.emc.com/collateral/demos/microsites/emcBdigitalBuniverseB2011/index.htm)(
Trillions(of(G
igabytes((Ze<
abytes)(
Big+Data+• DaC+molto+eterogenei+a+crescita+esponenziale+
DaC+Non+StruMuraC+
DaC+StruMuraC(
Text,+Log+Files,+
Click+Streams,+
Blogs,+Tweets,+
Audio,+Video,+etc.+
E’+necessario+un+modello+dei+daC+piu’+flessibile+
MolC+UtenC+• UtenC+da+tuMo+il+mondo,+sempre+connessi+
UtenC+Smartphone+
Ore+passate+online+
35+Miliardi+di+ore+
1Miliardo+
++
Popolazione+online+
2Miliardi+
++
h<p://www.goBgulf.com/blog/onlineBJme(h<p://business.Jme.com/2012/02/14/oneBbillionBsmartphonesBbyB2016BhereBcomesBtheBmobileBarmsBrace/(
E’+necessario+un+database+facile+da+scalare+
SaaS/Cloud+• Le+nuove+applicazioni+uClizzano+un’architeMura+a+3+livelli+
ArchiteMura+client/server+
Client+User(interface(Business(and(data(processing(logic(
Database+Server+Data(
LAN+
Moderna+architeMura+a+3+livelli+
Web/App++Server+Tier(
Cloud+Public/Private/Hybrid+Cloud+
Database+Server+Tier+
INTERNET+
Un+database+che+si+puo’+scalare+orizzontalmente+si+adaMa+
bene+alle+applicazioni+su+cloud+
NoSQL+
++ ++
Piu’+daC+ Piu’+utenC+SaaS/Cloud+
Scalabilita’,+performance+e+facilita’+di+sviluppo+
In+mancanza+di+una+soluzione+gli+utenC+se+la+sono+inventata+
Dynamo+October(2007(
Cassandra+August(2008(
Voldemort+February(2009(November(2006(
Bigtable+
Poche+aziende+sono+in+grado+di+costruirsi+e+mantenersi++
un+database+
Draw+Something+Zynga+
Draw+Something+diventa+virale+in++3+seamane+
19(17(15(13(11(9(7(5(3(3/1(28(26(24(22(20(18(16(14(12(10(8(2/6(
Daily&Ac)ve&Users&(millions)&
21(
2(
4(
6(
8(
10(
12(
14(
16(
I+daC+crescono+in+modo+non+lineare…+
19(17(15(13(11(9(7(5(3(3/1(28(26(24(22(20(18(16(14(12(10(8(2/6(
Daily&Ac)ve&Users&(millions)&
21(
2(
4(
6(
8(
10(
12(
14(
16(
In+un+mese+30,000,000+di+downloads(della(app,(oltre(5,000+disegni+al(secondo,(
oltre(2,200,000,000+disegni+immagazzinaJ,(oltre(105,000(operazioni(al(secondo,(e(oltre(3.3+terabytes(di(daJ(in(totale.(
(
Invece+con+RDBMS……+
19(17(15(13(11(9(7(5(3(3/1(28(26(24(22(20(18(16(14(12(10(8(2/6(
The+Simpson’s:+Tapped+Out+Daily&Ac)ve&Users&(millions)&
21(
2(
4(
6(
8(
10(
12(
14(
16(
#2+Free(app(on(iPad(#3+Free(app(on(iPhone(
MySQL+o+NoSQL?+
La+maggioranza+delle+applicazioni+uClizzano+gli+RDBMS+
I+principali+moCvi+per+l’adozione++del+NoSQL+
Schema+rigido+e+non+flessibile+
Difficolta’+a+scalare++
Problemi+di+performance+
CosC+ Tua+I++precedenC+
Altri+
49%+
35%+
29%+
16%+
12%+ 11%+
Source:(Couchbase(Survey,(December(2011,(n(=(1351.(
Architettura moderna di un’applicazione web
Application Scales Out Just add more commodity web servers
Database Scales Up Get a bigger, more complex server
Nota(–(I(database(relazionali(sono(una(tecnologia(eccellente(ma(non(per(questo(uso.(
I database NoSQL utilizzano la stessa logica dell’applicazione
Application Scales Out Just add more commodity web servers
Database Scales Out Just add more commodity data servers
Scalando orizzontalmente si riducono I costi e aumentano le performance
NoSQL(Database(Servers(
Una+StruMura+dei+DaC+Diversa+
Modello+Relazionale+vs.+A+Documento+
Modello+“Relazionale”+ Modello+“A+documento”+
Collezione(di(documenJ(complessi(con(formaJ(arbitrari(e(schema(variabile(
Tabelle(con(schema(rigido(e(stru<ura(dei(daJ(predefinita(
JSON+JSON+
JSON+
C1+ C2+ C3+ C4+
{+
+
+
+
}+
Database+a+Documento+
• Ogni(record(e’(un(documento(a(se’(stante(
• Ogni(documento(ha(una(stru<ura(indipendente(
• I(documenJ(possono(essere(complessi(• Richiedono(una(chiave(unica(• I(daJ(sono(immagazzinaJ(in(formato(JSON,(XML(o(simili(
• Il(contenuto(puo’(essere(indicizzato(e(interrogato(
• Offrono(sharding(automaJco(e(repliche(
{"“UUID”:"“21f7f8de0805105b89086“Time”:" “2011004001T13:01:02.42“Server”:" “A2223E”,“Calling"Server”:" “A2213W”,“Type”:"“E100”,“Initiating" User”:" “[email protected]”,“Details”:"
{“IP”:"“10.1.1.22”,“API”:" “InsertDVDQueueItem”,“Trace”:" “cleansed”,“Tags”:"
[“SERVER”,"“US0West”,"“API”]
}}
Esempio+Social+Game++Profilo+Giocatore+
{(("jsonType":("player",(("uuid":("35767d02Ba958B4b83B8179B616816692de1",(("name":("Keith4540",(("hitpoints":(75,(("experience":(663,(("level":(4,(("loggedIn":(false(
}((
ID+Utente+
Esempio+Social+Game+OggeMo+
{(("jsonType":("item",(("name":("Katana_e5890c94B11c6B65746ce6c560",(("uuid":("e5890c94B11c6B4856Ba7a6B65746ce6c560",(("ownerId":("Dale9887"(
}(
ID+OggeMo+
ID+Utente+
Esempio+Social+Game+Mostro+
{(("jsonType":("monster",(("name":("Bauchan9932",(("uuid":("d10dfc1bB0412B4140Bb4ecBaffdbf2aa5ec",(("hitpoints":(370,(("experienceWhenKilled":(52,(("itemProbability":(0.5050581341872865(
}(
ID+
Mostro+
Esempio+Blog++Diviso+su+piu’+DocumenC+
{"“UUID”:"“21f7f8de0805105b89086“Time”:" “2011004001T13:01:02.42“Server”:" “A2223E”,“Calling"Server”:" “A2213W”,“Type”:"“E100”,“Initiating" User”:" “[email protected]”,“Details”:"
{“IP”:"“10.1.1.22”,“API”:" “InsertDVDQueueItem”,“Trace”:" “cleansed”,“Tags”:"
[“SERVER”,"“US0West”,"“API”]
}}
{ !“_id”: “Coucbase_Hello_World”,!“author”: “dborkar”, !“type”: “post”!“title”: “Hello World”,!“format”: “markdown”, !“body”: “Hello from [Couchbase](http://couchbase.com).”, !“html”: “<p>Hello from <a href=\“http: …!“comments”:[!
! “comment1_Couchbase_Hello_world”!! ]!
}! {"“UUID”:"“21f7f8de0805105b89086“Time”:" “2011004001T13:01:02.42“Server”:" “A2223E”,“Calling"Server”:" “A2213W”,“Type”:"“E100”,“Initiating" User”:" “[email protected]”,“Details”:"
{“IP”:"“10.1.1.22”,“API”:" “InsertDVDQueueItem”,“Trace”:" “cleansed”,“Tags”:"
[“SERVER”,"“US0West”,"“API”]
}}
{!“_id”: “comment1_Couchbase_Hello_World”,!“format”: “markdown”, !“body”:”Awesome post!” !}+
BLOG+
COMMENTI+
Esempio:+Profilo+Utente+Database'Relazionale'
Indirizzo+Utente+
1+ DEN+ 30303+CO+
2+ MV+ 94040+CA+
3+ CHI+ 60609+IL+
Informazioni+Utente+
KEY+ First+ ZIP_id+Last+
4+ NY+ 10010+NY+
1+ DipC+ 2+Borkar+
2+ Joe+
2+Smith+
3+ Ali+ 2+Dodson+
4+ John+ 3+Doe+
ZIP_id+ CITY+ ZIP+STATE+
1+ 2+
2+ MV+ 94040+CA+
Per+oMenere+informazioni+su+un+utente+specifico,+devi+effeMuare+un+JOIN+tra+
due+tabelle+
Tua+I+daC+di+un+utente+in+un+singolo+documento+
+{+
++++“ID”:+1,+
++++“FIRST”:+“DipC”,+
++++“LAST”:+“Borkar”,+
++++“ZIP”:+“94040”,+
++++“CITY”:+“MV”,+
++++“STATE”:+“CA”+
++}+JSON+
=+ ++
Esempio:+Profilo+Utente+Database'a'Documento'
User+ID+ Nome+ Cognome+ CAP+
1+ DipC+ Borkar+ 94040+
2+ Joe+ Smith+ 94040+
3+ Ali+ Dodson+ 94040+
4+ Sarah+ Gorin+ NW1+
5+ Bob+ Young+ 30303+
6+ Nancy+ Baker+ 10010+
7+ Ray+ Jones+ 31311+
8+ Lee+ Chen+V5V3
M+
• ++• ++
• ++
50000+ Doug+ Moore+ 04252+
50001+ Mary+ White+ SW195+
50002+ Lisa+ Clark+ 12425+
ID+Paese+TEL3+
+001+
ID+Paese+ Nome+Paese+
001+ USA+
002+ UK+
003+ ArgenCna+
004+ Australia+
005+ Aruba+
006+ Austria+
007+ Brazil+
008+ Canada+
009+ Chile+
• ++• ++• ++
130+ Portugal+
131+ Romania+
132+ Russia+
133+ Spain+
134+ Sweden+
User+ID+ Foto+ID+ Commento+
2+ d043+ NYC+
2+ b054+ Bday+
5+ c036+ Miami+
7+ d072+ Sunset+
5002+ e086+ Spain+
Tabella+Foto+
++001+
++007+
++001+
++133+
++133+
User+ID+ Status+ID+ Text+
1+ a42+ At+conf+
4+ b26+ excited+
5+ c32+ hockey+
12+ d83+ Go+A’s+
5000+ e34+ sailing+
Tabella+Status+
++134+
007+
++008+
++001+
++005+
Tabella+Paese+
User+ID+ Affl+ID+ Affl+Name+
2+ a42+ Cal+
4+ b96+ USC+
7+ c14+ UW+
8+ e22+ Oxford+
Tabella+Affiliazioni+ID+Paese+
++001+
++001+
++001+
++002+
ID+Paese+
ID+Paese+
001+
001+
002+
001+
001+
001+
008+
001+
002+
001+
Tabella+Utente+
.+
.+
.+
EffeMuare+una+Modifica+su+RDBMS+
Modifiche+su+un+database++a+documento+
+{+
++++“ID”:+1,+
++++“FIRST”:+“Don”,+
++++“LAST”:+“Pinto”,+
++++“ZIP”:+“94040”,+
++++“CITY”:+“MV”,+
++++“STATE”:+“CA”,+
++++“STATUS”:++
++++++{++“TEXT”:+“At+Conf”++
+
+
+ ++
}+
}+
++++++“GEO_LOC”:+“134”+},+
“COUNTRY”:+”USA”+
Basta+aggiungere+le+informazioni+sul+documento+
JSON+
,+}+
I+Database+NoSQL+
Catalogo+dei+NoSQL+
ChiavewValore+
Memcached( Redis(
StruMura+DaC+ Documento+ Colonna+ Grafico+
MongoDB(
Couchbase( Cassandra(
Cache(
(mem
ory(on
ly)(
Database(
(mem
ory/disk)(
Neo4J(
Couchbase+Open+Source+
• Il(principale(database(NoSQL(distribuito(
• Supporta(sia(le(applicazioni(chiaveBvalore(che(a(documento(
• Tun(I(componenJ(sono(disponibili(con(licenza(Apache+2.0+Public+License+
• Disponibile(come(pacche<o(sooware(sia(nella(versione(Community(che(in(quella(Enterprise(
Couchbase Open Source Project
≠+
Scalabilita’(Semplice(
Performance(Elevate(e(CostanJ(
Sempre(Live(24x365(
Ingrandisci(il(tuo(cluster(con(un(click(mentre(l’applicazione(
rimane(live(
Tempi(di(risposta(costanJ(so<o(il(millisecondo(per(operazioni(di(
scri<ura(e(le<ura((
L’applicazione(non(e’(mai(inanva(anche(in(caso(di(
aggiornamenJ,(manutenzione(etc.(
Modello(DaJ(Flessibile(
Supporto(per(documenJ(JSON(senza(uno(schema(rigido(
Principi+Chiave+di+Couchbase+Server+
Differenze+Principali+RispeMo+ad+Altri+Database+NoSQL+
• Perme<e(un(alJssimo(numero(di(connessioni(contemporanee((fondamentale(per(applicazioni(web(interanve)(
• Nessun(locks(• Cache(naJva+• Hash(parJJoning((non(range)((((
!(non(si(formano(“hotspots”(
• Sharding(automaJco(
Dietro+le+Quinte+di+Couchbase+
3(3( 2(
Server+Singolow+Operazione+ScriMura+con+Couchbase+
Managed(Cache(
Disk(Que
ue(
ReplicaJon(Queue(
App(Server(
Doc+1’+
Doc+1+
Doc+1’+Doc+1+
Doc+1’+
Disk(
To(other(node(
Couchbase(Server(Node(
GET+
Doc+1+
3(3( 2(
Server+Singolow+Operazione+LeMura+con+Couchbase+
Disk(Que
ue(
ReplicaJon(Queue(
App(Server(
Doc+1+
Doc+1+Doc+1+
Managed(Cache(
Disk(
To(other(node(
Couchbase(Server(Node(
COUCHBASE+SERVER++CLUSTER+
Operazioni+di+Base+sul+Cluster+
• Tua+I+nodi+sono+uguali+e+I+documenC+sono+ugualmente+distribuiC+
• Ogni+server+conCene+sia+I+documenC+aavi+che+quelli+replica+
• La+mappa+del+cluster+ha+le+coordinate+su+dove+si+trovano+I+documenC+++++++++++++++++++L’applicazione(non(ha(bisogno(di(saperlo(
User(Configured(Replica(Count(=(1(
READ/WRITE/UPDATE+
+
+ACTIVE+
Doc+5+
Doc+2+
Doc+
Doc+
Doc+
SERVER+1+ +
+ACTIVE+
Doc+4+
Doc+7+
Doc+
Doc+
Doc+
SERVER+2+
Doc+8+
+
+ACTIVE+
Doc+1+
Doc+3+
Doc+
Doc+
Doc+
REPLICA+
Doc+4+
Doc+1+
Doc+8+
Doc+
Doc+
Doc+
REPLICA+
Doc+6+
Doc+3+
Doc+2+
Doc+
Doc+
Doc+
REPLICA+
Doc+7+
Doc+9+
Doc+5+
Doc+
Doc+
Doc+
SERVER+3+
Doc+6+
APP+SERVER+1+
COUCHBASE+Client+Library+++ CLUSTER+MAP+
COUCHBASE+Client+Library+++ CLUSTER+MAP+
APP+SERVER+2+
Doc+9+
Aggiungere+Nodi+al+Cluster+
• Due+servers+aggiunC+con+un+solo+click+
• I+documenC+vengono+automaCcamente+ribilanciaC+aMraverso+il+cluster+Col(minimo(spostamento(di(documenJ(possibile(
• La+mappa+del+cluster+viene+aggiornata+
• L’applicazione+ora+e’+supportata+da+un+numero+maggiore+di+servers.+
+
+
REPLICA+
ACTIVE+
Doc+5+
Doc+2+
Doc+
Doc+
Doc+4+
Doc+1+
Doc+
Doc+
SERVER+1+ +
+
REPLICA+
ACTIVE+
Doc+4+
Doc+7+
Doc+
Doc+
Doc+6+
Doc+3+
Doc+
Doc+
SERVER+2+ +
+
REPLICA+
ACTIVE+
Doc+1+
Doc+3+
Doc+
Doc+
Doc+7+
Doc+9+
Doc+
Doc+
SERVER+3+ +
+
SERVER+4+ +
+
SERVER+5+
REPLICA+
ACTIVE+
REPLICA+
ACTIVE+
Doc+
Doc+8+ Doc+
Doc+9+ Doc+
Doc+2+ Doc+
Doc+8+ Doc+
Doc+5+ Doc+
Doc+6+
READ/WRITE/UPDATE+ READ/WRITE/UPDATE+
APP+SERVER+1+
COUCHBASE+Client+Library+++ CLUSTER+MAP+
COUCHBASE+Client+Library+++ CLUSTER+MAP+
APP+SERVER+2+
COUCHBASE+SERVER++CLUSTER+
User(Configured(Replica(Count(=(1(
Caduta+di+un+Nodo+
+
+
REPLICA+
ACTIVE+
Doc+5+
Doc+2+
Doc+
Doc+
Doc+4+
Doc+1+
Doc+
Doc+
SERVER+1+ +
+
REPLICA+
ACTIVE+
Doc+4+
Doc+7+
Doc+
Doc+
Doc+6+
Doc+3+
Doc+
Doc+
SERVER+2+ +
+
REPLICA+
ACTIVE+
Doc+1+
Doc+10+
Doc+
Doc+
Doc+7+
Doc+9+
Doc+
Doc+
SERVER+3+ +
+
SERVER+4+ +
+
SERVER+5+
REPLICA+
ACTIVE+
REPLICA+
ACTIVE+
Doc+9+
Doc+8+
Doc+ Doc+6+ Doc+
Doc+
Doc+5+ Doc+10+
Doc+2+
Doc+8+ Doc+
Doc+
• I+server+della+app+accedono+ai+daC+
• Le+richieste+al+Server+3+falliscono+
• Il+Cluster+idenCfica+che+un+nodo+e’+offline+Le(repliche(vengono(promosse(ad(anve(e(la(mappa(del(cluster(viene(aggiornata(
• Le+richieste+della+app+ora+si+dirigono+sul+server+appropriato+
• Il+tuMo+e’+seguito+dal+ribilanciamento+dei+daC+
Doc+
Doc+1+ Doc+3+
APP+SERVER+1+
COUCHBASE+Client+Library+++ CLUSTER+MAP+
COUCHBASE+Client+Library+++ CLUSTER+MAP+
APP+SERVER+2+
User(Configured(Replica(Count(=(1(
COUCHBASE+SERVER++CLUSTER+
Cross+Data+Center+ReplicaCon+(XDCR)+
COUCHBASE+SERVER++CLUSTER+NY+DATA+CENTER+
+
+ ACTIVE+
Doc++
Doc+2+
SERVER+1+
Doc+9+
+
+
SERVER+2+ +
+
SERVER+3+
RAM(
Doc++ Doc++ Doc+
ACTIVE+
Doc+
Doc++
Doc++
RAM(
ACTIVE+
Doc++
Doc++
Doc+
RAM(
DISK(
Doc++ Doc+ Doc++
DISK(
Doc+ Doc+ Doc+
DISK(
COUCHBASE+SERVER++CLUSTER+SF+DATA+CENTER+
+
+ ACTIVE+
Doc++
Doc+2+
SERVER+1+
Doc+9+
+
+
SERVER+2+ +
+
SERVER+3+
RAM(
Doc++ Doc++ Doc+
ACTIVE+
Doc+
Doc++
Doc++
RAM(
ACTIVE+
Doc++
Doc++
Doc+
RAM(
DISK(
Doc++ Doc+ Doc++
DISK(
Doc+ Doc+ Doc+
DISK(
Couchbase+Server+Admin+Console+
Altri+Usi+Comuni+del+NoSQL+
Market+AdopCon+–+Customers+
Internet+Companies+ Enterprises+
More+than+300+customers+ww+5,000+producCon+deployments+worldwide+
CaraMerisCche+dei+DaC+
• StruMura+definita+dall’utente+(TwiMer+feeds)+• Serve+supporto+per+crescita+esponenziale+(Apps+virali)+• StruMura+dei+daC+non+omogenea+
• C’e’+necessita’+di+cambiare+struMura+frequentemente+
• Lunghezza+dei+documenC+variabile+
• StruMura+dei+daC+gerarchica+
+
Couchbase+e’+la+scelta+ideale++
RequisiC+di+Performance+
• Latenze+estremamente+basse+(es.+1millisecondo)+
• Traffici+elevaC+(es.+200000+ops/sec)+
• Numero+di+utenC+elevato+
• Domanda+non+prevenCvabile+con+crescite+improvvise+
• C’e’+predominanza+di+accesso+direMo+ai+documenC+
• Alto+traffico+in+leMura+e+scriMura+
+
Couchbase+e’+la+scelta+ideale++
Applicazioni+Comuni+Social+Gaming+
+• Couchbase(conJene(I(daJ(sugli(utenJ(e(I(giochi(
• Esempi(clienJ:(Zynga,(Tapjoy,(Ubisoo,(Tencent(
+
+Apps+Mobili+
+• Couchbase(conJene(daJ(su(utenJ(e(contenuJ(
• Esempi(clienJ:(Kobo,(PlayJka((
+
+
Pubblicita’+Online++
• Couchbase(conJene(info(sugli(utenJ(per(un(accesso(veloce(
• Esempi(clienJ:(AOL,(Mediamind,(Convertro((
+
Informazioni+di+Sessione++
• Couchbase(come(database(chiaveBvalore(
• Esempi(clienJ:(Concur,(Sabre(
+
Profili+UtenC++
• Couchbase(come(database(chiaveBvalore(
• Esempi(clienJ:(Tunewiki(
+
Cache+ad+Alta+Disponibilita’++
• Couchbase(uJlizzato(come(livello(di(cache(
• Esempi(clienJ:(Orbitz(
+
Metadata+e+ContenuC+• Couchbase(insieme(ad(ElasJcsearch(
• Esempi(clienJ:(McGraw(Hill(+
+Aggregazione+DaC+
+• Couchbase(aggrega(I(daJ(dai(social(media(
• Esempi(clienJ:(Sambacloud(
+
• Informazioni+sui+profili+utenC+
• Informazioni+di+registrazione+
• Nomi+utenC+e+password+
+
Profili+UtenC+
Esempio+d’uso:+Profili+UtenC+
Accesso+chiavewvalore+con+le+seguenC+caraMerisCche:++
• Alta+consistenza+• Scalabilita’+per+gesCre+cenCnaia+di+milioni+di+utenC+
• Il+sistema+dev’essere+sempre+live+24x7x365+
• Alta+consistenza+a+livello+del+cluster.+• Il+cluster+puo’+essere+allargato+o+ristreMo+per+supportare+la+crescita+esponenziale+di+utenC+
• Il+cluster+dev’essere+disponibile+24/365.+Con+Couchbase+tuMe+le+operazioni+di+manutenzione,+aggiornamento+e+riparazione+vengono+effeMuate+lasciando+l’applicazione+live.+Grazie+al+cross+datacenter+replicaCon+e’possibile+collegare+due+centri+daC+diversi+per+ridurre+I+rischi+di+perdita+daC+e+per+una+maggiore+prossimita’+agli+utenC+
Tipologia+di+DaC+ RequisiC+dell’applicazione+
Perche’+NoSQL+e+Couchbase+
h<p://blog.couchbase.com/couchbaseBnosqlBtunewikiBbillionBdocumentsBandBcounJng((
• Preferenze+utenC+e+daC+psicografici+
• Cronologia+delle+ricerche+• Cronologia+delle+parole+chiave+acquistate+dall’azienda+
• Cronologia+delle+pubblicita’+visualizzate+
Pubblicita’+Online+
Esempio+d’uso:+Pubblicita’+Online+
• Alte+performance+per+soddisfare+I+tempi+ristreassimi+degli+utenC+(soMo+I+40ms+in+totale)+
• Scalabilita’+per+sostenere+traffici+elevaC+e+cenCnaia+di+milioni+di+utenC+
• Sistema+disponibile+24x7x365+per+evitare+perdite+di+guadagni+
• Accesso+ai+daC+in+meno+di+un+millisecondo+costante,+lasciando+quindi+piu’+tempo+per+l’analisi+
• Facilita’+a+scalare+il+cluster+a+cenCnaia+di+servers+se+necessario+• Il+cluster+rimarra’+sempre+live+e+disponibile,+evitando+quindi+perdite+di+profia..+
Tipologia+di+DaC+ RequisiC+dell’Applicazione+
Perche’+NoSQL+e+Couchbase+
h<p://www.couchbase.com/ad_platorms((
• Oggea+dell’applicazione+
• RisultaC+delle+ricerche+• Informazioni+di+sessione+
• Pagine+web+ad+alto+uClizzo+• Metadata+
Cache+ad+alta+disponibilita’+
Esempio+d’uso:+Cache+ad+Alta+Disponibilita’+
• Tempi+di+risposta+brevissimi+e+costanC+
• Alta+disponibilita’w+24x7x365+• Facile+da+gesCre+mantenendo+l’applicazione+sempre+live+
• SosCtuisce+l’intero+livello+di+caching+
• Basse+latenze+(soMo+il+millisecondo)+e+prestazioni+costanC+e+prevedibili+
• TuMe+le+operazioni+possono+essere+effeMuate+lasciando+live+l’applicazione+
• CompaCbile+con+memcached.+La+migrazione+a+Couchbase+viene+effeMuata+lasciando+intaMa+l’applicazione+
• Alta+disponibilita’+con+repliche+all’interno+del+cluster+e+all’esterno+(XDCR)+per+essere+garanCC+anche+in+caso+di+disastri+
Tipologia+di+daC+ RequisiC+dell’applicazione+
Perche’+NoSQL+e+Couchbase+
h<p://www.couchbase.com/memcached((
QuesCons?+
Demo+
Non+dimenCcate+di………+
Scaricare+e+fare+praCca+con+Couchbase+Server+
hMp://www.couchbase.com/download+
Iscrivervi+sul+gruppo+di+Couchbase+Italia+su+LinkedIn+
hMp://www.linkedin.com/groups/CouchbasewItaliaw4932288+
Iscrivervi+sul+nostro+Community+Portal+hMp://www.couchbase.com/communiCes/user/register+
Grazie+a+Tua!+