@fluidframework/container-runtime 2.0.0-dev.4.1.0.148229 → 2.0.0-dev.4.2.0.153917
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/CHANGELOG.md +58 -0
- package/README.md +69 -0
- package/dist/blobManager.d.ts +6 -14
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +50 -37
- package/dist/blobManager.js.map +1 -1
- package/dist/containerRuntime.d.ts +14 -1
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +37 -12
- package/dist/containerRuntime.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +6 -6
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +1 -0
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +3 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +2 -1
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +14 -0
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -0
- package/dist/opLifecycle/opGroupingManager.js +56 -0
- package/dist/opLifecycle/opGroupingManager.js.map +1 -0
- package/dist/opLifecycle/opSplitter.d.ts +1 -1
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +5 -6
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +2 -0
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +3 -3
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +30 -20
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/summary/index.d.ts +1 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +3 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +5 -3
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +82 -67
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +1 -5
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +1 -0
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +3 -0
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +128 -2
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +4 -3
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +14 -2
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +28 -2
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +19 -16
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/lib/blobManager.d.ts +6 -14
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +50 -37
- package/lib/blobManager.js.map +1 -1
- package/lib/containerRuntime.d.ts +14 -1
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +38 -13
- package/lib/containerRuntime.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +6 -6
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +1 -0
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +1 -0
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +2 -1
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +14 -0
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
- package/lib/opLifecycle/opGroupingManager.js +52 -0
- package/lib/opLifecycle/opGroupingManager.js.map +1 -0
- package/lib/opLifecycle/opSplitter.d.ts +1 -1
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +5 -6
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +2 -0
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +3 -3
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +30 -20
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/summary/index.d.ts +1 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +1 -0
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +5 -3
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +82 -67
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +1 -5
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +1 -0
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +3 -0
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +128 -2
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +14 -2
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +28 -2
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +17 -15
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/package.json +19 -16
- package/src/blobManager.ts +64 -41
- package/src/containerRuntime.ts +70 -9
- package/src/gc/gcHelpers.ts +9 -6
- package/src/opLifecycle/README.md +106 -0
- package/src/opLifecycle/index.ts +1 -0
- package/src/opLifecycle/opDecompressor.ts +1 -0
- package/src/opLifecycle/opGroupingManager.ts +78 -0
- package/src/opLifecycle/opSplitter.ts +1 -5
- package/src/opLifecycle/outbox.ts +7 -3
- package/src/opLifecycle/remoteMessageProcessor.ts +38 -22
- package/src/packageVersion.ts +1 -1
- package/src/summary/index.ts +1 -1
- package/src/summary/runningSummarizer.ts +102 -80
- package/src/summary/summarizer.ts +0 -8
- package/src/summary/summarizerHeuristics.ts +4 -0
- package/src/summary/summarizerNode/summarizerNode.ts +1 -1
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +3 -3
- package/src/summary/summarizerTypes.ts +20 -3
- package/src/summary/summaryGenerator.ts +22 -16
|
@@ -120,6 +120,10 @@ const summarizeErrors = {
|
|
|
120
120
|
disconnect: "Summary cancelled due to summarizer or main client disconnect",
|
|
121
121
|
} as const;
|
|
122
122
|
|
|
123
|
+
// Helper functions to report failures and return.
|
|
124
|
+
export const getFailMessage = (errorCode: keyof typeof summarizeErrors) =>
|
|
125
|
+
`${errorCode}: ${summarizeErrors[errorCode]}`;
|
|
126
|
+
|
|
123
127
|
export class SummarizeResultBuilder {
|
|
124
128
|
public readonly summarySubmitted = new Deferred<SummarizeResultPart<SubmitSummaryResult>>();
|
|
125
129
|
public readonly summaryOpBroadcasted = new Deferred<
|
|
@@ -171,7 +175,6 @@ export class SummaryGenerator {
|
|
|
171
175
|
private readonly submitSummaryCallback: (
|
|
172
176
|
options: ISubmitSummaryOptions,
|
|
173
177
|
) => Promise<SubmitSummaryResult>,
|
|
174
|
-
private readonly raiseSummarizingError: (errorMessage: string) => void,
|
|
175
178
|
private readonly successfulSummaryCallback: () => void,
|
|
176
179
|
private readonly summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">,
|
|
177
180
|
private readonly logger: ITelemetryLogger,
|
|
@@ -235,16 +238,12 @@ export class SummaryGenerator {
|
|
|
235
238
|
{ start: true, end: true, cancel: "generic" },
|
|
236
239
|
);
|
|
237
240
|
|
|
238
|
-
// Helper functions to report failures and return.
|
|
239
|
-
const getFailMessage = (errorCode: keyof typeof summarizeErrors) =>
|
|
240
|
-
`${errorCode}: ${summarizeErrors[errorCode]}`;
|
|
241
241
|
const fail = (
|
|
242
242
|
errorCode: keyof typeof summarizeErrors,
|
|
243
243
|
error?: any,
|
|
244
244
|
properties?: SummaryGeneratorTelemetry,
|
|
245
245
|
nackSummaryResult?: INackSummaryResult,
|
|
246
246
|
) => {
|
|
247
|
-
this.raiseSummarizingError(summarizeErrors[errorCode]);
|
|
248
247
|
// UploadSummary may fail with 429 and retryAfter - respect that
|
|
249
248
|
// Summary Nack also can have retryAfter, it's parsed below and comes as a property.
|
|
250
249
|
const retryAfterSeconds = getRetryDelaySecondsFromError(error);
|
|
@@ -257,17 +256,17 @@ export class SummaryGenerator {
|
|
|
257
256
|
? "generic"
|
|
258
257
|
: "error";
|
|
259
258
|
|
|
260
|
-
const
|
|
259
|
+
const reason = getFailMessage(errorCode);
|
|
261
260
|
summarizeEvent.cancel(
|
|
262
261
|
{
|
|
263
262
|
...properties,
|
|
264
|
-
reason
|
|
263
|
+
reason,
|
|
265
264
|
category,
|
|
266
265
|
retryAfterSeconds,
|
|
267
266
|
},
|
|
268
|
-
error ??
|
|
267
|
+
error ?? reason,
|
|
269
268
|
); // disconnect & summaryAckTimeout do not have proper error.
|
|
270
|
-
resultsBuilder.fail(
|
|
269
|
+
resultsBuilder.fail(reason, error, nackSummaryResult, retryAfterSeconds);
|
|
271
270
|
};
|
|
272
271
|
|
|
273
272
|
// Wait to generate and send summary
|
|
@@ -283,18 +282,20 @@ export class SummaryGenerator {
|
|
|
283
282
|
cancellationToken,
|
|
284
283
|
});
|
|
285
284
|
|
|
285
|
+
this.heuristicData.recordAttempt(summaryData.referenceSequenceNumber);
|
|
286
|
+
|
|
286
287
|
// Cumulatively add telemetry properties based on how far generateSummary went.
|
|
287
288
|
const referenceSequenceNumber = summaryData.referenceSequenceNumber;
|
|
288
|
-
const opsSinceLastSummary =
|
|
289
|
-
referenceSequenceNumber -
|
|
290
|
-
this.heuristicData.lastSuccessfulSummary.refSequenceNumber;
|
|
291
289
|
summarizeTelemetryProps = {
|
|
292
290
|
...summarizeTelemetryProps,
|
|
293
291
|
referenceSequenceNumber,
|
|
294
292
|
minimumSequenceNumber: summaryData.minimumSequenceNumber,
|
|
295
293
|
opsSinceLastAttempt:
|
|
296
294
|
referenceSequenceNumber - this.heuristicData.lastAttempt.refSequenceNumber,
|
|
297
|
-
opsSinceLastSummary
|
|
295
|
+
opsSinceLastSummary:
|
|
296
|
+
referenceSequenceNumber -
|
|
297
|
+
this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
|
|
298
|
+
stage: summaryData.stage,
|
|
298
299
|
};
|
|
299
300
|
summarizeTelemetryProps = this.addSummaryDataToTelemetryProps(
|
|
300
301
|
summaryData,
|
|
@@ -318,12 +319,15 @@ export class SummaryGenerator {
|
|
|
318
319
|
if (!fullTree && !summaryData.forcedFullTree) {
|
|
319
320
|
const { summarizedDataStoreCount, gcStateUpdatedDataStoreCount = 0 } =
|
|
320
321
|
summaryData.summaryStats;
|
|
321
|
-
if (
|
|
322
|
+
if (
|
|
323
|
+
summarizedDataStoreCount >
|
|
324
|
+
gcStateUpdatedDataStoreCount + this.heuristicData.opsSinceLastSummary
|
|
325
|
+
) {
|
|
322
326
|
logger.sendErrorEvent({
|
|
323
327
|
eventName: "IncrementalSummaryViolation",
|
|
324
328
|
summarizedDataStoreCount,
|
|
325
329
|
gcStateUpdatedDataStoreCount,
|
|
326
|
-
opsSinceLastSummary,
|
|
330
|
+
opsSinceLastSummary: this.heuristicData.opsSinceLastSummary,
|
|
327
331
|
});
|
|
328
332
|
}
|
|
329
333
|
}
|
|
@@ -334,7 +338,9 @@ export class SummaryGenerator {
|
|
|
334
338
|
} catch (error) {
|
|
335
339
|
return fail("submitSummaryFailure", error);
|
|
336
340
|
} finally {
|
|
337
|
-
|
|
341
|
+
if (summaryData === undefined) {
|
|
342
|
+
this.heuristicData.recordAttempt();
|
|
343
|
+
}
|
|
338
344
|
this.summarizeTimer.clear();
|
|
339
345
|
}
|
|
340
346
|
|