Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to CouchDB

Joan Touzet
November 17, 2014

Introduction to CouchDB

What makes CouchDB different from all other databases? Find out in this talk.

Joan Touzet

November 17, 2014
Tweet

More Decks by Joan Touzet

Other Decks in Technology

Transcript

  1. CouchDB
    Apache
    Introduction to

    View Slide

  2. WHAT SETS
    COUCHDB
    APART FROM
    OTHER
    DATABASES?

    View Slide

  3. Joan Touzet
    [email protected]
    @wohali

    View Slide

  4. A database:
    The single
    origin of truth

    View Slide

  5. Then NoSQL
    happened

    View Slide

  6. What makes
    CouchDB
    special?

    View Slide

  7. CouchDB is
    more
    like
    git
    than
    Postgres

    View Slide

  8. master

    View Slide

  9. master
    secondary

    View Slide

  10. master
    …2ndary 2ndary 2ndary…

    View Slide

  11. master master

    View Slide

  12. master master
    master…

    View Slide

  13. CouchDB is not
    just a database
    It is a protocol

    View Slide

  14. The Couch
    Replication
    Protocol

    View Slide

  15. PouchDB

    View Slide

  16. A database in
    your browser

    View Slide

  17. TouchDB
    Couchbase Mobile

    View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. 1969-1997 (ish)
    27

    View Slide

  28. Offline was the default.
    28

    View Slide

  29. Online was slow, expensive, rare.
    29

    View Slide

  30. Online was slow, expensive, rare.
    30

    View Slide

  31. Design pattern: Store and Forward
    Plan 55-A message
    switching systems
    31

    View Slide

  32. Design pattern: Store and Forward
    Unix to Unix Copy (UUCP)
    Network News Transfer
    Protocol (NNTP)
    Simple Mail Transport Protocol
    (SMTP)
    32

    View Slide

  33. DETAILS

    View Slide

  34. HTTP

    View Slide

  35. JSON
    DOCUMENTS

    View Slide

  36. REPLICATION

    View Slide

  37. _changes

    View Slide

  38. VIEWS

    View Slide

  39. R O B U S T

    View Slide

  40. STORAGE

    View Slide

  41. CONCURRENCY

    View Slide

  42. RESUME

    View Slide

  43. THANKS!

    View Slide

  44. Questions?

    View Slide

  45. View Slide

  46. BONUS MATERIAL

    View Slide

  47. Conflicts

    View Slide


  48. Conflict resolution
    by example
    A B

    View Slide



  49. Conflict resolution
    by example
    A B

    View Slide


  50. Conflict resolution
    by example
    A B
    ❦ ✿
    ̇

    View Slide


  51. ̇
    Conflict resolution
    by example
    A B
    ̇

    View Slide


  52. ̇
    Conflict resolution
    by example
    A B
    ̇

    View Slide

  53. View Slide