N✮SQL
                Data-Storage jenseits von SQL




                Jonathan Weiss, 20.03.2010
                Peritor...
Wer?


    Ruby-Entwickler
    Open-Source-Contributor (http://github.com/jweiss)
    @jweiss




                        ...
N✮SQL-Datenbanken?


    Built for the Web
    Skalierbar
    Performant
    Flexibles Datenschema




                   ...
Riak           BigTable
                    Lotus Notes                   Amazon S3
                                      ...
Der Status-Quo


    Relationale Datenstrukturen
    SQL
    Transaktionssicherheit
    Locking




                      ...
Das Problem




                           6

Saturday, March 20, 2010
Das Problem




                           7

Saturday, March 20, 2010
Die Lösung



                    ”Simplicity is prerequisite for
                    reliability“
                    — E...
Die Lösung




                           key => “value”



                                            9

Saturday, March...
Dokumente




                           10

Saturday, March 20, 2010
Dokumente




                           10

Saturday, March 20, 2010
Dokumente




                           10

Saturday, March 20, 2010
Dokumente




                           10

Saturday, March 20, 2010
Integrität




                           11

Saturday, March 20, 2010
Eventual Consistency




                           12

Saturday, March 20, 2010
Append-Only




                           13

Saturday, March 20, 2010
Append-Only




                           Update




                                    14

Saturday, March 20, 2010
Append-Only




                           Update




                                    15

Saturday, March 20, 2010
Skalierbarkeit




                           16

Saturday, March 20, 2010
Tools




                           17

Saturday, March 20, 2010
Tools

                                 Riak           BigTable
                    Lotus Notes                   Amazon S...
Tools

                                 Riak           BigTable
                    Lotus Notes                   Amazon S...
Redis



    Simpler Key-Value-Store
    Speichert Strings, Listen und Sets
    Persistenz über Snapshots oder Append-Logs...
Redis




                           21

Saturday, March 20, 2010
Redis

        set foo 4
        1000
        +OK




                           22

Saturday, March 20, 2010
Redis

        set foo 4
                           Request
        1000
        +OK                Response




         ...
Scaling



    Master-Slave
     mittels Snapshots


    Multiple Master
     mittels Hash Ring




                      ...
Einsatz-Szenarien



    Persistenter Cache
    Session-Store
    Realtime-Data: Monitoring, Trading, ...
    Shared State...
CouchDB
                                relax
                                        25

Saturday, March 20, 2010
CouchDB




    Dokument-orientiert




                           26

Saturday, March 20, 2010
”CouchDB is built of the Web“
                           — Jacob Kaplan-Moss




                                         ...
CouchDB Document


              {
                  "_id": "BCCD12CBB",
                  "_rev": "1-AB764C",
           ...
CouchDB Document


              {
                  "_id": "BCCD12CBB",
                  "_rev": "1-AB764C",
           ...
CouchDB Document


              {
                  "_id": "BCCD12CBB",
                  "_rev": "1-AB764C",
           ...
CouchDB - CRUD
    Erstellen/Aktualisieren:
    PUT /starwars/BCCD12CBB


    Lesen:
    GET /starwars/BCCD12CBB


    Lös...
CouchDB




    Wie komme ich an meine Daten?




                                    32

Saturday, March 20, 2010
CouchDB




                           Views!


                                    33

Saturday, March 20, 2010
CouchDB


          function(doc) {
            if (doc.headware) {
              for (var hat in doc.headware) {
        ...
CouchDB



                  function(keys, values, rereduce) {
                    return sum(values);
                  ...
Libraries


    SimplyStored: Ruby wrapper         Models
                                       Associations
            ...
Libraries




                           37

Saturday, March 20, 2010
B-Tree




                           38

Saturday, March 20, 2010
Crash-Proof




                           39

Saturday, March 20, 2010
Offline by default




                           40

Saturday, March 20, 2010
Replication




                           41

Saturday, March 20, 2010
CouchDB




    POST /_replication




                           42

Saturday, March 20, 2010
Und?




    Daten sind wieder König




                              43

Saturday, March 20, 2010
Aber!




    Kein goldener Hammer




                           44

Saturday, March 20, 2010
45

Saturday, March 20, 2010
46

Saturday, March 20, 2010
Peritor




               Cloud-Management und -Deployment made easy
                           http://scalarium.com


  ...
Peritor GmbH
                Blücherstr. 22, Hof III Aufgang 6
                10961 Berlin
                Tel.: +49 (0)3...
Upcoming SlideShare
Loading in …5
×

NoSQL - Post-Relational Databases - BarCamp Ruhr3

2,652 views

Published on

Jonathan Weiss gives an overview of the NoSQL databases. Why would you consider one, what are the tradeoffs? Given at BarCampRuhr3 2010 in Essen, Germany (Slides are English).

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
2,652
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
0
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

NoSQL - Post-Relational Databases - BarCamp Ruhr3

  1. 1. N✮SQL Data-Storage jenseits von SQL Jonathan Weiss, 20.03.2010 Peritor GmbH Saturday, March 20, 2010
  2. 2. Wer? Ruby-Entwickler Open-Source-Contributor (http://github.com/jweiss) @jweiss 2 Saturday, March 20, 2010
  3. 3. N✮SQL-Datenbanken? Built for the Web Skalierbar Performant Flexibles Datenschema 3 Saturday, March 20, 2010
  4. 4. Riak BigTable Lotus Notes Amazon S3 Memcached Redis Cassandra MongoDB Dynamo Dynomite CouchDB Amazon SimpleDB Excel ;) Tokyo Tyrant Neo4j Project Voldemort HBase 4 Saturday, March 20, 2010
  5. 5. Der Status-Quo Relationale Datenstrukturen SQL Transaktionssicherheit Locking 5 Saturday, March 20, 2010
  6. 6. Das Problem 6 Saturday, March 20, 2010
  7. 7. Das Problem 7 Saturday, March 20, 2010
  8. 8. Die Lösung ”Simplicity is prerequisite for reliability“ — Edsger W. Dijkstra 8 Saturday, March 20, 2010
  9. 9. Die Lösung key => “value” 9 Saturday, March 20, 2010
  10. 10. Dokumente 10 Saturday, March 20, 2010
  11. 11. Dokumente 10 Saturday, March 20, 2010
  12. 12. Dokumente 10 Saturday, March 20, 2010
  13. 13. Dokumente 10 Saturday, March 20, 2010
  14. 14. Integrität 11 Saturday, March 20, 2010
  15. 15. Eventual Consistency 12 Saturday, March 20, 2010
  16. 16. Append-Only 13 Saturday, March 20, 2010
  17. 17. Append-Only Update 14 Saturday, March 20, 2010
  18. 18. Append-Only Update 15 Saturday, March 20, 2010
  19. 19. Skalierbarkeit 16 Saturday, March 20, 2010
  20. 20. Tools 17 Saturday, March 20, 2010
  21. 21. Tools Riak BigTable Lotus Notes Amazon S3 Memcached Redis Cassandra MongoDB Dynamo Dynomite CouchDB Amazon SimpleDB Excel ;) Tokyo Tyrant Neo4j Project Voldemort HBase 18 Saturday, March 20, 2010
  22. 22. Tools Riak BigTable Lotus Notes Amazon S3 Memcached Redis Cassandra MongoDB Dynamo Dynomite CouchDB Amazon SimpleDB Excel ;) Tokyo Tyrant Neo4j Project Voldemort HBase 19 Saturday, March 20, 2010
  23. 23. Redis Simpler Key-Value-Store Speichert Strings, Listen und Sets Persistenz über Snapshots oder Append-Logs 20 Saturday, March 20, 2010
  24. 24. Redis 21 Saturday, March 20, 2010
  25. 25. Redis set foo 4 1000 +OK 22 Saturday, March 20, 2010
  26. 26. Redis set foo 4 Request 1000 +OK Response 22 Saturday, March 20, 2010
  27. 27. Scaling Master-Slave mittels Snapshots Multiple Master mittels Hash Ring 23 Saturday, March 20, 2010
  28. 28. Einsatz-Szenarien Persistenter Cache Session-Store Realtime-Data: Monitoring, Trading, ... Shared State 24 Saturday, March 20, 2010
  29. 29. CouchDB relax 25 Saturday, March 20, 2010
  30. 30. CouchDB Dokument-orientiert 26 Saturday, March 20, 2010
  31. 31. ”CouchDB is built of the Web“ — Jacob Kaplan-Moss 27 Saturday, March 20, 2010
  32. 32. CouchDB Document { "_id": "BCCD12CBB", "_rev": "1-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } 28 Saturday, March 20, 2010
  33. 33. CouchDB Document { "_id": "BCCD12CBB", "_rev": "1-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } 29 Saturday, March 20, 2010
  34. 34. CouchDB Document { "_id": "BCCD12CBB", "_rev": "1-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } 30 Saturday, March 20, 2010
  35. 35. CouchDB - CRUD Erstellen/Aktualisieren: PUT /starwars/BCCD12CBB Lesen: GET /starwars/BCCD12CBB Löschen: DELETE /starwars/BCCD12CBB 31 Saturday, March 20, 2010
  36. 36. CouchDB Wie komme ich an meine Daten? 32 Saturday, March 20, 2010
  37. 37. CouchDB Views! 33 Saturday, March 20, 2010
  38. 38. CouchDB function(doc) { if (doc.headware) { for (var hat in doc.headware) { emit(hat, 1); } } } 34 Saturday, March 20, 2010
  39. 39. CouchDB function(keys, values, rereduce) { return sum(values); } 35 Saturday, March 20, 2010
  40. 40. Libraries SimplyStored: Ruby wrapper Models Associations Callbacks Validations Dynamic finder S3 attachments Paranoid delete http://github.com/peritor/simply_stored 36 Saturday, March 20, 2010
  41. 41. Libraries 37 Saturday, March 20, 2010
  42. 42. B-Tree 38 Saturday, March 20, 2010
  43. 43. Crash-Proof 39 Saturday, March 20, 2010
  44. 44. Offline by default 40 Saturday, March 20, 2010
  45. 45. Replication 41 Saturday, March 20, 2010
  46. 46. CouchDB POST /_replication 42 Saturday, March 20, 2010
  47. 47. Und? Daten sind wieder König 43 Saturday, March 20, 2010
  48. 48. Aber! Kein goldener Hammer 44 Saturday, March 20, 2010
  49. 49. 45 Saturday, March 20, 2010
  50. 50. 46 Saturday, March 20, 2010
  51. 51. Peritor Cloud-Management und -Deployment made easy http://scalarium.com 47 Saturday, March 20, 2010
  52. 52. Peritor GmbH Blücherstr. 22, Hof III Aufgang 6 10961 Berlin Tel.: +49 (0)30 69 20 09 84 0 Fax: +49 (0)30 69 20 09 84 9 Internet: www.peritor.com E-Mail: info@peritor.com © Peritor GmbH - Alle Rechte Vorbehalten Saturday, March 20, 2010

×