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
                       kraf...
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraf...
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraf...
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraf...
Størrelse på dataset
                       IDC: Den totale mengden med nye digitale data øker
                       kraf...
Grad av kobling
koplingsgrad




               1990   2000   2010
Grad av kobling
koplingsgrad




               Tekstdokument




                      1990     2000   2010
Grad av kobling
koplingsgrad




                          Hypertext



               Tekstdokument




                 ...
Grad av kobling
koplingsgrad




                                       RSS
                          Hypertext



       ...
Grad av kobling
koplingsgrad




                                         Blogs



                                       ...
Grad av kobling
koplingsgrad




                                                 Wiki




                               ...
Grad av kobling
koplingsgrad




                                                 Wiki

                                  ...
Grad av kobling
koplingsgrad




                                                 Wiki

                                  ...
Grad av kobling
koplingsgrad




                                                 Wiki                  Ontologies

      ...
Grad av kobling
koplingsgrad




                                                 Wiki                  Ontologies

      ...
Struktur

 Data blir mer og mer semi-strukturert
   Altså - få obligatoriske felter. Mange frivillige
   Følger til “spars...
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       ...
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 - rela...
Er det noe problem da?
Størrelse på dataset - Tradisjonelle baser har trøbbel med
(veldig) store dataset.

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

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

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

Struktur - rela...
ACID
Atomicity
Consistency
Isolation
Durability



              know it
CAP
               Availability




                              Partitioning
 Consistency
                              ...
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 ...
Wide Column Stores

                                           1

Basert på Googles BigTable artikkel
Datamodell: “big tab...
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, ...
Skaler for
 størrelse




                     90%


             Skaler for
             kompleksitet
Skaler for           Berkeley   Voldemort   Tokyo



 størrelse   Key-
             Value




                            ...
Skaler for           Berkeley   Voldemort          Tokyo



 størrelse   Key-
                                            ...
Skaler for           Berkeley   Voldemort          Tokyo



 størrelse   Key-
                                            ...
Skaler for           Berkeley   Voldemort          Tokyo



 størrelse   Key-
                                            ...
Takk for meg!
Upcoming SlideShare
Loading in …5
×

NoSQL javaBin sommermøte

577 views
477 views

Published on

Tobias Torrissen presentasjon fra javaBins sommermøte

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
577
On SlideShare
0
From Embeds
0
Number of Embeds
62
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
























  • Tagging, web 2.0















  • Ja, det er litt problematisk for RDMBS-er
  • Ja, det er litt problematisk for RDMBS-er
  • Ja, det er litt problematisk for RDMBS-er
  • Ja, det er litt problematisk for RDMBS-er
  • Ja, det er litt problematisk for RDMBS-er
  • Ja, det er litt problematisk for RDMBS-er
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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

  • Grov inndeling
  • Amazon handlevogn. Ekstremt enkle API-er
    put/get
    Uansett hvordan du involverer deg i NoSQL spacet, så IKKE skriv en ny key value store
  • Bigtable: OSDI'06: Seventh Symposium on Operating System Design and Implementation,Seattle, WA, November, 2006

    Ofte brukt som datastor for map reduce
  • Basicly putter har du en nøkkel og et tilhørende dokument.
















  • CA - Konsistent, available - men dersom en node forsvinner fungerer det ikke.
    Yahoo er største sponsor med ti-tusenvis av noder.
  • NoSQL javaBin sommermøte

    1. 1. Hvorfor NoSQL Tobias K Torrissen ... Med litt hjelp av Emil Eifrem
    2. 2. Navnet skjemmer ingen NoSQL betyr:
    3. 3. Navnet skjemmer ingen NoSQL betyr: Aldri SQL?
    4. 4. Navnet skjemmer ingen NoSQL betyr:
    5. 5. Navnet skjemmer ingen NoSQL betyr: Nei til SQL?
    6. 6. Navnet skjemmer ingen NoSQL betyr:
    7. 7. Navnet skjemmer ingen NoSQL betyr: Vi hater SQL?
    8. 8. Navnet skjemmer ingen NoSQL betyr:
    9. 9. Navnet skjemmer ingen NoSQL betyr: Not Only SQL
    10. 10. Seks trender Størrelse på dataset Grad av kobling Struktur Arkitektur Antall brukere Driftsmiljø
    11. 11. Størrelse på dataset IDC: Den totale mengden med nye digitale data øker kraftig. ny digital info / år
    12. 12. Størrelse på dataset IDC: Den totale mengden med nye digitale data øker kraftig. ny digital info / år 40EB 2007
    13. 13. Størrelse på dataset IDC: Den totale mengden med nye digitale data øker kraftig. ny digital info / år 40EB 2007 2008
    14. 14. Størrelse på dataset IDC: Den totale mengden med nye digitale data øker kraftig. ny digital info / år 40EB 2009 2007 2008
    15. 15. Størrelse på dataset IDC: Den totale mengden med nye digitale data øker kraftig. 1000EB ny digital info / år 2010 40EB 2009 2007 2008
    16. 16. Grad av kobling koplingsgrad 1990 2000 2010
    17. 17. Grad av kobling koplingsgrad Tekstdokument 1990 2000 2010
    18. 18. Grad av kobling koplingsgrad Hypertext Tekstdokument 1990 2000 2010
    19. 19. Grad av kobling koplingsgrad RSS Hypertext Tekstdokument 1990 2000 2010
    20. 20. Grad av kobling koplingsgrad Blogs RSS Hypertext Tekstdokument 1990 2000 2010
    21. 21. Grad av kobling koplingsgrad Wiki Blogs RSS Hypertext Tekstdokument 1990 2000 2010
    22. 22. Grad av kobling koplingsgrad Wiki Tagging Blogs RSS Hypertext Tekstdokument 1990 2000 2010
    23. 23. Grad av kobling koplingsgrad Wiki Tagging Blogs Sosiale nettverk RSS Hypertext Tekstdokument 1990 2000 2010
    24. 24. Grad av kobling koplingsgrad Wiki Ontologies Tagging Blogs Sosiale nettverk RSS Hypertext Tekstdokument 1990 2000 2010
    25. 25. Grad av kobling koplingsgrad Wiki Ontologies RDF Tagging Blogs Sosiale nettverk RSS Hypertext Tekstdokument 1990 2000 2010
    26. 26. Struktur Data blir mer og mer semi-strukturert Altså - få obligatoriske felter. Mange frivillige Følger til “sparse tables” - mye “null”
    27. 27. Arkitektur Databasen som integrasjonspunkt
    28. 28. Arkitektur Databasen som integrasjonspunkt App A
    29. 29. Arkitektur Databasen som integrasjonspunkt App A DB
    30. 30. Arkitektur Databasen som integrasjonspunkt App B App A DB
    31. 31. Arkitektur Databasen som integrasjonspunkt App B App A App C DB
    32. 32. Arkitektur Databasen som integrasjonspunkt App B App A App C DB DB DB
    33. 33. Antall brukere
    34. 34. Antall brukere
    35. 35. Driftsmiljø
    36. 36. Driftsmiljø
    37. 37. Er det noe problem da?
    38. 38. Er det noe problem da? Størrelse på dataset - Tradisjonelle baser har trøbbel med (veldig) store dataset.
    39. 39. 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
    40. 40. 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.
    41. 41. 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?
    42. 42. 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
    43. 43. 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
    44. 44. ACID Atomicity Consistency Isolation Durability know it
    45. 45. CAP Availability Partitioning Consistency Tolerance know it
    46. 46. know it
    47. 47. BASE Basically Available Soft state Eventual consistency know it
    48. 48. Hvordan NoSQL Hvilke alternativ finnes?
    49. 49. Fire “emerging” teknologier Key/Value stores Wide column stores Dokument stores Graf databaser
    50. 50. Key/Value stores key-value Basert på Amazons Dynamo artikkel Datamodell: samling av Key/Values Voldemort, Tokyo, Dynomite, Redis
    51. 51. Wide Column Stores 1 Basert på Googles BigTable artikkel Datamodell: “big table”, column families 1 2 Eksempler: HBase, Hypertable, 5 Cassandra
    52. 52. Dokument databaser Inspirert av Lotus Notes Datamodell: lister av key/value lister. Eksempler: CouchDB, MongoDB, Riak
    53. 53. Graf databaser Inspirert av Euler og Grafteori Datamodell: Noder, kanter, Key/Value på begge. Eksempler: AllegroGraph, VertexDB, Neo4J
    54. 54. Skaler for størrelse 90% Skaler for kompleksitet
    55. 55. Skaler for Berkeley Voldemort Tokyo størrelse Key- Value 90% Skaler for kompleksitet
    56. 56. Skaler for Berkeley Voldemort Tokyo størrelse Key- Bigtable HBase Value Cassandra Tabell 90% Skaler for kompleksitet
    57. 57. Skaler for Berkeley Voldemort Tokyo størrelse Key- Bigtable HBase Value Cassandra Tabell MongoDB Couch Jackrabbit Document 90% Skaler for kompleksitet
    58. 58. Skaler for Berkeley Voldemort Tokyo størrelse Key- Bigtable HBase Value Cassandra Tabell MongoDB Couch Jackrabbit Document Neo4j db4o Graf 90% Skaler for kompleksitet
    59. 59. Takk for meg!

    ×