Google Cloud Nyckel: hur går det stack upp?

0
176

0

För ett par månader sedan, skrev jag en djupgående bit på Microsoft ‘ s Cosmos DB, vilket är Redmond inträde i världen globalt spridda moln databaser. Tillkännagivandet av Kosmos DB: s allmänna tillgänglighet (GA) ägde rum i samarbete med bolagets Bygga evenemanget, som hölls i Maj. Den följande veckan meddelade Google att GA av Moln Käppar, en globalt distribuerad operativa databas med sina egna.

Läs också: Inuti Microsofts Kosmos DB
Läs också: Microsoft lanserar Azure Kosmos DB, ett superset av sin DocumentDB service
Läs också: Google gör Cloud Käppar i allmänhet tillgängliga

På grund av sammanflödet av dessa meddelanden, från två av de tre ledande offentliga moln, jag trodde att det skulle vara lämpligt att följa upp min Kosmos DB täckning med täckning för Cloud Käppar som var av samma omfattning och djup. Lägg i en pressbriefing på Käppar från Google Cloud Chef för Product Management Dominic Preuss att Google var vänliga nog att erbjuda, och det var en slam-dunk. Så låt oss gå vidare.

Konkurrenskraftiga jämförelser
Låt oss först diskutera hur Käppar jämför-och hur det inte — till konkurrerande erbjudanden från Amazon och Microsoft cloud plattformar. Detta handlar mer om att få vårt lager än att tillhandahålla en konkurrenskraftig analys.

Den första sak att förstå om Nyckel är att det är en relationsdatabas, som är inriktad på operativa OLTP (online transactional processing) arbetsbelastning, med full SYRA (atomicity, consistency, isolering och hållbarhet) funktionalitet. Käppar är inte en enkel skala upp relational database service-det är där Google Cloud SQL kommer in. Käppar är inte ett data warehouse, Google BigQuery är utformad för att hantera dessa uppgifter. Och det är inte en NoSQL-databas, antingen, som är Googles BigTable som erbjuder det.

Så Käppar kontrasterar starkt med Amazons DynamoDB, som är en NoSQL-databas för att anställa så kallade “eventuell samstämmighet,” och Microsofts Kosmos DB, också en NoSQL-databas, och en som är konfigurerbar, tillsammans ett fullt spektrum av konsekvens modeller, allt från en SYRA modellen på den ena ändan till den slutliga konsistensen på den andra, och två mer enhetliga modeller i mellan.

Analytics, för
Och även om Nyckel är relationella och utformad för OLTP, det kan också hantera i-databas operativa analytics. Med allt detta i åtanke kan det vara mer meningsfullt att jämföra Nyckel till Azure SQL-Databas, eller Amazon Relational Database Service (RDS), som båda är fullt relationella, SYRA-kompatibel, och erbjuder en viss nivå av operativa analytics sig själva.

Men om den relationella/SYRA affinitet frestar dig att jämföra Nyckel till Azure SQL-databas och Amazon RDS, det är inte så lätt. Varför? Eftersom-som Google ‘ s egna Cloud SQL — SQL DB och RDS är moln inkarnationer på lokaler database management system, medan Käppar var avsedd för molnet. Och Kosmos DB och DynamoDB var för.

Och även om Nyckel använder SQL för att ställa frågor och data definition (skapa tabeller och liknande), det gör inte så för manipulering av data-och skrivoperationer. I stället använder sig av en “mutation” API, syntax som är mer object-relational mapping (ORM)-ut och egendom-orienterad än den är inställd. Det är en annan sak som skiljer det från tjänster som Azure SQL DB och Amazon RDS. Så äpplen-att-äpplen jämförelser är svårfångade.

Genesis
In-house-version av Nyckel byggdes ursprungligen av Google för att hantera arbetsbelastning som AdWords och Google Play, som, enligt Google, som tidigare kör på massiva, manuellt sharded MySQL-implementeringar. Problemet med dessa implementationer var den manuella sharding — samtidigt som det gav Google med en skala ut mekanism för att MySQL inte har stöd för direkt, det var otympligt, så mycket att re-sharding databasen var en flerårig process.

Google krävs en databas som hade inbyggda, flexibla sharding kapacitet, anslutit sig till relationsschema och lagring, var SYRA-kompatibla och stöds noll driftstopp. Eftersom en sådan databas som inte finns, Google skapat sin egen, och den ursprungliga Käppar föddes. Nu, efter nästan 10 år av kamp för att testa produkten i huset, Google Cloud Nyckel, ett publikt API framför att samma teknik, allmänt tillgängliga.

Med din scale-out, och äta din SYRA, för
Trots auto-sharding, Käppar snart kommer stödja cross-regionen transaktioner. Om det kan göra allt det, så varför inte konventionella relationsdatabaser? Och varför är de traditionella plattformar som bygger på en skala-up-modellen medan Nyckel är scale-out, men har fortfarande kvar den andra konventionella egenskaper av relationsdatabaser? Hur är Nyckel kunder möjlighet att “ha det på båda sätten?”

Den stora anledningen är hur transaktioner är engagerade. Traditionella system, när geografiskt spridda, måste använda ett protokoll som kallas two-phase commit, som inte komplett förrän varje webbplats avslutar sitt eget arbete. Men Käppar gör varje plats en full kopia av den andra och använder ett Paxos samförstånd algoritm för att begå en transaktion när en majoritet av webbplatser har avslutat sitt arbete. Användare på en viss plats som inte själv klar med uppdateringen, kan omdirigeras till en webbplats som har till sin egen webbplats är klart. Som introducerar några extra fördröjning för vissa användare under mycket specifika intervaller, men det eliminerar trafikkaos som standard databaser måste brottas med när den är konfigurerad på ett distribuerat sätt.

Men vänta, det finns mer…
Paxos/konsensus är nyckeln för att göra allt arbete, men andra knep, som optimerad nätverk och hårdvara, såväl som annan programvara tricks, hjälp också. Till exempel när data är låst under skrivoperationer, Käppar bara har att låsa celler (en cell är särskilt kolumn i en viss rad) i stället för hela rader. Detta minimerar påstående och accelererar transaktion engagemang, samtidigt som de garanterar full konsekvens av databasen. Även något äldre versioner av data kan göras tillgänglig för read-only en verksamhet som har en viss tolerans för “gammal” data, vilket minskar påstående ytterligare.

Ett annat sätt Käppar hastigheter upp saker och ting är genom att lagra data barn — som i vanliga databaser skulle vara i ett separat, relaterade tabellen — så att det är fysiskt comingled med sin förälder data. Detta gör att frågor som inkluderar hierarkiska data (som beställningar och deras line-objekt) som ska skannas i ett svep istället för att kräva databasen för att gå igenom en relation mellan de två.

Så även om den gemensamma JORDBRUKSPOLITIKEN sats säger att en databas som ligger partition-tolerant och consistent kan också vara mycket entillgängliga, Nyckel kan “fuska” som sats (på ett bra sätt) genom optimeringar för att kringgå en del av den normala begränsningar som distribuerade databaser.

Utvecklare, utvecklare
Nyckel är mycket-utvecklare vänlig, med en JDBC-drivrutin och Software Development Kit (Sdk) för språk som Java, Python, Node.js och andra populära bland open source stack utvecklare.

För dem i Microsoft/.ÅRETS läger, en ODBC-drivrutin och en C# SDK är på gång. Som kommer att hjälpa Käppar tävla mer kraftfullt mot Azurblå Kosmos DB, SQL-Databas och SQL-Data Warehouse samt Amazon RDS, som alla är mycket Microsoft-stack-vänliga. Även Amazons DynamoDB tjänsten har .NET-stöd, så att Grus har ODBC-och C# – stöd inte kan komma tillräckligt snabbt.

Alla tillsammans nu
Igen, men dessa är inte äpplen-att-äpplen jämförelser, Google cloud data stack förnyar längs olika axlar än AWS och Azure och kära. En av dessa axlar gäller inter-service integration. Till exempel, Google BigQuery stöder samma SQL-dialekt som Käppar. Och medan Azure SQL-Databas och SQL-Data Warehouse både använda Microsofts Transact-SQL, Kosmos DB SQL-dialekt är olika. På Amazon sida, DynamoDB inte ens erbjuder native SQL-stöd.

Googles integration går utöver SQL dialekter dock. Till exempel, BigQuery stöd för federerade frågor över sin egen data, liksom BigTable och filer i Google Drive. Och medan Käppar bord inte delta i dessa externa frågor idag, jag skulle inte bli förvånad om det ändrats.

Välj din databas
Så vilken databas som är den rätta för din ansökan? Eftersom data rörelse är dyra, en del kommer att bero på var din data är i dag. Och med tanke på att många företag har en hel del data som lagras i Amazon Simple Storage Service (S3), AWS har makt incumbency gå för det.

Under tiden kan fans av den relationella modellen som behöver en globalt distribuerad databas, kan hitta Nyckel erbjuder en oemotståndlig kombination av dessa saker. Kunder som är mycket fokuserade på service level agreements (Sla), på grund av överensstämmelse, eller de Sla som de behöver för att erbjuda sina egna kunder, kan hitta Kosmos DB värde proposition att det övertrumfar de andra två.

Oavsett på vilket sätt kunderna går, men de är i en bra position. Genom en kombination av DynamoDB, Kosmos DB och Käppar, alla tre jättar Internet är att erbjuda kundnära versioner av globalt distribuerad databas tjänster de själva är beroende av för första part erbjudanden. Med det som utgångspunkt, konkurrensen är (och kommer att fortsätta att vara) hård, och kunden vinner.

0