@vparihar

Scalability and High Availability with ReplicaSet
Vivek Parihar
AVP 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 machine
Step-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 Recovery
Replica 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

MongoDb scalability and high availability with Replica-Set

  • 1.
    @vparihar Scalability and HighAvailability with ReplicaSet Vivek Parihar AVP Engineering,Weboinse Lab
  • 2.
    Who Am I? ● ● ● ● ● ● AWeboniser and Rubyist Blogger(vparihar01.github.com) MongoDb user Geek DevOps Mainly write Ruby, but have great passion for Javascript and Cloud Platforms ● ...
  • 3.
    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
  • 4.
    {10: Reasons ,To: Love I.RELATIVELY EASY TO SETUP In simple 3 steps MongoDb is start running on your machine Step-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 }
  • 5.
    {10: Reasons ,To: Love } II.It’s fast On average 7 times faster
  • 6.
    {10: Reasons ,To: Love III. Easy Scalability { Does Anyone know about scaling MySql? } }
  • 7.
    {10: Reasons ,To: Love IV. High Availability }
  • 8.
    {10: Reasons ,To: Love V. High Performance }
  • 9.
    {10: Reasons ,To: Love VI. Flexible Schema {no schema: no problem} }
  • 10.
    {10: Reasons ,To: Love MongoDb} VII. Built in Sharding and Replication
  • 11.
    {10: Reasons ,To: Love } VIII. Courses are excellent to start working as a developer/DBA with.
  • 12.
    {10: Reasons ,To: Love } IX. Deploy New Instances on Demand
  • 13.
    {10: Reasons ,To: Love } X. BASE Rather Than ACID ACID BASE Atomicity Basically Available Consistency Soft State Isolation Eventual Consistency Durable
  • 14.
    Horizontal Scaling VsVertical Scaling
  • 15.
    Scalability with ● ● ● ● ● ● Horizontal Scaling Auto-Sharding VerticalScaling Replica Set Performance {For: Read, For: Write} Storage
  • 16.
    Horizontal Scaling ● Byadding 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.
  • 17.
    Vertical Scaling ● Typicallyrefers 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.
  • 19.
    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.
  • 20.
    What is Sharding? Eachshard is an independent database, and collectively, the shards make up a single logical database.
  • 21.
    Sharding offerings: ● Automaticbalancing 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
  • 22.
    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)
  • 23.
    Purpose of Replication DataRedundancy ● Replica sets provide an automated method for storing multiple copies of your data.
  • 24.
    Purpose of Replication AutomatedFailover / 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
  • 25.
    Purpose of Replication ● DistributedRead Load/Read Scaling By default, the primary node of a replica set is accessed for all reads and writes. ● Disaster Recovery Replica 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
  • 26.
    Replication Process ● Membersof 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.
  • 27.
    Advantages of ReplicaSet 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.
  • 28.
    Demo -: Howto set up replica set on Production! Click on below link to see the demo-: http://youtu.be/BFSGcBHcirU
  • 29.
    Thanks Would Love toanswer your queries... Vivek Parihar @vparihar