SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Niklas Gustavsson [email_address] www.callistaenterprise.se
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Be warned
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Won't replace your relational database You (probably) won't be using it any time soon
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Forget about relational    databases for a while
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Open source project  started by Damien Katz http://couchdb.org Soon to be an Apache project
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB How does it work?
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Document oriented Documents are JSON {firstName:”Niklas”, lastName: “Gustavsson”} Schema less
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Views Pre-computed, indexed table Incrementally updated Written in JavaScript
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB // sort and retrieve documents by first name function (doc) { map(doc.firstName, doc); } // retrieve squares by size function (sq) { map(sq.width * sq.height, {color: sq.color}); }
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB 1 2 3 So why should I care?
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB First reason Sometimes availability trumps consistency 1 2 3
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB CAP theorem - pick two: Consistency Availability Partitioning
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Eventual Consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB NODES – the number of nodes that store a replica WRITES – the number nodes that confirm a commit READS – the number of nodes that are contacted at a read operation  WRITES+READS > NODES : strong consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Synchronous DB replication NODES = 2 WRITES = 2 READS = 1 2 + 1 > 2  ->  Strong consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Asynchronous DB replication NODES = 2 WRITES = 1 READS = 1 1 + 1 > 2  ->  Eventual consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB What if NODES is 10 or 100 or 1000? Every increase in WRITES means less chance for a write to succeed
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB http://www.allthingsdistributed.com/2007/12/eventually_consistent.html http://aws.amazon.com/simpledb http://lucene.apache.org/hadoop/ Read more
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Second reason: Moore has  changed tactic 1 2 3
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB CPUs are getting slower but more plenty The Free Lunch is over - http://www.gotw.ca/publications/concurrency-ddj.htm
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB We need to start parallelizing our tasks Concurrency in Java is really, really hard Share nothing Erlang processes and messaging   Map/reduce
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Used for computing views in CouchDB map/reduce
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB http://www.gotw.ca/publications/concurrency-ddj.htm http://erlang.org/ http://www.scala-lang.org/ http://labs.google.com/papers/mapreduce.html Read more
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Third reason Web friendly 1 2 3
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB REST - “HTTP used right”
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB REST based API Everything is a resource Every resource has a URL Every resource has the same uniform interface Links guides through states Stateless
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB REST freebies API easily usable from any platform (AJAX, Java, Ruby, COBOL, Powerpoint...)‏ Works with existing infrastructure  Caches, proxies, firewalls… Optimistic locking
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm http://www.infoq.com/articles/rest-introduction http://www.burtongroup.com/Guest/Aps/RestWorkshop.aspx Read more
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB I'm getting sleepy,  show me the goodies!
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Adding a to do var todoText = $("todoinput").value; this.db.save({text: todoText });
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Adding a tag if(!todo.tags) { todo.tags = [tag]; } else  { todo.tags[todo.tags.length] = tag; } this.db.save(todo);
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB The magic of save()‏ this.save = function(doc, options) { if (doc._id == undefined) { xhr.open("POST", this.url); } else { xhr.open("PUT", this.url  + doc._id); } xhr.send(doc.toJSONString()); … }
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Questions? ?
CouchDB, Slide  © Copyright 2008, Callista Enterprise AB Attributions WHY? -  http://www.flickr.com/photos/teflon/128827389/ Deep mud -  http://www.flickr.com/photos/hubmedia/133598031/ Banana -  http://flickr.com/photos/tim_ellis/154225908/ Forget me not -  http://flickr.com/photos/doblonaut/456339900/

Weitere ähnliche Inhalte

Was ist angesagt?

Scaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOSScaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOSMax Neunhöffer
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBRavi Teja
 
CouchDB : More Couch
CouchDB : More CouchCouchDB : More Couch
CouchDB : More Couchdelagoya
 
ArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB Database
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and HowBigBlueHat
 
Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)ArangoDB Database
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBJustin Smestad
 
Storage talk
Storage talkStorage talk
Storage talkchristkv
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbaseiammutex
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionBrian Enochson
 
Building Hybrid data cluster using PostgreSQL and MongoDB
Building Hybrid data cluster using PostgreSQL and MongoDBBuilding Hybrid data cluster using PostgreSQL and MongoDB
Building Hybrid data cluster using PostgreSQL and MongoDBAshnikbiz
 
MongoDB Aggregation Performance
MongoDB Aggregation PerformanceMongoDB Aggregation Performance
MongoDB Aggregation PerformanceMongoDB
 
Basics of MongoDB
Basics of MongoDB Basics of MongoDB
Basics of MongoDB Habilelabs
 
JS App Architecture
JS App ArchitectureJS App Architecture
JS App ArchitectureCorey Butler
 
Sizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-Final
Sizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-FinalSizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-Final
Sizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-FinalVigyan Jain
 
Electron, databases, and RxDB
Electron, databases, and RxDBElectron, databases, and RxDB
Electron, databases, and RxDBBen Gotow
 

Was ist angesagt? (20)

Scaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOSScaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOS
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Lokijs
LokijsLokijs
Lokijs
 
CouchDB : More Couch
CouchDB : More CouchCouchDB : More Couch
CouchDB : More Couch
 
ArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQL
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Deep Dive on ArangoDB
Deep Dive on ArangoDBDeep Dive on ArangoDB
Deep Dive on ArangoDB
 
Storage talk
Storage talkStorage talk
Storage talk
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbase
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB Introdction
 
Building Hybrid data cluster using PostgreSQL and MongoDB
Building Hybrid data cluster using PostgreSQL and MongoDBBuilding Hybrid data cluster using PostgreSQL and MongoDB
Building Hybrid data cluster using PostgreSQL and MongoDB
 
MongoDB Aggregation Performance
MongoDB Aggregation PerformanceMongoDB Aggregation Performance
MongoDB Aggregation Performance
 
Basics of MongoDB
Basics of MongoDB Basics of MongoDB
Basics of MongoDB
 
JS App Architecture
JS App ArchitectureJS App Architecture
JS App Architecture
 
Sizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-Final
Sizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-FinalSizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-Final
Sizing MongoDB on AWS with Wired Tiger-Patrick and Vigyan-Final
 
Electron, databases, and RxDB
Electron, databases, and RxDBElectron, databases, and RxDB
Electron, databases, and RxDB
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
Software + Babies
Software + BabiesSoftware + Babies
Software + Babies
 

Ähnlich wie CouchDB Intro - Eventual Consistency, MapReduce, REST

ABD315_Serverless ETL with AWS Glue
ABD315_Serverless ETL with AWS GlueABD315_Serverless ETL with AWS Glue
ABD315_Serverless ETL with AWS GlueAmazon Web Services
 
CON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSCON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSAmazon Web Services
 
CON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSCON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSAmazon Web Services
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBill Wilder
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
 
Spark Streaming with Azure Databricks
Spark Streaming with Azure DatabricksSpark Streaming with Azure Databricks
Spark Streaming with Azure DatabricksDustin Vannoy
 
Design, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWSDesign, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWSAmazon Web Services
 
Saving Money by Optimizing Your Cloud Add-On Infrastructure
Saving Money by Optimizing Your Cloud Add-On InfrastructureSaving Money by Optimizing Your Cloud Add-On Infrastructure
Saving Money by Optimizing Your Cloud Add-On InfrastructureAtlassian
 
Couchdb: No SQL? No driver? No problem
Couchdb: No SQL? No driver? No problemCouchdb: No SQL? No driver? No problem
Couchdb: No SQL? No driver? No problemdelagoya
 
Optimizing Big Data to run in the Public Cloud
Optimizing Big Data to run in the Public CloudOptimizing Big Data to run in the Public Cloud
Optimizing Big Data to run in the Public CloudQubole
 
Scylla @ Disney+ Hotstar
Scylla @ Disney+ HotstarScylla @ Disney+ Hotstar
Scylla @ Disney+ HotstarScyllaDB
 
Alternator webinar september 2019
Alternator webinar   september 2019Alternator webinar   september 2019
Alternator webinar september 2019Nadav Har'El
 
Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...
Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...
Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...Amazon Web Services
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))Sriram Krishnan
 
SQL et in-memory sur Hadoop avec Pivotal et HAWQ
SQL et in-memory sur Hadoop avec Pivotal et HAWQSQL et in-memory sur Hadoop avec Pivotal et HAWQ
SQL et in-memory sur Hadoop avec Pivotal et HAWQModern Data Stack France
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalleybuildacloud
 
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...In-Memory Computing Summit
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Servicesukdpe
 

Ähnlich wie CouchDB Intro - Eventual Consistency, MapReduce, REST (20)

Mashups
MashupsMashups
Mashups
 
ABD315_Serverless ETL with AWS Glue
ABD315_Serverless ETL with AWS GlueABD315_Serverless ETL with AWS Glue
ABD315_Serverless ETL with AWS Glue
 
CON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSCON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWS
 
CON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSCON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWS
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
 
Spark Streaming with Azure Databricks
Spark Streaming with Azure DatabricksSpark Streaming with Azure Databricks
Spark Streaming with Azure Databricks
 
Design, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWSDesign, Deploy, and Optimize Microsoft SQL Server on AWS
Design, Deploy, and Optimize Microsoft SQL Server on AWS
 
Saving Money by Optimizing Your Cloud Add-On Infrastructure
Saving Money by Optimizing Your Cloud Add-On InfrastructureSaving Money by Optimizing Your Cloud Add-On Infrastructure
Saving Money by Optimizing Your Cloud Add-On Infrastructure
 
Couchdb: No SQL? No driver? No problem
Couchdb: No SQL? No driver? No problemCouchdb: No SQL? No driver? No problem
Couchdb: No SQL? No driver? No problem
 
Optimizing Big Data to run in the Public Cloud
Optimizing Big Data to run in the Public CloudOptimizing Big Data to run in the Public Cloud
Optimizing Big Data to run in the Public Cloud
 
Scylla @ Disney+ Hotstar
Scylla @ Disney+ HotstarScylla @ Disney+ Hotstar
Scylla @ Disney+ Hotstar
 
Alternator webinar september 2019
Alternator webinar   september 2019Alternator webinar   september 2019
Alternator webinar september 2019
 
Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...
Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...
Running Oracle Databases on Amazon RDS and Migrating to PostgreSQL (DAT307-R1...
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java Developers
 
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
 
SQL et in-memory sur Hadoop avec Pivotal et HAWQ
SQL et in-memory sur Hadoop avec Pivotal et HAWQSQL et in-memory sur Hadoop avec Pivotal et HAWQ
SQL et in-memory sur Hadoop avec Pivotal et HAWQ
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalley
 
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
 

Mehr von Niklas Gustavsson

Mehr von Niklas Gustavsson (11)

Spotify services - Leetspeak 2014
Spotify services - Leetspeak 2014Spotify services - Leetspeak 2014
Spotify services - Leetspeak 2014
 
Spotify services (SDC 2013)
Spotify services (SDC 2013)Spotify services (SDC 2013)
Spotify services (SDC 2013)
 
Spotify architecture - Pressing play
Spotify architecture - Pressing playSpotify architecture - Pressing play
Spotify architecture - Pressing play
 
Real-time web
Real-time webReal-time web
Real-time web
 
RESTful web services
RESTful web servicesRESTful web services
RESTful web services
 
Not only SQL
Not only SQL Not only SQL
Not only SQL
 
HTML5
HTML5HTML5
HTML5
 
The future is bright
The future is brightThe future is bright
The future is bright
 
Oredev 2009 JAX-RS
Oredev 2009 JAX-RSOredev 2009 JAX-RS
Oredev 2009 JAX-RS
 
Apachecon Eu 2008 Mina
Apachecon Eu 2008 MinaApachecon Eu 2008 Mina
Apachecon Eu 2008 Mina
 
REST made simple with Java
REST made simple with JavaREST made simple with Java
REST made simple with Java
 

Kürzlich hochgeladen

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 

Kürzlich hochgeladen (20)

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 

CouchDB Intro - Eventual Consistency, MapReduce, REST

  • 1. Niklas Gustavsson [email_address] www.callistaenterprise.se
  • 2. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Be warned
  • 3. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Won't replace your relational database You (probably) won't be using it any time soon
  • 4. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Forget about relational databases for a while
  • 5. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Open source project started by Damien Katz http://couchdb.org Soon to be an Apache project
  • 6. CouchDB, Slide © Copyright 2008, Callista Enterprise AB How does it work?
  • 7. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Document oriented Documents are JSON {firstName:”Niklas”, lastName: “Gustavsson”} Schema less
  • 8. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Views Pre-computed, indexed table Incrementally updated Written in JavaScript
  • 9. CouchDB, Slide © Copyright 2008, Callista Enterprise AB // sort and retrieve documents by first name function (doc) { map(doc.firstName, doc); } // retrieve squares by size function (sq) { map(sq.width * sq.height, {color: sq.color}); }
  • 10. CouchDB, Slide © Copyright 2008, Callista Enterprise AB 1 2 3 So why should I care?
  • 11. CouchDB, Slide © Copyright 2008, Callista Enterprise AB First reason Sometimes availability trumps consistency 1 2 3
  • 12. CouchDB, Slide © Copyright 2008, Callista Enterprise AB CAP theorem - pick two: Consistency Availability Partitioning
  • 13. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Eventual Consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
  • 14. CouchDB, Slide © Copyright 2008, Callista Enterprise AB NODES – the number of nodes that store a replica WRITES – the number nodes that confirm a commit READS – the number of nodes that are contacted at a read operation WRITES+READS > NODES : strong consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
  • 15. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Synchronous DB replication NODES = 2 WRITES = 2 READS = 1 2 + 1 > 2 -> Strong consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
  • 16. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Asynchronous DB replication NODES = 2 WRITES = 1 READS = 1 1 + 1 > 2 -> Eventual consistency http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
  • 17. CouchDB, Slide © Copyright 2008, Callista Enterprise AB What if NODES is 10 or 100 or 1000? Every increase in WRITES means less chance for a write to succeed
  • 18. CouchDB, Slide © Copyright 2008, Callista Enterprise AB http://www.allthingsdistributed.com/2007/12/eventually_consistent.html http://aws.amazon.com/simpledb http://lucene.apache.org/hadoop/ Read more
  • 19. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Second reason: Moore has changed tactic 1 2 3
  • 20. CouchDB, Slide © Copyright 2008, Callista Enterprise AB CPUs are getting slower but more plenty The Free Lunch is over - http://www.gotw.ca/publications/concurrency-ddj.htm
  • 21. CouchDB, Slide © Copyright 2008, Callista Enterprise AB We need to start parallelizing our tasks Concurrency in Java is really, really hard Share nothing Erlang processes and messaging Map/reduce
  • 22. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Used for computing views in CouchDB map/reduce
  • 23. CouchDB, Slide © Copyright 2008, Callista Enterprise AB http://www.gotw.ca/publications/concurrency-ddj.htm http://erlang.org/ http://www.scala-lang.org/ http://labs.google.com/papers/mapreduce.html Read more
  • 24. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Third reason Web friendly 1 2 3
  • 25. CouchDB, Slide © Copyright 2008, Callista Enterprise AB REST - “HTTP used right”
  • 26. CouchDB, Slide © Copyright 2008, Callista Enterprise AB REST based API Everything is a resource Every resource has a URL Every resource has the same uniform interface Links guides through states Stateless
  • 27. CouchDB, Slide © Copyright 2008, Callista Enterprise AB REST freebies API easily usable from any platform (AJAX, Java, Ruby, COBOL, Powerpoint...)‏ Works with existing infrastructure Caches, proxies, firewalls… Optimistic locking
  • 28. CouchDB, Slide © Copyright 2008, Callista Enterprise AB http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm http://www.infoq.com/articles/rest-introduction http://www.burtongroup.com/Guest/Aps/RestWorkshop.aspx Read more
  • 29. CouchDB, Slide © Copyright 2008, Callista Enterprise AB I'm getting sleepy, show me the goodies!
  • 30. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Adding a to do var todoText = $("todoinput").value; this.db.save({text: todoText });
  • 31. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Adding a tag if(!todo.tags) { todo.tags = [tag]; } else { todo.tags[todo.tags.length] = tag; } this.db.save(todo);
  • 32. CouchDB, Slide © Copyright 2008, Callista Enterprise AB The magic of save()‏ this.save = function(doc, options) { if (doc._id == undefined) { xhr.open("POST", this.url); } else { xhr.open("PUT", this.url + doc._id); } xhr.send(doc.toJSONString()); … }
  • 33. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Questions? ?
  • 34. CouchDB, Slide © Copyright 2008, Callista Enterprise AB Attributions WHY? - http://www.flickr.com/photos/teflon/128827389/ Deep mud - http://www.flickr.com/photos/hubmedia/133598031/ Banana - http://flickr.com/photos/tim_ellis/154225908/ Forget me not - http://flickr.com/photos/doblonaut/456339900/

Hinweis der Redaktion

  1. Först ska jag göra er klara på att vi är på väldigt tunn is
  2. Syftet är inte att ersätta de traditionella databaserna utan att leta alterntiv för vissa typer av lösningar CouchDB är ännu alfa, om än under snabb utveckling No security No validation
  3. (or Ruby, Perl, Python...)‏
  4. Förklara ordentligt! Partitioning vid hög last och/elller mycket data För vissa applikationer är tillgänglighet av yttersta vikt
  5. Eventual consistency kan vara okej när tillgänglighet är viktigare än konsitens, eller när gapet av inkonsistens inte kommer märkas (e.g. på en site)‏
  6. Förutom att kunna distribueras så är Couch byggt för att naturligt failera. Andra exemple Amazon Dynam Google Filesystem Hadoop
  7. Förutom att kunna distribueras så är Couch byggt för att naturligt failera. Andra exemple Amazon Dynam Google Filesystem Hadoop
  8. Vanlig arkitektur med läs-slavar
  9. Unreliable clusters Plenty of cheap servers rather than big expensive The number of nodes a replicate is stored on can vary based on the desired performance characteristics Many writes, few reads: less replicas Many read, less writes: more replicas
  10. Moore's law har bytt metod
  11. Ge exempel med uppdatering av vyer
  12. REST Roy Fielding HTTP använt rätt Constraints Everything is a resource Every resource has a URL Client-server, stateless, cachable