mongodb 6.5.0-dev.20240328.sha.458cf6d → 6.5.0-dev.20240404.sha.0e3d6ea

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/bson.js CHANGED
@@ -1,27 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveBSONOptions = exports.pluckBSONSerializeOptions = exports.UUID = exports.Timestamp = exports.serialize = exports.ObjectId = exports.MinKey = exports.MaxKey = exports.Long = exports.Int32 = exports.EJSON = exports.Double = exports.deserialize = exports.Decimal128 = exports.DBRef = exports.Code = exports.calculateObjectSize = exports.BSONType = exports.BSONSymbol = exports.BSONRegExp = exports.BSON = exports.Binary = void 0;
4
- var bson_1 = require("bson");
5
- Object.defineProperty(exports, "Binary", { enumerable: true, get: function () { return bson_1.Binary; } });
6
- Object.defineProperty(exports, "BSON", { enumerable: true, get: function () { return bson_1.BSON; } });
7
- Object.defineProperty(exports, "BSONRegExp", { enumerable: true, get: function () { return bson_1.BSONRegExp; } });
8
- Object.defineProperty(exports, "BSONSymbol", { enumerable: true, get: function () { return bson_1.BSONSymbol; } });
9
- Object.defineProperty(exports, "BSONType", { enumerable: true, get: function () { return bson_1.BSONType; } });
10
- Object.defineProperty(exports, "calculateObjectSize", { enumerable: true, get: function () { return bson_1.calculateObjectSize; } });
11
- Object.defineProperty(exports, "Code", { enumerable: true, get: function () { return bson_1.Code; } });
12
- Object.defineProperty(exports, "DBRef", { enumerable: true, get: function () { return bson_1.DBRef; } });
13
- Object.defineProperty(exports, "Decimal128", { enumerable: true, get: function () { return bson_1.Decimal128; } });
14
- Object.defineProperty(exports, "deserialize", { enumerable: true, get: function () { return bson_1.deserialize; } });
15
- Object.defineProperty(exports, "Double", { enumerable: true, get: function () { return bson_1.Double; } });
16
- Object.defineProperty(exports, "EJSON", { enumerable: true, get: function () { return bson_1.EJSON; } });
17
- Object.defineProperty(exports, "Int32", { enumerable: true, get: function () { return bson_1.Int32; } });
18
- Object.defineProperty(exports, "Long", { enumerable: true, get: function () { return bson_1.Long; } });
19
- Object.defineProperty(exports, "MaxKey", { enumerable: true, get: function () { return bson_1.MaxKey; } });
20
- Object.defineProperty(exports, "MinKey", { enumerable: true, get: function () { return bson_1.MinKey; } });
21
- Object.defineProperty(exports, "ObjectId", { enumerable: true, get: function () { return bson_1.ObjectId; } });
22
- Object.defineProperty(exports, "serialize", { enumerable: true, get: function () { return bson_1.serialize; } });
23
- Object.defineProperty(exports, "Timestamp", { enumerable: true, get: function () { return bson_1.Timestamp; } });
24
- Object.defineProperty(exports, "UUID", { enumerable: true, get: function () { return bson_1.UUID; } });
3
+ exports.resolveBSONOptions = exports.pluckBSONSerializeOptions = exports.toUTF8 = exports.getBigInt64LE = exports.getFloat64LE = exports.getInt32LE = exports.parseToElementsToArray = exports.UUID = exports.Timestamp = exports.serialize = exports.ObjectId = exports.MinKey = exports.MaxKey = exports.Long = exports.Int32 = exports.EJSON = exports.Double = exports.deserialize = exports.Decimal128 = exports.DBRef = exports.Code = exports.calculateObjectSize = exports.BSONType = exports.BSONSymbol = exports.BSONRegExp = exports.BSONError = exports.BSON = exports.Binary = void 0;
4
+ const bson_1 = require("bson");
5
+ var bson_2 = require("bson");
6
+ Object.defineProperty(exports, "Binary", { enumerable: true, get: function () { return bson_2.Binary; } });
7
+ Object.defineProperty(exports, "BSON", { enumerable: true, get: function () { return bson_2.BSON; } });
8
+ Object.defineProperty(exports, "BSONError", { enumerable: true, get: function () { return bson_2.BSONError; } });
9
+ Object.defineProperty(exports, "BSONRegExp", { enumerable: true, get: function () { return bson_2.BSONRegExp; } });
10
+ Object.defineProperty(exports, "BSONSymbol", { enumerable: true, get: function () { return bson_2.BSONSymbol; } });
11
+ Object.defineProperty(exports, "BSONType", { enumerable: true, get: function () { return bson_2.BSONType; } });
12
+ Object.defineProperty(exports, "calculateObjectSize", { enumerable: true, get: function () { return bson_2.calculateObjectSize; } });
13
+ Object.defineProperty(exports, "Code", { enumerable: true, get: function () { return bson_2.Code; } });
14
+ Object.defineProperty(exports, "DBRef", { enumerable: true, get: function () { return bson_2.DBRef; } });
15
+ Object.defineProperty(exports, "Decimal128", { enumerable: true, get: function () { return bson_2.Decimal128; } });
16
+ Object.defineProperty(exports, "deserialize", { enumerable: true, get: function () { return bson_2.deserialize; } });
17
+ Object.defineProperty(exports, "Double", { enumerable: true, get: function () { return bson_2.Double; } });
18
+ Object.defineProperty(exports, "EJSON", { enumerable: true, get: function () { return bson_2.EJSON; } });
19
+ Object.defineProperty(exports, "Int32", { enumerable: true, get: function () { return bson_2.Int32; } });
20
+ Object.defineProperty(exports, "Long", { enumerable: true, get: function () { return bson_2.Long; } });
21
+ Object.defineProperty(exports, "MaxKey", { enumerable: true, get: function () { return bson_2.MaxKey; } });
22
+ Object.defineProperty(exports, "MinKey", { enumerable: true, get: function () { return bson_2.MinKey; } });
23
+ Object.defineProperty(exports, "ObjectId", { enumerable: true, get: function () { return bson_2.ObjectId; } });
24
+ Object.defineProperty(exports, "serialize", { enumerable: true, get: function () { return bson_2.serialize; } });
25
+ Object.defineProperty(exports, "Timestamp", { enumerable: true, get: function () { return bson_2.Timestamp; } });
26
+ Object.defineProperty(exports, "UUID", { enumerable: true, get: function () { return bson_2.UUID; } });
27
+ function parseToElementsToArray(bytes, offset) {
28
+ const res = bson_1.BSON.onDemand.parseToElements(bytes, offset);
29
+ return Array.isArray(res) ? res : [...res];
30
+ }
31
+ exports.parseToElementsToArray = parseToElementsToArray;
32
+ exports.getInt32LE = bson_1.BSON.onDemand.NumberUtils.getInt32LE;
33
+ exports.getFloat64LE = bson_1.BSON.onDemand.NumberUtils.getFloat64LE;
34
+ exports.getBigInt64LE = bson_1.BSON.onDemand.NumberUtils.getBigInt64LE;
35
+ exports.toUTF8 = bson_1.BSON.onDemand.ByteUtils.toUTF8;
25
36
  function pluckBSONSerializeOptions(options) {
26
37
  const { fieldsAsRaw, useBigInt64, promoteValues, promoteBuffers, promoteLongs, serializeFunctions, ignoreUndefined, bsonRegExp, raw, enableUtf8Validation } = options;
27
38
  return {
package/lib/bson.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bson.js","sourceRoot":"","sources":["../src/bson.ts"],"names":[],"mappings":";;;AAEA,6BAuBc;AAtBZ,8FAAA,MAAM,OAAA;AACN,4FAAA,IAAI,OAAA;AACJ,kGAAA,UAAU,OAAA;AACV,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,2GAAA,mBAAmB,OAAA;AACnB,4FAAA,IAAI,OAAA;AACJ,6FAAA,KAAK,OAAA;AACL,kGAAA,UAAU,OAAA;AACV,mGAAA,WAAW,OAAA;AAEX,8FAAA,MAAM,OAAA;AACN,6FAAA,KAAK,OAAA;AAEL,6FAAA,KAAK,OAAA;AACL,4FAAA,IAAI,OAAA;AACJ,8FAAA,MAAM,OAAA;AACN,8FAAA,MAAM,OAAA;AACN,gGAAA,QAAQ,OAAA;AACR,iGAAA,SAAS,OAAA;AACT,iGAAA,SAAS,OAAA;AACT,4FAAA,IAAI,OAAA;AA4CN,SAAgB,yBAAyB,CAAC,OAA6B;IACrE,MAAM,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,GAAG,EACH,oBAAoB,EACrB,GAAG,OAAO,CAAC;IACZ,OAAO;QACL,WAAW;QACX,WAAW;QACX,aAAa;QACb,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,eAAe;QACf,UAAU;QACV,GAAG;QACH,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAzBD,8DAyBC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,OAA8B,EAC9B,MAA+C;IAE/C,MAAM,aAAa,GAAG,MAAM,EAAE,WAAW,CAAC;IAC1C,OAAO;QACL,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,GAAG,IAAI,KAAK;QAChD,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,WAAW,IAAI,KAAK;QACxE,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,YAAY,IAAI,IAAI;QAC1E,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,aAAa,IAAI,IAAI;QAC7E,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,cAAc,IAAI,KAAK;QACjF,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,aAAa,EAAE,eAAe,IAAI,KAAK;QACpF,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,UAAU,IAAI,KAAK;QACrE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,aAAa,EAAE,kBAAkB,IAAI,KAAK;QAC7F,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,WAAW,IAAI,EAAE;QACrE,oBAAoB,EAClB,OAAO,EAAE,oBAAoB,IAAI,aAAa,EAAE,oBAAoB,IAAI,IAAI;KAC/E,CAAC;AACJ,CAAC;AAlBD,gDAkBC"}
1
+ {"version":3,"file":"bson.js","sourceRoot":"","sources":["../src/bson.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnDemandDocument = void 0;
4
+ const bson_1 = require("../../../bson");
5
+ /** @internal */
6
+ class OnDemandDocument {
7
+ constructor(
8
+ /** BSON bytes, this document begins at offset */
9
+ bson,
10
+ /** The start of the document */
11
+ offset = 0,
12
+ /** If this is an embedded document, indicates if this was a BSON array */
13
+ isArray = false) {
14
+ this.bson = bson;
15
+ this.offset = offset;
16
+ this.isArray = isArray;
17
+ /**
18
+ * Maps JS strings to elements and jsValues for speeding up subsequent lookups.
19
+ * - If `false` then name does not exist in the BSON document
20
+ * - If `CachedBSONElement` instance name exists
21
+ * - If `cache[name].value == null` jsValue has not yet been parsed
22
+ * - Null/Undefined values do not get cached because they are zero-length values.
23
+ */
24
+ this.cache = Object.create(null);
25
+ /** Caches the index of elements that have been named */
26
+ this.indexFound = Object.create(null);
27
+ this.elements = (0, bson_1.parseToElementsToArray)(this.bson, offset);
28
+ }
29
+ /** Only supports basic latin strings */
30
+ isElementName(name, element) {
31
+ const nameLength = element[2 /* BSONElementOffset.nameLength */];
32
+ const nameOffset = element[1 /* BSONElementOffset.nameOffset */];
33
+ if (name.length !== nameLength)
34
+ return false;
35
+ for (let i = 0; i < name.length; i++) {
36
+ if (this.bson[nameOffset + i] !== name.charCodeAt(i))
37
+ return false;
38
+ }
39
+ return true;
40
+ }
41
+ /**
42
+ * Seeks into the elements array for an element matching the given name.
43
+ *
44
+ * @remarks
45
+ * Caching:
46
+ * - Caches the existence of a property making subsequent look ups for non-existent properties return immediately
47
+ * - Caches names mapped to elements to avoid reiterating the array and comparing the name again
48
+ * - Caches the index at which an element has been found to prevent rechecking against elements already determined to belong to another name
49
+ *
50
+ * @param name - a basic latin string name of a BSON element
51
+ * @returns
52
+ */
53
+ getElement(name) {
54
+ const cachedElement = this.cache[name];
55
+ if (cachedElement === false)
56
+ return null;
57
+ if (cachedElement != null) {
58
+ return cachedElement;
59
+ }
60
+ for (let index = 0; index < this.elements.length; index++) {
61
+ const element = this.elements[index];
62
+ // skip this element if it has already been associated with a name
63
+ if (!this.indexFound[index] && this.isElementName(name, element)) {
64
+ const cachedElement = { element, value: undefined };
65
+ this.cache[name] = cachedElement;
66
+ this.indexFound[index] = true;
67
+ return cachedElement;
68
+ }
69
+ }
70
+ this.cache[name] = false;
71
+ return null;
72
+ }
73
+ toJSValue(element, as) {
74
+ const type = element[0 /* BSONElementOffset.type */];
75
+ const offset = element[3 /* BSONElementOffset.offset */];
76
+ const length = element[4 /* BSONElementOffset.length */];
77
+ if (as !== type) {
78
+ return null;
79
+ }
80
+ switch (as) {
81
+ case bson_1.BSONType.null:
82
+ case bson_1.BSONType.undefined:
83
+ return null;
84
+ case bson_1.BSONType.double:
85
+ return (0, bson_1.getFloat64LE)(this.bson, offset);
86
+ case bson_1.BSONType.int:
87
+ return (0, bson_1.getInt32LE)(this.bson, offset);
88
+ case bson_1.BSONType.long:
89
+ return (0, bson_1.getBigInt64LE)(this.bson, offset);
90
+ case bson_1.BSONType.bool:
91
+ return Boolean(this.bson[offset]);
92
+ case bson_1.BSONType.objectId:
93
+ return new bson_1.ObjectId(this.bson.subarray(offset, offset + 12));
94
+ case bson_1.BSONType.timestamp:
95
+ return new bson_1.Timestamp((0, bson_1.getBigInt64LE)(this.bson, offset));
96
+ case bson_1.BSONType.string:
97
+ return (0, bson_1.toUTF8)(this.bson, offset + 4, offset + length - 1, false);
98
+ case bson_1.BSONType.binData: {
99
+ const totalBinarySize = (0, bson_1.getInt32LE)(this.bson, offset);
100
+ const subType = this.bson[offset + 4];
101
+ if (subType === 2) {
102
+ const subType2BinarySize = (0, bson_1.getInt32LE)(this.bson, offset + 1 + 4);
103
+ if (subType2BinarySize < 0)
104
+ throw new bson_1.BSONError('Negative binary type element size found for subtype 0x02');
105
+ if (subType2BinarySize > totalBinarySize - 4)
106
+ throw new bson_1.BSONError('Binary type with subtype 0x02 contains too long binary size');
107
+ if (subType2BinarySize < totalBinarySize - 4)
108
+ throw new bson_1.BSONError('Binary type with subtype 0x02 contains too short binary size');
109
+ return new bson_1.Binary(this.bson.subarray(offset + 1 + 4 + 4, offset + 1 + 4 + 4 + subType2BinarySize), 2);
110
+ }
111
+ return new bson_1.Binary(this.bson.subarray(offset + 1 + 4, offset + 1 + 4 + totalBinarySize), subType);
112
+ }
113
+ case bson_1.BSONType.date:
114
+ // Pretend this is correct.
115
+ return new Date(Number((0, bson_1.getBigInt64LE)(this.bson, offset)));
116
+ case bson_1.BSONType.object:
117
+ return new OnDemandDocument(this.bson, offset);
118
+ case bson_1.BSONType.array:
119
+ return new OnDemandDocument(this.bson, offset, true);
120
+ default:
121
+ throw new bson_1.BSONError(`Unsupported BSON type: ${as}`);
122
+ }
123
+ }
124
+ /**
125
+ * Checks for the existence of an element by name.
126
+ *
127
+ * @remarks
128
+ * Uses `getElement` with the expectation that will populate caches such that a `has` call
129
+ * followed by a `getElement` call will not repeat the cost paid by the first look up.
130
+ *
131
+ * @param name - element name
132
+ */
133
+ has(name) {
134
+ const cachedElement = this.cache[name];
135
+ if (cachedElement === false)
136
+ return false;
137
+ if (cachedElement != null)
138
+ return true;
139
+ return this.getElement(name) != null;
140
+ }
141
+ get(name, as, required) {
142
+ const element = this.getElement(name);
143
+ if (element == null) {
144
+ if (required === true) {
145
+ throw new bson_1.BSONError(`BSON element "${name}" is missing`);
146
+ }
147
+ else {
148
+ return null;
149
+ }
150
+ }
151
+ if (element.value == null) {
152
+ const value = this.toJSValue(element.element, as);
153
+ if (value == null) {
154
+ if (required === true) {
155
+ throw new bson_1.BSONError(`BSON element "${name}" is missing`);
156
+ }
157
+ else {
158
+ return null;
159
+ }
160
+ }
161
+ // It is important to never store null
162
+ element.value = value;
163
+ }
164
+ return element.value;
165
+ }
166
+ getNumber(name, required) {
167
+ const maybeBool = this.get(name, bson_1.BSONType.bool);
168
+ const bool = maybeBool == null ? null : maybeBool ? 1 : 0;
169
+ const maybeLong = this.get(name, bson_1.BSONType.long);
170
+ const long = maybeLong == null ? null : Number(maybeLong);
171
+ const result = bool ?? long ?? this.get(name, bson_1.BSONType.int) ?? this.get(name, bson_1.BSONType.double);
172
+ if (required === true && result == null) {
173
+ throw new bson_1.BSONError(`BSON element "${name}" is missing`);
174
+ }
175
+ return result;
176
+ }
177
+ /**
178
+ * Deserialize this object, DOES NOT cache result so avoid multiple invocations
179
+ * @param options - BSON deserialization options
180
+ */
181
+ toObject(options) {
182
+ return bson_1.BSON.deserialize(this.bson, {
183
+ ...options,
184
+ index: this.offset,
185
+ allowObjectSmallerThanBufferSize: true
186
+ });
187
+ }
188
+ /**
189
+ * Iterates through the elements of a document reviving them using the `as` BSONType.
190
+ *
191
+ * @param as - The type to revive all elements as
192
+ */
193
+ *valuesAs(as) {
194
+ if (!this.isArray) {
195
+ throw new bson_1.BSONError('Unexpected conversion of non-array value to array');
196
+ }
197
+ let counter = 0;
198
+ for (const element of this.elements) {
199
+ const value = this.toJSValue(element, as);
200
+ this.cache[counter] = { element, value };
201
+ yield value;
202
+ counter += 1;
203
+ }
204
+ }
205
+ }
206
+ exports.OnDemandDocument = OnDemandDocument;
207
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../src/cmap/wire_protocol/on_demand/document.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MonitorInterval = exports.RTTPinger = exports.Monitor = exports.ServerMonitoringMode = void 0;
3
+ exports.RTTSampler = exports.MonitorInterval = exports.RTTPinger = exports.Monitor = exports.ServerMonitoringMode = void 0;
4
4
  const timers_1 = require("timers");
5
5
  const bson_1 = require("../bson");
6
6
  const connect_1 = require("../cmap/connect");
@@ -19,8 +19,6 @@ const kServer = Symbol('server');
19
19
  const kMonitorId = Symbol('monitorId');
20
20
  /** @internal */
21
21
  const kCancellationToken = Symbol('cancellationToken');
22
- /** @internal */
23
- const kRoundTripTime = Symbol('roundTripTime');
24
22
  const STATE_IDLE = 'idle';
25
23
  const STATE_MONITORING = 'monitoring';
26
24
  const stateTransition = (0, utils_1.makeStateMachine)({
@@ -62,6 +60,7 @@ class Monitor extends mongo_types_1.TypedEventEmitter {
62
60
  });
63
61
  this.isRunningInFaasEnv = (0, client_metadata_1.getFAASEnv)() != null;
64
62
  this.mongoLogger = this[kServer].topology.client?.mongoLogger;
63
+ this.rttSampler = new RTTSampler(10);
65
64
  const cancellationToken = this[kCancellationToken];
66
65
  // TODO: refactor this to pull it directly from the pool, requires new ConnectionPool integration
67
66
  const connectOptions = {
@@ -130,6 +129,21 @@ class Monitor extends mongo_types_1.TypedEventEmitter {
130
129
  this.emit('close');
131
130
  stateTransition(this, common_1.STATE_CLOSED);
132
131
  }
132
+ get roundTripTime() {
133
+ return this.rttSampler.average();
134
+ }
135
+ get minRoundTripTime() {
136
+ return this.rttSampler.min();
137
+ }
138
+ get latestRtt() {
139
+ return this.rttSampler.last ?? 0; // FIXME: Check if this is acceptable
140
+ }
141
+ addRttSample(rtt) {
142
+ this.rttSampler.addSample(rtt);
143
+ }
144
+ clearRttSamples() {
145
+ this.rttSampler.clear();
146
+ }
133
147
  }
134
148
  exports.Monitor = Monitor;
135
149
  function resetMonitorState(monitor) {
@@ -140,6 +154,7 @@ function resetMonitorState(monitor) {
140
154
  monitor[kCancellationToken].emit('cancel');
141
155
  monitor.connection?.destroy();
142
156
  monitor.connection = null;
157
+ monitor.clearRttSamples();
143
158
  }
144
159
  function useStreamingProtocol(monitor, topologyVersion) {
145
160
  // If we have no topology version we always poll no matter
@@ -183,9 +198,12 @@ function checkServer(monitor, callback) {
183
198
  // Provide hello-style response document.
184
199
  hello.isWritablePrimary = hello[constants_1.LEGACY_HELLO_COMMAND];
185
200
  }
201
+ // NOTE: here we use the latestRtt as this measurement corresponds with the value
202
+ // obtained for this successful heartbeat
186
203
  const duration = isAwaitable && monitor.rttPinger
187
- ? monitor.rttPinger.roundTripTime
204
+ ? monitor.rttPinger.latestRtt ?? (0, utils_1.calculateDurationInMs)(start)
188
205
  : (0, utils_1.calculateDurationInMs)(start);
206
+ monitor.addRttSample(duration);
189
207
  monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor[kServer].topology.s.id, hello.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, hello, isAwaitable));
190
208
  if (isAwaitable) {
191
209
  // If we are using the streaming protocol then we immediately issue another 'started'
@@ -219,7 +237,7 @@ function checkServer(monitor, callback) {
219
237
  }
220
238
  : { socketTimeoutMS: connectTimeoutMS };
221
239
  if (isAwaitable && monitor.rttPinger == null) {
222
- monitor.rttPinger = new RTTPinger(monitor[kCancellationToken], Object.assign({ heartbeatFrequencyMS: monitor.options.heartbeatFrequencyMS }, monitor.connectOptions));
240
+ monitor.rttPinger = new RTTPinger(monitor);
223
241
  }
224
242
  // Record new start time before sending handshake
225
243
  start = (0, utils_1.now)();
@@ -258,8 +276,10 @@ function checkServer(monitor, callback) {
258
276
  connection.destroy();
259
277
  return;
260
278
  }
279
+ const duration = (0, utils_1.calculateDurationInMs)(start);
280
+ monitor.addRttSample(duration);
261
281
  monitor.connection = connection;
262
- monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor[kServer].topology.s.id, connection.hello?.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, (0, utils_1.calculateDurationInMs)(start), connection.hello, useStreamingProtocol(monitor, connection.hello?.topologyVersion)));
282
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor[kServer].topology.s.id, connection.hello?.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, connection.hello, useStreamingProtocol(monitor, connection.hello?.topologyVersion)));
263
283
  callback(undefined, connection.hello);
264
284
  }, error => {
265
285
  monitor.connection = null;
@@ -309,16 +329,20 @@ function makeTopologyVersion(tv) {
309
329
  }
310
330
  /** @internal */
311
331
  class RTTPinger {
312
- constructor(cancellationToken, options) {
332
+ constructor(monitor) {
313
333
  this.connection = undefined;
314
- this[kCancellationToken] = cancellationToken;
315
- this[kRoundTripTime] = 0;
334
+ this[kCancellationToken] = monitor[kCancellationToken];
316
335
  this.closed = false;
317
- const heartbeatFrequencyMS = options.heartbeatFrequencyMS;
318
- this[kMonitorId] = (0, timers_1.setTimeout)(() => measureRoundTripTime(this, options), heartbeatFrequencyMS);
336
+ this.monitor = monitor;
337
+ this.latestRtt = monitor.latestRtt;
338
+ const heartbeatFrequencyMS = monitor.options.heartbeatFrequencyMS;
339
+ this[kMonitorId] = (0, timers_1.setTimeout)(() => this.measureRoundTripTime(), heartbeatFrequencyMS);
319
340
  }
320
341
  get roundTripTime() {
321
- return this[kRoundTripTime];
342
+ return this.monitor.roundTripTime;
343
+ }
344
+ get minRoundTripTime() {
345
+ return this.monitor.minRoundTripTime;
322
346
  }
323
347
  close() {
324
348
  this.closed = true;
@@ -326,46 +350,45 @@ class RTTPinger {
326
350
  this.connection?.destroy();
327
351
  this.connection = undefined;
328
352
  }
329
- }
330
- exports.RTTPinger = RTTPinger;
331
- function measureRoundTripTime(rttPinger, options) {
332
- const start = (0, utils_1.now)();
333
- options.cancellationToken = rttPinger[kCancellationToken];
334
- const heartbeatFrequencyMS = options.heartbeatFrequencyMS;
335
- if (rttPinger.closed) {
336
- return;
337
- }
338
- function measureAndReschedule(conn) {
339
- if (rttPinger.closed) {
353
+ measureAndReschedule(start, conn) {
354
+ if (start == null) {
355
+ start = (0, utils_1.now)();
356
+ }
357
+ if (this.closed) {
340
358
  conn?.destroy();
341
359
  return;
342
360
  }
343
- if (rttPinger.connection == null) {
344
- rttPinger.connection = conn;
361
+ if (this.connection == null) {
362
+ this.connection = conn;
345
363
  }
346
- rttPinger[kRoundTripTime] = (0, utils_1.calculateDurationInMs)(start);
347
- rttPinger[kMonitorId] = (0, timers_1.setTimeout)(() => measureRoundTripTime(rttPinger, options), heartbeatFrequencyMS);
364
+ this.latestRtt = (0, utils_1.calculateDurationInMs)(start);
365
+ this[kMonitorId] = (0, timers_1.setTimeout)(() => this.measureRoundTripTime(), this.monitor.options.heartbeatFrequencyMS);
348
366
  }
349
- const connection = rttPinger.connection;
350
- if (connection == null) {
367
+ measureRoundTripTime() {
368
+ const start = (0, utils_1.now)();
369
+ if (this.closed) {
370
+ return;
371
+ }
372
+ const connection = this.connection;
373
+ if (connection == null) {
374
+ // eslint-disable-next-line github/no-then
375
+ (0, connect_1.connect)(this.monitor.connectOptions).then(connection => {
376
+ this.measureAndReschedule(start, connection);
377
+ }, () => {
378
+ this.connection = undefined;
379
+ });
380
+ return;
381
+ }
382
+ const commandName = connection.serverApi?.version || connection.helloOk ? 'hello' : constants_1.LEGACY_HELLO_COMMAND;
351
383
  // eslint-disable-next-line github/no-then
352
- (0, connect_1.connect)(options).then(connection => {
353
- measureAndReschedule(connection);
354
- }, () => {
355
- rttPinger.connection = undefined;
356
- rttPinger[kRoundTripTime] = 0;
384
+ connection.command((0, utils_1.ns)('admin.$cmd'), { [commandName]: 1 }, undefined).then(() => this.measureAndReschedule(), () => {
385
+ this.connection?.destroy();
386
+ this.connection = undefined;
387
+ return;
357
388
  });
358
- return;
359
389
  }
360
- const commandName = connection.serverApi?.version || connection.helloOk ? 'hello' : constants_1.LEGACY_HELLO_COMMAND;
361
- // eslint-disable-next-line github/no-then
362
- connection.command((0, utils_1.ns)('admin.$cmd'), { [commandName]: 1 }, undefined).then(() => measureAndReschedule(), () => {
363
- rttPinger.connection?.destroy();
364
- rttPinger.connection = undefined;
365
- rttPinger[kRoundTripTime] = 0;
366
- return;
367
- });
368
390
  }
391
+ exports.RTTPinger = RTTPinger;
369
392
  /**
370
393
  * @internal
371
394
  */
@@ -459,4 +482,74 @@ class MonitorInterval {
459
482
  }
460
483
  }
461
484
  exports.MonitorInterval = MonitorInterval;
485
+ /** @internal
486
+ * This class implements the RTT sampling logic specified for [CSOT](https://github.com/mongodb/specifications/blob/bbb335e60cd7ea1e0f7cd9a9443cb95fc9d3b64d/source/client-side-operations-timeout/client-side-operations-timeout.md#drivers-use-minimum-rtt-to-short-circuit-operations)
487
+ *
488
+ * This is implemented as a [circular buffer](https://en.wikipedia.org/wiki/Circular_buffer) keeping
489
+ * the most recent `windowSize` samples
490
+ * */
491
+ class RTTSampler {
492
+ constructor(windowSize = 10) {
493
+ this.rttSamples = new Float64Array(windowSize);
494
+ this.length = 0;
495
+ this.writeIndex = 0;
496
+ }
497
+ /**
498
+ * Adds an rtt sample to the end of the circular buffer
499
+ * When `windowSize` samples have been collected, `addSample` overwrites the least recently added
500
+ * sample
501
+ */
502
+ addSample(sample) {
503
+ this.rttSamples[this.writeIndex++] = sample;
504
+ if (this.length < this.rttSamples.length) {
505
+ this.length++;
506
+ }
507
+ this.writeIndex %= this.rttSamples.length;
508
+ }
509
+ /**
510
+ * When \< 2 samples have been collected, returns 0
511
+ * Otherwise computes the minimum value samples contained in the buffer
512
+ */
513
+ min() {
514
+ if (this.length < 2)
515
+ return 0;
516
+ let min = this.rttSamples[0];
517
+ for (let i = 1; i < this.length; i++) {
518
+ if (this.rttSamples[i] < min)
519
+ min = this.rttSamples[i];
520
+ }
521
+ return min;
522
+ }
523
+ /**
524
+ * Returns mean of samples contained in the buffer
525
+ */
526
+ average() {
527
+ if (this.length === 0)
528
+ return 0;
529
+ let sum = 0;
530
+ for (let i = 0; i < this.length; i++) {
531
+ sum += this.rttSamples[i];
532
+ }
533
+ return sum / this.length;
534
+ }
535
+ /**
536
+ * Returns most recently inserted element in the buffer
537
+ * Returns null if the buffer is empty
538
+ * */
539
+ get last() {
540
+ if (this.length === 0)
541
+ return null;
542
+ return this.rttSamples[this.writeIndex === 0 ? this.length - 1 : this.writeIndex - 1];
543
+ }
544
+ /**
545
+ * Clear the buffer
546
+ * NOTE: this does not overwrite the data held in the internal array, just the pointers into
547
+ * this array
548
+ */
549
+ clear() {
550
+ this.length = 0;
551
+ this.writeIndex = 0;
552
+ }
553
+ }
554
+ exports.RTTSampler = RTTSampler;
462
555
  //# sourceMappingURL=monitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/sdam/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/sdam/monitor.ts"],"names":[],"mappings":"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"}