Skip to content
This repository was archived by the owner on Feb 4, 2022. It is now read-only.

Commit 31922d6

Browse files
committed
refactor(sdam): re-use command instead of making Querys
This is the final bit of code that explicitly creates instances of the `Query` class. We should now be able to completely switch out OP_QUERY for OP_MSG if it's supported. NODE-1830
1 parent f6d98a3 commit 31922d6

File tree

2 files changed

+10
-31
lines changed

2 files changed

+10
-31
lines changed

lib/sdam/server.js

+1-11
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ const MongoError = require('../error').MongoError;
44
const Pool = require('../connection/pool');
55
const relayEvents = require('../utils').relayEvents;
66
const calculateDurationInMs = require('../utils').calculateDurationInMs;
7-
const Query = require('../connection/commands').Query;
87
const TwoSixWireProtocolSupport = require('../wireprotocol/2_6_support');
98
const ThreeTwoWireProtocolSupport = require('../wireprotocol/3_2_support');
109
const BSON = require('../connection/utils').retrieveBSON();
@@ -306,26 +305,17 @@ function extractIsMasterError(err, result) {
306305
}
307306

308307
function executeServerHandshake(server, callback) {
309-
// construct an `ismaster` query
310308
const compressors =
311309
server.s.options.compression && server.s.options.compression.compressors
312310
? server.s.options.compression.compressors
313311
: [];
314312

315-
const queryOptions = { numberToSkip: 0, numberToReturn: -1, checkKeys: false, slaveOk: true };
316-
const query = new Query(
317-
server.s.bson,
313+
server.command(
318314
'admin.$cmd',
319315
Object.assign(
320316
{ ismaster: true, client: server.s.clientInfo, compression: compressors },
321317
saslSupportedMechs(server.s.options)
322318
),
323-
queryOptions
324-
);
325-
326-
// execute the query
327-
server.s.pool.write(
328-
query,
329319
{ socketTimeout: server.s.options.connectionTimeout || 2000 },
330320
callback
331321
);

lib/topologies/server.js

+9-20
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ var inherits = require('util').inherits,
88
debugOptions = require('../connection/utils').debugOptions,
99
retrieveBSON = require('../connection/utils').retrieveBSON,
1010
Pool = require('../connection/pool'),
11-
Query = require('../connection/commands').Query,
1211
MongoError = require('../error').MongoError,
1312
MongoNetworkError = require('../error').MongoNetworkError,
1413
TwoSixWireProtocolSupport = require('../wireprotocol/2_6_support'),
@@ -344,24 +343,21 @@ function monitoringProcess(self) {
344343
// Emit monitoring Process event
345344
self.emit('monitoring', self);
346345
// Perform ismaster call
347-
// Query options
348-
var queryOptions = { numberToSkip: 0, numberToReturn: -1, checkKeys: false, slaveOk: true };
349-
// Create a query instance
350-
var query = new Query(self.s.bson, 'admin.$cmd', { ismaster: true }, queryOptions);
351346
// Get start time
352347
var start = new Date().getTime();
353348

354349
// Execute the ismaster query
355-
self.s.pool.write(
356-
query,
350+
self.command(
351+
'admin.$cmd',
352+
{ ismaster: true },
357353
{
358354
socketTimeout:
359355
typeof self.s.options.connectionTimeout !== 'number'
360356
? 2000
361357
: self.s.options.connectionTimeout,
362358
monitoring: true
363359
},
364-
function(err, result) {
360+
(err, result) => {
365361
// Set initial lastIsMasterMS
366362
self.lastIsMasterMS = new Date().getTime() - start;
367363
if (self.s.pool.isDestroyed()) return;
@@ -389,29 +385,22 @@ var eventHandler = function(self, event) {
389385
// Handle connect event
390386
if (event === 'connect') {
391387
// Issue an ismaster command at connect
392-
// Query options
393-
var queryOptions = { numberToSkip: 0, numberToReturn: -1, checkKeys: false, slaveOk: true };
394388
// Create a query instance
395389
var compressors =
396390
self.s.compression && self.s.compression.compressors ? self.s.compression.compressors : [];
397-
var query = new Query(
398-
self.s.bson,
391+
// Get start time
392+
var start = new Date().getTime();
393+
// Execute the ismaster query
394+
self.command(
399395
'admin.$cmd',
400396
Object.assign(
401397
{ ismaster: true, client: self.clientInfo, compression: compressors },
402398
getSaslSupportedMechs(self.s.options)
403399
),
404-
queryOptions
405-
);
406-
// Get start time
407-
var start = new Date().getTime();
408-
// Execute the ismaster query
409-
self.s.pool.write(
410-
query,
411400
{
412401
socketTimeout: self.s.options.connectionTimeout || 2000
413402
},
414-
function(err, result) {
403+
(err, result) => {
415404
// Set initial lastIsMasterMS
416405
self.lastIsMasterMS = new Date().getTime() - start;
417406

0 commit comments

Comments
 (0)