SlideShare a Scribd company logo
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 (6)

PDF
Boston Hadoop Meetup: Presto for the Enterprise
Matt Fuller
 
PPTX
HBaseConEast2016: Splice machine open source rdbms
Michael Stack
 
PDF
Bootstrapping Using Free Software
Colin Charles
 
PDF
Lessons from Highly Scalable Architectures at Social Networking Sites
Patrick Senti
 
PPT
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduce
Hadoop User Group
 
PDF
From 0 to syncing
Philipp Fehre
 
Boston Hadoop Meetup: Presto for the Enterprise
Matt Fuller
 
HBaseConEast2016: Splice machine open source rdbms
Michael Stack
 
Bootstrapping Using Free Software
Colin Charles
 
Lessons from Highly Scalable Architectures at Social Networking Sites
Patrick Senti
 
Public Terabyte Dataset Project: Web crawling with Amazon Elastic MapReduce
Hadoop User Group
 
From 0 to syncing
Philipp Fehre
 

Similar to Introduction to NoSQL with Couchbase (20)

PDF
Couchbase overview033113long
Jeff Harris
 
PDF
Couchbase overview033113long
Jeff Harris
 
PDF
How companies use NoSQL & Couchbase - NoSQL Now 2014
Dipti Borkar
 
PPTX
Couchbase 101
Dipti Borkar
 
PPTX
Introduction to couchbase
Dipti Borkar
 
PDF
Softshake 2013: Introduction to NoSQL with Couchbase
Tugdual Grall
 
PDF
Manuel Hurtado. Couchbase paradigma4oct
Paradigma Digital
 
PDF
Couchbase - Yet Another Introduction
Kelum Senanayake
 
PDF
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
Ortus Solutions, Corp
 
PDF
The Modern Database for Enterprise Applications
QAware GmbH
 
PDF
Couchbase Day
Idan Tohami
 
PPT
NoSQL_Night
Clarence J M Tauro
 
PPTX
Couchbase and Apache Spark
Matt Ingenthron
 
PPTX
Introduction no sql solutions with couchbase and .net core
Baris Ceviz
 
PDF
Slides: NoSQL Data Modeling Using JSON Documents – A Practical Approach
DATAVERSITY
 
PPTX
Full-Stack Development with JavaScript and NoSQL
Aaron Benton
 
PDF
Benchmarking Couchbase Server for Interactive Applications
Altoros
 
PDF
How companies use NoSQL and Couchbase - NoSQL Now 2013
Dipti Borkar
 
PPTX
Couchbase Data Platform | Big Data Demystified
Omid Vahdaty
 
PPTX
Introduction to Couchbase: Onomi
Onomi
 
Couchbase overview033113long
Jeff Harris
 
Couchbase overview033113long
Jeff Harris
 
How companies use NoSQL & Couchbase - NoSQL Now 2014
Dipti Borkar
 
Couchbase 101
Dipti Borkar
 
Introduction to couchbase
Dipti Borkar
 
Softshake 2013: Introduction to NoSQL with Couchbase
Tugdual Grall
 
Manuel Hurtado. Couchbase paradigma4oct
Paradigma Digital
 
Couchbase - Yet Another Introduction
Kelum Senanayake
 
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
Ortus Solutions, Corp
 
The Modern Database for Enterprise Applications
QAware GmbH
 
Couchbase Day
Idan Tohami
 
NoSQL_Night
Clarence J M Tauro
 
Couchbase and Apache Spark
Matt Ingenthron
 
Introduction no sql solutions with couchbase and .net core
Baris Ceviz
 
Slides: NoSQL Data Modeling Using JSON Documents – A Practical Approach
DATAVERSITY
 
Full-Stack Development with JavaScript and NoSQL
Aaron Benton
 
Benchmarking Couchbase Server for Interactive Applications
Altoros
 
How companies use NoSQL and Couchbase - NoSQL Now 2013
Dipti Borkar
 
Couchbase Data Platform | Big Data Demystified
Omid Vahdaty
 
Introduction to Couchbase: Onomi
Onomi
 
Ad

More from Tugdual Grall (20)

PDF
Introduction to Streaming with Apache Flink
Tugdual Grall
 
PDF
Introduction to Streaming with Apache Flink
Tugdual Grall
 
PDF
Fast Cars, Big Data - How Streaming Can Help Formula 1
Tugdual Grall
 
PPTX
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Tugdual Grall
 
PDF
Big Data Journey
Tugdual Grall
 
PDF
Proud to be Polyglot - Riviera Dev 2015
Tugdual Grall
 
PDF
Introduction to NoSQL with MongoDB - SQLi Workshop
Tugdual Grall
 
PDF
Enabling Telco to Build and Run Modern Applications
Tugdual Grall
 
PPTX
MongoDB and Hadoop
Tugdual Grall
 
PDF
Proud to be polyglot
Tugdual Grall
 
PDF
Drop your table ! MongoDB Schema Design
Tugdual Grall
 
PDF
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Tugdual Grall
 
PDF
Some cool features of MongoDB
Tugdual Grall
 
PDF
Building Your First MongoDB Application
Tugdual Grall
 
PDF
Opensourceday 2014-iot
Tugdual Grall
 
PDF
Neotys conference
Tugdual Grall
 
PDF
Why and How to integrate Hadoop and NoSQL?
Tugdual Grall
 
PDF
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
Tugdual Grall
 
PPT
Big Data Paris : Hadoop and NoSQL
Tugdual Grall
 
PDF
Big Data Israel Meetup : Couchbase and Big Data
Tugdual Grall
 
Introduction to Streaming with Apache Flink
Tugdual Grall
 
Introduction to Streaming with Apache Flink
Tugdual Grall
 
Fast Cars, Big Data - How Streaming Can Help Formula 1
Tugdual Grall
 
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Tugdual Grall
 
Big Data Journey
Tugdual Grall
 
Proud to be Polyglot - Riviera Dev 2015
Tugdual Grall
 
Introduction to NoSQL with MongoDB - SQLi Workshop
Tugdual Grall
 
Enabling Telco to Build and Run Modern Applications
Tugdual Grall
 
MongoDB and Hadoop
Tugdual Grall
 
Proud to be polyglot
Tugdual Grall
 
Drop your table ! MongoDB Schema Design
Tugdual Grall
 
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Tugdual Grall
 
Some cool features of MongoDB
Tugdual Grall
 
Building Your First MongoDB Application
Tugdual Grall
 
Opensourceday 2014-iot
Tugdual Grall
 
Neotys conference
Tugdual Grall
 
Why and How to integrate Hadoop and NoSQL?
Tugdual Grall
 
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
Tugdual Grall
 
Big Data Paris : Hadoop and NoSQL
Tugdual Grall
 
Big Data Israel Meetup : Couchbase and Big Data
Tugdual Grall
 
Ad

Recently uploaded (20)

PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 

Introduction to NoSQL with Couchbase

  • 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! [email protected] @tgrall Get  Couchbase  Server  at   hHp://www.couchbase.com/download Monday, June 17, 13