SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Apache
                          CouchDB
Saturday, 21 March 2009
Relax
Saturday, 21 March 2009
Who’s Talking?

                    •     J Chris Anderson / jchris@apache.org / @jchris
                    •     Jan Lehnardt / jan@apache.org / @janl
                    •     “Open Source Dudes”
                    •     Directors, couch.io




Saturday, 21 March 2009
Who Are You?


                             Hi Last.fm!



Saturday, 21 March 2009
Damien Katz
 Wassat?
Saturday, 21 March 2009

What’s CouchDB?
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
Schema Free ( JSON)
                          {
                              "_id": "BCCD12CBB",
                              "_rev": "1-AB764C",

                              "type": "person",
                              "name": "Darth Vader",
                              "age": 63,
                              "headware":
                                ["Helmet", "Sombrero"],
                              "dark_side": true
                          }
Saturday, 21 March 2009
Schema Free ( JSON)
                          {
                              "_id": "BCCD12CBB",
                              "_rev": "2-AB764C",

                              "type": "person",
                              "name": "Darth Vader",
                              "age": 63,
                              "headware":
                                ["Helmet", "Sombrero"],
                              "dark_side": true
                          }
Saturday, 21 March 2009
Schema Free ( JSON)
                          {
                              "_id": "BCCD12CBB",
                              "_rev": "3-AB764C",

                              "type": "person",
                              "name": "Darth Vader",
                              "age": 63,
                              "headware":
                                ["Helmet", "Sombrero"],
                              "dark_side": true
                          }
Saturday, 21 March 2009

Access Tokens for MVCC
Schema Free ( JSON)
                          {
                              "_id": "BCCD12CBB",
                              "_rev": "3-AB764C",

                              "type": "person",
                              "name": "Darth Vader",
                              "age": 63,
                              "headware":
                                ["Helmet", "Sombrero"],
                              "dark_side": true
                          }
Saturday, 21 March 2009

Access Tokens for MVCC
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
Document Oriented
                                                         Not Relational
                    •     Documents in the Real World™
                          •   Bills, letters, tax forms…
                          •   Same type != same structure
                          •   Can be out of date (so what?)
                          •   No references




Saturday, 21 March 2009
Document Oriented
                                                         Not Relational
                    •     Documents in the Real World™
                              Bills, letters, tax forms…
                              Natural Data
                          •


                          •   Same type != same structure
                          •
                                 Behaviour
                              Can be out of date  (so what?)

                          •   No references




Saturday, 21 March 2009
Document Oriented
                                       Not Relational

             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)

Saturday, 21 March 2009
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
Highly Concurrent
                                   Number Bragging




Saturday, 21 March 2009
Highly Concurrent
                                             Number Bragging


                     •    Silly read-only benchmark with memory
                          saturation




Saturday, 21 March 2009
Highly Concurrent
                                              Number Bragging


                     •    Silly read-only benchmark with memory
                          saturation
                     •    2,500 req/s sustained on a 2Ghz dual
                          core 64-bit Athlon




Saturday, 21 March 2009
Highly Concurrent
                                              Number Bragging


                     •    Silly read-only benchmark with memory
                          saturation
                     •    2,500 req/s sustained on a 2Ghz dual
                          core 64-bit Athlon
                     •    Using 9.8 MB RAM



Saturday, 21 March 2009
Highly Concurrent
                                    Erlang Praising




Saturday, 21 March 2009
Highly Concurrent
                                                 Erlang Praising

                     •    Erlang is worth its own talk




Saturday, 21 March 2009
Highly Concurrent
                                                 Erlang Praising

                     •    Erlang is worth its own talk
                     •    Executive Summary




Saturday, 21 March 2009
Highly Concurrent
                                                 Erlang Praising

                     •    Erlang is worth its own talk
                     •    Executive Summary

                                  It’s fucking
                                  awesome!
Saturday, 21 March 2009
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
ful  
                                                    CRUD
                    •     Create
                          HTTP PUT /db/mydocid
                    •     Read
                          HTTP GET /db/mydocid
                    •     Update
                          HTTP PUT /db/mydocid
                    •     Delete
                          HTTP DELETE /db/mydocid

Saturday, 21 March 2009
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
JavaScript powered
                                 Map/Reduce
                    •     Map functions extract data from your
                          documents
                    •     Reduce functions aggregate intermediate
                          values *yawn*.
                    •     The kicker: Incremental b-tree storage.



Saturday, 21 March 2009
Map Reduce Views
              Docs                                                                 Map
    { “user” : “Chris”,                                                                        { “key” : “Alice”, “value” : 5 }
       “points” : 3 }                            function(doc) {                               { “key” : “Bob”, “value” : 7 }
     { “user” : “Joe”,                              if (doc.user && doc.points) {              { “key” : “Chris”, “value” : 3 }
      “points” : 10 }                                   emit(doc.user, doc.points);
                                                                                               { “key” : “Joe”, “value” : 10 }
                                                    }
    { “user” : “Alice”,                          }                                             { “key” : “Mary”, “value” : 9 }
       “points” : 5 }
    { “user” : “Mary”,
       “points” : 9 }                                                          Reduce
    { “user” : “Bob”,
       “points” : 7 }                          function(keys, values, rereduce) {                     Alice ... Chris: 15
                                                 return sum(values);
                                               }                                                        Everyone: 34




Saturday, 21 March 2009
•   Parallel processing abstraction . Designed to run across many clusters.
•   Iterate over documents emitting key/value pairs. Queries can be run to fetch key ranges.
•   Incremental. Subsequent queries are fast.
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
Saturday, 21 March 2009
Saturday, 21 March 2009
Saturday, 21 March 2009
Saturday, 21 March 2009
Saturday, 21 March 2009
Saturday, 21 March 2009
Saturday, 21 March 2009
Saturday, 21 March 2009

periodic, notifier system
Saturday, 21 March 2009
Saturday, 21 March 2009

P2P apps
Render JSON Docs as HTML
         shows/post.js                                                            /drl/_show/sofa/post/Hello-World-For-Real-This-Time




Saturday, 21 March 2009
•   Side Effect Free JavaScript Function
•   Converts from a single document into a response with any Content-Type
•   CouchApp makes it easy to use http://embeddedjs.com templates in your _show functions.
•   Cacheable with Etags
Render Views as HTML
          lists/index.js                                     /drl/_list/sofa/index/recent-posts?descending=true&limit=8




Saturday, 21 March 2009

• Side effect free and cacheable, like _show
• Run with different parameters for the head, tail, and each individual row of the view.
Schema Free (JSON)
                    •

                                                 Features
                    •     Document Oriented,
                          Not Relational

                    •     Highly Concurrent

                    •     RESTful HTTP API

                    •     JavaScript Powered
                          Map/Reduce

                    •     N-Master Replication

                    •     Robust Storage



Saturday, 21 March 2009
Robust Storage

                    Append Only

                    Resilient
                    Replication

                    Full fsync()



Saturday, 21 March 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

Saturday, 21 March 2009
couch.io
                               Berlin – London – Portland


                           If you need professional CouchDB
                          support talk to the dimwit(s) on stage


Saturday, 21 March 2009
anks!
Saturday, 21 March 2009
Saturday, 21 March 2009

Weitere ähnliche Inhalte

Ähnlich wie Couch Db In 60 Minutes

Explore the Cosmos (DB) with .NET Core 2.0
Explore the Cosmos (DB) with .NET Core 2.0Explore the Cosmos (DB) with .NET Core 2.0
Explore the Cosmos (DB) with .NET Core 2.0Jeremy Likness
 
Non Relational Databases And World Domination
Non Relational Databases And World DominationNon Relational Databases And World Domination
Non Relational Databases And World DominationJason Davies
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social WebBogdan Gaza
 
Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Chris Richardson
 
MongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchMongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchWynn Netherland
 
CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009Jason Davies
 
Databases which, why and usage tips
Databases which, why and usage tipsDatabases which, why and usage tips
Databases which, why and usage tipsavnerner
 
Navigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesNavigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesshnkr_rmchndrn
 
MongoDB Strange Loop 2009
MongoDB Strange Loop 2009MongoDB Strange Loop 2009
MongoDB Strange Loop 2009Mike Dirolf
 

Ähnlich wie Couch Db In 60 Minutes (13)

Couchdb Nosql
Couchdb NosqlCouchdb Nosql
Couchdb Nosql
 
Explore the Cosmos (DB) with .NET Core 2.0
Explore the Cosmos (DB) with .NET Core 2.0Explore the Cosmos (DB) with .NET Core 2.0
Explore the Cosmos (DB) with .NET Core 2.0
 
Non Relational Databases And World Domination
Non Relational Databases And World DominationNon Relational Databases And World Domination
Non Relational Databases And World Domination
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social Web
 
Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)
 
MongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchMongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouch
 
CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009
 
Databases which, why and usage tips
Databases which, why and usage tipsDatabases which, why and usage tips
Databases which, why and usage tips
 
Navigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesNavigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skies
 
Mongodb my
Mongodb myMongodb my
Mongodb my
 
MongoDB
MongoDBMongoDB
MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
MongoDB Strange Loop 2009
MongoDB Strange Loop 2009MongoDB Strange Loop 2009
MongoDB Strange Loop 2009
 

Mehr von George Ang

Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...George Ang
 
Opinion mining and summarization
Opinion mining and summarizationOpinion mining and summarization
Opinion mining and summarizationGeorge Ang
 
Huffman coding
Huffman codingHuffman coding
Huffman codingGeorge Ang
 
Do not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textDo not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textGeorge Ang
 
大规模数据处理的那些事儿
大规模数据处理的那些事儿大规模数据处理的那些事儿
大规模数据处理的那些事儿George Ang
 
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势George Ang
 
腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程George Ang
 
腾讯大讲堂04 im qq
腾讯大讲堂04 im qq腾讯大讲堂04 im qq
腾讯大讲堂04 im qqGeorge Ang
 
腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道George Ang
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化George Ang
 
腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间George Ang
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨George Ang
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站George Ang
 
腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程George Ang
 
腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagementGeorge Ang
 
腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享George Ang
 
腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍George Ang
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍George Ang
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍George Ang
 
腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享George Ang
 

Mehr von George Ang (20)

Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...
 
Opinion mining and summarization
Opinion mining and summarizationOpinion mining and summarization
Opinion mining and summarization
 
Huffman coding
Huffman codingHuffman coding
Huffman coding
 
Do not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textDo not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar text
 
大规模数据处理的那些事儿
大规模数据处理的那些事儿大规模数据处理的那些事儿
大规模数据处理的那些事儿
 
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势
 
腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程
 
腾讯大讲堂04 im qq
腾讯大讲堂04 im qq腾讯大讲堂04 im qq
腾讯大讲堂04 im qq
 
腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程
 
腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement
 
腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享
 
腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
 
腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 

Kürzlich hochgeladen (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Couch Db In 60 Minutes

  • 1. Apache CouchDB Saturday, 21 March 2009
  • 3. Who’s Talking? • J Chris Anderson / jchris@apache.org / @jchris • Jan Lehnardt / jan@apache.org / @janl • “Open Source Dudes” • Directors, couch.io Saturday, 21 March 2009
  • 4. Who Are You? Hi Last.fm! Saturday, 21 March 2009
  • 5. Damien Katz Wassat? Saturday, 21 March 2009 What’s CouchDB?
  • 6. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 7. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 8. Schema Free ( JSON) { "_id": "BCCD12CBB", "_rev": "1-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } Saturday, 21 March 2009
  • 9. Schema Free ( JSON) { "_id": "BCCD12CBB", "_rev": "2-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } Saturday, 21 March 2009
  • 10. Schema Free ( JSON) { "_id": "BCCD12CBB", "_rev": "3-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } Saturday, 21 March 2009 Access Tokens for MVCC
  • 11. Schema Free ( JSON) { "_id": "BCCD12CBB", "_rev": "3-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } Saturday, 21 March 2009 Access Tokens for MVCC
  • 12. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 13. Document Oriented Not Relational • Documents in the Real World™ • Bills, letters, tax forms… • Same type != same structure • Can be out of date (so what?) • No references Saturday, 21 March 2009
  • 14. Document Oriented Not Relational • Documents in the Real World™ Bills, letters, tax forms… Natural Data • • Same type != same structure • Behaviour Can be out of date (so what?) • No references Saturday, 21 March 2009
  • 15. Document Oriented Not Relational 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) Saturday, 21 March 2009
  • 16. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 17. Highly Concurrent Number Bragging Saturday, 21 March 2009
  • 18. Highly Concurrent Number Bragging • Silly read-only benchmark with memory saturation Saturday, 21 March 2009
  • 19. Highly Concurrent Number Bragging • Silly read-only benchmark with memory saturation • 2,500 req/s sustained on a 2Ghz dual core 64-bit Athlon Saturday, 21 March 2009
  • 20. Highly Concurrent Number Bragging • Silly read-only benchmark with memory saturation • 2,500 req/s sustained on a 2Ghz dual core 64-bit Athlon • Using 9.8 MB RAM Saturday, 21 March 2009
  • 21. Highly Concurrent Erlang Praising Saturday, 21 March 2009
  • 22. Highly Concurrent Erlang Praising • Erlang is worth its own talk Saturday, 21 March 2009
  • 23. Highly Concurrent Erlang Praising • Erlang is worth its own talk • Executive Summary Saturday, 21 March 2009
  • 24. Highly Concurrent Erlang Praising • Erlang is worth its own talk • Executive Summary It’s fucking awesome! Saturday, 21 March 2009
  • 25. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 26. ful   CRUD • Create HTTP PUT /db/mydocid • Read HTTP GET /db/mydocid • Update HTTP PUT /db/mydocid • Delete HTTP DELETE /db/mydocid Saturday, 21 March 2009
  • 27. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 28. JavaScript powered Map/Reduce • Map functions extract data from your documents • Reduce functions aggregate intermediate values *yawn*. • The kicker: Incremental b-tree storage. Saturday, 21 March 2009
  • 29. Map Reduce Views Docs Map { “user” : “Chris”, { “key” : “Alice”, “value” : 5 } “points” : 3 } function(doc) { { “key” : “Bob”, “value” : 7 } { “user” : “Joe”, if (doc.user && doc.points) { { “key” : “Chris”, “value” : 3 } “points” : 10 } emit(doc.user, doc.points); { “key” : “Joe”, “value” : 10 } } { “user” : “Alice”, } { “key” : “Mary”, “value” : 9 } “points” : 5 } { “user” : “Mary”, “points” : 9 } Reduce { “user” : “Bob”, “points” : 7 } function(keys, values, rereduce) { Alice ... Chris: 15 return sum(values); } Everyone: 34 Saturday, 21 March 2009 • Parallel processing abstraction . Designed to run across many clusters. • Iterate over documents emitting key/value pairs. Queries can be run to fetch key ranges. • Incremental. Subsequent queries are fast.
  • 30. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 38. Saturday, 21 March 2009 periodic, notifier system
  • 40. Saturday, 21 March 2009 P2P apps
  • 41. Render JSON Docs as HTML shows/post.js /drl/_show/sofa/post/Hello-World-For-Real-This-Time Saturday, 21 March 2009 • Side Effect Free JavaScript Function • Converts from a single document into a response with any Content-Type • CouchApp makes it easy to use http://embeddedjs.com templates in your _show functions. • Cacheable with Etags
  • 42. Render Views as HTML lists/index.js /drl/_list/sofa/index/recent-posts?descending=true&limit=8 Saturday, 21 March 2009 • Side effect free and cacheable, like _show • Run with different parameters for the head, tail, and each individual row of the view.
  • 43. Schema Free (JSON) • Features • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Saturday, 21 March 2009
  • 44. Robust Storage Append Only Resilient Replication Full fsync() Saturday, 21 March 2009
  • 45. 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 Saturday, 21 March 2009
  • 46. couch.io Berlin – London – Portland If you need professional CouchDB support talk to the dimwit(s) on stage Saturday, 21 March 2009