Your SlideShare is downloading. ×
  • Like
Mihai Plesa - CouchDB
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Mihai Plesa - CouchDB



Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. CouchDB
  • 2. meetup@cluj.rb ~$ whoami
  • 3. ls -l /couchdb/● intro● demo
  • 4. view /couchdb/lol
  • 5. head /couchdb/about Apache CouchDB is a document-orienteddatabase that can be queried and indexed using JavaScript in a MapReduce fashion.CouchDB also offers incremental replication withbi-directional conflict detection and resolution.
  • 6. cat /couchdb/aboutCouchDB provides a RESTful JSON API than canbe accessed from any environment that allows HTTP requests.CouchDB’s built in Web admin console speaksdirectly to the database using HTTP requests issued from your browser.
  • 7. tail /couchdb/aboutCouchDB is written in Erlang, a robust functional programming language ideal for building concurrent distributed systems.Erlang allows for a flexible design that is easily scalable and readily extensible.
  • 8. cat /couchdb/history started in 2005 by Damien Katzbecame an Apache project in 2008 currently at version 1.1.1
  • 9. head /couchdb/how CouchDB is a document oriented database data is stored in “documents” and not in “relations” like in an RDBMSnon-locking MVCC and ACID compliant data store
  • 10. view /couchdb/how
  • 11. view /couchdb/how
  • 12. cat /couchdb/how no SQL querying is done using “views”views are defined using Map/Reduce functionsdata is indexed using these views as it is stored in the DB
  • 13. cat /couchdb/howMap functions emit (key, value) interpretation of the dataReduce functions aggregate data emitted by map functionsMap/Reduce functions are written in JavaScript or CoffeeScript
  • 14. head /couchdb/use good for:storing documents – or any data which is document-like hosting entire applications
  • 15. cat /couchdb/whyvery easy to program with – no SQL, no schema, no ORMschema-less means very easy to deploy changeseasy to administer, backup, replicate, can work offline
  • 16. tail /couchdb/use not suitable for: storing data which is relational in naturebe careful with data that needs to have unique values
  • 17. view /couchdb/lol
  • 18. vi /couchdb/doc{ “_id”: ”BCCD12CBB”, “_rev”: ”AB764C”, “type”: ”person”, “name”: ”Darth Vader”, “age”: 63, “headware”: [“Helmet”, “Sombrero”], “dark_side”: true}
  • 19. cat /couchdb/rest/howcreate: HTTP POST /db/BCCD12CBB read: HTTP GET /db/BCCD12CBB update: HTTP PUT /db/BCCD12CBBdelete: HTTP DELETE /db/BCCD12CBB
  • 20. head /couchdb/rest/usage$ curl -X GET http://server/database/document {“_id”:”ABC”,“_rev”:”1D4”,”data”:...}
  • 21. cat /couchdb/testssilly read-only benchmark with memory saturation2,500 req/s sustained on a 2Ghz dual core Athlon using 9.8 mb RAM
  • 22. exec /couchdb/demo lets get dirty!
  • 23. view /couchdb/lol
  • 24. sudo halt Q?