Google ‘ s Cloud Moersleutel: hoe gaat het op stapel?

0
175

0

Een paar maanden geleden schreef ik een in-diepte stuk op de Microsoft-Kosmos DB, dat is Redmond ‘ s entree in de wereld van wereldwijd gedistribueerde cloud databases. De aankondiging van de Kosmos DB ‘ s general availability (GA) vond plaats in samenwerking met het bedrijf, Bouwen, evenement, gehouden in Mei. De volgende week kondigde Google aan dat de GA van Cloud Moersleutel, een wereldwijd verspreid operationele database van zijn eigen.

Lees ook: Binnen Microsoft Kosmos DB
Lees ook: Microsoft lanceert Azure Kosmos DB, een uitbreiding van haar service DocumentDB
Lees ook: Google Cloud Roet in het algemeen beschikbaar

Vanwege de samenloop van deze aankondigingen, van twee van de drie toonaangevende public cloud providers, dacht ik dat het nuttig zou zijn om de follow-up mijn Cosmos DB dekking bij de dekking voor Cloud Sleutel die van soortgelijke omvang en diepte. Voeg in een briefing over de Sleutel van Google Cloud Director of Product Management Dominic Preuss dat Google was vriendelijk genoeg om te bieden, en het was een slam-dunk. Dus laten we verder gaan.

Vergelijkingen met concurrenten
Laten we eerst bespreken hoe de Moersleutel van het vergelijkt — en hoe het niet — om concurrerende aanbiedingen van de Amazon en Microsoft cloud-platforms. Dit is meer over het krijgen van onze lagers dan het verstrekken van een analyse van de concurrentie.

Het eerste ding om te begrijpen over de Sleutel is dat het een relationele database, die is afgestemd op de operationele OLTP (online transactie verwerking) workloads met volledige ZUUR (atomiciteit, consistentie, isolatie en duurzaamheid) functionaliteit. Sleutel is niet een eenvoudige schaal-up relationele database service — dat is waar Google Cloud SQL. Sleutel is niet een data warehouse; Google BigQuery is ontworpen voor het verwerken van deze workloads. En het is niet een NoSQL database, ofwel, als BigTable is Google ‘ s aanbieden.

Dus Sleutel contrasteert sterk met Amazon ‘ s DynamoDB, dat is een NoSQL database gebruikmakend van zogenaamde “uiteindelijke consistentie,” en Microsoft ‘ s Kosmos DB, ook een NoSQL database, en dat is ook aan te passen aan een volledig spectrum van de consistentie van modellen, variërend vorm van een ZUUR-model op het ene einde tot het uiteindelijke consistentie op de andere, en twee meer samenhang modellen tussen.

Analytics, te
En hoewel Sleutel is relationele en ontworpen voor OLTP, het kan ook omgaan met in-database operationele analytics. Met dat in het achterhoofd, is het misschien meer zin te vergelijken met de Moersleutel van Azure SQL Database, of Amazon Relational Database Service (RDS), die beide zijn volledig relationele, ZUUR-compliant, en bieden een zekere mate van operationele analytics zelf.

Maar als de relationele/ZUUR affiniteit verleidt je om te vergelijken Sleutel Azure SQL database en Amazon RDS, het is niet zo gemakkelijk. Waarom? Omdat, zoals Google ‘ s eigen Cloud SQL — SQL DB RDS wolk zijn incarnaties van on-premise database management systemen, terwijl de Sleutel is ontworpen voor de cloud. En Kosmos DB en DynamoDB waren.

En hoewel de Moersleutel van het gebruik van SQL voor het opvragen en gegevens definitie (het maken van tabellen en dergelijke), het niet te doen voor data manipulatie/schrijf-operaties. In plaats daarvan hanteert een “mutatie” API, de syntaxis voor wat meer object-relational mapping (ORM) en eigenschap-georiënteerd dan het set is gebaseerd. Dat is een ander punt dat voor het onderscheid van diensten zoals Azure SQL DB en Amazon RDS. Dus appels-met-appels te vergelijken zijn ongrijpbaar.

Genesis
De in-house versie van de Sleutel werd oorspronkelijk gebouwd door Google verwerken workloads zoals AdWords en Google Play, dat waren, volgens Google, eerder uitgevoerd op enorme, handmatig sharded MySQL implementaties. Het probleem met die implementaties was de handleiding sharding — hoewel het Google met een scale-out mechanisme dat MySQL niet voor zijn moedertaal, het was onhandelbaar; zozeer zelfs, dat de re-sharding de database is een meerjarig proces.

Google nodig een database die had native, flexibele sharding mogelijkheden, vastgehouden aan relationele schema en opslag, is ZUUR-compliant en ondersteund zero downtime. Aangezien een dergelijke database niet bestaat, Google creëerde zijn eigen, en de originele Sleutel werd geboren. Nu, na bijna 10 jaar van de strijd-het testen van het product in huis heeft Google Cloud Moersleutel, een publieke API voor dat dezelfde technologie algemeen beschikbaar.

Met uw weegschaal-out, en het eten van uw ZUUR, te
Ondanks de auto-sharding, Moersleutel zal binnenkort de ondersteuning van cross-regio transacties. Als het kan alles doen, waarom dan niet conventionele relationele databases? En waarom zijn de traditionele platforms op basis van een schaal-up-model, terwijl de Sleutel is schaal-out, maar nog steeds de klassieke kenmerken van relationele database systemen? Hoe zijn de Moersleutel van klanten in staat om “van twee walletjes?”

De grote reden is de manier waarop transacties worden vastgelegd. Traditionele systemen, als geografisch verspreid zijn, moet gebruik maken van een protocol, bekend als two-phase commit, die niet compleet zijn totdat elke site klaar zijn eigen werk. Maar Steeksleutel maakt elke site een volledige replica van de anderen en maakt gebruik van een Paxos consensus-algoritme tot het plegen van een transactie bij een meerderheid van de sites die klaar zijn met hun werk. Gebruikers van een site die nog niet zelf klaar bent met het bijwerken, kan worden doorverwezen naar een site die, tot hun eigen site is gedaan. Dat introduceert een aantal extra wachttijden voor bepaalde gebruikers tijdens de zeer specifieke intervallen, maar het elimineert de patstelling die standaard databases te maken met wanneer geconfigureerd in een gedistribueerde manier.

Maar wacht, er is meer…
Paxos/consensus is de sleutel in dit alles werk, maar andere trucs, zoals geoptimaliseerd netwerken en hardware, evenals andere software trucs, te helpen. Bijvoorbeeld wanneer gegevens is vergrendeld tijdens het schrijven van de activiteiten, Moersleutel alleen cellen vergrendelen (een cel is een bepaalde kolom in een bepaalde rij) in plaats van hele rijen. Dit minimaliseert conflicten en versnelt de transactie inzet, terwijl u toch volledige consistentie van de database. Ook iets oudere versies van de gegevens beschikbaar kunnen worden gemaakt voor alleen-lezen operaties die een bepaalde tolerantie voor “oude” gegevens te verminderen, waardoor de stelling nog verder.

Een andere manier Roet sneller dingen is door het opslaan van kind data — die in conventionele databases zou worden in een aparte, gerelateerde tabel, zodat het fysiek comingled met de bovenliggende gegevens. Dit kunt query ‘ s een hiërarchische gegevens (zoals inkooporders en hun line items) worden gescand in één klap in plaats van dat de database via een relatie tussen de twee.

Dus terwijl de GLB-theorema stelt dat een database die is partition-tolerant en consistent kan ook sterk worden eenhulpprogramma, Sleutel kan “cheat” die stelling (in een goede manier) door de optimalisaties die kant-stap enkele van de normale beperkingen die worden opgelegd door gedistribueerde databases.

Ontwikkelaars, ontwikkelaars
Roet is zeer-ontwikkelaar vriendelijk, met een JDBC-stuurprogramma en Software Development Kits (Sdk ‘ s) voor talen zoals Java, Python, Node.js en anderen populair bij open source stack ontwikkelaars.

Voor degenen die in de Microsoft/.NETTO-kamp, een ODBC-stuurprogramma en een C# SDK zitten in de pijplijn. Dat zal helpen de Sleutel te concurreren meer krachtig tegen Azure Kosmos DB, SQL databases en SQL datawarehouse evenals Amazon RDS, die zeer Microsoft-stack vriendelijk. Zelfs Amazon ‘ s DynamoDB dienst heeft .NETTO-ondersteuning, dus de Moersleutel van het ODBC en C# ondersteuning kan niet snel genoeg.

Allen samen nu
Nogmaals, echter, deze zijn niet appels-met-appels te vergelijken; de Google data in de cloud stack innoveert langs verschillende assen dan de AWS en de Azure degenen. Een van die assen betreft inter-service-integratie. Bijvoorbeeld, Google BigQuery ondersteunt dezelfde SQL-dialect als Sleutel. En terwijl Azure SQL Database en SQL datawarehouse zowel gebruik van Microsoft Transact-SQL, Kosmos DB SQL-dialect is anders. Op de Amazon kant, DynamoDB niet bieden zelfs de native SQL-ondersteuning.

Google is op de integratie gaat verder dan SQL-dialecten wel. Bijvoorbeeld, BigQuery ondersteunt verbonden query ‘ s over zijn eigen gegevens, alsmede BigTable en bestanden in de Google Drive. En terwijl de Sleutel tafels kunnen niet deelnemen aan deze verbonden query ‘ s vandaag, ik zou niet verbaasd zijn als dat veranderd.

Kies uw database
Dus die database is de juiste keuze voor uw toepassing? Sinds data beweging is duur, veel zal afhangen van waar uw data is vandaag de dag. En gezien het feit dat veel bedrijven hebben een heleboel gegevens die zijn opgeslagen in de Amazon Simple Storage Service (S3), AWS heeft de kracht van incumbency er voor gaan.

Ondertussen zijn de fans van het relationele model die behoefte hebben aan een wereldwijd gedistribueerde database, kunnen vinden Sleutel biedt een onweerstaanbare combinatie van die dingen. Klanten die zijn erg gericht op service level agreements (Sla ‘s), om redenen van compliance, of de Sla’ s die ze nodig hebben om hun eigen klanten, kunnen vinden Kosmos DB ‘ s value proposition er troeven van de andere twee.

Geen kwestie welke manier klanten te gaan, hoewel, ze zijn in een goede positie. Door de combinatie van DynamoDB, Kosmos DB en Sleutel, alle drie Internet-reuzen zijn het aanbieden van klantgerichte versies van de wereldwijd verspreide database diensten die zij zich beroepen op voor de first-party aanbiedingen. Met dat als uitgangspunt, de concurrentie is (en zal blijven) hevig, en de klant wint.

0