MongoDb scalability and high availability with Replica-Set

Post on 28-Jan-2015

135 views 3 download

Tags:

description

One of the much awaited features in MongoDB 1.6 is replica sets, MongoDB replication solution providing automatic failover and recovery. MongoDB High Availabiltity with Replica Sets This talk will cover - • What is Replica Set? • Replication Process • Advantaged of Replica Set vs master/slave • How to set up replica set on production Demo This video is tutorial for setting up the MongoDb replica-set ion production environment. In this i took 3 instances which have already mongo installed and running. This tutorial consists-: 1.Setup the each instance of replica set 2.modify the mongodb.conf to include replica set information 3.configure the servers to include in replica set 4.then cross checking if we kill one primary then secondary becomes primary or not.

transcript

Scalability and High Availability with ReplicaSet

@vparihar

Vivek PariharAVP Engineering,Weboinse Lab

Who Am I?● A Weboniser and Rubyist● Blogger(vparihar01.github.com)● MongoDb user● Geek● DevOps● Mainly write Ruby, but have great passion for Javascript

and Cloud Platforms● ...

Agenda● {10: Reasons, To: Love }● Scalability with ● What is Sharding?● What is Replica Set?● Replication Process● Advantaged of Replica Set vs Master/Slave ● How to set up replica set on production

{10: Reasons , To: Love } I.RELATIVELY EASY TO SETUP

In simple 3 steps MongoDb is start running on your machineStep-1. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Step-2. sudo apt-get install mongodb-10gen

Step-3. sudo /etc/init.d/mongodb start

{10: Reasons , To: Love } II.It’s fast

On average 7 times faster

{10: Reasons , To: Love } III. Easy Scalability

{ Does Anyone know about scaling MySql? }

{10: Reasons , To: Love } IV. High Availability

{10: Reasons , To: Love } V. High Performance

{10: Reasons , To: Love } VI. Flexible Schema{no schema: no problem}

{10: Reasons , To: Love MongoDb} VII. Built in Sharding and Replication

{10: Reasons , To: Love } VIII. Courses are excellent to start working as a

developer/DBA with.

{10: Reasons , To: Love } IX. Deploy New Instances on Demand

{10: Reasons , To: Love } X. BASE Rather Than ACID

ACID BASE

Atomicity Basically Available

Consistency Soft State

Isolation Eventual Consistency

Durable

Horizontal Scaling Vs Vertical Scaling

Scalability with ● Horizontal Scaling● Auto-Sharding● Vertical Scaling● Replica Set● Performance {For: Read, For: Write}● Storage

Horizontal Scaling● By adding more machines into the existing pool.

● In a database world horizontal-scaling is often based on partitioning of the data i.e. each node contains only part of the data.

● MongoDB achieves this through auto-sharding.

Vertical Scaling● Typically refers to adding more processors ,ram and

storage to a Symmetric Multiple Processing to extend processing capability.

● In a database world vertical-scaling is done through multi-core i.e. spreading the load between the CPU and RAM resources of that machine.

What is Sharding?● Sharding is a method for storing data across multiple

machines.

● Also known as Horizontal Scaling

● Divides the data set and distributes the data over multiple servers, or shards.

What is Sharding?Each shard is an independent database, and collectively, the shards make up a single logical database.

Sharding offerings:● Automatic balancing for changes in load and data

distribution● Easy addition of new machines● Scaling out to one thousand nodes● No single points of failure● Automatic failover

What is Replication?● Replication is the process of synchronizing data across

multiple servers.● Mongo achieves Replication through Replica Sets● Replica sets are a form of asynchronous master/slave

replication● A replica set consists of two or more nodes that are

copies of each other. (i.e.: replicas)

Purpose of Replication Data Redundancy ● Replica sets provide an automated method

for storing multiple copies of your data.

Purpose of Replication Automated Failover / High Avalability ● If primary fails then replica set will

attempt to select another member to become the new primary.● This means that the failure of a

primary can be handled by the client without any configuration changes● Use heartbeat signal to detect failure

Purpose of Replication ● Distributed Read Load/Read Scaling

By default, the primary node of a replica set is accessed for all reads and writes.

● Disaster RecoveryReplica sets allows for a “delayed secondary” node. This node can provide a window for recovering from disastrous events such as:

○ bad deployments ○ dropped tables and collections

Replication Process● Members of a replica set replicate data continuously● MongoDB applies database operations on the primary

and then records the operations on the primary’s oplog. ● All replica set members contain a copy of the oplog,

allowing them to maintain the current state of the database.

Advantages of Replica Set vs Master/Slave

● Replica sets are basically just master-slave with automatic failover.

● So, you have a pool of servers with one primary (the master) and N secondaries (slaves). If the primary crashes or disappears, the other servers will hold an election to choose a new primary.

Demo -: How to set up replica set on Production!

Click on below link to see the demo-:

http://youtu.be/BFSGcBHcirU

Thanks

Would Love to answer your queries...

Vivek Parihar@vparihar