SlideShare a Scribd company logo
1 of 36
Download to read offline
Monday, June 17, 13
Introducing	
  
Couchbase	
  Server	
  2.0
Tugdual	
  Grall
Technical	
  Evangelist
Monday, June 17, 13
About	
  me...
• Tugdual	
  “Tug”	
  Grall
­ Couchbase
• Technical	
  Evangelist
­ eXo
• CTO
­ Oracle
• Developer/Product	
  Manager
­ Mainly	
  Java/SOA
­ Developer	
  in	
  consulDng	
  firms
• Web
­ 	
  @tgrall
­ 	
  	
  	
  hHp://blog.grallandco.com
­ 	
  	
  	
  tgrall
­ NantesJUG	
  co-­‐founder
­ Pet	
  Project	
  :
­ hHp://www.resultri.com
Monday, June 17, 13
RDBMS	
  are	
  not	
  Enough?
Monday, June 17, 13
Growth	
  is	
  the	
  New	
  Reality
• Instagram	
  gained	
  nearly	
  1	
  million	
  users	
  overnight	
  when	
  then	
  expanded	
  to	
  Android
Monday, June 17, 13
Draw	
  Something	
  Viral	
  Growth
191715131197533/12826242220181614121082/6
Draw	
  Something	
  by	
  OMGPOP
Daily	
  Ac)ve	
  Users	
  (millions)
21
2
4
6
8
10
12
14
16
Monday, June 17, 13
RDBMS	
  is	
  good	
  for	
  many	
  thing,	
  but	
  hard	
  to	
  scale
RDBMS	
  Scales	
  Up
Get	
  a	
  bigger,	
  more	
  complex	
  server
Users
ApplicaNon	
  Scales	
  Out
Just	
  add	
  more	
  commodity	
  web	
  servers
Users
System	
  Cost
ApplicaDon	
  Performance	
  
RelaNonal	
  Database
Web/App	
  Server	
  Tier
System	
  Cost
ApplicaDon	
  Performance	
  
Won’t	
  scale	
  
beyond	
  this	
  
point
How	
  do	
  you	
  take	
  this	
  growth?
Monday, June 17, 13
Web/App	
  Server	
  Tier
Memcached	
  Tier
MySQL	
  Tier
Scaling	
  out	
  RDBMS
• Run	
  Many	
  SQL	
  Servers
• Data	
  could	
  be	
  shared
­ Done	
  by	
  the	
  applicaDon	
  code
• Caching	
  for	
  faster	
  response	
  Nme
Monday, June 17, 13
Scaling	
  out	
  flaWens	
  the	
  cost	
  and	
  performance	
  curves
NoSQL	
  Database	
  Scales	
  Out
Cost	
  and	
  performance	
  mirrors	
  app	
  Ner
Users
NoSQL	
  Distributed	
  Data	
  Store
Web/App	
  Server	
  Tier
ApplicaNon	
  Scales	
  Out
Just	
  add	
  more	
  commodity	
  web	
  servers
Users
System	
  Cost
ApplicaDon	
  Performance	
  
ApplicaDon	
  Performance	
  
System	
  Cost
NoSQL	
  Technology	
  Scales	
  Out
Monday, June 17, 13
Building	
  new	
  database	
  to	
  answer	
  the	
  following	
  requirementsNo	
  schema	
  required	
  before	
  
inserDng	
  dataNo	
  schema	
  change	
  required	
  to	
  change	
  data	
  formatAuto-­‐sharding	
  without	
  
applicaDon	
  parDcipaDonDistributed	
  queriesIntegrated	
  main	
  memory	
  cachingData	
  
synchronizaDon	
  (	
  mulD-­‐datacenter)
Dynamo
October	
  2007
Cassandra
August	
  2008
Bigtable
November	
  2006
Voldemort
February	
  2009
Very	
  few	
  organizaNons	
  want	
  to	
  (fewer	
  can)	
  build	
  and	
  maintain	
  database	
  so[ware	
  technology.
But	
  every	
  organizaNon	
  building	
  interacNve	
  web	
  applicaNons	
  needs	
  this	
  technology.
A	
  New	
  Technology?
Monday, June 17, 13
Lack	
  of	
  flexibility/
rigid	
  schemas
Inability	
  to	
  scale	
  out	
  data Performance	
  challenges Cost All	
  of	
  these Other
49%
35%
29%
16%
12%
11%
What	
  Is	
  Biggest	
  Data	
  Management	
  Problem	
  Driving	
  
Use	
  of	
  NoSQL	
  in	
  Coming	
  Year?
Source:	
  Couchbase	
  Survey,	
  December	
  2011,	
  n	
  =	
  1351.
Monday, June 17, 13
NoSQL	
  Catalog
Key-­‐Value
Memcached
Membase
Redis
Data	
  Structure Document Column Graph
MongoDB
Couchbase Cassandra
Cache
(memory	
  only)
Database
(memory/disk)
Neo4j
HBase InfiniteGraph
Coherence
Monday, June 17, 13
Couchbase	
  Server
NoSQL	
  Document	
  Database
Monday, June 17, 13
Couchbase	
  Open	
  Source	
  Project
• Leading	
  NoSQL	
  database	
  project	
  focused	
  on	
  
distributed	
  database	
  technology	
  and	
  
surrounding	
  ecosystem
• Supports	
  both	
  key-­‐value	
  and	
  document-­‐
oriented	
  use	
  cases
• All	
  components	
  are	
  available	
  under	
  the	
  Apache	
  
2.0	
  Public	
  License
• Obtained	
  as	
  packaged	
  soiware	
  in	
  both	
  
enterprise	
  and	
  community	
  ediDons. Couchbase
Open Source Project
Monday, June 17, 13
Easy	
  Scalability Consistent	
  High	
  
Performance
Always	
  On	
  
24x365
Grow	
  cluster	
  without	
  applicaDon	
  changes,	
  
without	
  downDme	
  with	
  a	
  single	
  click
Consistent	
  sub-­‐millisecond	
  
read	
  and	
  write	
  response	
  Dmes	
  
with	
  consistent	
  high	
  throughput
No	
  downDme	
  for	
  soiware	
  upgrades,	
  
hardware	
  maintenance,	
  etc.
Flexible	
  Data	
  Model
JSON	
  document	
  model	
  with	
  no	
  fixed	
  
schema.
Couchbase	
  Server
Monday, June 17, 13
Flexible	
  Data	
  Model
• No	
  need	
  to	
  worry	
  about	
  the	
  database	
  when	
  changing	
  your	
  applicaDon
• Records	
  can	
  have	
  different	
  structures,	
  there	
  is	
  no	
  fixed	
  schema
• Allows	
  painless	
  data	
  model	
  changes	
  for	
  rapid	
  applicaDon	
  development
	
  {
	
  	
  	
  	
  “ID”:	
  1,
	
  	
  	
  	
  “FIRST”:	
  “DipN”,
	
  	
  	
  	
  “LAST”:	
  “Borkar”,
	
  	
  	
  	
  “ZIP”:	
  “94040”,
	
  	
  	
  	
  “CITY”:	
  “MV”,
	
  	
  	
  	
  “STATE”:	
  “CA”
}
JSON
JSON
JSON JSON
Monday, June 17, 13
AddiDonal	
  Couchbase	
  Server	
  Features
Built-­‐in	
  clustering	
  –	
  All	
  nodes	
  equal
Data	
  replicaDon	
  with	
  auto-­‐failover
Zero-­‐downDme	
  maintenance	
  
Built-­‐in	
  managed	
  cached
Append-­‐only	
  storage	
  layer
Online	
  compacDon
Monitoring	
  and	
  admin	
  API	
  &	
  UI
SDK	
  for	
  a	
  variety	
  of	
  languages
Monday, June 17, 13
Market	
  AdopDon	
  –	
  Customers
Internet	
  Companies Enterprises
Monday, June 17, 13
Heartbeat
Process	
  monitor
Global	
  singleton	
  supervisor
ConfiguraDon	
  manager
on	
  each	
  node
Rebalance	
  orchestrator
Node	
  health	
  monitor
one	
  per	
  cluster
vBucket	
  state	
  and	
  replicaDon	
  manager
hFp
REST	
  management	
  API/Web	
  UI
HTTP
8091
Erlang	
  port	
  mapper
4369
Distributed	
  Erlang
21100	
  -­‐	
  21199
Erlang/OTP
storage	
  interface
Couchbase	
  EP	
  Engine
11210
Memcapable	
  	
  2.0
Moxi
11211
Memcapable	
  	
  1.0
Memcached
New	
  Persistence	
  Layer
8092
Query	
  API
Query	
  Engine
Data	
  Manager Cluster	
  Manager
Couchbase	
  Server	
  Architecture
Monday, June 17, 13
Heartbeat
Process	
  monitor
Global	
  singleton	
  supervisor
ConfiguraDon	
  manager
on	
  each	
  node
Rebalance	
  orchestrator
Node	
  health	
  monitor
one	
  per	
  cluster
vBucket	
  state	
  and	
  replicaDon	
  manager
hFp
REST	
  management	
  API/Web	
  UI
HTTP
8091
Erlang	
  port	
  mapper
4369
Distributed	
  Erlang
21100	
  -­‐	
  21199
Erlang/OTP
storage	
  interface
Couchbase	
  EP	
  Engine
11210
Memcapable	
  	
  2.0
Moxi
11211
Memcapable	
  	
  1.0
Memcached
New	
  Persistence	
  Layer
8092
Query	
  API
Query	
  Engine
Couchbase	
  Server	
  Architecture
Monday, June 17, 13
Couchbase	
  OperaDons
Monday, June 17, 13
33 2
Single	
  node	
  -­‐	
  Couchbase	
  Write	
  OperaDon
Managed	
  Cache
Disk	
  Queue
Disk
ReplicaDon	
  Queue
App	
  Server
Couchbase	
  Server	
  Node
Doc	
  1Doc	
  1
Doc	
  1
To	
  other	
  node
Monday, June 17, 13
COUCHBASE	
  SERVER	
  	
  CLUSTER
Basic	
  OperaDon
• Docs	
  distributed	
  evenly	
  across	
  servers	
  
• Each	
  server	
  stores	
  both	
  acPve	
  and	
  replica	
  docs
Only	
  one	
  server	
  acDve	
  at	
  a	
  Dme
• Client	
  library	
  provides	
  app	
  with	
  simple	
  interface	
  to	
  
database
• Cluster	
  map	
  provides	
  map	
  
to	
  which	
  server	
  doc	
  is	
  on
App	
  never	
  needs	
  to	
  know
• App	
  reads,	
  writes,	
  updates	
  docs
• MulPple	
  app	
  servers	
  can	
  access	
  same	
  document	
  at	
  
same	
  Pme
User	
  Configured	
  Replica	
  Count	
  =	
  1
READ/WRITE/UPDATE
ACTIVE
SERVER	
  1
ACTIVE
Doc	
  4
Doc	
  7
Doc
Doc
Doc
SERVER	
  2
Doc	
  8
ACTIVE
Doc	
  1
Doc	
  2
Doc
Doc
Doc
REPLICA
Doc	
  4
Doc	
  1
Doc	
  8
Doc
Doc
Doc
REPLICA
Doc	
  6
Doc	
  3
Doc	
  2
Doc
Doc
Doc
REPLICA
Doc	
  7
Doc	
  9
Doc	
  5
Doc
Doc
Doc
SERVER	
  3
Doc	
  6
Doc	
  5
Doc	
  2
Doc
Doc
DocDoc	
  9
APP	
  SERVER	
  1
COUCHBASE	
  Client	
  Library
CLUSTER	
  MAP
COUCHBASE	
  Client	
  Library
CLUSTER	
  MAP
APP	
  SERVER	
  2
Monday, June 17, 13
Client	
  SDK
www.couchbase.com/develop
Clojure
Python
Ruby
libcouchbase
Go
Monday, June 17, 13
NPM
{
    "name": "my-node-application",
    "version": "1.0.0",
    "private": true,
    "dependencies":
    {
        "express": "3.x",
        "couchbase": "0.0.12",
        "ejs": ">= 0.0.1"
    }
}
Monday, June 17, 13
Connect	
  to	
  the	
  cluster
var driver = require('couchbase');
 
dbConfiguration = {
   "hosts": ["localhost:8091"],
   "bucket": "ideas"
};
 
driver.connect(dbConfiguration, function(err, cb) {
   if (err) {
      throw (err)
   }
 
// your application code here
 
}
Monday, June 17, 13
Insert	
  Data
var meetup = {"type" : "meetup", "language" : "javascript"};
cb.set("web5",meetup, function(err, meta) {});
 
var tmp = {"message" : "hello world!"};
cb.set("tmp", tmp, {"expiry" : 5},function(err, meta) {});
Monday, June 17, 13
Insert	
  /	
  Delete	
  Data
var meetup = {"type" : "meetup", "language" : "javascript"};
cb.set("barcelonajs",meetup, function(err, meta) {});
 
var tmp = {"message" : "hello world!"};
cb.set("tmp", tmp, {"expiry" : 5},function(err, meta) {});
 
cb.set("todelete", tmp, function(err, meta) {});
cb.remove("todelete", function(err, meta) {});
Monday, June 17, 13
Retrieve	
  the	
  Data
cb.get("product:45", function(errs, doc, metas) {
console.log("=== get the document ===");
console.log( doc );
});
var keys = new Array();
keys.push("product:1");
keys.push("product:45");
keys.push("product:65");
keys.push("product:80");
cb.get(keys, null, function(errs, docs, metas) {
console.log("n=== get List of documents ===");
console.log( docs );
});
Monday, June 17, 13
Retrieve	
  the	
  Data
What	
  if	
  I	
  want	
  all	
  products	
  or	
  meetups?
key : barcelonajs
{
"type": "meetup",
"language": "javascript"
}
key : product:10
{
"type": "product",
"name": "Product with id 10"
}
Monday, June 17, 13
Calling	
  a	
  view	
  from	
  your	
  app
var queryParams = {
      stale: false,
      key : "meetup"
};
 
cb.view("my_views", "by_type", queryParams, function(err, view) {
      var keys = new Array();
      for (var i = 0; i < view.length; i++) {
         keys.push(view[i].id);
      }
      cb.get(keys, null, function(errs, docs, metas) {
         console.log(docs);
      });
   });
Monday, June 17, 13
Demo	
  Time
Monday, June 17, 13
www.couchbase.com/download
Couchbase	
  Server	
  
Monday, June 17, 13
Q	
  &	
  A
Monday, June 17, 13
Thank	
  you!
tug@couchbase.com
@tgrall
Get	
  Couchbase	
  Server	
  at	
  
hHp://www.couchbase.com/download
Monday, June 17, 13
Monday, June 17, 13

More Related Content

What's hot

Boston Hadoop Meetup: Presto for the Enterprise
Boston Hadoop Meetup: Presto for the EnterpriseBoston Hadoop Meetup: Presto for the Enterprise
Boston Hadoop Meetup: Presto for the EnterpriseMatt Fuller
 
HBaseConEast2016: Splice machine open source rdbms
HBaseConEast2016: Splice machine open source rdbmsHBaseConEast2016: Splice machine open source rdbms
HBaseConEast2016: Splice machine open source rdbmsMichael Stack
 
Bootstrapping Using Free Software
Bootstrapping Using Free SoftwareBootstrapping Using Free Software
Bootstrapping Using Free SoftwareColin Charles
 
Lessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking SitesLessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking SitesPatrick Senti
 
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduce
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReducePublic Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduce
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduceHadoop User Group
 

What's hot (6)

Boston Hadoop Meetup: Presto for the Enterprise
Boston Hadoop Meetup: Presto for the EnterpriseBoston Hadoop Meetup: Presto for the Enterprise
Boston Hadoop Meetup: Presto for the Enterprise
 
HBaseConEast2016: Splice machine open source rdbms
HBaseConEast2016: Splice machine open source rdbmsHBaseConEast2016: Splice machine open source rdbms
HBaseConEast2016: Splice machine open source rdbms
 
Bootstrapping Using Free Software
Bootstrapping Using Free SoftwareBootstrapping Using Free Software
Bootstrapping Using Free Software
 
Lessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking SitesLessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking Sites
 
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduce
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReducePublic Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduce
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduce
 
From 0 to syncing
From 0 to syncingFrom 0 to syncing
From 0 to syncing
 

Similar to Introducing Couchbase Server 2.0: A Flexible NoSQL Document Database

Softshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseSoftshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseTugdual Grall
 
Would Mr. Spok choose Open Source
Would Mr. Spok choose Open SourceWould Mr. Spok choose Open Source
Would Mr. Spok choose Open Sourcevlcinsky
 
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0Tugdual Grall
 
Proud to be polyglot!
Proud to be polyglot!Proud to be polyglot!
Proud to be polyglot!NLJUG
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Pierre Joye
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and FutureKeiichiro Ono
 
GlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js DevelopersGlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js DevelopersRob Tweed
 
Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...
Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...
Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...Flink Forward
 
Flink forward sf 17
Flink forward sf 17Flink forward sf 17
Flink forward sf 17Ravi Yadav
 
Flink Forward San Francisco 2017 - Flink meet DC/OS
Flink Forward San Francisco 2017 - Flink meet DC/OSFlink Forward San Francisco 2017 - Flink meet DC/OS
Flink Forward San Francisco 2017 - Flink meet DC/OSpleia2
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSJulio Antonio Mendonça de Marins
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Tugdual Grall
 
Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017pleia2
 
Containerizing couchbase with microservice architecture on mesosphere.pptx
Containerizing couchbase with microservice architecture on mesosphere.pptxContainerizing couchbase with microservice architecture on mesosphere.pptx
Containerizing couchbase with microservice architecture on mesosphere.pptxRavi Yadav
 
StackOverflow Architectural Overview
StackOverflow Architectural OverviewStackOverflow Architectural Overview
StackOverflow Architectural OverviewFolio3 Software
 
Know Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express EditionKnow Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express EditionRonald Bradford
 
True Reusable Code - DevSum2016
True Reusable Code - DevSum2016True Reusable Code - DevSum2016
True Reusable Code - DevSum2016Eduard Lazar
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdflubnayasminsebl
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesNicola Ferraro
 

Similar to Introducing Couchbase Server 2.0: A Flexible NoSQL Document Database (20)

Softshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseSoftshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with Couchbase
 
Would Mr. Spok choose Open Source
Would Mr. Spok choose Open SourceWould Mr. Spok choose Open Source
Would Mr. Spok choose Open Source
 
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
 
Proud to be polyglot!
Proud to be polyglot!Proud to be polyglot!
Proud to be polyglot!
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and Future
 
GlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js DevelopersGlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js Developers
 
Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...
Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...
Flink forward SF 2017: Elizabeth K. Joseph and Ravi Yadav - Flink meet DC/OS ...
 
Flink forward sf 17
Flink forward sf 17Flink forward sf 17
Flink forward sf 17
 
Flink Forward San Francisco 2017 - Flink meet DC/OS
Flink Forward San Francisco 2017 - Flink meet DC/OSFlink Forward San Francisco 2017 - Flink meet DC/OS
Flink Forward San Francisco 2017 - Flink meet DC/OS
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?
 
Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017
 
Containerizing couchbase with microservice architecture on mesosphere.pptx
Containerizing couchbase with microservice architecture on mesosphere.pptxContainerizing couchbase with microservice architecture on mesosphere.pptx
Containerizing couchbase with microservice architecture on mesosphere.pptx
 
StackOverflow Architectural Overview
StackOverflow Architectural OverviewStackOverflow Architectural Overview
StackOverflow Architectural Overview
 
Know Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express EditionKnow Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express Edition
 
True Reusable Code - DevSum2016
True Reusable Code - DevSum2016True Reusable Code - DevSum2016
True Reusable Code - DevSum2016
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 

More from Tugdual Grall

Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkTugdual Grall
 
Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkTugdual Grall
 
Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1Tugdual Grall
 
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Tugdual Grall
 
Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015Tugdual Grall
 
Introduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi WorkshopIntroduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi WorkshopTugdual Grall
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Tugdual Grall
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglotTugdual Grall
 
Drop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema DesignDrop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema DesignTugdual Grall
 
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6Tugdual Grall
 
Some cool features of MongoDB
Some cool features of MongoDBSome cool features of MongoDB
Some cool features of MongoDBTugdual Grall
 
Building Your First MongoDB Application
Building Your First MongoDB ApplicationBuilding Your First MongoDB Application
Building Your First MongoDB ApplicationTugdual Grall
 
Opensourceday 2014-iot
Opensourceday 2014-iotOpensourceday 2014-iot
Opensourceday 2014-iotTugdual Grall
 
Big Data Paris : Hadoop and NoSQL
Big Data Paris : Hadoop and NoSQLBig Data Paris : Hadoop and NoSQL
Big Data Paris : Hadoop and NoSQLTugdual Grall
 
Big Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataBig Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataTugdual Grall
 
FOSDEM 2013 : Getting Started with Couchhbase Server 2.0
FOSDEM 2013 : Getting Started with Couchhbase Server 2.0FOSDEM 2013 : Getting Started with Couchhbase Server 2.0
FOSDEM 2013 : Getting Started with Couchhbase Server 2.0Tugdual Grall
 
Open World Forum 2012 : eXo & the Cloud
Open World Forum 2012 : eXo & the CloudOpen World Forum 2012 : eXo & the Cloud
Open World Forum 2012 : eXo & the CloudTugdual Grall
 

More from Tugdual Grall (20)

Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache Flink
 
Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache Flink
 
Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1
 
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
 
Big Data Journey
Big Data JourneyBig Data Journey
Big Data Journey
 
Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015
 
Introduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi WorkshopIntroduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi Workshop
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications
 
MongoDB and Hadoop
MongoDB and HadoopMongoDB and Hadoop
MongoDB and Hadoop
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
Drop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema DesignDrop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema Design
 
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
 
Some cool features of MongoDB
Some cool features of MongoDBSome cool features of MongoDB
Some cool features of MongoDB
 
Building Your First MongoDB Application
Building Your First MongoDB ApplicationBuilding Your First MongoDB Application
Building Your First MongoDB Application
 
Opensourceday 2014-iot
Opensourceday 2014-iotOpensourceday 2014-iot
Opensourceday 2014-iot
 
Neotys conference
Neotys conferenceNeotys conference
Neotys conference
 
Big Data Paris : Hadoop and NoSQL
Big Data Paris : Hadoop and NoSQLBig Data Paris : Hadoop and NoSQL
Big Data Paris : Hadoop and NoSQL
 
Big Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataBig Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big Data
 
FOSDEM 2013 : Getting Started with Couchhbase Server 2.0
FOSDEM 2013 : Getting Started with Couchhbase Server 2.0FOSDEM 2013 : Getting Started with Couchhbase Server 2.0
FOSDEM 2013 : Getting Started with Couchhbase Server 2.0
 
Open World Forum 2012 : eXo & the Cloud
Open World Forum 2012 : eXo & the CloudOpen World Forum 2012 : eXo & the Cloud
Open World Forum 2012 : eXo & the Cloud
 

Recently uploaded

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Introducing Couchbase Server 2.0: A Flexible NoSQL Document Database

  • 2. Introducing   Couchbase  Server  2.0 Tugdual  Grall Technical  Evangelist Monday, June 17, 13
  • 3. About  me... • Tugdual  “Tug”  Grall ­ Couchbase • Technical  Evangelist ­ eXo • CTO ­ Oracle • Developer/Product  Manager ­ Mainly  Java/SOA ­ Developer  in  consulDng  firms • Web ­  @tgrall ­      hHp://blog.grallandco.com ­      tgrall ­ NantesJUG  co-­‐founder ­ Pet  Project  : ­ hHp://www.resultri.com Monday, June 17, 13
  • 4. RDBMS  are  not  Enough? Monday, June 17, 13
  • 5. Growth  is  the  New  Reality • Instagram  gained  nearly  1  million  users  overnight  when  then  expanded  to  Android Monday, June 17, 13
  • 6. Draw  Something  Viral  Growth 191715131197533/12826242220181614121082/6 Draw  Something  by  OMGPOP Daily  Ac)ve  Users  (millions) 21 2 4 6 8 10 12 14 16 Monday, June 17, 13
  • 7. RDBMS  is  good  for  many  thing,  but  hard  to  scale RDBMS  Scales  Up Get  a  bigger,  more  complex  server Users ApplicaNon  Scales  Out Just  add  more  commodity  web  servers Users System  Cost ApplicaDon  Performance   RelaNonal  Database Web/App  Server  Tier System  Cost ApplicaDon  Performance   Won’t  scale   beyond  this   point How  do  you  take  this  growth? Monday, June 17, 13
  • 8. Web/App  Server  Tier Memcached  Tier MySQL  Tier Scaling  out  RDBMS • Run  Many  SQL  Servers • Data  could  be  shared ­ Done  by  the  applicaDon  code • Caching  for  faster  response  Nme Monday, June 17, 13
  • 9. Scaling  out  flaWens  the  cost  and  performance  curves NoSQL  Database  Scales  Out Cost  and  performance  mirrors  app  Ner Users NoSQL  Distributed  Data  Store Web/App  Server  Tier ApplicaNon  Scales  Out Just  add  more  commodity  web  servers Users System  Cost ApplicaDon  Performance   ApplicaDon  Performance   System  Cost NoSQL  Technology  Scales  Out Monday, June 17, 13
  • 10. Building  new  database  to  answer  the  following  requirementsNo  schema  required  before   inserDng  dataNo  schema  change  required  to  change  data  formatAuto-­‐sharding  without   applicaDon  parDcipaDonDistributed  queriesIntegrated  main  memory  cachingData   synchronizaDon  (  mulD-­‐datacenter) Dynamo October  2007 Cassandra August  2008 Bigtable November  2006 Voldemort February  2009 Very  few  organizaNons  want  to  (fewer  can)  build  and  maintain  database  so[ware  technology. But  every  organizaNon  building  interacNve  web  applicaNons  needs  this  technology. A  New  Technology? Monday, June 17, 13
  • 11. Lack  of  flexibility/ rigid  schemas Inability  to  scale  out  data Performance  challenges Cost All  of  these Other 49% 35% 29% 16% 12% 11% What  Is  Biggest  Data  Management  Problem  Driving   Use  of  NoSQL  in  Coming  Year? Source:  Couchbase  Survey,  December  2011,  n  =  1351. Monday, June 17, 13
  • 12. NoSQL  Catalog Key-­‐Value Memcached Membase Redis Data  Structure Document Column Graph MongoDB Couchbase Cassandra Cache (memory  only) Database (memory/disk) Neo4j HBase InfiniteGraph Coherence Monday, June 17, 13
  • 13. Couchbase  Server NoSQL  Document  Database Monday, June 17, 13
  • 14. Couchbase  Open  Source  Project • Leading  NoSQL  database  project  focused  on   distributed  database  technology  and   surrounding  ecosystem • Supports  both  key-­‐value  and  document-­‐ oriented  use  cases • All  components  are  available  under  the  Apache   2.0  Public  License • Obtained  as  packaged  soiware  in  both   enterprise  and  community  ediDons. Couchbase Open Source Project Monday, June 17, 13
  • 15. Easy  Scalability Consistent  High   Performance Always  On   24x365 Grow  cluster  without  applicaDon  changes,   without  downDme  with  a  single  click Consistent  sub-­‐millisecond   read  and  write  response  Dmes   with  consistent  high  throughput No  downDme  for  soiware  upgrades,   hardware  maintenance,  etc. Flexible  Data  Model JSON  document  model  with  no  fixed   schema. Couchbase  Server Monday, June 17, 13
  • 16. Flexible  Data  Model • No  need  to  worry  about  the  database  when  changing  your  applicaDon • Records  can  have  different  structures,  there  is  no  fixed  schema • Allows  painless  data  model  changes  for  rapid  applicaDon  development  {        “ID”:  1,        “FIRST”:  “DipN”,        “LAST”:  “Borkar”,        “ZIP”:  “94040”,        “CITY”:  “MV”,        “STATE”:  “CA” } JSON JSON JSON JSON Monday, June 17, 13
  • 17. AddiDonal  Couchbase  Server  Features Built-­‐in  clustering  –  All  nodes  equal Data  replicaDon  with  auto-­‐failover Zero-­‐downDme  maintenance   Built-­‐in  managed  cached Append-­‐only  storage  layer Online  compacDon Monitoring  and  admin  API  &  UI SDK  for  a  variety  of  languages Monday, June 17, 13
  • 18. Market  AdopDon  –  Customers Internet  Companies Enterprises Monday, June 17, 13
  • 19. Heartbeat Process  monitor Global  singleton  supervisor ConfiguraDon  manager on  each  node Rebalance  orchestrator Node  health  monitor one  per  cluster vBucket  state  and  replicaDon  manager hFp REST  management  API/Web  UI HTTP 8091 Erlang  port  mapper 4369 Distributed  Erlang 21100  -­‐  21199 Erlang/OTP storage  interface Couchbase  EP  Engine 11210 Memcapable    2.0 Moxi 11211 Memcapable    1.0 Memcached New  Persistence  Layer 8092 Query  API Query  Engine Data  Manager Cluster  Manager Couchbase  Server  Architecture Monday, June 17, 13
  • 20. Heartbeat Process  monitor Global  singleton  supervisor ConfiguraDon  manager on  each  node Rebalance  orchestrator Node  health  monitor one  per  cluster vBucket  state  and  replicaDon  manager hFp REST  management  API/Web  UI HTTP 8091 Erlang  port  mapper 4369 Distributed  Erlang 21100  -­‐  21199 Erlang/OTP storage  interface Couchbase  EP  Engine 11210 Memcapable    2.0 Moxi 11211 Memcapable    1.0 Memcached New  Persistence  Layer 8092 Query  API Query  Engine Couchbase  Server  Architecture Monday, June 17, 13
  • 22. 33 2 Single  node  -­‐  Couchbase  Write  OperaDon Managed  Cache Disk  Queue Disk ReplicaDon  Queue App  Server Couchbase  Server  Node Doc  1Doc  1 Doc  1 To  other  node Monday, June 17, 13
  • 23. COUCHBASE  SERVER    CLUSTER Basic  OperaDon • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acPve  and  replica  docs Only  one  server  acDve  at  a  Dme • Client  library  provides  app  with  simple  interface  to   database • Cluster  map  provides  map   to  which  server  doc  is  on App  never  needs  to  know • App  reads,  writes,  updates  docs • MulPple  app  servers  can  access  same  document  at   same  Pme User  Configured  Replica  Count  =  1 READ/WRITE/UPDATE ACTIVE SERVER  1 ACTIVE Doc  4 Doc  7 Doc Doc Doc SERVER  2 Doc  8 ACTIVE Doc  1 Doc  2 Doc Doc Doc REPLICA Doc  4 Doc  1 Doc  8 Doc Doc Doc REPLICA Doc  6 Doc  3 Doc  2 Doc Doc Doc REPLICA Doc  7 Doc  9 Doc  5 Doc Doc Doc SERVER  3 Doc  6 Doc  5 Doc  2 Doc Doc DocDoc  9 APP  SERVER  1 COUCHBASE  Client  Library CLUSTER  MAP COUCHBASE  Client  Library CLUSTER  MAP APP  SERVER  2 Monday, June 17, 13
  • 25. NPM {     "name": "my-node-application",     "version": "1.0.0",     "private": true,     "dependencies":     {         "express": "3.x",         "couchbase": "0.0.12",         "ejs": ">= 0.0.1"     } } Monday, June 17, 13
  • 26. Connect  to  the  cluster var driver = require('couchbase');   dbConfiguration = {    "hosts": ["localhost:8091"],    "bucket": "ideas" };   driver.connect(dbConfiguration, function(err, cb) {    if (err) {       throw (err)    }   // your application code here   } Monday, June 17, 13
  • 27. Insert  Data var meetup = {"type" : "meetup", "language" : "javascript"}; cb.set("web5",meetup, function(err, meta) {});   var tmp = {"message" : "hello world!"}; cb.set("tmp", tmp, {"expiry" : 5},function(err, meta) {}); Monday, June 17, 13
  • 28. Insert  /  Delete  Data var meetup = {"type" : "meetup", "language" : "javascript"}; cb.set("barcelonajs",meetup, function(err, meta) {});   var tmp = {"message" : "hello world!"}; cb.set("tmp", tmp, {"expiry" : 5},function(err, meta) {});   cb.set("todelete", tmp, function(err, meta) {}); cb.remove("todelete", function(err, meta) {}); Monday, June 17, 13
  • 29. Retrieve  the  Data cb.get("product:45", function(errs, doc, metas) { console.log("=== get the document ==="); console.log( doc ); }); var keys = new Array(); keys.push("product:1"); keys.push("product:45"); keys.push("product:65"); keys.push("product:80"); cb.get(keys, null, function(errs, docs, metas) { console.log("n=== get List of documents ==="); console.log( docs ); }); Monday, June 17, 13
  • 30. Retrieve  the  Data What  if  I  want  all  products  or  meetups? key : barcelonajs { "type": "meetup", "language": "javascript" } key : product:10 { "type": "product", "name": "Product with id 10" } Monday, June 17, 13
  • 31. Calling  a  view  from  your  app var queryParams = {       stale: false,       key : "meetup" };   cb.view("my_views", "by_type", queryParams, function(err, view) {       var keys = new Array();       for (var i = 0; i < view.length; i++) {          keys.push(view[i].id);       }       cb.get(keys, null, function(errs, docs, metas) {          console.log(docs);       });    }); Monday, June 17, 13
  • 34. Q  &  A Monday, June 17, 13
  • 35. Thank  you! tug@couchbase.com @tgrall Get  Couchbase  Server  at   hHp://www.couchbase.com/download Monday, June 17, 13