Top Banner
101

Online training - Couchbase 101 - Installation

Aug 20, 2015

Download

Technology

Couchbase
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Online training - Couchbase 101 - Installation
Page 2: Online training - Couchbase 101 - Installation

Technical  Evangelist

twi0er:  @scalabl3email:  [email protected]

Jasdeep  Jaitla

Couchbase  101:    Architecture,  Install  &  Config

Page 3: Online training - Couchbase 101 - Installation
Page 4: Online training - Couchbase 101 - Installation

ARCHITECTURE

Page 5: Online training - Couchbase 101 - Installation

Evolution from memcached

•Founders  were  key  contributors  to  memcached  

•Evolved  into  Membase,  a  distributed  and  persisted  key-­‐value  store  

•Evolved  into  Couchbase  Document  Store  with  JSON  support  and  Map-­‐Reduce  Indexes,  ElasTc  Search  IntegraTon,  and  Cross-­‐Data  Center  ReplicaTon

Page 6: Online training - Couchbase 101 - Installation

Couchbase Server Core Principles

Easy  Scalability

Consistent  High  Performance

Always  On  24x365

Grow  cluster  without  applicaTon  changes,  without  downTme  with  a  single  click

Consistent  sub-­‐millisecond  read  and  write  response  Tmes   with  consistent  high  throughput

No  downTme  for  soWware  upgrades,  hardware  maintenance,  etc.

Flexible  Data  Model

JSON  Anywhere  document  model  with  no  fixed  schema.

JSONJSONJSON

JSONJSON

PERFORMANCE

Page 7: Online training - Couchbase 101 - Installation

Couchbase Server 2.0 Architecture

Heartbeat

Process  m

onito

r

Glob

al  singleton  supe

rviso

r

Confi

guraTo

n  manager

on  each  node

Rebalance  orchestrator

Nod

e  he

alth  m

onito

r

one  per  cluster

vBucket  state  and

 replicaT

on  m

anager

hDpRE

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

Data  Manager Cluster  Manager

Page 8: Online training - Couchbase 101 - Installation

Couchbase Server 2.0 Architecture

New  Persistence  Layer

storage  interface

Couchbase  EP  Engine

11210  Memcapable    2.0

Moxi

11211  Memcapable    1.0

Object-­‐level  Cache

Disk  Persistence

8092  Query  API

Que

ry  Engine

HTTP  8091

Erlang  port  mapper  4369

Distributed  Erlang  21100  -­‐  21199

Heartbeat

Process  m

onito

r

Glob

al  singleton  supe

rviso

r

Confi

guraTo

n  manager

on  each  node

Rebalance  orchestrator

Nod

e  he

alth  m

onito

r

one  per  cluster

vBucket  state  and

 replicaT

on  m

anager

hDp

REST  m

anagem

ent  A

PI/W

eb  UI

Erlang/OTP

Server/Cluster  Management  &  CommunicaYon  

(Erlang)

RAM  Cache,  Indexing  &  Persistence  Management  

(C)

Page 9: Online training - Couchbase 101 - Installation

Couchbase  OrganizaTon

•Couchbase  operates  like  a  Key-­‐Value  Document  Store  

• Key  is  a  UTF-­‐8  string  up  to  256  Bytes  

• Values  can  be:    

-­‐ Simple  Datatypes:  strings,  numbers,  dateTme,  boolean,  and  binary  data  can  be  stored  -­‐-­‐  they  are  stored  as  Base64  encoded  strings  

-­‐ Complex  Datatypes:  dicTonaries/hashes,  arrays/lists,  can  be  stored  in  JSON  format  (simple  lists  can  be  string  based  with  delimiter)  

-­‐ JSON  is  a  special  class  of  string  with  a  specific  format  for  encoding  simple  and  complex  data  structures  

• Schema  is  unenforced  and  implicit,  schema  changes  are  programmaTc,  done  online,  and  can  vary  from  Document  to  Document

Page 10: Online training - Couchbase 101 - Installation

Metadata and Documentsmeta  {  

“id”:  “u::[email protected]”,  “rev”:  “1-­‐0002bce0000000000”,  “flags”:  0,  “expiraYon”:  0,  “type”:  “json”  

}  !!document  {  

“uid”:  123456,  “firstname”:  “jasdeep”,  “lastname”:  “Jaitla”,  “age”:  22,  “favorite_colors”:  [“blue”,  “black”],  “email”:  “[email protected]”  

}

Meta  InformaYon  Including  Key  (id)  

!All  Keys  Unique  and  

Kept  in  RAM

Document  Value  !

Most  Recent  In  RAM  And  Persisted  To  Disk

Page 11: Online training - Couchbase 101 - Installation

Retrieval Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

Page 12: Online training - Couchbase 101 - Installation

Retrieval Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

get

Page 13: Online training - Couchbase 101 - Installation

Retrieval Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

get

Page 14: Online training - Couchbase 101 - Installation

Storage Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

Page 15: Online training - Couchbase 101 - Installation

Storage Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

set/add/replace

Page 16: Online training - Couchbase 101 - Installation

Storage Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

set/add/replace

Page 17: Online training - Couchbase 101 - Installation

Storage Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

set/add/replace

Page 18: Online training - Couchbase 101 - Installation

Storage Operations

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

set/add/replace

Page 19: Online training - Couchbase 101 - Installation

Consistency

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

Page 20: Online training - Couchbase 101 - Installation

Consistency

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

get

Page 21: Online training - Couchbase 101 - Installation

Ejection, NRU, Cache Miss

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

Page 22: Online training - Couchbase 101 - Installation

Ejection, NRU, Cache Miss

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

set/add/replaceset/add/replaceset/add/replace

Page 23: Online training - Couchbase 101 - Installation

Ejection, NRU, Cache Miss

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

FULL  (90%)

NRU Documents Ejected

Page 24: Online training - Couchbase 101 - Installation

Ejection, NRU, Cache Miss

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

Page 25: Online training - Couchbase 101 - Installation

Ejection, NRU, Cache Miss

Couchbase Server

EP EngineRAM Cache

Disk Write Queue

Replication Queue

Application Server

Replica Couchbase Cluster Machine

get

Non-­‐Resident  Document    

("Cache  Miss")

Page 26: Online training - Couchbase 101 - Installation

Clients Connect Directly to Couchbase Nodes

Application Servers

MAP

1024

8 GB RAMPartitions

3 IO Workers

Page 27: Online training - Couchbase 101 - Installation

Clients Connect Directly to Couchbase Nodes

Application Servers

MAP

1024

8 GB RAMPartitions

3 IO Workers

Page 28: Online training - Couchbase 101 - Installation

Clients Connect Directly to Couchbase Nodes

Application Servers

MAP

MAP

MAP

1024

8 GB RAMPartitions

3 IO Workers

Page 29: Online training - Couchbase 101 - Installation

Key Hash-Partitioning

Application Servers

MAP

MAP

MAP

1024

8 GB RAMPartitions

3 IO Workers

ClientHashFuncYon("[email protected]")  =>  ParYYon[0..1023]  {25}  ClusterMap[P(25)]  =>  [x.x.x.x]  =>  IP  of  Server  Responsible  for  ParYYon  25

Page 30: Online training - Couchbase 101 - Installation

Application Servers8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

Horizontal Scale-Rebalance

TOTAL

16 GB RAM

6 IO Workers

1024

Partitions

1024

Partitions

TOTAL

8 GB RAM

3 IO Workers

1024

Partitions

Page 31: Online training - Couchbase 101 - Installation

Application Servers8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

Horizontal Scale-Rebalance

TOTAL

16 GB RAM

6 IO Workers

1024

Partitions1024

Partitions

512

Partitions

512

Partitions

Page 32: Online training - Couchbase 101 - Installation

Horizontal Scale-Rebalance

TOTAL

32 GB RAM

12 IO Workers

1024

Partitions

Application Servers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

512

Partitions

512

Partitions

TOTAL

16 GB RAM

6 IO Workers

1024

Partitions

MAP

MAP MAP

MAP

Page 33: Online training - Couchbase 101 - Installation

Horizontal Scale-Rebalance

TOTAL

32 GB RAM

12 IO Workers

1024

Partitions

Application Servers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

512

Partitions

512

Partitions

256

Partitions

256

Partitions

256

Partitions

256

Partitions

TOTAL

16 GB RAM

6 IO Workers

1024

Partitions

MAP

MAP

MAP

MAP

MAP

MAP

MAP

MAP

Page 34: Online training - Couchbase 101 - Installation

Horizontal Scale-Rebalance

TOTAL

32 GB RAM

12 IO Workers

1024

Partitions

Application Servers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

8 GB RAM

3 IO Workers

512

Partitions

512

Partitions

256

Partitions

256

Partitions

256

Partitions

256

Partitions

MAP

MAP

MAP

MAP

MAP

MAP

MAP

MAP

Page 35: Online training - Couchbase 101 - Installation

!!!!!

All  Metadata  for  All  Documents    

(64  bytes  +  Key  Length)  !

Document  Values  (NRU  Ejected  if  RAM  Quota  

Used  >  90%)  !!!

Also  Leave  RAM  For  OS:    !

[Filesystem  Cache  >>  Views]

!!!!!!

Document  Indexing  !

Monitoring  !

XDCR  !!

Recommended:    !

minimum  4  Cores  +  1  core  per  design  document  +  1  core  per  XDCR  replicated  

bucket

!!!!!!

Persisted  Documents  !

All  Indexes  for  Design  Documents/Views  

!Append-­‐Only  Disk  Format  

&  CompacYon  !!

Performance:  !

MulYple  EBS  Volumes  High  IOPS  Raid  0  on  Amazon

RAM, CPU and IO Guidelines

RAM CPU Disk  IO

Page 36: Online training - Couchbase 101 - Installation

Binary Socket Operations (11210/1)• get (key)

– Retrieve a document

• set (key, value)

– Store a document, overwrites if exists

• add (key, value)

– Store a document, error/exception if exists

• replace (key, value)

– Store a document, error/exception if doesn’t exist

• incr (key)

– Create/Increment Atomic Counter

• decr (key)

– Decrement Atomic Counter

• cas (key, value, cas)

– Compare and swap, set document only if it hasn’t changed (Optimistic Lock)

Page 37: Online training - Couchbase 101 - Installation

HTTP Operations (8092)

• View Querying

– Range Queries

– Index-Key Match Queries

– Set Match Queries

– Aggregate Reduces

– Group Level + Grouping Queries

Page 38: Online training - Couchbase 101 - Installation
Page 39: Online training - Couchbase 101 - Installation

INSTALL  SERVER

Page 40: Online training - Couchbase 101 - Installation

Download Couchbasewww.couchbase.com/download

Page 41: Online training - Couchbase 101 - Installation

Install on Amazon via AMI

Page 42: Online training - Couchbase 101 - Installation

Install on Amazon via AMI

Page 43: Online training - Couchbase 101 - Installation

Run Couchbase and Open Browserlocalhost:8091  or  ec2-­‐xx-­‐xx-­‐xx-­‐xx.compute-­‐1.amazonaws.com:8091

Page 44: Online training - Couchbase 101 - Installation

Setup: Step 1 - Storage Paths & RAM Maximum

Page 45: Online training - Couchbase 101 - Installation

Setup: Step 1 - Storage Paths & RAM Maximum

Page 46: Online training - Couchbase 101 - Installation

Setup: Step 2 - Sample Buckets

Page 47: Online training - Couchbase 101 - Installation

Setup: Step 3 - Configure Default Bucket

Page 48: Online training - Couchbase 101 - Installation

Setup: Step 3 - Configure Default Bucket

Page 49: Online training - Couchbase 101 - Installation

Setup: Step 4 - Register & Agree

Page 50: Online training - Couchbase 101 - Installation

Setup: Step 5 - Admin password

Page 51: Online training - Couchbase 101 - Installation

Setup: Complete

Page 52: Online training - Couchbase 101 - Installation
Page 53: Online training - Couchbase 101 - Installation

SETUP  SDK

Page 54: Online training - Couchbase 101 - Installation

Supported SDK'swww.couchbase.com/communiYes

• Each  supported  SDK  page  has  instrucTons  for  setup  

• PHP,  Ruby,  and  Python  clients  are  wrappers  around  libcouchbase  C  library,  so  libcouchbase  must  be  installed  first  

• For  other  community  clients,  click  on  "All  Clients"  on  leW  nav,  scroll  down  the  page  and  you  can  see  clients  for  Go,  Erlang,  Clojure,  TCL,  Perl  and  others.

Page 55: Online training - Couchbase 101 - Installation

Installing Libcouchbase

• Mac  Tips  before  Libcouchbase  &  SDK  Install  

• Make  sure  you  have  XCode  &  Command  Line  Tools  Installed  

• Install  Homebrew  if  you  don't  have  it  already  

• Do  a  $  brew  update,  $  brew  upgrade  and  $  brew  doctor  to  be  sure  you're  up  to  date

www.couchbase.com/communiYes/c/geqng-­‐started

Page 56: Online training - Couchbase 101 - Installation

Installing Libcouchbase

• Mac  Via  Homebrew  

• $  brew  install  libcouchbase  

• PC-­‐Windows    

• Download  appropriate  Zip  from  website  

• Redhat/CentOS  

• wget  the  yum  repositories  

• $  sudo  yum  install  -­‐y  libcouchbase2-­‐libevent  libcouchbase-­‐devel  

• Ubuntu  

• wget  ubuntu  repositories  

• $  sudo  apt-­‐get  install  libcouchbase2-­‐libevent  libcouchbase-­‐dev

www.couchbase.com/communiYes/c/geqng-­‐started

Page 57: Online training - Couchbase 101 - Installation

More On Development

Training:  Couchbase  102  -­‐  OperaYons  www.couchbase.com/webinars

Page 58: Online training - Couchbase 101 - Installation
Page 59: Online training - Couchbase 101 - Installation

SERVER  MONITORING

Page 60: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Page 61: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Page 62: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Storage  Ops/sRetrieve  Ops/sRetrieve  off  DiskTotal  Ops/s

Page 63: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Storage  Ops/sRetrieve  Ops/sRetrieve  off  DiskTotal  Ops/s

Item  CountDelete  Ops/s CAS  Ops/s %  Documents  in  RAM

Page 64: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Page 65: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

RAM  FULL  +  Very  High  Velocity  Writes!

Page 66: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

RAM  FULL  +  Very  High  Velocity  Writes!

RAM  Used  for  Metadata  +  Data

Page 67: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

RAM  FULL  +  Very  High  Velocity  Writes!

Begin  EjecYon  of  Replicas  from  RAM

Begin  EjecYon  of  AcYve  from  RAM

RAM  Used  for  Metadata  +  Data

Page 68: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Page 69: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Disk  Creates Disk  Updates Disk  Queue  SizeDisk  Reads    (Cache  Miss)

Page 70: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Disk  Creates Disk  Updates Disk  Queue  SizeDisk  Reads    (Cache  Miss)

Total  Disk  UsageDocs  Data  Size  (Compressed) Docs  Size  on  Disk FragmentaYon  

(from  Appends)

Page 71: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Disk  Queue  Size

Page 72: Online training - Couchbase 101 - Installation

Store and Retrieve Operations

Disk  Queue  SizeDisk  Queue  Size  (Need  More  IO!)

Page 73: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Page 74: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Page 75: Online training - Couchbase 101 - Installation

Partition (vbucket) DetailsAcYve  ParYYons

Page 76: Online training - Couchbase 101 - Installation

Partition (vbucket) DetailsAcYve  ParYYons Replica  ParYYons

Page 77: Online training - Couchbase 101 - Installation

Partition (vbucket) DetailsAcYve  ParYYons Replica  ParYYons Pending  ParYYons  

(Rebalance)

Page 78: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Page 79: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Item  Count

Page 80: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

%  Documents  in  RAM

Item  Count

Page 81: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

%  Documents  in  RAM

CreaYons

Item  Count

Page 82: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

EjecYons  (RAM  Full)

%  Documents  in  RAM

CreaYons

Item  Count

Page 83: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Documents

EjecYons  (RAM  Full)

%  Documents  in  RAM

CreaYons

Item  Count

Page 84: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Metadata

Documents

EjecYons  (RAM  Full)

%  Documents  in  RAM

CreaYons

Item  Count

Page 85: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Page 86: Online training - Couchbase 101 - Installation

Partition (vbucket) Details

Note:  64  ParYYons  on  Mac  OS  X!  This  is  simply  to  avoid  altering  

default  file  descriptor  limits,  don't  XDCR  with  other  OperaYng  

Systems

Page 87: Online training - Couchbase 101 - Installation

Disk IO Information

Page 88: Online training - Couchbase 101 - Installation

Disk IO Information

AcYve  ParYYons

Page 89: Online training - Couchbase 101 - Installation

Disk IO Information

AcYve  ParYYons Replica  ParYYons

Page 90: Online training - Couchbase 101 - Installation

Disk IO Information

AcYve  ParYYons Replica  ParYYons Pending  ParYYons  (Rebalance)

Page 91: Online training - Couchbase 101 - Installation

Disk IO Information

Page 92: Online training - Couchbase 101 - Installation

Disk IO Information

Queue  Size

Page 93: Online training - Couchbase 101 - Installation

Disk IO Information

Queue  Fill  Rate

Queue  Size

Page 94: Online training - Couchbase 101 - Installation

Disk IO Information

Queue  Fill  Rate

Queue  Drain  Rate

Queue  Size

Page 95: Online training - Couchbase 101 - Installation

Disk IO Information

Average  Age  of  Queue  Items

Queue  Fill  Rate

Queue  Drain  Rate

Queue  Size

Page 96: Online training - Couchbase 101 - Installation
Page 97: Online training - Couchbase 101 - Installation

QUICK  DEMO

Page 98: Online training - Couchbase 101 - Installation
Page 99: Online training - Couchbase 101 - Installation

Q  &  A

Page 100: Online training - Couchbase 101 - Installation

Focused  on  Beginning  Development  This  Thursday!  

www.couchbase.com/webinars

Page 101: Online training - Couchbase 101 - Installation

COUCHBASE  102

Focused  on  Beginning  Development  This  Thursday!  

www.couchbase.com/webinars