camusdb 0.6.0 → 0.8.0
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 +250 -0
- package/dist/client.d.ts +73 -39
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +158 -169
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/endpoint-pool.d.ts +8 -0
- package/dist/endpoint-pool.d.ts.map +1 -1
- package/dist/endpoint-pool.js +25 -0
- package/dist/endpoint-pool.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/node-stats.d.ts +113 -0
- package/dist/node-stats.d.ts.map +1 -0
- package/dist/node-stats.js +90 -0
- package/dist/node-stats.js.map +1 -0
- package/dist/options.d.ts +10 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +1 -0
- package/dist/options.js.map +1 -1
- package/dist/pipeline.d.ts +136 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +375 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/prepared/auto-prepare.d.ts +51 -0
- package/dist/prepared/auto-prepare.d.ts.map +1 -0
- package/dist/prepared/auto-prepare.js +150 -0
- package/dist/prepared/auto-prepare.js.map +1 -0
- package/dist/prepared/policy.d.ts +7 -0
- package/dist/prepared/policy.d.ts.map +1 -1
- package/dist/prepared/policy.js +16 -0
- package/dist/prepared/policy.js.map +1 -1
- package/dist/query-stream.d.ts +9 -1
- package/dist/query-stream.d.ts.map +1 -1
- package/dist/query-stream.js +20 -2
- package/dist/query-stream.js.map +1 -1
- package/dist/retry.d.ts +8 -0
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +12 -1
- package/dist/retry.js.map +1 -1
- package/dist/sql-syntax.d.ts +6 -0
- package/dist/sql-syntax.d.ts.map +1 -1
- package/dist/sql-syntax.js +8 -0
- package/dist/sql-syntax.js.map +1 -1
- package/dist/statements.d.ts +14 -0
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +45 -3
- package/dist/statements.js.map +1 -1
- package/dist/telemetry.d.ts +199 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +423 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/transaction.d.ts +60 -5
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +124 -24
- package/dist/transaction.js.map +1 -1
- package/dist/transport/authenticating-transport.d.ts +9 -1
- package/dist/transport/authenticating-transport.d.ts.map +1 -1
- package/dist/transport/authenticating-transport.js +13 -0
- package/dist/transport/authenticating-transport.js.map +1 -1
- package/dist/transport/grpc/batch-frames.d.ts +23 -5
- package/dist/transport/grpc/batch-frames.d.ts.map +1 -1
- package/dist/transport/grpc/batch-frames.js +29 -8
- package/dist/transport/grpc/batch-frames.js.map +1 -1
- package/dist/transport/grpc/batcher.d.ts +69 -5
- package/dist/transport/grpc/batcher.d.ts.map +1 -1
- package/dist/transport/grpc/batcher.js +217 -10
- package/dist/transport/grpc/batcher.js.map +1 -1
- package/dist/transport/grpc/grpc-transport.d.ts +35 -1
- package/dist/transport/grpc/grpc-transport.d.ts.map +1 -1
- package/dist/transport/grpc/grpc-transport.js +193 -7
- package/dist/transport/grpc/grpc-transport.js.map +1 -1
- package/dist/transport/grpc/messages.d.ts +15 -0
- package/dist/transport/grpc/messages.d.ts.map +1 -1
- package/dist/transport/grpc/messages.js +9 -0
- package/dist/transport/grpc/messages.js.map +1 -1
- package/dist/transport/rest-transport.d.ts +9 -1
- package/dist/transport/rest-transport.d.ts.map +1 -1
- package/dist/transport/rest-transport.js +24 -0
- package/dist/transport/rest-transport.js.map +1 -1
- package/dist/transport/sequential-pipeline.d.ts +21 -0
- package/dist/transport/sequential-pipeline.d.ts.map +1 -0
- package/dist/transport/sequential-pipeline.js +119 -0
- package/dist/transport/sequential-pipeline.js.map +1 -0
- package/dist/transport/transport.d.ts +94 -0
- package/dist/transport/transport.d.ts.map +1 -1
- package/dist/transport/transport.js +10 -0
- package/dist/transport/transport.js.map +1 -1
- package/package.json +10 -4
- package/proto/camus_sql.proto +114 -0
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { GrpcBatchOptions } from '../../config.js';
|
|
8
8
|
import type { GrpcBatchExecuteRequest, GrpcBatchExecuteResponse, GrpcResultRow, GrpcResultSchema, GrpcSqlRequest, GrpcTxnHandle } from './messages.js';
|
|
9
|
+
import { GrpcBatchStatementKind } from './messages.js';
|
|
9
10
|
import type { CamusCacheMetadata } from '../../cache.js';
|
|
10
11
|
import type { CamusRoutingAdvice } from '../../routing/advice.js';
|
|
11
12
|
/** The hybrid-logical-clock token a reply carried. All three components are load-bearing. */
|
|
@@ -51,18 +52,40 @@ export declare class PreparedStatementStaleError extends Error {
|
|
|
51
52
|
readonly name = "PreparedStatementStaleError";
|
|
52
53
|
constructor();
|
|
53
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* One operation of a pipeline handed to `enqueuePipeline`, before the batcher gives it a request
|
|
57
|
+
* id. `expectedTransportId` is the stream that a prepared execution's handle lives on, as for a
|
|
58
|
+
* lone operation.
|
|
59
|
+
*/
|
|
60
|
+
export interface PipelineOp {
|
|
61
|
+
readonly kind: GrpcBatchStatementKind;
|
|
62
|
+
readonly request: GrpcSqlRequest;
|
|
63
|
+
readonly expectedTransportId?: number | undefined;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Raised on every operation of a pipeline that the batcher refused to write as one frame, before
|
|
67
|
+
* any of it was written. The causes are a server that announced a contract version below
|
|
68
|
+
* `FRAME_PIPELINE_VERSION`, frames that are off, or a pipeline that does not fit one frame.
|
|
69
|
+
* Nothing ran, so the caller can run the same operations one exchange at a time.
|
|
70
|
+
*/
|
|
71
|
+
export declare class PipelineUnsupportedError extends Error {
|
|
72
|
+
readonly name = "PipelineUnsupportedError";
|
|
73
|
+
readonly reason: string;
|
|
74
|
+
constructor(reason: string);
|
|
75
|
+
}
|
|
54
76
|
/** One `BatchExecute` duplex call, behind an interface a test can substitute for. */
|
|
55
77
|
export interface BatchStream {
|
|
56
78
|
/** Identifies this stream. A handle registered on it is invalid on any other. */
|
|
57
79
|
readonly id: number;
|
|
58
80
|
/**
|
|
59
|
-
*
|
|
81
|
+
* The frame contract version this stream's server announced, or 0 while it announced nothing.
|
|
60
82
|
*
|
|
61
|
-
* It never blocks, and it never goes
|
|
62
|
-
*
|
|
63
|
-
*
|
|
83
|
+
* It never blocks, and it never goes down. It is 0 until the announcement arrives, and it stays
|
|
84
|
+
* 0 against a server that makes none. It belongs to one stream, so a rebuilt stream negotiates
|
|
85
|
+
* again on its own. Version 1 lets the batcher write frames. `FRAME_PIPELINE_VERSION` lets it
|
|
86
|
+
* write a whole transaction as one frame.
|
|
64
87
|
*/
|
|
65
|
-
readonly
|
|
88
|
+
readonly announcedVersion: number;
|
|
66
89
|
send(request: GrpcBatchExecuteRequest): void;
|
|
67
90
|
/** Registers the callbacks that drive the reader loop. Called once, right after construction. */
|
|
68
91
|
listen(handlers: {
|
|
@@ -87,6 +110,13 @@ export interface BatchStream {
|
|
|
87
110
|
* always was. It is a transport optimization alone. It gives no atomicity and no ordering that the
|
|
88
111
|
* stream does not already give.
|
|
89
112
|
*
|
|
113
|
+
* A whole transaction can travel as one frame. `enqueuePipeline` takes the operations of one
|
|
114
|
+
* transaction — a start that its followers name instead of a handle, statements, and a conditional
|
|
115
|
+
* commit — and places them on the inbox together, so they are written as one frame or not at all.
|
|
116
|
+
* The two items that make this possible are contract version 2. A stream whose server announced
|
|
117
|
+
* less gets none of them: the pipeline faults before any byte is written, and the caller runs the
|
|
118
|
+
* same operations one exchange at a time.
|
|
119
|
+
*
|
|
90
120
|
* A stream that faults is rebuilt by the next write, and every operation that was in flight on the
|
|
91
121
|
* old one is failed so its caller can decide whether to replay it. Prepared statements are scoped
|
|
92
122
|
* to the stream that registered them, and a handle from a stream that is gone is refused at the
|
|
@@ -140,6 +170,27 @@ export declare class GrpcBatcher {
|
|
|
140
170
|
enqueueStart(request: GrpcSqlRequest, slotIndex: number, signal: AbortSignal | undefined): Promise<GrpcTxnHandle>;
|
|
141
171
|
enqueueCommit(request: GrpcSqlRequest, slotIndex: number, signal: AbortSignal | undefined): Promise<BatchCausalToken>;
|
|
142
172
|
enqueueRollback(request: GrpcSqlRequest, slotIndex: number, signal: AbortSignal | undefined): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Enqueues the operations of one transaction so that they travel as one frame, in the given
|
|
175
|
+
* order: an optional start at the head, statements, and an optional conditional commit at the
|
|
176
|
+
* end. Every operation after a start names it by `txnStartRef`, because its handle does not
|
|
177
|
+
* exist yet.
|
|
178
|
+
*
|
|
179
|
+
* It returns one promise per operation. Each one settles with that operation's own answer — a
|
|
180
|
+
* `GrpcTxnHandle`, a `BatchQueryResult`, a `BatchNonQueryResult`, or a `BatchCausalToken` — or
|
|
181
|
+
* with its own error, as a lone operation's does.
|
|
182
|
+
*
|
|
183
|
+
* The operations go on the slot's inbox together, so no other operation of the same transaction
|
|
184
|
+
* can come between them. They are written together or not at all. A named start and a
|
|
185
|
+
* conditional commit are contract version 2. So on a stream whose server announced less, with
|
|
186
|
+
* frames off, or when the pipeline does not fit one frame, nothing is written and every promise
|
|
187
|
+
* rejects with `PipelineUnsupportedError`. A pipeline of plain statements on a known handle needs
|
|
188
|
+
* no version, and is staged as those operations would be alone, still in order.
|
|
189
|
+
*
|
|
190
|
+
* One signal covers the whole pipeline. A pipeline with a cancelled member is left out whole,
|
|
191
|
+
* because to write the rest could commit a transaction that is missing one of its statements.
|
|
192
|
+
*/
|
|
193
|
+
enqueuePipeline(ops: readonly PipelineOp[], slotIndex: number, signal: AbortSignal | undefined): Promise<unknown>[];
|
|
143
194
|
/**
|
|
144
195
|
* The registration for a statement on one stream, creating it when there is none.
|
|
145
196
|
*
|
|
@@ -184,6 +235,19 @@ export declare class GrpcBatcher {
|
|
|
184
235
|
* order is the only order the callers gave.
|
|
185
236
|
*/
|
|
186
237
|
private stage;
|
|
238
|
+
/** Writes a routed operation alone, or adds it to the slot's run so it shares the next frame. */
|
|
239
|
+
private place;
|
|
240
|
+
/**
|
|
241
|
+
* Stages a pipeline.
|
|
242
|
+
*
|
|
243
|
+
* The group is routed as one, because its operations are one transaction and so use one stream,
|
|
244
|
+
* and that stream is held for every operation. A group that needs the pipeline contract goes into
|
|
245
|
+
* the slot's run whole. The run is flushed first when it is for another stream or has no room for
|
|
246
|
+
* the whole group. A group that needs no contract version is placed one operation at a time, as
|
|
247
|
+
* lone operations are, still in order. A group that cannot be written as one frame faults whole,
|
|
248
|
+
* before anything is held or written.
|
|
249
|
+
*/
|
|
250
|
+
private stageGroup;
|
|
187
251
|
/**
|
|
188
252
|
* Writes the slot's run: one frame, or the plain single message when one operation is left in
|
|
189
253
|
* it, so a quiet stream stays byte-identical to a stream without frames.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batcher.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/batcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMxD,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EAExB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"batcher.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/batcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { CamusError } from '../../errors.js';
|
|
8
8
|
import { CamusErrorCode } from '../../error-codes.js';
|
|
9
9
|
import { sanitizeErrorText } from '../error-text.js';
|
|
10
|
-
import { FRAME_MAX_BYTES, FRAME_MAX_ITEMS, frameCost } from './batch-frames.js';
|
|
10
|
+
import { FRAME_MAX_BYTES, FRAME_MAX_ITEMS, FRAME_PIPELINE_VERSION, frameCost } from './batch-frames.js';
|
|
11
11
|
import { decodeCacheMetadata, decodeRoutingAdvice, fromWire } from './codec.js';
|
|
12
12
|
import { GrpcBatchStatementKind } from './messages.js';
|
|
13
13
|
export const EMPTY_CAUSAL_TOKEN = Object.freeze({ n: 0, l: 0n, c: 0n });
|
|
@@ -22,6 +22,20 @@ export class PreparedStatementStaleError extends Error {
|
|
|
22
22
|
super("The prepared statement's stream was rebuilt before this execution could be written.");
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Raised on every operation of a pipeline that the batcher refused to write as one frame, before
|
|
27
|
+
* any of it was written. The causes are a server that announced a contract version below
|
|
28
|
+
* `FRAME_PIPELINE_VERSION`, frames that are off, or a pipeline that does not fit one frame.
|
|
29
|
+
* Nothing ran, so the caller can run the same operations one exchange at a time.
|
|
30
|
+
*/
|
|
31
|
+
export class PipelineUnsupportedError extends Error {
|
|
32
|
+
name = 'PipelineUnsupportedError';
|
|
33
|
+
reason;
|
|
34
|
+
constructor(reason) {
|
|
35
|
+
super(`The pipeline cannot be written as one frame on this stream: ${reason}.`);
|
|
36
|
+
this.reason = reason;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
25
39
|
/**
|
|
26
40
|
* Pipelines many statements over a small pool of long-lived `BatchExecute` streams.
|
|
27
41
|
*
|
|
@@ -38,6 +52,13 @@ export class PreparedStatementStaleError extends Error {
|
|
|
38
52
|
* always was. It is a transport optimization alone. It gives no atomicity and no ordering that the
|
|
39
53
|
* stream does not already give.
|
|
40
54
|
*
|
|
55
|
+
* A whole transaction can travel as one frame. `enqueuePipeline` takes the operations of one
|
|
56
|
+
* transaction — a start that its followers name instead of a handle, statements, and a conditional
|
|
57
|
+
* commit — and places them on the inbox together, so they are written as one frame or not at all.
|
|
58
|
+
* The two items that make this possible are contract version 2. A stream whose server announced
|
|
59
|
+
* less gets none of them: the pipeline faults before any byte is written, and the caller runs the
|
|
60
|
+
* same operations one exchange at a time.
|
|
61
|
+
*
|
|
41
62
|
* A stream that faults is rebuilt by the next write, and every operation that was in flight on the
|
|
42
63
|
* old one is failed so its caller can decide whether to replay it. Prepared statements are scoped
|
|
43
64
|
* to the stream that registered them, and a handle from a stream that is gone is refused at the
|
|
@@ -123,6 +144,83 @@ export class GrpcBatcher {
|
|
|
123
144
|
async enqueueRollback(request, slotIndex, signal) {
|
|
124
145
|
await this.enqueue(GrpcBatchStatementKind.Rollback, request, slotIndex, signal);
|
|
125
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Enqueues the operations of one transaction so that they travel as one frame, in the given
|
|
149
|
+
* order: an optional start at the head, statements, and an optional conditional commit at the
|
|
150
|
+
* end. Every operation after a start names it by `txnStartRef`, because its handle does not
|
|
151
|
+
* exist yet.
|
|
152
|
+
*
|
|
153
|
+
* It returns one promise per operation. Each one settles with that operation's own answer — a
|
|
154
|
+
* `GrpcTxnHandle`, a `BatchQueryResult`, a `BatchNonQueryResult`, or a `BatchCausalToken` — or
|
|
155
|
+
* with its own error, as a lone operation's does.
|
|
156
|
+
*
|
|
157
|
+
* The operations go on the slot's inbox together, so no other operation of the same transaction
|
|
158
|
+
* can come between them. They are written together or not at all. A named start and a
|
|
159
|
+
* conditional commit are contract version 2. So on a stream whose server announced less, with
|
|
160
|
+
* frames off, or when the pipeline does not fit one frame, nothing is written and every promise
|
|
161
|
+
* rejects with `PipelineUnsupportedError`. A pipeline of plain statements on a known handle needs
|
|
162
|
+
* no version, and is staged as those operations would be alone, still in order.
|
|
163
|
+
*
|
|
164
|
+
* One signal covers the whole pipeline. A pipeline with a cancelled member is left out whole,
|
|
165
|
+
* because to write the rest could commit a transaction that is missing one of its statements.
|
|
166
|
+
*/
|
|
167
|
+
enqueuePipeline(ops, slotIndex, signal) {
|
|
168
|
+
if (ops.length === 0)
|
|
169
|
+
return [];
|
|
170
|
+
if (this.disposed) {
|
|
171
|
+
const closed = new CamusError(CamusErrorCode.Generic, 'This gRPC transport is closed.');
|
|
172
|
+
return ops.map(() => Promise.reject(closed));
|
|
173
|
+
}
|
|
174
|
+
if (signal?.aborted === true) {
|
|
175
|
+
return ops.map(() => Promise.reject(signal.reason));
|
|
176
|
+
}
|
|
177
|
+
const items = [];
|
|
178
|
+
const promises = [];
|
|
179
|
+
const group = { items, signal, needsPipelineContract: false, broken: false };
|
|
180
|
+
let start;
|
|
181
|
+
let conditionalCommit = false;
|
|
182
|
+
for (let i = 0; i < ops.length; i++) {
|
|
183
|
+
const source = ops[i];
|
|
184
|
+
const requestId = ++this.requestIdSeq;
|
|
185
|
+
const wire = { requestId, kind: source.kind, request: source.request };
|
|
186
|
+
let op;
|
|
187
|
+
promises.push(new Promise((resolve, reject) => {
|
|
188
|
+
op = {
|
|
189
|
+
requestId,
|
|
190
|
+
kind: source.kind,
|
|
191
|
+
transaction: handleKey(source.request.txnHandle),
|
|
192
|
+
settled: false,
|
|
193
|
+
transportId: 0,
|
|
194
|
+
lease: undefined,
|
|
195
|
+
resolve,
|
|
196
|
+
reject,
|
|
197
|
+
};
|
|
198
|
+
}));
|
|
199
|
+
if (i === 0 && source.kind === GrpcBatchStatementKind.Start) {
|
|
200
|
+
start = op;
|
|
201
|
+
}
|
|
202
|
+
else if (start !== undefined) {
|
|
203
|
+
// Named by request id: the start mints the handle after this is written.
|
|
204
|
+
op.startRef = start;
|
|
205
|
+
wire.txnStartRef = start.requestId;
|
|
206
|
+
}
|
|
207
|
+
conditionalCommit ||= source.kind === GrpcBatchStatementKind.CommitIfOk;
|
|
208
|
+
if (signal !== undefined) {
|
|
209
|
+
const pending = op;
|
|
210
|
+
op.signal = signal;
|
|
211
|
+
op.onAbort = () => this.fault(pending, signal.reason);
|
|
212
|
+
signal.addEventListener('abort', op.onAbort, { once: true });
|
|
213
|
+
}
|
|
214
|
+
this.pending.set(requestId, op);
|
|
215
|
+
items.push({ request: wire, op, expectedTransportId: source.expectedTransportId, group });
|
|
216
|
+
}
|
|
217
|
+
// A lone start, or a run of statements by handle with no conditional commit, is ordinary work.
|
|
218
|
+
group.needsPipelineContract = (start !== undefined && ops.length > 1) || conditionalCommit;
|
|
219
|
+
const slot = this.slots[slotIndex];
|
|
220
|
+
slot.inbox.push(items[0]);
|
|
221
|
+
this.schedule(slot);
|
|
222
|
+
return promises;
|
|
223
|
+
}
|
|
126
224
|
// ─── Prepared statements ──────────────────────────────────────────────────
|
|
127
225
|
/**
|
|
128
226
|
* The registration for a statement on one stream, creating it when there is none.
|
|
@@ -276,7 +374,10 @@ export class GrpcBatcher {
|
|
|
276
374
|
const item = slot.inbox.shift();
|
|
277
375
|
if (item === undefined)
|
|
278
376
|
break;
|
|
279
|
-
|
|
377
|
+
if (item.group !== undefined)
|
|
378
|
+
this.stageGroup(slot, item.group);
|
|
379
|
+
else
|
|
380
|
+
this.stage(slot, item);
|
|
280
381
|
drained++;
|
|
281
382
|
}
|
|
282
383
|
this.flush(slot);
|
|
@@ -344,10 +445,14 @@ export class GrpcBatcher {
|
|
|
344
445
|
this.fault(item.op, toError(error));
|
|
345
446
|
return;
|
|
346
447
|
}
|
|
448
|
+
this.place(slot, item, lease);
|
|
449
|
+
}
|
|
450
|
+
/** Writes a routed operation alone, or adds it to the slot's run so it shares the next frame. */
|
|
451
|
+
place(slot, item, lease) {
|
|
347
452
|
// A frame goes only to a server that announced one on this very stream. The announcement is
|
|
348
453
|
// read, never awaited: until it arrives, and for good against a server that makes none, every
|
|
349
454
|
// operation is its own message.
|
|
350
|
-
const framed = this.options.requestFrames && lease.stream.
|
|
455
|
+
const framed = this.options.requestFrames && lease.stream.announcedVersion >= 1;
|
|
351
456
|
if (slot.run.length > 0 && (!framed || slot.runLease !== lease))
|
|
352
457
|
this.flush(slot);
|
|
353
458
|
if (!framed) {
|
|
@@ -378,6 +483,80 @@ export class GrpcBatcher {
|
|
|
378
483
|
slot.run.push(item);
|
|
379
484
|
slot.runBytes += cost;
|
|
380
485
|
}
|
|
486
|
+
/**
|
|
487
|
+
* Stages a pipeline.
|
|
488
|
+
*
|
|
489
|
+
* The group is routed as one, because its operations are one transaction and so use one stream,
|
|
490
|
+
* and that stream is held for every operation. A group that needs the pipeline contract goes into
|
|
491
|
+
* the slot's run whole. The run is flushed first when it is for another stream or has no room for
|
|
492
|
+
* the whole group. A group that needs no contract version is placed one operation at a time, as
|
|
493
|
+
* lone operations are, still in order. A group that cannot be written as one frame faults whole,
|
|
494
|
+
* before anything is held or written.
|
|
495
|
+
*/
|
|
496
|
+
stageGroup(slot, group) {
|
|
497
|
+
const items = group.items;
|
|
498
|
+
let lease;
|
|
499
|
+
let cost = 0;
|
|
500
|
+
try {
|
|
501
|
+
// All or nothing, before anything is held. A group with a cancelled member is left out
|
|
502
|
+
// whole, because to write the rest could commit a transaction that is missing a statement.
|
|
503
|
+
if (items.some((item) => !this.mustStillBeWritten(item)))
|
|
504
|
+
throw cancelledError(group.signal);
|
|
505
|
+
lease = this.route(slot, items[0].op);
|
|
506
|
+
for (const item of items) {
|
|
507
|
+
if (item.expectedTransportId !== undefined && lease.stream.id !== item.expectedTransportId) {
|
|
508
|
+
throw new PreparedStatementStaleError();
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
if (group.needsPipelineContract) {
|
|
512
|
+
const announced = lease.stream.announcedVersion;
|
|
513
|
+
if (!this.options.requestFrames)
|
|
514
|
+
throw new PipelineUnsupportedError('request frames are off');
|
|
515
|
+
if (announced < FRAME_PIPELINE_VERSION) {
|
|
516
|
+
throw new PipelineUnsupportedError(`the server announced frame contract version ${String(announced)}, below ${String(FRAME_PIPELINE_VERSION)}`);
|
|
517
|
+
}
|
|
518
|
+
if (items.length > FRAME_MAX_ITEMS) {
|
|
519
|
+
throw new PipelineUnsupportedError(`${String(items.length)} operations exceed the ${String(FRAME_MAX_ITEMS)}-item frame limit`);
|
|
520
|
+
}
|
|
521
|
+
for (const item of items)
|
|
522
|
+
cost += frameCost(item.request);
|
|
523
|
+
if (cost > FRAME_MAX_BYTES) {
|
|
524
|
+
throw new PipelineUnsupportedError(`${String(cost)} bytes exceed the ${String(FRAME_MAX_BYTES)}-byte frame limit`);
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
for (const item of items) {
|
|
528
|
+
item.op.transportId = lease.stream.id;
|
|
529
|
+
lease.inFlight++;
|
|
530
|
+
item.op.lease = lease;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
catch (error) {
|
|
534
|
+
const failure = toError(error);
|
|
535
|
+
for (const item of items)
|
|
536
|
+
this.fault(item.op, failure);
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
if (!group.needsPipelineContract) {
|
|
540
|
+
for (const item of items)
|
|
541
|
+
this.place(slot, item, lease);
|
|
542
|
+
return;
|
|
543
|
+
}
|
|
544
|
+
if (slot.run.length > 0) {
|
|
545
|
+
if (slot.runBytes < 0)
|
|
546
|
+
slot.runBytes = frameCost(slot.run[0].request);
|
|
547
|
+
if (slot.runLease !== lease ||
|
|
548
|
+
slot.run.length + items.length > FRAME_MAX_ITEMS ||
|
|
549
|
+
slot.runBytes + cost > FRAME_MAX_BYTES) {
|
|
550
|
+
this.flush(slot);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
if (slot.run.length === 0) {
|
|
554
|
+
slot.runLease = lease;
|
|
555
|
+
slot.runBytes = 0;
|
|
556
|
+
}
|
|
557
|
+
slot.run.push(...items);
|
|
558
|
+
slot.runBytes += cost;
|
|
559
|
+
}
|
|
381
560
|
/**
|
|
382
561
|
* Writes the slot's run: one frame, or the plain single message when one operation is left in
|
|
383
562
|
* it, so a quiet stream stays byte-identical to a stream without frames.
|
|
@@ -394,8 +573,22 @@ export class GrpcBatcher {
|
|
|
394
573
|
slot.runBytes = -1;
|
|
395
574
|
if (run.length === 0 || lease === undefined)
|
|
396
575
|
return;
|
|
397
|
-
//
|
|
398
|
-
|
|
576
|
+
// A pipeline travels whole or not at all. When one of its operations was cancelled after it
|
|
577
|
+
// was staged, the others are left out too, and faulted, so a conditional commit never commits
|
|
578
|
+
// a transaction that is missing a statement.
|
|
579
|
+
for (const item of run) {
|
|
580
|
+
if (item.group !== undefined && !item.group.broken && !this.mustStillBeWritten(item)) {
|
|
581
|
+
item.group.broken = true;
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
const items = [];
|
|
585
|
+
for (const item of run) {
|
|
586
|
+
// Cancelled since it was staged: nothing awaits an answer, so leave it out.
|
|
587
|
+
if (item.group?.broken === true)
|
|
588
|
+
this.fault(item.op, cancelledError(item.group.signal));
|
|
589
|
+
else if (this.mustStillBeWritten(item))
|
|
590
|
+
items.push(item.request);
|
|
591
|
+
}
|
|
399
592
|
if (items.length === 0)
|
|
400
593
|
return;
|
|
401
594
|
try {
|
|
@@ -662,11 +855,13 @@ export class GrpcBatcher {
|
|
|
662
855
|
// that holds a retired stream open until its transaction is on the books.
|
|
663
856
|
if (op.kind === GrpcBatchStatementKind.Start) {
|
|
664
857
|
const handle = result;
|
|
665
|
-
if (handle !== undefined)
|
|
666
|
-
|
|
858
|
+
if (handle !== undefined) {
|
|
859
|
+
op.mintedHandle = handleKey(handle);
|
|
860
|
+
this.transactionBegan(op.mintedHandle, op.lease);
|
|
861
|
+
}
|
|
667
862
|
}
|
|
668
863
|
else if (this.finalizesTransaction(op)) {
|
|
669
|
-
this.transactionEnded(op
|
|
864
|
+
this.transactionEnded(transactionOf(op));
|
|
670
865
|
}
|
|
671
866
|
this.release(op);
|
|
672
867
|
op.resolve(result);
|
|
@@ -678,12 +873,14 @@ export class GrpcBatcher {
|
|
|
678
873
|
// caller cancelled, may still be open there, and the rollback that usually follows it must
|
|
679
874
|
// find its stream.
|
|
680
875
|
if (CamusError.is(error) && this.finalizesTransaction(op))
|
|
681
|
-
this.transactionEnded(op
|
|
876
|
+
this.transactionEnded(transactionOf(op));
|
|
682
877
|
this.release(op);
|
|
683
878
|
op.reject(error);
|
|
684
879
|
}
|
|
685
880
|
finalizesTransaction(op) {
|
|
686
|
-
return op.kind === GrpcBatchStatementKind.Commit ||
|
|
881
|
+
return (op.kind === GrpcBatchStatementKind.Commit ||
|
|
882
|
+
op.kind === GrpcBatchStatementKind.CommitIfOk ||
|
|
883
|
+
op.kind === GrpcBatchStatementKind.Rollback);
|
|
687
884
|
}
|
|
688
885
|
settle(op) {
|
|
689
886
|
if (op.settled)
|
|
@@ -739,9 +936,19 @@ function handleKey(handle) {
|
|
|
739
936
|
? undefined
|
|
740
937
|
: transactionKey(handle.txnIdPt, handle.txnIdCounter);
|
|
741
938
|
}
|
|
939
|
+
/** The transaction an operation finishes: by the handle it carries, or by the start it names. */
|
|
940
|
+
function transactionOf(op) {
|
|
941
|
+
return op.transaction ?? op.startRef?.mintedHandle;
|
|
942
|
+
}
|
|
742
943
|
function streamClosedError() {
|
|
743
944
|
return new CamusError(CamusErrorCode.Generic, 'The gRPC batch stream closed.');
|
|
744
945
|
}
|
|
946
|
+
/** The failure of a pipeline operation that was left out because another one was cancelled. */
|
|
947
|
+
function cancelledError(signal) {
|
|
948
|
+
if (signal?.aborted === true)
|
|
949
|
+
return toError(signal.reason);
|
|
950
|
+
return new CamusError(CamusErrorCode.Generic, 'The pipeline was cancelled before it was written.');
|
|
951
|
+
}
|
|
745
952
|
function toError(error) {
|
|
746
953
|
return error instanceof Error ? error : new Error(String(error));
|
|
747
954
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batcher.js","sourceRoot":"","sources":["../../../src/transport/grpc/batcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"batcher.js","sourceRoot":"","sources":["../../../src/transport/grpc/batcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,10 @@ import type { CamusTokenProvider } from '../../auth/token-provider.js';
|
|
|
9
9
|
import type { GrpcBatchOptions } from '../../config.js';
|
|
10
10
|
import { CamusError } from '../../errors.js';
|
|
11
11
|
import type { CamusEndpointPool } from '../../endpoint-pool.js';
|
|
12
|
+
import type { CamusNodeStats } from '../../node-stats.js';
|
|
12
13
|
import type { CamusTransactionOptions } from '../../options.js';
|
|
13
14
|
import type { CamusRowSource } from '../../row-source.js';
|
|
14
|
-
import type { CamusBranchRow, CamusTransport, NonQueryTransportResult, PreparedStatementInfo, QueryTransportResult, StartTransactionResult, TransportInsertRequest, TransportSqlRequest } from '../transport.js';
|
|
15
|
+
import type { CamusBranchRow, CamusTransport, NonQueryTransportResult, PipelineTransportResult, PreparedStatementInfo, QueryTransportResult, StartTransactionResult, TransportInsertRequest, TransportPipelineRequest, TransportSqlRequest } from '../transport.js';
|
|
15
16
|
import type { GrpcStatusError } from './proto.js';
|
|
16
17
|
/**
|
|
17
18
|
* The gRPC transport.
|
|
@@ -51,6 +52,34 @@ export declare class GrpcTransport implements CamusTransport, CamusLoginClient {
|
|
|
51
52
|
*/
|
|
52
53
|
executeQueryStream(request: TransportSqlRequest): Promise<CamusRowSource>;
|
|
53
54
|
executeNonQuery(request: TransportSqlRequest): Promise<NonQueryTransportResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Sends a whole pipeline as one stream message: the start that its statements name by
|
|
57
|
+
* `txnStartRef`, the statements, and a conditional commit. It is one exchange, answered
|
|
58
|
+
* operation by operation.
|
|
59
|
+
*
|
|
60
|
+
* The batcher decides, for each stream and at the moment of the write, whether the pipeline can
|
|
61
|
+
* be written as one frame. The stream's server must have announced the pipeline contract, frames
|
|
62
|
+
* must be on, and the pipeline must fit one frame. When it cannot, every operation fails with
|
|
63
|
+
* `PipelineUnsupportedError` before anything was written. The same request then runs here one
|
|
64
|
+
* exchange per step, exactly as it ran before pipelines.
|
|
65
|
+
*
|
|
66
|
+
* Prepared executions follow the rules for a lone operation (see `executeBatched`). A
|
|
67
|
+
* registration that is found stale before the write is dropped, and the pipeline is sent again,
|
|
68
|
+
* prepared once more and then inline. A transaction that finishes on a rotated-out stream runs
|
|
69
|
+
* inline from the start. A stale handle that the server reports after the pipeline began
|
|
70
|
+
* (`CADB0520`) is a statement failure like any other, because the transaction it began is gone
|
|
71
|
+
* with it. The caller then retries from `BEGIN`, as for a conflict.
|
|
72
|
+
*/
|
|
73
|
+
executePipeline(request: TransportPipelineRequest): Promise<PipelineTransportResult>;
|
|
74
|
+
/**
|
|
75
|
+
* The wire operations of a pipeline, in order, and the prepared registration each statement used,
|
|
76
|
+
* so that a stale one can be dropped. An entry is `undefined` for an inline statement. When a
|
|
77
|
+
* registration cannot be had, that statement runs inline, as a lone one does: to prepare is an
|
|
78
|
+
* optimization.
|
|
79
|
+
*/
|
|
80
|
+
private buildPipelineOps;
|
|
81
|
+
/** Reads one answered pipeline, operation by operation, into the transport-neutral result. */
|
|
82
|
+
private assemblePipelineResult;
|
|
54
83
|
prepare(endpoint: string, database: string, sql: string, timeoutSeconds: number, signal?: AbortSignal): Promise<PreparedStatementInfo>;
|
|
55
84
|
closePrepared(endpoint: string, database: string, sql: string, signal?: AbortSignal): Promise<void>;
|
|
56
85
|
/**
|
|
@@ -64,6 +93,11 @@ export declare class GrpcTransport implements CamusTransport, CamusLoginClient {
|
|
|
64
93
|
executeDdl(request: TransportSqlRequest): Promise<boolean>;
|
|
65
94
|
insert(request: TransportInsertRequest): Promise<number>;
|
|
66
95
|
ping(endpoint: string, timeoutSeconds: number, signal?: AbortSignal): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* Calls `CamusSql.GetNodeStats`. A message field that an older server left unset keeps the -1
|
|
98
|
+
* defaults of the model, and does not become zeros.
|
|
99
|
+
*/
|
|
100
|
+
getNodeStats(endpoint: string, timeoutSeconds: number, signal?: AbortSignal): Promise<CamusNodeStats>;
|
|
67
101
|
createDatabase(endpoint: string, database: string, ifNotExists: boolean, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
|
|
68
102
|
createBranchDatabase(endpoint: string, branchName: string, sourceDatabaseName: string, ifNotExists: boolean, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
|
|
69
103
|
dropDatabase(endpoint: string, database: string, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
|