26.07.2013 Views

DF2010 Livet på servicedesken - Prosa

DF2010 Livet på servicedesken - Prosa

DF2010 Livet på servicedesken - Prosa

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Traditionel transaktionsorienteret database<br />

Logging 17%<br />

Latching 19%<br />

Seks nye databaser<br />

Låsning 21%<br />

en klar grænse mellem relationsdatabaser<br />

og key-value-modeller. En relationsdatabase<br />

kan nemlig godt implementeres oven <strong>på</strong> en<br />

key-value-store. Det nye i de nye databaser<br />

er, at de forsimpler ideen om, hvad en database<br />

skal kunne. Én størrelse passer nemlig<br />

ikke til alle.<br />

– En generaliseret database, der passer<br />

til alle behov, er i sagens natur sværere at<br />

optimere end en specialiseret, siger Rasmus<br />

Resen Amossen.<br />

Buffer manager 35%<br />

Brugbart<br />

arbejde<br />

8%<br />

Alle de databaser, der nævnes her, findes i open source-udgaver.<br />

Cassandra<br />

En nøgle-værdi-database (key-value-store) uden SQL, oprindeligt<br />

udviklet af Facebook til at håndtere søgning i brugerens indboks.<br />

Cassandra er et klyngesystem, hvor alle noder efter et vist<br />

stykke tid er i en konsistent tilstand, altså indeholder samme<br />

data. Alle klyngens noder er identiske. Skrevet i Java.<br />

MongoDB<br />

Også en nøgle-værdi-database uden SQL, men værdierne kan<br />

være strukturerede som dokumenter i JSON-formatet. MongoDB<br />

gemmer data i hukommelsen og skal udrulles i en master-slavekonfiguration<br />

for at sikre, at data ikke forsvinder ud i det blå ved<br />

nedbrud. Skrevet i C++ med drivere til mange andre miljøer.<br />

VoltDB<br />

En ny database skabt af MIT-professoren Michael Stonebraker,<br />

som tidligere har haft en finger med i spillet om SQL-databaserne<br />

Ingres, Postgres og kolonne-databasen Vertica. VoltDB<br />

adskiller sig fra de andre databaser i den nye generation ved at<br />

Facebook benytter sin egen hjemmelavede<br />

key-value-database Cassandra.<br />

– Facebook er så kæmpestort, og de skal<br />

håndtere en mega-belastning, så hvert<br />

millisekund tæller. Der er uhensigtsmæssigheder<br />

i de gamle paradigmer, og hvis<br />

Facebooks arbejdsbelastning bruger, hvad<br />

man kan finde i en key-value-store, så er<br />

det jo fint.<br />

En anden ny type database, som Rasmus<br />

Resen Amossen synes flere danskere skulle<br />

VoltDB<br />

Overhead 5%<br />

Brugbart arbejde 95%<br />

Databaser<br />

Ved at fjerne en række af funktionerne i de klassiske databaseparadigmer<br />

kan VoltDB opnå en væsentlig forbedring af ydelsen.<br />

Kilde: VoltDB.<br />

kigge <strong>på</strong>, er kolonnedatabaser, som er skabt<br />

til analytiske opgaver. Ved at gemme data i<br />

kolonner i stedet for i rækker er det meget<br />

nemmere at udføre såkaldte aggregeringer,<br />

som for eksempel at finde summen af alle<br />

tal i en kolonne.<br />

– Du kan ofte opnå en kæmpe faktor i<br />

speedup ved at flytte data over i kolonnedatabaser,<br />

hvis dit workload er analytisk.<br />

Det er derfor lidt ærgerligt, at mange ikke<br />

kender til de her systemer.<br />

benytte klassiske tabeller og SQL. VoltDB kan ifølge sine egne<br />

benchmarks slå stort set alle andre databaser af banen, målt i<br />

transaktioner per tid. Ligesom MongoDB sker det ved at håndtere<br />

alle data i hukommelsen samt at skære unødvendige funktioner<br />

væk og undgå JDBC- og ODBC-drivere. Søgninger udføres<br />

via stored procedures, som skrives i Java. Bygger <strong>på</strong> Java og C++.<br />

CouchDB<br />

Minder meget om MongoDB ved at være dokumentorienteret<br />

med JSON og uden SQL, men benytter disk som lager og er skrevet<br />

til at køre <strong>på</strong> en klynge af almindelige pc’er. Skrevet i Erlang.<br />

Værdier i CouchDB kan tilgås med en URL.<br />

Redis<br />

Kalder ikke sig selv for en database, men benytter i stedet den<br />

mere ydmyge betegnelse ’datastore’. Benytter også nøgle-værdi-modellen,<br />

hvor værdier kan være strenge samt forskellige<br />

strukturerede mængder af strenge, såsom lister, hashmaps osv.<br />

Skrevet i C.<br />

MonetDB<br />

Er en kolonne-orienteret database med blikket rettet mod meget<br />

store analytiske opgaver.<br />

<strong>Prosa</strong>bladet · 11 · 2010 27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!