0
Un paio di mesi fa, ho scritto un approfondito pezzo di Microsoft Cosmo DB, che è di Redmond ingresso nel mondo distribuite a livello globale cloud database. L’annuncio del Cosmo DB disponibilità generale (GA) ha avuto luogo in coordinamento con la società di Costruire evento, che si terrà nel mese di Maggio. La settimana seguente, Google ha annunciato che il GA di Cloud Chiave, distribuite a livello globale database operativo proprio.
Leggi anche: all’Interno di Microsoft Cosmo DB
Leggi anche: Microsoft debutta Azure Cosmo DB, un superset del suo servizio di DocumentDB
Leggi anche: Google Cloud Chiave generalmente disponibile
A causa della confluenza di questi annunci, e da due dei tre principali fornitori di cloud pubblici, ho pensato che sarebbe stato utile per seguire il mio Cosmo DB copertura con copertura per il Cloud Chiave che è stato di simile portata e la profondità. Aggiungere in un briefing con la Chiave da Google Cloud Product Manager Domenico Preuss che Google è stato così gentile da offrire, ed è stato un slam dunk. Così procediamo.
Confronti competitivi
Prima di tutto andiamo a discutere di come Chiave confronta — e come non — a competere in offerta da Amazon e Microsoft piattaforme cloud. Questo è più circa come i nostri cuscinetti di fornire una analisi della concorrenza.
La prima cosa da capire circa la Chiave è che si tratta di un database relazionale, orientato operativa OLTP (online per l’elaborazione delle transazioni) carichi di lavoro, con ACID (atomicità, consistenza, isolamento e durabilità) funzionalità. La chiave non è una semplice scala di database relazionali servizio-che è dove Google Cloud SQL. La chiave non è un data warehouse; Google BigQuery è progettato per gestire i carichi di lavoro. E non è un database NoSQL, o, come BigTable è di Google che offre.
Quindi, la Chiave contrasta fortemente con Amazon DynamoDB, che è un database NoSQL che impiega i cosiddetti “consistenza finale”, e Microsoft Cosmo DB, anche un database NoSQL, e uno che è configurabile, insieme a una vasta gamma di coerenza modelli, che vanno forma un ACIDO modello su una estremità per l’eventuale coerenza, dall’altro, e due più consistenza modelli tra.
Analitica, troppo
E se la Chiave è relazionali e progettato per OLTP, si può anche gestire il database di analytics operativa. Con tutto questo in mente, potrebbe avere più senso confrontare la Chiave di Database di SQL Azure, Amazon Relational Database Service (RDS), entrambi i quali sono completamente relazionali, ACID, e di offrire un certo livello di analytics operativa stessi.
Ma se relazionale/ACIDO affinità tenta di confrontare Chiave per il database SQL Azure e Amazon RDS, non è così facile. Perché? Perché — come Google Cloud SQL — DB SQL e RDS cloud incarnazioni del locale di sistemi di gestione di database, mentre la Chiave è stato progettato per il cloud. E il Cosmo DB e DynamoDB erano troppo.
E anche se la Chiave si utilizza SQL per l’interrogazione e la definizione dei dati (creazione di tabelle e simili), non farlo per la manipolazione dei dati/le operazioni di scrittura. Invece, si avvale di una “mutazione” delle API, la sintassi per più di object-relational mapping (ORM)-come e proprietà-oriented di quanto non si basa su un insieme. Un altro punto, che la distingue da servizi come DB SQL Azure e Amazon RDS. Così mele-di-mele confronti sono sfuggente.
Genesi
L’in-house versione della Chiave è stato originariamente costruito da Google per gestire carichi di lavoro come AdWords e Google Play, che, secondo Google, precedentemente in esecuzione sul massiccio, manualmente sharded MySQL implementazioni. Il problema con queste implementazioni era il manuale di sharding — mentre è fornito di Google con una scala meccanismo che MySQL non supporta in modo nativo, era ingombrante, tanto che il re-sharding il database è stato un processo pluriennale.
Google aveva bisogno di un database che era nativo, flessibile sharding capacità aderito a schema relazionale e di stoccaggio, è stato ACIDO-compatibile e supportata da zero i tempi di inattività. Dal momento che un database non esiste, Google ha creato la sua propria, e l’originale Chiave è nato. Ora, dopo quasi 10 anni di battaglia-testato il prodotto in-house, Google ha fatto in Chiave Cloud, una API pubblica di fronte a quella stessa tecnologia, generalmente disponibili.
Avere il vostro scale-out, e mangiare il vostro ACIDO, troppo
Nonostante l’auto-sharding, la Chiave sarà presto il supporto cross-regione transazioni. Se è in grado di fare tutto questo, allora perché non convenzionali database relazionali? E perchè le tradizionali piattaforme basate su una scala del modello, mentre la Chiave è di tipo scale-out, ma che ancora conserva le tradizionali caratteristiche dei sistemi di database relazionali? Come Chiave di clienti in grado di “fare entrambe le cose?”
Il grande motivo è il modo in cui le transazioni sono impegnati. Sistemi tradizionali, quando geograficamente distribuito, è necessario utilizzare un protocollo noto come il commit in due fasi, che non può completare fino a quando il sito termina il suo lavoro. Ma la Chiave che rende ogni sito una replica completa degli altri e utilizza un Paxos algoritmo di consenso per il commit di una transazione quando la maggior parte dei siti hanno completato il loro lavoro. Gli utenti di un sito particolare che non è di per sé terminato l’aggiornamento, può essere re-indirizzati a un sito che è, fino a che il loro sito è fatto. Che introduce alcune extra di latenza per alcuni utenti, e durante un determinato intervallo di tempo, ma elimina la fase di stallo che database standard devono fare i conti con se configurato in modo distribuito.
Ma c’è di più…
Paxos/consenso è la chiave nel fare tutto il lavoro, ma altri trucchi, come ottimizzato di rete e hardware, così come altri software, trucchi, guida troppo. Per esempio, quando i dati vengono bloccate durante le operazioni di scrittura in Chiave solo blocco di celle (cell è determinata colonna in una particolare riga), piuttosto che intere righe. Questo riduce al minimo i conflitti e accelera la transazione impegno, pur di garantire la piena coerenza del database. Anche, leggermente più vecchie versioni di dati possono essere resi disponibili per le operazioni di sola lettura che hanno una certa tolleranza per la “vecchia” data, riducendo così la contesa ancora di più.
Un altro modo Chiave velocità le cose è da archiviare dati figlio — che in convenzionale database dovrebbe essere in un separato, tabella correlata — in modo che sia fisicamente integrati con dati principale. Questo consente di creare query che includono dati gerarchici (come gli ordini di acquisto e la loro linea di oggetti da sottoporre a scansione in un colpo solo invece di richiedere il database di attraversare una relazione di join tra le due.
Così, mentre il TAPPO teorema afferma che un database che è partition-tolerant e consistent non può essere anche estremamente unnostri, la Chiave può “imbrogliare” teorema (in senso buono) attraverso una serie di ottimizzazioni lato-passo alcuni dei normali vincoli imposti dalle basi di dati distribuite.
Gli sviluppatori, sviluppatori
La chiave è molto-developer friendly, dotato di un driver JDBC e Kit di Sviluppo Software (Sdk) per linguaggi come Java, Python, Node.js e altri popolari tra stack open source sviluppatori.
Per quelli della Microsoft/.NET camp, un driver ODBC e un SDK C# sono in cantiere. Che aiuterà la Chiave di competere in maniera più robusta contro Azure Cosmo DB, SQL e Database SQL Data Warehouse per Amazon RDS, che sono molto Microsoft-stack amichevole. Anche Amazon DynamoDB servizio .NETTO di supporto, in modo che la Chiave di ODBC e C# il supporto non può venire abbastanza rapidamente.
E ora, tutti insieme
Di nuovo, però, queste non sono le mele a mele a confronto; la Google cloud dati stack innova lungo i diversi assi di AWS e Azure. Uno degli assi, che riguarda inter-integrazione del servizio. Per esempio, Google BigQuery supporta lo stesso dialetto SQL come Chiave. E mentre il Database SQL Azure e SQL Data Warehouse sia l’utilizzo di Microsoft Transact-SQL, Cosmo, di DB SQL dialetto è diverso. Su Amazon lato, DynamoDB non offrono anche il supporto nativo per SQL.
Google integrazione va al di là di dialetti SQL. Per esempio, BigQuery supporta query federata attraverso propri dati, così come BigTable e file in Google Drive. Un po ‘ la Chiave le tabelle non possono partecipare a questi federati query oggi, non sarei sorpreso se questo è cambiato.
Scegli il tuo database
In modo che il database è quello giusto per la vostra applicazione? Poiché i dati di movimento è costoso, molto dipenderà dalla posizione dei dati di oggi. E dato che molte aziende hanno un sacco di dati memorizzati in Amazon Simple Storage Service (S3), AWS ha il potere di agente.
Nel frattempo, i fan del modello relazionale che hanno bisogno di un distribuite a livello globale database, può trovare la Chiave di offerte e irresistibile combinazione di queste cose. I clienti che sono focalizzati sulla Sla (service level agreement), per ragioni di conformità, o i contratti di servizio di cui hanno bisogno per offrire ai loro clienti, possono trovare Cosmo DB proposta di valore ci trionfi altri due.
Non importa in che modo i clienti andare, però, sono in una buona posizione. Attraverso la combinazione di DynamoDB, Cosmo DB e la Chiave, tutti e tre i giganti di Internet stanno offrendo alla clientela versioni della distribuiti a livello globale di servizi di database essi stessi affidamento per la prima di terze parti. Con che come una linea di base, la concorrenza è (e continuerà ad essere) feroce, e il cliente vince.
0