Date post: | 28-Jan-2015 |
Category: |
Technology |
Upload: | vivek-parihar |
View: | 135 times |
Download: | 3 times |
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