Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 53 lines (37 sloc) 2.101 kb

Replicasets

Introduction

Replica sets is the asynchronous master/slave replication added to Mongodb that takes care off all the failover and recovery for the member nodes. According to the mongodb documentation a replicaset is

  • Two or more nodes that are copies of each other
  • Automatic assignment of a primary(master) node if none is available
  • Drivers that automatically detect the new master and send writes to it

More information at Replicasets

Driver usage

To create a new replicaset follow the instructions on the mongodb site to setup the config and the replicaset instances. Then using the driver.

var replSet = new ReplSetServers( [ 
    new Server( 127.0.0.1, 30000, { auto_reconnect: true } ),
    new Server( 127.0.0.1, 30001, { auto_reconnect: true } ),
    new Server( 127.0.0.1, 30002, { auto_reconnect: true } )
  ], 
  {rs_name:RS.name}
);

var db = new Db('integration_test_', replSet);
db.open(function(err, p_db) {
  // Do you app stuff :)
})

The ReplSetSrvers object has the following parameters

var replSet = new ReplSetSrvers(servers, options)

Where

  • servers is an array of Server objects
  • options can contain the following options

Replicaset options

Several options can be passed to the Replicaset constructor with options parameter.

  • rs_name is the name of the replicaset you configured when you started the server, you can have multiple replicasets running on your servers.
  • read_secondary set's the driver to read from secondary servers (slaves) instead of only from the primary(master) server.
  • socketOptions - a collection of pr socket settings

Socket options

Several options can be set for the socketOptions.

  • timeout = set seconds before connection times out default:0
  • noDelay = Disables the Nagle algorithm default:true
  • keepAlive = Set if keepAlive is used default:0, which means no keepAlive, set higher than 0 for keepAlive
  • encoding = 'ascii'|'utf8'|'base64' default:null
Something went wrong with that request. Please try again.