Den gordiska knuten på databasmarknaden är att kombinera skalbarhet, bra prestanda och säker datalagring.

Med många nosql-databaser kan man få skalbarhet och bra prestanda, men inte säker datalagring. Med traditionella relationsdatabaser, så kallade ”sql-databaser”, som Oracle får man säker datalagring (transaktionssäkerhet, kallas ”acid”, se faktaruta) och i många fall bra prestanda, men inte skalbarhet.

Skalbarhet krävs inte minst för webbapplikationer med många, och varierande antal, användare. För att lyckas med sådana får man ofta kompromissa med hur korrekta data som visas. Det är bland annat därför det verkar som om uppdateringar på tjänster som Facebook och Linkedin släpar efter.

Läs också: ”Oracles skryt påminner om Orwells 1984”

Det verkar näst intill omöjligt att uppfylla alla tre kraven.

Men nu påstår sig Google ha lösningen med databastjänsten Cloud Spanner. Bara att det är jätten Google som lanserar en innovativ databastjänst ger trovärdighet. Att databastjänsten Spanner som är förlagan har använts internt i åratal för datahantering för Googletjänster som Adwords och Play ger ännu mer trovärdighet. Betatesterna är till stor del avklarade, även om tjänsten för närvarande är tillgänglig i betaversion.

Ulf Magnusson
Ulf Magnusson.

– Google har enorma resurser och det är faktiskt en beprövad produkt. Det känns rimligt att Google ska kunna åstadkomma något med Cloud Spanner, säger Ulf Magnusson, beslutsstödsansvarig på RG19, ett driftsföretag som är specialiserat på logistiklösningar och beslutsstöd.

Arbetet med Spanner inleddes 2007 och ledde till en forskningsrapport, så kallat paper, som publicerades 2012.

Vad är det då Cloud Spanner erbjuder?

För det första är det en tjänst som Google hanterar och administrerar vad gäller driften. Man behöver till exempel inte planera serveranvändningen själv.

För det andra utlovas enkel skalbarhet, vilket till viss del förstås hänger ihop med att det är en leverantörsadministrerad tjänst, men även beror på den tekniska lösningen.

För det tredje utlovas global datakonsistens på millisekundnivå. Om en användare ändrar information i Hong Kong ska alltså en användare i Stockholm kunna se ändringen en bråkdel av en sekund senare.

För det fjärde, och kanske viktigast vad gäller att använda Cloud Spanner med existerande applikationer, så är det en sql-databas. Det innebär att migreringar blir enklare än till en nosql-databas med ett helt eget språk för datahantering.

Om man läser dokumentationen till Cloud Spanner hittar man till exempel Primary Key-satsen som en del för att skapa databastabeller. Den databaskunnige förstår då att Cloud Spanner åtminstone till viss del uppfyller den förhärskande relationsmodellen för databaser.

Sql-stödet betyder kanske framför allt att databassökningar och -uppdateringar som finns inbäddade i koden till applikationer inte behöver ändras eller bara ändras lite.

Läs också: Amazon spöar skjortan av Google i hantering av MySQL

Men det finns förstås mer specifika krav som behöver uppfyllas för att Cloud Spanner ska vara ett rimligt alternativ till etablerade relationsdatabaser som Oracle och Microsofts Sql Server.

– Det ska inte bara se ut som relationsdatabas, utan även fungera som en relationsdatabas, till exempel prestandamässigt, säger Johan Pettersson, vd på Big Data AB, ett konsultföretag specialiserat på analyser av stora datavolymer.

Som exempel nämner han ”sql-skal” till Hadoop. Med sådana går det att formulera databasfrågor med sql, men när frågorna körs mot data som hanteras med Hadoop är det inte alls säkert att beteendet blir som det skulle bli med en relationsdatabas. En till synes enkel sql-fråga kan resultera i att enorma mängder data söks igenom sekventiellt, vilket tar tid.

– Det här är frågor som man ständigt kommer tillbaka till med stora databaslösningar, säger Johan Pettersson.

I det stora hela är han positiv till Googles satsning på Cloud Spanner:

– Det kan nog ta skruv. Det tar tid att bygga lösningar själv med till exempel Hadoop. Det är intressant med mer färdiga lösningar och kopplingen till relationsdatabaser och sql är viktig.