Descrizione:
In questo talk faremo una panoramica di cosmosDB, capiremo quali sono le sue caratteristiche principali che lo distinguono da altri database conosciuti.
Capiremo perche CosmosDB racchiude in se "The power of the cosmos".
Speaker:
* Ivano Scifoni - Solution Architect - Almaviva
Full talk video: https://youtu.be/NpKy2zZI0x8
1 of 16
Download to read offline
More Related Content
The power of the cosmos in a DB .... CosmosDB
1. Ivano Scifoni
Email : iscifoni@libero.it
Twitter : @ivanoscifoni
Software Architect
.NET Foundation Member
2. Cos竪 CosmosDB
Feature Principali
Distribuzione globale
Disponibilit AlwaysOn
Sistema multimodello (Api SQL, MongoDB, Graph, Tabella, Cassandra )
Scalabilit
Coerenza
3. Azure Cosmos DB 竪 il database multimodello distribuito a livello globale di Microsoft.
Azure Cosmos DB garantisce la scalabilit, elastica e indipendente, della velocit effettiva e dello spazio di
archiviazione tra un numero qualsiasi di aree geografiche di Azure.
Assicura inoltre, latenza e disponibilit grazie a contratti di servizio (SLA, Service Level Agreement) completi.
Caratteristiche principali
Distribuzione globale
Disponibilit Always On
Pi湛 modelli di dati ed API, per laccesso ai dati (Api SQL, MongoDB, Graph, Azure
Table, Cassandra)
Scalabilit
Coerenza
4. possibile distribuire i dati a un numero qualsiasi di aree di Azure.
Ci嘆 consente di 束portare損 i dati stessi nelle localit in cui si trovano gli utenti, garantendo loro la latenza pi湛 bassa
possibile.
Con l'API multihoming di Azure Cosmos DB, l'app sa
sempre dove si trova l'area pi湛 vicina e invia le richieste al
data center pi湛 vicino.
Tutto questo 竪 possibile senza modificare la configurazione.
Si imposta l'area di scrittura e il numero di aree di lettura
desiderato.
Le altre operazioni vengono gestite automaticamente.
5. Contratto di servizio con disponibilit del 99,99% per tutti gli account di database in una singola area e disponibilit
in lettura del 99,999% per tutti gli account di database in pi湛 aree.
Distribuzione in un numero qualsiasi di aree di Azure per una maggiore disponibilit e migliori prestazioni.
6. Il modello dati di Azure Cosmos DB 竪 in grado di supportare diversi modelli di dati attualmente utilizzati in altri sistemi:
SQL Api (DocumentDB)
un motore di database JSON senza
schema con funzionalit di esecuzione
di query SQL avanzate.
Api MongoDB
compatibile con librerie, driver e
strumenti MongoDB esistenti
Api Cassandra
compatibile con librerie, driver e
strumenti Apache Cassandra esistenti
Api Graph (Gremlin)
supportano le API Open Graph (in base
alla specifica Apache TinkerPop,
Apache Gremlin).
Api Table
servizio di database (coppie chiave-
valore) progettato per offrire
funzionalit alle applicazioni di
archiviazione tabelle di Azure, senza
apportare modifiche alle app.
7. Elastically scalable throughput and storage
With Azure Cosmos DB, you can scale
your graphs seamlessly across
multiple servers. Azure Cosmos DB
supports graph databases that can
scale to virtually unlimited storage
sizes and provisioned throughput.
9. Essendo CosmosDB un servizio serverless, non dobbiamo preoccuparci del provisioning dei server, lo gestisce
direttamente il cloud. Questo ci permette di poter eseguire delle attivit di scaling con grande facilit.
Potenza di elaborazione:
Essendo CosmosDB un servizio serverless abbiamo la possibilit di controllare la potenza elaborativa dellistanza
assegnando ad ogni operazione un PESO.
Il peso 竪 calcolato in Unit Richiesta. L Unit Richiesta 竪 una quantit normalizzata di calcolo che CosmosDB
utilizza per servire la richiesta. Ad ogni contenitore dati, in fase di creazione , viene associato un valore di UR/s
(Unita Richiesta al secondo).
E possibile monitorare le UR utilizzate per ogni richiesta in quanto questa informazione 竪 presente nell header
della risposta.
Archiviazione:
Essendo CosmosDB un sistema pensato per la gestione di
grandi moli di dati 竪 possibile partizionare gli stessi per poter
ottimizzare le operazioni.
12. Azure Cosmos DB 竪 stato progettato da zero pensando alla distribuzione globale di tutti i modelli di dati.
pensato per offrire garanzie di bassa latenza stimabile e pi湛 modelli di coerenza meno rigidi e ben definiti.
Azure Cosmos DB offre attualmente cinque livelli di coerenza:
Assoluta
Decadimento ristretto
Sessione
Prefisso coerente
Finale
I modelli di coerenza con obsolescenza associata, sessione, finale e con prefisso coerente vengono definiti
"modelli di coerenza meno rigidi" in quanto forniscono un livello di coerenza inferiore alla coerenza assoluta,
ovvero il modello di coerenza massima disponibile.
13. Assoluta
la coerenza assoluta offre una garanzia
di linearit ovvero la garanzia che le letture
restituiscano la versione pi湛 recente di un
elemento.
Sessione
a differenza dei modelli di coerenza globale offerti dai livelli
di coerenza assoluta e con decadimento ristretto, la
coerenza di "sessione" ha come ambito una sessione del
client.
Decadimento ristretto
La coerenza con decadimento ristretto garantisce che il
ritardo delle letture sulle scritture sia al massimo pari
a K versioni o prefissi di un elemento o all'intervallo di
tempo t.
Prefisso coerente
Il prefisso coerente garantisce che le operazioni
di lettura non vedano mai il fuori sequenza delle
operazioni di scrittura. Se queste sono state
eseguite nell'ordine A, B, C, il client vede A, A,B o
A,B,C, ma mai il fuori sequenza ad esempio A,C o
B,A,C.
Finale
La coerenza finale 竪 la forma pi湛 debole di coerenza, in cui un client pu嘆 ottenere nel tempo valori obsoleti rispetto a
quelli gi visualizzati in passato.
La coerenza finale rappresenta il livello pi湛 debole, ma offre la latenza pi湛 bassa sia per le letture sia le per scritture.