SlideShare a Scribd company logo
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 have:
built an application around a key value store?
written map reduce functions?
used Erlang in an application?
Relax
-   easy to reason about
-   reliable - your data is safe with us.
-   honda accord, not a ferrari
-   as a debating point among developers
Bandwidth Explosion
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
CouchDB Google
“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
- replication: it just works. makes data portable.
- real-time remote backups, ad hoc topologies.
“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
Offline by Default




                           http://www.flickr.com/photos/shane-h/280084650
- low latency & reliable
- 2 tier applications
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
- 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
CouchDB Google
CouchDB Google
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
        "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
{
    "_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
{
     "_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
CouchDB Google

 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/aussiegall/658457636
CouchDB Google
curl -X POST
 http://127.0.0.1:5984/_replicate



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



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

                Uses HTML5 storage

            Replicates with CouchDB

http://hg.toolness.com/browser-couch/
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
CouchDB Google
CouchDB Google
CouchDB Google
Stuart Langridge - Canonical




!   !
-   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
- 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 information universe
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

           http://planet.couchdb.org/

https://peepcode.com/products/couchdb-with-rails
@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/

More Related Content

Similar to CouchDB Google (20)

KEY
Couchdb: No SQL? No driver? No problem
delagoya
 
KEY
CouchDB : More Couch
delagoya
 
PDF
CouchDB Open Source Bridge
Chris Anderson
 
PDF
Couchdb Nosql
elliando dias
 
PDF
CouchDB: A NoSQL database
Rubyc Slides
 
PDF
SDEC2011 Using Couchbase for social game scaling and speed
Korea Sdec
 
PDF
Advanced CouchDB phpday.it
Sander van de Graaf
 
PPTX
Cluster of unreliable commodity hardware (couchdb) (2)
Namitha Acharya
 
PPTX
Couch DB
Namitha Acharya
 
PDF
Advanced CouchDB
Sander van de Graaf
 
KEY
OSCON 2011 Learning CouchDB
Bradley Holt
 
PDF
Btree Nosql Oak
Chris Anderson
 
PDF
CouchDB Talk JChris NYC
Chris Anderson
 
PDF
Node.js and couchbase Full Stack JSON - Munich NoSQL
Philipp Fehre
 
PDF
Couchbase overview033113long
Jeff Harris
 
PDF
Couchbase overview033113long
Jeff Harris
 
KEY
OSCON 2011 CouchApps
Bradley Holt
 
PDF
Putting rails and couch db on the cloud - Indicthreads cloud computing confe...
IndicThreads
 
ODP
Intro to CouchDB
sbisbee
 
PDF
A walk down NOSQL Lane in the cloud
siculars
 
Couchdb: No SQL? No driver? No problem
delagoya
 
CouchDB : More Couch
delagoya
 
CouchDB Open Source Bridge
Chris Anderson
 
Couchdb Nosql
elliando dias
 
CouchDB: A NoSQL database
Rubyc Slides
 
SDEC2011 Using Couchbase for social game scaling and speed
Korea Sdec
 
Advanced CouchDB phpday.it
Sander van de Graaf
 
Cluster of unreliable commodity hardware (couchdb) (2)
Namitha Acharya
 
Couch DB
Namitha Acharya
 
Advanced CouchDB
Sander van de Graaf
 
OSCON 2011 Learning CouchDB
Bradley Holt
 
Btree Nosql Oak
Chris Anderson
 
CouchDB Talk JChris NYC
Chris Anderson
 
Node.js and couchbase Full Stack JSON - Munich NoSQL
Philipp Fehre
 
Couchbase overview033113long
Jeff Harris
 
Couchbase overview033113long
Jeff Harris
 
OSCON 2011 CouchApps
Bradley Holt
 
Putting rails and couch db on the cloud - Indicthreads cloud computing confe...
IndicThreads
 
Intro to CouchDB
sbisbee
 
A walk down NOSQL Lane in the cloud
siculars
 

More from Steve Souders (20)

PPTX
Make JavaScript Faster
Steve Souders
 
PDF
Metrics of Joy
Steve Souders
 
PPTX
Design+Performance
Steve Souders
 
PPTX
Design+Performance Velocity 2015
Steve Souders
 
PPTX
do u webview?
Steve Souders
 
PPTX
High Performance Web Components
Steve Souders
 
PPTX
The Perception of Speed
Steve Souders
 
PPTX
High Performance Web Components
Steve Souders
 
PDF
Prebrowsing - Velocity NY 2013
Steve Souders
 
PPTX
How fast are we going now?
Steve Souders
 
PPTX
Cache is King
Steve Souders
 
PPTX
High Performance Snippets
Steve Souders
 
PPTX
Your Script Just Killed My Site
Steve Souders
 
PPTX
JavaScript Performance (at SFJS)
Steve Souders
 
PPTX
High Performance Mobile (SF/SV Web Perf)
Steve Souders
 
PPTX
High Performance HTML5 (SF HTML5 UG)
Steve Souders
 
PPTX
Web Directions South - Even Faster Web Sites
Steve Souders
 
PPTX
@media - Even Faster Web Sites
Steve Souders
 
PPTX
Souders WPO Web 2.0 Expo
Steve Souders
 
PPTX
JSConf US 2010
Steve Souders
 
Make JavaScript Faster
Steve Souders
 
Metrics of Joy
Steve Souders
 
Design+Performance
Steve Souders
 
Design+Performance Velocity 2015
Steve Souders
 
do u webview?
Steve Souders
 
High Performance Web Components
Steve Souders
 
The Perception of Speed
Steve Souders
 
High Performance Web Components
Steve Souders
 
Prebrowsing - Velocity NY 2013
Steve Souders
 
How fast are we going now?
Steve Souders
 
Cache is King
Steve Souders
 
High Performance Snippets
Steve Souders
 
Your Script Just Killed My Site
Steve Souders
 
JavaScript Performance (at SFJS)
Steve Souders
 
High Performance Mobile (SF/SV Web Perf)
Steve Souders
 
High Performance HTML5 (SF HTML5 UG)
Steve Souders
 
Web Directions South - Even Faster Web Sites
Steve Souders
 
@media - Even Faster Web Sites
Steve Souders
 
Souders WPO Web 2.0 Expo
Steve Souders
 
JSConf US 2010
Steve Souders
 
Ad

Recently uploaded (20)

PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Ad

CouchDB Google