Evaluering av datalagre brukt i distribuert kontekst
Abstract
I løpet av de siste årene har relasjonelle databaser mistet litt av sin popularitet hos noen av de mest innflytelsesrike aktørene innen informasjonsteknologi. Sent i 1990-årene, og tidlig i 2000-årene opplevde vi en stor endring innen kommunikasjon. I starten var det meste av nettsider read-only. Typisk ville en person lage en nettside med innhold. Deretter ville brukere lese innholdet. Etterhvert gikk man mer og mer bort fra read-only mønsteret, og skapte sosiale nettverk hvor brukerne selv publiserte innhold. Dette trigget et behov for omstrukturering av måten man lagret og hentet data i datalagre på. Noen har fortsatt å bruke relasjonelle databaser, selv om bruksområdene kanskje ikke var helt optimale for det. Andre igjen har utviklet nye systemer fra grunnen av med ulike tradeoffs. Det er slike systemer som har blitt samlet under begrepet NoSQL. Utgangspunktet for denne oppgaven har vært å utforske en de systemer som inngår i NoSQL bevegelsen. Disse systemene viker fra tradisjonelle databaser. Det som har vært av interesse er å se hvilke teknologier som ligger til grunn for disse systemene, hvordan de brukes og hva de brukes til. Første del av oppgaven er en gjennomgang av bakgrunn og definisjon av NoSQL. Deretter følger en gjennomgang av typiske teknologier og metoder som brukes i systemene. Resten av oppgaven består av et litteraturstudie av endel viktige NoSQL systemer. Systemene er evaluert etter visse egenskaper og kategorisert etter prioritering for konsistens, tilgjengelighet og partition-toleranse. I tillegg er typiske bruksområder eller fordeler for de forskjellige systemene spesifisert. Kode er skrevet for å illustrere hvordan man kan bruke endel av systemene.