CouchDB
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

CouchDB

on

  • 1,790 views

CouchDB Session Barcamp 'The Next Web', Salzburg 2011

CouchDB Session Barcamp 'The Next Web', Salzburg 2011

Statistics

Views

Total Views
1,790
Views on SlideShare
1,768
Embed Views
22

Actions

Likes
0
Downloads
33
Comments
0

1 Embed 22

http://lanyrd.com 22

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

CouchDB Presentation Transcript

  • 1. Introduction Documents Distributed System Queries and Views CouchApps CouchDB Kerstin PuschkeThe Next Web - Barcamp Salzburg 2011 Kerstin Puschke NoSQL
  • 2. Introduction Documents Distributed System Queries and Views CouchAppsLicense License Creative Commons Attribution 3.0 Germany Lizenz, see http://creativecommons.org/licenses/by/3.0/de/ Kerstin Puschke NoSQL
  • 3. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction Kerstin Puschke NoSQL
  • 4. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents Kerstin Puschke NoSQL
  • 5. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents 3 Distributed System Kerstin Puschke NoSQL
  • 6. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents 3 Distributed System 4 Queries and Views Views Creating Views with Map Reduce Example Kerstin Puschke NoSQL
  • 7. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents 3 Distributed System 4 Queries and Views Views Creating Views with Map Reduce Example 5 CouchApps Kerstin Puschke NoSQL
  • 8. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase Kerstin Puschke NoSQL
  • 9. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store Kerstin Puschke NoSQL
  • 10. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless Kerstin Puschke NoSQL
  • 11. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication Kerstin Puschke NoSQL
  • 12. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication scaling up and down Kerstin Puschke NoSQL
  • 13. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication scaling up and down open web standards Kerstin Puschke NoSQL
  • 14. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication scaling up and down open web standards decentralized (web)applications - available offline Kerstin Puschke NoSQL
  • 15. Introduction Documents Distributed System Queries and Views CouchAppsIn the Wild BBC Kerstin Puschke NoSQL
  • 16. Introduction Documents Distributed System Queries and Views CouchAppsIn the Wild BBC Ubuntu One Kerstin Puschke NoSQL
  • 17. Introduction Documents Distributed System Queries and Views CouchAppsIn the Wild BBC Ubuntu One lots of software, websites, facebook apps, . . . Kerstin Puschke NoSQL
  • 18. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Kerstin Puschke NoSQL
  • 19. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included Kerstin Puschke NoSQL
  • 20. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs Kerstin Puschke NoSQL
  • 21. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs create a database PUT http://localhost:5984/foo Kerstin Puschke NoSQL
  • 22. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs create a database PUT http://localhost:5984/foo delete a a database DELETE http://localhost:5984/foo Kerstin Puschke NoSQL
  • 23. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs create a database PUT http://localhost:5984/foo delete a a database DELETE http://localhost:5984/foo Webinterface Futon http://localhost:5984/_utils Kerstin Puschke NoSQL
  • 24. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs Kerstin Puschke NoSQL
  • 25. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) Kerstin Puschke NoSQL
  • 26. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous Kerstin Puschke NoSQL
  • 27. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . Kerstin Puschke NoSQL
  • 28. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: Kerstin Puschke NoSQL
  • 29. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: unique document identifier _id (UUID) Kerstin Puschke NoSQL
  • 30. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: unique document identifier _id (UUID) revision identifier _rev Kerstin Puschke NoSQL
  • 31. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: unique document identifier _id (UUID) revision identifier _rev files can be attached to documents Kerstin Puschke NoSQL
  • 32. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsCouchDB DocumentJSON Kerstin Puschke NoSQL
  • 33. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsUpdates client sends full document Kerstin Puschke NoSQL
  • 34. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsUpdates client sends full document append-only - new version appended to database no diffs, no partial updates Kerstin Puschke NoSQL
  • 35. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsUpdates client sends full document append-only - new version appended to database no diffs, no partial updates robust and fast Kerstin Puschke NoSQL
  • 36. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking Kerstin Puschke NoSQL
  • 37. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev Kerstin Puschke NoSQL
  • 38. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database Kerstin Puschke NoSQL
  • 39. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database yes: new version saved along with new _rev Kerstin Puschke NoSQL
  • 40. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database yes: new version saved along with new _rev no: conflict - update refused with 409 Kerstin Puschke NoSQL
  • 41. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database yes: new version saved along with new _rev no: conflict - update refused with 409 no version control some versions unavailable (at least on some nodes) Kerstin Puschke NoSQL
  • 42. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design Kerstin Puschke NoSQL
  • 43. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document Kerstin Puschke NoSQL
  • 44. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code Kerstin Puschke NoSQL
  • 45. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates Kerstin Puschke NoSQL
  • 46. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update Kerstin Puschke NoSQL
  • 47. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update show, list: rendering output Kerstin Puschke NoSQL
  • 48. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update show, list: rendering output map, reduce: creation of views/indices Kerstin Puschke NoSQL
  • 49. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update show, list: rendering output map, reduce: creation of views/indices default language: JavaScript plugins for PHP, Ruby, Python, Perl, Common Lisp, Erlang,. . . Kerstin Puschke NoSQL
  • 50. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster Kerstin Puschke NoSQL
  • 51. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental Kerstin Puschke NoSQL
  • 52. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions Kerstin Puschke NoSQL
  • 53. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . Kerstin Puschke NoSQL
  • 54. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . very robust Kerstin Puschke NoSQL
  • 55. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . very robust filtered Kerstin Puschke NoSQL
  • 56. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . very robust filtered ’non-destructive’ conflict handling Kerstin Puschke NoSQL
  • 57. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . Kerstin Puschke NoSQL
  • 58. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency Kerstin Puschke NoSQL
  • 59. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency inconsistency window Kerstin Puschke NoSQL
  • 60. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency inconsistency window BASE - basically available, soft-state, eventually consistent Kerstin Puschke NoSQL
  • 61. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency inconsistency window BASE - basically available, soft-state, eventually consistent ACID on a single node, BASE in a distributed system Kerstin Puschke NoSQL
  • 62. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQueries fetch document by _id Kerstin Puschke NoSQL
  • 63. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQueries fetch document by _id no dynamic queries, no ad hoc reporting Kerstin Puschke NoSQL
  • 64. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQueries fetch document by _id no dynamic queries, no ad hoc reporting need to create views (indices) to query Kerstin Puschke NoSQL
  • 65. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs Kerstin Puschke NoSQL
  • 66. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Kerstin Puschke NoSQL
  • 67. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value Kerstin Puschke NoSQL
  • 68. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible Kerstin Puschke NoSQL
  • 69. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key Kerstin Puschke NoSQL
  • 70. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key efficient lookup of keys or key ranges ’Posts created in May 2009’ Kerstin Puschke NoSQL
  • 71. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key efficient lookup of keys or key ranges ’Posts created in May 2009’ values can be aggregated Kerstin Puschke NoSQL
  • 72. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key efficient lookup of keys or key ranges ’Posts created in May 2009’ values can be aggregated created and updated when accessed Kerstin Puschke NoSQL
  • 73. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViewExample View with key date and value title, in Futon Kerstin Puschke NoSQL
  • 74. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming Kerstin Puschke NoSQL
  • 75. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) Kerstin Puschke NoSQL
  • 76. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents Kerstin Puschke NoSQL
  • 77. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map Kerstin Puschke NoSQL
  • 78. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document Kerstin Puschke NoSQL
  • 79. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view Kerstin Puschke NoSQL
  • 80. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key Kerstin Puschke NoSQL
  • 81. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key reduce (optional) Kerstin Puschke NoSQL
  • 82. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key reduce (optional) input: (partial) results of map or of previous calls to reduce Kerstin Puschke NoSQL
  • 83. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key reduce (optional) input: (partial) results of map or of previous calls to reduce returns aggregated values Kerstin Puschke NoSQL
  • 84. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap FunctionExample Design doc with map Kerstin Puschke NoSQL
  • 85. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsReduce FunctionExample Design doc with map and reduce Kerstin Puschke NoSQL
  • 86. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQuerying ViewExample View without reduce Kerstin Puschke NoSQL
  • 87. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQuerying a ViewExample View with reduce Kerstin Puschke NoSQL
  • 88. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQuerying a ViewExample View with reduce View with reduce and group_level=2 Kerstin Puschke NoSQL
  • 89. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExampleBlogpost with “inline” comments Kerstin Puschke NoSQL
  • 90. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExamplePosts and Comments in different docs Kerstin Puschke NoSQL
  • 91. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExampleView to query for posts and their comments map-function with composite key function(doc) { if (doc.type == "post") { emit([doc._id, 0], doc); } else if (doc.type == "comment") { emit([doc.post_id, 1], doc); } } Kerstin Puschke NoSQL
  • 92. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExamplecontd. Kerstin Puschke NoSQL
  • 93. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database Kerstin Puschke NoSQL
  • 94. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware Kerstin Puschke NoSQL
  • 95. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware data and code are documents: update, fork, backup etc. via replication Kerstin Puschke NoSQL
  • 96. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware data and code are documents: update, fork, backup etc. via replication show/list functions, direct access to attachments (HTML,JavaScript,. . . ) Kerstin Puschke NoSQL
  • 97. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware data and code are documents: update, fork, backup etc. via replication show/list functions, direct access to attachments (HTML,JavaScript,. . . ) load data via AJAX Kerstin Puschke NoSQL
  • 98. Introduction Documents Distributed System Queries and Views CouchAppsQ&A Thanks for listening! Questions? Comments? Kerstin Puschke NoSQL
  • 99. Links The CouchDB Project http://couchdb.apache.org Kerstin Puschke NoSQL
  • 100. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Kerstin Puschke NoSQL
  • 101. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Book: CouchDB - The Definitive Guide http://guide.couchdb.org Kerstin Puschke NoSQL
  • 102. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Book: CouchDB - The Definitive Guide http://guide.couchdb.org CouchApp - framework: Simple JavaScript applications with CouchDB http://couchapp.org Kerstin Puschke NoSQL
  • 103. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Book: CouchDB - The Definitive Guide http://guide.couchdb.org CouchApp - framework: Simple JavaScript applications with CouchDB http://couchapp.org Couchbase - free hosting, docs, and more http://www.couchone.com Kerstin Puschke NoSQL