• Like
Go simple-fast-elastic-with-couchbase-server-borkar
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Go simple-fast-elastic-with-couchbase-server-borkar

  • 1,333 views
Published

My session at NoSQL Now! conference

My session at NoSQL Now! conference

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,333
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
7
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Go  Simple,  Fast,  Elas1c     with  Couchbase  Server  and    Document-­‐oriented  Data  Management   Dip1  Borkar   Director,  Product  Management   1  
  • 2. WHY  TRANSITION  TO  NOSQL?     2  
  • 3. Changes  in  interac1ve  soDware  –  NoSQL  driver   3  
  • 4. Survey:  Two  big  drivers  for  NoSQL  adop1on   What  is  the  biggest  data  management  problem     driving  your  use  of  NoSQL  in  the  coming  year?   Lack  of  flexibility/rigid  schemas   49%   Inability  to  scale  out  data   35%   High  latency/low  performance   29%   Costs   16%   All  of  these   12%   Other   11%   Source: Couchbase NoSQL Survey, December 2011, n=1351 4  
  • 5. COUCHBASE  SERVER   5  
  • 6. Couchbase  Server:  Simple.  Fast.  Elas1c.  NoSQL.     •  Easy  scalability   •  Scale  your  the  database  layer  without  any  interruption   or  change  to  your  application     •  Grow  your  cluster  from  5  to  25  to  100  nodes  and  evenly   distributed  workloads  across  your  cluster     •  Consistent  High  Performance   •  Consistent  sub-­‐millisecond  response  times     •  High  throughput  means  fewer  servers  required  to  serve   growing  numbers  of  users     •  Always  on   •  With  high  availability  features  applica1ons  are  always   online   •  Whether  upgrading  the  database,  system  soDware  or   hardware  -­‐  zero  down1me   6  
  • 7. Flexible  Data  Model    {          “ID”:  1,          “FIRST”:  “DipR”,          “LAST”:  “Borkar”,          “ZIP”:  “94040”,          “CITY”:  “MV”,          “STATE”:  “CA”   }   JSON   JSON   JSON   JSON   •  Not  need  to  worry  about  the  database  when  changing  your   applica1on   •  Records  can  have  different  structures,  there  is  no  fixed  schema   •  Record  structure  can  simply  be  changed  at  any  1me,  without   affec1ng  remaining  stored  data   •  The  JSON  based  document  model  also  maps  extremely  well  to  how   applica1ons  represent  data,  including  nested  sturctures   7  
  • 8. Rela1onal  vs  Document  data  model   C1   C2   C3   C4   {   JSON       JSON     }   JSON   RelaRonal  data  model   Document  data  model   Highly-­‐structured  table  organiza1on   Collec1on  of  complex  documents  with   with  rigidly-­‐defined  data  formats  and   arbitrary,  nested  data  formats  and   record  structure.   varying  “record”  format.   8  
  • 9. Example:  User  Profile   User  Info   Address  Info   KEY   First   Last   ZIP_id   ZIP_id   CITY   STATE   ZIP   1   DipR   Borkar   2   1   DEN   CO   30303   2   Joe Smith   2   2   MV   CA   94040     3   Baxter   Dodson   2   3   CHI   IL   60609   4   Lari   Gorin   3   4   NY   NY   10010   To  get  informaRon  about  specific  user,  you  perform  a  join  across  two  tables     9  
  • 10. Represen1ng  rows  as  documents   User  Info   Geo  Info   KEY   First   Last   ZIP_id   ZIP_id   CITY   STATE   ZIP   1   DipR   Borkar   2   1   DEN   CO   30303    {   =          “ID”:  1,          “FIRST”:  “DipR”,   2   Joe Smith   2   MV   2          CA   “LAST”:  94040   “Borkar”,            “ZIP”:  “94040”,          “CITY”:  “MV”,   3   Baxter   Dodson   2   3   CHI   IL   60609          “STATE”:  “CA”      }   JSON   4   Lari   Gorin   3   4   NY   NY   10010   All  data  in  a  single  document   10  
  • 11. Couchbase  Server  2.0  –  Coming  soon  •  Next  major  release  of  Couchbase  Server  What’s  new:  •  Indexing  and  Querying  •  Incremental  Map  Reduce  •  Cross  Data  Center  Replica1on   11  
  • 12. Paid  Produc1on  Deployments  (par1al  list)   12  
  • 13. COUCHBASE  SERVER     ARCHITECTURE   13  
  • 14. 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  replica1on  manager   Memcached   Global  singleton  supervisor   Rebalance  orchestrator   Configura1on  manager   Node  health  monitor   Process  monitor   Heartbeat   Couchbase  EP  Engine   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  -­‐  21199   14  
  • 15. 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  replica1on  manager   Memcached   Global  singleton  supervisor   Rebalance  orchestrator   Configura1on  manager   Node  health  monitor   Process  monitor   Heartbeat   Couchbase  EP  Engine   storage  interface   New  Persistence  Layer   hdp   on  each  node   one  per  cluster   Erlang/OTP   HTTP   Erlang  port  mapper   Distributed  Erlang   8091   4369   21100  -­‐  21199   15  
  • 16. Couchbase  deployment   Web   Applica1on   Couchbase   Client  Library   Data  Flow   Cluster  Management   16  
  • 17. Couchbase  Server  Admin  Console   17  
  • 18. Clustering  With  Couchbase   2   1   SET  request  arrives  at  KEY’s   1   SET  acknowledgement   master  server   returned  to  applica1on   3   2   3   Listener-­‐Sender   RAM   Couchbase  storage  engine   4   Disk Disk Disk Disk Disk DiskReplica  Server  1  for  KEY   Master  server  for  KEY   Replica  Server  2  for  KEY   18  
  • 19. Basic  Opera1on   APP  SERVER  1   APP  SERVER  2       § Docs  distributed  evenly  across       COUCHBASE  CLIENT  LIBRARY   servers  in  the  cluster   COUCHBASE  CLIENT  LIBRARY               § Each  server  stores  both  ac2ve   CLUSTER  MAP     CLUSTER  MAP             &  replica  docs       §  Only  one  server  ac1ve  at  a  1me   § Client  library  provides  app  with   Read/Write/Update   Read/Write/Update   simple  interface  to  database   § Cluster  map  provides  map  to   which  server  doc  is  on   §  App  never  needs  to  know   SERVER  1   SERVER  2   SERVER  3   §  App  reads,  writes,  updates   Ac1ve  Docs     Ac1ve  Docs     Ac1ve  Docs     docs     Doc  5   DOC     Doc  4   DOC     Doc  1   DOC         §  Mul1ple  App  Servers  can     Doc  2   DOC     Doc  7   DOC     Doc  3   DOC   access  same  document  at           Doc  9   DOC     Doc  8   DOC     Doc  6   DOC   same  1me             Replica  Docs     Replica  Docs     Replica  Docs           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    CLUSTER  User  Configured  Replica  Count  =  1   19  
  • 20. Add  Nodes   APP  SERVER  1   APP  SERVER  2           §  Two  servers  added  to   COUCHBASE  CLIENT  LIBRARY   COUCHBASE  CLIENT  LIBRARY   cluster           §  One-­‐click  opera1on     CLUSTER  MAP     CLUSTER  MAP       §  Docs  automa1cally               rebalanced  across   cluster   §  Even  distribu1on  of   docs   Read/Write/Update   Read/Write/Update   §  Minimum  doc   movement   §  Cluster  map  updated   §  App  database  calls  now   distributed  over  larger  #   SERVER  1   SERVER  2   SERVER  3   SERVER  4   SERVER  5   of  servers   Ac1ve  Docs       Ac1ve  Docs    Ac1ve  Docs  ocs   Ac1ve  Docs     Ac1ve  Docs     Ac1ve  D   Doc  5   DOC     Doc  4   DOC     Doc  1   DOC             Doc  3         Doc  2   DOC     Doc  7   DOC     Doc  3   DOC             Doc  6         Doc  9   DOC     Doc  8   DOC     Doc  6   DOC                   Replica  Docs     Replica  Docs    Replica  Docs     Replica  Docs     Replica  Docs         Replica  Docs         Doc  4   DOC     Doc  6   DOC     Doc  7   7   DOC   Doc                   Doc  1   DOC     Doc  3   DOC     Doc  9   9   DOC   Doc                   Doc  8   DOC     Doc  2   DOC     Doc  5   DOC       COUCHBASE  SERVER    CLUSTER  User  Configured  Replica  Count  =  1   20  
  • 21. Fail  Over  Node   APP  SERVER  1   APP  SERVER  2   §  App  servers  happily  accessing  docs       on  Server  3       COUCHBASE  CLIENT  LIBRARY   §  Server  fails   COUCHBASE  CLIENT  LIBRARY         §  App  server  requests  to  server  3  fail       CLUSTER  MAP     CLUSTER  MAP     §  Cluster  detects  server  has  failed             §  Promotes  replicas  of  docs  to  ac2ve       §  Updates  cluster  map   §  App  server  requests  for  docs  now   go  to  appropriate  server   §  Typically  rebalance    would  follow     SERVER  1   SERVER  2   SERVER  3   SERVER  4   SERVER  5   Ac1ve  Docs       Ac1ve  Docs    Ac1ve  Docs  ocs   Ac1ve  Docs     Ac1ve  Docs     Ac1ve  D   Doc  5   DOC     Doc  4   DOC     Doc  1   DOC     Doc  9   DOC     Doc  6   DOC         Doc  3         Doc  2   DOC     Doc  7   DOC     Doc  3     Doc  8     DOC         Doc  6           DOC                     Replica  Docs     Replica  Docs    Replica  Docs     Replica  Docs     Replica  Docs         Replica  Docs         Doc  4   DOC     Doc  6   DOC     Doc  7   7   DOC   Doc     Doc  5   DOC     Doc  8   DOC               Doc  1   DOC     Doc  3   DOC     Doc  9   9   DOC   Doc     Doc  2     DOC                       COUCHBASE  SERVER    CLUSTER  User  Configured  Replica  Count  =  1   21  
  • 22. Reading  and  Wri1ng   Reading  Data   WriRng  Data   Application  Server Application  Server Give  me   Please  store   document  A   A   document  A   Here  is     A   OK,  I  stored   document  A   document  A   A   Server   A   Server   RAM RAM A   A   DISK DISK 22  
  • 23. Flow  of  data  when  wri1ng   Application  Server Application  Server Application  ServerApplicaRons  wriRng  to  Couchbase     Server   ReplicaRon  queue   Disk  write  queue   Couchbase  transmiing  replicas   Couchbase  wriRng  to  disk   network   WriRng  Data   23  
  • 24. Indexing  and  Querying   APP  SERVER  1   APP  SERVER  2   APP  SERVER  1   APP  SERVER  2               COUCHBASE  CLIENT  LIBRARY     COUCHBASE  CLIENT  LIBRARY         COUCHBASE  CLIENT  LIBRARY         COUCHBASE  CLIENT  LIBRARY     § Indexing  work  is  distributed             CLUSTER  MAP  MAP   CLUSTER         CLUSTER  MAP   AP   CLUSTER  M     amongst  nodes               §  Large  data  set  possible       §  Parallelize  the  effort   § Each  node  has  index  for  data   Query Response     stored  on  it   § Queries  combine  the  results   from  required  nodes   SERVER  1   SERVER  2   SERVER  3   Ac1ve  Docs     Ac1ve  Docs     Ac1ve  Docs         Doc  5   DOC     Doc  4   DOC     Doc  1   DOC           Doc  2   DOC     Doc  7   DOC     Doc  3   DOC           Doc  9   DOC     Doc  8   DOC     Doc  6   DOC         Replica  Docs     Replica  Docs     Replica  Docs           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         24  
  • 25. Couchbase  SDKs  Java    SDK   User  Code  .Net  SDK   CouchbaseClient  cb  =  new  CouchbaseClient(listURIs,   Java  client  API   "aBucket",  "letmein");   //  this  is  all  the  same  as  before   cb.set("hello",  0,  "world");   cb.get("hello");   Couchbase  Java  Library  PHP  SDK   (spymemcached)  Ruby  SDK   Couchbase  Server  …and  many  more   htp://www.couchbase.com/develop   25  
  • 26. DEMO  (IF  TIME  PERMITS)   26  
  • 27. Coming  September  21,  2012   SAN FRANCISCO Featured  speakers  include:   Tell  them  DipR  sent  you  and  get  50%  off.  Use  discount  code  DIPTI.   hdp://www.couchbase.com/couchconf-­‐san-­‐francisco     27  
  • 28. THANK  YOU      DIPTI@COUCHBASE.COM   28  
  • 29. 29  
  • 30. 30