Nik
Nik

Reputation: 2726

Mongodb slaveOk - preferred server

Assume I have N servers, each operating as a web server and a mongodb member of a replica set.

I'd like the slaveOk reads to be satisfied first by the local mongodb instance, rather than a remote machine across the network.

The documentation says slaveOk reads are satisfied by an arbitrary member. Is it possible to override that?

Mongodb 1.8, C-sharp driver 1.2.

Upvotes: 2

Views: 876

Answers (2)

Robert Stam
Robert Stam

Reputation: 12187

The closest you could come to what you are describing is for each web application to open a separate direct connection (not in replica set mode) to the local mongodb and use that separate connection for reads.

Upvotes: 0

Gates VP
Gates VP

Reputation: 45287

The documentation says slaveOk reads are satisfied by an arbitrary member. Is it possible to override that?

Not without changing the C# driver. You'd probably have to look somewhere in this file to make those changes.

Assume I have N servers, each operating as a web server and a mongodb member of a replica set.

As a note, this is generally not the expected usage for MongoDB. Implemented in this way, your web server will be competing for RAM with MongoDB. If a server gets overloaded the web server will starve the mongod process which will cause connections to back up and exacerbate the issue.

It sounds like you're trying to use MongoDB as a local cache and there are far better tools for this job.

Upvotes: 2

Related Questions