CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" •...

Preview:

Citation preview

1  

Couchbase  Server  

Chris  Anderson  Chief  Architect                @jchris  

2  

Couchbase  Server  

=  •  Simple  •  Fast  •  Elas=c  •  NoSQL  Database  

Formerly  known  as  Membase  Server  

3  

Couchbase  Server  Features  

•  Built-­‐in  clustering  –  All  nodes  equal  

•  Data  replica=on  with  auto-­‐failover  

•  Zero-­‐-­‐down=me  maintenance      

•  Clone  to  grow  and  scale  horizontally  

4  

Couchbase  Server  Basic  Opera=on  

                           

                           

         

COUCHBASE  CLIENT  LIBRARY      

§ Docs  distributed  evenly  across  servers  in  the  cluster  

§ Each  server  stores  both  ac3ve  &  replica  docs  §  Only  one  server  ac=ve  at  a  =me  

§ 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  

§  Mul=ple  App  Servers  can  access  same  document  at  same  =me  

 

                           

Doc  4  

Doc  2  

Doc  5  

SERVER  1  

Doc  6  

Doc  4  

SERVER  2  

Doc  7  

Doc  1  

SERVER  3  

Doc  3  

Read/Write/Update  

         

COUCHBASE  CLIENT  LIBRARY      

Read/Write/Update  

Doc  9  

Doc  7  

Doc  8   Doc  6  

Doc  3  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

Doc  9  

Doc  5  

DOC  

DOC  

DOC  

Doc  1  

Doc  8   Doc  2  

Replica  Docs   Replica  Docs   Replica  Docs  

Ac=ve  Docs   Ac=ve  Docs   Ac=ve  Docs  

CLUSTER  MAP      

CLUSTER  MAP      

APP  SERVER  1   APP  SERVER  2  

COUCHBASE  SERVER  CLUSTER  

5  

Add  Nodes  

                           

                           

§  Two  servers  added  to  cluster  §  One-­‐click  opera=on  

§  Docs  automa=cally  rebalanced  across  cluster  §  Even  distribu=on  of  

docs  §  Minimum  doc  movement  

§  Cluster  map  updated  

§  App  database  calls  now  distributed  over  larger  #  of  servers  

Read/Write/Update   Read/Write/Update  

Doc  7  

Doc  9  

Doc  3  

Ac=ve  Docs  

Replica  Docs  

Doc  6  

         

COUCHBASE  CLIENT  LIBRARY      CLUSTER  MAP  

   

APP  SERVER  1  

         

COUCHBASE  CLIENT  LIBRARY      CLUSTER  MAP  

   

APP  SERVER  2  

                           

                           

                           

Doc  4  

Doc  2  

Doc  5  

SERVER  1  

Doc  6  

Doc  4  

SERVER  2  

Doc  7  

Doc  1  

SERVER  3  

Doc  3  

Doc  9  

Doc  7  

Doc  8   Doc  6  

Doc  3  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

Doc  9  

Doc  5  

DOC  

DOC  

DOC  

Doc  1  

Doc  8   Doc  2  

Replica  Docs   Replica  Docs   Replica  Docs  

Ac=ve  Docs   Ac=ve  Docs   Ac=ve  Docs  

SERVER  4   SERVER  5  

Ac=ve  Docs   Ac=ve  Docs  

Replica  Docs   Replica  Docs  

COUCHBASE  SERVER  CLUSTER  

6  

Fail  Over  Node  

                           

                           

Doc  7  

Doc  9  

Doc  3  

Ac=ve  Docs  

Replica  Docs  

Doc  6  

         

COUCHBASE  CLIENT  LIBRARY      CLUSTER  MAP  

   

         

COUCHBASE  CLIENT  LIBRARY      CLUSTER  MAP  

   

                           

                           

                           

Doc  4  

Doc  2  

Doc  5  

SERVER  1  

Doc  6  

Doc  4  

SERVER  2  

Doc  7  

Doc  1  

SERVER  3  

Doc  3  

Doc  9  

Doc  7   Doc  8  

Doc  6  

Doc  3  

DOC  

DOC  

DOC  DOC  

DOC  

DOC  

DOC  

DOC  

DOC   DOC  

DOC  

DOC  

DOC  

Doc  9  

Doc  5  DOC  

DOC  

DOC  

Doc  1  

Doc  8  

Doc  2  

Replica  Docs   Replica  Docs   Replica  Docs  

Ac=ve  Docs   Ac=ve  Docs   Ac=ve  Docs  

SERVER  4   SERVER  5  

Ac=ve  Docs   Ac=ve  Docs  

Replica  Docs   Replica  Docs  

COUCHBASE  SERVER  CLUSTER  

DOC  

DOC  

§  App  servers  happily  accessing  docs  on  Server  3  

§  Server  fails  §  App  server  requests  to  server  3  fail  §  Cluster  detects  server  has  failed  

§  Promotes  replicas  of  docs  to  ac3ve  §  Updates  cluster  map  

§  App  server  requests  for  docs  now  go  to  appropriate  server  

§  Typically  rebalance  would  follow    

7  

Couchbase  Server  Features  

•  Memcached  compa=ble  (built-­‐in  caching)  

•  Monitoring  and  administra=on  APIs  and  GUI    

•  Reliable  storage  architecture      

8  

Couchbase  Server  1.8  Architecture  

Heartbeat  

Process  m

onito

r  

Glob

al  singleton  supe

rviso

r  

Confi

gura=o

n  manager  

on  each  node  

Rebalance  orchestrator  

Nod

e  he

alth  m

onito

r  

one  per  cluster  

vBucket  state  and

 replica=

on  m

anager  

hfp  RE

ST  m

anagem

ent  A

PI/W

eb  UI  

HTTP  8091  

Erlang  port  mapper  4369  

Distributed  Erlang  21100  -­‐  21199  

Erlang/OTP  

Cluster  Manager  

Persistence  Layer  

storage  interface  

Memcached  

Couchbase  EP  Engine  

11210  Memcapable    2.0  

Moxi  

11211  Memcapable    1.0  

Data  Manager  

9  

Couchbase  Server  1.8  Architecture  

Persistence  Layer  

storage  interface  

Heartbeat  

Process  m

onito

r  

Glob

al  singleton  supe

rviso

r  

Confi

gura=o

n  manager  

on  each  node  

Rebalance  orchestrator  

Nod

e  he

alth  m

onito

r  

one  per  cluster  

vBucket  state  and

 replica=

on  m

anager  

hfp  RE

ST  m

anagem

ent  A

PI/W

eb  UI  

Memcached  

Couchbase  EP  Engine  

11210  Memcapable    2.0  

Moxi  

11211  Memcapable    1.0  

HTTP  8091  

Erlang  port  mapper  4369  

Distributed  Erlang  21100  -­‐  21199  

Erlang/OTP  

10  

Couchbase  Server  1.8  Architecture  

Heartbeat  

Process  m

onito

r  

Confi

gura=o

n  Manager  

Glob

al  singleton  supe

rviso

r  

on  each  node  

Rebalance  orchestrator  

Nod

e  he

alth  m

onito

r  

one  per  cluster  

vBucket  state  and

 replica=

on  m

anager  

hNp  RE

ST  M

anagem

ent  /Web

UI  

HTTP  8091  

Erlang  port  mapper  4369  

Distributed  Erlang  21100  -­‐  21199  

Erlang/OTP  

Persistence  Layer  

storage  interface  

Memcached  

Couchbase  EP  Engine  

11210  Memcapable    2.0  

Moxi  

11211  Memcapable    1.0  

11  

Couchbase  SDKs  

Java    SDK  

.Net  SDK  

PHP  SDK  

Ruby  SDK  

…and  many  more  

Java  client  API  

User  Code  

Couchbase  Server  

CouchbaseClient  cb  =  new  CouchbaseClient(listURIs,  "aBucket",  "letmein");    cb.set("hello",  0,  "world");  cb.get("hello");  

hfp://www.couchbase.com/develop  

Couchbase  Java  Library  (spymemcached)  

12  

DEMO  TIME  

13  

Couchbase  Server  2.0  

•  Next  major  release  of  Couchbase  Server  •  Currently  in  Developer  Preview  

What’s  new:  •  Indexing  and  Querying  •  Incremental  Map  Reduce  •  Cross  Data  Center  Replica=on  

•  Fully  backwards  compa=ble  with  exis=ng  Couchbase  Server  

14  

Couchbase  Server  2.0  Architecture  

Heartbeat  

Process  m

onito

r  

Glob

al  singleton  supe

rviso

r  

Confi

gura=o

n  manager  

on  each  node  

Rebalance  orchestrator  

Nod

e  he

alth  m

onito

r  

one  per  cluster  

vBucket  state  and

 replica=

on  m

anager  

hNp  RE

ST  m

anagem

ent  A

PI/W

eb  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  

Que

ry  Engine  

15  

Indexing  and  Querying  

                           

                           

                           

APP  SERVER  1            

COUCHBASE  CLIENT  LIBRARY      

§ Indexing  work  is  distributed  amongst  nodes  §  Large  data  set  possible  §  Parallelize  the  effort  

§ Each  node  has  index  for  data  stored  on  it  

§ Queries  combine  the  results  from  required  nodes  

 

CLUSTER  MAP  

Doc  4  

Doc  2  

Doc  5  

SERVER  1  

Doc  6  

Doc  4  

SERVER  2  

Doc  7  

Doc  1  

SERVER  3  

Doc  3  

APP  SERVER  2            

COUCHBASE  CLIENT  LIBRARY      CLUSTER  MAP  

Doc  9  

Doc  7  

Doc  8   Doc  6  

Doc  3  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

DOC  

Doc  9  

Doc  5  

DOC  

DOC  

DOC  

Doc  1  

Doc  8   Doc  2  

Replica  Docs   Replica  Docs   Replica  Docs  

Ac=ve  Docs   Ac=ve  Docs   Ac=ve  Docs  

         

COUCHBASE  CLIENT  LIBRARY      

         

COUCHBASE  CLIENT  LIBRARY      CLUSTER  MAP  

   

CLUSTER  MAP      

APP  SERVER  1   APP  SERVER  2  

Query  Response  

16  

Cross  Data  Center  Replica=on  

§ Data  close  to  users  § Mul=ple  loca=ons  for  disaster  recovery  § Independently  managed  clusters  serving  local  data  

US  DATA  CENTER  

 

EUROPE  DATA  CENTER  

 

ASIA  DATA  CENTER  

 Replica]on   Replica]on  

Replica]on  

17  

DEMO  TIME  

18  

Demo:  The  next  big  social  game  

3  Objects  (documents)  within  game:  • Players  • Monsters  •  Items  

 Gameplay:  

• Players  fight  monsters  • Monsters  drop  items  • Players  own  items  

19  

Player  Document  

{    "_id":  "Keith4540",    "jsonType":  "player",    "uuid":  "35767d02-­‐a958-­‐4b83-­‐8179-­‐616816692de1",    "name":  "Keith4540",    "hitpoints":  75,    "experience":  663,    "level":  4,    "loggedIn":  false  

}    

20  

Item  Document  

{    "_id":  "Katana_e5890c94-­‐11c6-­‐48-­‐65746ce6c560",    "jsonType":  "item",    "name":  "Katana_e5890c94-­‐11c6-­‐65746ce6c560",    "uuid":  "e5890c94-­‐11c6-­‐4856-­‐a7a6-­‐65746ce6c560",    "ownerId":  "Dale9887"  

}  Player  “_id”  

21  

Monster  Document  

{    "_id":  "Bauchan9932”,    "jsonType":  "monster",    "name":  "Bauchan9932",    "uuid":  "d10dfc1b-­‐0412-­‐4140-­‐b4ec-­‐affdbf2aa5ec",    "hitpoints":  370,    "experienceWhenKilled":  52,    "itemProbability":  0.5050581341872865  

}  

22  

GAME  ON!  

23  

THANK  YOU!  

Get  Couchbase  Server  2.0  at    hfp://www.couchbase.com/downloads  

 Give  us  feedback  at:  

hfp://www.couchbase.com/forums  

24  

NOSQL  KNOCKOUT  #GOTOCPH