En sten og et hårdt sted: Mellem ScyllaDB og Cassandra

0
106

Nul

Cassandra er en plakat barn af NoSQL verden. Oprindeligt et open source projekt, sprunget ud af Facebook, er det blevet vedtaget af Apache Foundation, og bakkes op af en virksomhed, DataStax, der også tilbyder DataStax Virksomheden er baseret på Cassandra. Cassandra er blandt de top 10-database løsninger i henhold til DB-Motorer.

Det er netop derfor, at det nu er en potentielt farlig rival i ScyllaDB. ScyllaDB er en ny kid på NoSQL blok, der sigter mod at tilbyde en løsning, der er open source og API-kompatibel med Cassandra, men det fungerer meget bedre. Målet er at være en drop-in erstatning for Kassandra, og når vi taler om database #8 i verden, der er sådan en big deal.

Jeg, Cloudius

Dor Laor og Avi Kivity ikke ud med dette storslåede plan tilbage i 2013. Det var ikke for manglende ambitioner, men det var bare ikke deres ting. De har begge baggrund i hypervisors og var en del af det team, der byggede KVM og fik overtaget af Red Hat. Forlader Red Hat, deres oprindelige plan var at skrive en unikernel at ville fortrænge Linux fra cloud servere. Så der er ingen mangel på ambitioner, der.

De grundlagde en start kaldet Cloudius, fundet investorer, samlet et team og begyndte at arbejde hårdt. På et tidspunkt, men de har indset, at deres potentiale ikke ville være nået til en række årsager, og besluttede at dreje. Og pivot de gjorde, for at tilføje endnu en NoSQL-database til den uendelige liste, en, der ville være i stand til at gøre, hvad Cassandra gør, og derefter nogle.

Men hvorfor gå til en NoSQL-database, og hvorfor målet Cassandra?

scyllalogo2000px.png

ScyllaDB ikke starte som en database, men der svinges til én, kan det være en kraft, man kan regne med. Billede: ScyllaDB.

En del af Cloudius mission var at fremskynde server belastninger, med en vægt på databaser. Laor, ScyllaDB administrerende DIREKTØR, siger, at de havde formået at øge Redis ydelse ved 70 procent, uden rent faktisk at gøre noget Redis-specifikke. Du kan undre sig over, hvordan var dette muligt, og der er et svar, men for nu, lad os holde os til det faktum, at dette udløste dem til at tage den retning.

Det var en kombination af marked og tekniske grunde, der gjorde Cloudius mål Cassandra. Laor siger Hadoop var på deres liste, men da det var sket, besluttede de at gå for omskrivning af Cassandra: “verden har ikke brug for en anden database format. Cassandra ‘ s format er god, og det er en succes. Kassandra er den bedste høje ledighed platform derude.”

De siger, at imitation er den oprigtigste form for smiger, og det er indlysende, at det ScyllaDB holdet fundet ud af, Cassandra værd at efterligne. Men det er mere kompliceret end som så: “Cassandra er overalt i kritiske arbejdsmængder. Men når vi har målrettet det til optimering, vi kørte mod begrænsninger knyttet til sin JVM natur. I den sidste ende, Cassandra ender med at konkurrere med sig selv.

På det tidspunkt, havde Google har netop offentliggjort en benchmark, der beskriver, hvordan de har formået at få 1 million transaktioner på toppen af Kassandra i deres cloud bruge 300 virtuelle maskiner. Dette vakt vores interesse, og fokusere vores arbejde på Kassandra-vi formåede at få en rekord 1,6 millioner transaktioner på en virtuel maskine. Dette er, hvordan vi kom i gang.”

Indtast ScyllaDB

Cloudius drejes og rebranded, men holdt det samme hold, og investorer. Således ScyllaDB blev født. Du tror måske, det er fræk at målrette mod “den bedste høje ledighed platform derude” og har til formål at gøre det bedre, men Laor siger, at de håber på at se historien gentage. Og den helhed af, at-citat: “imitation er den oprigtigste form for smiger, at middelmådighed kan betale til storhed,” kan ikke nødvendigvis gælder her.

“Da vi trådte ind i markedet med KVM, alle spillere blev etableret — VMWare og HyperV, Xen. Vi dukkede op sidst, men baseret på Avi ‘ s revolutionerende design KVM nu dominerer. Vi tror, at vores differentiering denne gang endnu større,” siger Laor.

Så hvad er denne differentiering? ScyllaDB lover noget simpelt, dragende, og svært at tro: at holde din codebase, erstatte Cassandra med ScyllaDB få op til 10 gange løft i performance. Der er benchmarks, og henvisninger til de påstande, men hvordan kan det eventuelt arbejde? Det kommer ned til en række ting.

scylladbthemes.png

ScyllaDB har været fokuseret på stabilitet, ydeevne og kompatibilitet. I dag annonceringen af version 2.0 betyder en ny fase. Billede: ScyllaDB

Første, anden gennemførelse sprog. ScyllaDB er blevet omskrevet fra bunden i C++, som i modsætning til Cassandra ‘ s Java-baserede codebase. JVM tilføjer et mellemliggende lag mellem kode og hardware, handel portabilitet og brugervenlighed for performance. JVMs er kommet en lang vej, men den korrekte brug af et sprog, tættere på det lave niveau af grundlæggende kan resultere i en bedre ydeevne.

Men det er kun en del af ScyllaDB ‘ s secret sauce. En lige så stor del har at gøre med at de underliggende nøgletal, såsom hukommelse eller socket fordeling. Den slags praktiske grynet detaljer, som er svære at få, program og vedligeholde, men kan resultere i dramatiske forbedringer. Den slags ting, der får du at vide intimt hvis du programmet, sige, en hypervisor.

Alle disse erfaringer gennem mange års lave niveau programmering er blevet destilleret i SeaStar. SeaStar er et open source framework til højtydende applikationer, der ScyllaDB er bygget på, men der er intet database-specifik omkring det. SeaStar er event-driven og gør det muligt at skrive effektive non-blocking, asynkron kode.

Den afvejning? Kompleksitet. Laor indrømmer, at det er svært at programmere på toppen af SeaStar, men siger, at resultatet er det værd. Han nævner for eksempel Pedis, en omskrivning af Redis er baseret på SeaStar udført af Alibaba, der turbo-afgifter Redis. Udover, ScyllaDB løfter, den gennemsnitlige Cassandra brugeren ikke behøver at bekymre dig om det.

ScyllaDB har til formål at lette den komplekse opgave, konfiguration og tuning Kassandra-installationer, ved at tilbyde auto-tuning kapaciteter. ScyllaDB har tilføjet forbedringer i både node ledelse og netværk protokoller med målet om at have klynger kører optimalt, uden at det kræver handlinger fra administratorens side.

Laor sammenlignet denne funktion til Oracle ‘ s self tuning database. Der er dog lignende løsninger for andre platforme, såsom Spark. For Gnist, nogle metoder er baseret på anvendelse af machine learning på datasæt, der er indsamlet fra mange operationelle klynger, nogle andre regler.

ScyllaDB har indført den regel-baserede tilgang, som Laor ikke tror datasæt, som kan være repræsentativ for alle mulige konfigurationer. “Vi bruger udvikler intelligens, ikke kunstig intelligens,” siger han. Velsagtens, datasæt fra operationelle Cassandra klynger ville være svært at komme med for ScyllaDB alligevel. Hvilket bringer os til et interessant punkt.

En sten og et hårdt sted

På den ene side, at beslutningen om at bygge en ny platform, der er kompatibel med en eksisterende reducerer friktion og sænker vedtagelsen barriere for organisationer. ScyllaDB allerede har navne som Samsung, IBM, og Outbrain blandt sine tidlige adopters ved hjælp af det i produktion.

På den anden side, det fremkalder konflikter med den platform de nyankomne har til formål at fortrænge: Cassandra. Vi har set lignende eksempler i den Gnist verden, men forskellen er, at Spark alternativer er stadig i vid udstrækning baseret på Gnist, så der kan være krydsbestøvning og i sidste ende måske konvergens.

Her snakker vi om en radikal afvigelse — anden gennemførelse sprog, forskellige lav-niveau infrastruktur, forskellige netværksprotokoller. Der er virkelig ikke plads til Cassandra og ScyllaDB at spille side om side, som tydeligt fremgår af det faktum, at de ikke engang kan eksistere side om side i en klynge.

scylladbbenchmark.png

En af ScyllaDB benchmarks, hvor det er vist, at excellere Cassandra. Billede: ScyllaDB

Typisk, Laor siger, personer, der er nedsat et proof-of-concept ScyllaDB klynge, der arbejder side om side med Cassandra, indtil de føler sig trygge nok til at skifte. “Vi har forskellige protokoller. Vi fandt støtte Kassandra-protokoller, men der er så mange versioner derude, vi besluttede imod det. Plus, når tingene går galt i en blandet hob, hvem vil du skyde skylden?”

Kunne det gøre ondt vedtagelse? “Vi er ikke gift til vores databaser, det er, hvad folk fortæller os,” siger Laor. “Det er en stor investering, men de kan ændre sig. Valg af Cassandra var en strategisk beslutning for os. Vi startede fra scratch og omskrev alt. Når du gør det, du skaber antagonisme. Det berører mange mennesker, der er følsomme.

Men resultaterne taler for sig selv. For eksempel, en AdTech kunde hos os, har formået at gå fra 100.000 timeouts per sekund med Cassandra at 100 per sekund med ScyllaDB. Vi har ikke gjort meget i forhold til samarbejde, for det meste, fordi i det øjeblik, vi er heads-down arbejder på funktion paritet. Men ligesom KVM og Xen, hvor vi havde fælles grænseflader, der kan være potentiale for samarbejde.”

Laor nævner en række områder, hvor de bidrager til Cassandra fællesskab, som ScyllaDB CTO at præsentere design valg på Cassandra næste generation konference eller bidrage med en driver til at Gå. Han understreger også, at ScyllaDB er et open source-projekt, og de forsøger at dokumentere og formidle design beslutninger og gennemførelse og siger, at de gerne ville arbejde med Cassandra på visse funktioner i fremtiden.

ScyllaDB er en nybegynder, men på papiret er det i det mindste ser ud som det fik, hvad det tager for at fortrænge en sværvægter som Cassandra med DataStax ‘ s virksomhed opbakning. Holdet har været der, og gjort det før, har paritet er der næsten, økonomistyring og organisatorisk struktur synes at være der.

ScyllaDB er godt finansieret, med en total på $25 millioner, og har et team af 45 (for det meste ingeniører), som arbejder sammen i mange år. På den tekniske front, ser det ud som ScyllaDB kan give Cassandra en køre for sine penge. Men hvad gør, at “fjendtlig overtagelse” betyder for Cassandra, DataStax og fællesskabet? Vil ScyllaDB være i stand til at vinde hjerter og sind?

Det synes Kassandra-fællesskabet er i øjeblikket i lidt af en uro alligevel. Der har været nogle gnidninger mellem DataStax og Apache Foundation, der resulterer i usikkerhed om projektets fremtid og retning. Så for at være en Cassandra bruger i dag, kan betyde, at du er mellem en sten og et hårdt sted.

scylladbcontributors.png

ScyllaDB plus SeaStar bidragydere er omtrent lige så mange som Cassandra bidragydere på dette punkt, per ScyllaDB ‘ s regnskaber. Billede: ScyllaDB

DataStax på sin side ikke havde svaret på en anmodning om kommentarer. ScyllaDB på den anden side siger, at deres samfund er stigende, på trods af det faktum, at adgangsbarriere er høj på grund af den komplekse karakter af deres gennemførelse, og at de næsten har opnået paritet.

ScyllaDB 2.0 bliver i dag offentliggjort i Scylla-Topmødet, at bringe nogle meget efterspurgte funktioner, såsom tællere og materialiseret synspunkter. Ifølge Laor, fuld-funktion, paritet vil blive nået i begyndelsen af 2018. Føje til mix den nylige overtagelse af Seastar.io, som vil fungere som en katalysator for ScyllaDB tilbyder en managed cloud-version, og du kan se hvorfor ScyllaDB er et navn, du kan høre mere i fremtiden.

Apropos navne, hvad er der med ScyllaDB navn alligevel? Tilsyneladende er dens grundlæggere ønskede at bruge et navn fra den græske mytologi, som det var tilfældet med Cassandra. Ifølge dem i nogle dele af verden, “Skylla” udtales “skala-ah”, som hentyder til skalerbarhed, og dermed et navn, der var født.

Ironisk nok, Cassandra var en Oracle ingen ville lytte til. Skylla og Charybdis var et monster og et spabad bevogtning over Messina-strædet, hvilket gør det umuligt at navigere forbi dem. Mellem Scylla og Charybdis er at være mellem en sten og et hårdt sted. Men for at være mellem ScyllaDB og Cassandra kan vise sig at være en god ting for fællesskabet, skal det i sidste ende styre fri af antagonisme.

0