17
NoSQL Lotus Notes nya kläder? Peppe Bergqvist [email protected] Geekmeet Västerås 24/3 2011

NoSQL-presentation Geekmeet Västerås 24/3

Embed Size (px)

Citation preview

NoSQLLotus Notes nya kläder?

Peppe Bergqvist [email protected]

Geekmeet Västerås24/3 2011

Upplägg

• Presentation

• NoSQL

– Bakgrund

– NoSQL vs RDBMS

• CouchDB

• KOD!

Så, vem är Peppe?

• 31 år• Pappa till en, och en till på G• Nybliven Västeråsare• Gillar:

– Färgen grönt– Felparkerade bilar– Att bli bättre

• Hittas på http://p.bergqvi.st, mail: [email protected],twitter: peppelorum

Så, vad gör Peppe?

• Nu: BI-konsult på Acando

• Då:Webutvecklare (hej Hostit!)IxD-konsultKognitionsvetenskap i LinköpingSystemförvaltareIT-bubblan, var på Sprays sista bjudfest

NoSQL? Lotus Notes tack!

• Samlingsbegrepp

• Dokumentdatabaser (CouchDB, MongoDB)

• Key/value

• Lotus Notes

• Not SQL?

• Not only SQL?

• NoRel?

Olika smaker!

• Google (Bigtable)– Används av Google (duh!), Google App Engine

• Facebook (Cassandra)– Nu hos Twitter, Digg, reddit, Rackspace

• Amazon (SimpleDB)

• RavenDB (.net)

• CouchDB, MongoDB

• Memcache, Redis, Tokyo Cabinet, Neo4j m fl

Olika smaker!

CouchDB

• Erlang

• Protokoll: HTTP/REST, JSON

• Master-master replikering

• MVCC

• Versionshantering

• Konflikthantering

• Map/reduce

• JS queries

MongoDB

• C++

• Protokoll: Eget, BSON

• Master-slav replikering

• Inbyggd sharding

• Kraschsäkerhet kommer i 1.8

• JS queries

Fler smaker!

Cassandra

• Java

• Protokoll: Eget

• Skriv snabbare än läs!

• Map/reduce

• Skalar väldigt bra

Redis

• C/C++

• Protokoll: Telnet-ish

• Galet snabb!

• Måste platsa i RAM (ändras iom 2.2 och 2.4)

• Transaktioner

NOSQL vs RDBMS

• Struktur– Modell av verkligheten

• Relationer!– Bra att ha!– Reducerar mängden data (2:a normalformen)– Kommer iom Django-nonrel & Doctrine ODM

• ACID– A – atomär– C – konsistensbevarande– I – isolerade från varandra– D – hållbara

• Skalbarhet– RDMS, sharding, partionering (ändra kod)– NoSQL, med på köpet!

När behövs NoSQL?

• Mycket data

• Skalbarhet

• Osäker datastruktur

– Exempel

– Följder av detta?

Vad innebär det för mig?

• Ändra kod?

– Modeller? Controller? Views?

• Vänta på Django-nonrel/Doctrine ODM etc

“Django may be built for the Web, but CouchDB is built of the Web. I’ve never seen software that so completely embraces the philosophies behind HTTP. CouchDB makes Django look old-school in the same way that Django makes ASP look outdated.”

— Jacob Kaplan-Moss

Historia

• Skapades av Damien Katz 2005

• Drivs av Apache Foundation sedan 2008

Grunder i CouchDB

• Erlang

• HTTP

• Javascript

• JSON

• Map&reduce

– Dataexempel

• Futon

Gettin’ dirty!

• Sätta upp CouchDB-server

• Replikering + multi-master

– Skapa vyer

– Map&reduce

• Last-balansering med Nginx

Avslutning

• Frågor?

• Tack!

• Finns på [email protected], twitter: peppelorum

• Slideshare, oh yes!