couchbase server 2.0 - xdcr - deep dive

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

Upload: dipti-borkar

Post on 26-Jun-2015

910 views

Category:

Documents


0 download

DESCRIPTION

Deep dive presentation on Cross data center replication - new to Couchbase Server 2.0

TRANSCRIPT

Page 1: Couchbase Server 2.0 - XDCR - Deep dive

1

Couchbase Server 2.0 and Cross Data Center replication

Dipti Borkar

Page 2: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 3: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 4: Couchbase Server 2.0 - XDCR - Deep dive

4

Intra-cluster Replication

Page 5: Couchbase Server 2.0 - XDCR - Deep dive

5

Cross Datacenter Replication (XDCR)

Page 6: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 7: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 8: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 9: Couchbase Server 2.0 - XDCR - Deep dive

9

XDCR ARCHITECTURE

Page 10: Couchbase Server 2.0 - XDCR - Deep dive

10

Bucket A

Bucket B

Bucket C

Cluster 1

Bucket A

Bucket B

Bucket C

Cluster 2

Bucket-level XDCR

Page 11: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 12: Couchbase Server 2.0 - XDCR - Deep dive

12

Cluster Topology Aware

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

Page 13: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 14: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 15: Couchbase Server 2.0 - XDCR - Deep dive

15

CONFIGURATION AND

MONITORING

Page 16: Couchbase Server 2.0 - XDCR - Deep dive

16

STEP 1: Define Remote Cluster

Page 17: Couchbase Server 2.0 - XDCR - Deep dive

17

STEP 2: Start Replication

Page 18: Couchbase Server 2.0 - XDCR - Deep dive

18

Monitor Ongoing Replications

Page 19: Couchbase Server 2.0 - XDCR - Deep dive

19

Detailed Replication Progress

• Source Cluster

• Destination Cluster

Page 20: Couchbase Server 2.0 - XDCR - Deep dive

20

XDCR TOPOLOGIES

Page 21: Couchbase Server 2.0 - XDCR - Deep dive

21

Unidirectional

• Hot spare• Read slave• Development/Testing copies

Page 22: Couchbase Server 2.0 - XDCR - Deep dive

22

Bidirectional

• Multiple Active Masters• Disaster Recovery• Datacenter Locality

Page 23: Couchbase Server 2.0 - XDCR - Deep dive

23

Chain

Page 24: Couchbase Server 2.0 - XDCR - Deep dive

24

Propagation

Page 25: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 26: Couchbase Server 2.0 - XDCR - Deep dive

26

USE CASES

Page 27: Couchbase Server 2.0 - XDCR - Deep dive

27

Data Locality

• Data closer to your users is faster for your users

Page 28: Couchbase Server 2.0 - XDCR - Deep dive

28

Disaster Recovery

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

Page 29: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 30: Couchbase Server 2.0 - XDCR - Deep dive

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

Page 32: Couchbase Server 2.0 - XDCR - Deep dive

32

Q & A

Page 33: Couchbase Server 2.0 - XDCR - Deep dive

33

THANK YOU

@[email protected]