Saturday, 13 June 2009. CouchDB. Apache



Similar documents
Database Concepts for a new generation of CMS

Zero Downtime Deployments with Database Migrations. Bob Feldbauer

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases

Comparison of the Frontier Distributed Database Caching System with NoSQL Databases

Social Networks and the Richness of Data

Apache Tomcat Clustering

Certified Apache CouchDB Professional VS-1045

nosql and Non Relational Databases

Cloud Powered Mobile Apps with Azure

Offline-First Apps with PouchDB and IBM Cloudant

Cloud Elements! Events Management BETA! API Version 2.0

Apache Tomcat. Tomcat Clustering: Part 2 Load balancing. Mark Thomas, 15 April Pivotal Software, Inc. All rights reserved.

these three NoSQL databases because I wanted to see a the two different sides of the CAP

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Technical Overview: Anatomy of the Cloudant DBaaS

Cloudant Querying Options

Introduction to Cassandra

Programming Autodesk PLM 360 Using REST. Doug Redmond Software Engineer, Autodesk

Table of Contents. Open-Xchange Authentication & Session Handling. 1.Introduction...3

Scaling Web Applications in a Cloud Environment. Emil Ong Caucho Technology 8621

What it is and why you might use it

Tobby Hagler, Phase2 Technology


Object storage in Cloud Computing and Embedded Processing

Data Discovery and Systems Diagnostics with the ELK stack. Rittman Mead - BI Forum 2015, Brighton. Robin Moffatt, Principal Consultant Rittman Mead

Overview of Databases On MacOS. Karl Kuehn Automation Engineer RethinkDB

In Memory Accelerator for MongoDB

Building resilient infrastructure with CouchDB

NoSQL Data Base Basics

An Approach to Implement Map Reduce with NoSQL Databases

NoSQL: Going Beyond Structured Data and RDBMS

Domain driven design, NoSQL and multi-model databases

Cloud Computing with Windows Azure using your Preferred Technology

Why NoSQL? Your database options in the new non- relational world IBM Cloudant 1

Responsive, resilient, elastic and message driven system

Hints for Service Oriented Architectures. Marius Twitter Inc.

CSCI-UA: Database Design & Web Implementation. Professor Evan Sandhaus sandhaus@cs.nyu.edu evan@nytimes.com

Sharding with postgres_fdw

The deployment of OHMS TM. in private cloud

Document Management in e-freight based on Cloud Storage Architecture

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

Cloud Powered Mobile Apps with Microsoft Azure

Lecture Data Warehouse Systems

Security As A Service Leveraged by Apache Projects. Oliver Wulff, Talend

Passcreator API Documentation

The evolution of database technology (II) Huibert Aalbers Senior Certified Executive IT Architect

SQL Server Replication Guide

MongoDB Developer and Administrator Certification Course Agenda

Programming with Genero BDL and NoSQL Databases

Migrate your Discover Reports to Oracle APEX

Adobe Digital Publishing Security FAQ

Simian. Enterprise Mac OS X Software Deployment. John Randolph and Justin McWilliams Software Google

SCALABILITY. Hodicska Gergely. Web Engineering Manager as Ustream. May 7, 2012

Casper Suite. Security Overview

Online signature API. Terms used in this document. The API in brief. Version 0.20,

OpenAM. 1 open source 1 community experience distilled. Single Sign-On (SSO) tool for securing your web. applications in a fast and easy way

ArcGIS for Server: Administrative Scripting and Automation

AGENDA: INTRODUCTION: 1. How is our cloud monitoring setup? 2. Which are the tools used? 3. How do we access monitoring dashboard?

Enterprise-level EE: Uptime, Speed, and Scale

MathCloud: From Software Toolkit to Cloud Platform for Building Computing Services

Perl & NoSQL Focus on MongoDB. Jean-Marie Gouarné jmgdoc@cpan.org

RESTful web applications with Apache Sling

Donky Technical Overview

Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications

Real-time Data Analytics mit Elasticsearch. Bernhard Pflugfelder inovex GmbH

Optimization of QoS for Cloud-Based Services through Elasticity and Network Awareness

Welcome to Virtual Developer Day MySQL!

Large-Scale Web Applications

Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November Pivotal Software, Inc. All rights reserved.

Apache HBase. Crazy dances on the elephant back

High Availability CAS

Scaling Pinterest. Yash Nelapati Ascii Artist. Pinterest Engineering. Saturday, August 31, 13

OpenText Information Hub (ihub) 3.1 and 3.1.1

MiaRec. Architecture for SIPREC recording

Information Retrieval Elasticsearch

Axway API Gateway. Version 7.4.1

Testing the API behind a mobile app. Tutorial Marc van t Veer

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

Java, PHP & Ruby - Cloud Hosting

DFSgc. Distributed File System for Multipurpose Grid Applications and Cloud Computing

Junos Space for Android: Manage Your Network on the Go

OpenShift on you own cloud. Troy Dawson OpenShift Engineer, Red Hat November 1, 2013

StreamServe Persuasion SP5 StreamStudio

Epimorphics Linked Data Publishing Platform

Andrew Moore Amsterdam 2015

Federated SQL on Hadoop and Beyond: Leveraging Apache Geode to Build a Poor Man's SAP HANA. by Christian

REST services in Domino - Domino Access Services

Transcription:

CouchDB Apache

Seen REST talk by @ramsey? Seen DB talk by @scottmac? Hi! Jan Lehnardt / @janl / CouchDB Committer *bragging* jan@php.net since October 2001 jan@apache.org since February 2008 <commercial> Director at couch.io </commercial>

Relax! http://www.flickr.com/photos/freelancing_god/3271488152/

Agenda Learn how to use CouchDB replication for load-balancing, fault tolerance, offline work and backup. We are showing how to set up each and what you need to look out for.

Agenda Finally, this talk is sprinkled with neat tricks and best practices for deploying CouchDB. Which load balancers are people using, how to make the best use of caching, etc.

Agenda Basics Replication Mind shifting

http://www.flickr.com/photos/stilleben2001/223243329/ Documents

Documents Self contained Schema is optional Feel natural

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

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

Schema Free (JSON) { "_id": "BCCD12CBB", "_rev": "3-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true } Access Tokens for MVCC, no locking

Access Tokens for MVCC attachments Schema Free (JSON) { "_id": "BCCD12CBB", "_rev": "3-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true }

RESTful HTTP API CRUD Create HTTP PUT /db/mydocid Read HTTP GET /db/mydocid Update HTTP PUT /db/mydocid Delete HTTP DELETE /db/mydocid

HTTP Infrastructure Your browser curl / wget ext/curl, Net_HTTP, Zend_Http_Client PHPIllow (by Kore Nordmann) Apache mod_proxy (couch.io) Varnish (BBC demo) nginx ( + custom consistent hashing plugin, meebo.com) Custom (Tomcat, BBC)

Replication

periodic, notifier system

Amsterdam San Francisco

P2P apps

Conflicts

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Conflict resolution by example A B

Mind Shifting

Where is my auto_increment?

http://www.flickr.com/photos/andresrueda/3259487071

?

http://www.flickr.com/photos/fbar/178379231/

MOAR RANDOM 128 random bits!

UUIDs for identification Natural keys for sorting

dropbox Accept Conflicts

Referential Integrity, JOINs and related data

Referential Integrity When in doubt, look at The Web*: Links can point to 404 (*Yeah, REST) @ramsey talk

JOINs Use the power of Views to create an index that sorts related rows next to each other.

JOINs function(doc) { if(doc.type == "post") { emit([doc._id, doc.date], doc); } else if(doc.type == "comment" { emit([doc.post_id, doc.date], doc); }

JOINs function(doc) { if(doc.type == "post") { emit([doc._id, doc.date], doc); } else if(doc.type == "comment" { emit([doc.post_id, doc.date], doc); }

JOINs emit([doc._id, doc.date], doc); key value ["53421", "2009-05-23"] {"type":"post" } ["53421", "2009-05-24"] {"type":"comment" } ["53421", "2009-05-25"] {"type":"comment" }

GET /db/_design/dname/_view/vname? startkey=["53421", null]& endkey=["53421", {}]

Evaluating CouchDB

make your own cloud resilient storage Evaluating K/V-Stores Technical suitability Healthy (open source) project Failure behaviour Operational complexity Commercial support Speed / Concurrency

9k docs, 4 writers, 16 readers CouchDB: 2400 reads/s, 800 writes/s BBC CouchDB reads CouchDB writes MDB reads MDB writes

http://www.flickr.com/photos/andrewdotcameron/89161276

Web: http://couchdb.apache.org/ Twitter: @CouchDB IRC: #couchdb on Freenode Hosting: http://couch.io/ (invite only) Support: http://couchio.com/ I can haz feedback? http://joind.in/584 *hugs*

erlang Questions?

ank You!