En sten och en hard plats: Mellan ScyllaDB och Cassandra

0
158

Noll

Cassandra är en affisch barn av NoSQL världen. Ursprungligen ett open source-projekt sprungna ur Facebook, det har antagits av Apache Foundation och backas upp av ett företag, DataStax, som också erbjuder DataStax Företag baserat på Cassandra. Cassandra är bland de top 10 lösningar databas enligt DB-Motorer.

Det är just därför som det har nu en potentiellt farlig rival i ScyllaDB. ScyllaDB är en ny unge på NoSQL block som syftar till att erbjuda en lösning som är öppen källkod och API-kompatibel med Cassandra, men fungerar mycket bättre. Målet är att vara en drop-in ersättning för Cassandra, och när vi pratar om databasen #8 i världen, det är typ av en stor sak.

Jag, Cloudius

Dor Laor och Avi Kivity satte inte ut med denna grandiosa plan tillbaka i 2013. Det var inte brist på ambition, men det bara inte var deras sak. De båda har en bakgrund i hypervisors och var en del av teamet som byggde KVM och fick förvärvats av Red Hat. Lämnar Red Hat, deras första plan var att skriva en unikernel som skulle tränga undan Linux från cloud-servrar. Så någon brist på ambition.

De grundade ett startup som heter Cloudius, fann investerare, satt ihop ett lag och började arbeta hårt. Vid något tillfälle men de insåg att deras potential inte nås för ett antal skäl, och bestämde sig för att svänga. Och pivot de gjorde, att lägga till ytterligare en NoSQL-databas till den aldrig sinande lista, en som skulle kunna göra vad som Cassandra gör och lite till.

Men varför gå till en NoSQL-databas, och varför mål Cassandra?

scyllalogo2000px.png

ScyllaDB inte startar som en databas på alla, men med ledad på en, det kan visa sig vara en kraft att räkna med. Bild: ScyllaDB.

En del av Cloudius uppdrag var att snabba upp servern laddar, med betoning på databaser. Laor, ScyllaDB VD, säger att de hade lyckats öka prestanda Åt med 70 procent utan att faktiskt göra något Åt-specifika. Du kanske undrar: hur var det möjligt, och det finns ett svar, men för nu, låt oss hålla oss till det faktum att detta föranledde dem att ta den riktningen.

Det var en kombination av marknadsutvecklingen och den tekniska skäl som gjorde Cloudius mål Cassandra. Laor säger Hadoop var i deras lista, men eftersom det redan hade gjort de bestämde sig för att gå för att skriva Cassandra: “världen behöver inte en ny databas-format. Cassandra ‘ s format är bra, och att det är framgångsrikt. Cassandra är den bästa hög tillgänglighet plattform där ute.”

De säger att imitation är den finaste formen av smicker, och det är uppenbart att den ScyllaDB team fann Cassandra värda att imitera. Men det är mer komplicerat än så: “Cassandra är överallt i kritiska arbetsbelastning. Men när vi riktade den för optimering, vi sprang mot begränsningar knutna till sin JVM naturen. I slutet, Cassandra hamnar konkurrerar med sig själv.

På den tiden, Google hade just publicerat ett riktmärke över hur de lyckades få 1 miljon transaktioner på toppen av Cassandra i deras moln med 300 virtuella maskiner. Detta väckte vårt intresse, och fokusera vårt arbete på Cassandra lyckades vi få spela in 1,6 miljoner transaktioner på en virtuell maskin. Detta är hur vi började.”

Ange ScyllaDB

Cloudius ledad och omdöpta, men höll samma team och investerare. Därmed ScyllaDB var född. Du kanske tycker det är fräckt att målet “den bästa hög tillgänglighet plattform där ute” och syftar till att göra bättre, men Laor säger att de hoppas att se historien upprepa. Och hela det citatet, “imitation är den finaste formen av smicker som medelmåtta kan betala till storhet,” kan inte nödvändigtvis gälla här.

“När vi kom in på marknaden med KVM, alla spelarna var etablerade — VMWare, HyperV, Xen. Vi visade upp senast, men baserat på Avi ‘ s revolutionerande design KVM nu dominerar. Vi tror att vår differentiering här gången är ännu större, säger Laor.

Så vad är denna differentiering? ScyllaDB lovar något enkelt, lockande, och svårt att tro: att hålla din kodbas, ersätta Cassandra med ScyllaDB, få upp till 10 gånger lyft i prestanda. Det finns riktmärken och hänvisningar till tillbaka dessa påståenden, men hur kan detta eventuellt arbete? Det handlar om ett antal saker.

scylladbthemes.png

ScyllaDB har varit inriktad på stabilitet, prestanda och kompatibilitet. Idag tillkännagivandet av version 2.0 innebär en ny fas. Bild: ScyllaDB

För det första, olika sätt att genomföra språk. ScyllaDB har skrivits om från grunden i C++, i motsats till Cassandra ‘ s Java-baserade kodbasen. JVM lägger ett mellanliggande skikt mellan källkod och hårdvara, handel bärbarhet och enkel användning för prestanda. JVMs har kommit en lång väg, men den korrekta användningen av ett språk som är närmare den låga nivå grunderna kan resultera i bättre prestanda.

Men det är bara en del av ScyllaDB hemliga sås. En lika stor del har att göra med att de underliggande fundamenta, såsom minne eller uttag fördelning. Den typ av nitty gritty detaljer som är svåra att få, program och underhålla, men kan resultera i dramatiska förbättringar. Den typ av sak som att du får veta intimt om du program, låt oss säga, en hypervisor.

Alla dessa lärdomar genom år av låg nivå programmering har destillerats i SeaStar. SeaStar är ett open source ramverk för högpresterande applikationer som ScyllaDB är byggt på, även om det är ingenting databas-specifikt om det. SeaStar är event-driven och gör det möjligt att skriva effektiva och icke-blockerande, asynkrona koden.

Nackdelen? Komplexiteten. Laor medger att det är svårt att programmet på toppen av SeaStar, men säger att resultatet är värt ansträngningen. Han nämner som exempel Pedis, en omskrivning av att Åt baserat på SeaStar gjort av Alibaba, som turbo-avgifterna Åt. Dessutom ScyllaDB lovar, den genomsnittliga Cassandra användaren inte behöver bekymra dig om det.

ScyllaDB syftar till att lindra den svåra uppgiften att konfigurera och ställa Cassandra distributioner genom att erbjuda auto-tuning möjligheter. ScyllaDB har lagt till förbättringar i både node management och nätverk med målet att kluster som kör optimalt utan att kräva administratör ingripande.

Laor jämfört denna funktion för att Oracle self-tuning databas. Det finns dock liknande lösningar för andra plattformar också, som Gnista. För Spark, vissa metoder som bygger på att använda maskinen lärande på data som samlats in från många operativa kluster, vissa andra regler.

ScyllaDB har antagit regeln-baserad strategi, som Laor inte tror datamängder kan vara representativa för alla tänkbara konfigurationer. “Vi använder utvecklare intelligens, inte artificiell intelligens, säger han. Utan tvekan, dataset från operativa Cassandra kluster skulle vara svårt att komma med för ScyllaDB ändå. Vilket leder oss till en intressant punkt.

En sten och en hard plats

Å ena sidan, beslutet att bygga en ny plattform som är förenlig med en befintlig minskar friktionen och minskar antagandet hinder för organisationer. ScyllaDB redan har namn som Samsung, IBM, och Outbrain bland sina tidiga använda det i produktionen.

Å andra sidan, det framkallar friktion med plattformen nykomlingen syftar till att tränga undan: Cassandra. Vi har sett liknande exempel i den Gnista världen, men skillnaden är att Gnista alternativ är fortfarande till stor del baserad på Spark så det kan vara korspollinering och så småningom kanske konvergens.

Här pratar vi om ett radikalt avsteg — olika sätt att genomföra språk, olika låg-nivå infrastruktur, olika nätverksprotokoll. Det finns egentligen inget utrymme för Cassandra och ScyllaDB att spela sida vid sida, som tydligt illustreras av det faktum att de inte ens kan samexistera i ett kluster.

scylladbbenchmark.png

En av ScyllaDB riktmärken, i vilken det visas att överträffa Cassandra. Bild: ScyllaDB

Typiskt, Laor säger, människor sätta upp en proof of concept ScyllaDB kluster som arbetar sida vid sida med Cassandra tills de känner sig säkra nog för att göra bytet. “Vi har olika protokoll. Vi anses stödja Cassandra protokoll, men det finns så många versioner ute bestämde vi oss mot det. Plus, när saker går fel i en blandad kluster, vem ska du skylla på?”

Kan det skada adoption? “Vi är inte gifta våra databaser, det är vad människor berättar för oss,” säger Laor. “Det är en stor investering, men de kan ändra. Att välja Cassandra var ett strategiskt beslut för oss. Vi började från scratch och skrev om allt. När du gör det, kan du skapa en motsättning. Det berör många människor, det är känsligt.

Men resultaten talar för sig själva. Till exempel, en AdTech kund hos oss har lyckats att gå från 100 000 timeouts per sekund med Cassandra till 100 per sekund med ScyllaDB. Vi har inte gjort mycket i termer av samarbete, främst eftersom det för närvarande vi är heads-ner arbetar på har paritet. Men som KVM och Xen, där vi hade gemensamma gränssnitt, kan det finnas potential för samarbete.”

Laor nämner några områden där de bidrar till att Cassandra gemenskapen, såsom ScyllaDB CTO presentera design val på Cassandra nästa generation konferens eller bidra med en drivkraft för att Gå. Han betonar också att ScyllaDB är ett open source-projekt, och de försöker att dokumentera och sprida design, beslut och genomförande och säger att de skulle vilja arbeta med Cassandra på vissa funktioner i framtiden.

ScyllaDB är en nykomling, men på papper minst det ser ut som om den har vad det tar att tränga undan en tungviktare som Cassandra med DataStax företagets stöd. Laget har varit där och gjort det innan, har paritet är nästan där, bokslut och organisatoriska struktur verkar vara det också.

ScyllaDB är väl finansierat, med totalt 25 miljoner dollar, och har ett team av 45 (oftast ingenjörer) som arbetar tillsammans för år. På den tekniska fronten, det verkar som ScyllaDB kan ge Cassandra en kör för sina pengar. Men vad gör det “fientliga” betyder för Cassandra, DataStax och gemenskapen? Kommer ScyllaDB kunna vinna hjärtan och sinnen?

Det verkar Cassandra gemenskapen är för närvarande i något av ett kaos ändå. Det har varit en del friktion mellan DataStax och Apache Foundation, vilket resulterar i en osäkerhet om projektets framtid och riktning. Så för att vara en Cassandra-användare idag kan innebära att du mellan en sten och en hard plats.

scylladbcontributors.png

ScyllaDB plus SeaStar bidragsgivare är ungefär lika många som Cassandra bidragsgivare vid denna punkt, per ScyllaDB räkenskaper. Bild: ScyllaDB

DataStax på sin del inte svara på en begäran om kommentar. ScyllaDB å andra sidan säger att deras gemenskapen växer, trots att inträdeshindren är höga på grund av den komplexa naturen av deras genomförande, och att de har praktiskt taget uppnått funktion paritet.

ScyllaDB 2.0 är meddelade idag att Skylla på Toppmötet, att vissa eftertraktade efter funktioner såsom räknare och materialiserade vyer. Enligt Laor, full funktion paritet kommer att uppnås i början av 2018. Lägg till i mixen det senaste förvärvet av Seastar.io, som kommer att fungera som en katalysator för ScyllaDB att erbjuda en managed cloud-version, och du ser varför ScyllaDB är ett namn du kan få höra mer av i framtiden.

På tal om namn, vad är det med ScyllaDB namn ändå? Tydligen grundarna ville att använda ett namn från den grekiska mytologin, som var fallet för Cassandra. Enligt dem i vissa delar av världen “Scylla” uttalas “skala-ah”, som anspelar på skalbarhet, och därmed ett namn föddes.

Ironiskt nog, Cassandra var en Oracle-ingen skulle lyssna på. Scylla och Charybdis var ett monster och en bubbelpool bevakning Messinasundet, vilket gör det omöjligt att navigera förbi dem. Mellan Scylla och Charybdis är att vara mellan en sten och en hard plats. Men att vara mellan ScyllaDB och Cassandra kan visa sig vara en bra sak för gemenskapen, bör det så småningom att präglas av motsättningar.

0