SlideShare a Scribd company logo
1 of 59
Hvorfor NoSQL
Tobias K Torrissen
... Med litt hjelp av Emil Eifrem
Navnet skjemmer ingen
NoSQL betyr:
Navnet skjemmer ingen
NoSQL betyr:




       Aldri SQL?
Navnet skjemmer ingen
NoSQL betyr:
Navnet skjemmer ingen
NoSQL betyr:




    Nei til SQL?
Navnet skjemmer ingen
NoSQL betyr:
Navnet skjemmer ingen
NoSQL betyr:




   Vi hater SQL?
Navnet skjemmer ingen
NoSQL betyr:
Navnet skjemmer ingen
NoSQL betyr:




   Not Only SQL
Seks trender
Størrelse på dataset
Grad av kobling
Struktur
Arkitektur
Antall brukere
Driftsmiljø
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraftig.
ny digital info / år
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraftig.
ny digital info / år




                            40EB
                            2007
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraftig.
ny digital info / år




                            40EB
                            2007    2008
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraftig.
ny digital info / år




                            40EB             2009
                            2007    2008
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraftig.
                                                    1000EB
ny digital info / år




                                                     2010
                            40EB             2009
                            2007    2008
Grad av kobling
koplingsgrad




               1990   2000   2010
Grad av kobling
koplingsgrad




               Tekstdokument




                      1990     2000   2010
Grad av kobling
koplingsgrad




                          Hypertext



               Tekstdokument




                      1990            2000   2010
Grad av kobling
koplingsgrad




                                       RSS
                          Hypertext



               Tekstdokument




                      1990            2000   2010
Grad av kobling
koplingsgrad




                                         Blogs



                                       RSS
                          Hypertext



               Tekstdokument




                      1990            2000       2010
Grad av kobling
koplingsgrad




                                                 Wiki




                                         Blogs



                                       RSS
                          Hypertext



               Tekstdokument




                      1990            2000              2010
Grad av kobling
koplingsgrad




                                                 Wiki

                                                        Tagging

                                         Blogs



                                       RSS
                          Hypertext



               Tekstdokument




                      1990            2000              2010
Grad av kobling
koplingsgrad




                                                 Wiki

                                                             Tagging

                                         Blogs          Sosiale
                                                        nettverk

                                       RSS
                          Hypertext



               Tekstdokument




                      1990            2000                2010
Grad av kobling
koplingsgrad




                                                 Wiki                  Ontologies

                                                             Tagging

                                         Blogs          Sosiale
                                                        nettverk

                                       RSS
                          Hypertext



               Tekstdokument




                      1990            2000                2010
Grad av kobling
koplingsgrad




                                                 Wiki                  Ontologies

                                                  RDF        Tagging

                                         Blogs          Sosiale
                                                        nettverk

                                       RSS
                          Hypertext



               Tekstdokument




                      1990            2000                2010
Struktur

 Data blir mer og mer semi-strukturert
   Altså - få obligatoriske felter. Mange frivillige
   Følger til “sparse tables” - mye “null”
Arkitektur
Databasen som integrasjonspunkt
Arkitektur
Databasen som integrasjonspunkt

                    App A
Arkitektur
Databasen som integrasjonspunkt

                    App A




                      DB
Arkitektur
Databasen som integrasjonspunkt

       App B        App A




                      DB
Arkitektur
Databasen som integrasjonspunkt

       App B        App A         App C




                      DB
Arkitektur
 Databasen som integrasjonspunkt


       App B        App A          App C




         DB           DB            DB
Antall brukere
Antall brukere
Driftsmiljø
Driftsmiljø
Er det noe problem da?
Er det noe problem da?
Størrelse på dataset - Tradisjonelle baser har trøbbel med
(veldig) store dataset.
Er det noe problem da?
Størrelse på dataset - Tradisjonelle baser har trøbbel med
(veldig) store dataset.

Struktur - relasjonsdatabaser er dårlige på semi-struktur
Er det noe problem da?
Størrelse på dataset - Tradisjonelle baser har trøbbel med
(veldig) store dataset.

Struktur - relasjonsdatabaser er dårlige på semi-struktur

Grad av kobling - se punkt 1 og 2.
Er det noe problem da?
Størrelse på dataset - Tradisjonelle baser har trøbbel med
(veldig) store dataset.

Struktur - relasjonsdatabaser er dårlige på semi-struktur

Grad av kobling - se punkt 1 og 2.

Arkitektur - Integrasjonsdatabaser er (ofte) ikke bra. Hvorfor
fasilitere dem?
Er det noe problem da?
Størrelse på dataset - Tradisjonelle baser har trøbbel med
(veldig) store dataset.

Struktur - relasjonsdatabaser er dårlige på semi-struktur

Grad av kobling - se punkt 1 og 2.

Arkitektur - Integrasjonsdatabaser er (ofte) ikke bra. Hvorfor
fasilitere dem?

Antall brukere - fra en til mange millioner krever distribusjon
Er det noe problem da?
Størrelse på dataset - Tradisjonelle baser har trøbbel med
(veldig) store dataset.

Struktur - relasjonsdatabaser er dårlige på semi-struktur

Grad av kobling - se punkt 1 og 2.

Arkitektur - Integrasjonsdatabaser er (ofte) ikke bra. Hvorfor
fasilitere dem?

Antall brukere - fra en til mange millioner krever distribusjon

Driftsmiljø - RDBMS er designet for og trives best på få maskiner
ACID
Atomicity
Consistency
Isolation
Durability



              know it
CAP
               Availability




                              Partitioning
 Consistency
                               Tolerance

                                             know it
know it
BASE
Basically Available
Soft state
Eventual consistency




                       know it
Hvordan NoSQL
Hvilke alternativ finnes?
Fire “emerging” teknologier

 Key/Value stores
 Wide column stores
 Dokument stores
 Graf databaser
Key/Value stores
                                      key-value


Basert på Amazons Dynamo artikkel
Datamodell: 	samling av 	Key/Values
Voldemort, Tokyo, Dynomite, Redis
Wide Column Stores

                                           1

Basert på Googles BigTable artikkel
Datamodell: “big table”, column families       1   2


Eksempler: HBase, Hypertable,              5
           Cassandra
Dokument databaser


Inspirert av Lotus Notes
Datamodell: lister av key/value lister.
Eksempler: CouchDB, MongoDB, Riak
Graf databaser


Inspirert av Euler og Grafteori
Datamodell: 
Noder, kanter, Key/Value på begge.
Eksempler: AllegroGraph, VertexDB, Neo4J
Skaler for
 størrelse




                     90%


             Skaler for
             kompleksitet
Skaler for           Berkeley   Voldemort   Tokyo



 størrelse   Key-
             Value




                                                            90%


                                                    Skaler for
                                                    kompleksitet
Skaler for           Berkeley   Voldemort          Tokyo



 størrelse   Key-
                                            Bigtable       HBase
             Value
                                                                   Cassandra




                         Tabell




                                                                                       90%


                                                                               Skaler for
                                                                               kompleksitet
Skaler for           Berkeley   Voldemort          Tokyo



 størrelse   Key-
                                            Bigtable       HBase
             Value
                                                                         Cassandra




                         Tabell
                                                               MongoDB          Couch     Jackrabbit




                                            Document




                                                                                                       90%


                                                                                        Skaler for
                                                                                        kompleksitet
Skaler for           Berkeley   Voldemort          Tokyo



 størrelse   Key-
                                            Bigtable       HBase
             Value
                                                                         Cassandra




                         Tabell
                                                               MongoDB          Couch       Jackrabbit




                                            Document

                                                                                        Neo4j            db4o


                                                                   Graf

                                                                                                                90%


                                                                                        Skaler for
                                                                                        kompleksitet
Takk for meg!

More Related Content

Viewers also liked

20100311 Ntl Sørmarka
20100311 Ntl Sørmarka20100311 Ntl Sørmarka
20100311 Ntl SørmarkaDag Westhrin
 
CIOForum
CIOForumCIOForum
CIOForumtobiast
 
Social Commerce App UI/UX Concept
Social Commerce App UI/UX ConceptSocial Commerce App UI/UX Concept
Social Commerce App UI/UX ConceptKarthik Kasoju
 
NAV pensjonsprogrammet NTL 22042010
NAV pensjonsprogrammet NTL 22042010NAV pensjonsprogrammet NTL 22042010
NAV pensjonsprogrammet NTL 22042010Dag Westhrin
 
Klimavennlig Arbeidsliv - Med Kommentarer
Klimavennlig Arbeidsliv - Med KommentarerKlimavennlig Arbeidsliv - Med Kommentarer
Klimavennlig Arbeidsliv - Med KommentarerDag Westhrin
 
Pensjonsreformen status mars 2011
Pensjonsreformen   status mars 2011Pensjonsreformen   status mars 2011
Pensjonsreformen status mars 2011Dag Westhrin
 
Ia avtalen 2010 til 2013 jl
Ia avtalen 2010 til 2013 jlIa avtalen 2010 til 2013 jl
Ia avtalen 2010 til 2013 jlDag Westhrin
 

Viewers also liked (10)

20100311 Ntl Sørmarka
20100311 Ntl Sørmarka20100311 Ntl Sørmarka
20100311 Ntl Sørmarka
 
Pensjon10022010
Pensjon10022010Pensjon10022010
Pensjon10022010
 
CIOForum
CIOForumCIOForum
CIOForum
 
Social Commerce App UI/UX Concept
Social Commerce App UI/UX ConceptSocial Commerce App UI/UX Concept
Social Commerce App UI/UX Concept
 
NAV pensjonsprogrammet NTL 22042010
NAV pensjonsprogrammet NTL 22042010NAV pensjonsprogrammet NTL 22042010
NAV pensjonsprogrammet NTL 22042010
 
Klimavennlig Arbeidsliv - Med Kommentarer
Klimavennlig Arbeidsliv - Med KommentarerKlimavennlig Arbeidsliv - Med Kommentarer
Klimavennlig Arbeidsliv - Med Kommentarer
 
Pensjonsreformen status mars 2011
Pensjonsreformen   status mars 2011Pensjonsreformen   status mars 2011
Pensjonsreformen status mars 2011
 
Pensjon10022010
Pensjon10022010Pensjon10022010
Pensjon10022010
 
Csr Briefing 090910s
Csr Briefing 090910sCsr Briefing 090910s
Csr Briefing 090910s
 
Ia avtalen 2010 til 2013 jl
Ia avtalen 2010 til 2013 jlIa avtalen 2010 til 2013 jl
Ia avtalen 2010 til 2013 jl
 

NoSQL javaBin sommermøte

Editor's Notes

  1. Tagging, web 2.0
  2. Ja, det er litt problematisk for RDMBS-er
  3. Ja, det er litt problematisk for RDMBS-er
  4. Ja, det er litt problematisk for RDMBS-er
  5. Ja, det er litt problematisk for RDMBS-er
  6. Ja, det er litt problematisk for RDMBS-er
  7. Ja, det er litt problematisk for RDMBS-er
  8. Tidligere sverget man til ACID. Atomic: Everything in a transaction succeeds or the entire transaction is rolled back. Basicly available: Fokus på oppetid Consistent: A transaction cannot leave the database in an inconsistent state. Soft state: Greit om du ikke er helt i sync Isolated: Transactions cannot interfere with each other. Eventual consistency: Det blir bra til slutt Durable: Completed transactions persist, even when servers restart etc Flytende grense ... Vanskeligere å lage BASE systemer
  9. Dr. Eric A. Brewer sitt teorem Cosistency describes how and whether a system is left in a consistent state after an operation. In a distributed data system, this usually means that once a writer has written, all readers will see that write. High Availability refers to the design and implementation of a system such that it is ensured to remain operational over some period of time. Partition tolerance refers to the ability for a system to continue to operate in the presence of a network partitions. Velg TO! Du kan ikke få begge. Faller en node bort
  10. Tidligere sverget man til ACID. Atomic: Everything in a transaction succeeds or the entire transaction is rolled back. Basicly available: Fokus på oppetid Consistent: A transaction cannot leave the database in an inconsistent state. Soft state: Greit om du ikke er helt i sync Isolated: Transactions cannot interfere with each other. Eventual consistency: Det blir bra til slutt Durable: Completed transactions persist, even when servers restart etc Flytende grense ... Vanskeligere å lage BASE systemer
  11. Tidligere sverget man til ACID. Atomic: Everything in a transaction succeeds or the entire transaction is rolled back. Basicly available: Fokus på oppetid Consistent: A transaction cannot leave the database in an inconsistent state. Soft state: Greit om du ikke er helt i sync Isolated: Transactions cannot interfere with each other. Eventual consistency: Det blir bra til slutt Durable: Completed transactions persist, even when servers restart etc Flytende grense ... Vanskeligere å lage BASE systemer
  12. Tidligere sverget man til ACID. Atomic: Everything in a transaction succeeds or the entire transaction is rolled back. Basicly available: Fokus på oppetid Consistent: A transaction cannot leave the database in an inconsistent state. Soft state: Greit om du ikke er helt i sync Isolated: Transactions cannot interfere with each other. Eventual consistency: Det blir bra til slutt Durable: Completed transactions persist, even when servers restart etc Flytende grense ... Vanskeligere å lage BASE systemer
  13. Tidligere sverget man til ACID. Atomic: Everything in a transaction succeeds or the entire transaction is rolled back. Basicly available: Fokus på oppetid Consistent: A transaction cannot leave the database in an inconsistent state. Soft state: Greit om du ikke er helt i sync Isolated: Transactions cannot interfere with each other. Eventual consistency: Det blir bra til slutt Durable: Completed transactions persist, even when servers restart etc Flytende grense ... Vanskeligere å lage BASE systemer
  14. Tidligere sverget man til ACID. Atomic: Everything in a transaction succeeds or the entire transaction is rolled back. Basicly available: Fokus på oppetid Consistent: A transaction cannot leave the database in an inconsistent state. Soft state: Greit om du ikke er helt i sync Isolated: Transactions cannot interfere with each other. Eventual consistency: Det blir bra til slutt Durable: Completed transactions persist, even when servers restart etc Flytende grense ... Vanskeligere å lage BASE systemer
  15. Grov inndeling
  16. Amazon handlevogn. Ekstremt enkle API-er put/get Uansett hvordan du involverer deg i NoSQL spacet, så IKKE skriv en ny key value store
  17. Bigtable: OSDI'06: Seventh Symposium on Operating System Design and Implementation,Seattle, WA, November, 2006 Ofte brukt som datastor for map reduce
  18. Basicly putter har du en nøkkel og et tilhørende dokument.
  19. CA - Konsistent, available - men dersom en node forsvinner fungerer det ikke. Yahoo er største sponsor med ti-tusenvis av noder.