couchdb apache in 20 minutes - perconawho’s talking? • jan lehnardt / [email protected] / @janl •...
TRANSCRIPT
CouchDBApache
In 20 Minutes
Wednesday, 22 April 2009
RelaxWednesday, 22 April 2009
Who’s Talking?
• Jan Lehnardt / [email protected] / @janl
• “Open Source Dude”• Director, CouchDB Ltd.
Wednesday, 22 April 2009
Damien KatzWassat?
Wednesday, 22 April 2009
What’s CouchDB?
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
Schema Free ( JSON){ "_id": "BCCD12CBB", "_rev": "AB764C",
"type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}
Wednesday, 22 April 2009
Schema Free ( JSON){ "_id": "BCCD12CBB", "_rev": "AB764C",
"type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}
Wednesday, 22 April 2009
Schema Free ( JSON){ "_id": "BCCD12CBB", "_rev": "AB764C",
"type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}
Wednesday, 22 April 2009
Access Tokens for MVCC
Schema Free ( JSON){ "_id": "BCCD12CBB", "_rev": "AB764C",
"type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}
Wednesday, 22 April 2009
Access Tokens for MVCC
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
Document Oriented• Documents in the Real World™
• Bills, letters, tax forms…
• Same type != same structure
• Can be out of date (so what?)
• No references
Not Relational
Wednesday, 22 April 2009
Document Oriented• Documents in the Real World™
• Bills, letters, tax forms…
• Same type != same structure
• Can be out of date (so what?)
• No references
Not Relational
Natural Data Behaviour
Wednesday, 22 April 2009
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
Highly ConcurrentErlang Praising
Wednesday, 22 April 2009
Highly Concurrent
• Parallelism built into the language
Erlang Praising
Wednesday, 22 April 2009
Highly Concurrent
• Parallelism built into the language
• Makes programming multi-core easy(er)
Erlang Praising
Wednesday, 22 April 2009
Highly Concurrent
• Parallelism built into the language
• Makes programming multi-core easy(er)
• Easy to create fault-tolerant systems
Erlang Praising
Wednesday, 22 April 2009
Highly ConcurrentApache vs. YAWS
Wednesday, 22 April 2009
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
ful • Create
HTTP PUT /db/mydocid
• ReadHTTP GET /db/mydocid
• UpdateHTTP PUT /db/mydocid
• DeleteHTTP DELETE /db/mydocid
CRUD
Wednesday, 22 April 2009
couch = CouchRest.database!("http://127.0.0.1:5984/tweets")
tweets_url = "http://twitter.com/statuses/user_timeline.json"
tweets = http.get(tweets_url)couch.bulk_save(tweets)
ful Example
Wednesday, 22 April 2009
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
JavaScript powered Map/Reduce
• Map functions extract data from your documents & reduce functions aggregate intermediate values.
• The kicker: Incremental b-tree storage.
Wednesday, 22 April 2009
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
Wednesday, 22 April 2009
Wednesday, 22 April 2009
Wednesday, 22 April 2009
Wednesday, 22 April 2009
Wednesday, 22 April 2009
Wednesday, 22 April 2009
Wednesday, 22 April 2009
Wednesday, 22 April 2009
periodic, notifier system
Wednesday, 22 April 2009
Wednesday, 22 April 2009
P2P apps
Features• Schema Free (JSON)
• Document Oriented, Not Relational
• Highly Concurrent
• RESTful HTTP API
• JavaScript Powered Map/Reduce
• N-Master Replication
• Robust Storage
Wednesday, 22 April 2009
Robust Storage
Append Only File Structure
Designed to Crash
Instant-On
Wednesday, 22 April 2009
Resources• Twitter: @CouchDB & http://couchdb.org/
• Dress like a Couch:http://shop.couchdb.com
• http://planet.couchdb.org/
• http://blog.racklabs.com/?p=74
• https://peepcode.com/products/couchdb-with-rails
Wednesday, 22 April 2009
CouchDB Factory•http://short.ie/couchdbconf•Next Friday, Palo Alto•Come and relax
Wednesday, 22 April 2009
couch.ioBerlin – London – Portland
If you need professional CouchDB support talk to the dimwit on stage
Wednesday, 22 April 2009
anks!Wednesday, 22 April 2009
Wednesday, 22 April 2009