@fluidframework/container-runtime 2.13.0 → 2.21.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/.eslintrc.cjs +71 -5
- package/CHANGELOG.md +84 -0
- package/api-report/container-runtime.legacy.alpha.api.md +38 -232
- package/dist/batchTracker.d.ts +1 -2
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +1 -1
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager/blobManager.d.ts +5 -1
- package/dist/blobManager/blobManager.d.ts.map +1 -1
- package/dist/blobManager/blobManager.js +30 -13
- package/dist/blobManager/blobManager.js.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
- package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.js +7 -5
- package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
- package/dist/channelCollection.d.ts +23 -12
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +85 -53
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +2 -2
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +10 -6
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.d.ts +1 -1
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +87 -94
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +312 -226
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +7 -3
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +8 -4
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +41 -25
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +47 -29
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +6 -2
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +7 -2
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +1 -1
- package/dist/dataStoreRegistry.d.ts.map +1 -1
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerProxies.d.ts +1 -17
- package/dist/deltaManagerProxies.d.ts.map +1 -1
- package/dist/deltaManagerProxies.js.map +1 -1
- package/dist/deltaScheduler.d.ts +9 -6
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +95 -89
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +21 -7
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +48 -19
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +11 -0
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +5 -2
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +218 -70
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +40 -13
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +6 -2
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +14 -7
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/dist/gc/gcSummaryDefinitions.d.ts +18 -6
- package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/dist/gc/gcSummaryDefinitions.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +2 -1
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +33 -11
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +35 -17
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +27 -9
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -0
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +3 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/inboundBatchAggregator.d.ts +34 -0
- package/dist/inboundBatchAggregator.d.ts.map +1 -0
- package/dist/inboundBatchAggregator.js +185 -0
- package/dist/inboundBatchAggregator.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layerCompatState.d.ts +19 -0
- package/dist/layerCompatState.d.ts.map +1 -0
- package/dist/layerCompatState.js +64 -0
- package/dist/layerCompatState.js.map +1 -0
- package/dist/legacy.d.ts +0 -4
- package/dist/messageTypes.d.ts +14 -5
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/metadata.d.ts +12 -4
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +6 -2
- package/dist/metadata.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts +9 -3
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +3 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
- package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
- package/dist/opLifecycle/duplicateBatchDetector.js +11 -5
- package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +3 -2
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +13 -19
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +6 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +16 -8
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +1 -2
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +9 -6
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +13 -10
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +16 -11
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +4 -4
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +17 -16
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
- 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/package.json +2 -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 +22 -11
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +24 -15
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/summary/documentSchema.d.ts +7 -0
- package/dist/summary/documentSchema.d.ts.map +1 -1
- package/dist/summary/documentSchema.js +8 -4
- 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 +94 -31
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +28 -16
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +7 -2
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +17 -6
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +48 -19
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +10 -5
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +26 -11
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js +1 -0
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +6 -2
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +13 -5
- package/dist/summary/summarizerHeuristics.js.map +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 +24 -8
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +45 -36
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +253 -135
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +3 -4
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +10 -8
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +28 -9
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +3 -2
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +9 -3
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +22 -9
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +8 -4
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +20 -9
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/throttler.d.ts +26 -10
- package/dist/throttler.d.ts.map +1 -1
- package/dist/throttler.js +12 -4
- package/dist/throttler.js.map +1 -1
- package/lib/batchTracker.d.ts +1 -2
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager/blobManager.d.ts +5 -1
- package/lib/blobManager/blobManager.d.ts.map +1 -1
- package/lib/blobManager/blobManager.js +30 -13
- package/lib/blobManager/blobManager.js.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
- package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.js +7 -5
- package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
- package/lib/channelCollection.d.ts +23 -12
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +88 -54
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +2 -2
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +11 -7
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerHandleContext.d.ts +1 -1
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +87 -94
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +319 -228
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts +7 -3
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +8 -4
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +41 -25
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +47 -29
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +6 -2
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +7 -2
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.d.ts +1 -1
- package/lib/dataStoreRegistry.d.ts.map +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerProxies.d.ts +1 -17
- package/lib/deltaManagerProxies.d.ts.map +1 -1
- package/lib/deltaManagerProxies.js.map +1 -1
- package/lib/deltaScheduler.d.ts +9 -6
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +96 -90
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +21 -7
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +51 -20
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +11 -0
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +4 -2
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +218 -70
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +40 -13
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +6 -2
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +14 -7
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
- package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/lib/gc/gcSummaryDefinitions.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +2 -1
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +33 -11
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +38 -18
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +27 -9
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -0
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -0
- package/lib/gc/index.js.map +1 -1
- package/lib/inboundBatchAggregator.d.ts +34 -0
- package/lib/inboundBatchAggregator.d.ts.map +1 -0
- package/lib/inboundBatchAggregator.js +181 -0
- package/lib/inboundBatchAggregator.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/layerCompatState.d.ts +19 -0
- package/lib/layerCompatState.d.ts.map +1 -0
- package/lib/layerCompatState.js +60 -0
- package/lib/layerCompatState.js.map +1 -0
- package/lib/legacy.d.ts +0 -4
- package/lib/messageTypes.d.ts +14 -5
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/metadata.d.ts +12 -4
- package/lib/metadata.d.ts.map +1 -1
- package/lib/metadata.js +6 -2
- package/lib/metadata.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts +9 -3
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +3 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
- package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
- package/lib/opLifecycle/duplicateBatchDetector.js +11 -5
- package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts +3 -2
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +14 -20
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +6 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +17 -9
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +1 -2
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +10 -7
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +13 -10
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +16 -11
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +4 -4
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +17 -16
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
- 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 +22 -11
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +25 -16
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/summary/documentSchema.d.ts +7 -0
- package/lib/summary/documentSchema.d.ts.map +1 -1
- package/lib/summary/documentSchema.js +8 -4
- 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 +94 -31
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +28 -16
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +7 -2
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +17 -6
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +48 -19
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +10 -5
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +26 -11
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js +1 -0
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +6 -2
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +13 -5
- package/lib/summary/summarizerHeuristics.js.map +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 +24 -8
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +45 -36
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +253 -135
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +3 -4
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +10 -8
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +28 -9
- 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 +9 -3
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +22 -9
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +8 -4
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +20 -9
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/throttler.d.ts +26 -10
- package/lib/throttler.d.ts.map +1 -1
- package/lib/throttler.js +12 -4
- package/lib/throttler.js.map +1 -1
- package/package.json +22 -31
- package/src/batchTracker.ts +34 -36
- package/src/blobManager/blobManager.ts +54 -33
- package/src/blobManager/blobManagerSnapSum.ts +10 -10
- package/src/channelCollection.ts +108 -82
- package/src/connectionTelemetry.ts +43 -19
- package/src/containerHandleContext.ts +2 -2
- package/src/containerRuntime.ts +492 -364
- package/src/dataStore.ts +17 -9
- package/src/dataStoreContext.ts +94 -73
- package/src/dataStoreContexts.ts +17 -12
- package/src/dataStoreRegistry.ts +1 -1
- package/src/deltaManagerProxies.ts +5 -5
- package/src/deltaScheduler.ts +24 -18
- package/src/gc/garbageCollection.ts +89 -40
- package/src/gc/gcConfigs.ts +13 -5
- package/src/gc/gcDefinitions.ts +224 -70
- package/src/gc/gcHelpers.ts +22 -11
- package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
- package/src/gc/gcSummaryDefinitions.ts +18 -6
- package/src/gc/gcSummaryStateTracker.ts +7 -3
- package/src/gc/gcTelemetry.ts +73 -30
- package/src/gc/gcUnreferencedStateTracker.ts +40 -16
- package/src/gc/index.ts +1 -0
- package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +55 -122
- package/src/index.ts +0 -3
- package/src/layerCompatState.ts +75 -0
- package/src/messageTypes.ts +16 -5
- package/src/metadata.ts +12 -4
- package/src/opLifecycle/README.md +43 -34
- package/src/opLifecycle/batchManager.ts +12 -6
- package/src/opLifecycle/duplicateBatchDetector.ts +12 -6
- package/src/opLifecycle/opCompressor.ts +22 -25
- package/src/opLifecycle/opDecompressor.ts +23 -11
- package/src/opLifecycle/opGroupingManager.ts +16 -11
- package/src/opLifecycle/opSplitter.ts +24 -18
- package/src/opLifecycle/outbox.ts +35 -33
- package/src/opLifecycle/remoteMessageProcessor.ts +13 -5
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +49 -26
- package/src/summary/documentSchema.ts +41 -22
- package/src/summary/index.ts +0 -3
- package/src/summary/orderedClientElection.ts +114 -49
- package/src/summary/runWhileConnectedCoordinator.ts +12 -3
- package/src/summary/runningSummarizer.ts +79 -36
- package/src/summary/summarizer.ts +51 -25
- package/src/summary/summarizerClientElection.ts +4 -2
- package/src/summary/summarizerHeuristics.ts +23 -12
- package/src/summary/summarizerNode/index.ts +1 -0
- package/src/summary/summarizerNode/summarizerNode.ts +54 -43
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +25 -15
- package/src/summary/summarizerTypes.ts +253 -139
- package/src/summary/summaryCollection.ts +41 -31
- package/src/summary/summaryFormat.ts +34 -13
- package/src/summary/summaryGenerator.ts +39 -18
- package/src/summary/summaryManager.ts +36 -24
- package/src/throttler.ts +23 -11
- package/container-runtime.test-files.tar +0 -0
- package/dist/scheduleManager.d.ts +0 -28
- package/dist/scheduleManager.d.ts.map +0 -1
- package/dist/scheduleManager.js +0 -233
- package/dist/scheduleManager.js.map +0 -1
- package/lib/scheduleManager.d.ts +0 -28
- package/lib/scheduleManager.d.ts.map +0 -1
- package/lib/scheduleManager.js +0 -229
- package/lib/scheduleManager.js.map +0 -1
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
7
7
|
import { IDeltaManager } from "@fluidframework/container-definitions/internal";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
IDisposable,
|
|
10
|
+
IEvent,
|
|
11
|
+
type ITelemetryBaseLogger,
|
|
12
|
+
} from "@fluidframework/core-interfaces";
|
|
9
13
|
import { assert, Deferred } from "@fluidframework/core-utils/internal";
|
|
10
14
|
import {
|
|
11
15
|
IDocumentMessage,
|
|
@@ -15,7 +19,10 @@ import {
|
|
|
15
19
|
MessageType,
|
|
16
20
|
ISequencedDocumentMessage,
|
|
17
21
|
} from "@fluidframework/driver-definitions/internal";
|
|
18
|
-
import {
|
|
22
|
+
import {
|
|
23
|
+
createChildLogger,
|
|
24
|
+
ITelemetryLoggerExt,
|
|
25
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
19
26
|
|
|
20
27
|
/**
|
|
21
28
|
* Interface for summary op messages with typed contents.
|
|
@@ -78,10 +85,10 @@ enum SummaryState {
|
|
|
78
85
|
}
|
|
79
86
|
|
|
80
87
|
class Summary implements ISummary {
|
|
81
|
-
public static createLocal(clientId: string, clientSequenceNumber: number) {
|
|
88
|
+
public static createLocal(clientId: string, clientSequenceNumber: number): Summary {
|
|
82
89
|
return new Summary(clientId, clientSequenceNumber);
|
|
83
90
|
}
|
|
84
|
-
public static createFromOp(op: ISummaryOpMessage) {
|
|
91
|
+
public static createFromOp(op: ISummaryOpMessage): Summary {
|
|
85
92
|
// TODO: Verify whether this should be able to handle server-generated ops (with null clientId)
|
|
86
93
|
|
|
87
94
|
const summary = new Summary(op.clientId as string, op.clientSequenceNumber);
|
|
@@ -97,10 +104,10 @@ class Summary implements ISummary {
|
|
|
97
104
|
private readonly defSummaryOp = new Deferred<void>();
|
|
98
105
|
private readonly defSummaryAck = new Deferred<void>();
|
|
99
106
|
|
|
100
|
-
public get summaryOp() {
|
|
107
|
+
public get summaryOp(): ISummaryOpMessage | undefined {
|
|
101
108
|
return this._summaryOp;
|
|
102
109
|
}
|
|
103
|
-
public get summaryAckNack() {
|
|
110
|
+
public get summaryAckNack(): ISummaryAckMessage | ISummaryNackMessage | undefined {
|
|
104
111
|
return this._summaryAckNack;
|
|
105
112
|
}
|
|
106
113
|
|
|
@@ -113,7 +120,7 @@ class Summary implements ISummary {
|
|
|
113
120
|
return this.state === SummaryState.Acked;
|
|
114
121
|
}
|
|
115
122
|
|
|
116
|
-
public broadcast(op: ISummaryOpMessage) {
|
|
123
|
+
public broadcast(op: ISummaryOpMessage): boolean {
|
|
117
124
|
assert(
|
|
118
125
|
this.state === SummaryState.Local,
|
|
119
126
|
0x175 /* "Can only broadcast if summarizer starts in local state" */,
|
|
@@ -124,7 +131,7 @@ class Summary implements ISummary {
|
|
|
124
131
|
return true;
|
|
125
132
|
}
|
|
126
133
|
|
|
127
|
-
public ackNack(op: ISummaryAckMessage | ISummaryNackMessage) {
|
|
134
|
+
public ackNack(op: ISummaryAckMessage | ISummaryNackMessage): boolean {
|
|
128
135
|
assert(
|
|
129
136
|
this.state === SummaryState.Broadcast,
|
|
130
137
|
0x176 /* "Can only ack/nack if summarizer is in broadcasting state" */,
|
|
@@ -167,7 +174,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
|
|
|
167
174
|
private readonly localSummaries = new Map<number, Summary>();
|
|
168
175
|
private _disposed = false;
|
|
169
176
|
|
|
170
|
-
public get disposed() {
|
|
177
|
+
public get disposed(): boolean {
|
|
171
178
|
return this._disposed;
|
|
172
179
|
}
|
|
173
180
|
|
|
@@ -193,8 +200,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
|
|
|
193
200
|
* Waits until all of the pending summaries in the underlying SummaryCollection
|
|
194
201
|
* are acked/nacked.
|
|
195
202
|
*/
|
|
196
|
-
|
|
197
|
-
public waitFlushed() {
|
|
203
|
+
public async waitFlushed(): Promise<IAckedSummary | undefined> {
|
|
198
204
|
return this.summaryCollection.waitFlushed();
|
|
199
205
|
}
|
|
200
206
|
|
|
@@ -202,7 +208,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
|
|
|
202
208
|
* Gets a watched summary or returns undefined if not watched.
|
|
203
209
|
* @param clientSequenceNumber - client sequence number of sent summary op
|
|
204
210
|
*/
|
|
205
|
-
public tryGetSummary(clientSequenceNumber: number) {
|
|
211
|
+
public tryGetSummary(clientSequenceNumber: number): Summary | undefined {
|
|
206
212
|
return this.localSummaries.get(clientSequenceNumber);
|
|
207
213
|
}
|
|
208
214
|
|
|
@@ -210,11 +216,11 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
|
|
|
210
216
|
* Starts watching a summary made by this client.
|
|
211
217
|
* @param summary - summary to start watching
|
|
212
218
|
*/
|
|
213
|
-
public setSummary(summary: Summary) {
|
|
219
|
+
public setSummary(summary: Summary): void {
|
|
214
220
|
this.localSummaries.set(summary.clientSequenceNumber, summary);
|
|
215
221
|
}
|
|
216
222
|
|
|
217
|
-
public dispose() {
|
|
223
|
+
public dispose(): void {
|
|
218
224
|
this.summaryCollection.removeWatcher(this.clientId);
|
|
219
225
|
this._disposed = true;
|
|
220
226
|
}
|
|
@@ -270,27 +276,29 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
270
276
|
return super.emit(event, ...args);
|
|
271
277
|
}
|
|
272
278
|
|
|
273
|
-
public get opsSinceLastAck() {
|
|
279
|
+
public get opsSinceLastAck(): number {
|
|
274
280
|
return (
|
|
275
281
|
this.deltaManager.lastSequenceNumber -
|
|
276
282
|
(this.lastAck?.summaryAck.sequenceNumber ?? this.deltaManager.initialSequenceNumber)
|
|
277
283
|
);
|
|
278
284
|
}
|
|
279
285
|
|
|
280
|
-
public addOpListener(listener: () => void) {
|
|
286
|
+
public addOpListener(listener: () => void): void {
|
|
281
287
|
this.deltaManager.on("op", listener);
|
|
282
288
|
}
|
|
283
289
|
|
|
284
|
-
public removeOpListener(listener: () => void) {
|
|
290
|
+
public removeOpListener(listener: () => void): void {
|
|
285
291
|
this.deltaManager.off("op", listener);
|
|
286
292
|
}
|
|
287
293
|
|
|
294
|
+
private readonly logger: ITelemetryLoggerExt;
|
|
288
295
|
public constructor(
|
|
289
296
|
private readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,
|
|
290
|
-
|
|
297
|
+
logger: ITelemetryBaseLogger,
|
|
291
298
|
) {
|
|
292
299
|
super();
|
|
293
300
|
this.deltaManager.on("op", (op) => this.handleOp(op));
|
|
301
|
+
this.logger = createChildLogger({ logger });
|
|
294
302
|
}
|
|
295
303
|
|
|
296
304
|
/**
|
|
@@ -304,19 +312,19 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
304
312
|
return watcher;
|
|
305
313
|
}
|
|
306
314
|
|
|
307
|
-
public removeWatcher(clientId: string) {
|
|
315
|
+
public removeWatcher(clientId: string): void {
|
|
308
316
|
this.summaryWatchers.delete(clientId);
|
|
309
317
|
}
|
|
310
318
|
|
|
311
319
|
public setPendingAckTimerTimeoutCallback(
|
|
312
320
|
maxAckWaitTime: number,
|
|
313
321
|
timeoutCallback: () => void,
|
|
314
|
-
) {
|
|
322
|
+
): void {
|
|
315
323
|
this.maxAckWaitTime = maxAckWaitTime;
|
|
316
324
|
this.pendingAckTimerTimeoutCallback = timeoutCallback;
|
|
317
325
|
}
|
|
318
326
|
|
|
319
|
-
public unsetPendingAckTimerTimeoutCallback() {
|
|
327
|
+
public unsetPendingAckTimerTimeoutCallback(): void {
|
|
320
328
|
this.maxAckWaitTime = undefined;
|
|
321
329
|
this.pendingAckTimerTimeoutCallback = undefined;
|
|
322
330
|
}
|
|
@@ -352,7 +360,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
352
360
|
return this.lastAck;
|
|
353
361
|
}
|
|
354
362
|
|
|
355
|
-
private parseContent(op: ISequencedDocumentMessage) {
|
|
363
|
+
private parseContent(op: ISequencedDocumentMessage): void {
|
|
356
364
|
// This should become unconditional once (Loader LTS) reaches 2.4 or later
|
|
357
365
|
// There will be a long time of needing both cases, until LTS catches up to the change.
|
|
358
366
|
// That said, we may instead move to listen for "op" events from ContainerRuntime,
|
|
@@ -366,24 +374,26 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
366
374
|
* Handler for ops; only handles ops relating to summaries.
|
|
367
375
|
* @param op - op message to handle
|
|
368
376
|
*/
|
|
369
|
-
private handleOp(opArg: ISequencedDocumentMessage) {
|
|
377
|
+
private handleOp(opArg: ISequencedDocumentMessage): void {
|
|
370
378
|
const op = { ...opArg };
|
|
371
379
|
|
|
372
380
|
switch (op.type) {
|
|
373
|
-
case MessageType.Summarize:
|
|
381
|
+
case MessageType.Summarize: {
|
|
374
382
|
this.parseContent(op);
|
|
375
383
|
return this.handleSummaryOp(op as ISummaryOpMessage);
|
|
384
|
+
}
|
|
376
385
|
case MessageType.SummaryAck:
|
|
377
|
-
case MessageType.SummaryNack:
|
|
386
|
+
case MessageType.SummaryNack: {
|
|
378
387
|
// Old files (prior to PR #10077) may not contain this info
|
|
379
|
-
if (op.data
|
|
380
|
-
op.contents = JSON.parse(op.data);
|
|
381
|
-
} else {
|
|
388
|
+
if (op.data === undefined) {
|
|
382
389
|
this.parseContent(op);
|
|
390
|
+
} else {
|
|
391
|
+
op.contents = JSON.parse(op.data);
|
|
383
392
|
}
|
|
384
393
|
return op.type === MessageType.SummaryAck
|
|
385
394
|
? this.handleSummaryAck(op as ISummaryAckMessage)
|
|
386
395
|
: this.handleSummaryNack(op as ISummaryNackMessage);
|
|
396
|
+
}
|
|
387
397
|
default: {
|
|
388
398
|
// If the difference between timestamp of current op and last summary op is greater than
|
|
389
399
|
// the maxAckWaitTime, then we need to inform summarizer to not wait and summarize
|
|
@@ -403,7 +413,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
403
413
|
}
|
|
404
414
|
}
|
|
405
415
|
|
|
406
|
-
private handleSummaryOp(op: ISummaryOpMessage) {
|
|
416
|
+
private handleSummaryOp(op: ISummaryOpMessage): void {
|
|
407
417
|
let summary: Summary | undefined;
|
|
408
418
|
|
|
409
419
|
// Check if summary already being watched, broadcast if so
|
|
@@ -429,7 +439,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
429
439
|
this.emit(MessageType.Summarize, op);
|
|
430
440
|
}
|
|
431
441
|
|
|
432
|
-
private handleSummaryAck(op: ISummaryAckMessage) {
|
|
442
|
+
private handleSummaryAck(op: ISummaryAckMessage): void {
|
|
433
443
|
const seq = op.contents.summaryProposal.summarySequenceNumber;
|
|
434
444
|
const summary = this.pendingSummaries.get(seq);
|
|
435
445
|
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- optional chain is not logically equivalent
|
|
@@ -472,7 +482,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
|
|
|
472
482
|
}
|
|
473
483
|
}
|
|
474
484
|
|
|
475
|
-
private handleSummaryNack(op: ISummaryNackMessage) {
|
|
485
|
+
private handleSummaryNack(op: ISummaryNackMessage): void {
|
|
476
486
|
const seq = op.contents.summaryProposal.summarySequenceNumber;
|
|
477
487
|
const summary = this.pendingSummaries.get(seq);
|
|
478
488
|
if (summary) {
|
|
@@ -10,10 +10,7 @@ import {
|
|
|
10
10
|
ISnapshotTree,
|
|
11
11
|
ISequencedDocumentMessage,
|
|
12
12
|
} from "@fluidframework/driver-definitions/internal";
|
|
13
|
-
import {
|
|
14
|
-
blobHeadersBlobName as blobNameForBlobHeaders,
|
|
15
|
-
readAndParse,
|
|
16
|
-
} from "@fluidframework/driver-utils/internal";
|
|
13
|
+
import { readAndParse } from "@fluidframework/driver-utils/internal";
|
|
17
14
|
import {
|
|
18
15
|
ISummaryTreeWithStats,
|
|
19
16
|
channelsTreeName,
|
|
@@ -21,8 +18,10 @@ import {
|
|
|
21
18
|
} from "@fluidframework/runtime-definitions/internal";
|
|
22
19
|
|
|
23
20
|
import { blobsTreeName } from "../blobManager/index.js";
|
|
21
|
+
// eslint-disable-next-line import/no-deprecated
|
|
24
22
|
import { IGCMetadata } from "../gc/index.js";
|
|
25
23
|
|
|
24
|
+
// eslint-disable-next-line import/no-deprecated
|
|
26
25
|
import { IDocumentSchema } from "./documentSchema.js";
|
|
27
26
|
|
|
28
27
|
/**
|
|
@@ -70,7 +69,9 @@ export interface IFluidDataStoreAttributes1
|
|
|
70
69
|
*/
|
|
71
70
|
export interface IFluidDataStoreAttributes2
|
|
72
71
|
extends OmitAttributesVersions<IFluidDataStoreAttributes1> {
|
|
73
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Switch from snapshotFormatVersion to summaryFormatVersion
|
|
74
|
+
*/
|
|
74
75
|
readonly snapshotFormatVersion?: undefined;
|
|
75
76
|
readonly summaryFormatVersion: 2;
|
|
76
77
|
/**
|
|
@@ -128,31 +129,49 @@ export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): b
|
|
|
128
129
|
/**
|
|
129
130
|
* @legacy
|
|
130
131
|
* @alpha
|
|
132
|
+
* @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
|
|
131
133
|
*/
|
|
134
|
+
// eslint-disable-next-line import/no-deprecated
|
|
132
135
|
export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
|
|
133
136
|
readonly summaryFormatVersion: 1;
|
|
134
|
-
/**
|
|
137
|
+
/**
|
|
138
|
+
* @deprecated - used by old (prior to 2.0 RC3) runtimes
|
|
139
|
+
*/
|
|
135
140
|
readonly message?: ISummaryMetadataMessage;
|
|
136
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* The last message processed at the time of summary. Only primitive property types are added to the summary.
|
|
143
|
+
*/
|
|
137
144
|
readonly lastMessage?: ISummaryMetadataMessage;
|
|
138
|
-
/**
|
|
145
|
+
/**
|
|
146
|
+
* True if channels are not isolated in .channels subtrees, otherwise isolated.
|
|
147
|
+
*/
|
|
139
148
|
readonly disableIsolatedChannels?: true;
|
|
140
|
-
/**
|
|
149
|
+
/**
|
|
150
|
+
* The summary number for a container's summary. Incremented on summaries throughout its lifetime.
|
|
151
|
+
*/
|
|
141
152
|
readonly summaryNumber?: number;
|
|
142
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* GUID to identify a document in telemetry
|
|
155
|
+
*/
|
|
143
156
|
readonly telemetryDocumentId?: string;
|
|
144
157
|
|
|
158
|
+
// eslint-disable-next-line import/no-deprecated
|
|
145
159
|
readonly documentSchema?: IDocumentSchema;
|
|
146
160
|
}
|
|
147
161
|
|
|
148
162
|
/**
|
|
149
163
|
* @legacy
|
|
150
164
|
* @alpha
|
|
165
|
+
* @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
|
|
151
166
|
*/
|
|
152
167
|
export interface ICreateContainerMetadata {
|
|
153
|
-
/**
|
|
168
|
+
/**
|
|
169
|
+
* Runtime version of the container when it was first created
|
|
170
|
+
*/
|
|
154
171
|
createContainerRuntimeVersion?: string;
|
|
155
|
-
/**
|
|
172
|
+
/**
|
|
173
|
+
* Timestamp of the container when it was first created
|
|
174
|
+
*/
|
|
156
175
|
createContainerTimestamp?: number;
|
|
157
176
|
}
|
|
158
177
|
|
|
@@ -160,6 +179,7 @@ export interface ICreateContainerMetadata {
|
|
|
160
179
|
* The properties of an ISequencedDocumentMessage to be stored in the metadata blob in summary.
|
|
161
180
|
* @legacy
|
|
162
181
|
* @alpha
|
|
182
|
+
* @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
|
|
163
183
|
*/
|
|
164
184
|
export type ISummaryMetadataMessage = Pick<
|
|
165
185
|
ISequencedDocumentMessage,
|
|
@@ -211,7 +231,6 @@ export const chunksBlobName = ".chunks";
|
|
|
211
231
|
export const recentBatchInfoBlobName = ".recentBatchInfo";
|
|
212
232
|
export const electedSummarizerBlobName = ".electedSummarizer";
|
|
213
233
|
export const idCompressorBlobName = ".idCompressor";
|
|
214
|
-
export const blobHeadersBlobName = blobNameForBlobHeaders;
|
|
215
234
|
|
|
216
235
|
export function rootHasIsolatedChannels(metadata?: IContainerRuntimeMetadata): boolean {
|
|
217
236
|
return !!metadata && !metadata.disableIsolatedChannels;
|
|
@@ -292,3 +311,5 @@ export async function getFluidDataStoreAttributes(
|
|
|
292
311
|
assert(formatVersion > 0, 0x1d5 /* Invalid snapshot format version */);
|
|
293
312
|
return attributes;
|
|
294
313
|
}
|
|
314
|
+
|
|
315
|
+
export { blobHeadersBlobName } from "@fluidframework/driver-utils/internal";
|
|
@@ -25,10 +25,13 @@ import {
|
|
|
25
25
|
IAckSummaryResult,
|
|
26
26
|
IBroadcastSummaryResult,
|
|
27
27
|
INackSummaryResult,
|
|
28
|
+
// eslint-disable-next-line import/no-deprecated
|
|
28
29
|
IRefreshSummaryAckOptions,
|
|
30
|
+
// eslint-disable-next-line import/no-deprecated
|
|
29
31
|
ISubmitSummaryOptions,
|
|
30
32
|
ISummarizeHeuristicData,
|
|
31
33
|
ISummarizeResults,
|
|
34
|
+
// eslint-disable-next-line import/no-deprecated
|
|
32
35
|
ISummaryCancellationToken,
|
|
33
36
|
SubmitSummaryFailureData,
|
|
34
37
|
SubmitSummaryResult,
|
|
@@ -43,10 +46,13 @@ export type raceTimerResult<T> =
|
|
|
43
46
|
| { result: IPromiseTimerResult["timerResult"] }
|
|
44
47
|
| { result: "cancelled" };
|
|
45
48
|
|
|
46
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Wait for a promise or PromiseTimer to elapse.
|
|
51
|
+
*/
|
|
47
52
|
export async function raceTimer<T>(
|
|
48
53
|
promise: Promise<T>,
|
|
49
54
|
timer: Promise<IPromiseTimerResult>,
|
|
55
|
+
// eslint-disable-next-line import/no-deprecated
|
|
50
56
|
cancellationToken?: ISummaryCancellationToken,
|
|
51
57
|
): Promise<raceTimerResult<T>> {
|
|
52
58
|
const promises: Promise<raceTimerResult<T>>[] = [
|
|
@@ -95,9 +101,13 @@ export type SummarizeReason =
|
|
|
95
101
|
* stay connected long enough for summarizer client to catch up.
|
|
96
102
|
*/
|
|
97
103
|
| "lastSummary"
|
|
98
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* On-demand summary requested with specified reason.
|
|
106
|
+
*/
|
|
99
107
|
| `onDemand;${string}`
|
|
100
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Enqueue summarize attempt with specified reason.
|
|
110
|
+
*/
|
|
101
111
|
| `enqueue;${string}`;
|
|
102
112
|
|
|
103
113
|
const summarizeErrors = {
|
|
@@ -130,7 +140,7 @@ const summarizeErrors = {
|
|
|
130
140
|
export type SummarizeErrorCode = keyof typeof summarizeErrors;
|
|
131
141
|
|
|
132
142
|
// Helper functions to report failures and return.
|
|
133
|
-
export const getFailMessage = (errorCode: SummarizeErrorCode) =>
|
|
143
|
+
export const getFailMessage = (errorCode: SummarizeErrorCode): string =>
|
|
134
144
|
`${errorCode}: ${summarizeErrors[errorCode]}`;
|
|
135
145
|
|
|
136
146
|
export class SummarizeResultBuilder {
|
|
@@ -155,7 +165,7 @@ export class SummarizeResultBuilder {
|
|
|
155
165
|
error: IRetriableFailureError,
|
|
156
166
|
submitFailureResult?: SubmitSummaryFailureData,
|
|
157
167
|
nackSummaryResult?: INackSummaryResult,
|
|
158
|
-
) {
|
|
168
|
+
): void {
|
|
159
169
|
assert(
|
|
160
170
|
!this.receivedSummaryAckOrNack.isCompleted,
|
|
161
171
|
0x25e /* "no reason to call fail if all promises have been completed" */,
|
|
@@ -205,10 +215,12 @@ export class SummaryGenerator {
|
|
|
205
215
|
private readonly pendingAckTimer: IPromiseTimer,
|
|
206
216
|
private readonly heuristicData: ISummarizeHeuristicData,
|
|
207
217
|
private readonly submitSummaryCallback: (
|
|
218
|
+
// eslint-disable-next-line import/no-deprecated
|
|
208
219
|
options: ISubmitSummaryOptions,
|
|
209
220
|
) => Promise<SubmitSummaryResult>,
|
|
210
221
|
private readonly successfulSummaryCallback: () => void,
|
|
211
222
|
private readonly refreshLatestSummaryCallback: (
|
|
223
|
+
// eslint-disable-next-line import/no-deprecated
|
|
212
224
|
options: IRefreshSummaryAckOptions,
|
|
213
225
|
) => Promise<void>,
|
|
214
226
|
private readonly summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">,
|
|
@@ -226,19 +238,23 @@ export class SummaryGenerator {
|
|
|
226
238
|
* @param resultsBuilder - optional, result builder to use to build pass or fail result.
|
|
227
239
|
*/
|
|
228
240
|
public summarize(
|
|
241
|
+
// eslint-disable-next-line import/no-deprecated
|
|
229
242
|
summaryOptions: ISubmitSummaryOptions,
|
|
230
243
|
resultsBuilder = new SummarizeResultBuilder(),
|
|
231
244
|
): ISummarizeResults {
|
|
232
|
-
this.summarizeCore(summaryOptions, resultsBuilder).catch(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
245
|
+
this.summarizeCore(summaryOptions, resultsBuilder).catch(
|
|
246
|
+
(error: IRetriableFailureError) => {
|
|
247
|
+
const message = "UnexpectedSummarizeError";
|
|
248
|
+
summaryOptions.summaryLogger.sendErrorEvent({ eventName: message }, error);
|
|
249
|
+
resultsBuilder.fail(message, error);
|
|
250
|
+
},
|
|
251
|
+
);
|
|
237
252
|
|
|
238
253
|
return resultsBuilder.build();
|
|
239
254
|
}
|
|
240
255
|
|
|
241
256
|
private async summarizeCore(
|
|
257
|
+
// eslint-disable-next-line import/no-deprecated
|
|
242
258
|
submitSummaryOptions: ISubmitSummaryOptions,
|
|
243
259
|
resultsBuilder: SummarizeResultBuilder,
|
|
244
260
|
): Promise<void> {
|
|
@@ -278,7 +294,7 @@ export class SummaryGenerator {
|
|
|
278
294
|
properties?: SummaryGeneratorTelemetry,
|
|
279
295
|
submitFailureResult?: SubmitSummaryFailureData,
|
|
280
296
|
nackSummaryResult?: INackSummaryResult,
|
|
281
|
-
) => {
|
|
297
|
+
): void => {
|
|
282
298
|
// Report any failure as an error unless it was due to cancellation (like "disconnected" error)
|
|
283
299
|
// If failure happened on upload, we may not yet realized that socket disconnected, so check
|
|
284
300
|
// offlineError too.
|
|
@@ -515,17 +531,19 @@ export class SummaryGenerator {
|
|
|
515
531
|
initialProps: SummaryGeneratorTelemetry,
|
|
516
532
|
): SummaryGeneratorTelemetry {
|
|
517
533
|
switch (summaryData.stage) {
|
|
518
|
-
case "base":
|
|
534
|
+
case "base": {
|
|
519
535
|
return initialProps;
|
|
536
|
+
}
|
|
520
537
|
|
|
521
|
-
case "generate":
|
|
538
|
+
case "generate": {
|
|
522
539
|
return {
|
|
523
540
|
...initialProps,
|
|
524
541
|
...summaryData.summaryStats,
|
|
525
542
|
generateDuration: summaryData.generateDuration,
|
|
526
543
|
};
|
|
544
|
+
}
|
|
527
545
|
|
|
528
|
-
case "upload":
|
|
546
|
+
case "upload": {
|
|
529
547
|
return {
|
|
530
548
|
...initialProps,
|
|
531
549
|
...summaryData.summaryStats,
|
|
@@ -533,8 +551,9 @@ export class SummaryGenerator {
|
|
|
533
551
|
handle: summaryData.handle,
|
|
534
552
|
uploadDuration: summaryData.uploadDuration,
|
|
535
553
|
};
|
|
554
|
+
}
|
|
536
555
|
|
|
537
|
-
case "submit":
|
|
556
|
+
case "submit": {
|
|
538
557
|
return {
|
|
539
558
|
...initialProps,
|
|
540
559
|
...summaryData.summaryStats,
|
|
@@ -547,15 +566,17 @@ export class SummaryGenerator {
|
|
|
547
566
|
nonRuntimeOpsSinceLastSummary: this.heuristicData.numNonRuntimeOps,
|
|
548
567
|
runtimeOpsSinceLastSummary: this.heuristicData.numRuntimeOps,
|
|
549
568
|
};
|
|
569
|
+
}
|
|
550
570
|
|
|
551
|
-
default:
|
|
571
|
+
default: {
|
|
552
572
|
assert(true, 0x397 /* Unexpected summary stage */);
|
|
573
|
+
}
|
|
553
574
|
}
|
|
554
575
|
|
|
555
576
|
return initialProps;
|
|
556
577
|
}
|
|
557
578
|
|
|
558
|
-
private summarizeTimerHandler(time: number, count: number) {
|
|
579
|
+
private summarizeTimerHandler(time: number, count: number): void {
|
|
559
580
|
this.logger.sendPerformanceEvent({
|
|
560
581
|
eventName: "SummarizeTimeout",
|
|
561
582
|
timeoutTime: time,
|
|
@@ -570,7 +591,7 @@ export class SummaryGenerator {
|
|
|
570
591
|
}
|
|
571
592
|
}
|
|
572
593
|
|
|
573
|
-
public dispose() {
|
|
594
|
+
public dispose(): void {
|
|
574
595
|
this.summarizeTimer.clear();
|
|
575
596
|
}
|
|
576
597
|
}
|