Amazon Aurora DSQL skal være PostgreSQL-kompatibel, men mangler funksjonalitet

Amazon Aurora DSQL er en ny serverless, distribuert SQL-database som skal være PostgreSQL-kompatibel. Men likevel ikke helt.

Fra AWS re:Invent-konferansen i Las Vegas 2024. 📸: Noah Berger/Getty Images for Amazon Web Services
Fra AWS re:Invent-konferansen i Las Vegas 2024. 📸: Noah Berger/Getty Images for Amazon Web Services Vis mer

På AWS' store re:Invent-konferanse forrige uke lanserte selskapet en ny database, Amazon Aurora DSQL.

AWS beskriver Aurora som en "serverless distribuert SQL-database":

  • Kan skalere nesten ubegrenset
  • Krever ingen administrasjon av infrastruktur.
  • Oppetid på 99,99 prosent om du setter den opp i én region, eller 99,999 prosent for et multi-region-oppsett.

Ifølge AWS er Aurora DSQL PostgreSQL-kompatibel og skal oppføre seg identisk som en PostgreSQL-database for de fleste funksjoner som støttes. Den skal gi identiske resultater for SQL-spørringer, og støtte mange populære PostgreSQL-drivere og -verktøy med små konfigurasjonsendringer.

Alle støttede SQL-uttrykk skal returnere identiske data i spørringsresultatene, og i det store og hele er det altså likt.

Men selv om Aurora DSQL er PostgreSQL-kompatibel, mangler den likevel funksjonalitet som PostgreSQL har, ifølge dokumentasjonen. For eksempel når det gjelder CREATE TABLE, så er det flere ting som ikke støttes, skriver DevClass.

I et intervju med DevClass forklarer Ganapathy (G2) Krishnamoorthy, VP AWS Databases, årsaken til "manglene".

Mangler flere ting

Noen av de manglende funksjonene i Aurora DSQL kommer av hvordan arkitekturen til Aurora DSQL er bygget opp, og ting AWS har gjort for å gjøre databasen så skalerbar, kjapp og pålitelig som den skal være.

– All behandling av spørringer skjer i spørringsbehandleren ("query processor") og denne kjører PostgreSQL-motoren. Dette gjør at vi kan tilby samme protokoll og samme tilkoblingsmuligheter. Så hvorfor har vi ikke da full kompatibilitet? sier G2 Krishnamoorthy.

G2 Krishnamoorthy, VP AWS Databases. 📸: AWS
G2 Krishnamoorthy, VP AWS Databases. 📸: AWS Vis mer

En av grunnene er ifølge Krishnamoorthy at lagringssystemet er forskjellig. Dette påvirker utvidelser som utnytter hvordan PostgreSQL lagrer bytes på disken – som for eksempel utvidelser bygget for geospatiale data (for eksempel posisjonsdata).

– Vi ville vært nødt til å endre API-ene. Vi vil samarbeide med communityet for å gjøre dette, sier Krishnamoorthy til DevClass.

Fremmednøkler kommer

Noen av de manglende funksjonene kommer av at dette er funksjonalitet som tar det for gitt at all tilstand er i én enkelt prosess. Det gjør at for eksempel tellere som automatisk øker ikke vil fungere i et distribuert databasesystem som Aurora DSQL.

Det er imidlertid en funksjon mange utviklere blant annet på Reddit er overrasket over at mangler – nemlig fremmednøkler som "constraints" (begrensning/beskranking).

Krishnamoorthy sier dette om fremmednøkler:

– Det er funksjonalitet vi vil implementere og aktivere. Ett eksempel er fremmednøkler eller støtte for "pgSQL stored procedures". Vi har ikke aktivert disse ennå fordi vi vil forsikre oss om at de er av høy kvalitet, sier Krishnamoorthy.