couchbase 20-xdcr-deep-dive-12012012

33
1 Couchbase Server 2.0 and Cross Data Center replication Dipti Borkar

Upload: couchbase

Post on 06-Aug-2015

168 views

Category:

Documents


0 download

TRANSCRIPT

1

Couchbase Server 2.0 and Cross Data Center replication

Dipti Borkar

2

XDCR: Cross Data Center Replication

US DATA CENTER

EUROPE DATA CENTER

ASIA DATA CENTER

http://blog.groosy.com/wp-content/uploads/2011/10/internet-map.jpg

3

Cross Data Center Replication – The basics

• Replicate your Couchbase data across clusters• Clusters may be spread across geos• Configured on a per-bucket basis• Supports unidirectional and bidirectional operation• Application can read and write from both clusters

(active – active replication)• Replication throughput scales out linearly• Different from intra-cluster replication

4

Intra-cluster Replication

5

Cross Datacenter Replication (XDCR)

6

33 2

Single node - Couchbase Write Operation with XDCR2

Managed Cache

Dis

k Q

ueue

Disk

Replication Queue

App Server

Couchbase Server Node

Doc 1Doc 1

Doc 1

To other node

XDCR Queue

Doc 1

To other cluster

7

Internal Data Flow

1. Document written to managed cache

2. Document added to intra-cluster replication queue

3. Document added to disk queue

4. XDCR push replicates to other clusters

8

XDCR in action

COUCHBASE SERVER CLUSTERNYC DATA CENTERACTIVE

Doc

Doc 2

SERVER 1

Doc 9

SERVER 2 SERVER 3

RAM

Doc Doc Doc

ACTIVE

Doc

Doc

Doc RAM

ACTIVE

Doc

Doc

DocRAM

DISK

Doc Doc Doc

DISK

Doc Doc Doc

DISK

COUCHBASE SERVER CLUSTERSF 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

DocRAM

DISK

Doc Doc Doc

DISK

Doc Doc Doc

DISK

9

XDCR ARCHITECTURE

10

Bucket A

Bucket B

Bucket C

Cluster 1

Bucket A

Bucket B

Bucket C

Cluster 2

Bucket-level XDCR

11

Continuous Reliable Replication

• All data mutations replicated to destination cluster• Multiple streams round-robin across vBuckets in

parallel (32 default)• Automatic resume after network disruption

12

Cluster Topology Aware

• Automatically handles node addition and removal in source and destination clusters

13

Efficient

• Couchbase Server de-duplicates writes to disk– With multiple updates to

the same document only the last version is written to disk

– Only this last change written to disk is passed to XDCR

• Document revisions are compared between clusters prior to transfer

14

Active-Active Conflict Resolution

• Couchbase Server provides strong consistency at the document level within a cluster

• XDCR provides eventual consistency across clusters• If a document is mutated on both clusters, both

clusters will pick the same “winner”• In case of conflict, document with the most updates

will be considered the “winner”

3 33

5

15

CONFIGURATION AND

MONITORING

16

STEP 1: Define Remote Cluster

17

STEP 2: Start Replication

18

Monitor Ongoing Replications

19

Detailed Replication Progress

• Source Cluster

• Destination Cluster

20

XDCR TOPOLOGIES

21

Unidirectional

• Hot spare• Read slave• Development/Testing copies

22

Bidirectional

• Multiple Active Masters• Disaster Recovery• Datacenter Locality

23

Chain

24

Propagation

25

XDCR in the Cloud

• Server Naming– Optimal configuration using DNS name that resolves to

internal address for intra-cluster communication and public address for inter-cluster communication

• Security– XDCR traffic is not encrypted, plan topology accordingly– Consider 3rd party Amazon VPN solutions

26

USE CASES

27

Data Locality

• Data closer to your users is faster for your users

28

Disaster Recovery

• Ensure 24x7x365 data availability even if an entire data center goes down

29

Development and Testing

• Test code changes with actual production data without interrupting your production cluster

• Give developers local databases with real data, easy to dispose and recreate

Test and Dev Staging Production

30

Impact of XDCR on the cluster

Your clusters need to be sized for XDCR• XDCR is CPU intensive – Configure the number of parallel streams based on your CPU

capacity

• You are doubling your I/O usage– I/O capacity needs to be sized correctly

• You will need more memory particularly for bidirectional XDCR – Memory capacity needs to be sized correctly

32

Q & A

33

THANK YOU

@[email protected]