Your SlideShare is downloading. ×
0
Apache
CouchDB
Hello
Chris Anderson
jchris@apache.org / @jchris
Apache CouchDB Committer
REST and JavaScript enthusiast
Director, couch.io
I’m here to answer the question: What is CouchDB? (from an app devs perspective - and some
implementor)
How many of you ha...
Relax
-   easy to reason about
-   reliable - your data is safe with us.
-   honda accord, not a ferrari
-   as a debating...
Bandwidth Explosion
“no bars”
http://www.flickr.com/photos/hercwad/2290378571/
Latency Sucks




speed of light
drawback to cloud computing
What is
         CouchDB?

- k/v store with map reduce
- http database written in erlang
Local Web
         Local Web
          Platform
          Platform
- on your device, local network, in a browser plugin
- ...
“Ground Computing”
                                                                        @jhuggins




                 ...
Offline by Default




                           http://www.flickr.com/photos/shane-h/280084650
- low latency & reliable
- 2...
http://apod.nasa.gov/apod/ap050930.html




                                                  “Of the Web”



            ...
- lower barrier for contribution
- validate installations
- foster interop (CouchDB as a protocol)
Learning Curve



- doc modeling (mvcc / concurrency)
- etags / Functional style of REST
- eventual consistency
http://www.longnow.org/projects/clock/
http://www.longnow.org/projects/clock/orrery/
Robust



-   single file
-   append only
-   no fixup phase
-   minimizes seeks
Robust



- when britain is burning
- Enda Farrell - bbc
{
        "_id": "BC4ea69ce1a73aa7d21d23b608d221d
        "_rev": "1-967a00dff5e02add41819138abb32
        JSON Documents
...
{
    "_id": "BC4ea69ce1a73aa7d21d23b608d221d
    "_rev": "1-967a00dff5e02add41819138abb32
    JSON Documents
    "type": ...
{
     "_id": "BC4ea69ce1a73aa7d21d23b608d221d
     "_rev": "2-41819138abb32967a00dff5e02ad
     JSON Documents
     "type...

 Map Reduce
http://horicky.blogspot.com/2008/10/couchdb-implementation.html
ful 


  http://www.flickr.com/photos/calliope/3573471166
db
                   
       http://code.google.com/p/couchdb-lounge/



http://www.flickr.com/photos/aussiegal...
curl -X POST
 http://127.0.0.1:5984/_replicate



-d
'{
"source":
 "http://couch.example.com:5984/remote-db",
"target":
 "...
curl -X POST
 http://127.0.0.1:5984/_replicate



-d
'{
"source":
 "http://couch.example.com:5984/remote-db",
"target":
 "...
periodic, notifier system
“In the fullness of time there is only one CouchDB”
standalone CouchDB applications
Scaling Down
Browser Couch
                       JavaScript port

                Uses HTML5 storage

            Replicates with Couc...
Gives Control to Users




                    CC-BY-SA http://www.flickr.com/photos/kelleys/492253912/

 - want to get kid...
Stuart Langridge - Canonical




!   !
-   good because it's the status quo
-   easy to address with URLs
-   bad because users are depending on a remote resourc...
- local requests are fast
- easier to tune for throughput
- plays to the strengths of mobile connections
- users can run different applications on the same dataset
deployment
 Independent
 Personal
   - dark matter of the infor...
messaging
  peer discovery
identity
  Can we trust intermediate servers?
“Obvious.”

web architecture
Local Web
 Platform
anks!
Resources
                  @CouchDB

           http://couchdb.apache.org/

  Dress like a Couch: http://shop.couchdb.com...
@couchdbinaction




http://books.couchdb.org/relax
Robust
JSON
HTTP
Local
Conflict resolution by
     example


 A               B




                     couch.io
Conflict resolution by
     example


 A               B


 ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ✿
                ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ✿
                ❦
                     couch.io
Conflict resolution by
     example


 A               B


                ✿
                     couch.io
Conflict resolution by
     example


 A               B


                     ✿
                         couch.io
Conflict resolution by
     example


 A               B


                     ✿
                         couch.io
Conflict resolution by
     example


 A               B


                ✿
                     couch.io
CC-by-nd http://www.flic.kr/photos/eifelyeti110/273939759/
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
Upcoming SlideShare
Loading in...5
×

CouchDB Google

3,236

Published on

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,236
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "CouchDB Google"

  1. 1. Apache CouchDB
  2. 2. Hello Chris Anderson jchris@apache.org / @jchris Apache CouchDB Committer REST and JavaScript enthusiast Director, couch.io
  3. 3. I’m here to answer the question: What is CouchDB? (from an app devs perspective - and some implementor) How many of you have: built an application around a key value store? written map reduce functions? used Erlang in an application?
  4. 4. Relax - easy to reason about - reliable - your data is safe with us. - honda accord, not a ferrari - as a debating point among developers
  5. 5. Bandwidth Explosion
  6. 6. “no bars”
  7. 7. http://www.flickr.com/photos/hercwad/2290378571/
  8. 8. Latency Sucks speed of light drawback to cloud computing
  9. 9. What is CouchDB? - k/v store with map reduce - http database written in erlang
  10. 10. Local Web Local Web Platform Platform - on your device, local network, in a browser plugin - replication: it just works. makes data portable. - real-time remote backups, ad hoc topologies.
  11. 11. “Ground Computing” @jhuggins http://www.flickr.com/photos/mcpig/872293700/ - local to the user, more like desktop web than like Gears - local http server - browser apps - same application on the client and server or the cloud
  12. 12. Offline by Default http://www.flickr.com/photos/shane-h/280084650 - low latency & reliable - 2 tier applications
  13. 13. http://apod.nasa.gov/apod/ap050930.html “Of the Web” http://jacobian.org/writing/of-the-web/ Let me tell you something: Django may be built for the Web, but CouchDB is built of the Web. I've never seen software that so completely embraces the philosophies behind HTTP. ... this is what the software of the future looks like. Jacob Kaplan-Moss -- October, 2007 perfect spot - discovered not invented
  14. 14. - lower barrier for contribution - validate installations - foster interop (CouchDB as a protocol)
  15. 15. Learning Curve - doc modeling (mvcc / concurrency) - etags / Functional style of REST - eventual consistency
  16. 16. http://www.longnow.org/projects/clock/ http://www.longnow.org/projects/clock/orrery/
  17. 17. Robust - single file - append only - no fixup phase - minimizes seeks
  18. 18. Robust - when britain is burning - Enda Farrell - bbc
  19. 19. { "_id": "BC4ea69ce1a73aa7d21d23b608d221d "_rev": "1-967a00dff5e02add41819138abb32 JSON Documents "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } - denormalize - natural data behavior - evolve formats with your application - easier to bootstrap in your mind
  20. 20. { "_id": "BC4ea69ce1a73aa7d21d23b608d221d "_rev": "1-967a00dff5e02add41819138abb32 JSON Documents "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } - 2 patterns - document update - event log
  21. 21. { "_id": "BC4ea69ce1a73aa7d21d23b608d221d "_rev": "2-41819138abb32967a00dff5e02ad JSON Documents "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": “More CoWbell!” } - MVCC - model for concurrency
  22. 22.  Map Reduce
  23. 23. http://horicky.blogspot.com/2008/10/couchdb-implementation.html
  24. 24. ful  http://www.flickr.com/photos/calliope/3573471166
  25. 25. db  http://code.google.com/p/couchdb-lounge/ http://www.flickr.com/photos/aussiegall/658457636
  26. 26. curl -X POST http://127.0.0.1:5984/_replicate -d '{ "source": "http://couch.example.com:5984/remote-db", "target": "local-db" }'
  27. 27. curl -X POST http://127.0.0.1:5984/_replicate -d '{ "source": "http://couch.example.com:5984/remote-db", "target": "local-db" }'
  28. 28. periodic, notifier system
  29. 29. “In the fullness of time there is only one CouchDB”
  30. 30. standalone CouchDB applications
  31. 31. Scaling Down
  32. 32. Browser Couch JavaScript port Uses HTML5 storage Replicates with CouchDB http://hg.toolness.com/browser-couch/
  33. 33. Gives Control to Users CC-BY-SA http://www.flickr.com/photos/kelleys/492253912/ - want to get kids in trouble for programming too much claris
  34. 34. Stuart Langridge - Canonical ! !
  35. 35. - good because it's the status quo - easy to address with URLs - bad because users are depending on a remote resource for low latency responses - centralized, so traffic spikes impact all users, who might start refreshing
  36. 36. - local requests are fast - easier to tune for throughput - plays to the strengths of mobile connections
  37. 37. - users can run different applications on the same dataset deployment Independent Personal - dark matter of the information universe
  38. 38. messaging peer discovery identity Can we trust intermediate servers?
  39. 39. “Obvious.” web architecture
  40. 40. Local Web Platform
  41. 41. anks!
  42. 42. Resources @CouchDB http://couchdb.apache.org/ Dress like a Couch: http://shop.couchdb.com http://planet.couchdb.org/ https://peepcode.com/products/couchdb-with-rails
  43. 43. @couchdbinaction http://books.couchdb.org/relax
  44. 44. Robust JSON HTTP Local
  45. 45. Conflict resolution by example A B couch.io
  46. 46. Conflict resolution by example A B ❦ couch.io
  47. 47. Conflict resolution by example A B ❦ couch.io
  48. 48. Conflict resolution by example A B ❦ ❦ couch.io
  49. 49. Conflict resolution by example A B ❦ ❦ couch.io
  50. 50. Conflict resolution by example A B ❦ ✿ ❦ couch.io
  51. 51. Conflict resolution by example A B ❦ ✿ ❦ couch.io
  52. 52. Conflict resolution by example A B ✿ couch.io
  53. 53. Conflict resolution by example A B ✿ couch.io
  54. 54. Conflict resolution by example A B ✿ couch.io
  55. 55. Conflict resolution by example A B ✿ couch.io
  56. 56. CC-by-nd http://www.flic.kr/photos/eifelyeti110/273939759/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×