View
433
Download
5
Category
Tags:
Preview:
DESCRIPTION
My presentation from CouchConf SF 2012. An introduction to Couchbase Server 2.0
Citation preview
1
Introduc+on to Couchbase Server 2.0
Dip+ Borkar Director, Product Management
2 2
Couchbase Server
NoSQL Database
3 3
Couchbase Server
Easy Scalability
Consistent, High Performance
Always On 24x7x365
Grow cluster without applicaEon changes, without downEme with a single click
Consistent sub-‐millisecond read and write response Emes with consistent high throughput
No downEme for soJware upgrades, hardware maintenance, etc.
4
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
5
Couchbase Server Features
Built-‐in managed cached Monitoring and administra+on APIs and GUI SDK for a variety of languages
6 6
Couchbase Server
2.0�
NoSQL Database NoSQL Document Database
7
Flexible Data Model
Schemaless data model allows painless data model changes for rapid applica+on development
{ “ID”: 1, “FIRST”: “DipE”, “LAST”: “Borkar”, “ZIP”: “94040”, “CITY”: “MV”, “STATE”: “CA” }
JSON JSON
JSON JSON
8
New in Two
JSON support Indexing and Querying
Cross data center replicaEon Incremental Map Reduce
9
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
hap 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
Data Manager Cluster Manager
10
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
hap 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
11
COUCHBASE OPERATIONS
12
3 3 2
Single node -‐ Couchbase Write Opera+on 2
Managed Cache
Disk Que
ue
Disk
Replica+on Queue
App Server
Couchbase Server Node
Doc 1 Doc 1
Doc 1
To other node
13
3 3 2
Single node -‐ Couchbase Update Opera+on 2
Managed Cache
Disk Que
ue
Replica+on Queue
App Server
Couchbase Server Node
Doc 1’
Doc 1
Doc 1’ Doc 1
Doc 1’
Disk
To other node
14
GET
Doc 1
3 3 2
Single node -‐ Couchbase Read Opera+on 2
Disk Que
ue
Replica+on Queue
App Server
Couchbase Server Node
Doc 1
Doc 1 Doc 1
Managed Cache
Disk
To other node
15
COUCHBASE SERVER CLUSTER
Basic Opera+on
• Docs distributed evenly across servers
• Each server stores both acEve and 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
• MulEple app servers can access same document at same Eme
User Configured Replica Count = 1
READ/WRITE/UPDATE
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc
SERVER 1 ACTIVE
Doc 4
Doc 7
Doc
Doc
Doc
SERVER 2
Doc 8
ACTIVE
Doc 1
Doc 2
Doc
Doc
Doc
REPLICA
Doc 4
Doc 1
Doc 8
Doc
Doc
Doc
REPLICA
Doc 6
Doc 3
Doc 2
Doc
Doc
Doc
REPLICA
Doc 7
Doc 9
Doc 5
Doc
Doc
Doc
SERVER 3
Doc 6
APP SERVER 1
COUCHBASE Client Library CLUSTER MAP
COUCHBASE Client Library CLUSTER MAP
APP SERVER 2
Doc 9
16
Add Nodes to Cluster
• Two servers added One-‐click operaEon
• Docs automaEcally rebalanced across cluster Even distribu+on of docs Minimum doc movement
• Cluster map updated
• App database calls now distributed over larger number of servers
REPLICA
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc 4
Doc 1
Doc
Doc
SERVER 1
REPLICA
ACTIVE
Doc 4
Doc 7
Doc
Doc
Doc 6
Doc 3
Doc
Doc
SERVER 2
REPLICA
ACTIVE
Doc 1
Doc 2
Doc
Doc
Doc 7
Doc 9
Doc
Doc
SERVER 3
SERVER 4
SERVER 5
REPLICA
ACTIVE
REPLICA
ACTIVE
Doc
Doc 8 Doc
Doc 9 Doc
Doc 2 Doc
Doc 8 Doc
Doc 5 Doc
Doc 6
READ/WRITE/UPDATE READ/WRITE/UPDATE
APP SERVER 1
COUCHBASE Client Library CLUSTER MAP
COUCHBASE Client Library CLUSTER MAP
APP SERVER 2
COUCHBASE SERVER CLUSTER
User Configured Replica Count = 1
17
Fail Over Node
REPLICA
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc 4
Doc 1
Doc
Doc
SERVER 1
REPLICA
ACTIVE
Doc 4
Doc 7
Doc
Doc
Doc 6
Doc 3
Doc
Doc
SERVER 2
REPLICA
ACTIVE
Doc 1
Doc 2
Doc
Doc
Doc 7
Doc 9
Doc
Doc
SERVER 3
SERVER 4
SERVER 5
REPLICA
ACTIVE
REPLICA
ACTIVE
Doc 9
Doc 8
Doc Doc 6 Doc
Doc
Doc 5 Doc
Doc 2
Doc 8 Doc
Doc
• App servers accessing docs
• Requests to Server 3 fail
• Cluster detects server failed Promotes replicas of docs to ac+ve Updates cluster map
• Requests for docs now go to appropriate server
• Typically rebalance would follow
Doc
Doc 1 Doc 3
APP SERVER 1
COUCHBASE Client Library CLUSTER MAP
COUCHBASE Client Library CLUSTER MAP
APP SERVER 2
User Configured Replica Count = 1
COUCHBASE SERVER CLUSTER
18
DEMO TIME
19
COUCHBASE SERVER CLUSTER
Indexing and Querying
User Configured Replica Count = 1
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc
SERVER 1
REPLICA
Doc 4
Doc 1
Doc 8
Doc
Doc
Doc
APP SERVER 1
COUCHBASE Client Library CLUSTER MAP
COUCHBASE Client Library CLUSTER MAP
APP SERVER 2
Doc 9
• 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
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc
SERVER 2
REPLICA
Doc 4
Doc 1
Doc 8
Doc
Doc
Doc
Doc 9
ACTIVE
Doc 5
Doc 2
Doc
Doc
Doc
SERVER 3
REPLICA
Doc 4
Doc 1
Doc 8
Doc
Doc
Doc
Doc 9
Query
20
Cross Data Center Replica+on (XDCR)
COUCHBASE SERVER CLUSTER NY DATA CENTER
ACTIVE
Doc
Doc 2
SERVER 1
Doc 9
SERVER 2
SERVER 3
RAM
Doc Doc Doc
ACTIVE
Doc
Doc
Doc RAM
ACTIVE
Doc
Doc
Doc RAM
DISK
Doc Doc Doc
DISK
Doc Doc Doc
DISK
COUCHBASE SERVER CLUSTER SF DATA CENTER
ACTIVE
Doc
Doc 2
SERVER 1
Doc 9
SERVER 2
SERVER 3
RAM
Doc Doc Doc
ACTIVE
Doc
Doc
Doc RAM
ACTIVE
Doc
Doc
Doc RAM
DISK
Doc Doc Doc
DISK
Doc Doc Doc
DISK
21
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");
hgp://www.couchbase.com/develop
Couchbase Java Library (spymemcached)
22
DEMO TIME
23
Demo: The next big social game
3 Objects (documents) within game: • Players • Monsters • Items
Gameplay:
• Players fight monsters • Monsters drop items • Players own items
24
Player Document
{ "jsonType": "player", "uuid": "35767d02-‐a958-‐4b83-‐8179-‐616816692de1", "name": "Keith4540", "hitpoints": 75, "experience": 663, "level": 4, "loggedIn": false
}
Player ID
25
Item Document
{ "jsonType": "item", "name": "Katana_e5890c94-‐11c6-‐65746ce6c560", "uuid": "e5890c94-‐11c6-‐4856-‐a7a6-‐65746ce6c560", "ownerId": "Dale9887"
}
Item ID
Player ID
26
Monster Document
{ "jsonType": "monster", "name": "Bauchan9932", "uuid": "d10dfc1b-‐0412-‐4140-‐b4ec-‐affdbf2aa5ec", "hitpoints": 370, "experienceWhenKilled": 52, "itemProbability": 0.5050581341872865
}
Monster ID
27
GAME ON!
28
Linear Scaling: Couchbase + Cisco + Solarflare
Linear throughput scalability
High throughput with 1.4 GB/sec data transfer rate
using 4 servers
29
2.0 Beta is Here.
JSON Documents Indexing n Querying
Cross Data Center Replication
30
THANK YOU!
Get Couchbase Server 2.0 at hgp://www.couchbase.com/download
dip+@couchbase.com @dborkar
31
QUESTIONS?
Recommended