FOSDEM 2013 : Getting Started with Couchhbase Server 2.0

243
-1

Published on

Learn about Couchbase Server 2.0 the Open Source NoSQL database.

This presentation was delivered on Feb 3rd during the FOSDEM conference ( http://fosdem.org )

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
243
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

FOSDEM 2013 : Getting Started with Couchhbase Server 2.0

  1. 1. Monday, February 4, 13
  2. 2. Ge#ng  Started  with   Couchbase Tugdual  “Tug”  Grall Technical  Evangelist email:  tug@couchbase.com twi0er:  @tgrallMonday, February 4, 13
  3. 3. Ge#ng  Started  with   Couchbase Tugdual  “Tug”  Grall Technical  Evangelist email:  tug@couchbase.com twi0er:  @tgrallMonday, February 4, 13
  4. 4. Couchbase  Server  Core  Principles Easy   Consistent  High   Scalability PE RF O R M A N C E Performance Grow  cluster  without   Consistent  sub-­‐millisecond   applica7on  changes,  without   read  and  write  response  7mes   down7me  with  a  single  click with  consistent  high  throughput Always  On   JSON JSON JSO Flexible  Data   24x365 Model JSON N JSON No  down7me  for  so>ware   JSON  document  model  with  no   upgrades,  hardware   fixed  schema. maintenance,  etc.Monday, February 4, 13
  5. 5. Couchbase  2.0  New  Features JSON support Indexing and Querying Incremental Map Cross data center Reduce replicationMonday, February 4, 13
  6. 6. Couchbase  Handles  Real  World  ScaleMonday, February 4, 13
  7. 7. 8092 Couchbase  Server  2.0  Architecture 11211 11210 Query  API Memcapable    1.0 Memcapable    2.0 Sub:tle Moxi Query  Engine REST  management  API/Web  UI vBucket  state  and  replica7on  manager Memcached Global  singleton  supervisor Rebalance  orchestrator Configura7on  manager Node  health  monitor Process  monitor Couchbase  EP  Engine Heartbeat Data  Manager Cluster  Manager storage  interface New  Persistence  Layer hDp on  each  node one  per  cluster Erlang/OTP HTTP Erlang  port  mapper Distributed  Erlang 8091 4369 21100  -­‐  21199Monday, February 4, 13
  8. 8. Couchbase  Server  2.0  Architecture 8092 11211 11210 Query  API Memcapable    1.0 Memcapable    2.0 Moxi Query  Engine REST  management  API/Web  UI vBucket  state  and  replica7on  manager Object-­‐level  Cache Global  singleton  supervisor RAM  Cache,   Rebalance  orchestrator Configura7on  manager Node  health  monitor Server/Cluster   Process  monitor Indexing  &   Heartbeat Couchbase  EP  Engine Management  &   Persistence   storage  interface CommunicaYon Management (Erlang) New  (C  Persistence Disk   &  V8) Persistence  Layer hDp on  each  node one  per  cluster Erlang/OTP The Unreasonable Effectiveness of C by Damien Katz HTTP Erlang  port  mapper Distributed  Erlang 8091 4369 21100  -­‐  21199Monday, February 4, 13
  9. 9. Open  Source  Project Apache  2.0 hIps://github.com/couchbase/ Gerrit: hIp://review.couchbase.org/ hIps://github.com/couchbaselabs/Monday, February 4, 13
  10. 10. Monday, February 4, 13
  11. 11. SETTING  UP  TO  DEVELOPMonday, February 4, 13
  12. 12. Install  Couchbase  Server  2.0 Ubuntu RedHat Mac  OS  X Windows or  build  from  sourcesMonday, February 4, 13
  13. 13. Official  SDKs Ruby libcouchbase Clojure Python www.couchbase.com/develop GoMonday, February 4, 13
  14. 14. Monday, February 4, 13
  15. 15. COUCHBASE  OPERATIONSMonday, February 4, 13
  16. 16. Monday, February 4, 13
  17. 17. DEMONSTRATIONMonday, February 4, 13
  18. 18. Write  OperaJon Doc  1 App  Server 3 3 Managed  Cache 2 To  other  node Replica7on   Queue Disk  Queue Disk Couchbase  Server  NodeMonday, February 4, 13
  19. 19. Write  OperaJon App  Server 3 3 Managed  Cache 2 To  other  node Replica7on   Doc  1 Queue Disk  Queue Disk Couchbase  Server  NodeMonday, February 4, 13
  20. 20. Write  OperaJon App  Server 3 3 Managed  Cache 2 To  other  node Replica7on   Doc  1 Doc  1 Doc  1 Queue Disk  Queue Disk Couchbase  Server  NodeMonday, February 4, 13
  21. 21. Basic  OperaJons • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc • Cluster  map  provides  map   to  which  server  doc  is  on Doc  9 Doc Doc  8 Doc Doc  6 Doc App  never  needs  to  know • App  reads,  writes,  updates  docs • MulYple  app  servers  can  access  same   document  at  same  Yme COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  22. 22. Basic  OperaJons • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc • Cluster  map  provides  map   to  which  server  doc  is  on Doc  9 Doc Doc  8 Doc Doc  6 Doc App  never  needs  to  know • App  reads,  writes,  updates  docs REPLICA REPLICA REPLICA • MulYple  app  servers  can  access  same   Doc  4 Doc Doc  6 Doc Doc  7 Doc document  at  same  Yme Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  23. 23. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc • Cluster  map  provides  map   to  which  server  doc  is  on Doc  9 Doc Doc  8 Doc Doc  6 Doc App  never  needs  to  know • App  reads,  writes,  updates  docs REPLICA REPLICA REPLICA • MulYple  app  servers  can  access  same   Doc  4 Doc Doc  6 Doc Doc  7 Doc document  at  same  Yme Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  24. 24. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs ACTIVE ACTIVE ACTIVE Doc  5 Doc Doc  4 Doc Doc  1 Doc Doc  2 Doc Doc  7 Doc Doc  2 Doc Doc  9 Doc Doc  8 Doc Doc  6 Doc REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  25. 25. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE Doc  5 Doc Doc  4 Doc Doc  1 Doc Doc  2 Doc Doc  7 Doc Doc  2 Doc Doc  9 Doc Doc  8 Doc Doc  6 Doc REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  26. 26. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc Doc  9 Doc Doc  8 Doc Doc  6 Doc REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  27. 27. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc • Cluster  map  provides  map   to  which  server  doc  is  on Doc  9 Doc Doc  8 Doc Doc  6 Doc REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  28. 28. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc • Cluster  map  provides  map   to  which  server  doc  is  on Doc  9 Doc Doc  8 Doc Doc  6 Doc App  never  needs  to  know REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  29. 29. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc • Cluster  map  provides  map   to  which  server  doc  is  on Doc  9 Doc Doc  8 Doc Doc  6 Doc App  never  needs  to  know • App  reads,  writes,  updates  docs REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  30. 30. Basic  OperaJons APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP • Docs  distributed  evenly  across  servers   READ/WRITE/UPDATE • Each  server  stores  both  acYve  and  replica   SERVER  1 SERVER  2 SERVER  3 docs Only  one  doc  ac7ve  at  a  7me ACTIVE ACTIVE ACTIVE • Client  library  provides  app  with  simple   Doc  5 Doc Doc  4 Doc Doc  1 Doc interface  to  database Doc  2 Doc Doc  7 Doc Doc  2 Doc • Cluster  map  provides  map   to  which  server  doc  is  on Doc  9 Doc Doc  8 Doc Doc  6 Doc App  never  needs  to  know • App  reads,  writes,  updates  docs REPLICA REPLICA REPLICA • MulYple  app  servers  can  access  same   Doc  4 Doc Doc  6 Doc Doc  7 Doc document  at  same  Yme Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  8 Doc Doc  2 Doc Doc  5 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  31. 31. Basic  OperaJons • get  (key) –  Retrieve  a  document • set  (key,  value) –  Store  a  document,  overwrites  if  exists • add  (key,  value) –  Store  a  document,  error/excep7on  if  exists • replace  (key,  value) –  Store  a  document,  error/excep7on  if  doesn’t  exist • cas  (key,  value,  cas) –  Compare  and  swap,  mutate  document  only  if  it  hasn’t  changed  while   execu7ng  this  opera7onMonday, February 4, 13
  32. 32. Fail  Over  Node APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 SERVER  4 SERVER  5 • App  servers  accessing  docs ACTIVE ACTIVE ACTIVE ACTIVE ACTIVE Doc  5 Doc Doc  4 Doc Doc  1 Doc Doc  9 Doc Doc  6 Doc • Requests  to  Server  3  fail Doc  2 Doc Doc  7 Doc Doc  2 Doc Doc  8 Doc • Cluster  detects  server  failed Promotes  replicas  of  docs  to  ac7ve Updates  cluster  map • Requests  for  docs  now  go  to   appropriate  server REPLICA REPLICA REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  5 Doc Doc  8 Doc • Typically  rebalance   would  follow Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  2 Doc COUCHBASE  SERVER    CLUSTERUser  Configured  Replica  Count  =  1 Monday, February 4, 13
  33. 33. Fail  Over  Node APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 SERVER  4 SERVER  5 • App  servers  accessing  docs ACTIVE ACTIVE ACTIVE ACTIVE ACTIVE Doc  5 Doc Doc  4 Doc Doc  1 Doc Doc  9 Doc Doc  6 Doc • Requests  to  Server  3  fail Doc  2 Doc Doc  7 Doc Doc  2 Doc Doc  8 Doc • Cluster  detects  server  failed Promotes  replicas  of  docs  to  ac7ve Updates  cluster  map • Requests  for  docs  now  go  to   appropriate  server REPLICA REPLICA REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  5 Doc Doc  8 Doc • Typically  rebalance   would  follow Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  2 Doc COUCHBASE  SERVER    CLUSTERUser  Configured  Replica  Count  =  1 Monday, February 4, 13
  34. 34. Fail  Over  Node APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 SERVER  4 SERVER  5 • App  servers  accessing  docs ACTIVE ACTIVE ACTIVE ACTIVE ACTIVE Doc  5 Doc Doc  4 Doc Doc  1 Doc Doc  9 Doc Doc  6 Doc • Requests  to  Server  3  fail Doc  2 Doc Doc  7 Doc Doc  2 Doc Doc  8 Doc REPLICA REPLICA REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  5 Doc Doc  8 Doc Doc  1 Doc Doc  3 Doc Doc  9 Doc Doc  2 Doc COUCHBASE  SERVER    CLUSTERUser  Configured  Replica  Count  =  1 Monday, February 4, 13
  35. 35. Fail  Over  Node APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 SERVER  4 SERVER  5 • App  servers  accessing  docs ACTIVE ACTIVE ACTIVE ACTIVE ACTIVE Doc  5 Doc Doc  4 Doc Doc  1 Doc Doc  9 Doc Doc  6 Doc • Requests  to  Server  3  fail Doc  2 Doc Doc  7 Doc Doc  2 Doc Doc  8 Doc Doc • Cluster  detects  server  failed Promotes  replicas  of  docs  to  ac7ve Updates  cluster  map Doc  1 Doc  3 • Requests  for  docs  now  go  to   appropriate  server REPLICA REPLICA REPLICA REPLICA REPLICA Doc  4 Doc Doc  6 Doc Doc  7 Doc Doc  5 Doc  8 Doc • Typically  rebalance   would  follow Doc Doc Doc  9 Doc Doc  2 Doc COUCHBASE  SERVER    CLUSTERUser  Configured  Replica  Count  =  1 Monday, February 4, 13
  36. 36. Indexing  and  Querying APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 ACTIVE • Indexing  work  is  distributed  amongst   ACTIVE ACTIVE nodes Doc  5 Doc Doc  5 Doc Doc  5 Doc • Large  data  set  possible Doc  2 Doc Doc  2 Doc Doc  2 Doc • Parallelize  the  effort Doc  9 Doc Doc  9 Doc Doc  9 Doc • Each  node  has  index  for  data  stored  on  it REPLICA REPLICA REPLICA • Queries  combine  the  results  from   required  nodes Doc  4 Doc Doc  4 Doc Doc  4 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  8 Doc Doc  8 Doc Doc  8 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  37. 37. Indexing  and  Querying APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 ACTIVE • Indexing  work  is  distributed  amongst   ACTIVE ACTIVE nodes Doc  5 Doc Doc  5 Doc Doc  5 Doc • Large  data  set  possible Doc  2 Doc Doc  2 Doc Doc  2 Doc • Parallelize  the  effort Doc  9 Doc Doc  9 Doc Doc  9 Doc • Each  node  has  index  for  data  stored  on  it REPLICA REPLICA REPLICA • Queries  combine  the  results  from   required  nodes Doc  4 Doc Doc  4 Doc Doc  4 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  8 Doc Doc  8 Doc Doc  8 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  38. 38. Indexing  and  Querying APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 ACTIVE • Indexing  work  is  distributed  amongst   ACTIVE ACTIVE nodes Doc  5 Doc Doc  5 Doc Doc  5 Doc • Large  data  set  possible Doc  2 Doc Doc  2 Doc Doc  2 Doc • Parallelize  the  effort Doc  9 Doc Doc  9 Doc Doc  9 Doc • Each  node  has  index  for  data  stored  on  it REPLICA REPLICA REPLICA • Queries  combine  the  results  from   required  nodes Doc  4 Doc Doc  4 Doc Doc  4 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  8 Doc Doc  8 Doc Doc  8 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  39. 39. Indexing  and  Querying APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP Query SERVER  1 SERVER  2 SERVER  3 ACTIVE • Indexing  work  is  distributed  amongst   ACTIVE ACTIVE nodes Doc  5 Doc Doc  5 Doc Doc  5 Doc • Large  data  set  possible Doc  2 Doc Doc  2 Doc Doc  2 Doc • Parallelize  the  effort Doc  9 Doc Doc  9 Doc Doc  9 Doc • Each  node  has  index  for  data  stored  on  it REPLICA REPLICA REPLICA • Queries  combine  the  results  from   required  nodes Doc  4 Doc Doc  4 Doc Doc  4 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  8 Doc Doc  8 Doc Doc  8 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  40. 40. Indexing  and  Querying APP  SERVER  1 APP  SERVER  2 COUCHBASE  Client  Library COUCHBASE  Client  Library CLUSTER  MAP CLUSTER  MAP SERVER  1 SERVER  2 SERVER  3 ACTIVE • Indexing  work  is  distributed  amongst   ACTIVE ACTIVE nodes Doc  5 Doc Doc  5 Doc Doc  5 Doc • Large  data  set  possible Doc  2 Doc Doc  2 Doc Doc  2 Doc • Parallelize  the  effort Doc  9 Doc Doc  9 Doc Doc  9 Doc • Each  node  has  index  for  data  stored  on  it REPLICA REPLICA REPLICA • Queries  combine  the  results  from   required  nodes Doc  4 Doc Doc  4 Doc Doc  4 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  8 Doc Doc  8 Doc Doc  8 Doc COUCHBASE  SERVER    CLUSTERMonday, February 4, 13
  41. 41. Cross  Data  Center  ReplicaJon  (XDCR) Couchbase  Cluster Couchbase  Cluster West  Coast  Data  Center East  Coast  Data  Center SERVER  1 SERVER  2 SERVER  3 SERVER  1 SERVER  2 SERVER  3 RAM  CACHE RAM  CACHE RAM  CACHE RAM  CACHE RAM  CACHE RAM  CACHE Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc DISK DISK DISK DISK DISK DISK Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc DocMonday, February 4, 13
  42. 42. Cross  Data  Center  ReplicaJon  (XDCR) Couchbase  Cluster Couchbase  Cluster West  Coast  Data  Center East  Coast  Data  Center SERVER  1 SERVER  2 SERVER  3 SERVER  1 SERVER  2 SERVER  3 RAM  CACHE RAM  CACHE RAM  CACHE RAM  CACHE RAM  CACHE RAM  CACHE Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  1 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  2 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc Doc  6 Doc DISK DISK DISK DISK DISK DISK Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc Doc DocMonday, February 4, 13
  43. 43. GeoCouch  R-­‐Tree  Index • Optimized for bulk loading of large data sets • Simplified query model (bounding box, nearest neighbor)Monday, February 4, 13
  44. 44. ElasJc  Search  Adaptor • Elastic Search is good for ad-hoc queries and faceted browsing • Our adapter is aware of changing Couchbase topology • Indexed by Elastic Search after stored to disk in Couchbase ElasYcSearchMonday, February 4, 13
  45. 45. I’m  Excited  to  See  What  You  Build, Q  &  A Couchbase  Docs Contact  me  on  TwiDer www.couchbase.com/docs/index-­‐full.html @tgrall Couchbase  Forums Contact  me  by  Email www.couchbase.com/forums tug@couchbase.com IRC Learn  More  About  Design  PaDerns #couchbase CouchbaseModels.com #libcouchbase Seeng  up  for  Ruby  on  Rails CouchbaseOnRails.comMonday, February 4, 13
  46. 46. MonitoringMonday, February 4, 13

×