24
1 Couchbase Server Chris Anderson Chief Architect @jchris

CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

1  

Couchbase  Server  

Chris  Anderson  Chief  Architect                @jchris  

Page 2: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

2  

Couchbase  Server  

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

Formerly  known  as  Membase  Server  

Page 3: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 4: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 5: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 6: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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    

Page 7: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

7  

Couchbase  Server  Features  

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

•  Monitoring  and  administra=on  APIs  and  GUI    

•  Reliable  storage  architecture      

Page 8: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 9: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 10: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 11: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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)  

Page 12: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

12  

DEMO  TIME  

Page 13: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 14: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 15: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 16: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 17: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

17  

DEMO  TIME  

Page 18: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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  

Page 19: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

19  

Player  Document  

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

}    

Page 20: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

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”  

Page 21: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

21  

Monster  Document  

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

}  

Page 22: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

22  

GAME  ON!  

Page 23: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

23  

THANK  YOU!  

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

 Give  us  feedback  at:  

hfp://www.couchbase.com/forums  

Page 24: CouchbaseServer - GOTO Conference Couchbas… · 3 Couchbase"Server"Features" • Builtin"clustering"–All"nodes"equal" • Datareplicaon"with"autoDfailover" • ZeroDDdown=me"maintenance""

24  

NOSQL  KNOCKOUT  #GOTOCPH