@fluidframework/container-runtime 2.0.0-dev.4.4.0.162574 → 2.0.0-dev.5.3.2.178189
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 +69 -0
- package/dist/batchTracker.d.ts +4 -4
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +2 -2
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +5 -2
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +53 -24
- package/dist/blobManager.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +2 -2
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +8 -1
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerRuntime.d.ts +19 -7
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +98 -22
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +2 -2
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +1 -1
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +3 -4
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +5 -5
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +2 -1
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +2 -1
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStores.d.ts +1 -1
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +2 -1
- package/dist/dataStores.js.map +1 -1
- package/dist/deltaScheduler.d.ts +2 -2
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +1 -1
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +2 -2
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +4 -3
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +3 -4
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +5 -5
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/id-compressor/idCompressor.d.ts +2 -2
- package/dist/id-compressor/idCompressor.d.ts.map +1 -1
- package/dist/id-compressor/idCompressor.js.map +1 -1
- package/dist/id-compressor/uuidUtilities.d.ts +0 -2
- package/dist/id-compressor/uuidUtilities.d.ts.map +1 -1
- package/dist/id-compressor/uuidUtilities.js +1 -3
- package/dist/id-compressor/uuidUtilities.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +18 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +7 -0
- package/dist/metadata.js.map +1 -0
- package/dist/opLifecycle/batchManager.d.ts +2 -1
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +5 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +13 -2
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +1 -1
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +2 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +2 -2
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +3 -6
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +2 -2
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +14 -8
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +6 -11
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +2 -2
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +5 -3
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +35 -4
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +135 -45
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
- 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/pendingStateManager.d.ts +24 -15
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +67 -72
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/scheduleManager.d.ts +2 -2
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +8 -2
- package/dist/scheduleManager.js.map +1 -1
- package/dist/summary/index.d.ts +2 -2
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +2 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +4 -3
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +3 -18
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +4 -3
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +5 -6
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +2 -3
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +2 -3
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts +3 -2
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +2 -2
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/index.d.ts +1 -1
- package/dist/summary/summarizerNode/index.d.ts.map +1 -1
- package/dist/summary/summarizerNode/index.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +41 -14
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +91 -23
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +24 -4
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +23 -8
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +60 -23
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +16 -9
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +4 -2
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +4 -0
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +1 -0
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +2 -1
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +14 -5
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +23 -9
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +4 -2
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/lib/batchTracker.d.ts +4 -4
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +5 -2
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +53 -24
- package/lib/blobManager.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +2 -2
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +8 -1
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerRuntime.d.ts +19 -7
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +101 -25
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts +2 -2
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +1 -1
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +3 -4
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +5 -5
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +2 -1
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +2 -1
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStores.d.ts +1 -1
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +2 -1
- package/lib/dataStores.js.map +1 -1
- package/lib/deltaScheduler.d.ts +2 -2
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +1 -1
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +2 -2
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +2 -1
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +3 -4
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +5 -5
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +1 -1
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/id-compressor/idCompressor.d.ts +2 -2
- package/lib/id-compressor/idCompressor.d.ts.map +1 -1
- package/lib/id-compressor/idCompressor.js.map +1 -1
- package/lib/id-compressor/uuidUtilities.d.ts +0 -2
- package/lib/id-compressor/uuidUtilities.d.ts.map +1 -1
- package/lib/id-compressor/uuidUtilities.js +1 -3
- package/lib/id-compressor/uuidUtilities.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/metadata.d.ts +18 -0
- package/lib/metadata.d.ts.map +1 -0
- package/lib/metadata.js +6 -0
- package/lib/metadata.js.map +1 -0
- package/lib/opLifecycle/batchManager.d.ts +2 -1
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +5 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +13 -2
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +1 -1
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +1 -1
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts +2 -2
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +3 -6
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +2 -2
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +14 -8
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +6 -11
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +2 -2
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +5 -3
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +35 -4
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +133 -44
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
- 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/pendingStateManager.d.ts +24 -15
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +67 -72
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/scheduleManager.d.ts +2 -2
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js +8 -2
- package/lib/scheduleManager.js.map +1 -1
- package/lib/summary/index.d.ts +2 -2
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +1 -1
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +4 -3
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +3 -18
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +4 -3
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +5 -6
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +2 -3
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +2 -3
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts +3 -2
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +2 -2
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/index.d.ts +1 -1
- package/lib/summary/summarizerNode/index.d.ts.map +1 -1
- package/lib/summary/summarizerNode/index.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +41 -14
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +91 -23
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +24 -4
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +23 -8
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +59 -22
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +16 -9
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +4 -2
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +4 -0
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +1 -0
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +2 -1
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +14 -5
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +21 -8
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +4 -2
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +1 -1
- package/lib/summary/summaryManager.js.map +1 -1
- package/package.json +25 -41
- package/src/batchTracker.ts +5 -6
- package/src/blobManager.ts +70 -29
- package/src/connectionTelemetry.ts +14 -6
- package/src/containerRuntime.ts +124 -38
- package/src/dataStore.ts +3 -4
- package/src/dataStoreContext.ts +12 -9
- package/src/dataStoreContexts.ts +6 -8
- package/src/dataStores.ts +8 -3
- package/src/deltaScheduler.ts +2 -3
- package/src/gc/garbageCollection.ts +7 -6
- package/src/gc/gcDefinitions.ts +3 -4
- package/src/gc/gcTelemetry.ts +9 -5
- package/src/id-compressor/idCompressor.ts +2 -2
- package/src/id-compressor/uuidUtilities.ts +1 -4
- package/src/index.ts +2 -0
- package/src/metadata.ts +19 -0
- package/src/opLifecycle/README.md +20 -0
- package/src/opLifecycle/batchManager.ts +9 -1
- package/src/opLifecycle/definitions.ts +13 -2
- package/src/opLifecycle/index.ts +1 -1
- package/src/opLifecycle/opCompressor.ts +4 -8
- package/src/opLifecycle/opDecompressor.ts +43 -16
- package/src/opLifecycle/opGroupingManager.ts +19 -13
- package/src/opLifecycle/opSplitter.ts +7 -6
- package/src/opLifecycle/outbox.ts +172 -57
- package/src/opLifecycle/remoteMessageProcessor.ts +5 -1
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +113 -129
- package/src/scheduleManager.ts +18 -10
- package/src/summary/index.ts +3 -1
- package/src/summary/orderedClientElection.ts +7 -20
- package/src/summary/runningSummarizer.ts +11 -10
- package/src/summary/summarizer.ts +8 -8
- package/src/summary/summarizerClientElection.ts +3 -2
- package/src/summary/summarizerHeuristics.ts +2 -2
- package/src/summary/summarizerNode/index.ts +1 -0
- package/src/summary/summarizerNode/summarizerNode.ts +121 -38
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +27 -4
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +73 -27
- package/src/summary/summarizerTypes.ts +19 -14
- package/src/summary/summaryCollection.ts +10 -4
- package/src/summary/summaryFormat.ts +5 -1
- package/src/summary/summaryGenerator.ts +38 -11
- package/src/summary/summaryManager.ts +9 -9
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { IEvent } from "@fluidframework/common-definitions";
|
|
7
|
+
import { IDisposable } from "@fluidframework/core-interfaces";
|
|
8
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
7
9
|
import { Deferred, assert, TypedEventEmitter } from "@fluidframework/common-utils";
|
|
8
10
|
import { IDeltaManager } from "@fluidframework/container-definitions";
|
|
9
11
|
import {
|
|
@@ -70,7 +72,9 @@ class Summary implements ISummary {
|
|
|
70
72
|
return new Summary(clientId, clientSequenceNumber);
|
|
71
73
|
}
|
|
72
74
|
public static createFromOp(op: ISummaryOpMessage) {
|
|
73
|
-
|
|
75
|
+
// TODO: Verify whether this should be able to handle server-generated ops (with null clientId)
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
77
|
+
const summary = new Summary(op.clientId as string, op.clientSequenceNumber);
|
|
74
78
|
summary.broadcast(op);
|
|
75
79
|
return summary;
|
|
76
80
|
}
|
|
@@ -256,7 +260,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
256
260
|
|
|
257
261
|
public constructor(
|
|
258
262
|
private readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,
|
|
259
|
-
private readonly logger:
|
|
263
|
+
private readonly logger: ITelemetryLoggerExt,
|
|
260
264
|
) {
|
|
261
265
|
super();
|
|
262
266
|
this.deltaManager.on("op", (op) => this.handleOp(op));
|
|
@@ -376,7 +380,9 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
376
380
|
let summary: Summary | undefined;
|
|
377
381
|
|
|
378
382
|
// Check if summary already being watched, broadcast if so
|
|
379
|
-
|
|
383
|
+
// TODO: Verify whether this should be able to handle server-generated ops (with null clientId)
|
|
384
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
385
|
+
const watcher = this.summaryWatchers.get(op.clientId as string);
|
|
380
386
|
if (watcher) {
|
|
381
387
|
summary = watcher.tryGetSummary(op.clientSequenceNumber);
|
|
382
388
|
if (summary) {
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
import { assert } from "@fluidframework/common-utils";
|
|
7
7
|
import { IDocumentStorageService } from "@fluidframework/driver-definitions";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
readAndParse,
|
|
10
|
+
blobHeadersBlobName as blobNameForBlobHeaders,
|
|
11
|
+
} from "@fluidframework/driver-utils";
|
|
9
12
|
import {
|
|
10
13
|
ISequencedDocumentMessage,
|
|
11
14
|
ISnapshotTree,
|
|
@@ -153,6 +156,7 @@ export const chunksBlobName = ".chunks";
|
|
|
153
156
|
export const electedSummarizerBlobName = ".electedSummarizer";
|
|
154
157
|
export const blobsTreeName = ".blobs";
|
|
155
158
|
export const idCompressorBlobName = ".idCompressor";
|
|
159
|
+
export const blobHeadersBlobName = blobNameForBlobHeaders;
|
|
156
160
|
|
|
157
161
|
export function rootHasIsolatedChannels(metadata?: IContainerRuntimeMetadata): boolean {
|
|
158
162
|
return !!metadata && !metadata.disableIsolatedChannels;
|
|
@@ -3,7 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
ITelemetryLoggerExt,
|
|
8
|
+
PerformanceEvent,
|
|
9
|
+
LoggingError,
|
|
10
|
+
ChildLogger,
|
|
11
|
+
} from "@fluidframework/telemetry-utils";
|
|
12
|
+
import { ITelemetryProperties } from "@fluidframework/core-interfaces";
|
|
13
|
+
|
|
7
14
|
import {
|
|
8
15
|
assert,
|
|
9
16
|
Deferred,
|
|
@@ -12,7 +19,6 @@ import {
|
|
|
12
19
|
Timer,
|
|
13
20
|
} from "@fluidframework/common-utils";
|
|
14
21
|
import { MessageType } from "@fluidframework/protocol-definitions";
|
|
15
|
-
import { PerformanceEvent, LoggingError, ChildLogger } from "@fluidframework/telemetry-utils";
|
|
16
22
|
import { getRetryDelaySecondsFromError } from "@fluidframework/driver-utils";
|
|
17
23
|
import { DriverErrorType } from "@fluidframework/driver-definitions";
|
|
18
24
|
import {
|
|
@@ -28,6 +34,8 @@ import {
|
|
|
28
34
|
ISummaryCancellationToken,
|
|
29
35
|
ISummarizeTelemetryProperties,
|
|
30
36
|
SummaryGeneratorTelemetry,
|
|
37
|
+
SummaryStage,
|
|
38
|
+
SubmitSummaryFailureData,
|
|
31
39
|
} from "./summarizerTypes";
|
|
32
40
|
import { IClientSummaryWatcher } from "./summaryCollection";
|
|
33
41
|
|
|
@@ -125,7 +133,9 @@ export const getFailMessage = (errorCode: keyof typeof summarizeErrors) =>
|
|
|
125
133
|
`${errorCode}: ${summarizeErrors[errorCode]}`;
|
|
126
134
|
|
|
127
135
|
export class SummarizeResultBuilder {
|
|
128
|
-
public readonly summarySubmitted = new Deferred<
|
|
136
|
+
public readonly summarySubmitted = new Deferred<
|
|
137
|
+
SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>
|
|
138
|
+
>();
|
|
129
139
|
public readonly summaryOpBroadcasted = new Deferred<
|
|
130
140
|
SummarizeResultPart<IBroadcastSummaryResult>
|
|
131
141
|
>();
|
|
@@ -136,6 +146,7 @@ export class SummarizeResultBuilder {
|
|
|
136
146
|
public fail(
|
|
137
147
|
message: string,
|
|
138
148
|
error: any,
|
|
149
|
+
stage: SummaryStage = "unknown",
|
|
139
150
|
nackSummaryResult?: INackSummaryResult,
|
|
140
151
|
retryAfterSeconds?: number,
|
|
141
152
|
) {
|
|
@@ -151,7 +162,7 @@ export class SummarizeResultBuilder {
|
|
|
151
162
|
error,
|
|
152
163
|
retryAfterSeconds,
|
|
153
164
|
} as const;
|
|
154
|
-
this.summarySubmitted.resolve(result);
|
|
165
|
+
this.summarySubmitted.resolve({ ...result, data: { stage } });
|
|
155
166
|
this.summaryOpBroadcasted.resolve(result);
|
|
156
167
|
this.receivedSummaryAckOrNack.resolve({ ...result, data: nackSummaryResult });
|
|
157
168
|
}
|
|
@@ -164,6 +175,20 @@ export class SummarizeResultBuilder {
|
|
|
164
175
|
}
|
|
165
176
|
}
|
|
166
177
|
|
|
178
|
+
/**
|
|
179
|
+
* Errors type for errors hit during summary that may be retriable.
|
|
180
|
+
*/
|
|
181
|
+
export class RetriableSummaryError extends LoggingError {
|
|
182
|
+
public readonly canRetry = this.retryAfterSeconds !== undefined;
|
|
183
|
+
constructor(
|
|
184
|
+
message: string,
|
|
185
|
+
public readonly retryAfterSeconds?: number,
|
|
186
|
+
props?: ITelemetryProperties,
|
|
187
|
+
) {
|
|
188
|
+
super(message, props);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
167
192
|
/**
|
|
168
193
|
* This class generates and tracks a summary attempt.
|
|
169
194
|
*/
|
|
@@ -177,7 +202,7 @@ export class SummaryGenerator {
|
|
|
177
202
|
) => Promise<SubmitSummaryResult>,
|
|
178
203
|
private readonly successfulSummaryCallback: () => void,
|
|
179
204
|
private readonly summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">,
|
|
180
|
-
private readonly logger:
|
|
205
|
+
private readonly logger: ITelemetryLoggerExt,
|
|
181
206
|
) {
|
|
182
207
|
this.summarizeTimer = new Timer(maxSummarizeTimeoutTime, () =>
|
|
183
208
|
this.summarizeTimerHandler(maxSummarizeTimeoutTime, 1),
|
|
@@ -238,6 +263,7 @@ export class SummaryGenerator {
|
|
|
238
263
|
{ start: true, end: true, cancel: "generic" },
|
|
239
264
|
);
|
|
240
265
|
|
|
266
|
+
let summaryData: SubmitSummaryResult | undefined;
|
|
241
267
|
const fail = (
|
|
242
268
|
errorCode: keyof typeof summarizeErrors,
|
|
243
269
|
error?: any,
|
|
@@ -266,14 +292,15 @@ export class SummaryGenerator {
|
|
|
266
292
|
},
|
|
267
293
|
error ?? reason,
|
|
268
294
|
); // disconnect & summaryAckTimeout do not have proper error.
|
|
269
|
-
|
|
295
|
+
|
|
296
|
+
// If summarize did not hit an unexpected error, summaryData would be available. Otherwise, the state is
|
|
297
|
+
// unknown.
|
|
298
|
+
const stage = summaryData?.stage ?? "unknown";
|
|
299
|
+
resultsBuilder.fail(reason, error, stage, nackSummaryResult, retryAfterSeconds);
|
|
270
300
|
};
|
|
271
301
|
|
|
272
302
|
// Wait to generate and send summary
|
|
273
303
|
this.summarizeTimer.start();
|
|
274
|
-
|
|
275
|
-
// Use record type to prevent unexpected value types
|
|
276
|
-
let summaryData: SubmitSummaryResult | undefined;
|
|
277
304
|
try {
|
|
278
305
|
// Need to save refSeqNum before we record new attempt (happens as part of submitSummaryCallback)
|
|
279
306
|
const lastAttemptRefSeqNum = this.heuristicData.lastAttempt.refSequenceNumber;
|
|
@@ -355,10 +382,10 @@ export class SummaryGenerator {
|
|
|
355
382
|
cancellationToken,
|
|
356
383
|
);
|
|
357
384
|
if (waitBroadcastResult.result === "cancelled") {
|
|
358
|
-
return fail("disconnect");
|
|
385
|
+
return fail("disconnect", summaryData.stage);
|
|
359
386
|
}
|
|
360
387
|
if (waitBroadcastResult.result !== "done") {
|
|
361
|
-
return fail("summaryOpWaitTimeout");
|
|
388
|
+
return fail("summaryOpWaitTimeout", summaryData.stage);
|
|
362
389
|
}
|
|
363
390
|
const summarizeOp = waitBroadcastResult.value;
|
|
364
391
|
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
IEvent,
|
|
9
|
-
IEventProvider,
|
|
10
|
-
ITelemetryLogger,
|
|
11
|
-
} from "@fluidframework/common-definitions";
|
|
6
|
+
import { IEvent, IEventProvider } from "@fluidframework/common-definitions";
|
|
7
|
+
import { IDisposable } from "@fluidframework/core-interfaces";
|
|
12
8
|
import { assert } from "@fluidframework/common-utils";
|
|
13
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
ChildLogger,
|
|
11
|
+
ITelemetryLoggerExt,
|
|
12
|
+
PerformanceEvent,
|
|
13
|
+
} from "@fluidframework/telemetry-utils";
|
|
14
14
|
import { DriverErrorType } from "@fluidframework/driver-definitions";
|
|
15
15
|
import { IThrottler } from "../throttler";
|
|
16
16
|
import { ISummarizerClientElection } from "./summarizerClientElection";
|
|
@@ -74,7 +74,7 @@ export interface ISummaryManagerConfig {
|
|
|
74
74
|
* stopping existing summarizer client.
|
|
75
75
|
*/
|
|
76
76
|
export class SummaryManager implements IDisposable {
|
|
77
|
-
private readonly logger:
|
|
77
|
+
private readonly logger: ITelemetryLoggerExt;
|
|
78
78
|
private readonly opsToBypassInitialDelay: number;
|
|
79
79
|
private readonly initialDelayMs: number;
|
|
80
80
|
private latestClientId: string | undefined;
|
|
@@ -97,7 +97,7 @@ export class SummaryManager implements IDisposable {
|
|
|
97
97
|
SummaryCollection,
|
|
98
98
|
"opsSinceLastAck" | "addOpListener" | "removeOpListener"
|
|
99
99
|
>,
|
|
100
|
-
parentLogger:
|
|
100
|
+
parentLogger: ITelemetryLoggerExt,
|
|
101
101
|
/** Creates summarizer by asking interactive container to spawn summarizing container and
|
|
102
102
|
* get back its Summarizer instance. */
|
|
103
103
|
private readonly requestSummarizerFn: () => Promise<ISummarizer>,
|