@mark1russell7/service 0.5.12 → 0.5.14
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/README.md +95 -1
- package/build/{builder-DawJhq4p.d.ts → builder-CsSO4LzB.d.ts} +2 -2
- package/build/{core-C2wnF4mg.d.ts → core-D8iXeoE4.d.ts} +54 -4
- package/build/dial-DJolDmOK.d.ts +16 -0
- package/build/grpc.d.ts +307 -0
- package/build/grpc.js +859 -0
- package/build/grpc.js.map +1 -0
- package/build/http-client.d.ts +248 -0
- package/build/http-client.js +612 -0
- package/build/http-client.js.map +1 -0
- package/build/http.d.ts +1 -1
- package/build/index.d.ts +5 -149
- package/build/index.js +119 -3
- package/build/index.js.map +1 -1
- package/build/{lifecycle-fgYfxrHK.d.ts → lifecycle-CMedxaQd.d.ts} +60 -2
- package/build/{machine-Czfb6fV4.js → machine-DZMb_QEU.js} +204 -8
- package/build/machine-DZMb_QEU.js.map +1 -0
- package/build/mongodb.d.ts +307 -0
- package/build/mongodb.js +688 -0
- package/build/mongodb.js.map +1 -0
- package/build/pg.d.ts +2 -2
- package/build/pg.js +30 -33
- package/build/pg.js.map +1 -1
- package/build/queue-CndiCVaY.d.ts +150 -0
- package/build/rabbitmq.d.ts +294 -0
- package/build/rabbitmq.js +748 -0
- package/build/rabbitmq.js.map +1 -0
- package/build/redis.d.ts +4 -10
- package/build/redis.js +6 -38
- package/build/redis.js.map +1 -1
- package/build/testing.d.ts +2 -2
- package/build/testing.js +1 -0
- package/build/testing.js.map +1 -1
- package/build/websocket.d.ts +275 -0
- package/build/websocket.js +780 -0
- package/build/websocket.js.map +1 -0
- package/package.json +38 -1
- package/build/machine-Czfb6fV4.js.map +0 -1
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { jt as Operation, nt as Poll } from "./lifecycle-CMedxaQd.js";
|
|
2
|
+
import { C as MANIFESTATIONS, D as firstDetector, E as Situation, O as unwatched, S as Detector, T as Meeting, _ as Sent, a as ClientKnobs, c as ClientSpec, d as Factory, g as SendOptions, h as STARTING_POLL, i as ClientJoin, l as ClientStep, n as CheckOptions, o as ClientOptions, r as Client, s as ClientSocket, t as Attempt, u as DialFn, w as Manifestation } from "./core-D8iXeoE4.js";
|
|
3
|
+
import { t as Judge } from "./dial-DJolDmOK.js";
|
|
4
|
+
import { Extent, Quantity } from "@mark1russell7/quantity";
|
|
5
|
+
import { Machine } from "@mark1russell7/algebra";
|
|
6
|
+
//#region src/mongodb/connection.d.ts
|
|
7
|
+
/** A document is a BSON document as the driver gives it: a command, or the reply of the server. */
|
|
8
|
+
type MongoDocument = Record<string, unknown>;
|
|
9
|
+
/** A database is the part of a `Db` of the driver that the wrapper uses: `command` sends one command. */
|
|
10
|
+
interface MongoDb {
|
|
11
|
+
/** This method sends a command. Its signal ends the command, and an abort during the read closes the connection. */
|
|
12
|
+
command(document: MongoDocument, options?: {
|
|
13
|
+
readonly signal?: AbortSignal | undefined;
|
|
14
|
+
}): Promise<MongoDocument>;
|
|
15
|
+
}
|
|
16
|
+
/** A server is the part of a `ServerDescription` that the wrapper reads: its type, for example `RSPrimary`. */
|
|
17
|
+
interface MongoServer {
|
|
18
|
+
readonly type: string;
|
|
19
|
+
}
|
|
20
|
+
/** These are the events of the driver that the wrapper listens to, by name, with the fields that it reads. */
|
|
21
|
+
interface MongoEvents {
|
|
22
|
+
/** The view of the topology changed. A writable server is a primary, a standalone, a mongos or a load balancer. */
|
|
23
|
+
topologyDescriptionChanged: {
|
|
24
|
+
readonly newDescription: {
|
|
25
|
+
readonly servers: ReadonlyMap<string, MongoServer>;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
/** A connection of the pool finished its handshake. `connectionId` is the id that the pool gives. */
|
|
29
|
+
connectionReady: {
|
|
30
|
+
readonly connectionId: number | string;
|
|
31
|
+
readonly address: string;
|
|
32
|
+
};
|
|
33
|
+
/** A command went to a connection. `serverConnectionId` is the id that the server gave in its hello. */
|
|
34
|
+
commandStarted: {
|
|
35
|
+
readonly connectionId?: number | string | undefined;
|
|
36
|
+
readonly address: string;
|
|
37
|
+
readonly serverConnectionId?: bigint | number | null | undefined;
|
|
38
|
+
};
|
|
39
|
+
/** The pool of a server closed its connections, for example at the write-off of the server. */
|
|
40
|
+
connectionPoolCleared: {
|
|
41
|
+
readonly address: string;
|
|
42
|
+
readonly interruptInUseConnections?: boolean | undefined;
|
|
43
|
+
};
|
|
44
|
+
/** A hello of the monitor failed. `connectionId` is the address of the server. */
|
|
45
|
+
serverHeartbeatFailed: {
|
|
46
|
+
readonly connectionId: string;
|
|
47
|
+
readonly failure: Error;
|
|
48
|
+
};
|
|
49
|
+
/** An error of the topology. In Node, an error with no listener throws. */
|
|
50
|
+
error: Error;
|
|
51
|
+
}
|
|
52
|
+
/** An event name is a name of `MongoEvents`. */
|
|
53
|
+
type MongoEventName = keyof MongoEvents;
|
|
54
|
+
/**
|
|
55
|
+
* A driver client is the part of a `MongoClient` that the wrapper uses. A `MongoClient` of the
|
|
56
|
+
* driver 7 has each part. A fake for tests has them too. Thus the package depends on no type of the driver.
|
|
57
|
+
*/
|
|
58
|
+
interface MongoDriverClient {
|
|
59
|
+
/** This method opens the topology and waits for a server to select. A failure closes the topology, and a later command opens it again. */
|
|
60
|
+
connect(): Promise<unknown>;
|
|
61
|
+
/** This method fails the commands in flight, sends `endSessions` to a selectable server, and closes the topology. */
|
|
62
|
+
close(): Promise<void>;
|
|
63
|
+
db(name: string): MongoDb;
|
|
64
|
+
on<E extends MongoEventName>(event: E, listener: (payload: MongoEvents[E]) => void): unknown;
|
|
65
|
+
off<E extends MongoEventName>(event: E, listener: (payload: MongoEvents[E]) => void): unknown;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* These are the options that the wrapper gives `MongoClient`. Each one comes from the declaration.
|
|
69
|
+
* The wrapper sets each option that has an effect on a timer, thus no default of the driver decides
|
|
70
|
+
* one. A knob of the driver at 0 has no timer. The wrapper writes "infinite" as 0, and it refuses a bound of 0.
|
|
71
|
+
*/
|
|
72
|
+
interface MongoDriverOptions {
|
|
73
|
+
/** The server shows this name in `$currentOp` and in its log, thus the prober can join on it too. */
|
|
74
|
+
readonly appName: string;
|
|
75
|
+
readonly replicaSet?: string | undefined;
|
|
76
|
+
readonly auth?: {
|
|
77
|
+
readonly username: string;
|
|
78
|
+
readonly password: string;
|
|
79
|
+
} | undefined;
|
|
80
|
+
readonly authSource?: string | undefined;
|
|
81
|
+
readonly maxPoolSize: number;
|
|
82
|
+
readonly minPoolSize: number;
|
|
83
|
+
/** This time bounds the TCP connect and the handshake of each connection, and of the monitor. */
|
|
84
|
+
readonly connectTimeoutMS: number;
|
|
85
|
+
/** This time bounds a read on a connection that has a command in flight. At its end, the driver closes the connection. */
|
|
86
|
+
readonly socketTimeoutMS: number;
|
|
87
|
+
/** This time bounds the wait for a server to select, for each command and for `connect`. */
|
|
88
|
+
readonly serverSelectionTimeoutMS: number;
|
|
89
|
+
/** This time is the period of the monitor, and the wait of its streaming hello. */
|
|
90
|
+
readonly heartbeatFrequencyMS: number;
|
|
91
|
+
/** This time bounds a checkout from a full pool. 0 is no bound. */
|
|
92
|
+
readonly waitQueueTimeoutMS: number;
|
|
93
|
+
/** A checkout ends an idle connection older than this time. 0 is no limit. The driver has no timer for it. */
|
|
94
|
+
readonly maxIdleTimeMS: number;
|
|
95
|
+
/** This time is the idle time of TCP keepalive. The driver always turns keepalive on. Node truncates the time to whole seconds. */
|
|
96
|
+
readonly keepAliveInitialDelay: number;
|
|
97
|
+
/** The monitor streams its hello, as in the cells. Thus a silent server is written off at `connectTimeoutMS + heartbeatFrequencyMS`. */
|
|
98
|
+
readonly serverMonitoringMode: "stream";
|
|
99
|
+
/** The driver does not send a command again by itself. The core sends again only an idempotent operation. */
|
|
100
|
+
readonly retryReads: false;
|
|
101
|
+
readonly retryWrites: false;
|
|
102
|
+
/** The driver emits `commandStarted`, which gives the id of the server for each connection (D1). */
|
|
103
|
+
readonly monitorCommands: true;
|
|
104
|
+
}
|
|
105
|
+
/** These are the arguments of `new MongoClient(url, options)`. The URL gives only the hosts. */
|
|
106
|
+
interface MongoConnectOptions {
|
|
107
|
+
readonly url: string;
|
|
108
|
+
readonly options: MongoDriverOptions;
|
|
109
|
+
}
|
|
110
|
+
/** A driver factory makes the client of the driver from its options. */
|
|
111
|
+
type MongoFactory = Factory<MongoConnectOptions, MongoDriverClient>;
|
|
112
|
+
/**
|
|
113
|
+
* This factory makes a `MongoClient`. It loads the driver only when a client connects, thus a
|
|
114
|
+
* service that does not use MongoDB does not need it. The specifier is a value, thus the package
|
|
115
|
+
* needs no types of the driver. The driver gives `MongoClient` as a named export.
|
|
116
|
+
*/
|
|
117
|
+
export declare const nodeMongo: MongoFactory;
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region src/mongodb/client.d.ts
|
|
120
|
+
/**
|
|
121
|
+
* These are the knobs of the client, each a time, by the names of the ordering law where the law
|
|
122
|
+
* has them. The runtime has no defaults, thus each knob is necessary. A bound that nobody gives is
|
|
123
|
+
* "infinite", not zero. `MONGO_STARTING_KNOBS` gives a declaration from the cells of S1. The knobs
|
|
124
|
+
* that each client has come from the core.
|
|
125
|
+
*/
|
|
126
|
+
interface MongoKnobs extends ClientKnobs {
|
|
127
|
+
/** This time bounds the TCP connect and the handshake of each connection (`connectTimeoutMS`). It also bounds the wait of the startup. */
|
|
128
|
+
readonly connect_bound: Quantity;
|
|
129
|
+
/** This time bounds a read of a command in flight (`socketTimeoutMS`). At its end, the driver closes the connection. */
|
|
130
|
+
readonly request_timeout: Quantity;
|
|
131
|
+
/**
|
|
132
|
+
* This time is the deadline of each command on the server (`maxTimeMS`). The wrapper writes it in
|
|
133
|
+
* each command. The server then ends the command with error 50, a certain outcome. "infinite" sends no deadline.
|
|
134
|
+
*/
|
|
135
|
+
readonly statement_timeout: Extent;
|
|
136
|
+
/** This time is the period of the monitor (`heartbeatFrequencyMS`). The driver takes 500 ms at least. */
|
|
137
|
+
readonly heartbeat_interval: Quantity;
|
|
138
|
+
/**
|
|
139
|
+
* This time bounds the wait for a writable server (`serverSelectionTimeoutMS`). A command waits
|
|
140
|
+
* through a failover in this time, thus it is the retry window of the client (O29).
|
|
141
|
+
*/
|
|
142
|
+
readonly client_retry_window: Quantity;
|
|
143
|
+
/** This time bounds a checkout from a full pool (`waitQueueTimeoutMS`). */
|
|
144
|
+
readonly checkout_timeout: Extent;
|
|
145
|
+
/** A checkout ends an idle connection older than this time (`maxIdleTimeMS`). The driver checks it only at a checkout. */
|
|
146
|
+
readonly pool_idle_expiry: Extent;
|
|
147
|
+
/** This time is the idle time of TCP keepalive (`keepAliveInitialDelay`), in whole seconds. The driver always turns keepalive on. */
|
|
148
|
+
readonly keepalive_idle: Extent;
|
|
149
|
+
/** The driver has no age for a connection, thus this knob must be "infinite". */
|
|
150
|
+
readonly max_connection_age: Extent;
|
|
151
|
+
/** This time bounds the close of the client at the shutdown. */
|
|
152
|
+
readonly close_bound: Quantity;
|
|
153
|
+
}
|
|
154
|
+
/** A seed is one more host that the driver connects to first, for example a member of a replica set. */
|
|
155
|
+
interface MongoSeed {
|
|
156
|
+
readonly host: string;
|
|
157
|
+
readonly port: number;
|
|
158
|
+
}
|
|
159
|
+
/** A MongoDB client spec is the declaration of one MongoDB client: where it connects, its pool, and its knobs. */
|
|
160
|
+
interface MongoClientSpec extends ClientSpec<MongoKnobs> {
|
|
161
|
+
/** This name is the database of the commands of the client. */
|
|
162
|
+
readonly database: string;
|
|
163
|
+
readonly username?: string | undefined;
|
|
164
|
+
/** This name is the database of the user. The default of the driver is `database`, or `admin`. */
|
|
165
|
+
readonly authSource?: string | undefined;
|
|
166
|
+
readonly replicaSet?: string | undefined;
|
|
167
|
+
/** These hosts are more seeds of the topology, after `host` and `port`. */
|
|
168
|
+
readonly seeds?: readonly MongoSeed[] | undefined;
|
|
169
|
+
/** These counts are the sizes of the pool of each server: at most `max` connections, and `min` that the driver keeps open. */
|
|
170
|
+
readonly pool: {
|
|
171
|
+
readonly max: number;
|
|
172
|
+
readonly min: number;
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* These operations are the commands of the service, by name, with their idempotency. A command
|
|
176
|
+
* name does not tell if a command changes a state, for example an `aggregate` with `$merge`. Thus
|
|
177
|
+
* the client sends again only a command that this table names.
|
|
178
|
+
*/
|
|
179
|
+
readonly operations?: Readonly<Record<string, Operation>> | undefined;
|
|
180
|
+
}
|
|
181
|
+
/** These options make a client. Without them, it uses the driver, the real clock, and a dial with a hello. */
|
|
182
|
+
type MongoClientOptions = ClientOptions<MongoFactory>;
|
|
183
|
+
/**
|
|
184
|
+
* A join is one connection of the pool, when its handshake is done (D1, D2). The prober joins its
|
|
185
|
+
* kernel records to the server's view of the connection through it. The driver gives no socket,
|
|
186
|
+
* thus the local address and port are null. The server's view is the connection id of its hello.
|
|
187
|
+
*/
|
|
188
|
+
interface MongoJoin extends ClientJoin {
|
|
189
|
+
/** This text is the address of the server, as `host:port`. */
|
|
190
|
+
readonly address: string;
|
|
191
|
+
/** This number is the connection id that the server gave, from the first command on the connection. Null until that command. */
|
|
192
|
+
readonly serverConnectionId: number | null;
|
|
193
|
+
}
|
|
194
|
+
/** The steps that the MongoDB client gives a check for. A pool of the driver has no checkout that the wrapper can use. */
|
|
195
|
+
type MongoStep = ClientStep;
|
|
196
|
+
/** A MongoDB client is a dependency of a service: its declaration, its handle, its checks and its commands. */
|
|
197
|
+
interface MongoClient extends Client<MongoStep, MongoJoin> {
|
|
198
|
+
/** This text is the state of the client, as `MONGO_CLIENT_MACHINE` names it. */
|
|
199
|
+
readonly status: string;
|
|
200
|
+
/**
|
|
201
|
+
* This method sends a command to the database of the spec, and gives its outcome in three values.
|
|
202
|
+
* `operation` names the command in the table of operations. The client sends again only an
|
|
203
|
+
* idempotent operation, one time at most, after an outcome that is not certain.
|
|
204
|
+
*/
|
|
205
|
+
command(operation: string, document: MongoDocument, options?: SendOptions): Promise<Sent<MongoDocument>>;
|
|
206
|
+
}
|
|
207
|
+
/** This function gives the problems of a spec: the knobs that the driver cannot use. */
|
|
208
|
+
export declare const specProblems: (name: string, spec: MongoClientSpec) => string[];
|
|
209
|
+
/** This function gives the arguments of `new MongoClient` from a spec. Each timer of the driver comes from the declaration. */
|
|
210
|
+
export declare const mongoOptions: (name: string, spec: MongoClientSpec) => MongoConnectOptions;
|
|
211
|
+
/**
|
|
212
|
+
* The bytes of an OP_MSG with the command `{ hello: 1, $db: "admin" }`. They are a header of 16
|
|
213
|
+
* bytes with the op code 2013, the flags, a section of kind 0, and the BSON document. The server answers a
|
|
214
|
+
* hello before the authentication, thus the dial needs no password.
|
|
215
|
+
*/
|
|
216
|
+
export declare const HELLO: Uint8Array;
|
|
217
|
+
/**
|
|
218
|
+
* This judge reads the answer to the hello. It waits for the whole message. The message must be an
|
|
219
|
+
* OP_MSG with a section of kind 0, and its document must have `ok` 1.
|
|
220
|
+
*/
|
|
221
|
+
export declare const helloJudge: Judge;
|
|
222
|
+
/** This dial function opens a TCP connection, sends a hello, and waits for its reply. The server opens no session for it. */
|
|
223
|
+
export declare const helloCommandDial: DialFn;
|
|
224
|
+
/**
|
|
225
|
+
* This function gives the outcome of a failure of the driver. The driver names each error class,
|
|
226
|
+
* thus the wrapper reads the name, and depends on no class of the driver:
|
|
227
|
+
* - A failure before the command left the client is certain: it did not apply.
|
|
228
|
+
* - An error of the server is certain, except an interruption, which can leave a part applied.
|
|
229
|
+
* - A write concern error, a network error after the handshake, and a timeout of the socket are not certain.
|
|
230
|
+
*/
|
|
231
|
+
export declare const failureOutcome: (error: unknown) => Attempt<never>;
|
|
232
|
+
/**
|
|
233
|
+
* This function makes a MongoDB client, a dependency of a service over a `MongoClient`.
|
|
234
|
+
* - It sets each timer of the driver from the declaration, and it turns off the retries of the driver.
|
|
235
|
+
* The client sends again only an idempotent operation of its table.
|
|
236
|
+
* - It tells the outcome of a command in three values, from the name of each error of the driver.
|
|
237
|
+
* - It writes the deadline of the server in each command (`maxTimeMS`), thus the server ends a slow command first (O07).
|
|
238
|
+
* - It gives the state from the view of the topology: ready while a server is writable.
|
|
239
|
+
* - It listens to each error of the driver. In Node, an error with no listener throws, and library code does not end the process (A5).
|
|
240
|
+
* - It records the connection id of the server for each connection of the pool (D1).
|
|
241
|
+
*
|
|
242
|
+
* The outcomes, the second try, the commands in flight, the bounded close and the checks come from
|
|
243
|
+
* the core of the clients. This entry gives what the driver does in its own way.
|
|
244
|
+
*/
|
|
245
|
+
export declare const mongoClient: (name: string, spec: MongoClientSpec, options?: MongoClientOptions) => MongoClient;
|
|
246
|
+
//#endregion
|
|
247
|
+
//#region src/mongodb/machine.d.ts
|
|
248
|
+
/**
|
|
249
|
+
* The MongoDB client of the service as a `mark1russell7.machine/1` document. It is the topology as
|
|
250
|
+
* the wrapper sees it, not one connection: the document `mongodb-node` of `@mark1russell7/machines`
|
|
251
|
+
* gives the monitor and each connection. The state is the view of the topology:
|
|
252
|
+
* - `ready`: a server is writable: a primary, a standalone, a mongos, or a load balancer.
|
|
253
|
+
* - `failing`: no server is writable, or the startup found none in `connect_bound`. The monitor
|
|
254
|
+
* goes on, and a command waits for a writable server in `client_retry_window`.
|
|
255
|
+
*
|
|
256
|
+
* A connection that closes and a pool that the driver clears do not change the state by themselves.
|
|
257
|
+
* The write-off of a server changes the view of the topology, and that changes the state. A test
|
|
258
|
+
* records the transitions of the client and replays them against this document.
|
|
259
|
+
*/
|
|
260
|
+
export declare const MONGO_CLIENT_MACHINE: Machine;
|
|
261
|
+
//#endregion
|
|
262
|
+
//#region src/mongodb/meets.d.ts
|
|
263
|
+
/**
|
|
264
|
+
* This function gives the manifestations that a MongoDB client can meet, and the detectors of each,
|
|
265
|
+
* from its knobs. The cells of S1 measured them on the driver 7.7.0 against mongod 9.0.4:
|
|
266
|
+
* - The monitor writes off a silent server at `connectTimeoutMS + heartbeatFrequencyMS` after its last
|
|
267
|
+
* answer: 40.002 s at the defaults, and 7 s for 5 s + 2 s. The driver then clears the pool, and
|
|
268
|
+
* fails each command in flight. With `connectTimeoutMS` 0, nothing found a freeze in 60 s.
|
|
269
|
+
* - At `tcp_retries2 = 5`, the kernel gave up at 12.936 s.
|
|
270
|
+
* - A `keepAliveInitialDelay` of 27 s ended an idle stream at 37.255 s.
|
|
271
|
+
*
|
|
272
|
+
* The monitor tests the server, not each connection of the pool. Thus a write-off finds a failure of
|
|
273
|
+
* the server in flight and idle, and a failure of one connection waits for its own detector.
|
|
274
|
+
*/
|
|
275
|
+
export declare const mongoMeetings: (name: string, knobs: MongoKnobs) => Meeting[];
|
|
276
|
+
//#endregion
|
|
277
|
+
//#region src/mongodb/starting.d.ts
|
|
278
|
+
/**
|
|
279
|
+
* This poll is the poll of the checks that `MONGO_STARTING_KNOBS` fits. It is `STARTING_POLL` of
|
|
280
|
+
* the core: each 5 s with a jitter of 20 %, and a timeout of 4 s (B6, O12). The poll does not depend on the driver.
|
|
281
|
+
*/
|
|
282
|
+
export declare const MONGO_STARTING_POLL: Poll;
|
|
283
|
+
/**
|
|
284
|
+
* These knobs are a declaration to start from, from what the cells of S1 measured on the driver
|
|
285
|
+
* 7.7.0 on Node 24.21.0 against mongod 9.0.4. The runtime has no defaults: a service gives these
|
|
286
|
+
* knobs, or its own. Each value holds the borders that the cells measured:
|
|
287
|
+
* - `connect_bound` 5 s and `heartbeat_interval` 2 s: the write-off of a silent server came 7 s after
|
|
288
|
+
* its last answer, and the cells T01.border-off.75 and .76 held. At the defaults it came at 40.002 s.
|
|
289
|
+
* - `request_timeout` 9.5 s: in the slowest poll of 10 s (O13). At the defaults the driver has no
|
|
290
|
+
* bound on a read, and only the write-off ends the command.
|
|
291
|
+
* - `statement_timeout` 9 s: below `request_timeout`, thus the server ends a slow command first,
|
|
292
|
+
* with error 50 (O07).
|
|
293
|
+
* - `client_retry_window` 30 s: after an election, the first write took 17 s to 18 s, and the band
|
|
294
|
+
* ended at 26.58 s (T11.defaults.10). The default of the driver, 30 s, holds that band.
|
|
295
|
+
* - `checkout_timeout` 5 s: a full pool fails a checkout in a startup budget. At the defaults the wait has no bound.
|
|
296
|
+
* - `pool_idle_expiry` 10 s: no cell measured it. It is the bound of O03 and O01 that the pg client
|
|
297
|
+
* uses: below a router that forgets an idle flow at 12 s. The driver applies it at the next checkout.
|
|
298
|
+
* - `keepalive_idle` 30 s: the driver always turns keepalive on, at 120 s by default. This value
|
|
299
|
+
* refreshes a held idle connection through the NAT forms of the cells (240 s and 350 s).
|
|
300
|
+
* - `max_connection_age` "infinite": the driver has no age for a connection.
|
|
301
|
+
* - `close_bound` 2 s: behind a black hole the close of the driver waits for `endSessions`.
|
|
302
|
+
* - `retrans_giveup_time` 924.6 s: the give-up of Linux at `tcp_retries2 = 15`. The cells measured 12.936 s at `tcp_retries2 = 5`.
|
|
303
|
+
*/
|
|
304
|
+
export declare const MONGO_STARTING_KNOBS: MongoKnobs;
|
|
305
|
+
//#endregion
|
|
306
|
+
export { type Attempt, type CheckOptions, type Client, type ClientJoin, type ClientKnobs, type ClientOptions, type ClientSocket, type ClientSpec, type ClientStep, type Detector, type DialFn, type Factory, MANIFESTATIONS, type Manifestation, type Meeting, type MongoClient, type MongoClientOptions, type MongoClientSpec, type MongoConnectOptions, type MongoDb, type MongoDocument, type MongoDriverClient, type MongoDriverOptions, type MongoEventName, type MongoEvents, type MongoFactory, type MongoJoin, type MongoKnobs, type MongoSeed, type MongoServer, type MongoStep, STARTING_POLL, type SendOptions, type Sent, type Situation, firstDetector, unwatched };
|
|
307
|
+
//# sourceMappingURL=mongodb.d.ts.map
|