@fluidframework/container-runtime 2.0.0-dev-rc.5.0.0.263932 → 2.0.0-dev-rc.5.0.0.267932
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/api-report/container-runtime.api.md +43 -53
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +4 -4
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +1 -1
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +3 -3
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +3 -3
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +2 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +14 -14
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.d.ts +2 -1
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +12 -19
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +74 -120
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +7 -8
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +3 -3
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerProxies.d.ts +4 -3
- package/dist/deltaManagerProxies.d.ts.map +1 -1
- package/dist/deltaManagerProxies.js.map +1 -1
- package/dist/deltaScheduler.d.ts +2 -1
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +1 -3
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +18 -21
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +11 -30
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +3 -30
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +1 -3
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +2 -3
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/dist/gc/gcSummaryDefinitions.d.ts +1 -1
- package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/dist/gc/gcSummaryDefinitions.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +2 -35
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +9 -62
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +1 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +2 -2
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -1
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +1 -2
- package/dist/gc/index.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/legacy.d.ts +1 -1
- package/dist/messageTypes.d.ts +1 -1
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +2 -2
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +11 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +13 -2
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +10 -3
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +7 -0
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +4 -2
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +12 -7
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +10 -0
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +12 -17
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/opProperties.d.ts +1 -1
- package/dist/opProperties.d.ts.map +1 -1
- package/dist/opProperties.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.js.map +1 -1
- package/dist/scheduleManager.d.ts +2 -1
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js.map +1 -1
- package/dist/storageServiceWithAttachBlobs.js.map +1 -1
- package/dist/summary/documentSchema.js +1 -1
- package/dist/summary/documentSchema.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.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +4 -2
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +35 -13
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +1 -6
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +22 -108
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +1 -1
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +4 -1
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js +2 -2
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +3 -3
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +16 -16
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- 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 +2 -3
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +17 -29
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +2 -1
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +11 -11
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +3 -3
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +2 -2
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +7 -8
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +26 -22
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/throttler.js.map +1 -1
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +4 -4
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +1 -1
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +3 -3
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +3 -3
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +2 -1
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +2 -2
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerHandleContext.d.ts +2 -1
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +12 -19
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +68 -114
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +7 -8
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +3 -3
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerProxies.d.ts +4 -3
- package/lib/deltaManagerProxies.d.ts.map +1 -1
- package/lib/deltaManagerProxies.js.map +1 -1
- package/lib/deltaScheduler.d.ts +2 -1
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +1 -3
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +18 -21
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +12 -31
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +3 -30
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +0 -2
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +2 -3
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/lib/gc/gcSummaryDefinitions.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts +2 -35
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +4 -57
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +1 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +2 -2
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -1
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -1
- package/lib/gc/index.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/legacy.d.ts +1 -1
- package/lib/messageTypes.d.ts +1 -1
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +2 -2
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts +11 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +13 -2
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +10 -3
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +7 -0
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +4 -2
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +12 -7
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +10 -0
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +12 -17
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/opProperties.d.ts +1 -1
- package/lib/opProperties.d.ts.map +1 -1
- package/lib/opProperties.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.js.map +1 -1
- package/lib/scheduleManager.d.ts +2 -1
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js.map +1 -1
- package/lib/storageServiceWithAttachBlobs.js.map +1 -1
- package/lib/summary/documentSchema.js +1 -1
- package/lib/summary/documentSchema.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.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +4 -2
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +35 -13
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +1 -6
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +21 -107
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +1 -1
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +4 -1
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +3 -3
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +14 -14
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- 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 +2 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +17 -29
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +2 -1
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +3 -3
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +3 -3
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +2 -2
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +7 -8
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +25 -21
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/throttler.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +72 -24
- package/src/batchTracker.ts +1 -1
- package/src/blobManager.ts +7 -7
- package/src/channelCollection.ts +8 -9
- package/src/connectionTelemetry.ts +14 -6
- package/src/containerHandleContext.ts +2 -1
- package/src/containerRuntime.ts +88 -141
- package/src/dataStore.ts +2 -1
- package/src/dataStoreContext.ts +16 -17
- package/src/deltaManagerProxies.ts +7 -5
- package/src/deltaScheduler.ts +2 -1
- package/src/gc/garbageCollection.md +0 -8
- package/src/gc/garbageCollection.ts +20 -25
- package/src/gc/gcConfigs.ts +8 -34
- package/src/gc/gcDefinitions.ts +4 -31
- package/src/gc/gcHelpers.ts +2 -2
- package/src/gc/gcSummaryDefinitions.ts +1 -1
- package/src/gc/gcSummaryStateTracker.ts +7 -73
- package/src/gc/gcTelemetry.ts +2 -2
- package/src/gc/index.ts +0 -1
- package/src/index.ts +1 -1
- package/src/messageTypes.ts +1 -1
- package/src/opLifecycle/README.md +120 -160
- package/src/opLifecycle/definitions.ts +2 -2
- package/src/opLifecycle/opCompressor.ts +13 -2
- package/src/opLifecycle/opDecompressor.ts +1 -1
- package/src/opLifecycle/opGroupingManager.ts +11 -4
- package/src/opLifecycle/opSplitter.ts +13 -8
- package/src/opLifecycle/outbox.ts +12 -27
- package/src/opLifecycle/remoteMessageProcessor.ts +2 -1
- package/src/opProperties.ts +2 -4
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +1 -1
- package/src/scheduleManager.ts +2 -1
- package/src/summary/index.ts +1 -1
- package/src/summary/orderedClientElection.ts +83 -12
- package/src/summary/runningSummarizer.ts +31 -115
- package/src/summary/summarizer.ts +5 -2
- package/src/summary/summarizerClientElection.ts +2 -1
- package/src/summary/summarizerNode/summarizerNode.ts +19 -31
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +2 -1
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +4 -8
- package/src/summary/summarizerTypes.ts +22 -33
- package/src/summary/summaryCollection.ts +2 -2
- package/src/summary/summaryFormat.ts +9 -7
- package/src/summary/summaryGenerator.ts +51 -29
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { IDeltaManager, ContainerWarning } from "@fluidframework/container-definitions/internal";
|
|
7
|
-
import { IEvent, IEventProvider, ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
8
7
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
IEvent,
|
|
9
|
+
IEventProvider,
|
|
10
|
+
ITelemetryBaseProperties,
|
|
11
|
+
ITelemetryBaseLogger,
|
|
12
|
+
} from "@fluidframework/core-interfaces";
|
|
13
|
+
import { ISequencedDocumentMessage, ISummaryTree } from "@fluidframework/driver-definitions";
|
|
14
|
+
import { IDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
15
|
+
import { ISummaryStats } from "@fluidframework/runtime-definitions/internal";
|
|
14
16
|
import {
|
|
15
17
|
ITelemetryLoggerExt,
|
|
16
18
|
ITelemetryLoggerPropertyBag,
|
|
@@ -90,7 +92,7 @@ export interface IConnectableRuntime {
|
|
|
90
92
|
* @alpha
|
|
91
93
|
*/
|
|
92
94
|
export interface ISummarizerRuntime extends IConnectableRuntime {
|
|
93
|
-
readonly
|
|
95
|
+
readonly baseLogger: ITelemetryBaseLogger;
|
|
94
96
|
/** clientId of parent (non-summarizing) container that owns summarizer container */
|
|
95
97
|
readonly summarizerClientId: string | undefined;
|
|
96
98
|
readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
|
|
@@ -113,13 +115,6 @@ export interface ISummarizerRuntime extends IConnectableRuntime {
|
|
|
113
115
|
export interface ISummarizeOptions {
|
|
114
116
|
/** True to generate the full tree with no handle reuse optimizations; defaults to false */
|
|
115
117
|
readonly fullTree?: boolean;
|
|
116
|
-
/**
|
|
117
|
-
* True to ask the server what the latest summary is first; defaults to false
|
|
118
|
-
*
|
|
119
|
-
* @deprecated Summarize will not refresh latest snapshot state anymore. Instead it updates the cache and closes.
|
|
120
|
-
* It's expected a new summarizer client will be created, likely by the same parent.
|
|
121
|
-
*/
|
|
122
|
-
readonly refreshLatestAck?: boolean;
|
|
123
118
|
}
|
|
124
119
|
|
|
125
120
|
/**
|
|
@@ -183,14 +178,22 @@ export interface IGeneratedSummaryStats extends ISummaryStats {
|
|
|
183
178
|
readonly summaryNumber: number;
|
|
184
179
|
}
|
|
185
180
|
|
|
181
|
+
/**
|
|
182
|
+
* Type for summarization failures that are retriable.
|
|
183
|
+
* @alpha
|
|
184
|
+
*/
|
|
185
|
+
export interface IRetriableFailureError extends Error {
|
|
186
|
+
readonly retryAfterSeconds?: number;
|
|
187
|
+
}
|
|
188
|
+
|
|
186
189
|
/**
|
|
187
190
|
* Base results for all submitSummary attempts.
|
|
188
191
|
* @alpha
|
|
189
192
|
*/
|
|
190
193
|
export interface IBaseSummarizeResult {
|
|
191
194
|
readonly stage: "base";
|
|
192
|
-
/**
|
|
193
|
-
readonly error:
|
|
195
|
+
/** Retriable error object related to failed summarize attempt. */
|
|
196
|
+
readonly error: IRetriableFailureError | undefined;
|
|
194
197
|
/** Reference sequence number as of the generate summary attempt. */
|
|
195
198
|
readonly referenceSequenceNumber: number;
|
|
196
199
|
readonly minimumSequenceNumber: number;
|
|
@@ -208,8 +211,6 @@ export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "
|
|
|
208
211
|
readonly summaryStats: IGeneratedSummaryStats;
|
|
209
212
|
/** Time it took to generate the summary tree and stats. */
|
|
210
213
|
readonly generateDuration: number;
|
|
211
|
-
/** True if the full tree regeneration with no handle reuse optimizations was forced. */
|
|
212
|
-
readonly forcedFullTree: boolean;
|
|
213
214
|
}
|
|
214
215
|
|
|
215
216
|
/**
|
|
@@ -265,19 +266,11 @@ export type SubmitSummaryResult =
|
|
|
265
266
|
*/
|
|
266
267
|
export type SummaryStage = SubmitSummaryResult["stage"] | "unknown";
|
|
267
268
|
|
|
268
|
-
/**
|
|
269
|
-
* Type for summarization failures that are retriable.
|
|
270
|
-
* @alpha
|
|
271
|
-
*/
|
|
272
|
-
export interface IRetriableFailureResult {
|
|
273
|
-
readonly retryAfterSeconds?: number;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
269
|
/**
|
|
277
270
|
* The data in summarizer result when submit summary stage fails.
|
|
278
271
|
* @alpha
|
|
279
272
|
*/
|
|
280
|
-
export interface SubmitSummaryFailureData
|
|
273
|
+
export interface SubmitSummaryFailureData {
|
|
281
274
|
stage: SummaryStage;
|
|
282
275
|
}
|
|
283
276
|
|
|
@@ -300,7 +293,7 @@ export interface IAckSummaryResult {
|
|
|
300
293
|
/**
|
|
301
294
|
* @alpha
|
|
302
295
|
*/
|
|
303
|
-
export interface INackSummaryResult
|
|
296
|
+
export interface INackSummaryResult {
|
|
304
297
|
readonly summaryNackOp: ISummaryNackMessage;
|
|
305
298
|
readonly ackNackDuration: number;
|
|
306
299
|
}
|
|
@@ -317,7 +310,7 @@ export type SummarizeResultPart<TSuccess, TFailure = undefined> =
|
|
|
317
310
|
success: false;
|
|
318
311
|
data: TFailure | undefined;
|
|
319
312
|
message: string;
|
|
320
|
-
error:
|
|
313
|
+
error: IRetriableFailureError;
|
|
321
314
|
};
|
|
322
315
|
|
|
323
316
|
/**
|
|
@@ -535,10 +528,6 @@ type ISummarizeTelemetryRequiredProperties =
|
|
|
535
528
|
type ISummarizeTelemetryOptionalProperties =
|
|
536
529
|
/** Number of attempts within the last time window, used for calculating the throttle delay. */
|
|
537
530
|
| "summaryAttempts"
|
|
538
|
-
/** Number of attempts within the current phase (currently capped at 2 ) */
|
|
539
|
-
| "summaryAttemptsPerPhase"
|
|
540
|
-
/** One-based count of phases we've attempted (used to index into an array of ISummarizeOptions */
|
|
541
|
-
| "summaryAttemptPhase"
|
|
542
531
|
/** Summarization may be attempted multiple times. This tells whether this is the final summarization attempt */
|
|
543
532
|
| "finalAttempt"
|
|
544
533
|
| keyof ISummarizeOptions;
|
|
@@ -7,14 +7,14 @@ import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
|
7
7
|
import { IDeltaManager } from "@fluidframework/container-definitions/internal";
|
|
8
8
|
import { IDisposable, IEvent } from "@fluidframework/core-interfaces";
|
|
9
9
|
import { assert, Deferred } from "@fluidframework/core-utils/internal";
|
|
10
|
+
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
|
|
10
11
|
import {
|
|
11
12
|
IDocumentMessage,
|
|
12
|
-
ISequencedDocumentMessage,
|
|
13
13
|
ISummaryAck,
|
|
14
14
|
ISummaryContent,
|
|
15
15
|
ISummaryNack,
|
|
16
16
|
MessageType,
|
|
17
|
-
} from "@fluidframework/
|
|
17
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
18
18
|
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -4,18 +4,20 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
-
import {
|
|
7
|
+
import { ISequencedDocumentMessage, SummaryType } from "@fluidframework/driver-definitions";
|
|
8
|
+
import {
|
|
9
|
+
IDocumentStorageService,
|
|
10
|
+
ISnapshotTree,
|
|
11
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
8
12
|
import {
|
|
9
13
|
blobHeadersBlobName as blobNameForBlobHeaders,
|
|
10
14
|
readAndParse,
|
|
11
15
|
} from "@fluidframework/driver-utils/internal";
|
|
12
16
|
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} from "@fluidframework/
|
|
17
|
-
import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
|
|
18
|
-
import { channelsTreeName, gcTreeKey } from "@fluidframework/runtime-definitions/internal";
|
|
17
|
+
ISummaryTreeWithStats,
|
|
18
|
+
channelsTreeName,
|
|
19
|
+
gcTreeKey,
|
|
20
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
19
21
|
|
|
20
22
|
import { IGCMetadata } from "../gc/index.js";
|
|
21
23
|
|
|
@@ -11,9 +11,8 @@ import {
|
|
|
11
11
|
IPromiseTimerResult,
|
|
12
12
|
Timer,
|
|
13
13
|
} from "@fluidframework/core-utils/internal";
|
|
14
|
-
import { DriverErrorTypes } from "@fluidframework/driver-definitions/internal";
|
|
14
|
+
import { DriverErrorTypes, MessageType } from "@fluidframework/driver-definitions/internal";
|
|
15
15
|
import { getRetryDelaySecondsFromError } from "@fluidframework/driver-utils/internal";
|
|
16
|
-
import { MessageType } from "@fluidframework/protocol-definitions";
|
|
17
16
|
import {
|
|
18
17
|
isFluidError,
|
|
19
18
|
ITelemetryLoggerExt,
|
|
@@ -35,6 +34,7 @@ import {
|
|
|
35
34
|
SubmitSummaryResult,
|
|
36
35
|
SummarizeResultPart,
|
|
37
36
|
SummaryGeneratorTelemetry,
|
|
37
|
+
type IRetriableFailureError,
|
|
38
38
|
} from "./summarizerTypes.js";
|
|
39
39
|
import { IClientSummaryWatcher } from "./summaryCollection.js";
|
|
40
40
|
|
|
@@ -127,8 +127,10 @@ const summarizeErrors = {
|
|
|
127
127
|
disconnect: "Summary cancelled due to summarizer or main client disconnect",
|
|
128
128
|
} as const;
|
|
129
129
|
|
|
130
|
+
export type SummarizeErrorCode = keyof typeof summarizeErrors;
|
|
131
|
+
|
|
130
132
|
// Helper functions to report failures and return.
|
|
131
|
-
export const getFailMessage = (errorCode:
|
|
133
|
+
export const getFailMessage = (errorCode: SummarizeErrorCode) =>
|
|
132
134
|
`${errorCode}: ${summarizeErrors[errorCode]}`;
|
|
133
135
|
|
|
134
136
|
export class SummarizeResultBuilder {
|
|
@@ -150,7 +152,7 @@ export class SummarizeResultBuilder {
|
|
|
150
152
|
*/
|
|
151
153
|
public fail(
|
|
152
154
|
message: string,
|
|
153
|
-
error:
|
|
155
|
+
error: IRetriableFailureError,
|
|
154
156
|
submitFailureResult?: SubmitSummaryFailureData,
|
|
155
157
|
nackSummaryResult?: INackSummaryResult,
|
|
156
158
|
) {
|
|
@@ -184,8 +186,7 @@ export class SummarizeResultBuilder {
|
|
|
184
186
|
/**
|
|
185
187
|
* Errors type for errors hit during summary that may be retriable.
|
|
186
188
|
*/
|
|
187
|
-
export class RetriableSummaryError extends LoggingError {
|
|
188
|
-
public readonly canRetry = this.retryAfterSeconds !== undefined;
|
|
189
|
+
export class RetriableSummaryError extends LoggingError implements IRetriableFailureError {
|
|
189
190
|
constructor(
|
|
190
191
|
message: string,
|
|
191
192
|
public readonly retryAfterSeconds?: number,
|
|
@@ -221,9 +222,8 @@ export class SummaryGenerator {
|
|
|
221
222
|
/**
|
|
222
223
|
* Generates summary and listens for broadcast and ack/nack.
|
|
223
224
|
* Returns true for ack, false for nack, and undefined for failure or timeout.
|
|
224
|
-
* @param
|
|
225
|
-
* @param
|
|
226
|
-
* fullTree to generate tree without any summary handles even if unchanged
|
|
225
|
+
* @param summaryOptions - options controlling how the summary is generated or submitted.
|
|
226
|
+
* @param resultsBuilder - optional, result builder to use to build pass or fail result.
|
|
227
227
|
*/
|
|
228
228
|
public summarize(
|
|
229
229
|
summaryOptions: ISubmitSummaryOptions,
|
|
@@ -273,8 +273,8 @@ export class SummaryGenerator {
|
|
|
273
273
|
* be provided. For op broadcast failures, only errors / properties should be provided.
|
|
274
274
|
*/
|
|
275
275
|
const fail = (
|
|
276
|
-
errorCode:
|
|
277
|
-
error
|
|
276
|
+
errorCode: SummarizeErrorCode,
|
|
277
|
+
error: IRetriableFailureError,
|
|
278
278
|
properties?: SummaryGeneratorTelemetry,
|
|
279
279
|
submitFailureResult?: SubmitSummaryFailureData,
|
|
280
280
|
nackSummaryResult?: INackSummaryResult,
|
|
@@ -294,11 +294,9 @@ export class SummaryGenerator {
|
|
|
294
294
|
...properties,
|
|
295
295
|
reason,
|
|
296
296
|
category,
|
|
297
|
-
retryAfterSeconds:
|
|
298
|
-
submitFailureResult?.retryAfterSeconds ??
|
|
299
|
-
nackSummaryResult?.retryAfterSeconds,
|
|
297
|
+
retryAfterSeconds: error.retryAfterSeconds,
|
|
300
298
|
},
|
|
301
|
-
error
|
|
299
|
+
error,
|
|
302
300
|
); // disconnect & summaryAckTimeout do not have proper error.
|
|
303
301
|
|
|
304
302
|
resultsBuilder.fail(reason, error, submitFailureResult, nackSummaryResult);
|
|
@@ -330,9 +328,11 @@ export class SummaryGenerator {
|
|
|
330
328
|
);
|
|
331
329
|
|
|
332
330
|
if (summaryData.stage !== "submit") {
|
|
333
|
-
|
|
331
|
+
const errorCode: SummarizeErrorCode = "submitSummaryFailure";
|
|
332
|
+
const retriableError =
|
|
333
|
+
summaryData.error ?? new RetriableSummaryError(getFailMessage(errorCode));
|
|
334
|
+
return fail(errorCode, retriableError, summarizeTelemetryProps, {
|
|
334
335
|
stage: summaryData.stage,
|
|
335
|
-
retryAfterSeconds: getRetryDelaySecondsFromError(summaryData.error),
|
|
336
336
|
});
|
|
337
337
|
}
|
|
338
338
|
|
|
@@ -346,7 +346,7 @@ export class SummaryGenerator {
|
|
|
346
346
|
* state change of multiple data stores. So, the total number of data stores that are summarized should not
|
|
347
347
|
* exceed the number of ops since last summary + number of data store whose reference state changed.
|
|
348
348
|
*/
|
|
349
|
-
if (!submitSummaryOptions.fullTree
|
|
349
|
+
if (!submitSummaryOptions.fullTree) {
|
|
350
350
|
const { summarizedDataStoreCount, gcStateUpdatedDataStoreCount = 0 } =
|
|
351
351
|
summaryData.summaryStats;
|
|
352
352
|
if (
|
|
@@ -368,11 +368,14 @@ export class SummaryGenerator {
|
|
|
368
368
|
} catch (error) {
|
|
369
369
|
return fail(
|
|
370
370
|
"submitSummaryFailure",
|
|
371
|
-
wrapError(
|
|
371
|
+
wrapError(
|
|
372
|
+
error,
|
|
373
|
+
(message) =>
|
|
374
|
+
new RetriableSummaryError(message, getRetryDelaySecondsFromError(error)),
|
|
375
|
+
),
|
|
372
376
|
undefined /* properties */,
|
|
373
377
|
{
|
|
374
378
|
stage: "unknown",
|
|
375
|
-
retryAfterSeconds: getRetryDelaySecondsFromError(error),
|
|
376
379
|
},
|
|
377
380
|
);
|
|
378
381
|
} finally {
|
|
@@ -393,10 +396,17 @@ export class SummaryGenerator {
|
|
|
393
396
|
cancellationToken,
|
|
394
397
|
);
|
|
395
398
|
if (waitBroadcastResult.result === "cancelled") {
|
|
396
|
-
|
|
399
|
+
const errorCode: SummarizeErrorCode = "disconnect";
|
|
400
|
+
return fail(errorCode, new RetriableSummaryError(getFailMessage(errorCode)));
|
|
397
401
|
}
|
|
398
402
|
if (waitBroadcastResult.result !== "done") {
|
|
399
|
-
|
|
403
|
+
// The summary op may not have been received within the timeout due to a transient error. So,
|
|
404
|
+
// fail with a retriable error to re-attempt the summary if possible.
|
|
405
|
+
const errorCode: SummarizeErrorCode = "summaryOpWaitTimeout";
|
|
406
|
+
return fail(
|
|
407
|
+
errorCode,
|
|
408
|
+
new RetriableSummaryError(getFailMessage(errorCode), 0 /* retryAfterSeconds */),
|
|
409
|
+
);
|
|
400
410
|
}
|
|
401
411
|
const summarizeOp = waitBroadcastResult.value;
|
|
402
412
|
|
|
@@ -422,10 +432,17 @@ export class SummaryGenerator {
|
|
|
422
432
|
cancellationToken,
|
|
423
433
|
);
|
|
424
434
|
if (waitAckNackResult.result === "cancelled") {
|
|
425
|
-
|
|
435
|
+
const errorCode: SummarizeErrorCode = "disconnect";
|
|
436
|
+
return fail(errorCode, new RetriableSummaryError(getFailMessage(errorCode)));
|
|
426
437
|
}
|
|
427
438
|
if (waitAckNackResult.result !== "done") {
|
|
428
|
-
|
|
439
|
+
const errorCode: SummarizeErrorCode = "summaryAckWaitTimeout";
|
|
440
|
+
// The summary ack may not have been received within the timeout due to a transient error. So,
|
|
441
|
+
// fail with a retriable error to re-attempt the summary if possible.
|
|
442
|
+
return fail(
|
|
443
|
+
errorCode,
|
|
444
|
+
new RetriableSummaryError(getFailMessage(errorCode), 0 /* retryAfterSeconds */),
|
|
445
|
+
);
|
|
429
446
|
}
|
|
430
447
|
const ackNackOp = waitAckNackResult.value;
|
|
431
448
|
this.pendingAckTimer.clear();
|
|
@@ -469,11 +486,16 @@ export class SummaryGenerator {
|
|
|
469
486
|
const errorMessage = summaryNack?.message;
|
|
470
487
|
const retryAfterSeconds = summaryNack?.retryAfter;
|
|
471
488
|
|
|
489
|
+
const errorCode: SummarizeErrorCode = "summaryNack";
|
|
490
|
+
|
|
472
491
|
// pre-0.58 error message prefix: summaryNack
|
|
473
|
-
const error = new
|
|
492
|
+
const error = new RetriableSummaryError(
|
|
493
|
+
getFailMessage(errorCode),
|
|
474
494
|
retryAfterSeconds,
|
|
475
|
-
|
|
476
|
-
|
|
495
|
+
{
|
|
496
|
+
errorMessage,
|
|
497
|
+
},
|
|
498
|
+
);
|
|
477
499
|
|
|
478
500
|
assert(
|
|
479
501
|
getRetryDelaySecondsFromError(error) === retryAfterSeconds,
|
|
@@ -481,11 +503,11 @@ export class SummaryGenerator {
|
|
|
481
503
|
);
|
|
482
504
|
// This will only set resultsBuilder.receivedSummaryAckOrNack, as other promises are already set.
|
|
483
505
|
return fail(
|
|
484
|
-
|
|
506
|
+
errorCode,
|
|
485
507
|
error,
|
|
486
508
|
{ ...summarizeTelemetryProps, nackRetryAfter: retryAfterSeconds },
|
|
487
509
|
undefined /* submitFailureResult */,
|
|
488
|
-
{ summaryNackOp: ackNackOp, ackNackDuration
|
|
510
|
+
{ summaryNackOp: ackNackOp, ackNackDuration },
|
|
489
511
|
);
|
|
490
512
|
}
|
|
491
513
|
} finally {
|