Upload
couchbase
View
477
Download
1
Tags:
Embed Size (px)
Citation preview
3
Couchbase Server Features
• Built-in clustering – All nodes equal
• Data replication with auto-failover
• Zero-downtime maintenance
• Clone to grow and scale horizontally
5
Couchbase Server Basic Operation
COUCHBASE CLIENT LIBRARY
Docs distributed evenly across servers in the cluster
Each server stores both active& replica docs Only one server active at a time
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
Multiple App Servers can access same document at same time
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
Active Docs Active Docs Active Docs
CLUSTER MAP CLUSTER MAP
APP SERVER 1 APP SERVER 2
COUCHBASE SERVER CLUSTER
6
Add Nodes
Two servers added to cluster One-click operation
Docs automatically rebalanced across cluster Even distribution 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
Active 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
Active Docs Active Docs Active Docs
SERVER 4 SERVER 5
Active Docs Active Docs
Replica Docs Replica Docs
COUCHBASE SERVER CLUSTER
7
Fail Over Node
Doc 7
Doc 9
Doc 3
Active 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
DOCDOC
DOC
DOC
DOC
DOC
DOC DOC
DOC
DOC
DOC
Doc 9
Doc 5DOC
DOC
DOC
Doc 1
Doc 8
Doc 2
Replica Docs Replica Docs Replica Docs
Active Docs Active Docs Active Docs
SERVER 4 SERVER 5
Active Docs Active 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 active
Updates cluster map
App server requests for docs now go to appropriate server
Typically rebalance would follow
8
Couchbase Server Features
• Memcached compatible (built-in caching)
• Monitoring and administration APIs and GUI
• Reliable storage architecture
9
Couchbase Server 1.8 Architecture
Hea
rtb
eat
Pro
cess
mo
nit
or
Glo
bal
sin
glet
on
su
per
viso
r
Co
nfi
gura
tio
n m
anag
er
on each node
Reb
alan
ce o
rch
estr
ato
r
No
de
hea
lth
mo
nit
or
one per cluster
vBu
cket
sta
te a
nd
rep
licat
ion
man
ager
httpR
EST
man
agem
ent
AP
I/W
eb U
I
HTTP
8091Erlang port mapper
4369Distributed Erlang
21100 - 21199
Erlang/OTP
Cluster Manager
Persistence Layer
storage interface
Memcached
Couchbase EP Engine
11210Memcapable 2.0
Moxi
11211Memcapable 1.0
Data Manager
10
Couchbase Server 1.8 Architecture
Persistence Layer
storage interface
Hea
rtb
eat
Pro
cess
mo
nit
or
Glo
bal
sin
glet
on
su
per
viso
r
Co
nfi
gura
tio
n m
anag
er
on each node
Reb
alan
ce o
rch
estr
ato
r
No
de
hea
lth
mo
nit
or
one per cluster
vBu
cket
sta
te a
nd
rep
licat
ion
man
ager
httpR
EST
man
agem
ent
AP
I/W
eb U
I
Memcached
Couchbase EP Engine
11210Memcapable 2.0
Moxi
11211Memcapable 1.0
HTTP
8091Erlang port mapper
4369Distributed Erlang
21100 - 21199
Erlang/OTP
11
Couchbase Server 1.8 Architecture
Hea
rtb
eat
Pro
cess
mo
nit
or
Co
nfi
gura
tio
n M
anag
er
Glo
bal
sin
glet
on
su
per
viso
r
on each node
Reb
alan
ce o
rch
estr
ato
r
No
de
hea
lth
mo
nit
or
one per cluster
vBu
cket
sta
te a
nd
rep
licat
ion
man
ager
httpR
EST
Man
age
me
nt
/We
bU
I
HTTP
8091Erlang port mapper
4369Distributed Erlang
21100 - 21199
Erlang/OTP
Persistence Layer
storage interface
Memcached
Couchbase EP Engine
11210Memcapable 2.0
Moxi
11211Memcapable 1.0
12
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");// this is all the same as beforecb.set("hello", 0, "world");cb.get("hello");
http://www.couchbase.com/develop
Couchbase Java Library (spymemcached)
14
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 Replication
• Fully backwards compatible with existing Couchbase Server
15
Couchbase Server 2.0 Architecture
Hea
rtb
eat
Pro
cess
mo
nit
or
Glo
bal
sin
glet
on
su
per
viso
r
Co
nfi
gura
tio
n m
anag
er
on each node
Reb
alan
ce o
rch
estr
ato
r
No
de
hea
lth
mo
nit
or
one per cluster
vBu
cket
sta
te a
nd
rep
licat
ion
man
ager
httpR
EST
man
age
me
nt
AP
I/W
eb
UI
HTTP
8091Erlang port mapper
4369Distributed Erlang
21100 - 21199
Erlang/OTP
storage interface
Couchbase EP Engine
11210Memcapable 2.0
Moxi
11211Memcapable 1.0
Memcached
New Persistence Layer
8092Query API
Qu
ery
En
gin
e
16
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
Active Docs Active Docs Active Docs
COUCHBASE CLIENT LIBRARY COUCHBASE CLIENT LIBRARY
CLUSTER MAP CLUSTER MAP
APP SERVER 1 APP SERVER 2
QueryResponse
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
}
23
Cross Data Center Replication
Want data close to user
Want multiple locations for disaster recovery
Multi-Master: Can write to same document in all different regions & it will sync (eventually consistent, always available)
US DATA CENTER
EUROPE DATA CENTER
ASIA DATA CENTERReplication Replication
Replication